sc/source/core/data/dptabres.cxx | 37 +++++++++++++++++++++++++++++++++---- 1 file changed, 33 insertions(+), 4 deletions(-)
New commits: commit d2668a9118a20c62e28cf064c5c625f096a9c20d Author: Kohei Yoshida <kohei.yosh...@gmail.com> Date: Thu Feb 14 22:54:15 2013 -0500 Fix subsequentcheck. We need to have at least one measure data at all times. Change-Id: I9ffe6a1cedc91fb0829b074097aa774f8eae8d88 diff --git a/sc/source/core/data/dptabres.cxx b/sc/source/core/data/dptabres.cxx index 7d571bb..bb867aa 100644 --- a/sc/source/core/data/dptabres.cxx +++ b/sc/source/core/data/dptabres.cxx @@ -732,10 +732,39 @@ void ScDPResultData::SetMeasureData( std::vector<ScSubTotalFunc>& rFunctions, std::vector<sheet::DataPilotFieldReference>& rRefs, std::vector<sal_uInt16>& rRefOrient, std::vector<OUString>& rNames ) { - maMeasureFuncs.swap(rFunctions); - maMeasureRefs.swap(rRefs); - maMeasureRefOrients.swap(rRefOrient); - maMeasureNames.swap(rNames); + // We need to have at least one measure data at all times. + + if (rFunctions.empty()) + { + std::vector<ScSubTotalFunc> aDummy(1, SUBTOTAL_FUNC_NONE); + maMeasureFuncs.swap(aDummy); + } + else + maMeasureFuncs.swap(rFunctions); + + if (rRefs.empty()) + { + std::vector<sheet::DataPilotFieldReference> aDummy(1); // default ctor is ok. + maMeasureRefs.swap(aDummy); + } + else + maMeasureRefs.swap(rRefs); + + if (rRefOrient.empty()) + { + std::vector<sal_uInt16> aDummy(1, sheet::DataPilotFieldOrientation_HIDDEN); + maMeasureRefOrients.swap(aDummy); + } + else + maMeasureRefOrients.swap(rRefOrient); + + if (rNames.empty()) + { + std::vector<OUString> aDummy(1, ScGlobal::GetRscString(STR_EMPTYDATA)); + maMeasureNames.swap(aDummy); + } + else + maMeasureNames.swap(rNames); } void ScDPResultData::SetDataLayoutOrientation( sal_uInt16 nOrient ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits