class QAbstractItemView;
class QModelIndex;
class QAbstractButton;
+class QItemSelection;
+class SelectionToggle;
/**
- * @brief Allows to select and deselect items for the single-click mode.
+ * @brief Allows to select and deselect items for item views.
*
* Whenever an item is hovered by the mouse, a toggle button is shown
* which allows to select/deselect the current item.
SelectionManager(QAbstractItemView* parent);
virtual ~SelectionManager();
+public slots:
+ /**
+ * Resets the selection manager so that the toggle button gets
+ * invisible.
+ */
+ void reset();
+
signals:
/** Is emitted if the selection has been changed by the toggle button. */
void selectionChanged();
private slots:
void slotEntered(const QModelIndex& index);
void slotViewportEntered();
- void slotSelectionChanged();
void setItemSelected(bool selected);
+ void slotRowsRemoved(const QModelIndex& parent, int start, int end);
+ void slotSelectionChanged(const QItemSelection& selected, const QItemSelection& deselected);
private:
- KFileItem itemForIndex(const QModelIndex& index) const;
- const QModelIndex indexForItem(const KFileItem& item) const;
+ KUrl urlForIndex(const QModelIndex& index) const;
+ const QModelIndex indexForUrl(const KUrl& url) const;
private:
QAbstractItemView* m_view;
- QAbstractButton* m_button;
- KFileItem m_item;
+ SelectionToggle* m_toggle;
+ bool m_connected;
};
#endif