include/sfx2/passwd.hxx       |    5 +++-
 sfx2/source/dialog/passwd.cxx |   52 +++++++++++++++++++++---------------------
 2 files changed, 30 insertions(+), 27 deletions(-)

New commits:
commit 59de0ae08bb33bf476e053011542fe19b6b3f95c
Author:     Balazs Varga <[email protected]>
AuthorDate: Mon Feb 16 10:12:00 2026 +0100
Commit:     Adolfo Jayme Barrientos <[email protected]>
CommitDate: Fri Feb 20 07:31:19 2026 +0100

    tdf#170819 - fix unprotect sheet dialog has two icons
    
    "show password"
    
    follow-up of 6eb1a3c4b08f004c074dac41dee31bacb38216a5
    (tdf#146947 - UI: Ability to show/reveal characters being typed into)
    
    Change-Id: I3d1dd8790aec404390a033e738718a1a151415e2
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199457
    Reviewed-by: Balazs Varga <[email protected]>
    Tested-by: Jenkins
    (cherry picked from commit 1c2385a1faf0d38a6b627df082f7db54beee1ab8)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199520
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>

diff --git a/sfx2/source/dialog/passwd.cxx b/sfx2/source/dialog/passwd.cxx
index 4ba92f1692b3..99f74425d8bc 100644
--- a/sfx2/source/dialog/passwd.cxx
+++ b/sfx2/source/dialog/passwd.cxx
@@ -331,6 +331,9 @@ void SfxPasswordDialog::PreRun()
     m_xConfirm2FT->hide();
     m_xConfirm2ED->hide();
     m_xPassword2StrengthBar->hide();
+    m_xBtn2->hide();
+    m_xBtn3->hide();
+    m_xBtn4->hide();
 
     if (mnExtras != SfxShowExtras::NONE)
         m_xPassword1FT->show();
@@ -344,18 +347,21 @@ void SfxPasswordDialog::PreRun()
         m_xConfirm1FT->show();
         m_xConfirm1ED->show();
         m_xPassword1StrengthBar->show();
+        m_xBtn2->show();
     }
     if (mnExtras & SfxShowExtras::PASSWORD2)
     {
         m_xPassword2Box->show();
         m_xPassword2FT->show();
         m_xPassword2ED->show();
+        m_xBtn3->show();
     }
     if (mnExtras & SfxShowExtras::CONFIRM2)
     {
         m_xConfirm2FT->show();
         m_xConfirm2ED->show();
         m_xPassword2StrengthBar->show();
+        m_xBtn4->show();
     }
 }
 
commit a1ddaee769f74295741e8b9304b5df0a7f89d923
Author:     Xisco Fauli <[email protected]>
AuthorDate: Fri Jan 23 19:04:11 2026 +0100
Commit:     Adolfo Jayme Barrientos <[email protected]>
CommitDate: Fri Feb 20 07:31:08 2026 +0100

    sfx2: simplify code a bit
    
    * No need to use an array
    * No need to call set_from_icon_name in the constructor.
    all the toggles are not active at that point and
    the .ui file already uses
    <property name="icon-name">res/hidepass.png</property>
    for all of them
    
    Change-Id: I0709d9afdee4ab53b91f721e1e91b97e93c1698f
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/198020
    Tested-by: Jenkins
    Reviewed-by: Xisco Fauli <[email protected]>
    Signed-off-by: Xisco Fauli <[email protected]>
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/199540
    Reviewed-by: Adolfo Jayme Barrientos <[email protected]>

diff --git a/include/sfx2/passwd.hxx b/include/sfx2/passwd.hxx
index 70086d64ee0a..56644033492c 100644
--- a/include/sfx2/passwd.hxx
+++ b/include/sfx2/passwd.hxx
@@ -67,7 +67,10 @@ private:
 
     std::unique_ptr<weld::Button> m_xOKBtn;
 
-    std::array<std::unique_ptr<weld::ToggleButton>, 4> m_xPass;
+    std::unique_ptr<weld::ToggleButton> m_xBtn1;
+    std::unique_ptr<weld::ToggleButton> m_xBtn2;
+    std::unique_ptr<weld::ToggleButton> m_xBtn3;
+    std::unique_ptr<weld::ToggleButton> m_xBtn4;
 
     std::shared_ptr<weld::MessageDialog> m_xConfirmFailedDialog;
 
