X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/0de9ce998583f5b7ed2e741edfbfcd1271224886..8931e14eec50cd8a4693460839edfde8690ca297:/src/iconmanager.cpp diff --git a/src/iconmanager.cpp b/src/iconmanager.cpp index c6c07be7b..2a3827134 100644 --- a/src/iconmanager.cpp +++ b/src/iconmanager.cpp @@ -96,8 +96,10 @@ void IconManager::updatePreviews() generatePreviews(itemList); } -void IconManager::generatePreviews(const KFileItemList &items) +void IconManager::generatePreviews(const KFileItemList& items) { + applyCutItemEffect(); + if (!m_showPreview) { return; } @@ -230,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); @@ -274,7 +290,8 @@ void IconManager::applyCutItemEffect() const QVariant value = m_dolphinModel->data(index, Qt::DecorationRole); if (value.type() == QVariant::Icon) { const QIcon icon(qvariant_cast(value)); - QPixmap pixmap = icon.pixmap(m_view->iconSize()); + const QSize actualSize = icon.actualSize(m_view->iconSize()); + QPixmap pixmap = icon.pixmap(actualSize); // remember current pixmap for the item to be able // to restore it when other items get cut