Kaydet (Commit) 5672627a authored tarafından Caolán McNamara's avatar Caolán McNamara

weld SwGotoPageDlg

Change-Id: I23c77c3ed532d3e79cdbf07fcebda5bcdc7d27dc
Reviewed-on: https://gerrit.libreoffice.org/52333Tested-by: 's avatarJenkins <ci@libreoffice.org>
Reviewed-by: 's avatarCaolán McNamara <caolanm@redhat.com>
Tested-by: 's avatarCaolán McNamara <caolanm@redhat.com>
üst 19dd424d
...@@ -20,34 +20,33 @@ ...@@ -20,34 +20,33 @@
#ifndef INCLUDED_SW_SOURCE_UIBASE_INC_GOTODLG_HXX #ifndef INCLUDED_SW_SOURCE_UIBASE_INC_GOTODLG_HXX
#define 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 SwView;
class SwWrtShell; class SwWrtShell;
class SwGotoPageDlg : public ModalDialog class SwGotoPageDlg : public weld::GenericDialogController
{ {
public: public:
SwGotoPageDlg(vcl::Window *parent, SfxBindings* _pBindings); SwGotoPageDlg(weld::Window *parent, SfxBindings* _pBindings);
virtual ~SwGotoPageDlg() override; sal_uInt16 GetPageSelection() const
virtual void dispose() override; {
return mxMtrPageCtrl->get_text().toUInt32();
sal_uInt16 GetPageSelection() const{ }
return (mpMtrPageCtrl->GetText()).toUInt32();}
private: private:
SwView* GetCreateView() const;
sal_uInt16 GetPageInfo();
DECL_LINK( PageModifiedHdl, Edit&, void );
VclPtr<Edit> mpMtrPageCtrl;
VclPtr<FixedText> mpPageNumberLbl;
SwView *m_pCreateView; SwView *m_pCreateView;
SfxBindings *m_rBindings; SfxBindings *m_rBindings;
sal_uInt16 mnMaxPageCnt; 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 #endif
......
...@@ -882,9 +882,9 @@ void SwView::Execute(SfxRequest &rReq) ...@@ -882,9 +882,9 @@ void SwView::Execute(SfxRequest &rReq)
break; break;
case FN_GOTO_PAGE: case FN_GOTO_PAGE:
{ {
ScopedVclPtrInstance< SwGotoPageDlg > aDlg (&GetViewFrame()->GetWindow(), &GetViewFrame()->GetBindings()); SwGotoPageDlg aDlg(GetViewFrame()->GetWindow().GetFrameWeld(), &GetViewFrame()->GetBindings());
if(aDlg->Execute() == RET_OK) if (aDlg.run() == RET_OK)
GetWrtShell().GotoPage(aDlg->GetPageSelection(), true); GetWrtShell().GotoPage(aDlg.GetPageSelection(), true);
} }
break; break;
case FN_EDIT_CURRENT_TOX: case FN_EDIT_CURRENT_TOX:
......
...@@ -27,54 +27,39 @@ ...@@ -27,54 +27,39 @@
using namespace com::sun::star; using namespace com::sun::star;
SwGotoPageDlg::SwGotoPageDlg( vcl::Window* pParent, SfxBindings* _pBindings): SwGotoPageDlg::SwGotoPageDlg(weld::Window* pParent, SfxBindings* _pBindings)
ModalDialog(pParent, "GotoPageDialog", "modules/swriter/ui/gotopagedialog.ui"), : GenericDialogController(pParent, "modules/swriter/ui/gotopagedialog.ui", "GotoPageDialog")
m_pCreateView(nullptr), , m_pCreateView(nullptr)
m_rBindings(_pBindings), , m_rBindings(_pBindings)
mnMaxPageCnt(1) , 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(); sal_uInt16 nTotalPage = GetPageInfo();
if(nTotalPage) if(nTotalPage)
{ {
OUString sStr = mpPageNumberLbl->GetText(); OUString sStr = mxPageNumberLbl->get_label();
mpPageNumberLbl->SetText(sStr.replaceFirst("$1", OUString::number(nTotalPage))); mxPageNumberLbl->set_label(sStr.replaceFirst("$1", OUString::number(nTotalPage)));
mnMaxPageCnt = nTotalPage; mnMaxPageCnt = nTotalPage;
} }
mpMtrPageCtrl->SetModifyHdl(LINK(this, SwGotoPageDlg, PageModifiedHdl)); mxMtrPageCtrl->connect_changed(LINK(this, SwGotoPageDlg, PageModifiedHdl));
mpMtrPageCtrl->SetCursorAtLast(); mxMtrPageCtrl->set_position(-1);
Selection aSel(0, EDIT_NOLIMIT); mxMtrPageCtrl->select_region(0, -1);
mpMtrPageCtrl->SetSelection(aSel);
}
SwGotoPageDlg::~SwGotoPageDlg()
{
disposeOnce();
}
void SwGotoPageDlg::dispose()
{
mpMtrPageCtrl.clear();
mpPageNumberLbl.clear();
ModalDialog::dispose();
} }
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) if (page_value <= 0)
mpMtrPageCtrl->SetText(OUString::number(1)); mxMtrPageCtrl->set_text(OUString::number(1));
else if(page_value > mnMaxPageCnt) 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() ...@@ -103,16 +88,16 @@ sal_uInt16 SwGotoPageDlg::GetPageInfo()
{ {
SwView *pView = GetCreateView(); SwView *pView = GetCreateView();
SwWrtShell *pSh = pView ? &pView->GetWrtShell() : nullptr; SwWrtShell *pSh = pView ? &pView->GetWrtShell() : nullptr;
mpMtrPageCtrl->SetText(OUString::number(1)); mxMtrPageCtrl->set_text(OUString::number(1));
if (pSh) if (pSh)
{ {
const sal_uInt16 nPageCnt = pSh->GetPageCnt(); const sal_uInt16 nPageCnt = pSh->GetPageCnt();
sal_uInt16 nPhyPage, nVirPage; sal_uInt16 nPhyPage, nVirPage;
pSh->GetPageNum(nPhyPage, nVirPage); pSh->GetPageNum(nPhyPage, nVirPage);
mpMtrPageCtrl->SetText(OUString::number(nPhyPage)); mxMtrPageCtrl->set_text(OUString::number(nPhyPage));
return nPageCnt; return nPageCnt;
} }
return 0; return 0;
} }
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ /* vim:set shiftwidth=4 softtabstop=4 expandtab: */
\ No newline at end of file
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!-- Generated with glade 3.18.3 --> <!-- Generated with glade 3.20.4 -->
<interface domain="sw"> <interface domain="sw">
<requires lib="gtk+" version="3.18"/> <requires lib="gtk+" version="3.18"/>
<object class="GtkDialog" id="GotoPageDialog"> <object class="GtkDialog" id="GotoPageDialog">
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="border_width">6</property> <property name="border_width">6</property>
<property name="title" translatable="yes" context="gotopagedialog|GotoPageDialog">Go to Page</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> <property name="type_hint">dialog</property>
<child internal-child="vbox"> <child internal-child="vbox">
<object class="GtkBox" id="dialog-vbox1"> <object class="GtkBox" id="dialog-vbox1">
...@@ -67,9 +70,9 @@ ...@@ -67,9 +70,9 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="hexpand">True</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="label" translatable="yes" context="gotopagedialog|page_count">of $1</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="xalign">0</property>
</object> </object>
<packing> <packing>
<property name="left_attach">2</property> <property name="left_attach">2</property>
...@@ -80,6 +83,7 @@ ...@@ -80,6 +83,7 @@
<object class="GtkEntry" id="page"> <object class="GtkEntry" id="page">
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">True</property> <property name="can_focus">True</property>
<property name="activates_default">True</property>
<property name="width_chars">5</property> <property name="width_chars">5</property>
<property name="input_purpose">number</property> <property name="input_purpose">number</property>
</object> </object>
...@@ -93,9 +97,9 @@ ...@@ -93,9 +97,9 @@
<property name="visible">True</property> <property name="visible">True</property>
<property name="can_focus">False</property> <property name="can_focus">False</property>
<property name="halign">end</property> <property name="halign">end</property>
<property name="xalign">0</property>
<property name="label" translatable="yes" context="gotopagedialog|page_label">Page:</property> <property name="label" translatable="yes" context="gotopagedialog|page_label">Page:</property>
<property name="use_underline">True</property> <property name="use_underline">True</property>
<property name="xalign">0</property>
</object> </object>
<packing> <packing>
<property name="left_attach">0</property> <property name="left_attach">0</property>
...@@ -115,6 +119,9 @@ ...@@ -115,6 +119,9 @@
<action-widget response="-5">ok</action-widget> <action-widget response="-5">ok</action-widget>
<action-widget response="-6">cancel</action-widget> <action-widget response="-6">cancel</action-widget>
</action-widgets> </action-widgets>
<child>
<placeholder/>
</child>
</object> </object>
<object class="GtkAdjustment" id="page_value"> <object class="GtkAdjustment" id="page_value">
<property name="lower">1</property> <property name="lower">1</property>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment