┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/kitemviews/kitemlistselectionmanager.h
diff options
context:
space:
mode:
authorPeter Penz <[email protected]>2011-08-08 23:41:18 +0200
committerPeter Penz <[email protected]>2011-08-09 16:22:36 +0200
commit3957884bf2e44619a4ed35ba0ffead519988885b (patch)
treed8a5bf1a015cc6001adb4afc5f0f1da721908a22 /src/kitemviews/kitemlistselectionmanager.h
parent4692eb7c96f57328479862c0d17d7945b4e87188 (diff)
Improvements for selections, smooth scrolling, tooltips and info-panel
Diffstat (limited to 'src/kitemviews/kitemlistselectionmanager.h')
-rw-r--r--src/kitemviews/kitemlistselectionmanager.h28
1 files changed, 25 insertions, 3 deletions
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 <libdolphin_export.h>
+#include <kitemviews/kitemmodelbase.h>
+
#include <QObject>
+#include <QSet>
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<int>& items);
+ QSet<int> 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<int>& current, const QSet<int>& 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<int> m_selectedItems;
+
KItemModelBase* m_model;
- friend class KItemListController;
+ friend class KItemListController; // Calls setModel()
+ friend class KItemListView; // Calls itemsInserted() and itemsRemoved()
+ friend class KItemListSelectionManagerTest;
};
#endif