[Libreoffice-commits] core.git: sc/source sc/uiconfig

Caolán McNamara caolanm at redhat.com
Tue May 15 07:52:08 UTC 2018


 sc/source/ui/inc/retypepassdlg.hxx           |   30 +++---
 sc/source/ui/miscdlgs/retypepassdlg.cxx      |  116 +++++++++++----------------
 sc/uiconfig/scalc/ui/retypepassworddialog.ui |   17 +++
 3 files changed, 76 insertions(+), 87 deletions(-)

New commits:
commit 0e4f93e88bfae3489d2de84fc2febed100880628
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Mon May 14 21:30:04 2018 +0100

    weld ScRetypePassInputDlg
    
    Change-Id: Ie57f3fdaeed5b15f2ce7a1825debdc92788b4e94
    Reviewed-on: https://gerrit.libreoffice.org/54343
    Tested-by: Jenkins <ci at libreoffice.org>
    Reviewed-by: Caolán McNamara <caolanm at redhat.com>
    Tested-by: Caolán McNamara <caolanm at redhat.com>

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>


More information about the Libreoffice-commits mailing list