]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Fix Bug 309338 - flood of error boxes while renaming a folder in the folder panel
authorEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Wed, 31 Oct 2012 21:43:21 +0000 (22:43 +0100)
committerEmmanuel Pescosta <emmanuelpescosta099@gmail.com>
Wed, 31 Oct 2012 21:43:21 +0000 (22:43 +0100)
BUG: 309338
FIXED-IN: 4.9.3
REVIEW: 107070

src/kitemviews/kitemlistview.cpp
src/kitemviews/kitemlistview.h

index 72b3fd8fcbfbaa43660fac359320c8227ade9063..ef6dfc833ab7edfbe14391d385a90474b72b0ed8 100644 (file)
@@ -1429,12 +1429,16 @@ void KItemListView::slotGeometryOfGroupHeaderParentChanged()
 
 void KItemListView::slotRoleEditingCanceled(int index, const QByteArray& role, const QVariant& value)
 {
+    disconnectRoleEditingSignals(index);
+
     emit roleEditingCanceled(index, role, value);
     m_editingRole = false;
 }
 
 void KItemListView::slotRoleEditingFinished(int index, const QByteArray& role, const QVariant& value)
 {
+    disconnectRoleEditingSignals(index);
+
     emit roleEditingFinished(index, role, value);
     m_editingRole = false;
 }
@@ -2505,6 +2509,17 @@ bool KItemListView::hasSiblingSuccessor(int index) const
     return hasSuccessor;
 }
 
+void KItemListView::disconnectRoleEditingSignals(int index)
+{
+    KItemListWidget* widget = m_visibleItems.value(index);
+    if (!widget) {
+        return;
+    }
+
+    widget->disconnect(SIGNAL(roleEditingCanceled(int,QByteArray,QVariant)), this);
+    widget->disconnect(SIGNAL(roleEditingFinished(int,QByteArray,QVariant)), this);
+}
+
 int KItemListView::calculateAutoScrollingIncrement(int pos, int range, int oldInc)
 {
     int inc = 0;
index 5723b9aaab26019ecad698f94c9a855ace35766d..9847815692e410328039297754760bdf7042fabd 100644 (file)
@@ -662,6 +662,13 @@ private:
      */
     bool hasSiblingSuccessor(int index) const;
 
+    /**
+     * Helper method for slotRoleEditingCanceled() and slotRoleEditingFinished().
+     * Disconnects the two Signals "roleEditingCanceled" and
+     * "roleEditingFinished"
+     */
+    void disconnectRoleEditingSignals(int index);
+
     /**
      * Helper function for triggerAutoScrolling().
      * @param pos    Logical position of the mouse relative to the range.