diff --git a/src/alternativesmodel.h b/src/alternativesmodel.h --- a/src/alternativesmodel.h +++ b/src/alternativesmodel.h @@ -58,7 +58,8 @@ public: enum Roles { PluginIdRole = Qt::UserRole+1, - IconNameRole + IconNameRole, + ActionRole }; explicit AlternativesModel(QObject* parent = nullptr); diff --git a/src/alternativesmodel.cpp b/src/alternativesmodel.cpp --- a/src/alternativesmodel.cpp +++ b/src/alternativesmodel.cpp @@ -175,7 +175,8 @@ QHash roles = QAbstractListModel::roleNames(); roles.unite({ { IconNameRole, "iconName" }, - { PluginIdRole, "pluginId" } + { PluginIdRole, "pluginId" }, + { ActionRole, "action" } }); return roles; } @@ -270,6 +271,10 @@ return QIcon::fromTheme(data.iconName()); case PluginIdRole: return data.pluginId(); + case ActionRole: { + QString action = data.value(QStringLiteral("X-Purpose-Action")); + return action.isEmpty() ? data.name() : action; + } } return QVariant(); } diff --git a/src/plugins/bluetooth/bluetoothplugin.json b/src/plugins/bluetooth/bluetoothplugin.json --- a/src/plugins/bluetooth/bluetoothplugin.json +++ b/src/plugins/bluetooth/bluetoothplugin.json @@ -64,7 +64,7 @@ "Description[zh_TW]": "透過藍牙傳送", "Icon": "preferences-system-bluetooth", "License": "GPL", - "Name": "Send via Bluetooth...", + "Name": "Send via Bluetooth", "Name[ca@valencia]": "Envia per Bluetooth...", "Name[ca]": "Envia per Bluetooth...", "Name[cs]": "Poslat přes Bluetooth...", @@ -99,5 +99,6 @@ "X-Purpose-Constraints": [], "X-Purpose-PluginTypes": [ "Export" - ] + ], + "X-Purpose-Action": "Send via Bluetooth..." } diff --git a/src/plugins/email/emailplugin.json b/src/plugins/email/emailplugin.json --- a/src/plugins/email/emailplugin.json +++ b/src/plugins/email/emailplugin.json @@ -67,7 +67,7 @@ "Description[zh_TW]": "透過電子郵件傳送", "Icon": "mail-message", "License": "GPL", - "Name": "Send via Email...", + "Name": "Send via Email", "Name[ar]": "أرسِل عبر البريد الإلكتروني…", "Name[ca@valencia]": "Envia per correu electrònic....", "Name[ca]": "Envia per correu electrònic....", @@ -103,5 +103,6 @@ "X-Purpose-PluginTypes": [ "Export", "ShareUrl" - ] + ], + "X-Purpose-Action": "Send via Email..." } diff --git a/src/plugins/imgur/imgurplugin.json b/src/plugins/imgur/imgurplugin.json --- a/src/plugins/imgur/imgurplugin.json +++ b/src/plugins/imgur/imgurplugin.json @@ -109,5 +109,6 @@ ], "X-Purpose-PluginTypes": [ "Export" - ] + ], + "X-Purpose-Action": "Imgur" } diff --git a/src/plugins/kdeconnect/kdeconnectplugin.json b/src/plugins/kdeconnect/kdeconnectplugin.json --- a/src/plugins/kdeconnect/kdeconnectplugin.json +++ b/src/plugins/kdeconnect/kdeconnectplugin.json @@ -69,7 +69,7 @@ "Description[zh_TW]": "透過 KDE Connect 傳送", "Icon": "kdeconnect", "License": "GPL", - "Name": "Send To Device...", + "Name": "Send To Device", "Name[ar]": "أرسِل إلى جهاز…", "Name[ca@valencia]": "Envia a un dispositiu...", "Name[ca]": "Envia a un dispositiu...", @@ -111,5 +111,6 @@ "X-Purpose-PluginTypes": [ "Export", "ShareUrl" - ] + ], + "X-Purpose-Action": "Send To Device..." } diff --git a/src/plugins/kdeconnect_sms/kdeconnectsmsplugin.json b/src/plugins/kdeconnect_sms/kdeconnectsmsplugin.json --- a/src/plugins/kdeconnect_sms/kdeconnectsmsplugin.json +++ b/src/plugins/kdeconnect_sms/kdeconnectsmsplugin.json @@ -60,7 +60,7 @@ "Description[zh_TW]": "透過 KDE 連線傳送簡訊", "Icon": "kdeconnect", "License": "GPL", - "Name": "Send SMS via KDE Connect...", + "Name": "Send SMS via KDE Connect", "Name[ca@valencia]": "Envia un SMS a través del KDE Connect...", "Name[ca]": "Envia un SMS a través del KDE Connect...", "Name[da]": "Send sms via KDE Connect...", @@ -91,5 +91,6 @@ ], "X-Purpose-PluginTypes": [ "ShareUrl" - ] + ], + "X-Purpose-Action": "Send SMS via KDE Connect..." } diff --git a/src/plugins/ktp-sendfile/ktpsendfileplugin.json b/src/plugins/ktp-sendfile/ktpsendfileplugin.json --- a/src/plugins/ktp-sendfile/ktpsendfileplugin.json +++ b/src/plugins/ktp-sendfile/ktpsendfileplugin.json @@ -69,7 +69,7 @@ "Description[zh_TW]": "透過即時訊息傳送", "Icon": "im-user", "License": "GPL", - "Name": "Send To Contact...", + "Name": "Send To Contact", "Name[ar]": "أرسِل إلى متراسل…", "Name[bs]": "Šalji na kontakt...", "Name[ca@valencia]": "Envia a un contacte...", @@ -109,5 +109,6 @@ ], "X-Purpose-PluginTypes": [ "Export" - ] + ], + "X-Purpose-Action": "Send To Contact..." } diff --git a/src/plugins/nextcloud/nextcloudplugin.json b/src/plugins/nextcloud/nextcloudplugin.json --- a/src/plugins/nextcloud/nextcloudplugin.json +++ b/src/plugins/nextcloud/nextcloudplugin.json @@ -104,5 +104,6 @@ ], "X-Purpose-PluginTypes": [ "Export" - ] + ], + "X-Purpose-Action": "NextCloud..." } diff --git a/src/plugins/pastebin/pastebinplugin.json b/src/plugins/pastebin/pastebinplugin.json --- a/src/plugins/pastebin/pastebinplugin.json +++ b/src/plugins/pastebin/pastebinplugin.json @@ -109,5 +109,6 @@ ], "X-Purpose-PluginTypes": [ "Export" - ] + ], + "X-Purpose-Action": "Pastebin" } diff --git a/src/plugins/phabricator/phabricatorplugin.json b/src/plugins/phabricator/phabricatorplugin.json --- a/src/plugins/phabricator/phabricatorplugin.json +++ b/src/plugins/phabricator/phabricatorplugin.json @@ -109,5 +109,6 @@ ], "X-Purpose-PluginTypes": [ "Export" - ] + ], + "X-Purpose-Action": "Phabricator..." } diff --git a/src/plugins/reviewboard/reviewboardplugin.json b/src/plugins/reviewboard/reviewboardplugin.json --- a/src/plugins/reviewboard/reviewboardplugin.json +++ b/src/plugins/reviewboard/reviewboardplugin.json @@ -114,5 +114,6 @@ ], "X-Purpose-PluginTypes": [ "Export" - ] + ], + "X-Purpose-Action": "Review Board" } diff --git a/src/plugins/saveas/saveasplugin.json b/src/plugins/saveas/saveasplugin.json --- a/src/plugins/saveas/saveasplugin.json +++ b/src/plugins/saveas/saveasplugin.json @@ -68,7 +68,7 @@ "Description[zh_TW]": "儲存分享到選定的位置。", "Icon": "document-save", "License": "GPL", - "Name": "Save as...", + "Name": "Save as", "Name[ar]": "احفظ كَ‍…", "Name[ca@valencia]": "Guarda com a...", "Name[ca]": "Desa com a...", @@ -107,5 +107,6 @@ "X-Purpose-Constraints": [], "X-Purpose-PluginTypes": [ "Export" - ] + ], + "X-Purpose-Action": "Save as..." } diff --git a/src/plugins/telegram/telegramplugin.json b/src/plugins/telegram/telegramplugin.json --- a/src/plugins/telegram/telegramplugin.json +++ b/src/plugins/telegram/telegramplugin.json @@ -65,7 +65,7 @@ "Description[zh_TW]": "透過 Telegram 傳送", "Icon": "telegram", "License": "GPL", - "Name": "Send via Telegram...", + "Name": "Send via Telegram", "Name[ar]": "أرسِل عبر «تلغرام»…", "Name[ca@valencia]": "Envia via Telegram...", "Name[ca]": "Envia via Telegram...", @@ -104,5 +104,6 @@ ], "X-Purpose-PluginTypes": [ "Export" - ] + ], + "X-Purpose-Action": "Send via Telegram..." } diff --git a/src/plugins/twitter/metadata.json b/src/plugins/twitter/metadata.json --- a/src/plugins/twitter/metadata.json +++ b/src/plugins/twitter/metadata.json @@ -112,5 +112,6 @@ "X-Purpose-Constraints": [], "X-Purpose-PluginTypes": [ "Export" - ] + ], + "X-Purpose-Action": "Twitter..." } diff --git a/src/plugins/youtube/youtubeplugin.json b/src/plugins/youtube/youtubeplugin.json --- a/src/plugins/youtube/youtubeplugin.json +++ b/src/plugins/youtube/youtubeplugin.json @@ -112,5 +112,6 @@ ], "X-Purpose-PluginTypes": [ "Export" - ] + ], + "X-Purpose-Action": "Youtube..." } diff --git a/src/widgets/menu.cpp b/src/widgets/menu.cpp --- a/src/widgets/menu.cpp +++ b/src/widgets/menu.cpp @@ -89,7 +89,7 @@ clear(); for(int i=0, c=d->m_model->rowCount(); i != c; ++i) { QModelIndex idx = d->m_model->index(i); - QAction* a = addAction(idx.data(Qt::DisplayRole).toString()); + QAction* a = addAction(idx.data(AlternativesModel::ActionRole).toString()); a->setToolTip(idx.data(Qt::ToolTipRole).toString()); a->setIcon(idx.data(Qt::DecorationRole).value()); a->setProperty("pluginId", idx.data(AlternativesModel::PluginIdRole));