diff options
Diffstat (limited to 'chart2/source/controller/dialogs/dlg_DataSource.cxx')
-rw-r--r-- | chart2/source/controller/dialogs/dlg_DataSource.cxx | 72 |
1 files changed, 34 insertions, 38 deletions
diff --git a/chart2/source/controller/dialogs/dlg_DataSource.cxx b/chart2/source/controller/dialogs/dlg_DataSource.cxx index b196b24d98d8..c00698fef60d 100644 --- a/chart2/source/controller/dialogs/dlg_DataSource.cxx +++ b/chart2/source/controller/dialogs/dlg_DataSource.cxx @@ -18,22 +18,20 @@ */ #include <com/sun/star/chart2/XChartDocument.hpp> -#include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <dlg_DataSource.hxx> #include <ChartTypeTemplateProvider.hxx> -#include <DiagramHelper.hxx> +#include <ChartTypeTemplate.hxx> +#include <Diagram.hxx> #include "DialogModel.hxx" +#include <ChartModel.hxx> #include "tp_RangeChooser.hxx" #include "tp_DataSource.hxx" using namespace ::com::sun::star; -using namespace ::com::sun::star::chart2; using namespace ::chart; -using ::com::sun::star::uno::Reference; - namespace chart { @@ -43,36 +41,33 @@ class DocumentChartTypeTemplateProvider : public ChartTypeTemplateProvider { public: explicit DocumentChartTypeTemplateProvider( - const Reference< chart2::XChartDocument > & xDoc ); + const rtl::Reference<::chart::ChartModel> & xDoc ); // ____ ChartTypeTemplateProvider ____ - virtual Reference< chart2::XChartTypeTemplate > getCurrentTemplate() const override; + virtual rtl::Reference< ::chart::ChartTypeTemplate > getCurrentTemplate() const override; private: - Reference< chart2::XChartTypeTemplate > m_xTemplate; + rtl::Reference< ::chart::ChartTypeTemplate > m_xTemplate; }; } DocumentChartTypeTemplateProvider::DocumentChartTypeTemplateProvider( - const Reference< chart2::XChartDocument > & xDoc ) + const rtl::Reference<::chart::ChartModel> & xDoc ) { if( !xDoc.is()) return; - Reference< chart2::XDiagram > xDia( xDoc->getFirstDiagram()); + rtl::Reference< Diagram > xDia( xDoc->getFirstChartDiagram()); if( xDia.is()) { - DiagramHelper::tTemplateWithServiceName aResult( - DiagramHelper::getTemplateForDiagram( - xDia, - Reference< lang::XMultiServiceFactory >( - xDoc->getChartTypeManager(), uno::UNO_QUERY ) )); - m_xTemplate.set( aResult.first ); + Diagram::tTemplateWithServiceName aResult( + xDia->getTemplate( xDoc->getTypeManager() )); + m_xTemplate = aResult.xChartTypeTemplate; } } -Reference< chart2::XChartTypeTemplate > DocumentChartTypeTemplateProvider::getCurrentTemplate() const +rtl::Reference< ::chart::ChartTypeTemplate > DocumentChartTypeTemplateProvider::getCurrentTemplate() const { return m_xTemplate; } @@ -80,26 +75,26 @@ Reference< chart2::XChartTypeTemplate > DocumentChartTypeTemplateProvider::getCu sal_uInt16 DataSourceDialog::m_nLastPageId = 0; DataSourceDialog::DataSourceDialog(weld::Window * pParent, - const Reference< XChartDocument > & xChartDocument, - const Reference< uno::XComponentContext > & xContext) - : GenericDialogController(pParent, "modules/schart/ui/datarangedialog.ui", - "DataRangeDialog") + const rtl::Reference<::chart::ChartModel> & xChartDocument) + : GenericDialogController(pParent, u"modules/schart/ui/datarangedialog.ui"_ustr, + u"DataRangeDialog"_ustr) , m_apDocTemplateProvider(new DocumentChartTypeTemplateProvider(xChartDocument)) - , m_apDialogModel(new DialogModel(xChartDocument, xContext)) + , m_apDialogModel(new DialogModel(xChartDocument)) , m_bRangeChooserTabIsValid(true) , m_bDataSourceTabIsValid(true) , m_bTogglingEnabled(true) - , m_xTabControl(m_xBuilder->weld_notebook("tabcontrol")) - , m_xBtnOK(m_xBuilder->weld_button("ok")) + , m_xTabControl(m_xBuilder->weld_notebook(u"tabcontrol"_ustr)) + , m_xBtnOK(m_xBuilder->weld_button(u"ok"_ustr)) { - m_xRangeChooserTabPage = std::make_unique<RangeChooserTabPage>(m_xTabControl->get_page("range"), this, + m_xRangeChooserTabPage = std::make_unique<RangeChooserTabPage>(m_xTabControl->get_page(u"range"_ustr), this, *m_apDialogModel, m_apDocTemplateProvider.get(), true /* bHideDescription */ ); - m_xDataSourceTabPage = std::make_unique<DataSourceTabPage>(m_xTabControl->get_page("series"), this, + m_xDataSourceTabPage = std::make_unique<DataSourceTabPage>(m_xTabControl->get_page(u"series"_ustr), this, *m_apDialogModel, 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) { @@ -115,20 +110,21 @@ 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 OString&, rPage, void) +IMPL_LINK(DataSourceDialog, ActivatePageHdl, const OUString&, rPage, void) { if (rPage == "range") m_xRangeChooserTabPage->Activate(); @@ -137,7 +133,7 @@ IMPL_LINK(DataSourceDialog, ActivatePageHdl, const OString&, rPage, void) } // allow/disallow user to leave page -IMPL_LINK_NOARG(DataSourceDialog, DeactivatePageHdl, const OString&, bool) +IMPL_LINK_NOARG(DataSourceDialog, DeactivatePageHdl, const OUString&, bool) { return m_bTogglingEnabled; } |