diff --git a/docs/API/knut/rcdocument.md b/docs/API/knut/rcdocument.md index 02747946..3daf0d20 100644 --- a/docs/API/knut/rcdocument.md +++ b/docs/API/knut/rcdocument.md @@ -32,6 +32,7 @@ import Knut |[ToolBar](../knut/toolbar.md) |**[action](#action)**(string id)| |array<[Action](../knut/action.md)> |**[actionsFromMenu](#actionsFromMenu)**(string menuId)| |array<[Action](../knut/action.md)> |**[actionsFromToolbar](#actionsFromToolbar)**(string toolBarId)| +|string |**[captionDialogForLanguage](#captionDialogForLanguage)**(string language, string dialogId)| |void |**[convertActions](#convertActions)**(int flags)| ||**[convertAssets](#convertAssets)**(int flags)| |string |**[convertLanguageToCode](#convertLanguageToCode)**(string language)| @@ -126,6 +127,10 @@ Returns all actions used in the menu `menuId`. Returns all actions used in the toolbar `toolBarId`. +#### string **captionDialogForLanguage**(string language, string dialogId) + +Returns the string with `id` for the given `language`. + #### void **convertActions**(int flags) diff --git a/src/core/rcdocument.cpp b/src/core/rcdocument.cpp index e8b10f15..5896271e 100644 --- a/src/core/rcdocument.cpp +++ b/src/core/rcdocument.cpp @@ -486,6 +486,24 @@ QString RcDocument::stringForDialogAndLanguage(const QString &language, const QS } } +/*! + * \qmlmethod string RcDocument::captionDialogForLanguage(string language, string dialogId) + * Returns the string with `id` for the given `language`. + */ +QString RcDocument::captionDialogForLanguage(const QString &language, const QString &dialogId) const +{ + LOG(language, dialogId); + + if (m_rcFile.isValid && m_rcFile.data.contains(language)) { + const RcCore::Data data = const_cast(&m_rcFile)->data[language]; + const auto dialog = data.dialog(dialogId); + return dialog->caption; + } else { + spdlog::warn("{}: language {} does not exist in the rc file.", FUNCTION_NAME, language); + return {}; + } +} + /*! * \qmlmethod string RcDocument::stringForDialog(string dialogId, string id) * Returns the string with `id` for the given `dialogid`. diff --git a/src/core/rcdocument.h b/src/core/rcdocument.h index 67a2ee8d..a361414a 100644 --- a/src/core/rcdocument.h +++ b/src/core/rcdocument.h @@ -104,6 +104,8 @@ class RcDocument : public Document const RcCore::RcFile &file() const; + Q_INVOKABLE QString captionDialogForLanguage(const QString &language, const QString &dialogId) const; + public slots: void convertAssets(int flags = DEFAULT_VALUE(ConversionFlag, RcAssetFlags)); void convertActions(int flags = DEFAULT_VALUE(ConversionFlags, RcAssetFlags));