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

Caolán McNamara caolanm at redhat.com
Fri Apr 20 07:53:38 UTC 2018


 sw/source/ui/envelp/labfmt.cxx            |   67 ++++++++++++++----------------
 sw/source/ui/envelp/labfmt.hxx            |   24 ++++++----
 sw/uiconfig/swriter/ui/savelabeldialog.ui |   26 +++++------
 3 files changed, 58 insertions(+), 59 deletions(-)

New commits:
commit 2448d6d7126cdbe73c1f56d6703f390f9f88216b
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Thu Apr 19 15:24:43 2018 +0100

    weld SwSaveLabelDlg
    
    Change-Id: I463ee75667e22d3b4b3ec64afabad52c5159d4ac
    Reviewed-on: https://gerrit.libreoffice.org/53168
    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/sw/source/ui/envelp/labfmt.cxx b/sw/source/ui/envelp/labfmt.cxx
index 82a5b754f9c7..90672ac0fd10 100644
--- a/sw/source/ui/envelp/labfmt.cxx
+++ b/sw/source/ui/envelp/labfmt.cxx
@@ -574,10 +574,10 @@ IMPL_LINK_NOARG(SwLabFormatPage, SaveHdl, Button*, void)
     aRec.m_nPWidth  = static_cast< long >(GETFLDVAL(*m_pPWidthField ));
     aRec.m_nPHeight = static_cast< long >(GETFLDVAL(*m_pPHeightField));
     aRec.m_bCont = aItem.m_bCont;
-    ScopedVclPtrInstance< SwSaveLabelDlg > pSaveDlg(this, aRec);
-    pSaveDlg->SetLabel(aItem.m_aLstMake, aItem.m_aLstType);
-    pSaveDlg->Execute();
-    if(pSaveDlg->GetLabel(aItem))
+    SwSaveLabelDlg aSaveDlg(this, aRec);
+    aSaveDlg.SetLabel(aItem.m_aLstMake, aItem.m_aLstType);
+    aSaveDlg.run();
+    if (aSaveDlg.GetLabel(aItem))
     {
         bModified = false;
         const std::vector<OUString>& rMan = GetParentSwLabDlg()->GetLabelsConfig().GetManufacturers();
@@ -592,60 +592,47 @@ IMPL_LINK_NOARG(SwLabFormatPage, SaveHdl, Button*, void)
 }
 
 SwSaveLabelDlg::SwSaveLabelDlg(SwLabFormatPage* pParent, SwLabRec& rRec)
-    : ModalDialog(pParent, "SaveLabelDialog",
-        "modules/swriter/ui/savelabeldialog.ui")
+    : GenericDialogController(pParent->GetFrameWeld(), "modules/swriter/ui/savelabeldialog.ui", "SaveLabelDialog")
     , bSuccess(false)
     , pLabPage(pParent)
     , rLabRec(rRec)
+    , m_xMakeCB(m_xBuilder->weld_combo_box_text("brand"))
+    , m_xTypeED(m_xBuilder->weld_entry("type"))
+    , m_xOKPB(m_xBuilder->weld_button("ok"))
 {
-    get(m_pMakeCB, "brand");
-    get(m_pTypeED, "type");
-    get(m_pOKPB, "ok");
-
-    m_pOKPB->SetClickHdl(LINK(this, SwSaveLabelDlg, OkHdl));
-    Link<Edit&,void> aLk(LINK(this, SwSaveLabelDlg, ModifyHdl));
-    m_pMakeCB->SetModifyHdl(aLk);
-    m_pTypeED->SetModifyHdl(aLk);
+    m_xOKPB->connect_clicked(LINK(this, SwSaveLabelDlg, OkHdl));
+    m_xMakeCB->connect_changed(LINK(this, SwSaveLabelDlg, ModifyComboHdl));
+    m_xTypeED->connect_changed(LINK(this, SwSaveLabelDlg, ModifyEntryHdl));
 
     SwLabelConfig& rCfg = pLabPage->GetParentSwLabDlg()->GetLabelsConfig();
     const std::vector<OUString>& rMan = rCfg.GetManufacturers();
     for (const auto & i : rMan)
     {
-        m_pMakeCB->InsertEntry(i);
+        m_xMakeCB->append_text(i);
     }
 }
 
 SwSaveLabelDlg::~SwSaveLabelDlg()
 {
-    disposeOnce();
-}
-
-void SwSaveLabelDlg::dispose()
-{
-    m_pMakeCB.clear();
-    m_pTypeED.clear();
-    m_pOKPB.clear();
-    pLabPage.clear();
-    ModalDialog::dispose();
 }
 
