chart2/source/controller/inc/ChartController.hxx                   |    1 
 chart2/source/controller/main/ChartController.cxx                  |    3 +
 chart2/source/controller/main/ChartController_Insert.cxx           |   19 
++++++++++
 chart2/source/controller/main/ControllerCommandDispatch.cxx        |    3 +
 chart2/source/inc/OPropertySet.hxx                                 |    3 +
 chart2/uiconfig/menubar/menubar.xml                                |    1 
 officecfg/registry/data/org/openoffice/Office/UI/ChartCommands.xcu |    5 ++
 7 files changed, 33 insertions(+), 2 deletions(-)

New commits:
commit 3e6f7d8c412946ddd54d114aa1e763b25eb31a04
Author:     Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
AuthorDate: Thu Jun 30 23:34:19 2022 +0200
Commit:     Tomaž Vajngerl <qui...@gmail.com>
CommitDate: Sat Aug 20 14:35:15 2022 +0200

    chart2: add "InsertMenuDataTable" action to menu
    
    Change-Id: Ib60a2b061966eb61834480b63dc0653410a43a14
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138248
    Tested-by: Jenkins
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>
    (cherry picked from commit 16fac85be1fdddb1695a29a9b8026cd4f8cfad64)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/138524
    Tested-by: Jenkins CollaboraOffice <jenkinscollaboraoff...@gmail.com>

diff --git a/chart2/source/controller/inc/ChartController.hxx 
b/chart2/source/controller/inc/ChartController.hxx
index 09fda2b6fb00..5e74cec917ce 100644
--- a/chart2/source/controller/inc/ChartController.hxx
+++ b/chart2/source/controller/inc/ChartController.hxx
@@ -438,6 +438,7 @@ private:
     void executeDispatch_OpenLegendDialog();
     void executeDispatch_InsertAxes();
     void executeDispatch_InsertGrid();
+    void executeDispatch_OpenInsertDataTableDialog();
 
     void executeDispatch_InsertMenu_DataLabels();
     void executeDispatch_InsertMenu_Trendlines();
diff --git a/chart2/source/controller/main/ChartController.cxx 
b/chart2/source/controller/main/ChartController.cxx
index f9fcc71f1793..a61d84af0e9f 100644
--- a/chart2/source/controller/main/ChartController.cxx
+++ b/chart2/source/controller/main/ChartController.cxx
@@ -1172,6 +1172,8 @@ void SAL_CALL ChartController::dispatch(
         this->executeDispatch_InsertErrorBars(false);
     else if( aCommand == "InsertMenuYErrorBars" )
         this->executeDispatch_InsertErrorBars(true);
+    else if( aCommand == "InsertMenuDataTable" )
+        this->executeDispatch_OpenInsertDataTableDialog();
     else if( aCommand == "InsertSymbol" )
          this->executeDispatch_InsertSpecialCharacter();
     else if( aCommand == "InsertTrendline" )
@@ -1625,6 +1627,7 @@ const o3tl::sorted_vector< OUString >& 
ChartController::impl_getAvailableCommand
         "DeleteTrendline",    "DeleteMeanValue",      
"DeleteTrendlineEquation",
         "DeleteXErrorBars",   "DeleteYErrorBars",
         "DeleteDataLabels",   "DeleteDataLabel",
+        "InsertMenuDataTable",
         //format objects
         "FormatSelection",     "TransformDialog",
         "DiagramType",        "View3D",
diff --git a/chart2/source/controller/main/ChartController_Insert.cxx 
b/chart2/source/controller/main/ChartController_Insert.cxx
index 04c27782c375..e45cb15d3215 100644
--- a/chart2/source/controller/main/ChartController_Insert.cxx
+++ b/chart2/source/controller/main/ChartController_Insert.cxx
@@ -50,6 +50,7 @@
 #include <DataSeriesHelper.hxx>
 #include <ObjectNameProvider.hxx>
 #include <LegendHelper.hxx>
+#include <DataTable.hxx>
 
 #include <com/sun/star/chart2/XRegressionCurve.hpp>
 #include <com/sun/star/chart2/XRegressionCurveContainer.hpp>
@@ -156,6 +157,24 @@ void ChartController::executeDispatch_InsertGrid()
     }
 }
 
