sw/source/ui/dialog/swdlgfact.cxx            |    3 -
 sw/source/ui/misc/translatelangselect.cxx    |   71 ++++++++++++++-------------
 sw/source/uibase/inc/translatelangselect.hxx |    3 -
 3 files changed, 40 insertions(+), 37 deletions(-)

New commits:
commit 92d3627b5b2b3cf9da1e0eea2a8724e6936d25e3
Author:     Noel Grandin <noel.gran...@collabora.co.uk>
AuthorDate: Tue Mar 14 11:25:32 2023 +0200
Commit:     Noel Grandin <noel.gran...@collabora.co.uk>
CommitDate: Tue Mar 14 14:07:08 2023 +0000

    language list in SwTranslateLangSelectDlg can be static
    
    Change-Id: Ica911ec651e536e399491c0c28765aeb9e021548
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/148843
    Tested-by: Jenkins
    Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk>

diff --git a/sw/source/ui/dialog/swdlgfact.cxx 
b/sw/source/ui/dialog/swdlgfact.cxx
index ecf45ec06109..9b00fa7ee676 100644
--- a/sw/source/ui/dialog/swdlgfact.cxx
+++ b/sw/source/ui/dialog/swdlgfact.cxx
@@ -852,8 +852,7 @@ sal_uInt16 AbstractMailMergeWizard_Impl::GetRestartPage() 
const
 std::optional<SwLanguageListItem> 
