diff --git a/chart2/source/controller/dialogs/dlg_DataSource.cxx b/chart2/source/controller/dialogs/dlg_DataSource.cxx index be915f564990..c00698fef60d 100644 --- a/chart2/source/controller/dialogs/dlg_DataSource.cxx +++ b/chart2/source/controller/dialogs/dlg_DataSource.cxx @@ -94,6 +94,7 @@ DataSourceDialog::DataSourceDialog(weld::Window * pParent, m_apDocTemplateProvider.get(), true /* bHideDescription */ ); m_xTabControl->connect_enter_page(LINK(this, DataSourceDialog, ActivatePageHdl)); m_xTabControl->connect_leave_page(LINK(this, DataSourceDialog, DeactivatePageHdl)); + m_xBtnOK->connect_clicked(LINK(this, DataSourceDialog, OkHdl)); ActivatePageHdl(m_xTabControl->get_current_page_ident()); if (m_nLastPageId != 0) { @@ -109,17 +110,18 @@ DataSourceDialog::~DataSourceDialog() m_nLastPageId = m_xTabControl->get_current_page(); } -short DataSourceDialog::run() +void DataSourceDialog::commitPages() { - short nResult = GenericDialogController::run(); - if( nResult == RET_OK ) - { - if( m_xRangeChooserTabPage ) - m_xRangeChooserTabPage->commitPage(); - if( m_xDataSourceTabPage ) - m_xDataSourceTabPage->commitPage(); - } - return nResult; + if (m_xRangeChooserTabPage) + m_xRangeChooserTabPage->commitPage(); + if (m_xDataSourceTabPage) + m_xDataSourceTabPage->commitPage(); +} + +IMPL_LINK_NOARG(DataSourceDialog, OkHdl, weld::Button&, void) +{ + commitPages(); + m_xDialog->response(RET_OK); } IMPL_LINK(DataSourceDialog, ActivatePageHdl, const OUString&, rPage, void) diff --git a/chart2/source/controller/inc/dlg_DataSource.hxx b/chart2/source/controller/inc/dlg_DataSource.hxx index 166131e30ec9..c6b10d1dd213 100644 --- a/chart2/source/controller/inc/dlg_DataSource.hxx +++ b/chart2/source/controller/inc/dlg_DataSource.hxx @@ -44,9 +44,6 @@ public: const rtl::Reference<::chart::ChartModel> & xChartDocument ); virtual ~DataSourceDialog() override; - // from GenericDialogController base - virtual short run() override; - // TabPageNotifiable virtual void setInvalidPage( BuilderPage * pTabPage ) override; virtual void setValidPage( BuilderPage * pTabPage ) override; @@ -54,6 +51,8 @@ public: private: DECL_LINK(ActivatePageHdl, const OUString&, void); DECL_LINK(DeactivatePageHdl, const OUString&, bool); + DECL_LINK(OkHdl, weld::Button&, void); + void commitPages(); std::unique_ptr< ChartTypeTemplateProvider > m_apDocTemplateProvider; std::unique_ptr< DialogModel > m_apDialogModel;