diff options
author | Caolán McNamara <caolanm@redhat.com> | 2018-10-27 19:17:41 +0100 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2018-10-27 21:43:20 +0200 |
commit | 4eecab2520d432f05bf398cff9abfdd64d55a3d9 (patch) | |
tree | f23670486071143e197f3b7c783fdc453ffa8378 | |
parent | 567f6a0f0d24411969641e2e7bb87187854688a7 (diff) |
missing OPageNumberDialog run
Change-Id: I0e21f90e9cfd4e1ee6ced6108ab6619533ab8dda
Reviewed-on: https://gerrit.libreoffice.org/62438
Tested-by: Jenkins
Reviewed-by: Caolán McNamara <caolanm@redhat.com>
Tested-by: Caolán McNamara <caolanm@redhat.com>
-rw-r--r-- | reportdesign/source/ui/dlg/PageNumber.cxx | 51 | ||||
-rw-r--r-- | reportdesign/source/ui/inc/PageNumber.hxx | 2 |
2 files changed, 52 insertions, 1 deletions
diff --git a/reportdesign/source/ui/dlg/PageNumber.cxx b/reportdesign/source/ui/dlg/PageNumber.cxx index 62462180cfa6..da9faa591aae 100644 --- a/reportdesign/source/ui/dlg/PageNumber.cxx +++ b/reportdesign/source/ui/dlg/PageNumber.cxx @@ -38,8 +38,9 @@ using namespace ::comphelper; OPageNumberDialog::OPageNumberDialog(weld::Window* pParent, const uno::Reference< report::XReportDefinition >& _xHoldAlive, - OReportController* ) + OReportController* _pController) : GenericDialogController(pParent, "modules/dbreport/ui/pagenumberdialog.ui", "PageNumberDialog") + , m_pController(_pController) , m_xHoldAlive(_xHoldAlive) , m_xPageN(m_xBuilder->weld_radio_button("pagen")) , m_xPageNofM(m_xBuilder->weld_radio_button("pagenofm")) @@ -55,6 +56,54 @@ OPageNumberDialog::~OPageNumberDialog() { } +short OPageNumberDialog::run() +{ + short nRet = GenericDialogController::run(); + if (nRet == RET_OK) + { + try + { + sal_Int32 nControlMaxSize = 3000; + sal_Int32 nPosX = 0; + sal_Int32 nPos2X = 0; + awt::Size aRptSize = getStyleProperty<awt::Size>(m_xHoldAlive,PROPERTY_PAPERSIZE); + switch (m_xAlignmentLst->get_active()) + { + case 0: // left + nPosX = getStyleProperty<sal_Int32>(m_xHoldAlive,PROPERTY_LEFTMARGIN); + break; + case 1: // middle + nPosX = getStyleProperty<sal_Int32>(m_xHoldAlive,PROPERTY_LEFTMARGIN) + (aRptSize.Width - getStyleProperty<sal_Int32>(m_xHoldAlive,PROPERTY_LEFTMARGIN) - getStyleProperty<sal_Int32>(m_xHoldAlive,PROPERTY_RIGHTMARGIN) - nControlMaxSize) / 2; + break; + case 2: // right + nPosX = (aRptSize.Width - getStyleProperty<sal_Int32>(m_xHoldAlive,PROPERTY_RIGHTMARGIN) - nControlMaxSize); + break; + case 3: // inner + case 4: // outer + nPosX = getStyleProperty<sal_Int32>(m_xHoldAlive,PROPERTY_LEFTMARGIN); + nPos2X = (aRptSize.Width - getStyleProperty<sal_Int32>(m_xHoldAlive,PROPERTY_RIGHTMARGIN) - nControlMaxSize); + break; + default: + break; + } + if (m_xAlignmentLst->get_active() > 2) + nPosX = nPos2X; + + uno::Sequence<beans::PropertyValue> aValues( comphelper::InitPropertySequence({ + { PROPERTY_POSITION, uno::Any(awt::Point(nPosX,0)) }, + { PROPERTY_PAGEHEADERON, uno::Any(m_xTopPage->get_active()) }, + { PROPERTY_STATE, uno::Any(m_xPageNofM->get_active()) } + })); + + m_pController->executeChecked(SID_INSERT_FLD_PGNUMBER,aValues); + } + catch(uno::Exception&) + { + } + } + return nRet; +} + } // rptui diff --git a/reportdesign/source/ui/inc/PageNumber.hxx b/reportdesign/source/ui/inc/PageNumber.hxx index 92fd4cc549f8..eefa10c8b809 100644 --- a/reportdesign/source/ui/inc/PageNumber.hxx +++ b/reportdesign/source/ui/inc/PageNumber.hxx @@ -32,6 +32,7 @@ class OReportController; \************************************************************************/ class OPageNumberDialog : public weld::GenericDialogController { + ::rptui::OReportController* m_pController; css::uno::Reference< css::report::XReportDefinition> m_xHoldAlive; std::unique_ptr<weld::RadioButton> m_xPageN; @@ -48,6 +49,7 @@ public: const css::uno::Reference< css::report::XReportDefinition>& _xHoldAlive, ::rptui::OReportController* _pController); virtual ~OPageNumberDialog() override; + virtual short run() override; }; } // namespace rptui |