AbstractSwTranslateLangSelectDlg_Impl::GetSelectedLanguage()
 {
 #if !ENABLE_WASM_STRIP_EXTRA
-    SwTranslateLangSelectDlg* pDlg = 
dynamic_cast<SwTranslateLangSelectDlg*>(m_xDlg.get());
-    return pDlg->GetSelectedLanguage();
+    return SwTranslateLangSelectDlg::GetSelectedLanguage();
 #else
     return {};
 #endif
diff --git a/sw/source/ui/misc/translatelangselect.cxx 
b/sw/source/ui/misc/translatelangselect.cxx
index b8fd0718e7d3..2d438edf59d1 100644
--- a/sw/source/ui/misc/translatelangselect.cxx
+++ b/sw/source/ui/misc/translatelangselect.cxx
@@ -39,6 +39,41 @@
 #include <com/sun/star/task/XStatusIndicatorFactory.hpp>
 #include <linguistic/translate.hxx>
 
+static const std::vector<SwLanguageListItem>& getLanguageVec()
+{
+    static const std::vector<SwLanguageListItem> gLanguageVec{
+        SwLanguageListItem("BG", "Bulgarian"),
+        SwLanguageListItem("CS", "Czech"),
+        SwLanguageListItem("DA", "Danish"),
+        SwLanguageListItem("DE", "German"),
+        SwLanguageListItem("EL", "Greek"),
+        SwLanguageListItem("EN-GB", "English (British)"),
+        SwLanguageListItem("EN-US", "English (American)"),
+        SwLanguageListItem("ES", "Spanish"),
+        SwLanguageListItem("ET", "Estonian"),
+        SwLanguageListItem("FI", "Finnish"),
+        SwLanguageListItem("FR", "French"),
+        SwLanguageListItem("HU", "Hungarian"),
+        SwLanguageListItem("ID", "Indonesian"),
+        SwLanguageListItem("IT", "Italian"),
+        SwLanguageListItem("JA", "Japanese"),
+        SwLanguageListItem("LT", "Lithuanian"),
+        SwLanguageListItem("LV", "Latvian"),
+        SwLanguageListItem("NL", "Dutch"),
+        SwLanguageListItem("PL", "Polish"),
+        SwLanguageListItem("PT-BR", "Portuguese (Brazilian)"),
+        SwLanguageListItem("PT-PT", "Portuguese (European)"),
+        SwLanguageListItem("RO", "Romanian"),
+        SwLanguageListItem("RU", "Russian"),
+        SwLanguageListItem("SK", "Slovak"),
+        SwLanguageListItem("SL", "Slovenian"),
+        SwLanguageListItem("SV", "Swedish"),
+        SwLanguageListItem("TR", "Turkish"),
+        SwLanguageListItem("ZH", "Chinese (simplified)")
+    };
+    return gLanguageVec;
+}
+
 int SwTranslateLangSelectDlg::selectedLangIdx = -1;
 SwTranslateLangSelectDlg::SwTranslateLangSelectDlg(weld::Window* pParent, 
SwWrtShell& rSh)
     : GenericDialogController(pParent, 
"modules/swriter/ui/translationdialog.ui",
@@ -47,36 +82,6 @@ 
SwTranslateLangSelectDlg::SwTranslateLangSelectDlg(weld::Window* pParent, SwWrtS
     , m_xLanguageListBox(m_xBuilder->weld_combo_box("combobox1"))
     , m_xBtnCancel(m_xBuilder->weld_button("cancel"))
     , m_xBtnTranslate(m_xBuilder->weld_button("translate"))
-    , m_xLanguageVec({
-          SwLanguageListItem("BG", "Bulgarian"),
-          SwLanguageListItem("CS", "Czech"),
-          SwLanguageListItem("DA", "Danish"),
-          SwLanguageListItem("DE", "German"),
-          SwLanguageListItem("EL", "Greek"),
-          SwLanguageListItem("EN-GB", "English (British)"),
-          SwLanguageListItem("EN-US", "English (American)"),
-          SwLanguageListItem("ES", "Spanish"),
-          SwLanguageListItem("ET", "Estonian"),
-          SwLanguageListItem("FI", "Finnish"),
-          SwLanguageListItem("FR", "French"),
-          SwLanguageListItem("HU", "Hungarian"),
-          SwLanguageListItem("ID", "Indonesian"),
-          SwLanguageListItem("IT", "Italian"),
-          SwLanguageListItem("JA", "Japanese"),
-          SwLanguageListItem("LT", "Lithuanian"),
-          SwLanguageListItem("LV", "Latvian"),
-          SwLanguageListItem("NL", "Dutch"),
-          SwLanguageListItem("PL", "Polish"),
-          SwLanguageListItem("PT-BR", "Portuguese (Brazilian)"),
-          SwLanguageListItem("PT-PT", "Portuguese (European)"),
-          SwLanguageListItem("RO", "Romanian"),
-          SwLanguageListItem("RU", "Russian"),
-          SwLanguageListItem("SK", "Slovak"),
-          SwLanguageListItem("SL", "Slovenian"),
-          SwLanguageListItem("SV", "Swedish"),
-          SwLanguageListItem("TR", "Turkish"),
-          SwLanguageListItem("ZH", "Chinese (simplified)"),
-      })
     , m_bTranslationStarted(false)
     , m_bCancelTranslation(false)
 {
@@ -84,7 +89,7 @@ 
SwTranslateLangSelectDlg::SwTranslateLangSelectDlg(weld::Window* pParent, SwWrtS
     m_xBtnCancel->connect_clicked(LINK(this, SwTranslateLangSelectDlg, 
LangSelectCancelHdl));
     m_xBtnTranslate->connect_clicked(LINK(this, SwTranslateLangSelectDlg, 
LangSelectTranslateHdl));
 
-    for (const auto& item : m_xLanguageVec)
+    for (const auto& item : getLanguageVec())
     {
         m_xLanguageListBox->append_text(OStringToOUString(item.getName(), 
RTL_TEXTENCODING_UTF8));
     }
@@ -99,7 +104,7 @@ std::optional<SwLanguageListItem> 
SwTranslateLangSelectDlg::GetSelectedLanguage(
 {
     if (SwTranslateLangSelectDlg::selectedLangIdx != -1)
     {
-        return m_xLanguageVec.at(SwTranslateLangSelectDlg::selectedLangIdx);
+        return getLanguageVec().at(SwTranslateLangSelectDlg::selectedLangIdx);
     }
 
     return {};
@@ -143,7 +148,7 @@ IMPL_LINK_NOARG(SwTranslateLangSelectDlg, 
LangSelectTranslateHdl, weld::Button&,
     const OString aAuthKey
         = OUStringToOString(rDeeplOptions.getAuthKey(), 
RTL_TEXTENCODING_UTF8).trim();
     const auto aTargetLang
-        = 
m_xLanguageVec.at(SwTranslateLangSelectDlg::selectedLangIdx).getLanguage();
+        = 
getLanguageVec().at(SwTranslateLangSelectDlg::selectedLangIdx).getLanguage();
 
     m_bTranslationStarted = true;
 
diff --git a/sw/source/uibase/inc/translatelangselect.hxx 
b/sw/source/uibase/inc/translatelangselect.hxx
index e8920786ea93..bd1c8c85e6f0 100644
--- a/sw/source/uibase/inc/translatelangselect.hxx
+++ b/sw/source/uibase/inc/translatelangselect.hxx
@@ -49,14 +49,13 @@ class SwTranslateLangSelectDlg final : public 
weld::GenericDialogController
 public:
     static int selectedLangIdx;
     SwTranslateLangSelectDlg(weld::Window* pParent, SwWrtShell& rSh);
-    std::optional<SwLanguageListItem> GetSelectedLanguage();
+    static std::optional<SwLanguageListItem> GetSelectedLanguage();
 
 private:
     SwWrtShell& m_rWrtSh;
     std::unique_ptr<weld::ComboBox> m_xLanguageListBox;
     std::unique_ptr<weld::Button> m_xBtnCancel;
     std::unique_ptr<weld::Button> m_xBtnTranslate;
-    std::vector<SwLanguageListItem> m_xLanguageVec;
 
     bool m_bTranslationStarted;
     bool m_bCancelTranslation;

Reply via email to