diff options
Diffstat (limited to 'chart2/source/view/main/ChartView.cxx')
-rw-r--r-- | chart2/source/view/main/ChartView.cxx | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/chart2/source/view/main/ChartView.cxx b/chart2/source/view/main/ChartView.cxx index 0e954b7c7a85..da8798fe31b6 100644 --- a/chart2/source/view/main/ChartView.cxx +++ b/chart2/source/view/main/ChartView.cxx @@ -424,6 +424,8 @@ VCoordinateSystem* addCooSysToList( std::vector< VCoordinateSystem* >& rVCooSysL rtl::OUString aCooSysParticle( ObjectIdentifier::createParticleForCoordinateSystem( xCooSys, xChartModel ) ); pVCooSys->setParticle(aCooSysParticle); + pVCooSys->setExplicitCategoriesProvider( new ExplicitCategoriesProvider(xCooSys,xChartModel) ); + rVCooSysList.push_back( pVCooSys ); } } @@ -574,13 +576,13 @@ private: std::vector< VCoordinateSystem* >& m_rVCooSysList; ::std::map< uno::Reference< XAxis >, AxisUsage > m_aAxisUsageList; sal_Int32 m_nMaxAxisIndex; - bool m_bShiftXAxisTicks; + bool m_bChartTypeUsesShiftedXAxisTicksPerDefault; }; SeriesPlotterContainer::SeriesPlotterContainer( std::vector< VCoordinateSystem* >& rVCooSysList ) : m_rVCooSysList( rVCooSysList ) , m_nMaxAxisIndex(0) - , m_bShiftXAxisTicks(false) + , m_bChartTypeUsesShiftedXAxisTicksPerDefault(false) { } @@ -675,7 +677,7 @@ void SeriesPlotterContainer::initializeCooSysAndSeriesPlotter( uno::Reference< XChartType > xChartType( aChartTypeList[nT] ); if(nT==0) - m_bShiftXAxisTicks = ChartTypeHelper::shiftTicksAtXAxisPerDefault( xChartType ); + m_bChartTypeUsesShiftedXAxisTicksPerDefault = ChartTypeHelper::shiftTicksAtXAxisPerDefault( xChartType ); VSeriesPlotter* pPlotter = VSeriesPlotter::createSeriesPlotter( xChartType, nDimensionCount ); if( !pPlotter ) @@ -929,7 +931,9 @@ void SeriesPlotterContainer::doAutoScaling( const uno::Reference< frame::XModel for( nC=0; nC < aVCooSysList_X.size(); nC++) { - if( m_bShiftXAxisTicks ) + ExplicitCategoriesProvider* pExplicitCategoriesProvider = aVCooSysList_X[nC]->getExplicitCategoriesProvider(); + + if( m_bChartTypeUsesShiftedXAxisTicksPerDefault || (aExplicitScale.AxisType==AxisType::CATEGORY && pExplicitCategoriesProvider && pExplicitCategoriesProvider->hasComplexCategories() ) ) aExplicitIncrement.ShiftedPosition = true; aVCooSysList_X[nC]->setExplicitScaleAndIncrement( 0, nAxisIndex, aExplicitScale, aExplicitIncrement ); } @@ -1775,7 +1779,8 @@ sal_Int32 lcl_getExplicitNumberFormatKeyForAxis( if(!aLabeledSeq[nLSeqIdx].is()) continue; Reference< data::XDataSequence > xSeq( aLabeledSeq[nLSeqIdx]->getValues()); - OSL_ASSERT( xSeq.is()); + if(!xSeq.is()) + continue; Reference< beans::XPropertySet > xSeqProp( xSeq, uno::UNO_QUERY ); ::rtl::OUString aRole; bool bTakeIntoAccount = |