From 3957884bf2e44619a4ed35ba0ffead519988885b Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Mon, 8 Aug 2011 23:41:18 +0200 Subject: Improvements for selections, smooth scrolling, tooltips and info-panel --- src/kitemviews/kitemlistselectionmanager.h | 28 +++++++++++++++++++++++++--- 1 file changed, 25 insertions(+), 3 deletions(-) (limited to 'src/kitemviews/kitemlistselectionmanager.h') diff --git a/src/kitemviews/kitemlistselectionmanager.h b/src/kitemviews/kitemlistselectionmanager.h index 5c8e84614..5b329b40e 100644 --- a/src/kitemviews/kitemlistselectionmanager.h +++ b/src/kitemviews/kitemlistselectionmanager.h @@ -25,10 +25,16 @@ #include +#include + #include +#include class KItemModelBase; +/** + * @brief Allows to select and deselect items of a KItemListView. + */ class LIBDOLPHINPRIVATE_EXPORT KItemListSelectionManager : public QObject { Q_OBJECT @@ -39,13 +45,22 @@ public: Deselect, Toggle }; - + KItemListSelectionManager(QObject* parent = 0); virtual ~KItemListSelectionManager(); void setCurrentItem(int current); int currentItem() const; + void setSelectedItems(const QSet& items); + QSet selectedItems() const; + bool hasSelection() const; + + void setSelected(int index, int count = 1, SelectionMode mode = Select); + void clearSelection(); + + void beginAnchoredSelection(int anchor, SelectionMode mode = Select); + void endAnchoredSelection(); void setAnchorItem(int anchor); int anchorItem() const; @@ -53,17 +68,24 @@ public: signals: void currentChanged(int current, int previous); + void selectionChanged(const QSet& current, const QSet& previous); void anchorChanged(int anchor, int previous); -protected: +private: void setModel(KItemModelBase* model); + void itemsInserted(const KItemRangeList& itemRanges); + void itemsRemoved(const KItemRangeList& itemRanges); private: int m_currentItem; int m_anchorItem; + QSet m_selectedItems; + KItemModelBase* m_model; - friend class KItemListController; + friend class KItemListController; // Calls setModel() + friend class KItemListView; // Calls itemsInserted() and itemsRemoved() + friend class KItemListSelectionManagerTest; }; #endif -- cgit v1.3.1