diff options
-rw-r--r-- | chart2/Library_chartcontroller.mk | 4 | ||||
-rw-r--r-- | chart2/source/controller/dialogs/tp_PolarOptions.cxx | 4 | ||||
-rw-r--r-- | chart2/source/model/template/PieChartTypeTemplate.cxx | 11 | ||||
-rw-r--r-- | officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs | 8 | ||||
-rw-r--r-- | sw/qa/extras/uiwriter/uiwriter2.cxx | 17 |
5 files changed, 42 insertions, 2 deletions
diff --git a/chart2/Library_chartcontroller.mk b/chart2/Library_chartcontroller.mk index 48115dd2a33b..05f031415213 100644 --- a/chart2/Library_chartcontroller.mk +++ b/chart2/Library_chartcontroller.mk @@ -22,6 +22,10 @@ $(eval $(call gb_Library_use_external,chartcontroller,boost_headers)) $(eval $(call gb_Library_use_sdk_api,chartcontroller)) +$(eval $(call gb_Library_use_custom_headers,chartcontroller,\ + officecfg/registry \ +)) + $(eval $(call gb_Library_use_libraries,chartcontroller,\ basegfx \ chartcore \ diff --git a/chart2/source/controller/dialogs/tp_PolarOptions.cxx b/chart2/source/controller/dialogs/tp_PolarOptions.cxx index 804c4221247a..e858813bb39f 100644 --- a/chart2/source/controller/dialogs/tp_PolarOptions.cxx +++ b/chart2/source/controller/dialogs/tp_PolarOptions.cxx @@ -22,6 +22,7 @@ #include <svl/eitem.hxx> #include <svl/intitem.hxx> +#include <officecfg/Office/Compatibility.hxx> namespace chart { @@ -80,7 +81,8 @@ void PolarOptionsTabPage::Reset(const SfxItemSet* rInAttrs) { m_xFL_StartingAngle->hide(); } - if (rInAttrs->GetItemState(SCHATTR_CLOCKWISE, true, &pPoolItem) == SfxItemState::SET) + // tdf#108059 Hide clockwise orientation checkbox in OOXML-heavy environments it would be useless anyways + if (!officecfg::Office::Compatibility::View::ClockwisePieChartDirection::get() && rInAttrs->GetItemState(SCHATTR_CLOCKWISE, true, &pPoolItem) == SfxItemState::SET) { bool bCheck = static_cast< const SfxBoolItem * >( pPoolItem )->GetValue(); m_xCB_Clockwise->set_active(bCheck); diff --git a/chart2/source/model/template/PieChartTypeTemplate.cxx b/chart2/source/model/template/PieChartTypeTemplate.cxx index ec08764a7509..7f58b6e856e6 100644 --- a/chart2/source/model/template/PieChartTypeTemplate.cxx +++ b/chart2/source/model/template/PieChartTypeTemplate.cxx @@ -34,6 +34,7 @@ #include <com/sun/star/lang/XMultiServiceFactory.hpp> #include <officecfg/Office/Compatibility.hxx> #include <tools/diagnose_ex.h> +#include <officecfg/Office/Compatibility.hxx> #include <rtl/math.hxx> @@ -237,7 +238,15 @@ void PieChartTypeTemplate::adaptScales( { chart2::ScaleData aScaleData( xAxis->getScaleData() ); AxisHelper::removeExplicitScaling( aScaleData ); - aScaleData.Orientation = chart2::AxisOrientation_MATHEMATICAL; + // tdf#108059 Create new pie/donut charts with clockwise orientation + if (!officecfg::Office::Compatibility::View::ClockwisePieChartDirection::get()) + { + aScaleData.Orientation = chart2::AxisOrientation_MATHEMATICAL; + } + else + { + aScaleData.Orientation = chart2::AxisOrientation_REVERSE; + } xAxis->setScaleData( aScaleData ); } diff --git a/officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs b/officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs index 5b89f9498005..87d139fb9116 100644 --- a/officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs +++ b/officecfg/registry/schema/org/openoffice/Office/Compatibility.xcs @@ -193,6 +193,14 @@ </info> <value>true</value> </prop> + <prop oor:name="ClockwisePieChartDirection" oor:type="xs:boolean" oor:nillable="false"> + <info> + <!-- See tdf#108059 for rationale --> + <desc>Specifies whether the default orientation of pie charts should be clockwise. In OOXML-heavy environments it might be confusing to see charts being mirrored after save, avoid that by setting this key to true.</desc> + <label>Pie chart default orientation. Set to true for more OOXML-ish UX.</label> + </info> + <value>false</value> + </prop> </group> </component> </oor:component-schema> diff --git a/sw/qa/extras/uiwriter/uiwriter2.cxx b/sw/qa/extras/uiwriter/uiwriter2.cxx index 8fb14a87c945..a6efc4a5ee60 100644 --- a/sw/qa/extras/uiwriter/uiwriter2.cxx +++ b/sw/qa/extras/uiwriter/uiwriter2.cxx @@ -2977,9 +2977,20 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf123218) } ~ReverseXAxisOrientationDoughnutChart() = delete; }; + + struct ClockwisePieChartDirection + : public comphelper::ConfigurationProperty<ClockwisePieChartDirection, bool> + { + static OUString path() + { + return "/org.openoffice.Office.Compatibility/View/ClockwisePieChartDirection"; + } + ~ClockwisePieChartDirection() = delete; + }; auto batch = comphelper::ConfigurationChanges::create(); ReverseXAxisOrientationDoughnutChart::set(false, batch); + ClockwisePieChartDirection::set(true, batch); batch->commit(); createDoc(); @@ -3028,5 +3039,11 @@ CPPUNIT_TEST_FIXTURE(SwUiWriterTest2, testTdf123218) CPPUNIT_ASSERT(xAxis.is()); chart2::ScaleData aScaleData = xAxis->getScaleData(); CPPUNIT_ASSERT_EQUAL(chart2::AxisOrientation_MATHEMATICAL, aScaleData.Orientation); + + // tdf#108059 test primary Y axis Orientation value + uno::Reference<chart2::XAxis> xYAxis = xCoord->getAxisByDimension(1, 0); + CPPUNIT_ASSERT(xYAxis.is()); + aScaleData = xYAxis->getScaleData(); + CPPUNIT_ASSERT_EQUAL(chart2::AxisOrientation_REVERSE, aScaleData.Orientation); } /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ |