chart2/source/controller/main/ControllerCommandDispatch.cxx |   68 ++++++------
 1 file changed, 38 insertions(+), 30 deletions(-)

New commits:
commit df69f1c4aa8db8c9c48b364f0e8809be6d598fd9
Author: Tomaž Vajngerl <tomaz.vajng...@collabora.co.uk>
Date:   Wed Apr 19 14:35:16 2017 +0200

    tdf#107071 remove "Data Range" from context menu in a pivot chart
    
    Change-Id: Idb0087941e64af3b3373fd9a041ac04b96705934
    Reviewed-on: https://gerrit.libreoffice.org/36737
    Tested-by: Jenkins <c...@libreoffice.org>
    Reviewed-by: Tomaž Vajngerl <qui...@gmail.com>

diff --git a/chart2/source/controller/main/ControllerCommandDispatch.cxx 
b/chart2/source/controller/main/ControllerCommandDispatch.cxx
index 35fa134db732..696c06d9e22d 100644
--- a/chart2/source/controller/main/ControllerCommandDispatch.cxx
+++ b/chart2/source/controller/main/ControllerCommandDispatch.cxx
@@ -19,6 +19,7 @@
 
 #include "ControllerCommandDispatch.hxx"
 #include "ChartModelHelper.hxx"
+#include "ChartModel.hxx"
 #include "DiagramHelper.hxx"
 #include "AxisHelper.hxx"
 #include "TitleHelper.hxx"
@@ -329,6 +330,7 @@ struct ModelState
     bool bIsReadOnly;
     bool bIsThreeD;
     bool bHasOwnData;
+    bool bHasDataFromPivotTable;
 
     bool bHasMainTitle;
     bool bHasSubTitle;
@@ -361,34 +363,34 @@ struct ModelState
 };
 
 ModelState::ModelState() :
-        bIsReadOnly( true ),
-        bIsThreeD( false ),
-        bHasOwnData( false ),
-        bHasMainTitle( false ),
-        bHasSubTitle( false ),
-        bHasXAxisTitle( false ),
-        bHasYAxisTitle( false ),
-        bHasZAxisTitle( false ),
-        bHasSecondaryXAxisTitle( false ),
-        bHasSecondaryYAxisTitle( false ),
-        bHasXAxis( false ),
-        bHasYAxis( false ),
-        bHasZAxis( false ),
-        bHasAAxis( false ),
-        bHasBAxis( false ),
-        bHasMainXGrid( false ),
-        bHasMainYGrid( false ),
-        bHasMainZGrid( false ),
-        bHasHelpXGrid( false ),
-        bHasHelpYGrid( false ),
-        bHasHelpZGrid( false ),
-        bHasAutoScaledText( false ),
-        bHasLegend( false ),
-        bHasWall( false ),
-        bHasFloor( false ),
-        bSupportsStatistics( false ),
-        bSupportsAxes( false )
-
+        bIsReadOnly(true),
+        bIsThreeD(false),
+        bHasOwnData(false),
+        bHasDataFromPivotTable(false),
+        bHasMainTitle(false),
+        bHasSubTitle(false),
+        bHasXAxisTitle(false),
+        bHasYAxisTitle(false),
+        bHasZAxisTitle(false),
+        bHasSecondaryXAxisTitle(false),
+        bHasSecondaryYAxisTitle(false),
+        bHasXAxis(false),
+        bHasYAxis(false),
+        bHasZAxis(false),
+        bHasAAxis(false),
+        bHasBAxis(false),
+        bHasMainXGrid(false),
+        bHasMainYGrid(false),
+        bHasMainZGrid(false),
+        bHasHelpXGrid(false),
+        bHasHelpYGrid(false),
+        bHasHelpZGrid(false),
+        bHasAutoScaledText(false),
+        bHasLegend(false),
+        bHasWall(false),
+        bHasFloor(false),
+        bSupportsStatistics(false),
+        bSupportsAxes(false)
 {}
 
 void ModelState::update( const Reference< frame::XModel > & xModel )
@@ -408,7 +410,12 @@ void ModelState::update( const Reference< frame::XModel > 
& xModel )
     bSupportsAxes = ChartTypeHelper::isSupportingMainAxis( xFirstChartType, 
nDimensionCount, 0 );
 
     bIsThreeD = (nDimensionCount == 3);
-    bHasOwnData = (xChartDoc.is() && xChartDoc->hasInternalDataProvider());
+    if (xChartDoc.is())
+    {
+        ChartModel* pModel = dynamic_cast<ChartModel*>(xChartDoc.get());
+        bHasOwnData = pModel->hasInternalDataProvider();
+        bHasDataFromPivotTable = pModel->isDataFromPivotTable();
+    }
 
     bHasMainTitle =  TitleHelper::getTitle( TitleHelper::MAIN_TITLE, xModel 
).is();
     bHasSubTitle =   TitleHelper::getTitle( TitleHelper::SUB_TITLE, xModel 
).is();
@@ -613,7 +620,8 @@ void ControllerCommandDispatch::updateCommandAvailability()
     m_aCommandAvailability[ ".uno:FormatLegend" ] = m_aCommandAvailability[ 
".uno:Legend" ];
 
     // depending on own data
-    m_aCommandAvailability[ ".uno:DataRanges" ] = bIsWritable && 
bModelStateIsValid && (! m_apModelState->bHasOwnData);
+    m_aCommandAvailability[ ".uno:DataRanges" ] = bIsWritable && 
bModelStateIsValid &&
+                                                  
(!m_apModelState->bHasOwnData) && (!m_apModelState->bHasDataFromPivotTable);
     m_aCommandAvailability[ ".uno:DiagramData" ] = bIsWritable && 
bModelStateIsValid &&  m_apModelState->bHasOwnData && bEnableDataTableDialog;
 
     // titles
_______________________________________________
Libreoffice-commits mailing list
libreoffice-comm...@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits

Reply via email to