diff --git a/src/core/qmlglobal.cpp b/src/core/qmlglobal.cpp index 05197f26..3321fcf3 100644 --- a/src/core/qmlglobal.cpp +++ b/src/core/qmlglobal.cpp @@ -19,6 +19,7 @@ #include #include "generation.hpp" +#include "iconimageprovider.hpp" #include "qmlscreen.hpp" #include "rootwrapper.hpp" @@ -188,6 +189,10 @@ QVariant QuickshellGlobal::env(const QString& variable) { // NOLINT return qEnvironmentVariable(vstr.data()); } +QString QuickshellGlobal::iconPath(const QString& icon) { + return IconImageProvider::requestString(icon, ""); +} + QuickshellGlobal* QuickshellGlobal::create(QQmlEngine* engine, QJSEngine* /*unused*/) { auto* qsg = new QuickshellGlobal(); auto* generation = EngineGeneration::findEngineGeneration(engine); diff --git a/src/core/qmlglobal.hpp b/src/core/qmlglobal.hpp index 8de55fc2..14d99c52 100644 --- a/src/core/qmlglobal.hpp +++ b/src/core/qmlglobal.hpp @@ -125,6 +125,11 @@ public: /// Returns the string value of an environment variable or null if it is not set. Q_INVOKABLE QVariant env(const QString& variable); + /// Returns a source string usable in an [Image] for a given system icon. + /// + /// [Image]: https://doc.qt.io/qt-6/qml-qtquick-image.html + Q_INVOKABLE static QString iconPath(const QString& icon); + [[nodiscard]] QString workingDirectory() const; void setWorkingDirectory(QString workingDirectory);