summaryrefslogtreecommitdiffstats
path: root/chart2/source/controller/dialogs/dlg_CreationWizard.cxx
diff options
context:
space:
mode:
authorTomaž Vajngerl <tomaz.vajngerl@collabora.co.uk>2017-02-26 22:48:06 +0100
committerTomaž Vajngerl <quikee@gmail.com>2017-04-04 13:39:29 +0000
commit9009663deb8f0862f419fd99bf0b761c7f923eff (patch)
treeea25976de0919f9d2161037d83be0eace4c1070b /chart2/source/controller/dialogs/dlg_CreationWizard.cxx
parentcan simplify now (diff)
downloadcore-9009663deb8f0862f419fd99bf0b761c7f923eff.tar.gz
core-9009663deb8f0862f419fd99bf0b761c7f923eff.zip
tdf#83257 [API-CHANGE] Pivot chart implementation
This is a squashed commit of the pivot chart implementation. Some of the changes: - Add pivot chart specific (pivot table) data provider which provides the data from a pivot table to the associated chart. - When inserting a chart and the cursor is in a pivot table, in that case insert a pivot chart - Modify the pivot chart when the pivot table changes - Collect and set the number format for the values - isDataFromSpreadsheet check for the creation wizard - In ChartView (and VLegend) check if the data provider is a pivot chart data provider and get the pivot table field names to create the buttons on the UI. - Adds the functionallity to show a filter pop-up (from calc) when clicking on row / column / page field buttons. - Remove (X)PopupRequest as we won't need it. - Add ODF import/export for pivot charts: + Added loext:data-pilot-source attribute on chart:chart which is the internal name of the pivot table with which the pivot chart is associated with. If the element is present, then the it means the chart is a pivot chart, else it is a normal chart + Added service to create pivot chart data provider through UNO + Add new methods to XPivotChartDataProvider to create value and label data sequences separately from the data source, which is needed for pivot chart import + When importing defer setting the data provider until a later time when we know if we are creating a chart od a pivot chart - Pivot chart ODF round-trip test - Add table pivot chart supplier API: This adds the XTablePivotChartSupplier and related interfaces so we can access, create, delete pivot charts from UNO in a sheet document. With this we now distinguish between normal charts and pivot charts. This was mainly needed because we can't extend the "published" interfaces of TableChartSupplier. - Added an extensive test, which uses the API to create a new pivot chart when there was none, and checks that the pivot chart updates when the pivot table updates. Change-Id: Ia9ed96fd6b1d342e61c2f7f9fa33a5e03dda21af Reviewed-on: https://gerrit.libreoffice.org/36023 Reviewed-by: Tomaž Vajngerl <quikee@gmail.com> Tested-by: Tomaž Vajngerl <quikee@gmail.com>
Diffstat (limited to 'chart2/source/controller/dialogs/dlg_CreationWizard.cxx')
-rw-r--r--chart2/source/controller/dialogs/dlg_CreationWizard.cxx61
1 files changed, 32 insertions, 29 deletions
diff --git a/chart2/source/controller/dialogs/dlg_CreationWizard.cxx b/chart2/source/controller/dialogs/dlg_CreationWizard.cxx
index 501272f5c486..b4beb73575a4 100644
--- a/chart2/source/controller/dialogs/dlg_CreationWizard.cxx
+++ b/chart2/source/controller/dialogs/dlg_CreationWizard.cxx
@@ -33,10 +33,10 @@
#define CHART_WIZARD_PAGEWIDTH 250
#define CHART_WIZARD_PAGEHEIGHT 170
+using namespace css;
+
namespace chart
{
-using namespace ::com::sun::star;
-
#define PATH_FULL 1
#define STATE_FIRST 0
#define STATE_CHARTTYPE STATE_FIRST
@@ -45,41 +45,42 @@ using namespace ::com::sun::star;
#define STATE_OBJECTS 3
#define STATE_LAST STATE_OBJECTS
-CreationWizard::CreationWizard( vcl::Window* pParent, const uno::Reference< frame::XModel >& xChartModel
- , const uno::Reference< uno::XComponentContext >& xContext )
- : svt::RoadmapWizard( pParent )
+CreationWizard::CreationWizard(vcl::Window* pParent, const uno::Reference<frame::XModel>& xChartModel,
+ const uno::Reference<uno::XComponentContext>& xContext)
+ : svt::RoadmapWizard(pParent)
, m_xChartModel(xChartModel,uno::UNO_QUERY)
- , m_xCC( xContext )
+ , m_xComponentContext(xContext)
, m_pTemplateProvider(nullptr)
, m_nLastState(STATE_LAST)
- , m_aTimerTriggeredControllerLock( xChartModel )
- , m_bCanTravel( true )
+ , m_aTimerTriggeredControllerLock(xChartModel)
+ , m_bCanTravel(true)
{
- m_pDialogModel.reset( new DialogModel( m_xChartModel, m_xCC ));
- defaultButton( WizardButtonFlags::FINISH );
+ m_pDialogModel.reset(new DialogModel(m_xChartModel, m_xComponentContext));
+ defaultButton(WizardButtonFlags::FINISH);
this->setTitleBase(SCH_RESSTR(STR_DLG_CHART_WIZARD));
- declarePath( PATH_FULL
- , {STATE_CHARTTYPE
- , STATE_SIMPLE_RANGE
- , STATE_DATA_SERIES
- , STATE_OBJECTS}
- );
- this->SetRoadmapHelpId( HID_SCH_WIZARD_ROADMAP );
- this->SetRoadmapInteractive( true );
- Size aAdditionalRoadmapSize( LogicToPixel( Size( 85, 0 ), MapUnit::MapAppFont ) );
+ WizardPath aPath = {
+ STATE_CHARTTYPE,
+ STATE_SIMPLE_RANGE,
+ STATE_DATA_SERIES,
+ STATE_OBJECTS
+ };
+
+ declarePath(PATH_FULL, aPath);
+
+ this->SetRoadmapHelpId(HID_SCH_WIZARD_ROADMAP);
+ this->SetRoadmapInteractive(true);
+
+ Size aAdditionalRoadmapSize(LogicToPixel(Size(85, 0), MapUnit::MapAppFont));
Size aSize(LogicToPixel(Size(CHART_WIZARD_PAGEWIDTH, CHART_WIZARD_PAGEHEIGHT), MapUnit::MapAppFont));
aSize.Width() += aAdditionalRoadmapSize.Width();
- this->SetSizePixel( aSize );
-
- uno::Reference< chart2::XChartDocument > xChartDoc( m_xChartModel, uno::UNO_QUERY );
- bool bHasOwnData = (xChartDoc.is() && xChartDoc->hasInternalDataProvider());
+ this->SetSizePixel(aSize);
- if( bHasOwnData )
+ if (!m_pDialogModel->getModel().isDataFromSpreadsheet())
{
- this->enableState( STATE_SIMPLE_RANGE, false );
- this->enableState( STATE_DATA_SERIES, false );
+ enableState(STATE_SIMPLE_RANGE, false);
+ enableState(STATE_DATA_SERIES, false);
}
// Call ActivatePage, to create and activate the first page
@@ -117,15 +118,17 @@ VclPtr<TabPage> CreationWizard::createPage(WizardState nState)
break;
case STATE_OBJECTS:
{
- pRet = VclPtr<TitlesAndObjectsTabPage>::Create(this,m_xChartModel,m_xCC);
+ pRet = VclPtr<TitlesAndObjectsTabPage>::Create(this,m_xChartModel, m_xComponentContext);
m_aTimerTriggeredControllerLock.startTimer();
}
break;
default:
break;
}
- if(pRet)
- pRet->SetText(OUString());//remove title of pages to not get them in the wizard title
+
+ if (pRet)
+ pRet->SetText(OUString()); //remove title of pages to not get them in the wizard title
+
return pRet;
}