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 @@
#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
......
......@@ -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:
......
......@@ -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: */
<?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>
......
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