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) {
