kio: remove redundant KFileItem::pixmap() method

convenience method, was not applying all possible overlays nor was it
producing a pixmap that would match the icon returned by
KFileItem::iconName()

Signed-off-by: Ivailo Monev <xakepa10@gmail.com>
This commit is contained in:
Ivailo Monev 2024-05-28 09:52:05 +03:00
parent 5f8a5ca497
commit 02557d5dc4
3 changed files with 16 additions and 64 deletions

View file

@ -647,56 +647,6 @@ QString KFileItem::comment() const
return d->m_entry.stringValue(KIO::UDSEntry::UDS_COMMENT);
}
// TODO: where is this used?
QPixmap KFileItem::pixmap(int _size, int _state) const
{
if (!d) {
return QPixmap();
}
const QString iconName = d->m_entry.stringValue(KIO::UDSEntry::UDS_ICON_NAME);
if (!iconName.isEmpty()) {
return DesktopIcon(iconName, _size, _state);
}
if (!d->m_pMimeType) {
// No mimetype determined yet, go for a fast default icon
if (S_ISDIR(d->m_fileMode)) {
const KMimeType::Ptr mimeType = KMimeType::mimeType("inode/directory");
if (mimeType) {
return DesktopIcon(mimeType->iconName(), _size, _state);
} else {
kWarning() << "No mimetype for inode/directory could be found. Check your installation.";
}
}
return DesktopIcon("unknown", _size, _state);
}
KMimeType::Ptr mime;
// Use guessed mimetype for the icon
if (!d->m_guessedMimeType.isEmpty()) {
mime = KMimeType::mimeType(d->m_guessedMimeType);
} else {
mime = d->m_pMimeType;
}
// Support for gzipped files: extract mimetype of contained file
// See also the relevant code in overlays, which adds the zip overlay.
if (mime->name() == "application/x-gzip" && d->m_url.fileName().endsWith( QLatin1String(".gz"))) {
KUrl sf;
sf.setPath(d->m_url.path().left( d->m_url.path().length() - 3));
// kDebug() << "subFileName=" << subFileName;
mime = KMimeType::findByUrl(sf, 0, !d->m_bIsLocalUrl);
}
QPixmap p = KIconLoader::global()->loadMimeTypeIcon(mime->iconName(d->m_url), KIconLoader::Desktop, _size, _state);
// kDebug() << "finding pixmap for " << d->m_url.url() << " : " << mime->name();
if (p.isNull()) {
kWarning() << "Pixmap not found for mimetype " << d->m_pMimeType->name();
}
return p;
}
bool KFileItem::isReadable() const
{
if (!d) {

View file

@ -313,16 +313,6 @@ public:
*/
QString iconName() const;
/**
* Returns a pixmap representing the file.
* @param _size Size for the pixmap in pixels. Zero will return the
* globally configured default size.
* @param _state The state of the icon: KIconLoader::DefaultState,
* KIconLoader::ActiveState or KIconLoader::DisabledState.
* @return the pixmap
*/
QPixmap pixmap(int _size, int _state = 0) const;
/**
* Returns the overlays (bitfield of KIconLoader::*Overlay flags) that are used
* for this item's pixmap. Overlays are used to show for example, whether

View file

@ -56,6 +56,8 @@
using namespace KIO;
static const int s_previewsize = KIconLoader::SizeEnormous;
/** @internal */
class RenameDialog::RenameDialogPrivate
{
@ -264,8 +266,8 @@ RenameDialog::RenameDialog(QWidget *parent, const QString & _caption,
d->m_srcPreview = d->createPixmapWidget(parent);
d->m_destPreview = d->createPixmapWidget(parent);
d->m_srcPreview->setMinimumHeight(KIconLoader::SizeEnormous);
d->m_destPreview->setMinimumHeight(KIconLoader::SizeEnormous);
d->m_srcPreview->setMinimumHeight(s_previewsize);
d->m_destPreview->setMinimumHeight(s_previewsize);
d->m_srcPreview->setAlignment(Qt::AlignCenter);
d->m_destPreview->setAlignment(Qt::AlignCenter);
@ -618,14 +620,24 @@ void RenameDialog::showSrcIcon(const KFileItem& fileitem)
{
// The preview job failed, show a standard file icon.
d->m_srcPendingPreview = false;
d->m_srcPreview->setPixmap(fileitem.pixmap(d->m_srcPreview->height()));
d->m_srcPreview->setPixmap(
KIconLoader::global()->loadIcon(
fileitem.iconName(), KIconLoader::Desktop, s_previewsize, KIconLoader::DefaultState,
fileitem.overlays()
)
);
}
void RenameDialog::showDestIcon(const KFileItem& fileitem)
{
// The preview job failed, show a standard file icon.
d->m_destPendingPreview = false;
d->m_destPreview->setPixmap(fileitem.pixmap(d->m_srcPreview->height()));
d->m_destPreview->setPixmap(
KIconLoader::global()->loadIcon(
fileitem.iconName(), KIconLoader::Desktop, s_previewsize, KIconLoader::DefaultState,
fileitem.overlays()
)
);
}
void RenameDialog::showSrcPreview(const KFileItem& fileitem, const QPixmap& pixmap)