Kit: Add static method to get icon for a path

Change-Id: Icd15e53022453be0713ee4953dd8f1f099b053de
Reviewed-by: Tobias Hunger <tobias.hunger@digia.com>
This commit is contained in:
Tobias Hunger
2013-08-21 12:12:27 +02:00
parent 97e199eac2
commit 6ee2d554e1
2 changed files with 16 additions and 6 deletions

View File

@@ -33,6 +33,7 @@
#include "ioutputparser.h" #include "ioutputparser.h"
#include <QApplication> #include <QApplication>
#include <QFileInfo>
#include <QIcon> #include <QIcon>
#include <QStyle> #include <QStyle>
#include <QTextStream> #include <QTextStream>
@@ -298,6 +299,19 @@ QIcon Kit::icon() const
return d->m_icon; return d->m_icon;
} }
QIcon Kit::icon(const QString &path)
{
if (path.isEmpty())
return QIcon();
if (path == QLatin1String(":///DESKTOP///"))
return qApp->style()->standardIcon(QStyle::SP_ComputerIcon);
QFileInfo fi(path);
if (fi.isFile() && fi.isReadable())
return QIcon(path);
return QIcon();
}
QString Kit::iconPath() const QString Kit::iconPath() const
{ {
return d->m_iconPath; return d->m_iconPath;
@@ -308,12 +322,7 @@ void Kit::setIconPath(const QString &path)
if (d->m_iconPath == path) if (d->m_iconPath == path)
return; return;
d->m_iconPath = path; d->m_iconPath = path;
if (path.isNull()) d->m_icon = icon(path);
d->m_icon = QIcon();
else if (path == QLatin1String(":///DESKTOP///"))
d->m_icon = qApp->style()->standardIcon(QStyle::SP_ComputerIcon);
else
d->m_icon = QIcon(path);
kitUpdated(); kitUpdated();
} }

View File

@@ -80,6 +80,7 @@ public:
Core::Id id() const; Core::Id id() const;
QIcon icon() const; QIcon icon() const;
static QIcon icon(const QString &path);
QString iconPath() const; QString iconPath() const;
void setIconPath(const QString &path); void setIconPath(const QString &path);