summaryrefslogtreecommitdiff
path: root/chart2/source/controller/main/ControllerCommandDispatch.cxx
diff options
context:
space:
mode:
Diffstat (limited to 'chart2/source/controller/main/ControllerCommandDispatch.cxx')
-rw-r--r--chart2/source/controller/main/ControllerCommandDispatch.cxx573
1 files changed, 387 insertions, 186 deletions
diff --git a/chart2/source/controller/main/ControllerCommandDispatch.cxx b/chart2/source/controller/main/ControllerCommandDispatch.cxx
index 2f0e13f56155..e6abe080a655 100644
--- a/chart2/source/controller/main/ControllerCommandDispatch.cxx
+++ b/chart2/source/controller/main/ControllerCommandDispatch.cxx
@@ -18,34 +18,35 @@
*/
#include "ControllerCommandDispatch.hxx"
-#include <ChartModelHelper.hxx>
#include <ChartModel.hxx>
-#include <DiagramHelper.hxx>
+#include <Diagram.hxx>
+#include <Axis.hxx>
#include <AxisHelper.hxx>
#include <TitleHelper.hxx>
#include <LegendHelper.hxx>
#include <ObjectIdentifier.hxx>
+#include <ChartType.hxx>
#include <ChartTypeHelper.hxx>
#include <ChartController.hxx>
#include <RegressionCurveHelper.hxx>
+#include <DataSeries.hxx>
#include <DataSeriesHelper.hxx>
#include <StatisticsHelper.hxx>
#include <ReferenceSizeProvider.hxx>
+#include <RegressionCurveModel.hxx>
#include "ShapeController.hxx"
+#include <CharacterProperties.hxx>
#include <vcl/svapp.hxx>
#include <sal/log.hxx>
-#include <tools/diagnose_ex.h>
+#include <comphelper/diagnose_ex.hxx>
#include <comphelper/lok.hxx>
#include <sfx2/viewsh.hxx>
#include <sfx2/objsh.hxx>
-#include <com/sun/star/util/XModifyBroadcaster.hpp>
-#include <com/sun/star/frame/XStorable.hpp>
-#include <com/sun/star/chart2/XChartDocument.hpp>
#include <com/sun/star/chart2/XRegressionCurve.hpp>
-#include <com/sun/star/chart2/XRegressionCurveContainer.hpp>
#include <com/sun/star/chart2/XDataProviderAccess.hpp>
+#include <com/sun/star/frame/status/FontHeight.hpp>
// only needed until #i68864# is fixed
#include <com/sun/star/frame/XLayoutManager.hpp>
@@ -68,14 +69,34 @@ bool lcl_isStatusBarVisible( const Reference< frame::XController > & xController
if( xPropSet.is() )
{
uno::Reference< css::frame::XLayoutManager > xLayoutManager;
- xPropSet->getPropertyValue( "LayoutManager" ) >>= xLayoutManager;
+ xPropSet->getPropertyValue( u"LayoutManager"_ustr ) >>= xLayoutManager;
if ( xLayoutManager.is() )
- bIsStatusBarVisible = xLayoutManager->isElementVisible( "private:resource/statusbar/statusbar" );
+ bIsStatusBarVisible = xLayoutManager->isElementVisible( u"private:resource/statusbar/statusbar"_ustr );
}
}
return bIsStatusBarVisible;
}
+bool lcl_arePropertiesSame(std::vector<Reference<beans::XPropertySet>>& xProperties,
+ const OUString& aPropName)
+{
+ if (xProperties.size() == 1)
+ return true;
+ if (xProperties.size() < 1)
+ return false;
+
+ if (!xProperties[0])
+ return false;
+
+ uno::Any aValue = xProperties[0]->getPropertyValue(aPropName);
+ for (std::size_t i = 1; i < xProperties.size(); i++)
+ {
+ if (xProperties[i] && aValue != xProperties[i]->getPropertyValue(aPropName))
+ return false;
+ }
+ return true;
+}
+
} // anonymous namespace
namespace chart
@@ -106,7 +127,7 @@ struct ControllerState
ControllerState();
void update( const Reference< frame::XController > & xController,
- const Reference< frame::XModel > & xModel );
+ const rtl::Reference<::chart::ChartModel> & xModel );
// -- State variables -------
bool bHasSelectedObject;
@@ -173,7 +194,7 @@ ControllerState::ControllerState() :
void ControllerState::update(
const Reference< frame::XController > & xController,
- const Reference< frame::XModel > & xModel )
+ const rtl::Reference<::chart::ChartModel> & xModel )
{
Reference< view::XSelectionSupplier > xSelectionSupplier(
xController, uno::UNO_QUERY );
@@ -184,7 +205,7 @@ void ControllerState::update(
uno::Any aSelObj( xSelectionSupplier->getSelection() );
ObjectIdentifier aSelOID( aSelObj );
- OUString aSelObjCID( aSelOID.getObjectCID() );
+ const OUString& aSelObjCID( aSelOID.getObjectCID() );
bHasSelectedObject = aSelOID.isValid();
@@ -193,24 +214,22 @@ void ControllerState::update(
bIsPositionableObject = (aObjectType != OBJECTTYPE_DATA_POINT) && aSelOID.isDragableObject();
bIsTextObject = aObjectType == OBJECTTYPE_TITLE;
- uno::Reference< chart2::XDiagram > xDiagram( ChartModelHelper::findDiagram( xModel ));
+ rtl::Reference< Diagram > xDiagram = xModel->getFirstChartDiagram();
bIsFormateableObjectSelected = bHasSelectedObject && aSelOID.isAutoGeneratedObject();
if( aObjectType==OBJECTTYPE_DIAGRAM || aObjectType==OBJECTTYPE_DIAGRAM_WALL || aObjectType==OBJECTTYPE_DIAGRAM_FLOOR )
- bIsFormateableObjectSelected = DiagramHelper::isSupportingFloorAndWall( xDiagram );
+ bIsFormateableObjectSelected = xDiagram->isSupportingFloorAndWall();
- uno::Reference< chart2::XDataSeries > xGivenDataSeries(
+ rtl::Reference< DataSeries > xGivenDataSeries =
ObjectIdentifier::getDataSeriesForCID(
- aSelObjCID, xModel ) );
+ aSelObjCID, xModel );
bIsDeleteableObjectSelected = ChartController::isObjectDeleteable( aSelObj );
- bMayMoveSeriesForward = (aObjectType!=OBJECTTYPE_DATA_POINT) && DiagramHelper::isSeriesMoveable(
- ChartModelHelper::findDiagram( xModel ),
+ bMayMoveSeriesForward = (aObjectType!=OBJECTTYPE_DATA_POINT) && xDiagram && xDiagram->isSeriesMoveable(
xGivenDataSeries,
MOVE_SERIES_FORWARD );
- bMayMoveSeriesBackward = (aObjectType!=OBJECTTYPE_DATA_POINT) && DiagramHelper::isSeriesMoveable(
- ChartModelHelper::findDiagram( xModel ),
+ bMayMoveSeriesBackward = (aObjectType!=OBJECTTYPE_DATA_POINT) && xDiagram && xDiagram->isSeriesMoveable(
xGivenDataSeries,
MOVE_SERIES_BACKWARD );
@@ -238,29 +257,25 @@ void ControllerState::update(
if( xGivenDataSeries.is())
{
bMayAddMenuTrendline = true;
- sal_Int32 nDimensionCount = DiagramHelper::getDimension( xDiagram );
- uno::Reference< chart2::XChartType > xFirstChartType(
+ sal_Int32 nDimensionCount = xDiagram->getDimension();
+ rtl::Reference< ::chart::ChartType > xFirstChartType(
DataSeriesHelper::getChartTypeOfSeries( xGivenDataSeries, xDiagram ));
// trend lines/mean value line
if( (aObjectType == OBJECTTYPE_DATA_SERIES || aObjectType == OBJECTTYPE_DATA_POINT)
- && ChartTypeHelper::isSupportingRegressionProperties( xFirstChartType, nDimensionCount ))
+ && xFirstChartType.is() ? xFirstChartType->isSupportingRegressionProperties(nDimensionCount) : true)
{
- uno::Reference< chart2::XRegressionCurveContainer > xRegCurveCnt( xGivenDataSeries, uno::UNO_QUERY );
- if( xRegCurveCnt.is())
- {
- // Trendline
- bMayAddTrendline = true;
+ // Trendline
+ bMayAddTrendline = true;
- // Mean Value
- bMayFormatMeanValue = bMayDeleteMeanValue = RegressionCurveHelper::hasMeanValueLine( xRegCurveCnt );
- bMayAddMeanValue = ! bMayDeleteMeanValue;
- }
+ // Mean Value
+ bMayFormatMeanValue = bMayDeleteMeanValue = RegressionCurveHelper::hasMeanValueLine( xGivenDataSeries );
+ bMayAddMeanValue = ! bMayDeleteMeanValue;
}
// error bars
if( (aObjectType == OBJECTTYPE_DATA_SERIES || aObjectType == OBJECTTYPE_DATA_POINT)
- && ChartTypeHelper::isSupportingStatisticProperties( xFirstChartType, nDimensionCount ))
+ && xFirstChartType.is() ? xFirstChartType->isSupportingStatisticProperties(nDimensionCount) : true)
{
bMayFormatXErrorBars = bMayDeleteXErrorBars = StatisticsHelper::hasErrorBars( xGivenDataSeries, false );
bMayAddXErrorBars = ! bMayDeleteXErrorBars;
@@ -283,29 +298,34 @@ void ControllerState::update(
{
bMayFormatTrendline = true;
bMayDeleteTrendline = true;
- uno::Reference< chart2::XRegressionCurve > xRegCurve(
- ObjectIdentifier::getObjectPropertySet( aSelObjCID, xModel ), uno::UNO_QUERY );
+ rtl::Reference< RegressionCurveModel > xRegCurve(
+ dynamic_cast<RegressionCurveModel*>(ObjectIdentifier::getObjectPropertySet( aSelObjCID, xModel ).get()) );
// Trendline Equation
bMayFormatTrendlineEquation = bMayDeleteTrendlineEquation = RegressionCurveHelper::hasEquation( xRegCurve );
bMayAddTrendlineEquation = !bMayDeleteTrendlineEquation;
+ bMayAddR2Value = RegressionCurveHelper::MayHaveCorrelationCoefficient( xRegCurve ) && bMayAddTrendlineEquation;
}
else if( aObjectType == OBJECTTYPE_DATA_CURVE_EQUATION )
{
bMayFormatTrendlineEquation = true;
bool bHasR2Value = false;
+ bool bMayHaveR2 = true;
try
{
uno::Reference< beans::XPropertySet > xEquationProperties =
ObjectIdentifier::getObjectPropertySet( aSelObjCID, xModel );
if( xEquationProperties.is() )
- xEquationProperties->getPropertyValue( "ShowCorrelationCoefficient" ) >>= bHasR2Value;
+ {
+ xEquationProperties->getPropertyValue( u"ShowCorrelationCoefficient"_ustr ) >>= bHasR2Value;
+ xEquationProperties->getPropertyValue( u"MayHaveCorrelationCoefficient"_ustr ) >>= bMayHaveR2;
+ }
}
catch(const uno::RuntimeException&)
{
TOOLS_WARN_EXCEPTION("chart2", "" );
}
- bMayAddR2Value = !bHasR2Value;
+ bMayAddR2Value = !bHasR2Value && bMayHaveR2;
bMayDeleteR2Value = bHasR2Value;
}
}
@@ -325,7 +345,7 @@ struct ModelState
{
ModelState();
- void update( const Reference< frame::XModel > & xModel );
+ void update( const rtl::Reference<::chart::ChartModel> & xModel );
bool HasAnyAxis() const;
bool HasAnyGrid() const;
@@ -364,6 +384,8 @@ struct ModelState
bool bSupportsStatistics;
bool bSupportsAxes;
+
+ bool bDataTable = false;
};
ModelState::ModelState() :
@@ -397,28 +419,27 @@ ModelState::ModelState() :
bSupportsAxes(false)
{}
-void ModelState::update( const Reference< frame::XModel > & xModel )
+void ModelState::update( const rtl::Reference<::chart::ChartModel> & xModel )
{
- Reference< chart2::XChartDocument > xChartDoc( xModel, uno::UNO_QUERY );
- Reference< chart2::XDiagram > xDiagram( ChartModelHelper::findDiagram( xModel ));
+ rtl::Reference< Diagram > xDiagram = xModel->getFirstChartDiagram();
- bIsReadOnly = true;
- Reference< frame::XStorable > xStorable( xModel, uno::UNO_QUERY );
- if( xStorable.is())
- bIsReadOnly = xStorable->isReadonly();
+ bIsReadOnly = xModel->isReadonly();
- sal_Int32 nDimensionCount = DiagramHelper::getDimension( xDiagram );
+ sal_Int32 nDimensionCount = 0;
+ if (xDiagram)
+ nDimensionCount = xDiagram->getDimension();
- uno::Reference< chart2::XChartType > xFirstChartType( DiagramHelper::getChartTypeByIndex( xDiagram, 0 ) );
- bSupportsStatistics = ChartTypeHelper::isSupportingStatisticProperties( xFirstChartType, nDimensionCount );
- bSupportsAxes = ChartTypeHelper::isSupportingMainAxis( xFirstChartType, nDimensionCount, 0 );
+ rtl::Reference<ChartType> xFirstChartType;
+ if (xDiagram)
+ xFirstChartType = xDiagram->getChartTypeByIndex( 0 );
+ bSupportsStatistics = xFirstChartType.is() ? xFirstChartType->isSupportingStatisticProperties(nDimensionCount) : true;
+ bSupportsAxes = xFirstChartType.is() ? xFirstChartType->isSupportingMainAxis(nDimensionCount, 0) : true;
bIsThreeD = (nDimensionCount == 3);
- if (xChartDoc.is())
+ if (xModel.is())
{
- ChartModel& rModel = dynamic_cast<ChartModel&>(*xChartDoc);
- bHasOwnData = rModel.hasInternalDataProvider();
- bHasDataFromPivotTable = !bHasOwnData && rModel.isDataFromPivotTable();
+ bHasOwnData = xModel->hasInternalDataProvider();
+ bHasDataFromPivotTable = !bHasOwnData && xModel->isDataFromPivotTable();
}
bHasMainTitle = TitleHelper::getTitle( TitleHelper::MAIN_TITLE, xModel ).is();
@@ -443,12 +464,14 @@ void ModelState::update( const Reference< frame::XModel > & xModel )
bHasHelpZGrid = bSupportsAxes && AxisHelper::isGridShown( 2, 0, false, xDiagram );
bHasAutoScaledText =
- (ReferenceSizeProvider::getAutoResizeState( xChartDoc ) ==
+ (ReferenceSizeProvider::getAutoResizeState( xModel ) ==
ReferenceSizeProvider::AUTO_RESIZE_YES);
bHasLegend = LegendHelper::hasLegend( xDiagram );
- bHasWall = DiagramHelper::isSupportingFloorAndWall( xDiagram );
+ bHasWall = xDiagram && xDiagram->isSupportingFloorAndWall();
bHasFloor = bHasWall && bIsThreeD;
+
+ bDataTable = xDiagram.is() && xDiagram->getDataTable().is();
}
bool ModelState::HasAnyAxis() const
@@ -491,11 +514,10 @@ void ControllerCommandDispatch::initialize()
if( !m_xChartController.is())
return;
- Reference< frame::XModel > xModel( m_xChartController->getModel());
- Reference< util::XModifyBroadcaster > xModifyBroadcaster( xModel, uno::UNO_QUERY );
- OSL_ASSERT( xModifyBroadcaster.is());
- if( xModifyBroadcaster.is())
- xModifyBroadcaster->addModifyListener( this );
+ rtl::Reference<::chart::ChartModel> xModel( m_xChartController->getChartModel());
+ OSL_ASSERT( xModel.is());
+ if( xModel.is())
+ xModel->addModifyListener( this );
// Listen selection modifications (Arrangement feature - issue 63017).
if( m_xSelectionSupplier.is() )
@@ -532,6 +554,7 @@ void ControllerCommandDispatch::updateCommandAvailability()
// read-only
bool bIsWritable = bModelStateIsValid && (! m_apModelState->bIsReadOnly);
bool bShapeContext = m_xChartController.is() && m_xChartController->isShapeContext();
+ bool bIsTextEdit = m_xChartController.is() && m_xChartController->IsTextEdit();
bool bEnableDataTableDialog = false;
bool bCanCreateDataProvider = false;
@@ -543,7 +566,7 @@ void ControllerCommandDispatch::updateCommandAvailability()
{
try
{
- xProps->getPropertyValue("EnableDataTableDialog") >>= bEnableDataTableDialog;
+ xProps->getPropertyValue(u"EnableDataTableDialog"_ustr) >>= bEnableDataTableDialog;
}
catch( const uno::Exception& )
{
@@ -551,160 +574,338 @@ void ControllerCommandDispatch::updateCommandAvailability()
}
}
- Reference< chart2::XChartDocument > xChartDoc(m_xChartController->getModel(), uno::UNO_QUERY);
- OSL_ENSURE(xChartDoc.is(), "Invalid XChartDocument");
- if ( xChartDoc.is() )
+ rtl::Reference< ChartModel > xChartModel = m_xChartController->getChartModel();
+ OSL_ENSURE(xChartModel.is(), "Invalid XChartDocument");
+ if ( xChartModel.is() )
{
- ChartModel& rModel = dynamic_cast<ChartModel&>(*xChartDoc);
- css::uno::Reference< com::sun::star::chart2::XDataProviderAccess > xCreatorDoc(rModel.getParent(), uno::UNO_QUERY);
+ css::uno::Reference< css::chart2::XDataProviderAccess > xCreatorDoc(xChartModel->getParent(), uno::UNO_QUERY);
bCanCreateDataProvider = xCreatorDoc.is();
}
}
// edit commands
- m_aCommandAvailability[ ".uno:Cut" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bIsDeleteableObjectSelected;
- m_aCommandAvailability[ ".uno:Copy" ] = bControllerStateIsValid && m_apControllerState->bHasSelectedObject;
- m_aCommandAvailability[ ".uno:Paste" ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:Cut"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bIsDeleteableObjectSelected;
+ m_aCommandAvailability[ u".uno:Copy"_ustr ] = bControllerStateIsValid && m_apControllerState->bHasSelectedObject;
+ m_aCommandAvailability[ u".uno:Paste"_ustr ] = bIsWritable;
// toolbar commands
- m_aCommandAvailability[ ".uno:ToggleGridHorizontal" ] = bIsWritable;
- m_aCommandArguments[ ".uno:ToggleGridHorizontal" ] <<= m_apModelState->bHasMainYGrid;
- m_aCommandAvailability[ ".uno:ToggleGridVertical" ] = bIsWritable;
- m_aCommandArguments[ ".uno:ToggleGridVertical" ] <<= m_apModelState->bHasMainXGrid;
-
- m_aCommandAvailability[ ".uno:ToggleLegend" ] = bIsWritable;
- m_aCommandArguments[ ".uno:ToggleLegend" ] <<= m_apModelState->bHasLegend;
-
- m_aCommandAvailability[ ".uno:NewArrangement" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:Update" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:DefaultColors" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:BarWidth" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:NumberOfLines" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:ArrangeRow" ] =
+ m_aCommandAvailability[ u".uno:ToggleGridHorizontal"_ustr ] = bIsWritable;
+ m_aCommandArguments[ u".uno:ToggleGridHorizontal"_ustr ] <<= bModelStateIsValid && m_apModelState->bHasMainYGrid;
+ m_aCommandAvailability[ u".uno:ToggleGridVertical"_ustr ] = bIsWritable;
+ m_aCommandArguments[ u".uno:ToggleGridVertical"_ustr ] <<= bModelStateIsValid && m_apModelState->bHasMainXGrid;
+
+ m_aCommandAvailability[ u".uno:ToggleLegend"_ustr ] = bIsWritable;
+ m_aCommandArguments[ u".uno:ToggleLegend"_ustr ] <<= bModelStateIsValid && m_apModelState->bHasLegend;
+
+ m_aCommandAvailability[ u".uno:NewArrangement"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:Update"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:DefaultColors"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:BarWidth"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:NumberOfLines"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:ArrangeRow"_ustr ] =
bShapeContext || ( bIsWritable && bControllerStateIsValid && ( m_apControllerState->bMayMoveSeriesForward || m_apControllerState->bMayMoveSeriesBackward ) );
// insert objects
- m_aCommandAvailability[ ".uno:InsertTitles" ] = m_aCommandAvailability[ ".uno:InsertMenuTitles" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:InsertLegend" ] = m_aCommandAvailability[ ".uno:InsertMenuLegend" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:DeleteLegend" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:InsertMenuDataLabels" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:InsertRemoveAxes" ] = m_aCommandAvailability[ ".uno:InsertMenuAxes" ] = bIsWritable && m_apModelState->bSupportsAxes;
- m_aCommandAvailability[ ".uno:InsertMenuGrids" ] = bIsWritable && m_apModelState->bSupportsAxes;
- m_aCommandAvailability[ ".uno:InsertMenuTrendlines" ] = bIsWritable && m_apModelState->bSupportsStatistics && m_apControllerState->bMayAddMenuTrendline;
- 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[ u".uno:InsertTitles"_ustr ] = m_aCommandAvailability[ u".uno:InsertMenuTitles"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:InsertLegend"_ustr ] = m_aCommandAvailability[ u".uno:InsertMenuLegend"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:DeleteLegend"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:InsertMenuDataLabels"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:InsertRemoveAxes"_ustr ] = m_aCommandAvailability[ u".uno:InsertMenuAxes"_ustr ] = bIsWritable && m_apModelState->bSupportsAxes;
+ m_aCommandAvailability[ u".uno:InsertMenuGrids"_ustr ] = bIsWritable && m_apModelState->bSupportsAxes;
+ m_aCommandAvailability[ u".uno:InsertMenuTrendlines"_ustr ] = bIsWritable && m_apModelState->bSupportsStatistics && bControllerStateIsValid && m_apControllerState->bMayAddMenuTrendline;
+ m_aCommandAvailability[ u".uno:InsertMenuMeanValues"_ustr ] = bIsWritable && m_apModelState->bSupportsStatistics;
+ m_aCommandAvailability[ u".uno:InsertMenuXErrorBars"_ustr ] = bIsWritable && m_apModelState->bSupportsStatistics;
+ m_aCommandAvailability[ u".uno:InsertMenuYErrorBars"_ustr ] = bIsWritable && m_apModelState->bSupportsStatistics;
+ m_aCommandAvailability[ u".uno:InsertSymbol"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bIsTextObject;
+ m_aCommandAvailability[ u".uno:InsertMenuDataTable"_ustr ] = bIsWritable;
// format objects
bool bFormatObjectAvailable = bIsWritable && bControllerStateIsValid && m_apControllerState->bIsFormateableObjectSelected;
- m_aCommandAvailability[ ".uno:FormatSelection" ] = bFormatObjectAvailable;
- m_aCommandAvailability[ ".uno:FormatAxis" ] = bFormatObjectAvailable;
- m_aCommandAvailability[ ".uno:FormatTitle" ] = bFormatObjectAvailable;
- m_aCommandAvailability[ ".uno:FormatDataSeries" ] = bFormatObjectAvailable;
- m_aCommandAvailability[ ".uno:FormatDataPoint" ] = bFormatObjectAvailable;
- m_aCommandAvailability[ ".uno:FormatDataLabels" ] = bFormatObjectAvailable;
- m_aCommandAvailability[ ".uno:FormatDataLabel" ] = bFormatObjectAvailable;
- m_aCommandAvailability[ ".uno:FormatXErrorBars" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayFormatXErrorBars;
- m_aCommandAvailability[ ".uno:FormatYErrorBars" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayFormatYErrorBars;
- m_aCommandAvailability[ ".uno:FormatMeanValue" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayFormatMeanValue;
- m_aCommandAvailability[ ".uno:FormatTrendline" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayFormatTrendline;
- m_aCommandAvailability[ ".uno:FormatTrendlineEquation" ] = bFormatObjectAvailable && bControllerStateIsValid && m_apControllerState->bMayFormatTrendlineEquation;
- m_aCommandAvailability[ ".uno:FormatStockLoss" ] = bFormatObjectAvailable;
- m_aCommandAvailability[ ".uno:FormatStockGain" ] = bFormatObjectAvailable;
-
- m_aCommandAvailability[ ".uno:DiagramType" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:Legend" ] = bIsWritable && m_apModelState->bHasLegend;
- m_aCommandAvailability[ ".uno:DiagramWall" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasWall;
- m_aCommandAvailability[ ".uno:DiagramArea" ] = bIsWritable;
-
- m_aCommandAvailability[ ".uno:TransformDialog" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bHasSelectedObject && m_apControllerState->bIsPositionableObject;
+ m_aCommandAvailability[ u".uno:FormatSelection"_ustr ] = bFormatObjectAvailable && !bIsTextEdit;
+ m_aCommandAvailability[ u".uno:FontDialog"_ustr ] = (bShapeContext ? isShapeControllerCommandAvailable(u".uno:FontDialog"_ustr) :
+ bFormatObjectAvailable) && bIsTextEdit;
+ m_aCommandAvailability[ u".uno:FormatAxis"_ustr ] = bFormatObjectAvailable;
+ m_aCommandAvailability[ u".uno:FormatTitle"_ustr ] = bFormatObjectAvailable && !bIsTextEdit;
+ m_aCommandAvailability[ u".uno:FormatDataSeries"_ustr ] = bFormatObjectAvailable;
+ m_aCommandAvailability[ u".uno:FormatDataPoint"_ustr ] = bFormatObjectAvailable;
+ m_aCommandAvailability[ u".uno:FormatDataLabels"_ustr ] = bFormatObjectAvailable;
+ m_aCommandAvailability[ u".uno:FormatDataLabel"_ustr ] = bFormatObjectAvailable;
+ m_aCommandAvailability[ u".uno:FormatXErrorBars"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayFormatXErrorBars;
+ m_aCommandAvailability[ u".uno:FormatYErrorBars"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayFormatYErrorBars;
+ m_aCommandAvailability[ u".uno:FormatMeanValue"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayFormatMeanValue;
+ m_aCommandAvailability[ u".uno:FormatTrendline"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayFormatTrendline;
+ m_aCommandAvailability[ u".uno:FormatTrendlineEquation"_ustr ] = bFormatObjectAvailable && bControllerStateIsValid && m_apControllerState->bMayFormatTrendlineEquation;
+ m_aCommandAvailability[ u".uno:FormatStockLoss"_ustr ] = bFormatObjectAvailable;
+ m_aCommandAvailability[ u".uno:FormatStockGain"_ustr ] = bFormatObjectAvailable;
+
+ m_aCommandAvailability[ u".uno:DiagramType"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:Legend"_ustr ] = bIsWritable && m_apModelState->bHasLegend;
+ m_aCommandAvailability[ u".uno:DiagramWall"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasWall;
+ m_aCommandAvailability[ u".uno:DiagramArea"_ustr ] = bIsWritable;
+
+ m_aCommandAvailability[ u".uno:TransformDialog"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bHasSelectedObject && m_apControllerState->bIsPositionableObject;
// 3d commands
- m_aCommandAvailability[ ".uno:View3D" ] = bIsWritable && bModelStateIsValid && m_apModelState->bIsThreeD;
- m_aCommandAvailability[ ".uno:DiagramFloor" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasFloor;
+ m_aCommandAvailability[ u".uno:View3D"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bIsThreeD;
+ m_aCommandAvailability[ u".uno:DiagramFloor"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasFloor;
//some more format commands with different ui text
- m_aCommandAvailability[ ".uno:FormatWall" ] = m_aCommandAvailability[ ".uno:DiagramWall" ];
- m_aCommandAvailability[ ".uno:FormatFloor" ] = m_aCommandAvailability[ ".uno:DiagramFloor" ];
- m_aCommandAvailability[ ".uno:FormatChartArea" ] = m_aCommandAvailability[ ".uno:DiagramArea" ];
- m_aCommandAvailability[ ".uno:FormatLegend" ] = m_aCommandAvailability[ ".uno:Legend" ];
+ m_aCommandAvailability[ u".uno:FormatWall"_ustr ] = m_aCommandAvailability[ u".uno:DiagramWall"_ustr ];
+ m_aCommandAvailability[ u".uno:FormatFloor"_ustr ] = m_aCommandAvailability[ u".uno:DiagramFloor"_ustr ];
+ m_aCommandAvailability[ u".uno:FormatChartArea"_ustr ] = m_aCommandAvailability[ u".uno:DiagramArea"_ustr ];
+ m_aCommandAvailability[ u".uno:FormatLegend"_ustr ] = m_aCommandAvailability[ u".uno:Legend"_ustr ];
// depending on own data and ability to create new data provider
- m_aCommandAvailability[".uno:DataRanges"] = bIsWritable && bModelStateIsValid && !m_apModelState->bHasDataFromPivotTable
+ m_aCommandAvailability[u".uno:DataRanges"_ustr] = bIsWritable && bModelStateIsValid && !m_apModelState->bHasDataFromPivotTable
&& ((m_apModelState->bHasOwnData && bCanCreateDataProvider) || !m_apModelState->bHasOwnData);
- m_aCommandAvailability[ ".uno:DiagramData" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasOwnData && bEnableDataTableDialog;
+ m_aCommandAvailability[ u".uno:DiagramData"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasOwnData && bEnableDataTableDialog;
// titles
- m_aCommandAvailability[ ".uno:MainTitle" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasMainTitle;
- m_aCommandAvailability[ ".uno:SubTitle" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasSubTitle;
- m_aCommandAvailability[ ".uno:XTitle" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasXAxisTitle;
- m_aCommandAvailability[ ".uno:YTitle" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasYAxisTitle;
- m_aCommandAvailability[ ".uno:ZTitle" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasZAxisTitle;
- m_aCommandAvailability[ ".uno:SecondaryXTitle" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasSecondaryXAxisTitle;
- m_aCommandAvailability[ ".uno:SecondaryYTitle" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasSecondaryYAxisTitle;
- m_aCommandAvailability[ ".uno:AllTitles" ] = bIsWritable && bModelStateIsValid && m_apModelState->HasAnyTitle();
+ m_aCommandAvailability[ u".uno:MainTitle"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasMainTitle;
+ m_aCommandAvailability[ u".uno:SubTitle"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasSubTitle;
+ m_aCommandAvailability[ u".uno:XTitle"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasXAxisTitle;
+ m_aCommandAvailability[ u".uno:YTitle"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasYAxisTitle;
+ m_aCommandAvailability[ u".uno:ZTitle"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasZAxisTitle;
+ m_aCommandAvailability[ u".uno:SecondaryXTitle"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasSecondaryXAxisTitle;
+ m_aCommandAvailability[ u".uno:SecondaryYTitle"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasSecondaryYAxisTitle;
+ m_aCommandAvailability[ u".uno:AllTitles"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->HasAnyTitle();
// text
- m_aCommandAvailability[ ".uno:ScaleText" ] = bIsWritable && bModelStateIsValid ;
- m_aCommandArguments[ ".uno:ScaleText" ] <<= m_apModelState->bHasAutoScaledText;
+ m_aCommandAvailability[ u".uno:ScaleText"_ustr ] = bIsWritable && bModelStateIsValid ;
+ m_aCommandArguments[ u".uno:ScaleText"_ustr ] <<= bModelStateIsValid && m_apModelState->bHasAutoScaledText;
+
+ bool bTitleIsInEditMode = false;
+ try
+ {
+ OUString aObjectCID2 = m_xChartController->getSelectionMember().getSelectedCID();
+ if (!aObjectCID2.isEmpty())
+ if (ObjectIdentifier::getObjectType(aObjectCID2) == OBJECTTYPE_TITLE)
+ if (m_xChartController->GetDrawViewWrapper())
+ if (m_xChartController->GetDrawViewWrapper()->GetTextEditOutlinerView())
+ bTitleIsInEditMode = true;
+ }
+ catch (const uno::Exception&) { TOOLS_WARN_EXCEPTION("chart2", ""); }
+
+ bool bEnableUnoCommands = bIsWritable && bModelStateIsValid && !bTitleIsInEditMode;
+ m_aCommandAvailability[u".uno:Bold"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:Strikeout"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:CharFontName"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:FontHeight"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:Italic"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:Underline"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:Shadowed"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:Color"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:FontColor"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:Grow"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:Shrink"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:SuperScript"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:SubScript"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:Spacing"_ustr] = bEnableUnoCommands;
+ m_aCommandAvailability[u".uno:ResetAttributes"_ustr] = bEnableUnoCommands;
+
+ if (!bTitleIsInEditMode)
+ {
+ // at default they are not filled in the sidebar
+ m_aCommandArguments[u".uno:CharFontName"_ustr] <<= false;
+ m_aCommandArguments[u".uno:FontHeight"_ustr] <<= false;
+ m_aCommandArguments[u".uno:Bold"_ustr] <<= false;
+ m_aCommandArguments[u".uno:Strikeout"_ustr] <<= false;
+ m_aCommandArguments[u".uno:Italic"_ustr] <<= false;
+ m_aCommandArguments[u".uno:Underline"_ustr] <<= false;
+ m_aCommandArguments[u".uno:Shadowed"_ustr] <<= false;
+ m_aCommandArguments[u".uno:Color"_ustr] <<= false;
+ m_aCommandArguments[u".uno:FontColor"_ustr] <<= false;
+ m_aCommandArguments[u".uno:SuperScript"_ustr] <<= false;
+ m_aCommandArguments[u".uno:SubScript"_ustr] <<= false;
+ m_aCommandArguments[u".uno:Spacing"_ustr] <<= false;
+ m_aCommandArguments[u".uno:ResetAttributes"_ustr] <<= false;
+ }
+
+ // They are filled based on the text properties.. if there are only 1
+ // but only those properties that are true for the whole text
+ try
+ {
+ // if title is selected, and in edit mode, then the font panel should be disabled
+ // enable the uno commands only if the title is not in edit mode
+ // Todo: enable font panel here if the panel will be able to handle edited title.
+ OUString aObjectCID = m_xChartController->getSelectionMember().getSelectedCID();
+ if (!aObjectCID.isEmpty() && !bTitleIsInEditMode)
+ {
+ // If the selected is not title, then we should check the text properties..
+ // or the selected text properties?
+ std::vector<Reference<beans::XPropertySet>> xProperties;
+ xProperties.emplace(xProperties.end(),
+ ObjectIdentifier::getObjectPropertySet(
+ aObjectCID, m_xChartController->getChartModel()));
+
+ if (ObjectIdentifier::getObjectType(aObjectCID) == OBJECTTYPE_TITLE)
+ {
+ Reference<chart2::XTitle> xTitle(xProperties[0], uno::UNO_QUERY);
+ if (xTitle.is())
+ {
+ const Sequence<Reference<chart2::XFormattedString>> aStrings(xTitle->getText());
+ xProperties.pop_back();
+ for (int i = 0; i < aStrings.getLength(); i++)
+ {
+ Reference<beans::XPropertySet> xTitlePropSet(aStrings[i], uno::UNO_QUERY);
+ xProperties.push_back(xTitlePropSet);
+ }
+ }
+ }
+
+ Reference<beans::XMultiPropertySet> aMObjProps(xProperties[0], uno::UNO_QUERY);
+ if (aMObjProps)
+ {
+ awt::FontDescriptor aFont
+ = CharacterProperties::createFontDescriptorFromPropertySet(aMObjProps);
+
+ if (!aFont.Name.isEmpty())
+ {
+ OUString aPropName = u"CharFontName"_ustr;
+ if (lcl_arePropertiesSame(xProperties, aPropName))
+ {
+ m_aCommandArguments[u".uno:CharFontName"_ustr] <<= aFont;
+ }
+ }
+ }
+ OUString aPropName = u"CharHeight"_ustr;
+ if (lcl_arePropertiesSame(xProperties, aPropName))
+ {
+ uno::Any aAny = xProperties[0]->getPropertyValue(aPropName);
+ frame::status::FontHeight aFontHeight;
+ aAny >>= aFontHeight.Height;
+ // another type is needed here, so
+ m_aCommandArguments[u".uno:FontHeight"_ustr] <<= aFontHeight;
+ }
+
+ aPropName = u"CharWeight"_ustr;
+ if (lcl_arePropertiesSame(xProperties, aPropName))
+ {
+ float nFontWeight(0.0);
+ xProperties[0]->getPropertyValue(aPropName) >>= nFontWeight;
+ bool bFontWeight = (nFontWeight > 100.0);
+ m_aCommandArguments[u".uno:Bold"_ustr] <<= bFontWeight;
+ }
+
+ aPropName = u"CharPosture"_ustr;
+ if (lcl_arePropertiesSame(xProperties, aPropName))
+ {
+ awt::FontSlant nFontItalic;
+ xProperties[0]->getPropertyValue(aPropName) >>= nFontItalic;
+ bool bItalic = (nFontItalic == awt::FontSlant_ITALIC);
+ m_aCommandArguments[u".uno:Italic"_ustr] <<= bItalic;
+ }
+
+ aPropName = u"CharStrikeout"_ustr;
+ if (lcl_arePropertiesSame(xProperties, aPropName))
+ {
+ sal_Int16 nFontStrikeout(0);
+ xProperties[0]->getPropertyValue(aPropName) >>= nFontStrikeout;
+ bool bFontStrikeout = (nFontStrikeout > 0);
+ m_aCommandArguments[u".uno:Strikeout"_ustr] <<= bFontStrikeout;
+ }
+
+ aPropName = u"CharUnderline"_ustr;
+ if (lcl_arePropertiesSame(xProperties, aPropName))
+ {
+ sal_Int16 nFontUnderline(0);
+ xProperties[0]->getPropertyValue(aPropName) >>= nFontUnderline;
+ bool bFontUnderline = (nFontUnderline > 0);
+ m_aCommandArguments[u".uno:Underline"_ustr] <<= bFontUnderline;
+ }
+
+ aPropName = u"CharShadowed"_ustr;
+ if (lcl_arePropertiesSame(xProperties, aPropName))
+ {
+ bool bShadowed = false;
+ xProperties[0]->getPropertyValue(aPropName) >>= bShadowed;
+ m_aCommandArguments[u".uno:Shadowed"_ustr] <<= bShadowed;
+ }
+
+ // Font color is not set in panel... it is just enabled to use
+ m_aCommandArguments[u".uno:Color"_ustr] <<= false;
+ m_aCommandArguments[u".uno:FontColor"_ustr] <<= false;
+
+ aPropName = u"CharEscapement"_ustr;
+ if (lcl_arePropertiesSame(xProperties, aPropName))
+ {
+ sal_Int32 nCharEscapement = 0;
+ xProperties[0]->getPropertyValue(aPropName) >>= nCharEscapement;
+ m_aCommandArguments[u".uno:SuperScript"_ustr] <<= (nCharEscapement > 0);
+ m_aCommandArguments[u".uno:SubScript"_ustr] <<= (nCharEscapement < 0);
+ }
+
+ // Font Spacing is not set in panel... it is just enabled to use
+ m_aCommandArguments[u".uno:Spacing"_ustr] <<= false;
+ }
+ }
+ catch (const uno::Exception&)
+ {
+ TOOLS_WARN_EXCEPTION("chart2", "");
+ }
// axes
- m_aCommandAvailability[ ".uno:DiagramAxisX" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasXAxis;
- m_aCommandAvailability[ ".uno:DiagramAxisY" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasYAxis;
- m_aCommandAvailability[ ".uno:DiagramAxisZ" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasZAxis;
- m_aCommandAvailability[ ".uno:DiagramAxisA" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasAAxis;
- m_aCommandAvailability[ ".uno:DiagramAxisB" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasBAxis;
- m_aCommandAvailability[ ".uno:DiagramAxisAll" ] = bIsWritable && bModelStateIsValid && m_apModelState->HasAnyAxis();
+ m_aCommandAvailability[ u".uno:DiagramAxisX"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasXAxis;
+ m_aCommandAvailability[ u".uno:DiagramAxisY"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasYAxis;
+ m_aCommandAvailability[ u".uno:DiagramAxisZ"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasZAxis;
+ m_aCommandAvailability[ u".uno:DiagramAxisA"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasAAxis;
+ m_aCommandAvailability[ u".uno:DiagramAxisB"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasBAxis;
+ m_aCommandAvailability[ u".uno:DiagramAxisAll"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->HasAnyAxis();
// grids
// note: x and y are swapped in the commands!
- m_aCommandAvailability[ ".uno:DiagramGridYMain" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasMainXGrid;
- m_aCommandAvailability[ ".uno:DiagramGridXMain" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasMainYGrid;
- m_aCommandAvailability[ ".uno:DiagramGridZMain" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasMainZGrid;
- m_aCommandAvailability[ ".uno:DiagramGridYHelp" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasHelpXGrid;
- m_aCommandAvailability[ ".uno:DiagramGridXHelp" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasHelpYGrid;
- m_aCommandAvailability[ ".uno:DiagramGridZHelp" ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasHelpZGrid;
- m_aCommandAvailability[ ".uno:DiagramGridAll" ] = bIsWritable && bModelStateIsValid && m_apModelState->HasAnyGrid();
+ m_aCommandAvailability[ u".uno:DiagramGridYMain"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasMainXGrid;
+ m_aCommandAvailability[ u".uno:DiagramGridXMain"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasMainYGrid;
+ m_aCommandAvailability[ u".uno:DiagramGridZMain"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasMainZGrid;
+ m_aCommandAvailability[ u".uno:DiagramGridYHelp"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasHelpXGrid;
+ m_aCommandAvailability[ u".uno:DiagramGridXHelp"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasHelpYGrid;
+ m_aCommandAvailability[ u".uno:DiagramGridZHelp"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bHasHelpZGrid;
+ m_aCommandAvailability[ u".uno:DiagramGridAll"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->HasAnyGrid();
// series arrangement
- m_aCommandAvailability[ ".uno:Forward" ] = ( bShapeContext ? isShapeControllerCommandAvailable( ".uno:Forward" ) :
+ m_aCommandAvailability[ u".uno:Forward"_ustr ] = ( bShapeContext ? isShapeControllerCommandAvailable( u".uno:Forward"_ustr ) :
( bIsWritable && bControllerStateIsValid && m_apControllerState->bMayMoveSeriesForward && bEnableDataTableDialog ) );
- m_aCommandAvailability[ ".uno:Backward" ] = ( bShapeContext ? isShapeControllerCommandAvailable( ".uno:Backward" ) :
+ m_aCommandAvailability[ u".uno:Backward"_ustr ] = ( bShapeContext ? isShapeControllerCommandAvailable( u".uno:Backward"_ustr ) :
( bIsWritable && bControllerStateIsValid && m_apControllerState->bMayMoveSeriesBackward && bEnableDataTableDialog ) );
- m_aCommandAvailability[ ".uno:InsertDataLabels" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:InsertDataLabel" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:InsertMeanValue" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddMeanValue;
- m_aCommandAvailability[ ".uno:InsertTrendline" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddTrendline;
- m_aCommandAvailability[ ".uno:InsertTrendlineEquation" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddTrendlineEquation;
- m_aCommandAvailability[ ".uno:InsertTrendlineEquationAndR2" ] = m_aCommandAvailability[ ".uno:InsertTrendlineEquation" ];
- m_aCommandAvailability[ ".uno:InsertR2Value" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddR2Value;
- m_aCommandAvailability[ ".uno:DeleteR2Value" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayDeleteR2Value;
-
- m_aCommandAvailability[ ".uno:InsertXErrorBars" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddXErrorBars;
- m_aCommandAvailability[ ".uno:InsertYErrorBars" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddYErrorBars;
-
- m_aCommandAvailability[ ".uno:DeleteDataLabels" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:DeleteDataLabel" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:DeleteTrendline" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayDeleteTrendline;
- m_aCommandAvailability[ ".uno:DeleteTrendlineEquation" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayDeleteTrendlineEquation;
- m_aCommandAvailability[ ".uno:DeleteMeanValue" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayDeleteMeanValue;
- m_aCommandAvailability[ ".uno:DeleteXErrorBars" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayDeleteXErrorBars;
- m_aCommandAvailability[ ".uno:DeleteYErrorBars" ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayDeleteYErrorBars;
-
- m_aCommandAvailability[ ".uno:ResetDataPoint" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:ResetAllDataPoints" ] = bIsWritable;
-
- m_aCommandAvailability[ ".uno:InsertAxis" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:DeleteAxis" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:InsertAxisTitle" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:FormatMajorGrid" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:InsertMajorGrid" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:DeleteMajorGrid" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:FormatMinorGrid" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:InsertMinorGrid" ] = bIsWritable;
- m_aCommandAvailability[ ".uno:DeleteMinorGrid" ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:InsertDataLabels"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:InsertDataLabel"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:InsertMeanValue"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddMeanValue;
+ m_aCommandAvailability[ u".uno:InsertTrendline"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddTrendline;
+ const bool bInsertTrendlineEquation = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddTrendlineEquation;
+ m_aCommandAvailability[ u".uno:InsertTrendlineEquation"_ustr ] = bInsertTrendlineEquation;
+ m_aCommandAvailability[ u".uno:InsertTrendlineEquationAndR2"_ustr ] = bInsertTrendlineEquation && m_apControllerState->bMayAddR2Value;
+ m_aCommandAvailability[ u".uno:InsertR2Value"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddR2Value
+ && !m_apControllerState->bMayAddTrendlineEquation;
+ m_aCommandAvailability[ u".uno:DeleteR2Value"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayDeleteR2Value;
+
+ m_aCommandAvailability[ u".uno:InsertXErrorBars"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddXErrorBars;
+ m_aCommandAvailability[ u".uno:InsertYErrorBars"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayAddYErrorBars;
+
+ m_aCommandAvailability[ u".uno:DeleteDataLabels"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:DeleteDataLabel"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:DeleteTrendline"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayDeleteTrendline;
+ m_aCommandAvailability[ u".uno:DeleteTrendlineEquation"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayDeleteTrendlineEquation;
+ m_aCommandAvailability[ u".uno:DeleteMeanValue"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayDeleteMeanValue;
+ m_aCommandAvailability[ u".uno:DeleteXErrorBars"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayDeleteXErrorBars;
+ m_aCommandAvailability[ u".uno:DeleteYErrorBars"_ustr ] = bIsWritable && bControllerStateIsValid && m_apControllerState->bMayDeleteYErrorBars;
+
+ m_aCommandAvailability[ u".uno:ResetDataPoint"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:ResetAllDataPoints"_ustr ] = bIsWritable;
+
+ m_aCommandAvailability[ u".uno:InsertAxis"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:DeleteAxis"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:InsertAxisTitle"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:FormatMajorGrid"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:InsertMajorGrid"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:DeleteMajorGrid"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:FormatMinorGrid"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:InsertMinorGrid"_ustr ] = bIsWritable;
+ m_aCommandAvailability[ u".uno:DeleteMinorGrid"_ustr ] = bIsWritable;
+
+ // data table
+ m_aCommandAvailability[ u".uno:InsertDataTable"_ustr ] = bIsWritable && bModelStateIsValid && !m_apModelState->bDataTable;
+ m_aCommandAvailability[ u".uno:DeleteDataTable"_ustr ] = bIsWritable && bModelStateIsValid && m_apModelState->bDataTable;
}
bool ControllerCommandDispatch::commandAvailable( const OUString & rCommand )
@@ -741,7 +942,7 @@ void ControllerCommandDispatch::fireStatusEvent(
{
uno::Any aArg;
aArg <<= Reference< frame::XController >(m_xChartController);
- fireStatusEventForURL( ".uno:ChartElementSelector", aArg, true, xSingleListener );
+ fireStatusEventForURL( u".uno:ChartElementSelector"_ustr, aArg, true, xSingleListener );
}
if( rURL.isEmpty() )
@@ -757,7 +958,7 @@ void ControllerCommandDispatch::fireStatusEvent(
if( rURL.isEmpty() || rURL == ".uno:StatusBarVisible" )
{
bool bIsStatusBarVisible( lcl_isStatusBarVisible( m_xChartController ));
- fireStatusEventForURL( ".uno:StatusBarVisible", uno::Any( bIsStatusBarVisible ), true, xSingleListener );
+ fireStatusEventForURL( u".uno:StatusBarVisible"_ustr, uno::Any( bIsStatusBarVisible ), true, xSingleListener );
}
}
@@ -772,7 +973,7 @@ void SAL_CALL ControllerCommandDispatch::dispatch(
// ____ WeakComponentImplHelperBase ____
/// is called when this is disposed
-void SAL_CALL ControllerCommandDispatch::disposing()
+void ControllerCommandDispatch::disposing(std::unique_lock<std::mutex>& /*rGuard*/)
{
m_xChartController.clear();
m_xDispatch.clear();
@@ -795,14 +996,14 @@ void SAL_CALL ControllerCommandDispatch::modified( const lang::EventObject& aEve
// Update the "ModelState" Struct.
if( m_apModelState && m_xChartController.is())
{
- m_apModelState->update( m_xChartController->getModel());
+ m_apModelState->update( m_xChartController->getChartModel());
bUpdateCommandAvailability = true;
}
// Update the "ControllerState" Struct.
if( m_apControllerState && m_xChartController.is())
{
- m_apControllerState->update( m_xChartController, m_xChartController->getModel());
+ m_apControllerState->update( m_xChartController, m_xChartController->getChartModel());
bUpdateCommandAvailability = true;
}
@@ -825,7 +1026,7 @@ void SAL_CALL ControllerCommandDispatch::selectionChanged( const lang::EventObje
// Update the "ControllerState" Struct.
if( m_apControllerState && m_xChartController.is())
{
- m_apControllerState->update( m_xChartController, m_xChartController->getModel());
+ m_apControllerState->update( m_xChartController, m_xChartController->getChartModel());
updateCommandAvailability();
}