diff --git a/src/controls/AboutPage.qml b/src/controls/AboutPage.qml --- a/src/controls/AboutPage.qml +++ b/src/controls/AboutPage.qml @@ -120,7 +120,7 @@ Layout.preferredWidth: height Layout.maximumWidth: page.width / 3; Layout.rightMargin: Units.largeSpacing - source: page.aboutData.programLogo || page.aboutData.programIconName || page.aboutData.componentName + source: Settings.applicationWindowIcon || page.aboutData.programLogo || page.aboutData.programIconName || page.aboutData.componentName } Heading { Layout.fillWidth: true diff --git a/src/settings.h b/src/settings.h --- a/src/settings.h +++ b/src/settings.h @@ -20,6 +20,7 @@ #define SETTINGS_H #include +#include /** * This class contains global kirigami settings about the current device setup @@ -70,6 +71,14 @@ * @since org.kde.kirigami 2.6 */ Q_PROPERTY(QStringList information READ information CONSTANT) + + /** + * @returns application window icon, basically \QApplication::windowIcon() + * + * @since 5.62 + * @since org.kde.kirigami 2.10 + */ + Q_PROPERTY(QVariant applicationWindowIcon READ applicationWindowIcon CONSTANT) public: Settings(QObject *parent = nullptr); @@ -90,6 +99,8 @@ int mouseWheelScrollLines() const; QStringList information() const; + + QVariant applicationWindowIcon() const; static Settings *self(); diff --git a/src/settings.cpp b/src/settings.cpp --- a/src/settings.cpp +++ b/src/settings.cpp @@ -24,6 +24,7 @@ #include #include #include +#include #include "libkirigami/tabletmodewatcher.h" @@ -158,3 +159,12 @@ tr("Qt %2 (built against %3)").arg(QString::fromLocal8Bit(qVersion()), QStringLiteral(QT_VERSION_STR)) }; } + +QVariant Settings::applicationWindowIcon() const +{ + const QIcon& windowIcon = qApp->windowIcon(); + if (windowIcon.isNull()) { + return QVariant(); + } + return windowIcon; +}