diff --git a/docs/API/knut/rcdocument.md b/docs/API/knut/rcdocument.md
index 02747946..1b097cec 100644
--- a/docs/API/knut/rcdocument.md
+++ b/docs/API/knut/rcdocument.md
@@ -30,7 +30,9 @@ import Knut
| | Name |
|-|-|
|[ToolBar](../knut/toolbar.md) |**[action](#action)**(string id)|
+|array<[Action](../knut/action.md)> |**[actionsForLanguage](#actionsForLanguage)**(string language)|
|array<[Action](../knut/action.md)> |**[actionsFromMenu](#actionsFromMenu)**(string menuId)|
+|array<[Action](../knut/action.md)> |**[actionsFromMenuForLanguage](#actionsFromMenuForLanguage)**(string menuId, string language)|
|array<[Action](../knut/action.md)> |**[actionsFromToolbar](#actionsFromToolbar)**(string toolBarId)|
|void |**[convertActions](#convertActions)**(int flags)|
||**[convertAssets](#convertAssets)**(int flags)|
@@ -118,10 +120,18 @@ Note that the RC file may be valid, and our parser needs to be updated.
Returns the action for the given `id`.
+#### array<[Action](../knut/action.md)> **actionsForLanguage**(string language)
+
+Returns all actions used for language `language`.
+
#### array<[Action](../knut/action.md)> **actionsFromMenu**(string menuId)
Returns all actions used in the menu `menuId`.
+#### array<[Action](../knut/action.md)> **actionsFromMenuForLanguage**(string menuId, string language)
+
+Returns all actions used in the menu `menuId` for language `language`.
+
#### array<[Action](../knut/action.md)> **actionsFromToolbar**(string toolBarId)
Returns all actions used in the toolbar `toolBarId`.
diff --git a/src/core/rcdocument.cpp b/src/core/rcdocument.cpp
index e8b10f15..8c335e80 100644
--- a/src/core/rcdocument.cpp
+++ b/src/core/rcdocument.cpp
@@ -192,6 +192,29 @@ RcCore::ActionList RcDocument::actionsFromMenuForLanguage(const QString &menuId,
return actions;
}
+/*!
+ * \qmlmethod array RcDocument::actionsForLanguage(string language)
+ * Returns all actions used for language `language`.
+ */
+RcCore::ActionList RcDocument::actionsForLanguage(const QString &language) const
+{
+ LOG(language);
+
+ if (!isDataValid())
+ return {};
+
+ RcCore::ActionList actions;
+ if (m_rcFile.isValid && m_rcFile.data.contains(language)) {
+ const RcCore::Data data = const_cast(&m_rcFile)->data[language];
+ actions = RcCore::convertActions(
+ data, static_cast(DEFAULT_VALUE(ConversionFlag, RcAssetFlags)));
+
+ } else {
+ return {};
+ }
+ return actions;
+}
+
/*!
* \qmlmethod array RcDocument::actionsFromToolbar(string toolBarId)
* Returns all actions used in the toolbar `toolBarId`.
diff --git a/src/core/rcdocument.h b/src/core/rcdocument.h
index 67a2ee8d..9fb0c94a 100644
--- a/src/core/rcdocument.h
+++ b/src/core/rcdocument.h
@@ -65,6 +65,7 @@ class RcDocument : public Document
QList assets() const;
QList actions() const;
Q_INVOKABLE RcCore::Action action(const QString &id) const;
+ Q_INVOKABLE RcCore::ActionList actionsForLanguage(const QString &language) const;
Q_INVOKABLE RcCore::ActionList actionsFromMenu(const QString &menuId) const;
Q_INVOKABLE RcCore::ActionList actionsFromMenuForLanguage(const QString &menuId, const QString &language) const;
Q_INVOKABLE RcCore::ActionList actionsFromToolbar(const QString &toolBarId) const;