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 <caol...@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 <c...@libreoffice.org> Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@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> _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits