insilmaril@364: #ifndef SELECTION_H insilmaril@364: #define SELECTION_H insilmaril@364: insilmaril@440: #include insilmaril@440: #include insilmaril@440: #include insilmaril@728: #include insilmaril@440: insilmaril@726: #include "treeitem.h" insilmaril@440: insilmaril@440: class BranchObj; insilmaril@440: class FloatImageObj; insilmaril@440: class MapCenterObj; insilmaril@440: class LinkableMapObj; insilmaril@642: class VymModel; insilmaril@0: insilmaril@421: insilmaril@0: class Selection insilmaril@0: { insilmaril@0: public: insilmaril@492: enum Type {Undefined,Branch,MapCenter,FloatImage}; insilmaril@0: Selection (); insilmaril@0: ~Selection(); insilmaril@0: void copy(const Selection&); insilmaril@0: void clear(); insilmaril@642: void setModel (VymModel *); insilmaril@440: void update(); insilmaril@0: bool select (LinkableMapObj*); insilmaril@364: bool select (const QString &); insilmaril@421: bool reselect (); insilmaril@364: void unselect (); insilmaril@721: bool isBlocked (); insilmaril@721: void block(); insilmaril@721: void unblock(); insilmaril@0: bool isEmpty(); insilmaril@0: uint count(); insilmaril@492: Type type(); insilmaril@424: LinkableMapObj * first(); // first in selection list insilmaril@424: LinkableMapObj * single(); // NULL, if multiple selected insilmaril@424: BranchObj* getBranch(); insilmaril@726: TreeItem* getBranchItem(); insilmaril@728: QModelIndex getBranchIndex(); //!< Returns index of first selected branch or mapcenter insilmaril@424: FloatImageObj* getFloatImage(); insilmaril@0: insilmaril@364: QString getSelectString(); insilmaril@364: insilmaril@0: private: insilmaril@364: QList selectList; insilmaril@421: QList lastSelectList; insilmaril@728: insilmaril@642: VymModel *model; insilmaril@728: insilmaril@728: QItemSelectionModel *selModel; //!< QSelectionModel is shared across views and initialized in setModel insilmaril@440: insilmaril@440: QColor color; insilmaril@721: bool blocked; //!< if true, no new selection possible insilmaril@0: }; insilmaril@721: insilmaril@0: #endif insilmaril@0: