X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/f6c7b90edf05a52fba6e2a06caa0247e909b43e8..a3003c2c94e34abefe1974633aa7c22734202cf6:/src/selectionmanager.cpp diff --git a/src/selectionmanager.cpp b/src/selectionmanager.cpp index 1f9d99b85..bdb4c5368 100644 --- a/src/selectionmanager.cpp +++ b/src/selectionmanager.cpp @@ -47,20 +47,27 @@ SelectionManager::SelectionManager(QAbstractItemView* parent) : m_button->hide(); connect(m_button, SIGNAL(clicked(bool)), this, SLOT(setItemSelected(bool))); - connect(m_view->selectionModel(), SIGNAL(selectionChanged()), - this, SLOT(slotSelectionChanged())); } SelectionManager::~SelectionManager() { } +void SelectionManager::reset() +{ + m_button->hide(); + m_item = KFileItem(); +} + void SelectionManager::slotEntered(const QModelIndex& index) { m_button->hide(); if (index.isValid() && (index.column() == DolphinModel::Name)) { m_item = itemForIndex(index); + connect(m_view->model(), SIGNAL(rowsRemoved(const QModelIndex&, int, int)), + this, SLOT(slotRowsRemoved(const QModelIndex&, int, int))); + const QRect rect = m_view->visualRect(index); const int gap = 2; const int x = rect.right() - m_button->width() - gap; @@ -79,22 +86,14 @@ void SelectionManager::slotEntered(const QModelIndex& index) m_button->show(); } else { m_item = KFileItem(); + disconnect(m_view->model(), SIGNAL(rowsRemoved(const QModelIndex&, int, int)), + this, SLOT(slotRowsRemoved(const QModelIndex&, int, int))); } } void SelectionManager::slotViewportEntered() { m_button->hide(); - m_item = KFileItem(); -} - -void SelectionManager::slotSelectionChanged() -{ - const QModelIndex index = indexForItem(m_item); - if (index.isValid()) { - QItemSelectionModel* selModel = m_view->selectionModel(); - m_button->setChecked(selModel->isSelected(index)); - } } void SelectionManager::setItemSelected(bool selected) @@ -113,6 +112,14 @@ void SelectionManager::setItemSelected(bool selected) } } +void SelectionManager::slotRowsRemoved(const QModelIndex& parent, int start, int end) +{ + Q_UNUSED(parent); + Q_UNUSED(start); + Q_UNUSED(end); + m_button->hide(); +} + KFileItem SelectionManager::itemForIndex(const QModelIndex& index) const { QAbstractProxyModel* proxyModel = static_cast(m_view->model());