@@ -64,6 +64,12 @@ AMAppItem::AMAppItem(const QDBusObjectPath &path, const ObjectInterfaceMap &sour
6464
6565 auto isOnDesktop = appInfo.value (u8" OnDesktop" ).toBool ();
6666 AppItem::setOnDesktop (isOnDesktop);
67+
68+ PropMap actionName;
69+ appInfo.value (u8" ActionName" ).value <QDBusArgument>() >> actionName;
70+
71+ auto actions = appInfo.value (u8" Actions" ).toStringList ();
72+ updateActions (actions, actionName);
6773}
6874
6975void AMAppItem::launch (const QString &action, const QStringList &fields, const QVariantMap &options)
@@ -125,5 +131,24 @@ void AMAppItem::onPropertyChanged(const QDBusMessage &msg)
125131 AppItem::setStartupWMclass (Application::startupWMClass ());
126132 AppItem::setAutoStart (Application::autoStart ());
127133 AppItem::setOnDesktop (Application::isOnDesktop ());
134+
135+ auto actions = Application::actions ();
136+ auto actionName = Application::actionName ();
137+ updateActions (actions, actionName);
138+ }
139+
140+ void AMAppItem::updateActions (const QStringList &actions, const PropMap &actionName)
141+ {
142+ QJsonArray actionsArray;
143+ for (auto action : actions) {
144+ auto localeNames = actionName.value (action);
145+ QJsonObject actionObject;
146+ actionObject.insert (QStringLiteral (" id" ), action);
147+ actionObject.insert (QStringLiteral (" name" ), getLocaleOrDefaultValue (localeNames, action, DEFAULT_KEY));
148+ actionsArray.append (actionObject);
149+ }
150+ if (actions.size () > 0 ) {
151+ AppItem::setActions (QJsonDocument (actionsArray).toJson ());
152+ }
128153}
129154}
0 commit comments