Split AbstractClient::iconFromDesktopFile into a static function

This way it can be used before we have the window
This commit is contained in:
Aleix Pol 2020-11-13 00:51:20 +01:00
parent e72a555247
commit 0f8813671b
2 changed files with 16 additions and 2 deletions

View file

@ -2707,11 +2707,15 @@ void AbstractClient::setDesktopFileName(QByteArray name)
QString AbstractClient::iconFromDesktopFile() const QString AbstractClient::iconFromDesktopFile() const
{ {
if (m_desktopFileName.isEmpty()) { return iconFromDesktopFile(QFile::decodeName(m_desktopFileName));
}
QString AbstractClient::iconFromDesktopFile(const QString &desktopFileName)
{
if (desktopFileName.isEmpty()) {
return {}; return {};
} }
const QString desktopFileName = QString::fromUtf8(m_desktopFileName);
QString desktopFilePath; QString desktopFilePath;
if (QDir::isAbsolutePath(desktopFileName)) { if (QDir::isAbsolutePath(desktopFileName)) {
@ -2726,6 +2730,9 @@ QString AbstractClient::iconFromDesktopFile() const
desktopFilePath = QStandardPaths::locate(QStandardPaths::ApplicationsLocation, desktopFilePath = QStandardPaths::locate(QStandardPaths::ApplicationsLocation,
desktopFileName + QLatin1String(".desktop")); desktopFileName + QLatin1String(".desktop"));
} }
if (desktopFilePath.isEmpty()) {
return {};
}
KDesktopFile df(desktopFilePath); KDesktopFile df(desktopFilePath);
return df.readIcon(); return df.readIcon();

View file

@ -878,6 +878,13 @@ public:
QRect fullscreenGeometryRestore() const; QRect fullscreenGeometryRestore() const;
/**
* Helper function to compute the icon out of an application id defined by @p fileName
*
* @returns an icon name that can be used with QIcon::fromTheme()
*/
static QString iconFromDesktopFile(const QString &fileName);
public Q_SLOTS: public Q_SLOTS:
virtual void closeWindow() = 0; virtual void closeWindow() = 0;