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

Caolán McNamara caolanm at redhat.com
Tue Apr 3 19:01:48 UTC 2018


 sw/inc/gotodlg.hxx                       |   31 +++++++---------
 sw/source/uibase/uiview/view2.cxx        |    6 +--
 sw/source/uibase/utlui/gotodlg.cxx       |   59 +++++++++++--------------------
 sw/uiconfig/swriter/ui/gotopagedialog.ui |   13 +++++-
 4 files changed, 50 insertions(+), 59 deletions(-)

New commits:
commit 5672627a4d4adc613aecb3ccef721655d9dcd0b2
Author: Caolán McNamara <caolanm at redhat.com>
Date:   Tue Apr 3 15:17:23 2018 +0100

    weld SwGotoPageDlg
    
    Change-Id: I23c77c3ed532d3e79cdbf07fcebda5bcdc7d27dc
    Reviewed-on: https://gerrit.libreoffice.org/52333
    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/inc/gotodlg.hxx b/sw/inc/gotodlg.hxx
index 41ae860e03fe..547a439e196f 100644
--- a/sw/inc/gotodlg.hxx
+++ b/sw/inc/gotodlg.hxx
@@ -20,34 +20,33 @@
 #ifndef INCLUDED_SW_SOURCE_UIBASE_INC_GOTODLG_HXX
 #define INCLUDED_SW_SOURCE_UIBASE_INC_GOTODLG_HXX
 
-#include <vcl/dialog.hxx>
+#include <vcl/weld.hxx>
 
 class SwView;
 class SwWrtShell;
 
-class SwGotoPageDlg : public ModalDialog
+class SwGotoPageDlg : public weld::GenericDialogController
 {
 public:
-    SwGotoPageDlg(vcl::Window *parent, SfxBindings* _pBindings);
+    SwGotoPageDlg(weld::Window *parent, SfxBindings* _pBindings);
 
-    virtual ~SwGotoPageDlg() override;
-    virtual void dispose() override;
-
-    sal_uInt16 GetPageSelection() const{
-        return (mpMtrPageCtrl->GetText()).toUInt32();}
+    sal_uInt16 GetPageSelection() const
+    {
+        return mxMtrPageCtrl->get_text().toUInt32();
+    }
 
 private:
-    SwView*    GetCreateView() const;
-    sal_uInt16 GetPageInfo();
-
-    DECL_LINK( PageModifiedHdl, Edit&, void );
-
-    VclPtr<Edit> mpMtrPageCtrl;
-    VclPtr<FixedText> mpPageNumberLbl;
-
     SwView       *m_pCreateView;
     SfxBindings  *m_rBindings;
     sal_uInt16   mnMaxPageCnt;
+
+    std::unique_ptr<weld::Entry> mxMtrPageCtrl;
+    std::unique_ptr<weld::Label> mxPageNumberLbl;
+
+    SwView*    GetCreateView() const;
+    sal_uInt16 GetPageInfo();
+
+    DECL_LINK( PageModifiedHdl, weld::Entry&, void );
 };
 
 #endif
diff --git a/sw/source/uibase/uiview/view2.cxx b/sw/source/uibase/uiview/view2.cxx
index 26fdb197f3cf..8e5f4c376d64 100644
--- a/sw/source/uibase/uiview/view2.cxx
+++ b/sw/source/uibase/uiview/view2.cxx
@@ -882,9 +882,9 @@ void SwView::Execute(SfxRequest &rReq)
         break;
         case FN_GOTO_PAGE:
         {
-            ScopedVclPtrInstance< SwGotoPageDlg > aDlg (&GetViewFrame()->GetWindow(), &GetViewFrame()->GetBindings());
-            if(aDlg->Execute() == RET_OK)
-                GetWrtShell().GotoPage(aDlg->GetPageSelection(), true);
+            SwGotoPageDlg aDlg(GetViewFrame()->GetWindow().GetFrameWeld(), &GetViewFrame()->GetBindings());
+            if (aDlg.run() == RET_OK)
+                GetWrtShell().GotoPage(aDlg.GetPageSelection(), true);
         }
         break;
         case  FN_EDIT_CURRENT_TOX:
diff --git a/sw/source/uibase/utlui/gotodlg.cxx b/sw/source/uibase/utlui/gotodlg.cxx
index 1098923f40f4..8be160720a40 100644
--- a/sw/source/uibase/utlui/gotodlg.cxx
+++ b/sw/source/uibase/utlui/gotodlg.cxx
@@ -27,54 +27,39 @@
 
 using namespace com::sun::star;
 
