[Libreoffice-commits] core.git: cui/inc cui/source

Heiko Tietze (via logerrit) logerrit at kemper.freedesktop.org
Tue Oct 20 09:19:16 UTC 2020


 cui/inc/tipoftheday.hrc               |    1 
 cui/source/dialogs/tipofthedaydlg.cxx |   81 +++++++++++++---------------------
 cui/source/inc/tipofthedaydlg.hxx     |    5 --
 3 files changed, 33 insertions(+), 54 deletions(-)

New commits:
commit 1d66b9970b7ecf8d8e144cfa3b2fbb7ce3dd1a08
Author:     Heiko Tietze <tietze.heiko at gmail.com>
AuthorDate: Thu Oct 15 12:18:28 2020 +0200
Commit:     Mike Kaganski <mike.kaganski at collabora.com>
CommitDate: Tue Oct 20 11:18:35 2020 +0200

    Beautification of code and fix for on-/offline help
    
    Change-Id: I0c731f2c472ceb435f529956011a7fd5a00a27ca
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/104358
    Tested-by: Jenkins
    Reviewed-by: Mike Kaganski <mike.kaganski at collabora.com>

diff --git a/cui/inc/tipoftheday.hrc b/cui/inc/tipoftheday.hrc
index acb7bdd15d3e..33b551ecc2fc 100644
--- a/cui/inc/tipoftheday.hrc
+++ b/cui/inc/tipoftheday.hrc
@@ -272,7 +272,6 @@ const std::tuple<const char*, OUString, OUString> TIPOFTHEDAY_STRINGARRAY[] =
 #define STR_HELP_LINK                   NC_("STR_HELP_LINK", "%PRODUCTNAME Help")
 #define STR_MORE_LINK                   NC_("STR_MORE_LINK", "More info")
 #define STR_UNO_LINK                    NC_("STR_UNO_LINK", "Run this action now...")
-#define STR_UNO_EXECUTE                 NC_("STR_UNO_EXECUTE", "Execute the command %COMMAND") //tooltip for STR_UNO_LINK
 #define STR_TITLE                       NC_("STR_TITLE", "Tip of the Day: %CURRENT/%TOTAL")
 #define STR_CMD                         NC_("STR_CMD", "⌘ Cmd") //use narrow no-break space U+202F here
 #define STR_CTRL                        NC_("STR_CTRL", "Ctrl")
diff --git a/cui/source/dialogs/tipofthedaydlg.cxx b/cui/source/dialogs/tipofthedaydlg.cxx
index 005584027547..88b61a8d0b2b 100644
--- a/cui/source/dialogs/tipofthedaydlg.cxx
+++ b/cui/source/dialogs/tipofthedaydlg.cxx
@@ -47,12 +47,12 @@ TipOfTheDayDialog::TipOfTheDayDialog(weld::Window* pParent)
     m_pShowTip->set_active(officecfg::Office::Common::Misc::ShowTipOfTheDay::get());
     m_pNext->connect_clicked(LINK(this, TipOfTheDayDialog, OnNextClick));
 
-    nCurrentTip = officecfg::Office::Common::Misc::LastTipOfTheDayID::get();
+    m_nCurrentTip = officecfg::Office::Common::Misc::LastTipOfTheDayID::get();
 
     const auto t0 = std::chrono::system_clock::now().time_since_epoch();
-    nDay = std::chrono::duration_cast<std::chrono::hours>(t0).count() / 24; //days since 1970-01-01
-    if (nDay > officecfg::Office::Common::Misc::LastTipOfTheDayShown::get())
-        nCurrentTip++;
+    m_nDay = std::chrono::duration_cast<std::chrono::hours>(t0).count() / 24;
+    if (m_nDay > officecfg::Office::Common::Misc::LastTipOfTheDayShown::get())
+        m_nCurrentTip++;
 
     UpdateTip();
 }
