X-Git-Url: https://cloud.milkyroute.net/gitweb/dolphin.git/blobdiff_plain/453131d6e8a59af87e943455e26074ce8e3ddae3..9a8f75e93cbddca787cbfea8d27ed60009a44512:/src/iconmanager.cpp diff --git a/src/iconmanager.cpp b/src/iconmanager.cpp index a1ab96307..5940c909e 100644 --- a/src/iconmanager.cpp +++ b/src/iconmanager.cpp @@ -77,7 +77,7 @@ void IconManager::updateIcons(const KFileItemList& items) { // make the icons of all hidden files semitransparent foreach (KFileItem item, items) { - if (item.name().startsWith('.')) { + if (item.isHidden()) { applyHiddenItemEffect(item); } } @@ -93,10 +93,6 @@ void IconManager::updateIcons(const KFileItemList& items) // is generated first, as this improves the feeled performance a lot. KFileItemList orderedItems; foreach (KFileItem item, items) { - if (item.name().startsWith('.')) { - applyHiddenItemEffect(item); - } - const QModelIndex dirIndex = m_dolphinModel->indexForItem(item); const QModelIndex proxyIndex = m_proxyModel->mapFromSource(dirIndex); const QRect itemRect = m_view->visualRect(proxyIndex); @@ -130,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; - if (item.name().startsWith('.')) { - KIconEffect::semiTransparent(newPixmap); + QPixmap icon = pixmap; + if (item.isHidden()) { + 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); } } }