Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
25 changes: 25 additions & 0 deletions applets/dde-apps/amappitem.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -64,6 +64,12 @@ AMAppItem::AMAppItem(const QDBusObjectPath &path, const ObjectInterfaceMap &sour

auto isOnDesktop = appInfo.value(u8"OnDesktop").toBool();
AppItem::setOnDesktop(isOnDesktop);

PropMap actionName;
appInfo.value(u8"ActionName").value<QDBusArgument>() >> actionName;

auto actions = appInfo.value(u8"Actions").toStringList();
updateActions(actions, actionName);
}

void AMAppItem::launch(const QString &action, const QStringList &fields, const QVariantMap &options)
Expand Down Expand Up @@ -125,5 +131,24 @@ void AMAppItem::onPropertyChanged(const QDBusMessage &msg)
AppItem::setStartupWMclass(Application::startupWMClass());
AppItem::setAutoStart(Application::autoStart());
AppItem::setOnDesktop(Application::isOnDesktop());

auto actions = Application::actions();
auto actionName = Application::actionName();
updateActions(actions, actionName);
}

void AMAppItem::updateActions(const QStringList &actions, const PropMap &actionName)
{
QJsonArray actionsArray;
for (auto action : actions) {
auto localeNames = actionName.value(action);
QJsonObject actionObject;
actionObject.insert(QStringLiteral("id"), action);
actionObject.insert(QStringLiteral("name"), getLocaleOrDefaultValue(localeNames, action, DEFAULT_KEY));
actionsArray.append(actionObject);
}
if (actions.size() > 0) {
AppItem::setActions(QJsonDocument(actionsArray).toJson());
}
}
}
1 change: 1 addition & 0 deletions applets/dde-apps/amappitem.h
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@ class AMAppItem : public Application, public AppItem

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

private Q_SLOTS:
void onPropertyChanged(const QDBusMessage &msg);
Expand Down
Loading