diff --git a/sfx2/source/dialog/passwd.cxx b/sfx2/source/dialog/passwd.cxx
index 6222885f7bb5..4ba92f1692b3 100644
--- a/sfx2/source/dialog/passwd.cxx
+++ b/sfx2/source/dialog/passwd.cxx
@@ -148,62 +148,62 @@ IMPL_LINK_NOARG(SfxPasswordDialog, OKHdl, weld::Button&, 
void)
 IMPL_LINK(SfxPasswordDialog, ShowHdl, weld::Toggleable&, rToggleable, void)
 {
     bool bChecked = rToggleable.get_active();
-    if (&rToggleable == m_xPass[0].get())
+    if (&rToggleable == m_xBtn1.get())
     {
         if (bChecked)
         {
-            m_xPass[0]->set_from_icon_name(RID_SVXBMP_SHOWPASS);
+            m_xBtn1->set_from_icon_name(RID_SVXBMP_SHOWPASS);
             m_xPassword1ED->set_visibility(true);
             m_xPassword1ED->grab_focus();
         }
         else
         {
-            m_xPass[0]->set_from_icon_name(RID_SVXBMP_HIDEPASS);
+            m_xBtn1->set_from_icon_name(RID_SVXBMP_HIDEPASS);
             m_xPassword1ED->set_visibility(false);
             m_xPassword1ED->grab_focus();
         }
     }
-    else if (&rToggleable == m_xPass[1].get())
+    else if (&rToggleable == m_xBtn2.get())
     {
         if (bChecked)
         {
-            m_xPass[1]->set_from_icon_name(RID_SVXBMP_SHOWPASS);
+            m_xBtn2->set_from_icon_name(RID_SVXBMP_SHOWPASS);
             m_xConfirm1ED->set_visibility(true);
             m_xConfirm1ED->grab_focus();
         }
         else
         {
-            m_xPass[1]->set_from_icon_name(RID_SVXBMP_HIDEPASS);
+            m_xBtn2->set_from_icon_name(RID_SVXBMP_HIDEPASS);
             m_xConfirm1ED->set_visibility(false);
             m_xConfirm1ED->grab_focus();
         }
     }
-    else if (&rToggleable == m_xPass[2].get())
+    else if (&rToggleable == m_xBtn3.get())
     {
         if (bChecked)
         {
-            m_xPass[2]->set_from_icon_name(RID_SVXBMP_SHOWPASS);
+            m_xBtn3->set_from_icon_name(RID_SVXBMP_SHOWPASS);
             m_xPassword2ED->set_visibility(true);
             m_xPassword2ED->grab_focus();
         }
         else
         {
-            m_xPass[2]->set_from_icon_name(RID_SVXBMP_HIDEPASS);
+            m_xBtn3->set_from_icon_name(RID_SVXBMP_HIDEPASS);
             m_xPassword2ED->set_visibility(false);
             m_xPassword2ED->grab_focus();
         }
     }
-    else if (&rToggleable == m_xPass[3].get())
+    else if (&rToggleable == m_xBtn4.get())
     {
         if (bChecked)
         {
-            m_xPass[3]->set_from_icon_name(RID_SVXBMP_SHOWPASS);
+            m_xBtn4->set_from_icon_name(RID_SVXBMP_SHOWPASS);
             m_xConfirm2ED->set_visibility(true);
             m_xConfirm2ED->grab_focus();
         }
         else
         {
-            m_xPass[3]->set_from_icon_name(RID_SVXBMP_HIDEPASS);
+            m_xBtn4->set_from_icon_name(RID_SVXBMP_HIDEPASS);
             m_xConfirm2ED->set_visibility(false);
             m_xConfirm2ED->grab_focus();
         }
@@ -236,6 +236,10 @@ SfxPasswordDialog::SfxPasswordDialog(weld::Widget* 
pParent, const OUString* pGro
     , m_xMinLengthFT(m_xBuilder->weld_label(u"minlenft"_ustr))
     , m_xOnlyAsciiFT(m_xBuilder->weld_label(u"onlyascii"_ustr))
     , m_xOKBtn(m_xBuilder->weld_button(u"ok"_ustr))
+    , m_xBtn1(m_xBuilder->weld_toggle_button(u"togglebt1"_ustr))
+    , m_xBtn2(m_xBuilder->weld_toggle_button(u"togglebt2"_ustr))
+    , m_xBtn3(m_xBuilder->weld_toggle_button(u"togglebt3"_ustr))
+    , m_xBtn4(m_xBuilder->weld_toggle_button(u"togglebt4"_ustr))
     , maMinLenPwdStr(SfxResId(STR_PASSWD_MIN_LEN))
     , maMinLenPwdStr1(SfxResId(STR_PASSWD_MIN_LEN1))
     , maEmptyPwdStr(SfxResId(STR_PASSWD_EMPTY))
@@ -254,21 +258,11 @@ SfxPasswordDialog::SfxPasswordDialog(weld::Widget* 
pParent, const OUString* pGro
     m_xConfirm2ED->connect_insert_text(aLink2);
     m_xOKBtn->connect_clicked(LINK(this, SfxPasswordDialog, OKHdl));
 
-    m_xPass[0] = m_xBuilder->weld_toggle_button(u"togglebt1"_ustr);
-    m_xPass[1] = m_xBuilder->weld_toggle_button(u"togglebt2"_ustr);
-    m_xPass[2] = m_xBuilder->weld_toggle_button(u"togglebt3"_ustr);
-    m_xPass[3] = m_xBuilder->weld_toggle_button(u"togglebt4"_ustr);
-
     Link<weld::Toggleable&, void> aToggleLink = LINK(this, SfxPasswordDialog, 
ShowHdl);
-
-    for (auto& aPass : m_xPass)
-    {
-        if (aPass->get_active())
-            aPass->set_from_icon_name(RID_SVXBMP_SHOWPASS);
-        else
-            aPass->set_from_icon_name(RID_SVXBMP_HIDEPASS);
-        aPass->connect_toggled(aToggleLink);
-    }
+    m_xBtn1->connect_toggled(aToggleLink);
+    m_xBtn2->connect_toggled(aToggleLink);
+    m_xBtn3->connect_toggled(aToggleLink);
+    m_xBtn4->connect_toggled(aToggleLink);
 
     if(moPasswordPolicy)
     {

Reply via email to