From 91656a8abc3aadc78630341079d3c2ca9f2533c0 Mon Sep 17 00:00:00 2001 From: Peter Penz Date: Mon, 28 Jan 2008 17:26:25 +0000 Subject: [PATCH] fixed issue that previews of hidden files had no semitransparent effect (the semi-transparent effect requires having an alpha mask) svn path=/trunk/KDE/kdebase/apps/; revision=767742 --- src/iconmanager.cpp | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/src/iconmanager.cpp b/src/iconmanager.cpp index 5f9bd5134..5940c909e 100644 --- a/src/iconmanager.cpp +++ b/src/iconmanager.cpp @@ -126,18 +126,24 @@ void IconManager::replaceIcon(const KFileItem& item, const QPixmap& pixmap) const QModelIndex idx = m_dolphinModel->indexForItem(item); if (idx.isValid() && (idx.column() == 0)) { - QPixmap newPixmap = pixmap; + QPixmap icon = pixmap; if (item.isHidden()) { - KIconEffect::semiTransparent(newPixmap); + if (!icon.hasAlpha()) { + // the semitransparent operation requires having an alpha mask + QPixmap alphaMask(icon.width(), icon.height()); + alphaMask.fill(); + icon.setAlphaChannel(alphaMask); + } + KIconEffect::semiTransparent(icon); } const QMimeData* mimeData = QApplication::clipboard()->mimeData(); if (KonqMimeData::decodeIsCutSelection(mimeData) && isCutItem(item)) { KIconEffect iconEffect; - newPixmap = iconEffect.apply(newPixmap, KIconLoader::Desktop, KIconLoader::DisabledState); - m_dolphinModel->setData(idx, QIcon(newPixmap), Qt::DecorationRole); + icon = iconEffect.apply(icon, KIconLoader::Desktop, KIconLoader::DisabledState); + m_dolphinModel->setData(idx, QIcon(icon), Qt::DecorationRole); } else { - m_dolphinModel->setData(idx, QIcon(newPixmap), Qt::DecorationRole); + m_dolphinModel->setData(idx, QIcon(icon), Qt::DecorationRole); } } } -- 2.47.3