/usr/include/tulip/GraphHierarchiesModel.h is in libtulip-dev 4.8.0dfsg-2+b7.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 | /*
*
* This file is part of Tulip (www.tulip-software.org)
*
* Authors: David Auber and the Tulip development Team
* from LaBRI, University of Bordeaux
*
* Tulip is free software; you can redistribute it and/or modify
* it under the terms of the GNU Lesser General Public License
* as published by the Free Software Foundation, either version 3
* of the License, or (at your option) any later version.
*
* Tulip is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
* See the GNU General Public License for more details.
*
*/
///@cond DOXYGEN_HIDDEN
#ifndef GRAPHHIERARCHIESMODEL_H
#define GRAPHHIERARCHIESMODEL_H
#include <tulip/tulipconf.h>
#include <tulip/TulipModel.h>
#include <tulip/Observable.h>
#include <QList>
#include <QSet>
namespace tlp {
class Graph;
class GraphNeedsSavingObserver;
class TulipProject;
class PluginProgress;
class TLP_QT_SCOPE GraphHierarchiesModel : public tlp::TulipModel, public tlp::Observable {
Q_OBJECT
QList<tlp::Graph *> _graphs;
QString generateName(tlp::Graph *) const;
tlp::Graph *_currentGraph;
QMap<const tlp::Graph*,QModelIndex> _indexCache;
QMap<const tlp::Graph*, GraphNeedsSavingObserver*> _saveNeeded;
void initIndexCache(tlp::Graph *root);
public:
bool needsSaving();
explicit GraphHierarchiesModel(QObject *parent=0);
GraphHierarchiesModel(const GraphHierarchiesModel &);
virtual ~GraphHierarchiesModel();
// Allows the model to behave like a list and to be iterable
typedef QList<tlp::Graph *>::iterator iterator;
typedef QList<tlp::Graph *>::const_iterator const_iterator;
tlp::Graph *operator[](int i) const {
return _graphs[i];
}
tlp::Graph *operator[](int i) {
return _graphs[i];
}
int size() const {
return _graphs.size();
}
iterator begin() {
return _graphs.begin();
}
iterator end() {
return _graphs.end();
}
const_iterator begin() const {
return _graphs.begin();
}
const_iterator end() const {
return _graphs.end();
}
QList<tlp::Graph *> graphs() const {
return _graphs;
}
bool empty() const {
return _graphs.isEmpty();
}
// Methods re-implemented from QAbstractItemModel
QModelIndex index(int row, int column,const QModelIndex &parent = QModelIndex()) const;
QModelIndex parent(const QModelIndex &child) const;
int rowCount(const QModelIndex &parent = QModelIndex()) const;
int columnCount(const QModelIndex &parent = QModelIndex()) const;
QVariant data(const QModelIndex &index, int role = Qt::DisplayRole) const;
bool setData(const QModelIndex &index, const QVariant &value, int role);
Qt::ItemFlags flags(const QModelIndex &index) const;
QVariant headerData(int section, Qt::Orientation orientation, int role) const;
QMimeData* mimeData(const QModelIndexList &indexes) const;
QModelIndex indexOf(const Graph *);
QModelIndex forceGraphIndex(Graph *);
// Methods inherited from the observable system
void treatEvent(const tlp::Event &);
void treatEvents(const std::vector<tlp::Event> &);
// active graph handling
void setCurrentGraph(tlp::Graph *);
tlp::Graph *currentGraph() const;
signals:
void currentGraphChanged(tlp::Graph *);
public slots:
void addGraph(tlp::Graph *);
void removeGraph(tlp::Graph *);
QMap<QString,tlp::Graph*> readProject(tlp::TulipProject *,tlp::PluginProgress *);
QMap<tlp::Graph*,QString> writeProject(tlp::TulipProject *, tlp::PluginProgress *);
private:
QSet<const Graph *> _graphsChanged;
};
}
#endif // GRAPHHIERARCHIESMODEL_H
///@endcond
|