]> cloud.milkyroute.net Git - dolphin.git/commitdiff
Update the "is cut" state of items if necessary
authorFrank Reininghaus <frank78ac@googlemail.com>
Mon, 14 Apr 2014 20:46:38 +0000 (22:46 +0200)
committerFrank Reininghaus <frank78ac@googlemail.com>
Mon, 14 Apr 2014 20:55:58 +0000 (22:55 +0200)
The icons of items which are "cut" are shown faded in the view. The
"is cut" state of the widget representing an item is updated if the
clipboard contents change. Before this commit, if the sort order was
changed however, then each widget kept the "is cut" state of the item
which had been shown previously at its position.

The solution is to update the "is cut" state also if any of the
widget's data change.

BUG: 332792
REVIEW: 117451
FIXED-IN: 4.12.5

src/kitemviews/kstandarditemlistwidget.cpp

index acdf839aca58923f1c0bcac8dddf86f9ef0ae045..54546b440716c811fa23f976988553ffa8f10df8 100644 (file)
@@ -589,6 +589,12 @@ void KStandardItemListWidget::dataChanged(const QHash<QByteArray, QVariant>& cur
         dirtyRoles = roles;
     }
 
         dirtyRoles = roles;
     }
 
+    // The URL might have changed (i.e., if the sort order of the items has
+    // been changed). Therefore, the "is cut" state must be updated.
+    KFileItemClipboard* clipboard = KFileItemClipboard::instance();
+    const KUrl itemUrl = data().value("url").value<KUrl>();
+    m_isCut = clipboard->isCut(itemUrl);
+
     // The icon-state might depend from other roles and hence is
     // marked as dirty whenever a role has been changed
     dirtyRoles.insert("iconPixmap");
     // The icon-state might depend from other roles and hence is
     // marked as dirty whenever a role has been changed
     dirtyRoles.insert("iconPixmap");