-IMPL_LINK_NOARG(SwSaveLabelDlg, OkHdl, Button*, void)
+IMPL_LINK_NOARG(SwSaveLabelDlg, OkHdl, weld::Button&, void)
 {
     SwLabelConfig& rCfg = pLabPage->GetParentSwLabDlg()->GetLabelsConfig();
-    OUString sMake(m_pMakeCB->GetText());
-    OUString sType(m_pTypeED->GetText());
+    OUString sMake(m_xMakeCB->get_active_text());
+    OUString sType(m_xTypeED->get_text());
     if(rCfg.HasLabel(sMake, sType))
     {
         if ( rCfg.IsPredefinedLabel(sMake, sType) )
         {
             SAL_WARN( "sw.envelp", "label is predefined and cannot be overwritten" );
-            std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "modules/swriter/ui/cannotsavelabeldialog.ui"));
+            std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(m_xDialog.get(), "modules/swriter/ui/cannotsavelabeldialog.ui"));
             std::unique_ptr<weld::MessageDialog> xBox(xBuilder->weld_message_dialog("CannotSaveLabelDialog"));
             xBox->run();
             return;
         }
 
-        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(GetFrameWeld(), "modules/swriter/ui/querysavelabeldialog.ui"));
+        std::unique_ptr<weld::Builder> xBuilder(Application::CreateBuilder(m_xDialog.get(), "modules/swriter/ui/querysavelabeldialog.ui"));
         std::unique_ptr<weld::MessageDialog> xQuery(xBuilder->weld_message_dialog("QuerySaveLabelDialog"));
         xQuery->set_primary_text(xQuery->get_primary_text().
             replaceAll("%1", sMake).replaceAll("%2", sType));
@@ -658,20 +645,30 @@ IMPL_LINK_NOARG(SwSaveLabelDlg, OkHdl, Button*, void)
     rLabRec.m_aType = sType;
     rCfg.SaveLabel(sMake, sType, rLabRec);
     bSuccess = true;
-    EndDialog(RET_OK);
+    m_xDialog->response(RET_OK);
+}
+
+void SwSaveLabelDlg::Modify()
+{
+    m_xOKPB->set_sensitive(!m_xMakeCB->get_active_text().isEmpty() && !m_xTypeED->get_text().isEmpty());
+}
+
+IMPL_LINK_NOARG(SwSaveLabelDlg, ModifyComboHdl, weld::ComboBoxText&, void)
+{
+    Modify();
 }
 