-SwGotoPageDlg::SwGotoPageDlg( vcl::Window* pParent, SfxBindings* _pBindings):
-        ModalDialog(pParent, "GotoPageDialog", "modules/swriter/ui/gotopagedialog.ui"),
-        m_pCreateView(nullptr),
-        m_rBindings(_pBindings),
-        mnMaxPageCnt(1)
+SwGotoPageDlg::SwGotoPageDlg(weld::Window* pParent, SfxBindings* _pBindings)
+    : GenericDialogController(pParent, "modules/swriter/ui/gotopagedialog.ui", "GotoPageDialog")
+    , m_pCreateView(nullptr)
+    , m_rBindings(_pBindings)
+    , mnMaxPageCnt(1)
+    , mxMtrPageCtrl(m_xBuilder->weld_entry("page"))
+    , mxPageNumberLbl(m_xBuilder->weld_label("page_count"))
 {
-    get(mpMtrPageCtrl, "page");
-    get(mpPageNumberLbl, "page_count");
-
     sal_uInt16 nTotalPage = GetPageInfo();
 
     if(nTotalPage)
     {
-        OUString sStr = mpPageNumberLbl->GetText();
-        mpPageNumberLbl->SetText(sStr.replaceFirst("$1", OUString::number(nTotalPage)));
+        OUString sStr = mxPageNumberLbl->get_label();
+        mxPageNumberLbl->set_label(sStr.replaceFirst("$1", OUString::number(nTotalPage)));
         mnMaxPageCnt = nTotalPage;
     }
-    mpMtrPageCtrl->SetModifyHdl(LINK(this, SwGotoPageDlg, PageModifiedHdl));
-    mpMtrPageCtrl->SetCursorAtLast();
-    Selection aSel(0, EDIT_NOLIMIT);
-    mpMtrPageCtrl->SetSelection(aSel);
-}
-
-SwGotoPageDlg::~SwGotoPageDlg()
-{
-    disposeOnce();
-}
-
-void SwGotoPageDlg::dispose()
-{
-    mpMtrPageCtrl.clear();
-    mpPageNumberLbl.clear();
-
-    ModalDialog::dispose();
+    mxMtrPageCtrl->connect_changed(LINK(this, SwGotoPageDlg, PageModifiedHdl));
+    mxMtrPageCtrl->set_position(-1);
+    mxMtrPageCtrl->select_region(0, -1);
 }
 
-IMPL_LINK_NOARG(SwGotoPageDlg, PageModifiedHdl, Edit&, void)
+IMPL_LINK_NOARG(SwGotoPageDlg, PageModifiedHdl, weld::Entry&, void)
 {
-    if(!(mpMtrPageCtrl->GetText()).isEmpty() )
+    if (!mxMtrPageCtrl->get_text().isEmpty())
     {
-        int page_value = (mpMtrPageCtrl->GetText()).toInt32();
+        int page_value = mxMtrPageCtrl->get_text().toInt32();
 
-        if(page_value <= 0.0)
-            mpMtrPageCtrl->SetText(OUString::number(1));
+        if (page_value <= 0)
+            mxMtrPageCtrl->set_text(OUString::number(1));
         else if(page_value > mnMaxPageCnt)
-            mpMtrPageCtrl->SetText(OUString::number(mnMaxPageCnt));
+            mxMtrPageCtrl->set_text(OUString::number(mnMaxPageCnt));
 
-        mpMtrPageCtrl->SetCursorAtLast();
+        mxMtrPageCtrl->set_position(-1);
     }
 }
 
@@ -103,16 +88,16 @@ sal_uInt16 SwGotoPageDlg::GetPageInfo()
 {
     SwView *pView = GetCreateView();
     SwWrtShell *pSh = pView ? &pView->GetWrtShell() : nullptr;
-    mpMtrPageCtrl->SetText(OUString::number(1));
+    mxMtrPageCtrl->set_text(OUString::number(1));
     if (pSh)
     {
         const sal_uInt16 nPageCnt = pSh->GetPageCnt();
         sal_uInt16 nPhyPage, nVirPage;
         pSh->GetPageNum(nPhyPage, nVirPage);
-        mpMtrPageCtrl->SetText(OUString::number(nPhyPage));
+        mxMtrPageCtrl->set_text(OUString::number(nPhyPage));
         return nPageCnt;
     }
     return 0;
 }
 
-/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file
+/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sw/uiconfig/swriter/ui/gotopagedialog.ui b/sw/uiconfig/swriter/ui/gotopagedialog.ui
index ef0a2965c4cc..5fee2fc690ac 100644
--- a/sw/uiconfig/swriter/ui/gotopagedialog.ui
+++ b/sw/uiconfig/swriter/ui/gotopagedialog.ui
@@ -1,11 +1,14 @@
 <?xml version="1.0" encoding="UTF-8"?>
-<!-- Generated with glade 3.18.3 -->
+<!-- Generated with glade 3.20.4 -->
 <interface domain="sw">
   <requires lib="gtk+" version="3.18"/>
   <object class="GtkDialog" id="GotoPageDialog">
     <property name="can_focus">False</property>
     <property name="border_width">6</property>
     <property name="title" translatable="yes" context="gotopagedialog|GotoPageDialog">Go to Page</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">
@@ -67,9 +70,9 @@
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="hexpand">True</property>
-                <property name="xalign">0</property>
                 <property name="label" translatable="yes" context="gotopagedialog|page_count">of $1</property>
                 <property name="use_underline">True</property>
+                <property name="xalign">0</property>
               </object>
               <packing>
                 <property name="left_attach">2</property>
@@ -80,6 +83,7 @@
               <object class="GtkEntry" id="page">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
+                <property name="activates_default">True</property>
                 <property name="width_chars">5</property>
                 <property name="input_purpose">number</property>
               </object>
@@ -93,9 +97,9 @@
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>
                 <property name="halign">end</property>
-                <property name="xalign">0</property>
                 <property name="label" translatable="yes" context="gotopagedialog|page_label">Page:</property>
                 <property name="use_underline">True</property>
+                <property name="xalign">0</property>
               </object>
               <packing>
                 <property name="left_attach">0</property>
@@ -115,6 +119,9 @@
       <action-widget response="-5">ok</action-widget>
       <action-widget response="-6">cancel</action-widget>
     </action-widgets>
+    <child>
+      <placeholder/>
+    </child>
   </object>
   <object class="GtkAdjustment" id="page_value">
     <property name="lower">1</property>


More information about the Libreoffice-commits mailing list