23 #ifndef SUIT_TREEMODEL_H
24 #define SUIT_TREEMODEL_H
30 #include <QAbstractItemModel>
31 #include <QSortFilterProxyModel>
32 #include <QModelIndex>
33 #include <QItemDelegate>
38 #pragma warning( disable:4251 )
60 operator const QObject*()
const;
72 virtual QAbstractItemDelegate*
delegate()
const = 0;
74 virtual bool lessThan(
const QModelIndex& left,
const QModelIndex& right )
const = 0;
80 virtual void registerColumn(
const int group_id,
const QString& name,
const int custom_id ) = 0;
82 virtual void setColumnIcon(
const QString& name,
const QPixmap& icon ) = 0;
83 virtual QPixmap
columnIcon(
const QString& name )
const = 0;
111 DisplayRole = Qt::DisplayRole,
112 DecorationRole = Qt::DecorationRole,
113 EditRole = Qt::EditRole,
114 ToolTipRole = Qt::ToolTipRole,
115 StatusTipRole = Qt::StatusTipRole,
116 WhatsThisRole = Qt::WhatsThisRole,
117 FontRole = Qt::FontRole,
118 TextAlignmentRole = Qt::TextAlignmentRole,
119 BackgroundRole = Qt::BackgroundRole,
120 ForegroundRole = Qt::ForegroundRole,
121 CheckStateRole = Qt::CheckStateRole,
122 SizeHintRole = Qt::SizeHintRole,
123 BaseColorRole = Qt::UserRole,
137 virtual QVariant data(
const QModelIndex&,
int = DisplayRole )
const;
138 virtual bool setData(
const QModelIndex&,
const QVariant&,
int = EditRole );
139 virtual Qt::ItemFlags flags(
const QModelIndex& )
const;
140 virtual QVariant headerData(
int,
Qt::Orientation,
int = Qt::DisplayRole )
const;
142 virtual Qt::DropActions supportedDropActions()
const;
144 virtual QModelIndex index(
int,
int,
const QModelIndex& = QModelIndex() )
const;
145 virtual QModelIndex parent(
const QModelIndex& )
const;
147 virtual int columnCount(
const QModelIndex& = QModelIndex() )
const;
148 virtual int rowCount(
const QModelIndex& = QModelIndex() )
const;
149 virtual void registerColumn(
const int group_id,
const QString& name,
const int custom_id );
150 virtual void unregisterColumn(
const int group_id,
const QString& name );
151 virtual void setColumnIcon(
const QString& name,
const QPixmap& icon );
152 virtual QPixmap columnIcon(
const QString& name )
const;
153 virtual void setAppropriate(
const QString& name,
const Qtx::Appropriate appr );
155 virtual void setVisibilityState(
const QString&
id,
Qtx::VisibilityState state,
bool emitChanged =
true);
160 virtual void emitClicked(
SUIT_DataObject* obj,
const QModelIndex& index);
166 bool autoDeleteTree()
const;
167 void setAutoDeleteTree(
const bool );
169 bool autoUpdate()
const;
170 void setAutoUpdate(
const bool );
172 bool updateModified()
const;
173 void setUpdateModified(
const bool );
175 virtual bool customSorting(
const int )
const;
176 virtual bool lessThan(
const QModelIndex& left,
const QModelIndex& right )
const;
179 QAbstractItemDelegate* delegate()
const;
184 virtual QStringList mimeTypes()
const;
185 virtual QMimeData* mimeData (
const QModelIndexList& indexes)
const;
186 virtual bool dropMimeData (
const QMimeData *data, Qt::DropAction action,
187 int row,
int column,
const QModelIndex &parent);
190 virtual void updateTree(
const QModelIndex& );
203 TreeItem* treeItem(
const QModelIndex& )
const;
206 QString objectId(
const QModelIndex& = QModelIndex() )
const;
210 void updateItem(
TreeItem*,
bool emitLayoutChanged );
219 typedef QMap<SUIT_DataObject*, TreeItem*>
ItemMap;
260 bool autoDeleteTree()
const;
261 void setAutoDeleteTree(
const bool );
263 bool autoUpdate()
const;
264 void setAutoUpdate(
const bool );
266 bool updateModified()
const;
267 void setUpdateModified(
const bool );
269 bool isSortingEnabled()
const;
270 bool customSorting(
const int )
const;
273 virtual bool lessThan(
const QModelIndex&,
const QModelIndex& )
const;
274 virtual void registerColumn(
const int group_id,
const QString& name,
const int custom_id );
275 virtual void unregisterColumn(
const int group_id,
const QString& name );
276 virtual void setColumnIcon(
const QString& name,
const QPixmap& icon );
277 virtual QPixmap columnIcon(
const QString& name )
const;
278 virtual void setAppropriate(
const QString& name,
const Qtx::Appropriate appr );
280 virtual void setVisibilityState(
const QString&
id,
Qtx::VisibilityState state,
bool emitChanged =
true);
285 virtual void emitClicked(
SUIT_DataObject* obj,
const QModelIndex& index);
290 QAbstractItemDelegate* delegate()
const;
293 virtual void updateTree(
const QModelIndex& );
295 void setSortingEnabled(
bool );
305 virtual bool filterAcceptsRow(
int,
const QModelIndex& )
const;
318 virtual void paint( QPainter*,
const QStyleOptionViewItem&,
319 const QModelIndex& )
const;
321 virtual QSize sizeHint (
const QStyleOptionViewItem & option,
const QModelIndex & index )
const;
325 #pragma warning( default:4251 )
#define SUIT_EXPORT
Definition: SUIT.h:36
Orientation
Orientation.
Definition: SalomePyQt.h:138
For more information see QT documentation.
Definition: SUIT_Application.h:42
HeaderViewFlags
Header view flags.
Definition: Qtx.h:123
@ AppropriateRole
can be used to return true if data is appropriate
Definition: Qtx.h:99
Appropriate
Definition: Qtx.h:102
VisibilityState
object visibility state
Definition: Qtx.h:116
Definition: SUIT_TreeModel.h:52
virtual void setColumnIcon(const QString &name, const QPixmap &icon)=0
virtual Qtx::Appropriate appropriate(const QString &name) const =0
virtual SUIT_DataObject * root() const =0
virtual bool autoDeleteTree() const =0
virtual void forgetObject(const SUIT_DataObject *)=0
virtual void unregisterColumn(const int group_id, const QString &name)=0
virtual void updateTree(const QModelIndex &)=0
virtual void updateTree(SUIT_DataObject *=0)=0
virtual void setAutoDeleteTree(const bool)=0
virtual void registerColumn(const int group_id, const QString &name, const int custom_id)=0
virtual void setHeaderFlags(const QString &name, const Qtx::HeaderViewFlags flags)=0
virtual void setAppropriate(const QString &name, const Qtx::Appropriate appr)=0
virtual SUIT_DataObject * object(const QModelIndex &=QModelIndex()) const =0
SUIT_DataSearcher * mySearcher
Definition: SUIT_TreeModel.h:53
virtual bool lessThan(const QModelIndex &left, const QModelIndex &right) const =0
virtual void emitClicked(SUIT_DataObject *obj, const QModelIndex &index)=0
virtual void setVisibilityState(const QString &id, Qtx::VisibilityState state, bool emitChanged=true)=0
virtual Qtx::HeaderViewFlags headerFlags(const QString &name) const =0
virtual QPixmap columnIcon(const QString &name) const =0
virtual void setRoot(SUIT_DataObject *)=0
virtual QAbstractItemDelegate * delegate() const =0
virtual void setUpdateModified(const bool)=0
virtual bool customSorting(const int) const =0
virtual void setAutoUpdate(const bool)=0
virtual void setVisibilityStateForAll(Qtx::VisibilityState state)=0
virtual bool autoUpdate() const =0
virtual Qtx::VisibilityState visibilityState(const QString &id) const =0
virtual QModelIndex index(const SUIT_DataObject *, int=0) const =0
virtual bool updateModified() const =0
Data object representing the data instance in the tree-like hierarchy.
Definition: SUIT_DataObject.h:49
Definition: SUIT_TreeModel.h:46
virtual SUIT_DataObject * findObject(const QString &) const =0
An SUIT_DataObject-based item delegate class.
Definition: SUIT_TreeModel.h:312
Proxy model which can be used above the SUIT_TreeModel class to enable custom sorting/filtering of th...
Definition: SUIT_TreeModel.h:245
void renamed(SUIT_DataObject *)
void clicked(SUIT_DataObject *, int)
bool mySortingEnabled
Definition: SUIT_TreeModel.h:308
void dropped(const QList< SUIT_DataObject * > &, SUIT_DataObject *, int, Qt::DropAction)
Internal class used for tree view synchronizaton with data object tree.
Definition: SUIT_TreeModel.cxx:70
Functor class for synchronizing data tree and tree model when the data tree is changed outside the mo...
Definition: SUIT_TreeModel.cxx:246
Implementation of the model/view API based on the tree of SUIT_DataObject class instances.
Definition: SUIT_TreeModel.h:99
SUIT_DataObject * myRoot
Definition: SUIT_TreeModel.h:232
SUIT_DataObject * ObjPtr
Definition: SUIT_TreeModel.h:104
VisibilityMap myVisibilityMap
Definition: SUIT_TreeModel.h:235
ItemMap myItems
Definition: SUIT_TreeModel.h:234
void renamed(SUIT_DataObject *)
TreeItem * myRootItem
Definition: SUIT_TreeModel.h:233
QMap< SUIT_DataObject *, TreeItem * > ItemMap
Definition: SUIT_TreeModel.h:219
@ TextColorRole
(editor) text color (Qt::UserRole + 1)
Definition: SUIT_TreeModel.h:124
@ HighlightedTextRole
highlighted text color (Qt::UserRole + 3)
Definition: SUIT_TreeModel.h:126
@ HighlightRole
highlight color (Qt::UserRole + 2)
Definition: SUIT_TreeModel.h:125
SUIT_TreeModel::TreeItem * ItemPtr
Definition: SUIT_TreeModel.h:106
void clicked(SUIT_DataObject *, int)
bool myAutoDeleteTree
Definition: SUIT_TreeModel.h:236
void dropped(const QList< SUIT_DataObject * > &, SUIT_DataObject *, int, Qt::DropAction)
QVector< ColumnInfo > myColumns
Definition: SUIT_TreeModel.h:239
QMap< QString, Qtx::VisibilityState > VisibilityMap
Definition: SUIT_TreeModel.h:230
bool myAutoUpdate
Definition: SUIT_TreeModel.h:237
bool myUpdateModified
Definition: SUIT_TreeModel.h:238
Definition: TreeItem.hxx:36
Definition: SUIT_TreeModel.h:221
Qtx::HeaderViewFlags myHeaderFlags
Definition: SUIT_TreeModel.h:225
Qtx::Appropriate myAppropriate
Definition: SUIT_TreeModel.h:226
QString myName
Definition: SUIT_TreeModel.h:222
QMap< int, int > myIds
Definition: SUIT_TreeModel.h:223
QPixmap myIcon
Definition: SUIT_TreeModel.h:224