summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCaolán McNamara <caolanm@redhat.com>2018-05-14 21:30:04 +0100
committerCaolán McNamara <caolanm@redhat.com>2018-05-15 09:51:44 +0200
commit0e4f93e88bfae3489d2de84fc2febed100880628 (patch)
tree9e44f08036883a9a29bc8c9beb92787ab857897b
parentloplugin:unnecessaryoverride, loplugin:cstylecast (clang-cl) (diff)
downloadcore-0e4f93e88bfae3489d2de84fc2febed100880628.tar.gz
core-0e4f93e88bfae3489d2de84fc2febed100880628.zip
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.hxx30
-rw-r--r--sc/source/ui/miscdlgs/retypepassdlg.cxx116
-rw-r--r--sc/uiconfig/scalc/ui/retypepassworddialog.ui17
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>