From 230636f2e1c30c4b7a28f307edad6a9d2fec4ddf Mon Sep 17 00:00:00 2001 From: Tsic Liu Date: Tue, 3 Sep 2024 19:10:20 +0800 Subject: [PATCH] feat: add startupwmclass prop export log: as title --- .../org.desktopspec.ApplicationManager1.Application.xml | 8 ++++++++ src/dbus/applicationservice.cpp | 7 +++++++ src/dbus/applicationservice.h | 4 ++++ 3 files changed, 19 insertions(+) diff --git a/api/dbus/org.desktopspec.ApplicationManager1.Application.xml b/api/dbus/org.desktopspec.ApplicationManager1.Application.xml index 2d33b39..de2f500 100644 --- a/api/dbus/org.desktopspec.ApplicationManager1.Application.xml +++ b/api/dbus/org.desktopspec.ApplicationManager1.Application.xml @@ -117,6 +117,14 @@ + + + + + diff --git a/src/dbus/applicationservice.cpp b/src/dbus/applicationservice.cpp index 75b387c..f016ebf 100644 --- a/src/dbus/applicationservice.cpp +++ b/src/dbus/applicationservice.cpp @@ -559,6 +559,12 @@ bool ApplicationService::terminal() const noexcept return false; } +QString ApplicationService::startupWMClass() const noexcept +{ + auto value = findEntryValue(DesktopFileEntryKey, "StartupWMClass", EntryValueType::String); + return value.isNull() ? QString{} : value.toString(); +} + qint64 ApplicationService::installedTime() const noexcept { return m_installedTime; @@ -894,6 +900,7 @@ void ApplicationService::resetEntry(DesktopEntry *newEntry) noexcept emit terminalChanged(); emit environChanged(); emit launchedTimesChanged(); + emit startupWMClassChanged(); } std::optional ApplicationService::unescapeExecArgs(const QString &str) noexcept diff --git a/src/dbus/applicationservice.h b/src/dbus/applicationservice.h index f2acd30..df7299d 100644 --- a/src/dbus/applicationservice.h +++ b/src/dbus/applicationservice.h @@ -74,6 +74,9 @@ public: Q_PROPERTY(bool Terminal READ terminal NOTIFY terminalChanged) [[nodiscard]] bool terminal() const noexcept; + Q_PROPERTY(QString StartupWMClass READ startupWMClass NOTIFY startupWMClassChanged) + [[nodiscard]] QString startupWMClass() const noexcept; + // FIXME: // This property should implement with fuse guarded // $XDG_CONFIG_HOME/autostart/. Current implementation has some problems, @@ -163,6 +166,7 @@ Q_SIGNALS: void terminalChanged(); void environChanged(); void launchedTimesChanged(); + void startupWMClassChanged(); private: friend class ApplicationManager1Service;