@@ -61,8 +61,8 @@ TipOfTheDayDialog::~TipOfTheDayDialog()
 {
     std::shared_ptr<comphelper::ConfigurationChanges> xChanges(
         comphelper::ConfigurationChanges::create());
-    officecfg::Office::Common::Misc::LastTipOfTheDayShown::set(nDay, xChanges);
-    officecfg::Office::Common::Misc::LastTipOfTheDayID::set(nCurrentTip, xChanges);
+    officecfg::Office::Common::Misc::LastTipOfTheDayShown::set(m_nDay, xChanges);
+    officecfg::Office::Common::Misc::LastTipOfTheDayID::set(m_nCurrentTip, xChanges);
     officecfg::Office::Common::Misc::ShowTipOfTheDay::set(m_pShowTip->get_active(), xChanges);
     xChanges->commit();
 }
@@ -77,16 +77,17 @@ void TipOfTheDayDialog::UpdateTip()
 {
     constexpr sal_Int32 nNumberOfTips = SAL_N_ELEMENTS(TIPOFTHEDAY_STRINGARRAY);
 
-    if ((nCurrentTip >= nNumberOfTips) || (nCurrentTip < 0))
-        nCurrentTip = 0;
+    if ((m_nCurrentTip >= nNumberOfTips) || (m_nCurrentTip < 0))
+        m_nCurrentTip = 0;
 
     //title
     m_xDialog->set_title(CuiResId(STR_TITLE)
-                             .replaceFirst("%CURRENT", OUString::number(nCurrentTip + 1))
+                             .replaceFirst("%CURRENT", OUString::number(m_nCurrentTip + 1))
                              .replaceFirst("%TOTAL", OUString::number(nNumberOfTips)));
 
+    auto[sTip, sLink, sImage] = TIPOFTHEDAY_STRINGARRAY[m_nCurrentTip];
+
     // text
-    OUString aText = CuiResId(std::get<0>(TIPOFTHEDAY_STRINGARRAY[nCurrentTip]));
 //replace MOD1 & MOD2 shortcuts depending on platform
 #ifdef MACOSX
     const OUString aMOD1 = CuiResId(STR_CMD);
@@ -95,64 +96,43 @@ void TipOfTheDayDialog::UpdateTip()
     const OUString aMOD1 = CuiResId(STR_CTRL);
     const OUString aMOD2 = CuiResId(STR_Alt);
 #endif
-    sal_Int32 aPos;
-    aPos = aText.indexOf("%MOD1");
-    while (aPos != -1)
-    {
-        aText = aText.replaceAt(aPos, 5, aMOD1);
-        aPos = aText.indexOf("%MOD1");
-    }
-    aPos = aText.indexOf("%MOD2");
-    while (aPos != -1)
-    {
-        aText = aText.replaceAt(aPos, 5, aMOD2);
-        aPos = aText.indexOf("%MOD2");
-    }
-    m_pText->set_label(aText);
+    m_pText->set_label(CuiResId(sTip).replaceAll("%MOD1", aMOD1).replaceAll("%MOD2", aMOD2));
 
     // hyperlink
-    aLink = std::get<1>(TIPOFTHEDAY_STRINGARRAY[nCurrentTip]);
-    if (aLink.isEmpty())
+    if (sLink.isEmpty())
     {
         m_pLink->set_visible(false);
     }
-    else if (aLink.startsWith(".uno:"))
+    else if (sLink.startsWith(".uno:"))
     {
-        m_pLink->set_uri(CuiResId(STR_UNO_EXECUTE).replaceFirst("%COMMAND", aLink));
+        m_pLink->set_uri(sLink);
         m_pLink->set_label(CuiResId(STR_UNO_LINK));
         m_pLink->set_visible(true);
         m_pLink->connect_activate_link(LINK(this, TipOfTheDayDialog, OnLinkClick));
     }
-    else if (aLink.startsWith("http"))
+    else if (sLink.startsWith("http"))
     {
         // Links may have some %PRODUCTVERSION which need to be expanded
-        aText = Translate::ExpandVariables(aLink);
-        aPos = aText.indexOf("%LANGUAGENAME");
-        if (aPos != -1)
-        {
-            OUString aLang = LanguageTag(utl::ConfigManager::getUILocale()).getLanguage();
-            if (aLang == "en" || aLang == "pt" || aLang == "zh") //en-US/GB, pt-BR, zh-CH/TW
-                aLang = LanguageTag(utl::ConfigManager::getUILocale()).getBcp47();
-            aText = aText.replaceAt(aPos, 13, aLang);
-        }
-        m_pLink->set_uri(aText);
-
+        OUString aText = Translate::ExpandVariables(sLink);
+        OUString aLang = LanguageTag(utl::ConfigManager::getUILocale()).getLanguage();
+        if (aLang == "en" || aLang == "pt" || aLang == "zh") //en-US/GB, pt-BR, zh-CH/TW
+            aLang = LanguageTag(utl::ConfigManager::getUILocale()).getBcp47();
+        m_pLink->set_uri(aText.replaceFirst("%LANGUAGENAME", aLang));
         m_pLink->set_label(CuiResId(STR_MORE_LINK));
         m_pLink->set_visible(true);
         m_pLink->connect_activate_link(Link<weld::LinkButton&, bool>());
     }
     else
     {
-        m_pLink->set_uri("");
+        m_pLink->set_uri(sLink);
         m_pLink->set_label(CuiResId(STR_HELP_LINK));
         m_pLink->set_visible(true);
-        //converts aLink into the proper offline/online hyperlink
         m_pLink->connect_activate_link(LINK(this, TipOfTheDayDialog, OnLinkClick));
     }
     // image
     OUString aURL("$BRAND_BASE_DIR/$BRAND_SHARE_SUBDIR/tipoftheday/");
     rtl::Bootstrap::expandMacros(aURL);
-    OUString aImage = std::get<2>(TIPOFTHEDAY_STRINGARRAY[nCurrentTip]);
+    OUString aImage = sImage;
     // use default image if none is available with the number
     if (aImage.isEmpty() || !file_exists(aURL + aImage))
         aImage = "tipoftheday.png";
@@ -168,23 +148,24 @@ void TipOfTheDayDialog::UpdateTip()
     }
 }
 