+void ChartController::executeDispatch_OpenInsertDataTableDialog()
+{
+    uno::Reference<chart2::XDiagram> xDiagram = 
ChartModelHelper::findDiagram(getModel());
+    SolarMutexGuard aGuard;
+    if (xDiagram->getDataTable().is())
+    {
+        xDiagram->setDataTable(uno::Reference<chart2::XDataTable>());
+    }
+    else
+    {
+        uno::Reference<chart2::XDataTable> xDataTable(new DataTable);
+        if (xDataTable.is())
+        {
+            xDiagram->setDataTable(xDataTable);
+        }
+    }
+}
+
 void ChartController::executeDispatch_InsertTitles()
 {
     UndoGuard aUndoGuard(
diff --git a/chart2/source/controller/main/ControllerCommandDispatch.cxx 
b/chart2/source/controller/main/ControllerCommandDispatch.cxx
index 2f0e13f56155..263f4551c82d 100644
--- a/chart2/source/controller/main/ControllerCommandDispatch.cxx
+++ b/chart2/source/controller/main/ControllerCommandDispatch.cxx
@@ -594,7 +594,8 @@ void ControllerCommandDispatch::updateCommandAvailability()
     m_aCommandAvailability[ ".uno:InsertMenuMeanValues" ] = bIsWritable && 
m_apModelState->bSupportsStatistics;
     m_aCommandAvailability[ ".uno:InsertMenuXErrorBars" ] = bIsWritable && 
m_apModelState->bSupportsStatistics;
     m_aCommandAvailability[ ".uno:InsertMenuYErrorBars" ] = bIsWritable && 
m_apModelState->bSupportsStatistics;
-    m_aCommandAvailability[ ".uno:InsertSymbol" ] = bIsWritable && 
m_apControllerState->bIsTextObject;
+    m_aCommandAvailability[ ".uno:InsertSymbol" ] = bIsWritable && 
bControllerStateIsValid && m_apControllerState->bIsTextObject;
+    m_aCommandAvailability[ ".uno:InsertMenuDataTable" ] = bIsWritable;
 
     // format objects
     bool bFormatObjectAvailable = bIsWritable && bControllerStateIsValid && 
m_apControllerState->bIsFormateableObjectSelected;
diff --git a/chart2/source/inc/OPropertySet.hxx 
b/chart2/source/inc/OPropertySet.hxx
index 52cf2e782e28..c9052b6a7974 100644
--- a/chart2/source/inc/OPropertySet.hxx
+++ b/chart2/source/inc/OPropertySet.hxx
@@ -28,11 +28,12 @@
 #include <com/sun/star/style/XStyleSupplier.hpp>
 
 #include <map>
+#include "charttoolsdllapi.hxx"
 
 namespace property
 {
 
-class OPropertySet :
+class OOO_DLLPUBLIC_CHARTTOOLS OPropertySet :
     public ::cppu::OBroadcastHelper,
     // includes beans::XPropertySet, XMultiPropertySet and XFastPropertySet
     public ::cppu::OPropertySetHelper,
diff --git a/chart2/uiconfig/menubar/menubar.xml 
b/chart2/uiconfig/menubar/menubar.xml
index dca2eaff7efe..7fbfc0af01d8 100644
--- a/chart2/uiconfig/menubar/menubar.xml
+++ b/chart2/uiconfig/menubar/menubar.xml
@@ -56,6 +56,7 @@
         <menu:menuitem menu:id=".uno:InsertMenuLegend"/>
         <menu:menuitem menu:id=".uno:InsertMenuAxes"/>
         <menu:menuitem menu:id=".uno:InsertMenuGrids"/>
+        <menu:menuitem menu:id=".uno:InsertMenuDataTable"/>
       <menu:menuseparator/>
         <menu:menuitem menu:id=".uno:InsertMenuDataLabels"/>
         <menu:menuitem menu:id=".uno:InsertMenuTrendlines"/>
diff --git a/officecfg/registry/data/org/openoffice/Office/UI/ChartCommands.xcu 
b/officecfg/registry/data/org/openoffice/Office/UI/ChartCommands.xcu
index d3a54a052c8e..cb4a5dc728d0 100644
--- a/officecfg/registry/data/org/openoffice/Office/UI/ChartCommands.xcu
+++ b/officecfg/registry/data/org/openoffice/Office/UI/ChartCommands.xcu
@@ -64,6 +64,11 @@
           <value xml:lang="en-US">Y Error ~Bars...</value>
         </prop>
       </node>
+      <node oor:name=".uno:InsertMenuDataTable" oor:op="replace">
+        <prop oor:name="Label" oor:type="xs:string">
+          <value xml:lang="en-US">Data Table...</value>
+        </prop>
+      </node>
       <!--  Menu - Format -->
       <node oor:name=".uno:FormatSelection" oor:op="replace">
         <prop oor:name="Label" oor:type="xs:string">

Reply via email to