┌   ┐
54
└   ┘

summaryrefslogtreecommitdiff
path: root/src/selectionmanager.cpp
diff options
context:
space:
mode:
authorDavid Faure <[email protected]>2008-07-04 22:26:05 +0000
committerDavid Faure <[email protected]>2008-07-04 22:26:05 +0000
commit60ac42c0484095e29071b01098615e224e64d63a (patch)
tree0873c7ffa4e86610195c0da7fc33b318f77ada74 /src/selectionmanager.cpp
parent907823203326c096753883edebbd80498a486f06 (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.cpp19
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;
}
}