chart2/Library_chart2.mk | 6 chart2/inc/bitmaps.hlst | 2 chart2/inc/strings.hrc | 2 chart2/source/chart2.component | 5 chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx | 6 chart2/source/controller/dialogs/ChartTypeDialogController.cxx | 51 - chart2/source/controller/dialogs/tp_ChartType.cxx | 1 chart2/source/controller/sidebar/ChartTypePanel.cxx | 1 chart2/source/inc/ChartTypeDialogController.hxx | 14 chart2/source/inc/HistogramDataSequence.hxx | 104 --- chart2/source/inc/servicenames_charttypes.hxx | 2 chart2/source/model/template/ChartType.cxx | 5 chart2/source/model/template/ChartTypeManager.cxx | 8 chart2/source/model/template/ChartTypeTemplate.cxx | 1 chart2/source/model/template/HistogramCalculator.cxx | 122 ---- chart2/source/model/template/HistogramCalculator.hxx | 36 - chart2/source/model/template/HistogramChartType.cxx | 295 ---------- chart2/source/model/template/HistogramChartType.hxx | 52 - chart2/source/model/template/HistogramChartTypeTemplate.cxx | 160 ----- chart2/source/model/template/HistogramChartTypeTemplate.hxx | 67 -- chart2/source/model/template/HistogramDataInterpreter.cxx | 63 -- chart2/source/model/template/HistogramDataInterpreter.hxx | 35 - chart2/source/tools/ChartTypeHelper.cxx | 19 chart2/source/tools/HistogramDataSequence.cxx | 154 ----- chart2/source/view/charttypes/HistogramChart.cxx | 140 ---- chart2/source/view/charttypes/HistogramChart.hxx | 44 - chart2/source/view/charttypes/VSeriesPlotter.cxx | 4 dev/null |binary offapi/UnoApi_offapi.mk | 1 offapi/com/sun/star/chart/HistogramDiagram.idl | 35 - oox/inc/drawingml/chart/typegroupconverter.hxx | 2 oox/source/drawingml/chart/typegroupconverter.cxx | 2 solenv/bin/native-code.py | 1 sw/qa/uitest/chart/tdf138556.py | 2 34 files changed, 3 insertions(+), 1439 deletions(-)
New commits: commit c01d79b8d35b252817acc6a7618b283d00fcd0ff Author: Tomaž Vajngerl <[email protected]> AuthorDate: Mon Jan 6 09:04:03 2025 +0900 Commit: Xisco Fauli <[email protected]> CommitDate: Thu Jun 12 17:12:27 2025 +0200 tdf#164593 Revert "tdf#82716 Add initial implementation of the His.." This reverts commit 07ae0e5ada7cb595eb4815413a5bdd442c32a6ab. This is not ready for release in 25-8, so best to just remove it from this branch. (cherry picked from commit 9693f1461c7d78c7461f8bbd7f421ba8c3f8452b) Change-Id: Ifd4008d62f9816d995f97104ba432ebc8be89c97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/186407 Tested-by: Jenkins Reviewed-by: Xisco Fauli <[email protected]> diff --git a/chart2/Library_chart2.mk b/chart2/Library_chart2.mk index ebc93b1148c8..48697de3772c 100644 --- a/chart2/Library_chart2.mk +++ b/chart2/Library_chart2.mk @@ -251,7 +251,6 @@ $(eval $(call gb_Library_add_exception_objects,chart2,\ chart2/source/view/charttypes/BubbleChart \ chart2/source/view/charttypes/CandleStickChart \ chart2/source/view/charttypes/CategoryPositionHelper \ - chart2/source/view/charttypes/HistogramChart \ chart2/source/view/charttypes/NetChart \ chart2/source/view/charttypes/PieChart \ chart2/source/view/charttypes/Splines \ @@ -322,10 +321,6 @@ $(eval $(call gb_Library_add_exception_objects,chart2,\ chart2/source/model/template/FilledNetChartType \ chart2/source/model/template/FunnelChartType \ chart2/source/model/template/FunnelChartTypeTemplate \ - chart2/source/model/template/HistogramChartType \ - chart2/source/model/template/HistogramChartTypeTemplate \ - chart2/source/model/template/HistogramDataInterpreter \ - chart2/source/model/template/HistogramCalculator \ chart2/source/model/template/LineChartType \ chart2/source/model/template/LineChartTypeTemplate \ chart2/source/model/template/NetChartType \ @@ -363,7 +358,6 @@ $(eval $(call gb_Library_add_exception_objects,chart2,\ chart2/source/tools/ExponentialRegressionCurveCalculator \ chart2/source/tools/FillProperties \ chart2/source/tools/FormattedStringHelper \ - chart2/source/tools/HistogramDataSequence \ chart2/source/tools/InternalData \ chart2/source/tools/InternalDataProvider \ chart2/source/tools/LabeledDataSequence \ diff --git a/chart2/inc/bitmaps.hlst b/chart2/inc/bitmaps.hlst index f0eabe5d53eb..b4b5e77e2730 100644 --- a/chart2/inc/bitmaps.hlst +++ b/chart2/inc/bitmaps.hlst @@ -11,7 +11,6 @@ inline constexpr OUString BMP_TYPE_COLUMN = u"chart2/res/typecolumn_16.png"_ustr; inline constexpr OUString BMP_TYPE_BAR = u"chart2/res/typebar_16.png"_ustr; -inline constexpr OUString BMP_TYPE_HISTOGRAM = u"chart2/res/typehistogram_16.png"_ustr; inline constexpr OUString BMP_TYPE_PIE = u"chart2/res/typepie_16.png"_ustr; inline constexpr OUString BMP_TYPE_OFPIE = u"chart2/res/typeofpie_16.png"_ustr; inline constexpr OUString BMP_TYPE_LINE = u"chart2/res/typepointline_16.png"_ustr; @@ -53,7 +52,6 @@ inline constexpr OUString BMP_COLUMNS_3D = u"chart2/res/columns3ddeep_52x60.png" inline constexpr OUString BMP_COLUMNS_3D_1 = u"chart2/res/columns3d_52x60.png"_ustr; inline constexpr OUString BMP_COLUMNS_3D_2 = u"chart2/res/columnstack3d_52x60.png"_ustr; inline constexpr OUString BMP_COLUMNS_3D_3 = u"chart2/res/columnpercent3d_52x60.png"_ustr; -inline constexpr OUString BMP_HISTOGRAM = u"chart2/res/histogram_52x60.png"_ustr; inline constexpr OUString BMP_KEGELQ_3D_1 = u"chart2/res/conehori_52x60.png"_ustr; inline constexpr OUString BMP_KEGELQ_3D_2 = u"chart2/res/conehoristack_52x60.png"_ustr; inline constexpr OUString BMP_KEGELQ_3D_3 = u"chart2/res/conehoripercent_52x60.png"_ustr; diff --git a/chart2/inc/strings.hrc b/chart2/inc/strings.hrc index 522dd8cdedfa..d2aa4d9c275b 100644 --- a/chart2/inc/strings.hrc +++ b/chart2/inc/strings.hrc @@ -159,8 +159,6 @@ #define STR_TYPE_COLUMN NC_("STR_TYPE_COLUMN", "Column") #define STR_TYPE_BAR NC_("STR_TYPE_BAR", "Bar") -#define STR_TYPE_HISTOGRAM NC_("STR_TYPE_HISTOGRAM", "Histogram") -#define STR_HISTOGRAM NC_("STR_HISTOGRAM", "Histogram Chart") #define STR_TYPE_AREA NC_("STR_TYPE_AREA", "Area") #define STR_TYPE_PIE NC_("STR_TYPE_PIE", "Pie") #define STR_TYPE_OFPIE NC_("STR_TYPE_PIE", "Of-Pie") diff --git a/chart2/source/chart2.component b/chart2/source/chart2.component index b94fab20768c..5e41ddf69b1a 100644 --- a/chart2/source/chart2.component +++ b/chart2/source/chart2.component @@ -136,11 +136,6 @@ constructor="com_sun_star_comp_chart_ColumnChartType_get_implementation"> <service name="com.sun.star.chart2.ChartType"/> <service name="com.sun.star.chart2.ColumnChartType"/> - </implementation> - <implementation name="com.sun.star.comp.chart.HistogramChartType" - constructor="com_sun_star_comp_chart_HistogramChartType_get_implementation"> - <service name="com.sun.star.chart2.ChartType"/> - <service name="com.sun.star.chart2.HistogramChartType"/> </implementation> <implementation name="com.sun.star.comp.chart.DataSeries" constructor="com_sun_star_comp_chart_DataSeries_get_implementation"> diff --git a/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx b/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx index 217921db9f00..855ed9d36885 100644 --- a/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx +++ b/chart2/source/controller/chartapiwrapper/DiagramWrapper.cxx @@ -524,12 +524,9 @@ OUString lcl_getDiagramType( std::u16string_view rTemplateServiceName ) // "PercentStackedLine" "LineSymbol" "StackedLineSymbol" // "PercentStackedLineSymbol" "ThreeDLine" "StackedThreeDLine" // "PercentStackedThreeDLine" "ThreeDLineDeep" - if( aName.find(u"Line") != std::u16string_view::npos || aName.find( u"Symbol" ) != std::u16string_view::npos ) + if( aName.find( u"Line" ) != std::u16string_view::npos || aName.find( u"Symbol" ) != std::u16string_view::npos ) return u"com.sun.star.chart.LineDiagram"_ustr; - if (aName.find(u"Histogram") != std::u16string_view::npos) - return u"com.sun.star.chart.HistogramDiagram"_ustr; - OSL_FAIL( "unknown template" ); } @@ -544,7 +541,6 @@ const tMakeStringStringMap& lcl_getChartTypeNameMap() {"com.sun.star.chart2.LineChartType", "com.sun.star.chart.LineDiagram"}, {"com.sun.star.chart2.AreaChartType", "com.sun.star.chart.AreaDiagram"}, {"com.sun.star.chart2.ColumnChartType", "com.sun.star.chart.BarDiagram"}, - {"com.sun.star.chart2.HistogramChartType", "com.sun.star.chart.HistogramDiagram"}, {"com.sun.star.chart2.PieChartType", "com.sun.star.chart.PieDiagram"}, {"com.sun.star.chart2.DonutChartType", "com.sun.star.chart.DonutDiagram"}, {"com.sun.star.chart2.ScatterChartType", "com.sun.star.chart.XYDiagram"}, diff --git a/chart2/source/controller/dialogs/ChartTypeDialogController.cxx b/chart2/source/controller/dialogs/ChartTypeDialogController.cxx index 555600b86edf..f3e97e968738 100644 --- a/chart2/source/controller/dialogs/ChartTypeDialogController.cxx +++ b/chart2/source/controller/dialogs/ChartTypeDialogController.cxx @@ -556,57 +556,6 @@ void BarChartDialogController::fillSubTypeList( ValueSet& rSubTypeList, const Ch rSubTypeList.SetItemText( 4, SchResId( STR_DEEP ) ); } -HistogramChartDialogController::HistogramChartDialogController() -{ - bSupports3D = false; -} - -HistogramChartDialogController::~HistogramChartDialogController() -{ -} - -OUString HistogramChartDialogController::getName() -{ - return SchResId(STR_TYPE_HISTOGRAM); -} - -OUString HistogramChartDialogController::getImage() -{ - return BMP_TYPE_HISTOGRAM; -} - -const tTemplateServiceChartTypeParameterMap& HistogramChartDialogController::getTemplateMap() const -{ - static tTemplateServiceChartTypeParameterMap s_aTemplateMap{ - {"com.sun.star.chart2.template.Histogram" , ChartTypeParameter(1, false, false, GlobalStackMode_NONE)} - }; - return s_aTemplateMap; -} -void HistogramChartDialogController::fillSubTypeList(ValueSet& rSubTypeList, const ChartTypeParameter& /*rParameter*/) -{ - rSubTypeList.Clear(); - rSubTypeList.InsertItem(1, Image(StockImage::Yes, BMP_HISTOGRAM)); - rSubTypeList.SetItemText(1, SchResId(STR_HISTOGRAM)); -} - -void HistogramChartDialogController::adjustParameterToSubType(ChartTypeParameter& rParameter) -{ - rParameter.b3DLook = false; - - switch (rParameter.nSubTypeIndex) - { - case 2: - // Pareto Histogram - break; - default: - // Standard Histogram - rParameter.eStackMode = GlobalStackMode_NONE; // Ensure no stacking - rParameter.bXAxisWithValues = false; // Standard histogram may not need X-axis values - // Set default bin width or other relevant properties if needed - break; - } -} - //========= // PieChartDialogController //========= diff --git a/chart2/source/controller/dialogs/tp_ChartType.cxx b/chart2/source/controller/dialogs/tp_ChartType.cxx index 45f5b277ef7e..01e7e9b470dc 100644 --- a/chart2/source/controller/dialogs/tp_ChartType.cxx +++ b/chart2/source/controller/dialogs/tp_ChartType.cxx @@ -99,7 +99,6 @@ ChartTypeTabPage::ChartTypeTabPage(weld::Container* pPage, weld::DialogControlle m_aChartTypeDialogControllerList.push_back(std::make_unique<ColumnChartDialogController>()); m_aChartTypeDialogControllerList.push_back(std::make_unique<BarChartDialogController>()); - m_aChartTypeDialogControllerList.push_back(std::make_unique<HistogramChartDialogController>()); m_aChartTypeDialogControllerList.push_back(std::make_unique<PieChartDialogController>()); m_aChartTypeDialogControllerList.push_back(std::make_unique<OfPieChartDialogController>()); m_aChartTypeDialogControllerList.push_back(std::make_unique<AreaChartDialogController>()); diff --git a/chart2/source/controller/sidebar/ChartTypePanel.cxx b/chart2/source/controller/sidebar/ChartTypePanel.cxx index fa85ded6d4a6..74c3423ebe6d 100644 --- a/chart2/source/controller/sidebar/ChartTypePanel.cxx +++ b/chart2/source/controller/sidebar/ChartTypePanel.cxx @@ -85,7 +85,6 @@ ChartTypePanel::ChartTypePanel(weld::Widget* pParent, ::chart::ChartController* m_aChartTypeDialogControllerList.push_back(std::make_unique<ColumnChartDialogController>()); m_aChartTypeDialogControllerList.push_back(std::make_unique<BarChartDialogController>()); - m_aChartTypeDialogControllerList.push_back(std::make_unique<HistogramChartDialogController>()); m_aChartTypeDialogControllerList.push_back(std::make_unique<PieChartDialogController>()); m_aChartTypeDialogControllerList.push_back(std::make_unique<OfPieChartDialogController>()); m_aChartTypeDialogControllerList.push_back(std::make_unique<AreaChartDialogController>()); diff --git a/chart2/source/inc/ChartTypeDialogController.hxx b/chart2/source/inc/ChartTypeDialogController.hxx index d052f0d76e1c..e55f6dea85dc 100644 --- a/chart2/source/inc/ChartTypeDialogController.hxx +++ b/chart2/source/inc/ChartTypeDialogController.hxx @@ -173,20 +173,6 @@ public: const ChartTypeParameter& rParameter) override; }; -class HistogramChartDialogController final : public ChartTypeDialogController -{ -public: - HistogramChartDialogController(); - virtual ~HistogramChartDialogController() override; - - virtual OUString getName() override; - virtual OUString getImage() override; - virtual const tTemplateServiceChartTypeParameterMap& getTemplateMap() const override; - virtual void fillSubTypeList(ValueSet& rSubTypeList, - const ChartTypeParameter& rParameter) override; - virtual void adjustParameterToSubType(ChartTypeParameter& rParameter) override; -}; - class PieChartDialogController final : public ChartTypeDialogController { public: diff --git a/chart2/source/inc/HistogramDataSequence.hxx b/chart2/source/inc/HistogramDataSequence.hxx deleted file mode 100644 index 3a8ac0233476..000000000000 --- a/chart2/source/inc/HistogramDataSequence.hxx +++ /dev/null @@ -1,104 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#pragma once - -// helper classes -#include <comphelper/compbase.hxx> -#include <comphelper/uno3.hxx> -#include <comphelper/broadcasthelper.hxx> -#include <comphelper/propertycontainer2.hxx> -#include <comphelper/proparrhlp.hxx> -#include <rtl/ref.hxx> - -#include "ModifyListenerHelper.hxx" - -// interfaces and types -#include <com/sun/star/lang/XServiceInfo.hpp> -#include <com/sun/star/chart2/data/XDataSequence.hpp> -#include <com/sun/star/chart2/data/XNumericalDataSequence.hpp> -#include <com/sun/star/chart2/data/XTextualDataSequence.hpp> -#include <com/sun/star/util/XCloneable.hpp> -#include <com/sun/star/util/XModifiable.hpp> - -namespace chart -{ -typedef ::comphelper::WeakComponentImplHelper< - css::chart2::data::XDataSequence, css::chart2::data::XNumericalDataSequence, - css::chart2::data::XTextualDataSequence, css::util::XCloneable, css::util::XModifyBroadcaster, - css::lang::XServiceInfo> - HistogramDataSequence_Base; - -class HistogramDataSequence final - : public HistogramDataSequence_Base, - public ::comphelper::OPropertyContainer2, - public ::comphelper::OPropertyArrayUsageHelper<HistogramDataSequence> -{ -public: - HistogramDataSequence(); - virtual ~HistogramDataSequence() override; - - /// declare XServiceInfo methods - OUString SAL_CALL getImplementationName() override; - sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override; - css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override; - - /// merge XInterface implementations - DECLARE_XINTERFACE() - - /// merge XTypeProvider implementations - DECLARE_XTYPEPROVIDER() - - // XPropertySet - /// @see css::beans::XPropertySet - virtual css::uno::Reference<css::beans::XPropertySetInfo> - SAL_CALL getPropertySetInfo() override; - /// @see ::comphelper::OPropertySetHelper - virtual ::cppu::IPropertyArrayHelper& getInfoHelper() override; - /// @see ::comphelper::OPropertyArrayUsageHelper - virtual ::cppu::IPropertyArrayHelper* createArrayHelper() const override; - - // XDataSequence - css::uno::Sequence<css::uno::Any> SAL_CALL getData() override; - OUString SAL_CALL getSourceRangeRepresentation() override; - css::uno::Sequence<OUString> - SAL_CALL generateLabel(css::chart2::data::LabelOrigin nLabelOrigin) override; - sal_Int32 SAL_CALL getNumberFormatKeyByIndex(sal_Int32 nIndex) override; - - // XNumericalDataSequence - /// @see css::chart::data::XNumericalDataSequence - virtual css::uno::Sequence<double> SAL_CALL getNumericalData() override; - - // XTextualDataSequence - /// @see css::chart::data::XTextualDataSequence - virtual css::uno::Sequence<OUString> SAL_CALL getTextualData() override; - - // XCloneable - virtual css::uno::Reference<css::util::XCloneable> SAL_CALL createClone() override; - - // XModifyBroadcaster - virtual void SAL_CALL - addModifyListener(const css::uno::Reference<css::util::XModifyListener>& aListener) override; - virtual void SAL_CALL - removeModifyListener(const css::uno::Reference<css::util::XModifyListener>& aListener) override; - - void setLabels(css::uno::Sequence<OUString> const& xLabels) { mxLabels = xLabels; } - - void setValues(css::uno::Sequence<double> const& xValues) { mxValues = xValues; } - -private: - rtl::Reference<chart::ModifyEventForwarder> m_xModifyEventForwarder; - OUString m_sRole; - css::uno::Sequence<OUString> mxLabels; - css::uno::Sequence<double> mxValues; -}; - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/inc/servicenames_charttypes.hxx b/chart2/source/inc/servicenames_charttypes.hxx index fe4bcb1126bf..5a84e3b92c0c 100644 --- a/chart2/source/inc/servicenames_charttypes.hxx +++ b/chart2/source/inc/servicenames_charttypes.hxx @@ -26,8 +26,6 @@ inline constexpr OUString CHART2_SERVICE_NAME_CHARTTYPE_BAR = u"com.sun.star.chart2.BarChartType"_ustr; inline constexpr OUString CHART2_SERVICE_NAME_CHARTTYPE_COLUMN = u"com.sun.star.chart2.ColumnChartType"_ustr; -inline constexpr OUString CHART2_SERVICE_NAME_CHARTTYPE_HISTOGRAM - = u"com.sun.star.chart2.HistogramChartType"_ustr; inline constexpr OUString CHART2_SERVICE_NAME_CHARTTYPE_LINE = u"com.sun.star.chart2.LineChartType"_ustr; inline constexpr OUString CHART2_SERVICE_NAME_CHARTTYPE_SCATTER diff --git a/chart2/source/model/template/ChartType.cxx b/chart2/source/model/template/ChartType.cxx index 25d050ddbb72..7b91223a8915 100644 --- a/chart2/source/model/template/ChartType.cxx +++ b/chart2/source/model/template/ChartType.cxx @@ -450,8 +450,6 @@ bool ChartType::isSupportingOverlapAndGapWidthProperties(sal_Int32 nDimensionCou if (aChartTypeName.match(CHART2_SERVICE_NAME_CHARTTYPE_BAR)) return true; - if (aChartTypeName.match(CHART2_SERVICE_NAME_CHARTTYPE_HISTOGRAM)) - return true; return false; } @@ -589,8 +587,7 @@ bool ChartType::isSupportingCategoryPositioning(sal_Int32 nDimensionCount) } else if (nDimensionCount == 2 && (aChartTypeName.match(CHART2_SERVICE_NAME_CHARTTYPE_COLUMN) || - aChartTypeName.match(CHART2_SERVICE_NAME_CHARTTYPE_BAR) || - aChartTypeName.match(CHART2_SERVICE_NAME_CHARTTYPE_HISTOGRAM))) + aChartTypeName.match(CHART2_SERVICE_NAME_CHARTTYPE_BAR))) { return true; } diff --git a/chart2/source/model/template/ChartTypeManager.cxx b/chart2/source/model/template/ChartTypeManager.cxx index 8baf3682ecac..7acb02a6c894 100644 --- a/chart2/source/model/template/ChartTypeManager.cxx +++ b/chart2/source/model/template/ChartTypeManager.cxx @@ -23,7 +23,6 @@ #include "LineChartTypeTemplate.hxx" #include "BarChartTypeTemplate.hxx" #include "ColumnLineChartTypeTemplate.hxx" -#include "HistogramChartTypeTemplate.hxx" #include "AreaChartTypeTemplate.hxx" #include "PieChartTypeTemplate.hxx" #include "ScatterChartTypeTemplate.hxx" @@ -81,7 +80,6 @@ enum TemplateId TEMPLATE_PERCENTSTACKEDTHREEDBARFLAT, TEMPLATE_COLUMNWITHLINE, TEMPLATE_STACKEDCOLUMNWITHLINE, - TEMPLATE_HISTOGRAM, TEMPLATE_AREA, TEMPLATE_STACKEDAREA, TEMPLATE_PERCENTSTACKEDAREA, @@ -159,7 +157,6 @@ const tTemplateMapType & lcl_DefaultChartTypeMap() {"com.sun.star.chart2.template.PercentStackedThreeDBarFlat", TEMPLATE_PERCENTSTACKEDTHREEDBARFLAT}, {"com.sun.star.chart2.template.ColumnWithLine", TEMPLATE_COLUMNWITHLINE}, {"com.sun.star.chart2.template.StackedColumnWithLine", TEMPLATE_STACKEDCOLUMNWITHLINE}, - {"com.sun.star.chart2.template.Histogram", TEMPLATE_HISTOGRAM}, {"com.sun.star.chart2.template.Area", TEMPLATE_AREA}, {"com.sun.star.chart2.template.StackedArea", TEMPLATE_STACKEDAREA}, {"com.sun.star.chart2.template.PercentStackedArea", TEMPLATE_PERCENTSTACKEDAREA}, @@ -371,11 +368,6 @@ rtl::Reference< ::chart::ChartTypeTemplate > ChartTypeManager::createTemplate( } break; - // Histogram - case TEMPLATE_HISTOGRAM: - xTemplate.set( new HistogramChartTypeTemplate( m_xContext, aServiceSpecifier, StackMode::NONE )); - break; - // Area case TEMPLATE_AREA: xTemplate.set( new AreaChartTypeTemplate( m_xContext, aServiceSpecifier, StackMode::NONE )); diff --git a/chart2/source/model/template/ChartTypeTemplate.cxx b/chart2/source/model/template/ChartTypeTemplate.cxx index 5685f9e06c0c..6549f26f02da 100644 --- a/chart2/source/model/template/ChartTypeTemplate.cxx +++ b/chart2/source/model/template/ChartTypeTemplate.cxx @@ -571,7 +571,6 @@ void ChartTypeTemplate::adaptScales( // Bar types, but not BarOfPie aData.ShiftedCategoryPosition = m_aServiceName.indexOf("Column") != -1 || - m_aServiceName.indexOf("Histogram") != -1 || (m_aServiceName.indexOf("Bar") != -1 && !m_aServiceName.indexOf("BarOfPie")) || m_aServiceName.endsWith("Close"); diff --git a/chart2/source/model/template/HistogramCalculator.cxx b/chart2/source/model/template/HistogramCalculator.cxx deleted file mode 100644 index ac0455196a53..000000000000 --- a/chart2/source/model/template/HistogramCalculator.cxx +++ /dev/null @@ -1,122 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#include "HistogramCalculator.hxx" - -#include <algorithm> -#include <cmath> - -namespace chart -{ -HistogramCalculator::HistogramCalculator() = default; - -void HistogramCalculator::computeBinFrequencyHistogram(const std::vector<double>& rDataPoints) -{ - if (rDataPoints.empty()) - return; - - mnBins = 1; - mfBinWidth = 1.0; - maBinRanges.clear(); - maBinFrequencies.clear(); - - // Calculate statistics - double fSum = 0.0; - double fSquareSum = 0.0; - double fMinValue = rDataPoints[0]; - double fMaxValue = rDataPoints[0]; - sal_Int32 nValidCount = 0; - - // Compute min and max values, ignoring non-finite values - for (const auto& rValue : rDataPoints) - { - if (std::isfinite(rValue)) - { - fSum += rValue; - fSquareSum += rValue * rValue; - fMinValue = std::min(fMinValue, rValue); - fMaxValue = std::max(fMaxValue, rValue); - ++nValidCount; - } - } - - if (nValidCount < 2 || fMinValue == fMaxValue) // Need at least two points for variance - { - mnBins = 1; - mfBinWidth = 1.0; - maBinRanges = { { std::floor(fMinValue), std::ceil(fMinValue + 1.0) } }; - maBinFrequencies = { nValidCount }; - return; - } - - double fMean = fSum / nValidCount; - double fVariance = (fSquareSum - fSum * fMean) / (nValidCount - 1); - double fStdDev = std::sqrt(fVariance); - - // Apply Scott's rule for bin width - mfBinWidth = (3.5 * fStdDev) / std::cbrt(nValidCount); - - // Calculate number of bins - mnBins = static_cast<sal_Int32>(std::ceil((fMaxValue - fMinValue) / mfBinWidth)); - mnBins = std::max<sal_Int32>(mnBins, 1); // Ensure at least one bin - - // Set up bin ranges - maBinRanges.reserve(mnBins); - double fBinStart = fMinValue; - - for (sal_Int32 i = 0; i < mnBins; ++i) - { - double fBinEnd = fBinStart + mfBinWidth; - - // Correct rounding to avoid discrepancies - fBinStart = std::round(fBinStart * 100.0) / 100.0; - fBinEnd = std::round(fBinEnd * 100.0) / 100.0; - - if (i == 0) - { - // First bin includes the minimum value, so use closed interval [fMinValue, fBinEnd] - maBinRanges.emplace_back(fMinValue, fBinEnd); - } - else - { - // Subsequent bins use half-open interval (fBinStart, fBinEnd] - maBinRanges.emplace_back(fBinStart, fBinEnd); - } - fBinStart = fBinEnd; - } - - // Adjust the last bin end to be inclusive - maBinRanges.back().second = std::max(maBinRanges.back().second, fMaxValue); - - // Calculate frequencies - maBinFrequencies.assign(mnBins, 0); - for (double fValue : rDataPoints) - { - if (std::isfinite(fValue)) - { - for (size_t i = 0; i < maBinRanges.size(); ++i) - { - if (i == 0 && fValue >= maBinRanges[i].first && fValue <= maBinRanges[i].second) - { - maBinFrequencies[i]++; - break; - } - else if (i > 0 && fValue > maBinRanges[i].first && fValue <= maBinRanges[i].second) - { - maBinFrequencies[i]++; - break; - } - } - } - } -} - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/chart2/source/model/template/HistogramCalculator.hxx b/chart2/source/model/template/HistogramCalculator.hxx deleted file mode 100644 index d2c43453af1b..000000000000 --- a/chart2/source/model/template/HistogramCalculator.hxx +++ /dev/null @@ -1,36 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#pragma once - -#include <sal/types.h> -#include <vector> - -namespace chart -{ -class HistogramCalculator -{ - sal_Int32 mnBins = 1; - double mfBinWidth = 1.0; - - std::vector<std::pair<double, double>> maBinRanges; - std::vector<sal_Int32> maBinFrequencies; - -public: - HistogramCalculator(); - - void computeBinFrequencyHistogram(const std::vector<double>& dataPoints); - - const std::vector<std::pair<double, double>>& getBinRanges() const { return maBinRanges; } - const std::vector<sal_Int32>& getBinFrequencies() const { return maBinFrequencies; } -}; - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/chart2/source/model/template/HistogramChartType.cxx b/chart2/source/model/template/HistogramChartType.cxx deleted file mode 100644 index 2f202de39945..000000000000 --- a/chart2/source/model/template/HistogramChartType.cxx +++ /dev/null @@ -1,295 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#include "HistogramChartType.hxx" -#include <servicenames_charttypes.hxx> -#include <CartesianCoordinateSystem.hxx> -#include <PropertyHelper.hxx> -#include <Axis.hxx> -#include <AxisHelper.hxx> -#include <AxisIndexDefines.hxx> -#include <DataSeries.hxx> -#include <LabeledDataSequence.hxx> -#include <HistogramDataSequence.hxx> -#include "HistogramCalculator.hxx" -#include <com/sun/star/chart2/AxisType.hpp> -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <cppuhelper/supportsservice.hxx> - -#include <algorithm> -#include <cmath> -#include <iostream> -namespace com::sun::star::uno -{ -class XComponentContext; -} - -using namespace ::com::sun::star; -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::beans::Property; - -namespace -{ -enum -{ - PROP_HISTOGRAMCHARTTYPE_BINWIDTH, - PROP_HISTOGRAMCHARTTYPE_BINRANGE, - PROP_HISTOGRAMCHARTTYPE_FREQUENCYTYPE, - PROP_HISTOGRAMCHARTTYPE_OVERLAP_SEQUENCE, - PROP_HISTOGRAMCHARTTYPE_GAPWIDTH_SEQUENCE -}; - -void lcl_AddPropertiesToVector(std::vector<Property>& rOutProperties) -{ - rOutProperties.emplace_back( - "BinWidth", PROP_HISTOGRAMCHARTTYPE_BINWIDTH, cppu::UnoType<double>::get(), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT); - - rOutProperties.emplace_back( - "BinRange", PROP_HISTOGRAMCHARTTYPE_BINRANGE, cppu::UnoType<double>::get(), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT); - - rOutProperties.emplace_back( - "FrequencyType", PROP_HISTOGRAMCHARTTYPE_FREQUENCYTYPE, cppu::UnoType<sal_Int32>::get(), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT); - - rOutProperties.emplace_back("OverlapSequence", PROP_HISTOGRAMCHARTTYPE_OVERLAP_SEQUENCE, - cppu::UnoType<Sequence<sal_Int32>>::get(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT); - - rOutProperties.emplace_back("GapwidthSequence", PROP_HISTOGRAMCHARTTYPE_GAPWIDTH_SEQUENCE, - cppu::UnoType<sal_Int32>::get(), - beans::PropertyAttribute::BOUND - | beans::PropertyAttribute::MAYBEDEFAULT); -} - -::cppu::OPropertyArrayHelper& StaticHistogramChartTypeInfoHelper() -{ - static ::cppu::OPropertyArrayHelper aPropHelper = []() { - std::vector<css::beans::Property> aProperties; - lcl_AddPropertiesToVector(aProperties); - - std::sort(aProperties.begin(), aProperties.end(), ::chart::PropertyNameLess()); - - return comphelper::containerToSequence(aProperties); - }(); - return aPropHelper; -}; - -} // anonymous namespace - -namespace chart -{ -HistogramChartType::HistogramChartType() {} - -HistogramChartType::HistogramChartType(const HistogramChartType& rOther) - : ChartType(rOther) -{ -} - -HistogramChartType::~HistogramChartType() {} - -// ____ XCloneable ____ -uno::Reference<util::XCloneable> SAL_CALL HistogramChartType::createClone() -{ - return uno::Reference<util::XCloneable>(new HistogramChartType(*this)); -} - -rtl::Reference<ChartType> HistogramChartType::cloneChartType() const -{ - return new HistogramChartType(*this); -} - -// ____ XChartType ____ -rtl::Reference<::chart::BaseCoordinateSystem> -HistogramChartType::createCoordinateSystem2(sal_Int32 DimensionCount) -{ - rtl::Reference<CartesianCoordinateSystem> xResult - = new CartesianCoordinateSystem(DimensionCount); - - for (sal_Int32 i = 0; i < DimensionCount; i++) - { - rtl::Reference<Axis> xAxis = xResult->getAxisByDimension2(i, MAIN_AXIS_INDEX); - if (xAxis.is()) - { - chart2::ScaleData aScaleData = xAxis->getScaleData(); - aScaleData.Orientation = chart2::AxisOrientation_MATHEMATICAL; - aScaleData.Scaling = AxisHelper::createLinearScaling(); - - if (i == 0) //X-axis - { - aScaleData.AxisType = chart2::AxisType::REALNUMBER; - aScaleData.AutoDateAxis = false; - } - else if (i == 1) //Y-axis - { - aScaleData.AxisType = chart2::AxisType::REALNUMBER; - } - - xAxis->setScaleData(aScaleData); - } - } - - return xResult; -} - -OUString SAL_CALL HistogramChartType::getChartType() -{ - return CHART2_SERVICE_NAME_CHARTTYPE_HISTOGRAM; -} - -uno::Sequence<OUString> HistogramChartType::getSupportedPropertyRoles() -{ - return { u"FillColor"_ustr, u"BorderColor"_ustr }; -} - -::cppu::IPropertyArrayHelper& SAL_CALL HistogramChartType::getInfoHelper() -{ - return StaticHistogramChartTypeInfoHelper(); -} - -// ____ OPropertySet ____ -void HistogramChartType::GetDefaultValue(sal_Int32 nHandle, uno::Any& rAny) const -{ - static const ::chart::tPropertyValueMap aStaticDefaults = []() { - ::chart::tPropertyValueMap aTmp; - Sequence<sal_Int32> aSeq{ 0 }; // No gap for histogram - ::chart::PropertyHelper::setPropertyValueDefault( - aTmp, PROP_HISTOGRAMCHARTTYPE_GAPWIDTH_SEQUENCE, aSeq); - ::chart::PropertyHelper::setPropertyValueDefault( - aTmp, PROP_HISTOGRAMCHARTTYPE_OVERLAP_SEQUENCE, aSeq); - ::chart::PropertyHelper::setPropertyValueDefault(aTmp, PROP_HISTOGRAMCHARTTYPE_BINWIDTH, - 2.0); - ::chart::PropertyHelper::setPropertyValueDefault(aTmp, PROP_HISTOGRAMCHARTTYPE_BINRANGE, - 1.0); - ::chart::PropertyHelper::setPropertyValueDefault( - aTmp, PROP_HISTOGRAMCHARTTYPE_FREQUENCYTYPE, sal_Int32(0)); - return aTmp; - }(); - - tPropertyValueMap::const_iterator aFound(aStaticDefaults.find(nHandle)); - if (aFound == aStaticDefaults.end()) - rAny.clear(); - else - rAny = (*aFound).second; -} -// ____ XPropertySet ____ -uno::Reference<beans::XPropertySetInfo> SAL_CALL HistogramChartType::getPropertySetInfo() -{ - static uno::Reference<beans::XPropertySetInfo> xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo(StaticHistogramChartTypeInfoHelper())); - return xPropertySetInfo; -} - -OUString SAL_CALL HistogramChartType::getImplementationName() -{ - return "com.sun.star.comp.chart.HistogramChartType"; -} - -sal_Bool SAL_CALL HistogramChartType::supportsService(const OUString& rServiceName) -{ - return cppu::supportsService(this, rServiceName); -} - -css::uno::Sequence<OUString> SAL_CALL HistogramChartType::getSupportedServiceNames() -{ - return { CHART2_SERVICE_NAME_CHARTTYPE_HISTOGRAM, "com.sun.star.chart2.ChartType" }; -} - -namespace -{ -void setRoleToTheSequence(uno::Reference<chart2::data::XDataSequence> const& xSequence, - OUString const& rRole) -{ - if (!xSequence.is()) - return; - try - { - uno::Reference<beans::XPropertySet> xProperty(xSequence, uno::UNO_QUERY_THROW); - xProperty->setPropertyValue(u"Role"_ustr, uno::Any(rRole)); - } - catch (const uno::Exception&) - { - } -} -} - -void HistogramChartType::createCalculatedDataSeries() -{ - if (m_aDataSeries.empty()) - return; - - std::vector<uno::Reference<chart2::data::XLabeledDataSequence>> const& aDataSequences - = m_aDataSeries[0]->getDataSequences2(); - - if (aDataSequences.empty() || !aDataSequences[0].is()) - return; - - // Extract raw data from the spreadsheet - std::vector<double> rawData; - uno::Reference<chart2::data::XDataSequence> xValues = aDataSequences[0]->getValues(); - - uno::Sequence<uno::Any> aRawAnyValues = xValues->getData(); - for (const auto& aAny : aRawAnyValues) - { - double fValue = 0.0; - if (aAny >>= fValue) // Extract double from Any - { - rawData.push_back(fValue); - } - } - - // Perform histogram calculations - HistogramCalculator aHistogramCalculator; - aHistogramCalculator.computeBinFrequencyHistogram(rawData); - - // Get bin ranges and frequencies - const auto& binRanges = aHistogramCalculator.getBinRanges(); - const auto& binFrequencies = aHistogramCalculator.getBinFrequencies(); - - // Create labels and values for HistogramDataSequence - std::vector<OUString> aLabels; - std::vector<double> aValues; - for (size_t i = 0; i < binRanges.size(); ++i) - { - OUString aLabel; - if (i == 0) - { - aLabel = u"["_ustr + OUString::number(binRanges[i].first) + u"-"_ustr - + OUString::number(binRanges[i].second) + u"]"_ustr; - } - else - { - aLabel = u"("_ustr + OUString::number(binRanges[i].first) + u"-"_ustr - + OUString::number(binRanges[i].second) + u"]"_ustr; - } - aLabels.push_back(aLabel); - aValues.push_back(static_cast<double>(binFrequencies[i])); - } - - rtl::Reference<HistogramDataSequence> aValuesDataSequence = new HistogramDataSequence(); - aValuesDataSequence->setValues(comphelper::containerToSequence(aValues)); - aValuesDataSequence->setLabels(comphelper::containerToSequence(aLabels)); - - setRoleToTheSequence(aValuesDataSequence, u"values-y"_ustr); - - m_aDataSeries[0]->addDataSequence(new LabeledDataSequence(aValuesDataSequence)); -} - -} // namespace chart - -extern "C" SAL_DLLPUBLIC_EXPORT css::uno::XInterface* -com_sun_star_comp_chart_HistogramChartType_get_implementation( - css::uno::XComponentContext* /*context*/, css::uno::Sequence<css::uno::Any> const&) -{ - return cppu::acquire(new ::chart::HistogramChartType()); -} - -/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/chart2/source/model/template/HistogramChartType.hxx b/chart2/source/model/template/HistogramChartType.hxx deleted file mode 100644 index 621c153a2d61..000000000000 --- a/chart2/source/model/template/HistogramChartType.hxx +++ /dev/null @@ -1,52 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#pragma once - -#include <ChartType.hxx> - -namespace chart -{ -class HistogramChartType : public ChartType -{ -public: - explicit HistogramChartType(); - virtual ~HistogramChartType() override; - - virtual OUString SAL_CALL getImplementationName() override; - virtual sal_Bool SAL_CALL supportsService(const OUString& ServiceName) override; - virtual css::uno::Sequence<OUString> SAL_CALL getSupportedServiceNames() override; - - virtual rtl::Reference<ChartType> cloneChartType() const override; - - void createCalculatedDataSeries() override; - -protected: - explicit HistogramChartType(const HistogramChartType& rOther); - - // ____ XChartType ____ - rtl::Reference<::chart::BaseCoordinateSystem> - createCoordinateSystem2(sal_Int32 DimensionCount) override; - OUString SAL_CALL getChartType() override; - css::uno::Sequence<OUString> SAL_CALL getSupportedPropertyRoles() override; - - // ____ OPropertySet ____ - void GetDefaultValue(sal_Int32 nHandle, css::uno::Any& rAny) const override; - ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override; - - // ____ XPropertySet ____ - css::uno::Reference<css::beans::XPropertySetInfo> SAL_CALL getPropertySetInfo() override; - - // ____ XCloneable ____ - css::uno::Reference<css::util::XCloneable> SAL_CALL createClone() override; -}; - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/chart2/source/model/template/HistogramChartTypeTemplate.cxx b/chart2/source/model/template/HistogramChartTypeTemplate.cxx deleted file mode 100644 index b30d1205c429..000000000000 --- a/chart2/source/model/template/HistogramChartTypeTemplate.cxx +++ /dev/null @@ -1,160 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#include "HistogramChartTypeTemplate.hxx" -#include "HistogramChartType.hxx" -#include "HistogramDataInterpreter.hxx" -#include <Diagram.hxx> -#include <DataSeries.hxx> -#include <DataSeriesHelper.hxx> -#include <PropertyHelper.hxx> -#include <com/sun/star/beans/PropertyAttribute.hpp> -#include <com/sun/star/drawing/LineStyle.hpp> -#include <com/sun/star/chart2/DataPointGeometry3D.hpp> -#include <com/sun/star/uno/XComponentContext.hpp> -#include <comphelper/diagnose_ex.hxx> - -#include <algorithm> - -using namespace ::com::sun::star; - -using ::com::sun::star::uno::Reference; -using ::com::sun::star::uno::Sequence; -using ::com::sun::star::beans::Property; - -namespace -{ -enum -{ - PROP_HISTOGRAM_TEMPLATE_DIMENSION, -}; - -void lcl_AddPropertiesToVector(std::vector<Property>& rOutProperties) -{ - rOutProperties.emplace_back( - "Dimension", PROP_HISTOGRAM_TEMPLATE_DIMENSION, cppu::UnoType<sal_Int32>::get(), - beans::PropertyAttribute::BOUND | beans::PropertyAttribute::MAYBEDEFAULT); -} - -::cppu::OPropertyArrayHelper& StaticHistogramChartTypeTemplateInfoHelper() -{ - static ::cppu::OPropertyArrayHelper aPropHelper = []() { - std::vector<css::beans::Property> aProperties; - lcl_AddPropertiesToVector(aProperties); - - std::sort(aProperties.begin(), aProperties.end(), ::chart::PropertyNameLess()); - - return comphelper::containerToSequence(aProperties); - }(); - return aPropHelper; -}; - -} // anonymous namespace - -namespace chart -{ -HistogramChartTypeTemplate::HistogramChartTypeTemplate( - Reference<uno::XComponentContext> const& xContext, const OUString& rServiceName, - StackMode eStackMode) - : ChartTypeTemplate(xContext, rServiceName) - , m_eStackMode(eStackMode) - , m_nDim(2) -{ -} - -sal_Int32 HistogramChartTypeTemplate::getDimension() const { return m_nDim; } - -StackMode HistogramChartTypeTemplate::getStackMode(sal_Int32 /* nChartTypeIndex */) const -{ - return m_eStackMode; -} - -rtl::Reference<ChartType> - HistogramChartTypeTemplate::getChartTypeForIndex(sal_Int32 /*nChartTypeIndex*/) -{ - return new HistogramChartType(); -} - -rtl::Reference<ChartType> HistogramChartTypeTemplate::getChartTypeForNewSeries2( - const std::vector<rtl::Reference<ChartType>>& aFormerlyUsedChartTypes) -{ - rtl::Reference<ChartType> xResult(getChartTypeForIndex(0)); - ChartTypeTemplate::copyPropertiesFromOldToNewCoordinateSystem(aFormerlyUsedChartTypes, xResult); - return xResult; -} - -// ____ OPropertySet ____ -void HistogramChartTypeTemplate::GetDefaultValue(sal_Int32 nHandle, uno::Any& rAny) const -{ - static ::chart::tPropertyValueMap aStaticDefaults = []() { - ::chart::tPropertyValueMap aTmp; - ::chart::PropertyHelper::setPropertyValueDefault<sal_Int32>( - aTmp, PROP_HISTOGRAM_TEMPLATE_DIMENSION, 2); - return aTmp; - }(); - tPropertyValueMap::const_iterator aFound(aStaticDefaults.find(nHandle)); - if (aFound == aStaticDefaults.end()) - rAny.clear(); - else - rAny = (*aFound).second; -} - -::cppu::IPropertyArrayHelper& SAL_CALL HistogramChartTypeTemplate::getInfoHelper() -{ - return StaticHistogramChartTypeTemplateInfoHelper(); -} - -// ____ XPropertySet ____ -Reference<beans::XPropertySetInfo> SAL_CALL HistogramChartTypeTemplate::getPropertySetInfo() -{ - static uno::Reference<beans::XPropertySetInfo> xPropertySetInfo( - ::cppu::OPropertySetHelper::createPropertySetInfo( - StaticHistogramChartTypeTemplateInfoHelper())); - return xPropertySetInfo; -} - -void HistogramChartTypeTemplate::applyStyle2(const rtl::Reference<DataSeries>& xSeries, - ::sal_Int32 nChartTypeIndex, ::sal_Int32 nSeriesIndex, - ::sal_Int32 nSeriesCount) -{ - ChartTypeTemplate::applyStyle2(xSeries, nChartTypeIndex, nSeriesIndex, nSeriesCount); - xSeries->setPropertyAlsoToAllAttributedDataPoints("BorderStyle", - uno::Any(drawing::LineStyle_NONE)); -} - -void HistogramChartTypeTemplate::resetStyles2(const rtl::Reference<::chart::Diagram>& xDiagram) -{ - ChartTypeTemplate::resetStyles2(xDiagram); - std::vector<rtl::Reference<DataSeries>> aSeriesVec(xDiagram->getDataSeries()); - uno::Any aLineStyleAny(drawing::LineStyle_NONE); - for (auto const& series : aSeriesVec) - { - if (series->getPropertyValue("BorderStyle") == aLineStyleAny) - { - series->setPropertyToDefault("BorderStyle"); - } - } - - xDiagram->setVertical(false); -} - -rtl::Reference<DataInterpreter> HistogramChartTypeTemplate::getDataInterpreter2() -{ - if (!m_xDataInterpreter.is()) - m_xDataInterpreter.set(new HistogramDataInterpreter); - - return m_xDataInterpreter; -} - -IMPLEMENT_FORWARD_XINTERFACE2(HistogramChartTypeTemplate, ChartTypeTemplate, OPropertySet) -IMPLEMENT_FORWARD_XTYPEPROVIDER2(HistogramChartTypeTemplate, ChartTypeTemplate, OPropertySet) - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/chart2/source/model/template/HistogramChartTypeTemplate.hxx b/chart2/source/model/template/HistogramChartTypeTemplate.hxx deleted file mode 100644 index 519292f6107f..000000000000 --- a/chart2/source/model/template/HistogramChartTypeTemplate.hxx +++ /dev/null @@ -1,67 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ -#pragma once - -#include <OPropertySet.hxx> -#include <comphelper/uno3.hxx> - -#include <ChartTypeTemplate.hxx> -#include <StackMode.hxx> - -namespace chart -{ -class HistogramChartTypeTemplate : public ChartTypeTemplate, public ::property::OPropertySet -{ -public: - explicit HistogramChartTypeTemplate( - css::uno::Reference<css::uno::XComponentContext> const& xContext, - const OUString& rServiceName, StackMode eStackMode); - - /// merge XInterface implementations - DECLARE_XINTERFACE() - /// merge XTypeProvider implementations - DECLARE_XTYPEPROVIDER() - -protected: - // ____ OPropertySet ____ - virtual void GetDefaultValue(sal_Int32 nHandle, css::uno::Any& rAny) const override; - virtual ::cppu::IPropertyArrayHelper& SAL_CALL getInfoHelper() override; - - // ____ XPropertySet ____ - virtual css::uno::Reference<css::beans::XPropertySetInfo> - SAL_CALL getPropertySetInfo() override; - - // ____ ChartTypeTemplate ____ - virtual rtl::Reference<::chart::ChartType> getChartTypeForNewSeries2( - const std::vector<rtl::Reference<::chart::ChartType>>& aFormerlyUsedChartTypes) override; - - virtual sal_Bool SAL_CALL supportsCategories() override { return true; } - - virtual void applyStyle2(const rtl::Reference<::chart::DataSeries>& xSeries, - ::sal_Int32 nChartTypeGroupIndex, ::sal_Int32 nSeriesIndex, - ::sal_Int32 nSeriesCount) override; - - virtual void resetStyles2(const rtl::Reference<::chart::Diagram>& xDiagram) override; - - virtual rtl::Reference<::chart::ChartType> - getChartTypeForIndex(sal_Int32 nChartTypeIndex) override; - - virtual sal_Int32 getDimension() const override; - virtual StackMode getStackMode(sal_Int32 nChartTypeIndex) const override; - - rtl::Reference<chart::DataInterpreter> getDataInterpreter2() override; - -private: - StackMode m_eStackMode; - sal_Int32 m_nDim; -}; - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/chart2/source/model/template/HistogramDataInterpreter.cxx b/chart2/source/model/template/HistogramDataInterpreter.cxx deleted file mode 100644 index c78f3b298b33..000000000000 --- a/chart2/source/model/template/HistogramDataInterpreter.cxx +++ /dev/null @@ -1,63 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#include <sal/config.h> - -#include "HistogramDataInterpreter.hxx" -#include <HistogramDataSequence.hxx> -#include "HistogramCalculator.hxx" -#include <LabeledDataSequence.hxx> - -#include <DataSeries.hxx> -#include <DataSeriesHelper.hxx> -#include <CommonConverters.hxx> -#include <com/sun/star/util/XCloneable.hpp> -#include <comphelper/diagnose_ex.hxx> -#include <sal/log.hxx> - -using namespace css; - -namespace chart -{ -InterpretedData HistogramDataInterpreter::interpretDataSource( - const uno::Reference<chart2::data::XDataSource>& xSource, - const uno::Sequence<beans::PropertyValue>& aArguments, - const std::vector<rtl::Reference<DataSeries>>& aSeriesToReUse) -{ - if (!xSource.is()) - return InterpretedData(); - - InterpretedData aInterpretedData( - DataInterpreter::interpretDataSource(xSource, aArguments, aSeriesToReUse)); - - std::vector<uno::Reference<chart2::data::XLabeledDataSequence>> aData - = DataInterpreter::getDataSequences(xSource); - - if (aData.empty() || !aData[0].is()) - return InterpretedData(); - - SetRole(aData[0]->getValues(), u"values-y-original"_ustr); - - return aInterpretedData; -} - -InterpretedData -HistogramDataInterpreter::reinterpretDataSeries(const InterpretedData& rInterpretedData) -{ - return rInterpretedData; -} - -bool HistogramDataInterpreter::isDataCompatible(const InterpretedData& /*aInterpretedData*/) -{ - return false; -} - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/chart2/source/model/template/HistogramDataInterpreter.hxx b/chart2/source/model/template/HistogramDataInterpreter.hxx deleted file mode 100644 index 9d90e0f2512a..000000000000 --- a/chart2/source/model/template/HistogramDataInterpreter.hxx +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#pragma once - -#include <DataInterpreter.hxx> - -namespace chart -{ -class HistogramDataInterpreter : public DataInterpreter -{ -public: - explicit HistogramDataInterpreter() = default; - -protected: - // ____ DataInterpreter ____ - virtual InterpretedData interpretDataSource( - const css::uno::Reference<css::chart2::data::XDataSource>& xSource, - const css::uno::Sequence<css::beans::PropertyValue>& aArguments, - const std::vector<rtl::Reference<::chart::DataSeries>>& aSeriesToReUse) override; - - virtual InterpretedData reinterpretDataSeries(const InterpretedData& aInterpretedData) override; - - virtual bool isDataCompatible(const InterpretedData& aInterpretedData) override; -}; - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/tools/ChartTypeHelper.cxx b/chart2/source/tools/ChartTypeHelper.cxx index 8582611360f9..ae57cce47f87 100644 --- a/chart2/source/tools/ChartTypeHelper.cxx +++ b/chart2/source/tools/ChartTypeHelper.cxx @@ -114,18 +114,6 @@ uno::Sequence < sal_Int32 > ChartTypeHelper::getSupportedLabelPlacements( const *pSeq++ = css::chart::DataLabelPlacement::INSIDE; *pSeq++ = css::chart::DataLabelPlacement::NEAR_ORIGIN; } - else if (aChartTypeName.match(CHART2_SERVICE_NAME_CHARTTYPE_HISTOGRAM)) - { - aRet.realloc(6); - sal_Int32* pSeq = aRet.getArray(); - - *pSeq++ = css::chart::DataLabelPlacement::TOP; - *pSeq++ = css::chart::DataLabelPlacement::BOTTOM; - *pSeq++ = css::chart::DataLabelPlacement::CENTER; - *pSeq++ = css::chart::DataLabelPlacement::OUTSIDE; - *pSeq++ = css::chart::DataLabelPlacement::INSIDE; - *pSeq++ = css::chart::DataLabelPlacement::NEAR_ORIGIN; - } else if( aChartTypeName.match(CHART2_SERVICE_NAME_CHARTTYPE_AREA) ) { bool bStacked = false; @@ -319,13 +307,6 @@ uno::Sequence < sal_Int32 > ChartTypeHelper::getSupportedMissingValueTreatments( *pSeq++ = css::chart::MissingValueTreatment::LEAVE_GAP; *pSeq++ = css::chart::MissingValueTreatment::USE_ZERO; } - else if (aChartTypeName.match(CHART2_SERVICE_NAME_CHARTTYPE_HISTOGRAM)) - { - // Assuming histograms typically use zero for missing values - aRet.realloc(1); - sal_Int32* pSeq = aRet.getArray(); - *pSeq++ = css::chart::MissingValueTreatment::USE_ZERO; - } else if( aChartTypeName.match(CHART2_SERVICE_NAME_CHARTTYPE_AREA) ) { aRet.realloc( bStacked ? 1 : 2 ); diff --git a/chart2/source/tools/HistogramDataSequence.cxx b/chart2/source/tools/HistogramDataSequence.cxx deleted file mode 100644 index c98a6c92fd33..000000000000 --- a/chart2/source/tools/HistogramDataSequence.cxx +++ /dev/null @@ -1,154 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#include <HistogramDataSequence.hxx> - -#include <CommonFunctors.hxx> -#include <ModifyListenerHelper.hxx> - -#include <comphelper/sequenceashashmap.hxx> -#include <cppuhelper/supportsservice.hxx> - -#include <algorithm> -#include <strings.hrc> -#include <ResId.hxx> -#include <utility> - -using namespace css; - -namespace -{ -constexpr OUString lcl_aServiceName = u"com.sun.star.comp.chart.HistogramDataSequence"_ustr; - -enum -{ - PROP_PROPOSED_ROLE -}; - -} // anonymous namespace - -namespace chart -{ -HistogramDataSequence::HistogramDataSequence() - : m_xModifyEventForwarder(new ModifyEventForwarder()) -{ - registerProperty(u"Role"_ustr, PROP_PROPOSED_ROLE, - 0, // PropertyAttributes - &m_sRole, cppu::UnoType<decltype(m_sRole)>::get()); -} - -HistogramDataSequence::~HistogramDataSequence() {} - -IMPLEMENT_FORWARD_XINTERFACE2(HistogramDataSequence, HistogramDataSequence_Base, - comphelper::OPropertyContainer2) - -IMPLEMENT_FORWARD_XTYPEPROVIDER2(HistogramDataSequence, HistogramDataSequence_Base, - comphelper::OPropertyContainer2) - -// XPropertySet -uno::Reference<beans::XPropertySetInfo> SAL_CALL HistogramDataSequence::getPropertySetInfo() -{ - return createPropertySetInfo(getInfoHelper()); -} - -// comphelper::OPropertySetHelper -::cppu::IPropertyArrayHelper& HistogramDataSequence::getInfoHelper() { return *getArrayHelper(); } - -// comphelper::OPropertyArrayHelper -::cppu::IPropertyArrayHelper* HistogramDataSequence::createArrayHelper() const -{ - uno::Sequence<beans::Property> aProperties; - // describes all properties which have been registered in the ctor - describeProperties(aProperties); - - return new ::cppu::OPropertyArrayHelper(aProperties); -} - -OUString SAL_CALL HistogramDataSequence::getImplementationName() { return lcl_aServiceName; } - -sal_Bool SAL_CALL HistogramDataSequence::supportsService(const OUString& rServiceName) -{ - return cppu::supportsService(this, rServiceName); -} - -uno::Sequence<OUString> SAL_CALL HistogramDataSequence::getSupportedServiceNames() -{ - return { lcl_aServiceName, u"com.sun.star.chart2.data.DataSequence"_ustr, - u"com.sun.star.chart2.data.NumericalDataSequence"_ustr, - u"com.sun.star.chart2.data.TextualDataSequence"_ustr }; -} - -// XNumericalDataSequence -uno::Sequence<double> SAL_CALL HistogramDataSequence::getNumericalData() -{ - std::unique_lock<std::mutex> aGuard; - - return mxValues; -} - -// XTextualDataSequence -uno::Sequence<OUString> SAL_CALL HistogramDataSequence::getTextualData() -{ - std::unique_lock<std::mutex> aGuard; - return {}; -} - -// XDataSequence -uno::Sequence<uno::Any> SAL_CALL HistogramDataSequence::getData() -{ - std::unique_lock<std::mutex> aGuard; - uno::Sequence<uno::Any> aSequence(mxValues.size()); - auto pSequence = aSequence.getArray(); - - size_t i = 0; - for (double nValue : mxValues) - { - pSequence[i] <<= nValue; - i++; - } - return aSequence; -} - -OUString SAL_CALL HistogramDataSequence::getSourceRangeRepresentation() { return m_sRole; } - -uno::Sequence<OUString> - SAL_CALL HistogramDataSequence::generateLabel(css::chart2::data::LabelOrigin) -{ - return mxLabels; -} - -sal_Int32 SAL_CALL HistogramDataSequence::getNumberFormatKeyByIndex(sal_Int32) -{ - return 0; // TODO - NumberFormat support -} - -// XModifyBroadcaster -void SAL_CALL -HistogramDataSequence::addModifyListener(const uno::Reference<util::XModifyListener>& aListener) -{ - m_xModifyEventForwarder->addModifyListener(aListener); -} - -void SAL_CALL -HistogramDataSequence::removeModifyListener(const uno::Reference<util::XModifyListener>& aListener) -{ - m_xModifyEventForwarder->removeModifyListener(aListener); -} - -// XCloneable - -uno::Reference<util::XCloneable> SAL_CALL HistogramDataSequence::createClone() -{ - rtl::Reference<HistogramDataSequence> pClone(new HistogramDataSequence()); - return pClone; -} - -} // namespace chart2 - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/chart2/source/view/charttypes/HistogramChart.cxx b/chart2/source/view/charttypes/HistogramChart.cxx deleted file mode 100644 index 3324d61a3f82..000000000000 --- a/chart2/source/view/charttypes/HistogramChart.cxx +++ /dev/null @@ -1,140 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#include "HistogramChart.hxx" - -#include <ChartType.hxx> -#include <../chart2/inc/ChartModel.hxx> -#include <ShapeFactory.hxx> -#include <CommonConverters.hxx> -#include <ObjectIdentifier.hxx> -#include <LabelPositionHelper.hxx> -#include <AxisIndexDefines.hxx> -#include <Clipping.hxx> -#include <DateHelper.hxx> -#include <svx/scene3d.hxx> -#include <comphelper/scopeguard.hxx> - -#include <com/sun/star/chart/DataLabelPlacement.hpp> - -#include <com/sun/star/chart2/DataPointGeometry3D.hpp> -#include <rtl/math.hxx> -#include <comphelper/diagnose_ex.hxx> - -namespace chart -{ -using namespace ::com::sun::star; -using namespace ::rtl::math; -using namespace ::com::sun::star::chart2; - -HistogramChart::HistogramChart(const rtl::Reference<ChartType>& xChartTypeModel, - sal_Int32 nDimensionCount) - : BarChart(xChartTypeModel, nDimensionCount) -{ - // We only support 2 dimensional histogram charts - assert(nDimensionCount == 2 && "HistogramChart only supports 2D charts"); - - // Runtime check for all builds - if (nDimensionCount != 2) - { - // Log a warning or throw an exception if appropriate - SAL_WARN("chart2", "HistogramChart created with invalid dimension count. Forcing 2D."); - } - - PlotterBase::m_pPosHelper = &m_aMainPosHelper; - VSeriesPlotter::m_pMainPosHelper = &m_aMainPosHelper; - - try - { - if (m_xChartTypeModel.is()) - m_xChartTypeModel->getPropertyValue(u"GapwidthSequence"_ustr) >>= m_aGapwidthSequence; - } - catch (const uno::Exception&) - { - TOOLS_WARN_EXCEPTION("chart2", ""); - } -} - -HistogramChart::~HistogramChart() {} - -css::drawing::Direction3D HistogramChart::getPreferredDiagramAspectRatio() const -{ - // Return the preferred aspect ratio for the histogram chart - return css::drawing::Direction3D(-1, -1, -1); -} - -PlottingPositionHelper& HistogramChart::getPlottingPositionHelper(sal_Int32 nAxisIndex) const -{ - PlottingPositionHelper& rPosHelper = VSeriesPlotter::getPlottingPositionHelper(nAxisIndex); - BarPositionHelper* pHistogramPosHelper = dynamic_cast<BarPositionHelper*>(&rPosHelper); - if (pHistogramPosHelper && nAxisIndex >= 0) - { - if (nAxisIndex < m_aGapwidthSequence.getLength()) - pHistogramPosHelper->setOuterDistance(m_aGapwidthSequence[nAxisIndex] / 100.0); - } - return rPosHelper; -} - -void HistogramChart::addSeries(std::unique_ptr<VDataSeries> pSeries, sal_Int32 zSlot, - sal_Int32 xSlot, sal_Int32 ySlot) -{ - if (!pSeries) - return; - - if (m_nDimension == 2) - { - sal_Int32 nAxisIndex = pSeries->getAttachedAxisIndex(); - zSlot = nAxisIndex; - - if (!pSeries->getGroupBarsPerAxis()) - zSlot = 0; - if (zSlot >= static_cast<sal_Int32>(m_aZSlots.size())) - m_aZSlots.resize(zSlot + 1); - } - VSeriesPlotter::addSeries(std::move(pSeries), zSlot, xSlot, ySlot); - adaptGapWidthForHistogram(); -} - -void HistogramChart::adaptGapWidthForHistogram() -{ - VDataSeries* pFirstSeries = getFirstSeries(); - if (!pFirstSeries) - return; - - sal_Int32 nAxisIndex = pFirstSeries->getAttachedAxisIndex(); - sal_Int32 nUseThisIndex = nAxisIndex; - if (nUseThisIndex < 0 || nUseThisIndex >= m_aGapwidthSequence.getLength()) - nUseThisIndex = 0; - - auto aGapwidthSequenceRange = asNonConstRange(m_aGapwidthSequence); - for (sal_Int32 nN = 0; nN < m_aGapwidthSequence.getLength(); nN++) - { - aGapwidthSequenceRange[nN] = 0; // Set gap width to 0 - } -} - -void HistogramChart::createShapes() -{ - if (m_aZSlots.empty()) //No data series Available - return; - - OSL_ENSURE( - m_xLogicTarget.is() && m_xFinalTarget.is(), - "HistogramChart is not properly initialized"); // Ensuring chart is properly initialized - if (!(m_xLogicTarget.is() && m_xFinalTarget.is())) - return; - - adaptGapWidthForHistogram(); - - BarChart::createShapes(); -} - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/chart2/source/view/charttypes/HistogramChart.hxx b/chart2/source/view/charttypes/HistogramChart.hxx deleted file mode 100644 index 907d1e08f45b..000000000000 --- a/chart2/source/view/charttypes/HistogramChart.hxx +++ /dev/null @@ -1,44 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4; fill-column: 100 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -#pragma once - -#include "BarChart.hxx" -#include "BarPositionHelper.hxx" -#include <memory> - -namespace chart -{ -class HistogramChart : public BarChart -{ -public: - HistogramChart() = delete; - - HistogramChart(const rtl::Reference<ChartType>& xChartTypeModel, sal_Int32 nDimensionCount); - virtual ~HistogramChart() override; - - virtual void createShapes() override; - virtual void addSeries(std::unique_ptr<VDataSeries> pSeries, sal_Int32 zSlot, sal_Int32 xSlot, - sal_Int32 ySlot) override; - - virtual css::drawing::Direction3D getPreferredDiagramAspectRatio() const override; - -private: - virtual PlottingPositionHelper& getPlottingPositionHelper(sal_Int32 nAxisIndex) const override; - - void adaptGapWidthForHistogram(); - -private: - BarPositionHelper m_aMainPosHelper; - css::uno::Sequence<sal_Int32> m_aGapwidthSequence; -}; - -} // namespace chart - -/* vim:set shiftwidth=4 softtabstop=4 expandtab cinoptions=b1,g0,N-s cinkeys+=0=break: */ diff --git a/chart2/source/view/charttypes/VSeriesPlotter.cxx b/chart2/source/view/charttypes/VSeriesPlotter.cxx index 94d5a55bec32..b7d2420a880c 100644 --- a/chart2/source/view/charttypes/VSeriesPlotter.cxx +++ b/chart2/source/view/charttypes/VSeriesPlotter.cxx @@ -54,7 +54,6 @@ //only for creation: @todo remove if all plotter are uno components and instantiated via servicefactory #include "BarChart.hxx" -#include "HistogramChart.hxx" #include "PieChart.hxx" #include "AreaChart.hxx" #include "CandleStickChart.hxx" @@ -2245,7 +2244,6 @@ const ROrderPair pairList[] = { ROrderPair(CHART2_SERVICE_NAME_CHARTTYPE_AREA, 0), ROrderPair(CHART2_SERVICE_NAME_CHARTTYPE_BAR, 6), // bar & column are same ROrderPair(CHART2_SERVICE_NAME_CHARTTYPE_COLUMN, 6), - ROrderPair(CHART2_SERVICE_NAME_CHARTTYPE_HISTOGRAM, 9), ROrderPair(CHART2_SERVICE_NAME_CHARTTYPE_LINE, 8), ROrderPair(CHART2_SERVICE_NAME_CHARTTYPE_SCATTER, 5), ROrderPair(CHART2_SERVICE_NAME_CHARTTYPE_PIE, 1), @@ -2885,8 +2883,6 @@ VSeriesPlotter* VSeriesPlotter::createSeriesPlotter( pRet = new BarChart(xChartTypeModel,nDimensionCount); else if( aChartType.equalsIgnoreAsciiCase( CHART2_SERVICE_NAME_CHARTTYPE_BAR ) ) pRet = new BarChart(xChartTypeModel,nDimensionCount); - else if( aChartType.equalsIgnoreAsciiCase( CHART2_SERVICE_NAME_CHARTTYPE_HISTOGRAM ) ) - pRet = new HistogramChart(xChartTypeModel, nDimensionCount); else if( aChartType.equalsIgnoreAsciiCase( CHART2_SERVICE_NAME_CHARTTYPE_AREA ) ) pRet = new AreaChart(xChartTypeModel,nDimensionCount,true); else if( aChartType.equalsIgnoreAsciiCase( CHART2_SERVICE_NAME_CHARTTYPE_LINE ) ) diff --git a/icon-themes/colibre/chart2/res/histogram_52x60.png b/icon-themes/colibre/chart2/res/histogram_52x60.png deleted file mode 100644 index d8c9a4340713..000000000000 Binary files a/icon-themes/colibre/chart2/res/histogram_52x60.png and /dev/null differ diff --git a/icon-themes/colibre/chart2/res/typehistogram_16.png b/icon-themes/colibre/chart2/res/typehistogram_16.png deleted file mode 100644 index cc9eadb715cd..000000000000 Binary files a/icon-themes/colibre/chart2/res/typehistogram_16.png and /dev/null differ diff --git a/offapi/UnoApi_offapi.mk b/offapi/UnoApi_offapi.mk index 76907d1defaa..d7c06d0c9e0c 100644 --- a/offapi/UnoApi_offapi.mk +++ b/offapi/UnoApi_offapi.mk @@ -625,7 +625,6 @@ $(eval $(call gb_UnoApi_add_idlfiles_noheader,offapi,com/sun/star/chart,\ Dim3DDiagram \ DonutDiagram \ FilledNetDiagram \ - HistogramDiagram \ LineDiagram \ NetDiagram \ PieDiagram \ diff --git a/offapi/com/sun/star/chart/HistogramDiagram.idl b/offapi/com/sun/star/chart/HistogramDiagram.idl deleted file mode 100644 index ff31bff379c6..000000000000 --- a/offapi/com/sun/star/chart/HistogramDiagram.idl +++ /dev/null @@ -1,35 +0,0 @@ -/* -*- Mode: C++; tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 4 -*- */ -/* - * This file is part of the LibreOffice project. - * - * This Source Code Form is subject to the terms of the Mozilla Public - * License, v. 2.0. If a copy of the MPL was not distributed with this - * file, You can obtain one at http://mozilla.org/MPL/2.0/. - */ - -module com { module sun { module star { module chart { - - -/** This is a service for histogram diagrams. - @since LibreOffice 25.2 -*/ -service HistogramDiagram -{ - service com::sun::star::chart::Diagram; - service com::sun::star::chart::ChartStatistics; - service com::sun::star::chart::ChartAxisXSupplier; - service com::sun::star::chart::ChartTwoAxisYSupplier; - - /** Specifies the width of each bin in the histogram. */ - [property] double BinWidth; - - /** Specifies the range of values covered by the bins. */ - [property] string BinRange; - - /** Specifies the type of frequency representation (count or density). */ - [property] long FrequencyType; -}; - -}; }; }; }; - -/* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/oox/inc/drawingml/chart/typegroupconverter.hxx b/oox/inc/drawingml/chart/typegroupconverter.hxx index e7b1e16e8cec..a12e8b4e1877 100644 --- a/oox/inc/drawingml/chart/typegroupconverter.hxx +++ b/oox/inc/drawingml/chart/typegroupconverter.hxx @@ -50,7 +50,6 @@ enum TypeId TYPEID_BUBBLE, /// Bubble chart. TYPEID_SURFACE, /// Surface chart. TYPEID_FUNNEL, /// Funnel chart. - TYPEID_HISTO, /// Histogram chart. TYPEID_UNKNOWN, /// Default for unknown chart types. }; @@ -64,7 +63,6 @@ enum TypeCategory TYPECATEGORY_SCATTER, /// Scatter and bubble charts. TYPECATEGORY_SURFACE, /// Surface charts. TYPECATEGORY_FUNNEL, /// Funnel charts. TODO: can this be BAR? - TYPECATEGORY_HISTO, /// Histogram charts. }; /** Enumerates modes for varying point colors in a series. */ diff --git a/oox/source/drawingml/chart/typegroupconverter.cxx b/oox/source/drawingml/chart/typegroupconverter.cxx index 15711e156cc2..8f586524af5c 100644 --- a/oox/source/drawingml/chart/typegroupconverter.cxx +++ b/oox/source/drawingml/chart/typegroupconverter.cxx @@ -68,7 +68,6 @@ const char SERVICE_CHART2_SCATTER[] = "com.sun.star.chart2.ScatterChartType"; const char SERVICE_CHART2_BUBBLE[] = "com.sun.star.chart2.BubbleChartType"; const char SERVICE_CHART2_SURFACE[] = "com.sun.star.chart2.ColumnChartType"; // Todo const char SERVICE_CHART2_FUNNEL[] = "com.sun.star.chart2.FunnelChartType"; -const char SERVICE_CHART2_HISTO[] = "com.sun.star.chart2.HistogramChartType"; namespace csscd = css::chart::DataLabelPlacement; @@ -77,7 +76,6 @@ const TypeGroupInfo spTypeInfos[] = // type-id type-category service varied-point-color default label pos polar area2d 1stvis xcateg swap stack picopt { TYPEID_BAR, TYPECATEGORY_BAR, SERVICE_CHART2_COLUMN, VARPOINTMODE_SINGLE, csscd::OUTSIDE, false, true, false, true, false, true, true }, { TYPEID_HORBAR, TYPECATEGORY_BAR, SERVICE_CHART2_COLUMN, VARPOINTMODE_SINGLE, csscd::OUTSIDE, false, true, false, true, true, true, true }, - { TYPEID_HISTO, TYPECATEGORY_HISTO, SERVICE_CHART2_HISTO, VARPOINTMODE_SINGLE, csscd::OUTSIDE, false, true, false, true, true, true, true }, { TYPEID_LINE, TYPECATEGORY_LINE, SERVICE_CHART2_LINE, VARPOINTMODE_SINGLE, csscd::RIGHT, false, false, false, true, false, true, false }, { TYPEID_AREA, TYPECATEGORY_LINE, SERVICE_CHART2_AREA, VARPOINTMODE_NONE, csscd::CENTER, false, true, false, true, false, true, false }, { TYPEID_STOCK, TYPECATEGORY_LINE, SERVICE_CHART2_CANDLE, VARPOINTMODE_NONE, csscd::RIGHT, false, false, false, true, false, true, false }, diff --git a/solenv/bin/native-code.py b/solenv/bin/native-code.py index 638d9b98a26d..fd671d3dc627 100755 --- a/solenv/bin/native-code.py +++ b/solenv/bin/native-code.py @@ -52,7 +52,6 @@ core_constructor_list = [ "com_sun_star_comp_chart_CandleStickChartType_get_implementation", "com_sun_star_comp_chart_ChartTypeManager_get_implementation", "com_sun_star_comp_chart_ColumnChartType_get_implementation", - "com_sun_star_comp_chart_HistogramChartType_get_implementation", "com_sun_star_comp_chart_DataSeries_get_implementation", "com_sun_star_comp_chart_DataSource_get_implementation", "com_sun_star_comp_chart_FilledNetChartType_get_implementation", diff --git a/sw/qa/uitest/chart/tdf138556.py b/sw/qa/uitest/chart/tdf138556.py index 910b24ebcc4d..7bddbf7c7227 100644 --- a/sw/qa/uitest/chart/tdf138556.py +++ b/sw/qa/uitest/chart/tdf138556.py @@ -27,7 +27,7 @@ class tdf138556( UITestCase ): #TODO: test other subtypes with self.ui_test.execute_dialog_through_action( xChart, "COMMAND", mkPropertyValues({ "COMMAND" : "DiagramType" })) as xDialog: xChartType = xDialog.getChild( "charttype" ) - xStockType = xChartType.getChild( "10" ) + xStockType = xChartType.getChild( "9" ) xStockType.executeAction( "SELECT", tuple()) #Insert Data Series