-IMPL_LINK_NOARG(TipOfTheDayDialog, OnLinkClick, weld::LinkButton&, bool)
+IMPL_LINK(TipOfTheDayDialog, OnLinkClick, weld::LinkButton&, rButton, bool)
 {
-    if (aLink.startsWith("http"))
+    const OUString sLink = rButton.get_uri();
+    if (sLink.startsWith(".uno:"))
     {
-        Application::GetHelp()->Start(aLink, static_cast<weld::Widget*>(nullptr));
+        comphelper::dispatchCommand(sLink, {});
+        TipOfTheDayDialog::response(RET_OK);
     }
-    else if (aLink.startsWith(".uno:"))
+    else
     {
-        comphelper::dispatchCommand(aLink, {});
-        TipOfTheDayDialog::response(RET_OK);
+        Application::GetHelp()->Start(sLink, static_cast<weld::Widget*>(nullptr));
     }
     return true;
 }
 
 IMPL_LINK_NOARG(TipOfTheDayDialog, OnNextClick, weld::Button&, void)
 {
-    nCurrentTip++; //zeroed at updatetip when out of range
+    m_nCurrentTip++; //zeroed at updatetip when out of range
     UpdateTip();
 }
 
diff --git a/cui/source/inc/tipofthedaydlg.hxx b/cui/source/inc/tipofthedaydlg.hxx
index c89694c1c15d..bb417bb2705a 100644
--- a/cui/source/inc/tipofthedaydlg.hxx
+++ b/cui/source/inc/tipofthedaydlg.hxx
@@ -29,9 +29,8 @@ private:
     std::unique_ptr<weld::Button> m_pNext;
     std::unique_ptr<weld::LinkButton> m_pLink;
 
-    sal_Int32 nCurrentTip;
-    sal_Int32 nDay;
-    OUString aLink;
+    sal_Int32 m_nCurrentTip;
+    sal_Int32 m_nDay;
     void UpdateTip();
     DECL_LINK(OnNextClick, weld::Button&, void);
     DECL_LINK(OnLinkClick, weld::LinkButton&, bool);


More information about the Libreoffice-commits mailing list