]> cloud.milkyroute.net Git - dolphin.git/blobdiff - src/selectionmanager.cpp
make dolphin link correctly on mac osx
[dolphin.git] / src / selectionmanager.cpp
index 47ef16d1a73271a026ad53b23b0af3b3e55ca035..26ea3626a983433e10b35e7f55107f4e3c06ffa0 100644 (file)
@@ -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;
     }
 }