-IMPL_LINK_NOARG(SwSaveLabelDlg, ModifyHdl, Edit&, void)
+IMPL_LINK_NOARG(SwSaveLabelDlg, ModifyEntryHdl, weld::Entry&, void)
 {
-    m_pOKPB->Enable(!m_pMakeCB->GetText().isEmpty() && !m_pTypeED->GetText().isEmpty());
+    Modify();
 }
 
 bool SwSaveLabelDlg::GetLabel(SwLabItem& rItem)
 {
     if(bSuccess)
     {
-        rItem.m_aMake = m_pMakeCB->GetText();
-        rItem.m_aType = m_pTypeED->GetText();
+        rItem.m_aMake = m_xMakeCB->get_active_text();
+        rItem.m_aType = m_xTypeED->get_text();
         rItem.m_lHDist  = rLabRec.m_nHDist;
         rItem.m_lVDist  = rLabRec.m_nVDist;
         rItem.m_lWidth  = rLabRec.m_nWidth;
diff --git a/sw/source/ui/envelp/labfmt.hxx b/sw/source/ui/envelp/labfmt.hxx
index 0aa1059e2b8a..08007cf05818 100644
--- a/sw/source/ui/envelp/labfmt.hxx
+++ b/sw/source/ui/envelp/labfmt.hxx
@@ -22,6 +22,8 @@
 #include "swuilabimp.hxx"
 #include <labimg.hxx>
 #include <vcl/idle.hxx>
+#include <vcl/weld.hxx>
+
 class SwLabFormatPage;
 
 class SwLabPreview : public vcl::Window
@@ -108,28 +110,30 @@ public:
     SwLabDlg* GetParentSwLabDlg() {return static_cast<SwLabDlg*>(GetParentDialog());}
 };
 
-class SwSaveLabelDlg : public ModalDialog
+class SwSaveLabelDlg : public weld::GenericDialogController
 {
-    VclPtr<ComboBox>   m_pMakeCB;
-    VclPtr<Edit>       m_pTypeED;
-    VclPtr<OKButton>   m_pOKPB;
-
     bool        bSuccess;
     VclPtr<SwLabFormatPage>   pLabPage;
     SwLabRec&       rLabRec;
 
-    DECL_LINK(OkHdl, Button*, void);
-    DECL_LINK(ModifyHdl, Edit&, void);
+    std::unique_ptr<weld::ComboBoxText> m_xMakeCB;
+    std::unique_ptr<weld::Entry>        m_xTypeED;
+    std::unique_ptr<weld::Button>       m_xOKPB;
+
+    DECL_LINK(OkHdl, weld::Button&, void);
+    DECL_LINK(ModifyEntryHdl, weld::Entry&, void);
+    DECL_LINK(ModifyComboHdl, weld::ComboBoxText&, void);
+
+    void Modify();
 
 public:
     SwSaveLabelDlg(SwLabFormatPage* pParent, SwLabRec& rRec);
     virtual ~SwSaveLabelDlg() override;
-    virtual void dispose() override;
 
     void SetLabel(const OUString& rMake, const OUString& rType)
     {
-        m_pMakeCB->SetText(rMake);
-        m_pTypeED->SetText(rType);
+        m_xMakeCB->set_entry_text(rMake);
+        m_xTypeED->set_text(rType);
     }
     bool GetLabel(SwLabItem& rItem);
 };
diff --git a/sw/uiconfig/swriter/ui/savelabeldialog.ui b/sw/uiconfig/swriter/ui/savelabeldialog.ui
index 1a6201bff2a8..4e1406b09333 100644
--- a/sw/uiconfig/swriter/ui/savelabeldialog.ui
+++ b/sw/uiconfig/swriter/ui/savelabeldialog.ui
@@ -1,10 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
+<!-- Generated with glade 3.20.4 -->
 <interface domain="sw">
-  <!-- interface-requires gtk+ 3.0 -->
+  <requires lib="gtk+" version="3.0"/>
   <object class="GtkDialog" id="SaveLabelDialog">
     <property name="can_focus">False</property>
     <property name="border_width">6</property>
     <property name="title" translatable="yes" context="savelabeldialog|SaveLabelDialog">Save Label Format</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 internal-child="vbox">
       <object class="GtkBox" id="dialog-vbox1">
@@ -57,6 +61,7 @@
                 <property name="expand">False</property>
                 <property name="fill">True</property>
                 <property name="position">2</property>
+                <property name="secondary">True</property>
               </packing>
             </child>
           </object>
@@ -91,30 +96,26 @@
                       <object class="GtkLabel" id="label2">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
                         <property name="label" translatable="yes" context="savelabeldialog|label2">Brand</property>
                         <property name="use_underline">True</property>
+                        <property name="xalign">0</property>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
                         <property name="top_attach">0</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkLabel" id="label3">
                         <property name="visible">True</property>
                         <property name="can_focus">False</property>
-                        <property name="xalign">0</property>
                         <property name="label" translatable="yes" context="savelabeldialog|label3">T_ype</property>
                         <property name="use_underline">True</property>
+                        <property name="xalign">0</property>
                       </object>
                       <packing>
                         <property name="left_attach">0</property>
                         <property name="top_attach">1</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
                       </packing>
                     </child>
                     <child>
@@ -126,8 +127,6 @@
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="top_attach">1</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
                       </packing>
                     </child>
                     <child>
@@ -136,19 +135,15 @@
                         <property name="can_focus">False</property>
                         <property name="hexpand">True</property>
                         <property name="has_entry">True</property>
-                        <property name="entry_text_column">0</property>
-                        <property name="id_column">1</property>
                         <child internal-child="entry">
                           <object class="GtkEntry" id="comboboxtext-entry">
-                            <property name="can_focus">False</property>
+                            <property name="can_focus">True</property>
                           </object>
                         </child>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
                         <property name="top_attach">0</property>
-                        <property name="width">1</property>
-                        <property name="height">1</property>
                       </packing>
                     </child>
                   </object>
@@ -179,5 +174,8 @@
       <action-widget response="-6">cancel</action-widget>
       <action-widget response="-11">help</action-widget>
     </action-widgets>
+    <child>
+      <placeholder/>
+    </child>
   </object>
 </interface>


More information about the Libreoffice-commits mailing list