From: Peter Penz Date: Thu, 29 May 2008 20:01:13 +0000 (+0000) Subject: Before applying the cut item effect to a preview, assure that the cut items cache... X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/commitdiff_plain/8931e14eec50cd8a4693460839edfde8690ca297 Before applying the cut item effect to a preview, assure that the cut items cache gets an update of the preview without effect. This assures that when cutting other items that the state of the previously cut items can be restored in any case. svn path=/trunk/KDE/kdebase/apps/; revision=814273 --- diff --git a/src/iconmanager.cpp b/src/iconmanager.cpp index 78bb89cf8..2a3827134 100644 --- a/src/iconmanager.cpp +++ b/src/iconmanager.cpp @@ -232,6 +232,20 @@ void IconManager::replaceIcon(const KUrl& url, const QPixmap& pixmap) const QMimeData* mimeData = QApplication::clipboard()->mimeData(); if (KonqMimeData::decodeIsCutSelection(mimeData) && isCutItem(item)) { + // Remember the current icon in the cache for cut items before + // the disabled effect is applied. This makes it possible restoring + // the uncut version again when cutting other items. + QList::iterator begin = m_cutItemsCache.begin(); + QList::iterator end = m_cutItemsCache.end(); + for (QList::iterator it = begin; it != end; ++it) { + if ((*it).url == item.url()) { + (*it).pixmap = icon; + break; + } + } + + // apply the disabled effect to the icon for marking it as "cut item" + // and apply the icon to the item KIconEffect iconEffect; icon = iconEffect.apply(icon, KIconLoader::Desktop, KIconLoader::DisabledState); m_dolphinModel->setData(idx, QIcon(icon), Qt::DecorationRole);