diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-05-14 21:30:04 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-05-15 09:51:44 +0200 |
commit | 0e4f93e88bfae3489d2de84fc2febed100880628 (patch) | |
tree | 9e44f08036883a9a29bc8c9beb92787ab857897b | |
parent | bff6751413e918c6e7826a872b6ee24f8302554f (diff) |
weld ScRetypePassInputDlg
Change-Id: Ie57f3fdaeed5b15f2ce7a1825debdc92788b4e94
Reviewed-on: https://gerrit.libreoffice.org/54343
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | sc/source/ui/inc/retypepassdlg.hxx | 30 | ||||
-rw-r--r-- | sc/source/ui/miscdlgs/retypepassdlg.cxx | 116 | ||||
-rw-r--r-- | sc/uiconfig/scalc/ui/retypepassworddialog.ui | 17 |
3 files changed, 76 insertions, 87 deletions
diff --git a/sc/source/ui/inc/retypepassdlg.hxx b/sc/source/ui/inc/retypepassdlg.hxx index 2aced7126034..8bcab45ffcba 100644 --- a/sc/source/ui/inc/retypepassdlg.hxx +++ b/sc/source/ui/inc/retypepassdlg.hxx @@ -26,6 +26,7 @@ #include <vcl/fixed.hxx> #include <vcl/layout.hxx> #include <vcl/scrbar.hxx> +#include <vcl/weld.hxx> #include <svx/checklbx.hxx> #include <tabprotection.hxx> @@ -96,13 +97,12 @@ private: ScPasswordHash meDesiredHash; }; -class ScRetypePassInputDlg : public ModalDialog +class ScRetypePassInputDlg : public weld::GenericDialogController { public: ScRetypePassInputDlg() = delete; - explicit ScRetypePassInputDlg(vcl::Window* pParent, ScPassHashProtectable* pProtected); + explicit ScRetypePassInputDlg(weld::Window* pParent, ScPassHashProtectable* pProtected); virtual ~ScRetypePassInputDlg() override; - virtual void dispose() override; bool IsRemovePassword() const; OUString GetNewPassword() const; @@ -112,24 +112,24 @@ private: void CheckPasswordInput(); private: - VclPtr<OKButton> m_pBtnOk; + ScPassHashProtectable* m_pProtected; - VclPtr<RadioButton> m_pBtnRetypePassword; + std::unique_ptr<weld::Button> m_xBtnOk; - VclPtr<VclContainer> m_pPasswordGrid; - VclPtr<Edit> m_pPassword1Edit; - VclPtr<Edit> m_pPassword2Edit; + std::unique_ptr<weld::RadioButton> m_xBtnRetypePassword; - VclPtr<CheckBox> m_pBtnMatchOldPass; + std::unique_ptr<weld::Widget> m_xPasswordGrid; + std::unique_ptr<weld::Entry> m_xPassword1Edit; + std::unique_ptr<weld::Entry> m_xPassword2Edit; - VclPtr<RadioButton> m_pBtnRemovePassword; + std::unique_ptr<weld::CheckButton> m_xBtnMatchOldPass; - DECL_LINK( OKHdl, Button*, void ); - DECL_LINK( RadioBtnHdl, Button*, void ); - DECL_LINK( CheckBoxHdl, Button*, void ); - DECL_LINK( PasswordModifyHdl, Edit&, void ); + std::unique_ptr<weld::RadioButton> m_xBtnRemovePassword; - ScPassHashProtectable* mpProtected; + DECL_LINK( OKHdl, weld::Button&, void ); + DECL_LINK( RadioBtnHdl, weld::ToggleButton&, void ); + DECL_LINK( CheckBoxHdl, weld::ToggleButton&, void ); + DECL_LINK( PasswordModifyHdl, weld::Entry&, void ); }; #endif diff --git a/sc/source/ui/miscdlgs/retypepassdlg.cxx b/sc/source/ui/miscdlgs/retypepassdlg.cxx index cea2f2716e86..14b51656b01b 100644 --- a/sc/source/ui/miscdlgs/retypepassdlg.cxx +++ b/sc/source/ui/miscdlgs/retypepassdlg.cxx @@ -287,11 +287,11 @@ IMPL_LINK( ScRetypePassDlg, RetypeBtnHdl, Button*, pBtn, void ) // What the ... !? return; - ScopedVclPtrInstance< ScRetypePassInputDlg > aDlg(this, pProtected); - if (aDlg->Execute() == RET_OK) + ScRetypePassInputDlg aDlg(GetFrameWeld(), pProtected); + if (aDlg.run() == RET_OK) { // OK is pressed. Update the protected item. - if (aDlg->IsRemovePassword()) + if (aDlg.IsRemovePassword()) { // Remove password from this item. pProtected->setPassword(OUString()); @@ -299,7 +299,7 @@ IMPL_LINK( ScRetypePassDlg, RetypeBtnHdl, Button*, pBtn, void ) else { // Set a new password. - OUString aNewPass = aDlg->GetNewPassword(); + OUString aNewPass = aDlg.GetNewPassword(); pProtected->setPassword(aNewPass); } @@ -308,131 +308,111 @@ IMPL_LINK( ScRetypePassDlg, RetypeBtnHdl, Button*, pBtn, void ) } } -ScRetypePassInputDlg::ScRetypePassInputDlg(vcl::Window* pParent, ScPassHashProtectable* pProtected) - : ModalDialog(pParent, "RetypePasswordDialog", - "modules/scalc/ui/retypepassworddialog.ui") - , mpProtected(pProtected) +ScRetypePassInputDlg::ScRetypePassInputDlg(weld::Window* pParent, ScPassHashProtectable* pProtected) + : GenericDialogController(pParent, "modules/scalc/ui/retypepassworddialog.ui", "RetypePasswordDialog") + , m_pProtected(pProtected) + , m_xBtnOk(m_xBuilder->weld_button("ok")) + , m_xBtnRetypePassword(m_xBuilder->weld_radio_button("retypepassword")) + , m_xPasswordGrid(m_xBuilder->weld_widget("passwordgrid")) + , m_xPassword1Edit(m_xBuilder->weld_entry("newpassEntry")) + , m_xPassword2Edit(m_xBuilder->weld_entry("confirmpassEntry")) + , m_xBtnMatchOldPass(m_xBuilder->weld_check_button("mustmatch")) + , m_xBtnRemovePassword(m_xBuilder->weld_radio_button("removepassword")) { - get(m_pBtnOk, "ok"); - get(m_pBtnRetypePassword, "retypepassword"); - get(m_pBtnRemovePassword, "removepassword"); - get(m_pPasswordGrid, "passwordgrid"); - get(m_pPassword1Edit, "newpassEntry"); - get(m_pPassword2Edit, "confirmpassEntry"); - get(m_pBtnMatchOldPass, "mustmatch"); - Init(); } ScRetypePassInputDlg::~ScRetypePassInputDlg() { - disposeOnce(); -} - -void ScRetypePassInputDlg::dispose() -{ - m_pBtnOk.clear(); - m_pBtnRetypePassword.clear(); - m_pPasswordGrid.clear(); - m_pPassword1Edit.clear(); - m_pPassword2Edit.clear(); - m_pBtnMatchOldPass.clear(); - m_pBtnRemovePassword.clear(); - ModalDialog::dispose(); } bool ScRetypePassInputDlg::IsRemovePassword() const { - return m_pBtnRemovePassword->IsChecked(); + return m_xBtnRemovePassword->get_active(); } OUString ScRetypePassInputDlg::GetNewPassword() const { - return m_pPassword1Edit->GetText(); + return m_xPassword1Edit->get_text(); } void ScRetypePassInputDlg::Init() { - Link<Button*,void> aLink = LINK( this, ScRetypePassInputDlg, OKHdl ); - m_pBtnOk->SetClickHdl(aLink); - aLink = LINK( this, ScRetypePassInputDlg, RadioBtnHdl ); - m_pBtnRetypePassword->SetClickHdl(aLink); - m_pBtnRemovePassword->SetClickHdl(aLink); - aLink = LINK( this, ScRetypePassInputDlg, CheckBoxHdl ); - m_pBtnMatchOldPass->SetClickHdl(aLink); - Link<Edit&,void> aLink2 = LINK( this, ScRetypePassInputDlg, PasswordModifyHdl ); - m_pPassword1Edit->SetModifyHdl(aLink2); - m_pPassword2Edit->SetModifyHdl(aLink2); - - m_pBtnOk->Disable(); - m_pBtnRetypePassword->Check(); - m_pBtnMatchOldPass->Check(); - m_pPassword1Edit->GrabFocus(); + m_xBtnOk->connect_clicked(LINK(this, ScRetypePassInputDlg, OKHdl)); + m_xBtnRetypePassword->connect_toggled(LINK(this, ScRetypePassInputDlg, RadioBtnHdl)); + m_xBtnRemovePassword->connect_toggled(LINK(this, ScRetypePassInputDlg, RadioBtnHdl)); + m_xBtnMatchOldPass->connect_toggled(LINK(this, ScRetypePassInputDlg, CheckBoxHdl)); + Link<weld::Entry&,void> aLink2 = LINK( this, ScRetypePassInputDlg, PasswordModifyHdl ); + m_xPassword1Edit->connect_changed(aLink2); + m_xPassword2Edit->connect_changed(aLink2); + + m_xBtnOk->set_sensitive(false); + m_xBtnRetypePassword->set_active(true); + m_xBtnMatchOldPass->set_active(true); + m_xPassword1Edit->grab_focus(); } void ScRetypePassInputDlg::CheckPasswordInput() { - OUString aPass1 = m_pPassword1Edit->GetText(); - OUString aPass2 = m_pPassword2Edit->GetText(); + OUString aPass1 = m_xPassword1Edit->get_text(); + OUString aPass2 = m_xPassword2Edit->get_text(); if (aPass1.isEmpty() || aPass2.isEmpty()) { // Empty password is not allowed. - m_pBtnOk->Disable(); + m_xBtnOk->set_sensitive(false); return; } if (aPass1 != aPass2) { // The two passwords differ. - m_pBtnOk->Disable(); + m_xBtnOk->set_sensitive(false); return; } - if (!m_pBtnMatchOldPass->IsChecked()) + if (!m_xBtnMatchOldPass->get_active()) { - m_pBtnOk->Enable(); + m_xBtnOk->set_sensitive(true); return; } - if (!mpProtected) + if (!m_pProtected) { // This should never happen! - m_pBtnOk->Disable(); + m_xBtnOk->set_sensitive(false); return; } - bool bPassGood = mpProtected->verifyPassword(aPass1); - m_pBtnOk->Enable(bPassGood); + bool bPassGood = m_pProtected->verifyPassword(aPass1); + m_xBtnOk->set_sensitive(bPassGood); } -IMPL_LINK_NOARG(ScRetypePassInputDlg, OKHdl, Button*, void) +IMPL_LINK_NOARG(ScRetypePassInputDlg, OKHdl, weld::Button&, void) { - EndDialog(RET_OK); + m_xDialog->response(RET_OK); } -IMPL_LINK( ScRetypePassInputDlg, RadioBtnHdl, Button*, pBtn, void ) +IMPL_LINK_NOARG(ScRetypePassInputDlg, RadioBtnHdl, weld::ToggleButton&, void) { - if (pBtn == m_pBtnRetypePassword) + if (m_xBtnRetypePassword->get_active()) { - m_pBtnRemovePassword->Check(false); - m_pPasswordGrid->Enable(); + m_xPasswordGrid->set_sensitive(true); CheckPasswordInput(); } - else if (pBtn == m_pBtnRemovePassword) + else { - m_pBtnRetypePassword->Check(false); - m_pPasswordGrid->Disable(); - m_pBtnOk->Enable(); + m_xPasswordGrid->set_sensitive(false); + m_xBtnOk->set_sensitive(false); } } -IMPL_LINK_NOARG(ScRetypePassInputDlg, CheckBoxHdl, Button*, void) +IMPL_LINK_NOARG(ScRetypePassInputDlg, CheckBoxHdl, weld::ToggleButton&, void) { CheckPasswordInput(); } -IMPL_LINK_NOARG(ScRetypePassInputDlg, PasswordModifyHdl, Edit&, void) +IMPL_LINK_NOARG(ScRetypePassInputDlg, PasswordModifyHdl, weld::Entry&, void) { CheckPasswordInput(); } diff --git a/sc/uiconfig/scalc/ui/retypepassworddialog.ui b/sc/uiconfig/scalc/ui/retypepassworddialog.ui index 0ff5cadc63f6..b3cf54d96624 100644 --- a/sc/uiconfig/scalc/ui/retypepassworddialog.ui +++ b/sc/uiconfig/scalc/ui/retypepassworddialog.ui @@ -1,12 +1,18 @@ <?xml version="1.0" encoding="UTF-8"?> -<!-- Generated with glade 3.18.3 --> +<!-- Generated with glade 3.22.1 --> <interface domain="sc"> <requires lib="gtk+" version="3.18"/> <object class="GtkDialog" id="RetypePasswordDialog"> <property name="can_focus">False</property> <property name="border_width">6</property> <property name="title" translatable="yes" context="retypepassworddialog|RetypePasswordDialog">Re-type Password</property> + <property name="modal">True</property> + <property name="default_width">0</property> + <property name="default_height">0</property> <property name="type_hint">dialog</property> + <child> + <placeholder/> + </child> <child internal-child="vbox"> <object class="GtkBox" id="dialog-vbox1"> <property name="can_focus">False</property> @@ -86,7 +92,6 @@ <property name="xalign">0</property> <property name="active">True</property> <property name="draw_indicator">True</property> - <property name="group">removepassword</property> </object> <packing> <property name="expand">False</property> @@ -114,6 +119,8 @@ <property name="can_focus">True</property> <property name="hexpand">True</property> <property name="visibility">False</property> + <property name="activates_default">True</property> + <property name="input_purpose">password</property> </object> <packing> <property name="left_attach">1</property> @@ -126,6 +133,8 @@ <property name="can_focus">True</property> <property name="hexpand">True</property> <property name="visibility">False</property> + <property name="activates_default">True</property> + <property name="input_purpose">password</property> </object> <packing> <property name="left_attach">1</property> @@ -136,10 +145,10 @@ <object class="GtkLabel" id="label4"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="retypepassworddialog|label4">Pa_ssword:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">newpassEntry</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> @@ -150,10 +159,10 @@ <object class="GtkLabel" id="label5"> <property name="visible">True</property> <property name="can_focus">False</property> - <property name="xalign">0</property> <property name="label" translatable="yes" context="retypepassworddialog|label5">Confi_rm:</property> <property name="use_underline">True</property> <property name="mnemonic_widget">confirmpassEntry</property> + <property name="xalign">0</property> </object> <packing> <property name="left_attach">0</property> |