tdf#133630 Check object type when updating side panel data

Change-Id: I033b4c7fb1dc1787d28caf5b925ed45bbb63cf06
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/102544
Tested-by: Jenkins
Reviewed-by: Andras Timar <andras.timar@collabora.com>
This commit is contained in:
Ouyang Leyan 2020-09-06 20:11:57 +02:00 committed by Andras Timar
parent 877f40ac3f
commit c1b96424b6
3 changed files with 31 additions and 6 deletions

View File

@ -24,6 +24,7 @@
#include <com/sun/star/util/XModifyBroadcaster.hpp>
#include <vcl/svapp.hxx>
#include <sal/log.hxx>
#include "ChartAxisPanel.hxx"
#include <ChartController.hxx>
@ -166,7 +167,8 @@ OUString getCID(const css::uno::Reference<css::frame::XModel>& xModel)
aAny >>= aCID;
#if defined DBG_UTIL && !defined NDEBUG
ObjectType eType = ObjectIdentifier::getObjectType(aCID);
assert(eType == OBJECTTYPE_AXIS);
if(eType != OBJECTTYPE_AXIS)
SAL_WARN("chart2","Selected item is not an axis");
#endif
return aCID;
@ -271,6 +273,10 @@ void ChartAxisPanel::updateData()
return;
OUString aCID = getCID(mxModel);
ObjectType eType = ObjectIdentifier::getObjectType(aCID);
if (eType!=OBJECTTYPE_AXIS)
return;
SolarMutexGuard aGuard;
mxCBShowLabel->set_active(isLabelShown(mxModel, aCID));

View File

@ -24,6 +24,8 @@
#include "ChartErrorBarPanel.hxx"
#include <ChartController.hxx>
#include <vcl/svapp.hxx>
#include <sal/log.hxx>
using namespace css;
using namespace css::uno;
@ -220,9 +222,11 @@ OUString getCID(const css::uno::Reference<css::frame::XModel>& xModel)
aAny >>= aCID;
#if defined DBG_UTIL && !defined NDEBUG
ObjectType eType = ObjectIdentifier::getObjectType(aCID);
assert(eType == OBJECTTYPE_DATA_ERRORS_X ||
eType == OBJECTTYPE_DATA_ERRORS_Y ||
eType == OBJECTTYPE_DATA_ERRORS_Z);
if (eType != OBJECTTYPE_DATA_ERRORS_X &&
eType != OBJECTTYPE_DATA_ERRORS_Y &&
eType != OBJECTTYPE_DATA_ERRORS_Z)
SAL_WARN("chart2","Selected item is not an error bar");
#endif
return aCID;
@ -297,6 +301,12 @@ void ChartErrorBarPanel::updateData()
return;
OUString aCID = getCID(mxModel);
ObjectType eType = ObjectIdentifier::getObjectType(aCID);
if (eType != OBJECTTYPE_DATA_ERRORS_X &&
eType != OBJECTTYPE_DATA_ERRORS_Y &&
eType != OBJECTTYPE_DATA_ERRORS_Z)
return;
bool bPos = showPositiveError(mxModel, aCID);
bool bNeg = showNegativeError(mxModel, aCID);

View File

@ -28,6 +28,7 @@
#include <com/sun/star/util/XModifyBroadcaster.hpp>
#include <vcl/svapp.hxx>
#include <sal/log.hxx>
#include "ChartSeriesPanel.hxx"
#include <ChartController.hxx>
@ -264,8 +265,10 @@ OUString getCID(const css::uno::Reference<css::frame::XModel>& xModel)
#if defined DBG_UTIL && !defined NDEBUG
ObjectType eType = ObjectIdentifier::getObjectType(aCID);
assert(eType == OBJECTTYPE_DATA_SERIES || eType == OBJECTTYPE_DATA_POINT
|| eType == OBJECTTYPE_DATA_CURVE);
if (eType != OBJECTTYPE_DATA_SERIES &&
eType != OBJECTTYPE_DATA_POINT &&
eType != OBJECTTYPE_DATA_CURVE)
SAL_WARN("chart2","Selected item is not a chart series");
#endif
return aCID;
@ -355,6 +358,12 @@ void ChartSeriesPanel::updateData()
return;
OUString aCID = getCID(mxModel);
ObjectType eType = ObjectIdentifier::getObjectType(aCID);
if (eType!=OBJECTTYPE_DATA_SERIES &&
eType != OBJECTTYPE_DATA_POINT &&
eType != OBJECTTYPE_DATA_CURVE)
return;
SolarMutexGuard aGuard;
bool bLabelVisible = isDataLabelVisible(mxModel, aCID);
mxCBLabel->set_active(bLabelVisible);