[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    [kde-baseapps/KDE/4.9] dolphin/src/kitemviews: Fix Bug 309338 - flood of error boxes while renaming
From:       Emmanuel Pescosta <emmanuelpescosta099 () gmail ! com>
Date:       2012-10-31 21:44:08
Message-ID: 20121031214408.DD9B9A6078 () git ! kde ! org
[Download RAW message or body]

Git commit ab82045a958590181c982677456b3743185ed28e by Emmanuel Pescosta.
Committed on 31/10/2012 at 22:43.
Pushed by emmanuelp into branch 'KDE/4.9'.

Fix Bug 309338 - flood of error boxes while renaming a folder in the folder panel

BUG: 309338
FIXED-IN: 4.9.3
REVIEW: 107070

M  +15   -0    dolphin/src/kitemviews/kitemlistview.cpp
M  +7    -0    dolphin/src/kitemviews/kitemlistview.h

http://commits.kde.org/kde-baseapps/ab82045a958590181c982677456b3743185ed28e

diff --git a/dolphin/src/kitemviews/kitemlistview.cpp b/dolphin/src/kitemviews/kitemlistview.cpp
index 72b3fd8..ef6dfc8 100644
--- a/dolphin/src/kitemviews/kitemlistview.cpp
+++ b/dolphin/src/kitemviews/kitemlistview.cpp
@@ -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;
diff --git a/dolphin/src/kitemviews/kitemlistview.h b/dolphin/src/kitemviews/kitemlistview.h
index 5723b9a..9847815 100644
--- a/dolphin/src/kitemviews/kitemlistview.h
+++ b/dolphin/src/kitemviews/kitemlistview.h
@@ -663,6 +663,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.
      * @param range  Range of the visible area.
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic