Skip to content

Commit 25de381

Browse files
committed
feat: export actions for dde-apps
log: as title
1 parent 69f2200 commit 25de381

File tree

2 files changed

+26
-0
lines changed

2 files changed

+26
-0
lines changed

applets/dde-apps/amappitem.cpp

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -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

6975
void 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
}

applets/dde-apps/amappitem.h

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ class AMAppItem : public Application, public AppItem
2323

2424
private:
2525
QString getLocaleOrDefaultValue(const QStringMap &value, const QString &targetKey, const QString &fallbackKey);
26+
void updateActions(const QStringList &actions, const PropMap &actionName);
2627

2728
private Q_SLOTS:
2829
void onPropertyChanged(const QDBusMessage &msg);

0 commit comments

Comments
 (0)