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;