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

View File

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

View File

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