diff options
| author | David Faure <[email protected]> | 2008-07-04 22:26:05 +0000 |
|---|---|---|
| committer | David Faure <[email protected]> | 2008-07-04 22:26:05 +0000 |
| commit | 60ac42c0484095e29071b01098615e224e64d63a (patch) | |
| tree | 0873c7ffa4e86610195c0da7fc33b318f77ada74 /src/selectionmanager.cpp | |
| parent | 907823203326c096753883edebbd80498a486f06 (diff) | |
Don't connect multiple times to the selectionChanged signal, otherwise the slot will be called as many times as we entered a directory...
svn path=/trunk/KDE/kdebase/apps/; revision=828216
Diffstat (limited to 'src/selectionmanager.cpp')
| -rw-r--r-- | src/selectionmanager.cpp | 19 |
1 files changed, 12 insertions, 7 deletions
diff --git a/src/selectionmanager.cpp b/src/selectionmanager.cpp index 47ef16d1a..26ea3626a 100644 --- a/src/selectionmanager.cpp +++ b/src/selectionmanager.cpp @@ -36,7 +36,8 @@ SelectionManager::SelectionManager(QAbstractItemView* parent) : QObject(parent), m_view(parent), - m_toggle(0) + m_toggle(0), + m_connected(false) { connect(parent, SIGNAL(entered(const QModelIndex&)), this, SLOT(slotEntered(const QModelIndex&))); @@ -64,12 +65,15 @@ void SelectionManager::slotEntered(const QModelIndex& index) if (index.isValid() && (index.column() == DolphinModel::Name)) { m_toggle->setUrl(urlForIndex(index)); - connect(m_view->model(), SIGNAL(rowsRemoved(const QModelIndex&, int, int)), - this, SLOT(slotRowsRemoved(const QModelIndex&, int, int))); - connect(m_view->selectionModel(), - SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), - this, - SLOT(slotSelectionChanged(const QItemSelection&, const QItemSelection&))); + if (!m_connected) { + connect(m_view->model(), SIGNAL(rowsRemoved(const QModelIndex&, int, int)), + this, SLOT(slotRowsRemoved(const QModelIndex&, int, int))); + connect(m_view->selectionModel(), + SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), + this, + SLOT(slotSelectionChanged(const QItemSelection&, const QItemSelection&))); + m_connected = true; + } const QRect rect = m_view->visualRect(index); @@ -89,6 +93,7 @@ void SelectionManager::slotEntered(const QModelIndex& index) SIGNAL(selectionChanged(const QItemSelection&, const QItemSelection&)), this, SLOT(slotSelectionChanged(const QItemSelection&, const QItemSelection&))); + m_connected = false; } } |
