sc/source/core/opencl/formulagroupcl.cxx | 10 sc/source/core/opencl/op_database.cxx | 693 +++++++++++------------ sc/source/core/opencl/op_spreadsheet.cxx | 39 - sc/source/ui/unoobj/PivotTableDataProvider.cxx | 10 sc/source/ui/unoobj/TablePivotCharts.cxx | 12 sc/source/ui/unoobj/confuno.cxx | 744 ++++++++++++------------- sc/source/ui/unoobj/datauno.cxx | 22 sc/source/ui/unoobj/docuno.cxx | 29 sc/source/ui/unoobj/fmtuno.cxx | 12 sc/source/ui/unoobj/linkuno.cxx | 32 - sc/source/ui/unoobj/nameuno.cxx | 18 sc/source/ui/unoobj/shapeuno.cxx | 219 +++---- sc/source/ui/unoobj/styleuno.cxx | 94 +-- sc/source/ui/unoobj/tokenuno.cxx | 36 - sc/source/ui/unoobj/viewuno.cxx | 6 sc/source/ui/vba/vbaapplication.cxx | 9 sc/source/ui/vba/vbaborders.cxx | 87 +- sc/source/ui/vba/vbachart.cxx | 7 sc/source/ui/vba/vbachartobject.cxx | 7 sc/source/ui/vba/vbainterior.cxx | 39 - sc/source/ui/vba/vbamenubars.cxx | 12 sc/source/ui/vba/vbamenuitems.cxx | 29 sc/source/ui/vba/vbamenus.cxx | 19 sc/source/ui/vba/vbapalette.cxx | 7 sc/source/ui/vba/vbarange.cxx | 90 +-- sc/source/ui/vba/vbaworkbooks.cxx | 7 sc/source/ui/vba/vbaworksheet.cxx | 80 +- sc/source/ui/vba/vbaworksheets.cxx | 17 28 files changed, 1156 insertions(+), 1230 deletions(-)
New commits: commit 30b635c26d6cc07b5a84dc0d829f0b0cde3d1f5a Author: Noel Grandin <noel.gran...@collabora.co.uk> Date: Fri Sep 22 16:55:10 2017 +0200 loplugin:flatten in sc Change-Id: I40653af2d90ef123cf77d7223c520cba0e5a3aca Reviewed-on: https://gerrit.libreoffice.org/42661 Reviewed-by: Noel Grandin <noel.gran...@collabora.co.uk> Tested-by: Noel Grandin <noel.gran...@collabora.co.uk> diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx index f665c223f571..9d5c6112f767 100644 --- a/sc/source/core/opencl/formulagroupcl.cxx +++ b/sc/source/core/opencl/formulagroupcl.cxx @@ -258,16 +258,14 @@ public: { FormulaToken* ref = mFormulaTree->GetFormulaToken(); cl_uint hashCode = 0; - if (ref->GetType() == formula::svString) - { - const rtl::OUString s = ref->GetString().getString().toAsciiUpperCase(); - hashCode = s.hashCode(); - } - else + if (ref->GetType() != formula::svString) { throw Unhandled(__FILE__, __LINE__); } + const rtl::OUString s = ref->GetString().getString().toAsciiUpperCase(); + hashCode = s.hashCode(); + // Pass the scalar result back to the rest of the formula kernel SAL_INFO("sc.opencl", "Kernel " << k << " arg " << argno << ": cl_uint: " << hashCode); cl_int err = clSetKernelArg(k, argno, sizeof(cl_uint), static_cast<void*>(&hashCode)); diff --git a/sc/source/core/opencl/op_database.cxx b/sc/source/core/opencl/op_database.cxx index 444e3deded0d..d095d0f4ab8f 100644 --- a/sc/source/core/opencl/op_database.cxx +++ b/sc/source/core/opencl/op_database.cxx @@ -38,46 +38,43 @@ void OpDmax::GenSlidingWindowFunction(std::stringstream &ss, GenTmpVariables(ss,vSubArguments); int dataCol = 0; int dataRow = 0; - if(vSubArguments[0]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) - { - formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR1= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - dataCol = pCurDVR1->GetArrays().size(); - dataRow = pCurDVR1->GetArrayLength(); - } - else + if(vSubArguments[0]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) throw Unhandled(__FILE__, __LINE__); - if(vSubArguments[dataCol]->GetFormulaToken()->GetType() == - formula::svSingleVectorRef) - { - const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const - formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> - GetFormulaToken()); - ss << " tmp"<<dataCol<<"="; - ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; - ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; - ss << "tmp"<<dataCol<<"))\n"; - ss << " tmp"<<dataCol<<"=0;\n"; - } - else + + formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); + const formula::DoubleVectorRefToken*pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + dataCol = pCurDVR->GetArrays().size(); + dataRow = pCurDVR->GetArrayLength(); + + if(vSubArguments[dataCol]->GetFormulaToken()->GetType() != + formula::svSingleVectorRef) throw Unhandled(__FILE__, __LINE__); + + const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const + formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> + GetFormulaToken()); + ss << " tmp"<<dataCol<<"="; + ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; + ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; + ss << "tmp"<<dataCol<<"))\n"; + ss << " tmp"<<dataCol<<"=0;\n"; + int conditionCol = 0; int conditionRow = 0; - if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) + if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) { - formula::FormulaToken *tmpCur = vSubArguments[dataCol + 1]-> - GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR2= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - conditionCol = pCurDVR2->GetArrays().size(); - conditionRow = pCurDVR2->GetArrayLength(); - } - else{ throw Unhandled(__FILE__, __LINE__); } + tmpCur = vSubArguments[dataCol + 1]-> + GetFormulaToken(); + pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + conditionCol = pCurDVR->GetArrays().size(); + conditionRow = pCurDVR->GetArrayLength(); + if(dataCol!=conditionCol) throw Unhandled(__FILE__, __LINE__); if(dataCol > 0 && dataRow > 0) @@ -168,46 +165,43 @@ void OpDmin::GenSlidingWindowFunction(std::stringstream &ss, GenTmpVariables(ss,vSubArguments); int dataCol = 0; int dataRow = 0; - if(vSubArguments[0]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) - { - formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR1= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - dataCol = pCurDVR1->GetArrays().size(); - dataRow = pCurDVR1->GetArrayLength(); - } - else + if(vSubArguments[0]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) throw Unhandled(__FILE__, __LINE__); - if(vSubArguments[dataCol]->GetFormulaToken()->GetType() == - formula::svSingleVectorRef) - { - const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const - formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> - GetFormulaToken()); - ss << " tmp"<<dataCol<<"="; - ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; - ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; - ss << "tmp"<<dataCol<<"))\n"; - ss << " tmp"<<dataCol<<"=0;\n"; - } - else + + formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); + const formula::DoubleVectorRefToken*pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + dataCol = pCurDVR->GetArrays().size(); + dataRow = pCurDVR->GetArrayLength(); + + if(vSubArguments[dataCol]->GetFormulaToken()->GetType() != + formula::svSingleVectorRef) throw Unhandled(__FILE__, __LINE__); + + const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const + formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> + GetFormulaToken()); + ss << " tmp"<<dataCol<<"="; + ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; + ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; + ss << "tmp"<<dataCol<<"))\n"; + ss << " tmp"<<dataCol<<"=0;\n"; + int conditionCol = 0; int conditionRow = 0; - if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) + if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) { - formula::FormulaToken *tmpCur = vSubArguments[dataCol + 1]-> - GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR2= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - conditionCol = pCurDVR2->GetArrays().size(); - conditionRow = pCurDVR2->GetArrayLength(); - } - else{ throw Unhandled(__FILE__, __LINE__); } + tmpCur = vSubArguments[dataCol + 1]-> + GetFormulaToken(); + pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + conditionCol = pCurDVR->GetArrays().size(); + conditionRow = pCurDVR->GetArrayLength(); + if(dataCol!=conditionCol) throw Unhandled(__FILE__, __LINE__); if(dataCol > 0 && dataRow > 0) @@ -299,46 +293,43 @@ void OpDproduct::GenSlidingWindowFunction(std::stringstream &ss, GenTmpVariables(ss,vSubArguments); int dataCol = 0; int dataRow = 0; - if(vSubArguments[0]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) - { - formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR1= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - dataCol = pCurDVR1->GetArrays().size(); - dataRow = pCurDVR1->GetArrayLength(); - } - else + if(vSubArguments[0]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) throw Unhandled(__FILE__, __LINE__); - if(vSubArguments[dataCol]->GetFormulaToken()->GetType() == - formula::svSingleVectorRef) - { - const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const - formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> - GetFormulaToken()); - ss << " tmp"<<dataCol<<"="; - ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; - ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; - ss << "tmp"<<dataCol<<"))\n"; - ss << " tmp"<<dataCol<<"=0;\n"; - } - else + + formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); + const formula::DoubleVectorRefToken*pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + dataCol = pCurDVR->GetArrays().size(); + dataRow = pCurDVR->GetArrayLength(); + + if(vSubArguments[dataCol]->GetFormulaToken()->GetType() != + formula::svSingleVectorRef) throw Unhandled(__FILE__, __LINE__); + + const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const + formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> + GetFormulaToken()); + ss << " tmp"<<dataCol<<"="; + ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; + ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; + ss << "tmp"<<dataCol<<"))\n"; + ss << " tmp"<<dataCol<<"=0;\n"; + int conditionCol = 0; int conditionRow = 0; - if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) + if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) { - formula::FormulaToken *tmpCur = vSubArguments[dataCol + 1]-> - GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR2= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - conditionCol = pCurDVR2->GetArrays().size(); - conditionRow = pCurDVR2->GetArrayLength(); - } - else{ throw Unhandled(__FILE__, __LINE__); } + tmpCur = vSubArguments[dataCol + 1]-> + GetFormulaToken(); + pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + conditionCol = pCurDVR->GetArrays().size(); + conditionRow = pCurDVR->GetArrayLength(); + if(dataCol!=conditionCol) throw Unhandled(__FILE__, __LINE__); if(dataCol > 0 && dataRow > 0) @@ -429,46 +420,43 @@ void OpDaverage::GenSlidingWindowFunction(std::stringstream &ss, GenTmpVariables(ss,vSubArguments); int dataCol = 0; int dataRow = 0; - if(vSubArguments[0]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) - { - formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR1= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - dataCol = pCurDVR1->GetArrays().size(); - dataRow = pCurDVR1->GetArrayLength(); - } - else + if(vSubArguments[0]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) throw Unhandled(__FILE__, __LINE__); - if(vSubArguments[dataCol]->GetFormulaToken()->GetType() == - formula::svSingleVectorRef) - { - const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const - formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> - GetFormulaToken()); - ss << " tmp"<<dataCol<<"="; - ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; - ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; - ss << "tmp"<<dataCol<<"))\n"; - ss << " tmp"<<dataCol<<"=0;\n"; - } - else + + formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); + const formula::DoubleVectorRefToken*pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + dataCol = pCurDVR->GetArrays().size(); + dataRow = pCurDVR->GetArrayLength(); + + if(vSubArguments[dataCol]->GetFormulaToken()->GetType() != + formula::svSingleVectorRef) throw Unhandled(__FILE__, __LINE__); + + const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const + formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> + GetFormulaToken()); + ss << " tmp"<<dataCol<<"="; + ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; + ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; + ss << "tmp"<<dataCol<<"))\n"; + ss << " tmp"<<dataCol<<"=0;\n"; + int conditionCol = 0; int conditionRow = 0; - if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) + if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) { - formula::FormulaToken *tmpCur = vSubArguments[dataCol + 1]-> - GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR2= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - conditionCol = pCurDVR2->GetArrays().size(); - conditionRow = pCurDVR2->GetArrayLength(); - } - else{ throw Unhandled(__FILE__, __LINE__); } + tmpCur = vSubArguments[dataCol + 1]-> + GetFormulaToken(); + pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + conditionCol = pCurDVR->GetArrays().size(); + conditionRow = pCurDVR->GetArrayLength(); + if(dataCol!=conditionCol) throw Unhandled(__FILE__, __LINE__); if(dataCol > 0 && dataRow > 0) @@ -564,46 +552,43 @@ void OpDstdev::GenSlidingWindowFunction(std::stringstream &ss, GenTmpVariables(ss,vSubArguments); int dataCol = 0; int dataRow = 0; - if(vSubArguments[0]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) - { - formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR1= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - dataCol = pCurDVR1->GetArrays().size(); - dataRow = pCurDVR1->GetArrayLength(); - } - else + if(vSubArguments[0]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) throw Unhandled(__FILE__, __LINE__); - if(vSubArguments[dataCol]->GetFormulaToken()->GetType() == - formula::svSingleVectorRef) - { - const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const - formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> - GetFormulaToken()); - ss << " tmp"<<dataCol<<"="; - ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; - ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; - ss << "tmp"<<dataCol<<"))\n"; - ss << " tmp"<<dataCol<<"=0;\n"; - } - else + + formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); + const formula::DoubleVectorRefToken*pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + dataCol = pCurDVR->GetArrays().size(); + dataRow = pCurDVR->GetArrayLength(); + + if(vSubArguments[dataCol]->GetFormulaToken()->GetType() != + formula::svSingleVectorRef) throw Unhandled(__FILE__, __LINE__); + + const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const + formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> + GetFormulaToken()); + ss << " tmp"<<dataCol<<"="; + ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; + ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; + ss << "tmp"<<dataCol<<"))\n"; + ss << " tmp"<<dataCol<<"=0;\n"; + int conditionCol = 0; int conditionRow = 0; - if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) + if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) { - formula::FormulaToken *tmpCur = vSubArguments[dataCol + 1]-> - GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR2= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - conditionCol = pCurDVR2->GetArrays().size(); - conditionRow = pCurDVR2->GetArrayLength(); - } - else{ throw Unhandled(__FILE__, __LINE__); } + tmpCur = vSubArguments[dataCol + 1]-> + GetFormulaToken(); + pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + conditionCol = pCurDVR->GetArrays().size(); + conditionRow = pCurDVR->GetArrayLength(); + if(dataCol!=conditionCol) throw Unhandled(__FILE__, __LINE__); if(dataCol > 0 && dataRow > 0) @@ -749,46 +734,43 @@ void OpDstdevp::GenSlidingWindowFunction(std::stringstream &ss, GenTmpVariables(ss,vSubArguments); int dataCol = 0; int dataRow = 0; - if(vSubArguments[0]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) - { - formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR1= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - dataCol = pCurDVR1->GetArrays().size(); - dataRow = pCurDVR1->GetArrayLength(); - } - else + if(vSubArguments[0]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) throw Unhandled(__FILE__, __LINE__); - if(vSubArguments[dataCol]->GetFormulaToken()->GetType() == - formula::svSingleVectorRef) - { - const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const - formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> - GetFormulaToken()); - ss << " tmp"<<dataCol<<"="; - ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; - ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; - ss << "tmp"<<dataCol<<"))\n"; - ss << " tmp"<<dataCol<<"=0;\n"; - } - else + + formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); + const formula::DoubleVectorRefToken*pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + dataCol = pCurDVR->GetArrays().size(); + dataRow = pCurDVR->GetArrayLength(); + + if(vSubArguments[dataCol]->GetFormulaToken()->GetType() != + formula::svSingleVectorRef) throw Unhandled(__FILE__, __LINE__); + + const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const + formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> + GetFormulaToken()); + ss << " tmp"<<dataCol<<"="; + ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; + ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; + ss << "tmp"<<dataCol<<"))\n"; + ss << " tmp"<<dataCol<<"=0;\n"; + int conditionCol = 0; int conditionRow = 0; - if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) + if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) { - formula::FormulaToken *tmpCur = vSubArguments[dataCol + 1]-> - GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR2= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - conditionCol = pCurDVR2->GetArrays().size(); - conditionRow = pCurDVR2->GetArrayLength(); - } - else{ throw Unhandled(__FILE__, __LINE__); } + tmpCur = vSubArguments[dataCol + 1]-> + GetFormulaToken(); + pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + conditionCol = pCurDVR->GetArrays().size(); + conditionRow = pCurDVR->GetArrayLength(); + if(dataCol!=conditionCol) throw Unhandled(__FILE__, __LINE__); if(dataCol > 0 && dataRow > 0) @@ -932,46 +914,43 @@ void OpDsum::GenSlidingWindowFunction(std::stringstream &ss, GenTmpVariables(ss,vSubArguments); int dataCol = 0; int dataRow = 0; - if(vSubArguments[0]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) - { - formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR1= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - dataCol = pCurDVR1->GetArrays().size(); - dataRow = pCurDVR1->GetArrayLength(); - } - else + if(vSubArguments[0]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) throw Unhandled(__FILE__, __LINE__); - if(vSubArguments[dataCol]->GetFormulaToken()->GetType() == - formula::svSingleVectorRef) - { - const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const - formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> - GetFormulaToken()); - ss << " tmp"<<dataCol<<"="; - ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; - ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; - ss << "tmp"<<dataCol<<"))\n"; - ss << " tmp"<<dataCol<<"=0;\n"; - } - else + + formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); + const formula::DoubleVectorRefToken*pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + dataCol = pCurDVR->GetArrays().size(); + dataRow = pCurDVR->GetArrayLength(); + + if(vSubArguments[dataCol]->GetFormulaToken()->GetType() != + formula::svSingleVectorRef) throw Unhandled(__FILE__, __LINE__); + + const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const + formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> + GetFormulaToken()); + ss << " tmp"<<dataCol<<"="; + ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; + ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; + ss << "tmp"<<dataCol<<"))\n"; + ss << " tmp"<<dataCol<<"=0;\n"; + int conditionCol = 0; int conditionRow = 0; - if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) + if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) { - formula::FormulaToken *tmpCur = vSubArguments[dataCol + 1]-> - GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR2= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - conditionCol = pCurDVR2->GetArrays().size(); - conditionRow = pCurDVR2->GetArrayLength(); - } - else{ throw Unhandled(__FILE__, __LINE__); } + tmpCur = vSubArguments[dataCol + 1]-> + GetFormulaToken(); + pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + conditionCol = pCurDVR->GetArrays().size(); + conditionRow = pCurDVR->GetArrayLength(); + if(dataCol!=conditionCol) throw Unhandled(__FILE__, __LINE__); if(dataCol > 0 && dataRow > 0) @@ -1064,46 +1043,43 @@ void OpDvar::GenSlidingWindowFunction(std::stringstream &ss, GenTmpVariables(ss,vSubArguments); int dataCol = 0; int dataRow = 0; - if(vSubArguments[0]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) - { - formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR1= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - dataCol = pCurDVR1->GetArrays().size(); - dataRow = pCurDVR1->GetArrayLength(); - } - else + if(vSubArguments[0]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) throw Unhandled(__FILE__, __LINE__); - if(vSubArguments[dataCol]->GetFormulaToken()->GetType() == - formula::svSingleVectorRef) - { - const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const - formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> - GetFormulaToken()); - ss << " tmp"<<dataCol<<"="; - ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; - ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; - ss << "tmp"<<dataCol<<"))\n"; - ss << " tmp"<<dataCol<<"=0;\n"; - } - else + + formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); + const formula::DoubleVectorRefToken*pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + dataCol = pCurDVR->GetArrays().size(); + dataRow = pCurDVR->GetArrayLength(); + + if(vSubArguments[dataCol]->GetFormulaToken()->GetType() != + formula::svSingleVectorRef) throw Unhandled(__FILE__, __LINE__); + + const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const + formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> + GetFormulaToken()); + ss << " tmp"<<dataCol<<"="; + ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; + ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; + ss << "tmp"<<dataCol<<"))\n"; + ss << " tmp"<<dataCol<<"=0;\n"; + int conditionCol = 0; int conditionRow = 0; - if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) + if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) { - formula::FormulaToken *tmpCur = vSubArguments[dataCol + 1]-> - GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR2= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - conditionCol = pCurDVR2->GetArrays().size(); - conditionRow = pCurDVR2->GetArrayLength(); - } - else{ throw Unhandled(__FILE__, __LINE__); } + tmpCur = vSubArguments[dataCol + 1]-> + GetFormulaToken(); + pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + conditionCol = pCurDVR->GetArrays().size(); + conditionRow = pCurDVR->GetArrayLength(); + if(dataCol!=conditionCol) throw Unhandled(__FILE__, __LINE__); if(dataCol > 0 && dataRow > 0) @@ -1249,46 +1225,43 @@ void OpDvarp::GenSlidingWindowFunction(std::stringstream &ss, GenTmpVariables(ss,vSubArguments); int dataCol = 0; int dataRow = 0; - if(vSubArguments[0]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) - { - formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR1= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - dataCol = pCurDVR1->GetArrays().size(); - dataRow = pCurDVR1->GetArrayLength(); - } - else + if(vSubArguments[0]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) throw Unhandled(__FILE__, __LINE__); - if(vSubArguments[dataCol]->GetFormulaToken()->GetType() == - formula::svSingleVectorRef) - { - const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const - formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> - GetFormulaToken()); - ss << " tmp"<<dataCol<<"="; - ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; - ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; - ss << "tmp"<<dataCol<<"))\n"; - ss << " tmp"<<dataCol<<"=0;\n"; - } - else + + formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); + const formula::DoubleVectorRefToken*pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + dataCol = pCurDVR->GetArrays().size(); + dataRow = pCurDVR->GetArrayLength(); + + if(vSubArguments[dataCol]->GetFormulaToken()->GetType() != + formula::svSingleVectorRef) throw Unhandled(__FILE__, __LINE__); + + const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const + formula::SingleVectorRefToken *>(vSubArguments[dataCol]-> + GetFormulaToken()); + ss << " tmp"<<dataCol<<"="; + ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; + ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; + ss << "tmp"<<dataCol<<"))\n"; + ss << " tmp"<<dataCol<<"=0;\n"; + int conditionCol = 0; int conditionRow = 0; - if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) + if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) { - formula::FormulaToken *tmpCur = vSubArguments[dataCol + 1]-> - GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR2= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - conditionCol = pCurDVR2->GetArrays().size(); - conditionRow = pCurDVR2->GetArrayLength(); - } - else{ throw Unhandled(__FILE__, __LINE__); } + tmpCur = vSubArguments[dataCol + 1]-> + GetFormulaToken(); + pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + conditionCol = pCurDVR->GetArrays().size(); + conditionRow = pCurDVR->GetArrayLength(); + if(dataCol!=conditionCol) throw Unhandled(__FILE__, __LINE__); if(dataCol > 0 && dataRow > 0) @@ -1432,46 +1405,43 @@ void OpDcount::GenSlidingWindowFunction(std::stringstream &ss, GenTmpVariables(ss,vSubArguments); int dataCol = 0; int dataRow = 0; - if(vSubArguments[0]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) - { - formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR1= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - dataCol = pCurDVR1->GetArrays().size(); - dataRow = pCurDVR1->GetArrayLength(); - } - else + if(vSubArguments[0]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) throw Unhandled(__FILE__, __LINE__); - if(vSubArguments[dataCol]->GetFormulaToken()->GetType() == - formula::svSingleVectorRef) - { - const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const - formula::SingleVectorRefToken *>(vSubArguments[dataCol] - ->GetFormulaToken()); - ss << " tmp"<<dataCol<<"="; - ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; - ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; - ss << "tmp"<<dataCol<<"))\n"; - ss << " tmp"<<dataCol<<"=DBL_MIN;\n"; - } - else + + formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); + const formula::DoubleVectorRefToken*pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + dataCol = pCurDVR->GetArrays().size(); + dataRow = pCurDVR->GetArrayLength(); + + if(vSubArguments[dataCol]->GetFormulaToken()->GetType() != + formula::svSingleVectorRef) throw Unhandled(__FILE__, __LINE__); + + const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const + formula::SingleVectorRefToken *>(vSubArguments[dataCol] + ->GetFormulaToken()); + ss << " tmp"<<dataCol<<"="; + ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; + ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; + ss << "tmp"<<dataCol<<"))\n"; + ss << " tmp"<<dataCol<<"=DBL_MIN;\n"; + int conditionCol = 0; int conditionRow = 0; - if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) + if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) { - formula::FormulaToken *tmpCur = vSubArguments[dataCol + 1] - ->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR2= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - conditionCol = pCurDVR2->GetArrays().size(); - conditionRow = pCurDVR2->GetArrayLength(); - } - else{ throw Unhandled(__FILE__, __LINE__); } + tmpCur = vSubArguments[dataCol + 1] + ->GetFormulaToken(); + pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + conditionCol = pCurDVR->GetArrays().size(); + conditionRow = pCurDVR->GetArrayLength(); + if(dataCol!=conditionCol) throw Unhandled(__FILE__, __LINE__); if(dataCol > 0 && dataRow > 0) @@ -1563,46 +1533,43 @@ void OpDcount2::GenSlidingWindowFunction(std::stringstream &ss, GenTmpVariables(ss,vSubArguments); int dataCol = 0; int dataRow = 0; - if(vSubArguments[0]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) - { - formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR1= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - dataCol = pCurDVR1->GetArrays().size(); - dataRow = pCurDVR1->GetArrayLength(); - } - else + if(!(vSubArguments[0]->GetFormulaToken()->GetType() == + formula::svDoubleVectorRef)) throw Unhandled(__FILE__, __LINE__); - if(vSubArguments[dataCol]->GetFormulaToken()->GetType() == - formula::svSingleVectorRef) - { - const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const - formula::SingleVectorRefToken *>(vSubArguments[dataCol] - ->GetFormulaToken()); - ss << " tmp"<<dataCol<<"="; - ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; - ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; - ss << "tmp"<<dataCol<<"))\n"; - ss << " tmp"<<dataCol<<"=DBL_MIN;\n"; - } - else + + formula::FormulaToken *tmpCur = vSubArguments[0]->GetFormulaToken(); + const formula::DoubleVectorRefToken*pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + dataCol = pCurDVR->GetArrays().size(); + dataRow = pCurDVR->GetArrayLength(); + + if(vSubArguments[dataCol]->GetFormulaToken()->GetType() != + formula::svSingleVectorRef) throw Unhandled(__FILE__, __LINE__); + + const formula::SingleVectorRefToken*pTmpDVR1= static_cast<const + formula::SingleVectorRefToken *>(vSubArguments[dataCol] + ->GetFormulaToken()); + ss << " tmp"<<dataCol<<"="; + ss << vSubArguments[dataCol]->GenSlidingWindowDeclRef()<<";\n"; + ss << " if(gid0>="<<pTmpDVR1->GetArrayLength()<<" ||isnan("; + ss << "tmp"<<dataCol<<"))\n"; + ss << " tmp"<<dataCol<<"=DBL_MIN;\n"; + int conditionCol = 0; int conditionRow = 0; - if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() == - formula::svDoubleVectorRef) + if(vSubArguments[dataCol + 1]->GetFormulaToken()->GetType() != + formula::svDoubleVectorRef) { - formula::FormulaToken *tmpCur = vSubArguments[dataCol + 1]-> - GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR2= static_cast<const - formula::DoubleVectorRefToken *>(tmpCur); - conditionCol = pCurDVR2->GetArrays().size(); - conditionRow = pCurDVR2->GetArrayLength(); - } - else{ throw Unhandled(__FILE__, __LINE__); } + tmpCur = vSubArguments[dataCol + 1]-> + GetFormulaToken(); + pCurDVR= static_cast<const + formula::DoubleVectorRefToken *>(tmpCur); + conditionCol = pCurDVR->GetArrays().size(); + conditionRow = pCurDVR->GetArrayLength(); + if(dataCol!=conditionCol) throw Unhandled(__FILE__, __LINE__); if(dataCol > 0 && dataRow > 0) diff --git a/sc/source/core/opencl/op_spreadsheet.cxx b/sc/source/core/opencl/op_spreadsheet.cxx index 02acb8dce248..b79d5cdd715d 100644 --- a/sc/source/core/opencl/op_spreadsheet.cxx +++ b/sc/source/core/opencl/op_spreadsheet.cxx @@ -55,31 +55,30 @@ void OpVLookup::GenSlidingWindowFunction(std::stringstream &ss, index = ::rtl::math::approxFloor(dblToken->GetDouble()); } - if (vSubArguments[1]->GetFormulaToken()->GetType() == formula::svDoubleVectorRef) - { - FormulaToken *tmpCur = vSubArguments[1]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR = static_cast<const formula::DoubleVectorRefToken *>(tmpCur); - const std::vector<VectorRefArray> items = pCurDVR->GetArrays(); + if (vSubArguments[1]->GetFormulaToken()->GetType() != formula::svDoubleVectorRef) + throw Unhandled(__FILE__, __LINE__); // unusual vlookup. - secondParaWidth = items.size(); + FormulaToken *tmpCur = vSubArguments[1]->GetFormulaToken(); + const formula::DoubleVectorRefToken*pCurDVR = static_cast<const formula::DoubleVectorRefToken *>(tmpCur); + const std::vector<VectorRefArray> items = pCurDVR->GetArrays(); - if (index < 1 || index > secondParaWidth) - throw Unhandled(__FILE__, __LINE__); // oob index. + secondParaWidth = items.size(); - if (items[index - 1].mpStringArray) + if (index < 1 || index > secondParaWidth) + throw Unhandled(__FILE__, __LINE__); // oob index. + + if (items[index - 1].mpStringArray) + { + rtl_uString **pStrings = items[index - 1].mpStringArray; + for (size_t i = 0; i < pCurDVR->GetArrayLength(); ++i) { - rtl_uString **pStrings = items[index - 1].mpStringArray; - for (size_t i = 0; i < pCurDVR->GetArrayLength(); ++i) - { - if (pStrings[i] != nullptr) - { // TODO: the GroupTokenConverter should do better. - throw Unhandled(__FILE__, __LINE__); // mixed arguments. - } + if (pStrings[i] != nullptr) + { // TODO: the GroupTokenConverter should do better. + throw Unhandled(__FILE__, __LINE__); // mixed arguments. } } } - else - throw Unhandled(__FILE__, __LINE__); // unusual vlookup. + arg += secondParaWidth; CheckSubArgumentIsNan(ss,vSubArguments,arg++); @@ -97,8 +96,8 @@ void OpVLookup::GenSlidingWindowFunction(std::stringstream &ss, if (vSubArguments[1]->GetFormulaToken()->GetType() == formula::svDoubleVectorRef) { - FormulaToken *tmpCur = vSubArguments[1]->GetFormulaToken(); - const formula::DoubleVectorRefToken*pCurDVR = static_cast<const formula::DoubleVectorRefToken *>(tmpCur); + tmpCur = vSubArguments[1]->GetFormulaToken(); + pCurDVR = static_cast<const formula::DoubleVectorRefToken *>(tmpCur); size_t nCurWindowSize = pCurDVR->GetArrayLength() < pCurDVR->GetRefRowSize() ? pCurDVR->GetArrayLength() : pCurDVR->GetRefRowSize() ; int unrollSize = 8; ss << " int loop;\n"; diff --git a/sc/source/ui/unoobj/PivotTableDataProvider.cxx b/sc/source/ui/unoobj/PivotTableDataProvider.cxx index 581e5a9c9b25..85e8eabfbd6e 100644 --- a/sc/source/ui/unoobj/PivotTableDataProvider.cxx +++ b/sc/source/ui/unoobj/PivotTableDataProvider.cxx @@ -864,13 +864,11 @@ uno::Reference< beans::XPropertySetInfo> SAL_CALL void SAL_CALL PivotTableDataProvider::setPropertyValue(const OUString& rPropertyName, const uno::Any& rValue) { - if (rPropertyName == SC_UNONAME_INCLUDEHIDDENCELLS) - { - if (!(rValue >>= m_bIncludeHiddenCells)) - throw lang::IllegalArgumentException(); - } - else + if (rPropertyName != SC_UNONAME_INCLUDEHIDDENCELLS) throw beans::UnknownPropertyException(); + + if (!(rValue >>= m_bIncludeHiddenCells)) + throw lang::IllegalArgumentException(); } uno::Any SAL_CALL PivotTableDataProvider::getPropertyValue(const OUString& rPropertyName) diff --git a/sc/source/ui/unoobj/TablePivotCharts.cxx b/sc/source/ui/unoobj/TablePivotCharts.cxx index 16d260fec458..6369729d772f 100644 --- a/sc/source/ui/unoobj/TablePivotCharts.cxx +++ b/sc/source/ui/unoobj/TablePivotCharts.cxx @@ -217,10 +217,10 @@ uno::Any SAL_CALL TablePivotCharts::getByIndex(sal_Int32 nIndex) throw lang::IndexOutOfBoundsException(); uno::Reference<table::XTablePivotChart> xChart(new TablePivotChart(m_pDocShell, m_nTab, aName)); - if (xChart.is()) - return uno::makeAny(xChart); - else + if (!xChart.is()) throw lang::IndexOutOfBoundsException(); + + return uno::makeAny(xChart); } uno::Type SAL_CALL TablePivotCharts::getElementType() @@ -243,10 +243,10 @@ uno::Any SAL_CALL TablePivotCharts::getByName(OUString const & rName) throw container::NoSuchElementException(); uno::Reference<table::XTablePivotChart> xChart(new TablePivotChart(m_pDocShell, m_nTab, rName)); - if (xChart.is()) - return uno::makeAny(xChart); - else + if (!xChart.is()) throw container::NoSuchElementException(); + + return uno::makeAny(xChart); } uno::Sequence<OUString> SAL_CALL TablePivotCharts::getElementNames() diff --git a/sc/source/ui/unoobj/confuno.cxx b/sc/source/ui/unoobj/confuno.cxx index 1097d48b9f0b..2a730b47b406 100644 --- a/sc/source/ui/unoobj/confuno.cxx +++ b/sc/source/ui/unoobj/confuno.cxx @@ -128,253 +128,250 @@ void SAL_CALL ScDocumentConfiguration::setPropertyValue( { SolarMutexGuard aGuard; - if(pDocShell) - { - ScDocument& rDoc = pDocShell->GetDocument(); - bool bUpdateHeights = false; + if(!pDocShell) + throw uno::RuntimeException(); - ScViewOptions aViewOpt(rDoc.GetViewOptions()); + ScDocument& rDoc = pDocShell->GetDocument(); + bool bUpdateHeights = false; - /*Stampit enable/disable print cancel */ - if ( aPropertyName == SC_UNO_ALLOWPRINTJOBCANCEL ) - pDocShell->Stamp_SetPrintCancelState( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - /*Stampit enable/disable print cancel */ + ScViewOptions aViewOpt(rDoc.GetViewOptions()); + + /*Stampit enable/disable print cancel */ + if ( aPropertyName == SC_UNO_ALLOWPRINTJOBCANCEL ) + pDocShell->Stamp_SetPrintCancelState( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); + /*Stampit enable/disable print cancel */ - else if ( aPropertyName == SC_UNO_SHOWZERO ) - aViewOpt.SetOption(VOPT_NULLVALS, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - else if ( aPropertyName == SC_UNO_SHOWNOTES ) - aViewOpt.SetOption(VOPT_NOTES, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - else if ( aPropertyName == SC_UNO_SHOWGRID ) - aViewOpt.SetOption(VOPT_GRID, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - else if ( aPropertyName == SC_UNO_GRIDCOLOR ) + else if ( aPropertyName == SC_UNO_SHOWZERO ) + aViewOpt.SetOption(VOPT_NULLVALS, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); + else if ( aPropertyName == SC_UNO_SHOWNOTES ) + aViewOpt.SetOption(VOPT_NOTES, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); + else if ( aPropertyName == SC_UNO_SHOWGRID ) + aViewOpt.SetOption(VOPT_GRID, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); + else if ( aPropertyName == SC_UNO_GRIDCOLOR ) + { + sal_Int64 nColor = 0; + if (aValue >>= nColor) { - sal_Int64 nColor = 0; - if (aValue >>= nColor) - { - Color aColor(static_cast<sal_uInt32>(nColor)); - aViewOpt.SetGridColor(aColor, OUString()); - } + Color aColor(static_cast<sal_uInt32>(nColor)); + aViewOpt.SetGridColor(aColor, OUString()); } - else if ( aPropertyName == SC_UNO_SHOWPAGEBR ) - aViewOpt.SetOption(VOPT_PAGEBREAKS, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - else if ( aPropertyName == SC_UNONAME_LINKUPD ) + } + else if ( aPropertyName == SC_UNO_SHOWPAGEBR ) + aViewOpt.SetOption(VOPT_PAGEBREAKS, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); + else if ( aPropertyName == SC_UNONAME_LINKUPD ) + { + // XXX NOTE: this is the css::document::Settings property + // LinkUpdateMode, not the css::sheet::XGlobalSheetSettings + // attribute LinkUpdateMode. + sal_Int16 n; + if (!(aValue >>= n) || n < css::document::LinkUpdateModes::NEVER || + n > css::document::LinkUpdateModes::GLOBAL_SETTING) { - // XXX NOTE: this is the css::document::Settings property - // LinkUpdateMode, not the css::sheet::XGlobalSheetSettings - // attribute LinkUpdateMode. - sal_Int16 n; - if (!(aValue >>= n) || n < css::document::LinkUpdateModes::NEVER || - n > css::document::LinkUpdateModes::GLOBAL_SETTING) - { - throw css::lang::IllegalArgumentException( - ("LinkUpdateMode property value must be a SHORT with a value in" - " the range of the css::document::LinkUpdateModes constants"), - css::uno::Reference<css::uno::XInterface>(), -1); - } - ScLkUpdMode eMode; - switch (n) - { - case css::document::LinkUpdateModes::NEVER: - eMode = LM_NEVER; - break; - case css::document::LinkUpdateModes::MANUAL: - eMode = LM_ON_DEMAND; - break; - case css::document::LinkUpdateModes::AUTO: - eMode = LM_ALWAYS; - break; - case css::document::LinkUpdateModes::GLOBAL_SETTING: - default: - eMode = SC_MOD()->GetAppOptions().GetLinkMode(); - break; - } - rDoc.SetLinkMode( eMode ); + throw css::lang::IllegalArgumentException( + ("LinkUpdateMode property value must be a SHORT with a value in" + " the range of the css::document::LinkUpdateModes constants"), + css::uno::Reference<css::uno::XInterface>(), -1); } - else if ( aPropertyName == SC_UNO_COLROWHDR ) - aViewOpt.SetOption(VOPT_HEADER, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - else if ( aPropertyName == SC_UNO_SHEETTABS ) - aViewOpt.SetOption(VOPT_TABCONTROLS, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - else if ( aPropertyName == SC_UNO_OUTLSYMB ) - aViewOpt.SetOption(VOPT_OUTLINER, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - else if ( aPropertyName == SC_UNO_AUTOCALC ) - rDoc.SetAutoCalc( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - else if ( aPropertyName == SC_UNO_PRINTERNAME ) + ScLkUpdMode eMode; + switch (n) { - OUString sPrinterName; - if ( aValue >>= sPrinterName ) - { - // #i75610# if the name is empty, do nothing (don't create any printer) - if ( !sPrinterName.isEmpty() && pDocShell->GetCreateMode() != SfxObjectCreateMode::EMBEDDED ) - { - SfxPrinter* pPrinter = pDocShell->GetPrinter(); - if (pPrinter) - { - if (pPrinter->GetName() != sPrinterName) - { - VclPtrInstance<SfxPrinter> pNewPrinter( std::unique_ptr<SfxItemSet>(pPrinter->GetOptions().Clone()), sPrinterName ); - if (pNewPrinter->IsKnown()) - pDocShell->SetPrinter( pNewPrinter, SfxPrinterChangeFlags::PRINTER ); - else - pNewPrinter.disposeAndClear(); - } - } - else - throw uno::RuntimeException(); - } - } - else - throw lang::IllegalArgumentException(); + case css::document::LinkUpdateModes::NEVER: + eMode = LM_NEVER; + break; + case css::document::LinkUpdateModes::MANUAL: + eMode = LM_ON_DEMAND; + break; + case css::document::LinkUpdateModes::AUTO: + eMode = LM_ALWAYS; + break; + case css::document::LinkUpdateModes::GLOBAL_SETTING: + default: + eMode = SC_MOD()->GetAppOptions().GetLinkMode(); + break; } - else if ( aPropertyName == SC_UNO_PRINTERSETUP ) + rDoc.SetLinkMode( eMode ); + } + else if ( aPropertyName == SC_UNO_COLROWHDR ) + aViewOpt.SetOption(VOPT_HEADER, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); + else if ( aPropertyName == SC_UNO_SHEETTABS ) + aViewOpt.SetOption(VOPT_TABCONTROLS, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); + else if ( aPropertyName == SC_UNO_OUTLSYMB ) + aViewOpt.SetOption(VOPT_OUTLINER, ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); + else if ( aPropertyName == SC_UNO_AUTOCALC ) + rDoc.SetAutoCalc( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); + else if ( aPropertyName == SC_UNO_PRINTERNAME ) + { + OUString sPrinterName; + if ( !(aValue >>= sPrinterName) ) + throw lang::IllegalArgumentException(); + + // #i75610# if the name is empty, do nothing (don't create any printer) + if ( !sPrinterName.isEmpty() && pDocShell->GetCreateMode() != SfxObjectCreateMode::EMBEDDED ) { - uno::Sequence<sal_Int8> aSequence; - if ( aValue >>= aSequence ) + SfxPrinter* pPrinter = pDocShell->GetPrinter(); + if (!pPrinter) + throw uno::RuntimeException(); + + if (pPrinter->GetName() != sPrinterName) { - sal_uInt32 nSize = aSequence.getLength(); - // #i75610# if the sequence is empty, do nothing (don't create any printer) - if ( nSize != 0 ) - { - SvMemoryStream aStream (aSequence.getArray(), nSize, StreamMode::READ ); - aStream.Seek ( STREAM_SEEK_TO_BEGIN ); - auto pSet = o3tl::make_unique<SfxItemSet>( *rDoc.GetPool(), - svl::Items<SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN, - SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC, - SID_PRINT_SELECTEDSHEET, SID_PRINT_SELECTEDSHEET, - SID_SCPRINTOPTIONS, SID_SCPRINTOPTIONS>{} ); - pDocShell->SetPrinter( SfxPrinter::Create( aStream, std::move(pSet) ) ); - } + VclPtrInstance<SfxPrinter> pNewPrinter( std::unique_ptr<SfxItemSet>(pPrinter->GetOptions().Clone()), sPrinterName ); + if (pNewPrinter->IsKnown()) + pDocShell->SetPrinter( pNewPrinter, SfxPrinterChangeFlags::PRINTER ); + else + pNewPrinter.disposeAndClear(); } + } - else if ( aPropertyName == SC_UNO_APPLYDOCINF ) - { - bool bTmp=true; - if ( aValue >>= bTmp ) - pDocShell->SetUseUserData( bTmp ); - } - else if ( aPropertyName == SC_UNO_FORBIDDEN ) - { - // read-only - should not be set - } - else if ( aPropertyName == SC_UNO_CHARCOMP ) - { - // Int16 contains CharacterCompressionType values - sal_Int16 nUno = ScUnoHelpFunctions::GetInt16FromAny( aValue ); - rDoc.SetAsianCompression( (CharCompressType) nUno ); - bUpdateHeights = true; - } - else if ( aPropertyName == SC_UNO_ASIANKERN ) - { - rDoc.SetAsianKerning( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - bUpdateHeights = true; - } - else if ( aPropertyName == SCSAVEVERSION ) - { - bool bTmp=false; - if ( aValue >>= bTmp ) - pDocShell->SetSaveVersionOnClose( bTmp ); - } - else if ( aPropertyName == SC_UNO_UPDTEMPL ) - { - bool bTmp=true; - if ( aValue >>= bTmp ) - pDocShell->SetQueryLoadTemplate( bTmp ); - } - else if ( aPropertyName == SC_UNO_LOADREADONLY ) - { - bool bTmp=false; - if ( aValue >>= bTmp ) - pDocShell->SetLoadReadonly( bTmp ); - } - else if ( aPropertyName == SC_UNO_SHAREDOC ) + + } + else if ( aPropertyName == SC_UNO_PRINTERSETUP ) + { + uno::Sequence<sal_Int8> aSequence; + if ( aValue >>= aSequence ) { -#if HAVE_FEATURE_MULTIUSER_ENVIRONMENT - bool bDocShared = false; - if ( aValue >>= bDocShared ) + sal_uInt32 nSize = aSequence.getLength(); + // #i75610# if the sequence is empty, do nothing (don't create any printer) + if ( nSize != 0 ) { - pDocShell->SetSharedXMLFlag( bDocShared ); + SvMemoryStream aStream (aSequence.getArray(), nSize, StreamMode::READ ); + aStream.Seek ( STREAM_SEEK_TO_BEGIN ); + auto pSet = o3tl::make_unique<SfxItemSet>( *rDoc.GetPool(), + svl::Items<SID_PRINTER_NOTFOUND_WARN, SID_PRINTER_NOTFOUND_WARN, + SID_PRINTER_CHANGESTODOC, SID_PRINTER_CHANGESTODOC, + SID_PRINT_SELECTEDSHEET, SID_PRINT_SELECTEDSHEET, + SID_SCPRINTOPTIONS, SID_SCPRINTOPTIONS>{} ); + pDocShell->SetPrinter( SfxPrinter::Create( aStream, std::move(pSet) ) ); } -#endif } - else if ( aPropertyName == SC_UNO_MODIFYPASSWORDINFO ) + } + else if ( aPropertyName == SC_UNO_APPLYDOCINF ) + { + bool bTmp=true; + if ( aValue >>= bTmp ) + pDocShell->SetUseUserData( bTmp ); + } + else if ( aPropertyName == SC_UNO_FORBIDDEN ) + { + // read-only - should not be set + } + else if ( aPropertyName == SC_UNO_CHARCOMP ) + { + // Int16 contains CharacterCompressionType values + sal_Int16 nUno = ScUnoHelpFunctions::GetInt16FromAny( aValue ); + rDoc.SetAsianCompression( (CharCompressType) nUno ); + bUpdateHeights = true; + } + else if ( aPropertyName == SC_UNO_ASIANKERN ) + { + rDoc.SetAsianKerning( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); + bUpdateHeights = true; + } + else if ( aPropertyName == SCSAVEVERSION ) + { + bool bTmp=false; + if ( aValue >>= bTmp ) + pDocShell->SetSaveVersionOnClose( bTmp ); + } + else if ( aPropertyName == SC_UNO_UPDTEMPL ) + { + bool bTmp=true; + if ( aValue >>= bTmp ) + pDocShell->SetQueryLoadTemplate( bTmp ); + } + else if ( aPropertyName == SC_UNO_LOADREADONLY ) + { + bool bTmp=false; + if ( aValue >>= bTmp ) + pDocShell->SetLoadReadonly( bTmp ); + } + else if ( aPropertyName == SC_UNO_SHAREDOC ) + { +#if HAVE_FEATURE_MULTIUSER_ENVIRONMENT + bool bDocShared = false; + if ( aValue >>= bDocShared ) { - uno::Sequence< beans::PropertyValue > aInfo; - if ( !( aValue >>= aInfo ) ) - throw lang::IllegalArgumentException( - "Value of type Sequence<PropertyValue> expected!", - uno::Reference< uno::XInterface >(), - 2 ); - - if ( !pDocShell->SetModifyPasswordInfo( aInfo ) ) - throw beans::PropertyVetoException( - "The hash is not allowed to be changed now!" ); + pDocShell->SetSharedXMLFlag( bDocShared ); } - else if ( aPropertyName == SC_UNO_EMBED_FONTS ) +#endif + } + else if ( aPropertyName == SC_UNO_MODIFYPASSWORDINFO ) + { + uno::Sequence< beans::PropertyValue > aInfo; + if ( !( aValue >>= aInfo ) ) + throw lang::IllegalArgumentException( + "Value of type Sequence<PropertyValue> expected!", + uno::Reference< uno::XInterface >(), + 2 ); + + if ( !pDocShell->SetModifyPasswordInfo( aInfo ) ) + throw beans::PropertyVetoException( + "The hash is not allowed to be changed now!" ); + } + else if ( aPropertyName == SC_UNO_EMBED_FONTS ) + { + bool bVal = false; + if ( aValue >>=bVal ) { - bool bVal = false; - if ( aValue >>=bVal ) - { - rDoc.SetIsUsingEmbededFonts(bVal); - } + rDoc.SetIsUsingEmbededFonts(bVal); } - else if ( aPropertyName == SC_UNO_SYNTAXSTRINGREF ) - { - ScCalcConfig aCalcConfig = rDoc.GetCalcConfig(); - sal_Int16 nUno = 0; + } + else if ( aPropertyName == SC_UNO_SYNTAXSTRINGREF ) + { + ScCalcConfig aCalcConfig = rDoc.GetCalcConfig(); + sal_Int16 nUno = 0; - if( aValue >>= nUno ) + if( aValue >>= nUno ) + { + switch (nUno) { - switch (nUno) - { - case 0: // CONV_OOO - case 2: // CONV_XL_A1 - case 3: // CONV_XL_R1C1 - case 7: // CONV_A1_XL_A1 - aCalcConfig.SetStringRefSyntax( static_cast<formula::FormulaGrammar::AddressConvention>( nUno ) ); - break; - default: - aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_UNSPECIFIED ); - break; + case 0: // CONV_OOO + case 2: // CONV_XL_A1 + case 3: // CONV_XL_R1C1 + case 7: // CONV_A1_XL_A1 + aCalcConfig.SetStringRefSyntax( static_cast<formula::FormulaGrammar::AddressConvention>( nUno ) ); + break; + default: + aCalcConfig.SetStringRefSyntax( formula::FormulaGrammar::CONV_UNSPECIFIED ); + break; - } - rDoc.SetCalcConfig( aCalcConfig ); } + rDoc.SetCalcConfig( aCalcConfig ); } + } + else + { + ScGridOptions aGridOpt(aViewOpt.GetGridOptions()); + if ( aPropertyName == SC_UNO_SNAPTORASTER ) + aGridOpt.SetUseGridSnap( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); + else if ( aPropertyName == SC_UNO_RASTERVIS ) + aGridOpt.SetGridVisible( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); + else if ( aPropertyName == SC_UNO_RASTERRESX ) + aGridOpt.SetFieldDrawX( static_cast <sal_uInt32> ( ScUnoHelpFunctions::GetInt32FromAny( aValue ) ) ); + else if ( aPropertyName == SC_UNO_RASTERRESY ) + aGridOpt.SetFieldDrawY( static_cast <sal_uInt32> ( ScUnoHelpFunctions::GetInt32FromAny( aValue ) ) ); + else if ( aPropertyName == SC_UNO_RASTERSUBX ) + aGridOpt.SetFieldDivisionX( static_cast <sal_uInt32> ( ScUnoHelpFunctions::GetInt32FromAny( aValue ) ) ); + else if ( aPropertyName == SC_UNO_RASTERSUBY ) + aGridOpt.SetFieldDivisionY( static_cast <sal_uInt32> ( ScUnoHelpFunctions::GetInt32FromAny( aValue ) ) ); + else if ( aPropertyName == SC_UNO_RASTERSYNC ) + aGridOpt.SetSynchronize( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); else - { - ScGridOptions aGridOpt(aViewOpt.GetGridOptions()); - if ( aPropertyName == SC_UNO_SNAPTORASTER ) - aGridOpt.SetUseGridSnap( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - else if ( aPropertyName == SC_UNO_RASTERVIS ) - aGridOpt.SetGridVisible( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - else if ( aPropertyName == SC_UNO_RASTERRESX ) - aGridOpt.SetFieldDrawX( static_cast <sal_uInt32> ( ScUnoHelpFunctions::GetInt32FromAny( aValue ) ) ); - else if ( aPropertyName == SC_UNO_RASTERRESY ) - aGridOpt.SetFieldDrawY( static_cast <sal_uInt32> ( ScUnoHelpFunctions::GetInt32FromAny( aValue ) ) ); - else if ( aPropertyName == SC_UNO_RASTERSUBX ) - aGridOpt.SetFieldDivisionX( static_cast <sal_uInt32> ( ScUnoHelpFunctions::GetInt32FromAny( aValue ) ) ); - else if ( aPropertyName == SC_UNO_RASTERSUBY ) - aGridOpt.SetFieldDivisionY( static_cast <sal_uInt32> ( ScUnoHelpFunctions::GetInt32FromAny( aValue ) ) ); - else if ( aPropertyName == SC_UNO_RASTERSYNC ) - aGridOpt.SetSynchronize( ScUnoHelpFunctions::GetBoolFromAny( aValue ) ); - else - throw beans::UnknownPropertyException(); - aViewOpt.SetGridOptions(aGridOpt); - } - rDoc.SetViewOptions(aViewOpt); + throw beans::UnknownPropertyException(); + aViewOpt.SetGridOptions(aGridOpt); + } + rDoc.SetViewOptions(aViewOpt); - if ( bUpdateHeights && !rDoc.IsImportingXML() ) - { - // update automatic row heights and repaint - SCTAB nTabCount = rDoc.GetTableCount(); - for (SCTAB nTab=0; nTab<nTabCount; nTab++) - if ( !pDocShell->AdjustRowHeight( 0, MAXROW, nTab ) ) - pDocShell->PostPaint(ScRange(0, 0, nTab, MAXCOL, MAXROW, nTab), PaintPartFlags::Grid); - pDocShell->SetDocumentModified(); - } + if ( bUpdateHeights && !rDoc.IsImportingXML() ) + { + // update automatic row heights and repaint + SCTAB nTabCount = rDoc.GetTableCount(); + for (SCTAB nTab=0; nTab<nTabCount; nTab++) + if ( !pDocShell->AdjustRowHeight( 0, MAXROW, nTab ) ) + pDocShell->PostPaint(ScRange(0, 0, nTab, MAXCOL, MAXROW, nTab), PaintPartFlags::Grid); + pDocShell->SetDocumentModified(); } - else - throw uno::RuntimeException(); + } uno::Any SAL_CALL ScDocumentConfiguration::getPropertyValue( const OUString& aPropertyName ) @@ -382,179 +379,178 @@ uno::Any SAL_CALL ScDocumentConfiguration::getPropertyValue( const OUString& aPr SolarMutexGuard aGuard; uno::Any aRet; - if(pDocShell) - { - ScDocument& rDoc = pDocShell->GetDocument(); - const ScViewOptions& aViewOpt = rDoc.GetViewOptions(); - - /*Stampit enable/disable print cancel */ - if ( aPropertyName == SC_UNO_ALLOWPRINTJOBCANCEL ) - aRet <<= pDocShell->Stamp_GetPrintCancelState(); - /*Stampit enable/disable print cancel */ + if(!pDocShell) + throw uno::RuntimeException(); - else if ( aPropertyName == SC_UNO_SHOWZERO ) - aRet <<= aViewOpt.GetOption( VOPT_NULLVALS ); - else if ( aPropertyName == SC_UNO_SHOWNOTES ) - aRet <<= aViewOpt.GetOption( VOPT_NOTES ); - else if ( aPropertyName == SC_UNO_SHOWGRID ) - aRet <<= aViewOpt.GetOption( VOPT_GRID ); - else if ( aPropertyName == SC_UNO_GRIDCOLOR ) - { - OUString aColorName; - Color aColor = aViewOpt.GetGridColor(&aColorName); - aRet <<= static_cast<sal_Int64>(aColor.GetColor()); - } - else if ( aPropertyName == SC_UNO_SHOWPAGEBR ) - aRet <<= aViewOpt.GetOption( VOPT_PAGEBREAKS ); - else if ( aPropertyName == SC_UNONAME_LINKUPD ) - { - sal_Int16 nLUM; - switch (rDoc.GetLinkMode()) - { - case LM_ALWAYS: - nLUM = css::document::LinkUpdateModes::AUTO; - break; - case LM_NEVER: - nLUM = css::document::LinkUpdateModes::NEVER; - break; - case LM_ON_DEMAND: - nLUM = css::document::LinkUpdateModes::MANUAL; - break; - case LM_UNKNOWN: - default: - nLUM = css::document::LinkUpdateModes::GLOBAL_SETTING; - break; - } - aRet <<= nLUM; - } - else if ( aPropertyName == SC_UNO_COLROWHDR ) - aRet <<= aViewOpt.GetOption( VOPT_HEADER ); - else if ( aPropertyName == SC_UNO_SHEETTABS ) - aRet <<= aViewOpt.GetOption( VOPT_TABCONTROLS ); - else if ( aPropertyName == SC_UNO_OUTLSYMB ) - aRet <<= aViewOpt.GetOption( VOPT_OUTLINER ); - else if ( aPropertyName == SC_UNO_AUTOCALC ) - aRet <<= rDoc.GetAutoCalc(); - else if ( aPropertyName == SC_UNO_PRINTERNAME ) - { - // #i75610# don't create the printer, return empty string if no printer created yet - // (as in SwXDocumentSettings) - SfxPrinter* pPrinter = rDoc.GetPrinter( false ); - if (pPrinter) - aRet <<= pPrinter->GetName(); - else - aRet <<= OUString(); - } - else if ( aPropertyName == SC_UNO_PRINTERSETUP ) + ScDocument& rDoc = pDocShell->GetDocument(); + const ScViewOptions& aViewOpt = rDoc.GetViewOptions(); + + /*Stampit enable/disable print cancel */ + if ( aPropertyName == SC_UNO_ALLOWPRINTJOBCANCEL ) + aRet <<= pDocShell->Stamp_GetPrintCancelState(); + /*Stampit enable/disable print cancel */ + + else if ( aPropertyName == SC_UNO_SHOWZERO ) + aRet <<= aViewOpt.GetOption( VOPT_NULLVALS ); + else if ( aPropertyName == SC_UNO_SHOWNOTES ) + aRet <<= aViewOpt.GetOption( VOPT_NOTES ); + else if ( aPropertyName == SC_UNO_SHOWGRID ) + aRet <<= aViewOpt.GetOption( VOPT_GRID ); + else if ( aPropertyName == SC_UNO_GRIDCOLOR ) + { + OUString aColorName; + Color aColor = aViewOpt.GetGridColor(&aColorName); + aRet <<= static_cast<sal_Int64>(aColor.GetColor()); + } + else if ( aPropertyName == SC_UNO_SHOWPAGEBR ) + aRet <<= aViewOpt.GetOption( VOPT_PAGEBREAKS ); + else if ( aPropertyName == SC_UNONAME_LINKUPD ) + { + sal_Int16 nLUM; + switch (rDoc.GetLinkMode()) { - // #i75610# don't create the printer, return empty sequence if no printer created yet - // (as in SwXDocumentSettings) - SfxPrinter* pPrinter = rDoc.GetPrinter( false ); - if (pPrinter) - { - SvMemoryStream aStream; - pPrinter->Store( aStream ); - aStream.Seek ( STREAM_SEEK_TO_END ); - sal_uInt32 nSize = aStream.Tell(); - aStream.Seek ( STREAM_SEEK_TO_BEGIN ); - uno::Sequence < sal_Int8 > aSequence( nSize ); - aStream.ReadBytes(aSequence.getArray(), nSize); - aRet <<= aSequence; - } - else - aRet <<= uno::Sequence<sal_Int8>(); + case LM_ALWAYS: + nLUM = css::document::LinkUpdateModes::AUTO; + break; + case LM_NEVER: + nLUM = css::document::LinkUpdateModes::NEVER; + break; + case LM_ON_DEMAND: + nLUM = css::document::LinkUpdateModes::MANUAL; + break; + case LM_UNKNOWN: + default: + nLUM = css::document::LinkUpdateModes::GLOBAL_SETTING; + break; } - else if ( aPropertyName == SC_UNO_APPLYDOCINF ) - aRet <<= pDocShell->IsUseUserData(); - else if ( aPropertyName == SC_UNO_FORBIDDEN ) + aRet <<= nLUM; + } + else if ( aPropertyName == SC_UNO_COLROWHDR ) + aRet <<= aViewOpt.GetOption( VOPT_HEADER ); + else if ( aPropertyName == SC_UNO_SHEETTABS ) + aRet <<= aViewOpt.GetOption( VOPT_TABCONTROLS ); + else if ( aPropertyName == SC_UNO_OUTLSYMB ) + aRet <<= aViewOpt.GetOption( VOPT_OUTLINER ); + else if ( aPropertyName == SC_UNO_AUTOCALC ) + aRet <<= rDoc.GetAutoCalc(); + else if ( aPropertyName == SC_UNO_PRINTERNAME ) + { + // #i75610# don't create the printer, return empty string if no printer created yet + // (as in SwXDocumentSettings) + SfxPrinter* pPrinter = rDoc.GetPrinter( false ); + if (pPrinter) + aRet <<= pPrinter->GetName(); + else + aRet <<= OUString(); + } + else if ( aPropertyName == SC_UNO_PRINTERSETUP ) + { + // #i75610# don't create the printer, return empty sequence if no printer created yet + // (as in SwXDocumentSettings) + SfxPrinter* pPrinter = rDoc.GetPrinter( false ); + if (pPrinter) { - aRet <<= uno::Reference<i18n::XForbiddenCharacters>(new ScForbiddenCharsObj( pDocShell )); + SvMemoryStream aStream; + pPrinter->Store( aStream ); + aStream.Seek ( STREAM_SEEK_TO_END ); + sal_uInt32 nSize = aStream.Tell(); + aStream.Seek ( STREAM_SEEK_TO_BEGIN ); + uno::Sequence < sal_Int8 > aSequence( nSize ); + aStream.ReadBytes(aSequence.getArray(), nSize); + aRet <<= aSequence; } - else if ( aPropertyName == SC_UNO_CHARCOMP ) - aRet <<= static_cast<sal_Int16> ( rDoc.GetAsianCompression() ); - else if ( aPropertyName == SC_UNO_ASIANKERN ) - aRet <<= rDoc.GetAsianKerning(); - else if ( aPropertyName == SCSAVEVERSION ) - aRet <<= pDocShell->IsSaveVersionOnClose(); - else if ( aPropertyName == SC_UNO_UPDTEMPL ) - aRet <<= pDocShell->IsQueryLoadTemplate(); - else if ( aPropertyName == SC_UNO_LOADREADONLY ) - aRet <<= pDocShell->IsLoadReadonly(); - else if ( aPropertyName == SC_UNO_SHAREDOC ) - { + else + aRet <<= uno::Sequence<sal_Int8>(); + } + else if ( aPropertyName == SC_UNO_APPLYDOCINF ) + aRet <<= pDocShell->IsUseUserData(); + else if ( aPropertyName == SC_UNO_FORBIDDEN ) + { + aRet <<= uno::Reference<i18n::XForbiddenCharacters>(new ScForbiddenCharsObj( pDocShell )); + } + else if ( aPropertyName == SC_UNO_CHARCOMP ) + aRet <<= static_cast<sal_Int16> ( rDoc.GetAsianCompression() ); + else if ( aPropertyName == SC_UNO_ASIANKERN ) + aRet <<= rDoc.GetAsianKerning(); + else if ( aPropertyName == SCSAVEVERSION ) + aRet <<= pDocShell->IsSaveVersionOnClose(); + else if ( aPropertyName == SC_UNO_UPDTEMPL ) + aRet <<= pDocShell->IsQueryLoadTemplate(); + else if ( aPropertyName == SC_UNO_LOADREADONLY ) + aRet <<= pDocShell->IsLoadReadonly(); + else if ( aPropertyName == SC_UNO_SHAREDOC ) + { #if HAVE_FEATURE_MULTIUSER_ENVIRONMENT - aRet <<= pDocShell->HasSharedXMLFlagSet(); + aRet <<= pDocShell->HasSharedXMLFlagSet(); #endif - } - else if ( aPropertyName == SC_UNO_MODIFYPASSWORDINFO ) - aRet <<= pDocShell->GetModifyPasswordInfo(); - else if ( aPropertyName == SC_UNO_EMBED_FONTS ) + } + else if ( aPropertyName == SC_UNO_MODIFYPASSWORDINFO ) + aRet <<= pDocShell->GetModifyPasswordInfo(); + else if ( aPropertyName == SC_UNO_EMBED_FONTS ) + { + aRet <<= rDoc.IsUsingEmbededFonts(); + } + else if ( aPropertyName == SC_UNO_SYNTAXSTRINGREF ) + { + ScCalcConfig aCalcConfig = rDoc.GetCalcConfig(); + formula::FormulaGrammar::AddressConvention eConv = aCalcConfig.meStringRefAddressSyntax; + + // don't save "unspecified" string ref syntax ... query formula grammar + // and save that instead + if( eConv == formula::FormulaGrammar::CONV_UNSPECIFIED) { - aRet <<= rDoc.IsUsingEmbededFonts(); + eConv = rDoc.GetAddressConvention(); } - else if ( aPropertyName == SC_UNO_SYNTAXSTRINGREF ) - { - ScCalcConfig aCalcConfig = rDoc.GetCalcConfig(); - formula::FormulaGrammar::AddressConvention eConv = aCalcConfig.meStringRefAddressSyntax; - // don't save "unspecified" string ref syntax ... query formula grammar - // and save that instead - if( eConv == formula::FormulaGrammar::CONV_UNSPECIFIED) - { - eConv = rDoc.GetAddressConvention(); - } - - // write if it has been read|imported or explicitly changed - // or if ref syntax isn't what would be native for our file format - // i.e. CalcA1 in this case - if ( aCalcConfig.mbHasStringRefSyntax || - (eConv != formula::FormulaGrammar::CONV_OOO) ) + // write if it has been read|imported or explicitly changed + // or if ref syntax isn't what would be native for our file format + // i.e. CalcA1 in this case + if ( aCalcConfig.mbHasStringRefSyntax || + (eConv != formula::FormulaGrammar::CONV_OOO) ) + { + switch (eConv) { - switch (eConv) + case formula::FormulaGrammar::CONV_OOO: + case formula::FormulaGrammar::CONV_XL_A1: + case formula::FormulaGrammar::CONV_XL_R1C1: + case formula::FormulaGrammar::CONV_A1_XL_A1: + aRet <<= static_cast<sal_Int16>( eConv ); + break; + + case formula::FormulaGrammar::CONV_UNSPECIFIED: + case formula::FormulaGrammar::CONV_ODF: + case formula::FormulaGrammar::CONV_XL_OOX: + case formula::FormulaGrammar::CONV_LOTUS_A1: + case formula::FormulaGrammar::CONV_LAST: { - case formula::FormulaGrammar::CONV_OOO: - case formula::FormulaGrammar::CONV_XL_A1: - case formula::FormulaGrammar::CONV_XL_R1C1: - case formula::FormulaGrammar::CONV_A1_XL_A1: - aRet <<= static_cast<sal_Int16>( eConv ); - break; - - case formula::FormulaGrammar::CONV_UNSPECIFIED: - case formula::FormulaGrammar::CONV_ODF: - case formula::FormulaGrammar::CONV_XL_OOX: - case formula::FormulaGrammar::CONV_LOTUS_A1: - case formula::FormulaGrammar::CONV_LAST: - { - aRet <<= sal_Int16(9999); - break; - } - } + aRet <<= sal_Int16(9999); + break; + } } - } + } + } + else + { + const ScGridOptions& aGridOpt = aViewOpt.GetGridOptions(); + if ( aPropertyName == SC_UNO_SNAPTORASTER ) + aRet <<= aGridOpt.GetUseGridSnap(); + else if ( aPropertyName == SC_UNO_RASTERVIS ) + aRet <<= aGridOpt.GetGridVisible(); + else if ( aPropertyName == SC_UNO_RASTERRESX ) + aRet <<= static_cast<sal_Int32> ( aGridOpt.GetFieldDrawX() ); + else if ( aPropertyName == SC_UNO_RASTERRESY ) + aRet <<= static_cast<sal_Int32> ( aGridOpt.GetFieldDrawY() ); + else if ( aPropertyName == SC_UNO_RASTERSUBX ) + aRet <<= static_cast<sal_Int32> ( aGridOpt.GetFieldDivisionX() ); + else if ( aPropertyName == SC_UNO_RASTERSUBY ) + aRet <<= static_cast<sal_Int32> ( aGridOpt.GetFieldDivisionY() ); + else if ( aPropertyName == SC_UNO_RASTERSYNC ) + aRet <<= aGridOpt.GetSynchronize(); else - { - const ScGridOptions& aGridOpt = aViewOpt.GetGridOptions(); - if ( aPropertyName == SC_UNO_SNAPTORASTER ) - aRet <<= aGridOpt.GetUseGridSnap(); - else if ( aPropertyName == SC_UNO_RASTERVIS ) - aRet <<= aGridOpt.GetGridVisible(); - else if ( aPropertyName == SC_UNO_RASTERRESX ) - aRet <<= static_cast<sal_Int32> ( aGridOpt.GetFieldDrawX() ); - else if ( aPropertyName == SC_UNO_RASTERRESY ) - aRet <<= static_cast<sal_Int32> ( aGridOpt.GetFieldDrawY() ); - else if ( aPropertyName == SC_UNO_RASTERSUBX ) - aRet <<= static_cast<sal_Int32> ( aGridOpt.GetFieldDivisionX() ); - else if ( aPropertyName == SC_UNO_RASTERSUBY ) - aRet <<= static_cast<sal_Int32> ( aGridOpt.GetFieldDivisionY() ); - else if ( aPropertyName == SC_UNO_RASTERSYNC ) - aRet <<= aGridOpt.GetSynchronize(); - else - throw beans::UnknownPropertyException(); - } + throw beans::UnknownPropertyException(); } - else - throw uno::RuntimeException(); + return aRet; } diff --git a/sc/source/ui/unoobj/datauno.cxx b/sc/source/ui/unoobj/datauno.cxx index 646dd5fae664..f9f79add95d7 100644 --- a/sc/source/ui/unoobj/datauno.cxx +++ b/sc/source/ui/unoobj/datauno.cxx @@ -2357,19 +2357,17 @@ void ScUnnamedDatabaseRangesObj::setByTable( const table::CellRangeAddress& aRan uno::Any ScUnnamedDatabaseRangesObj::getByTable( sal_Int32 nTab ) { SolarMutexGuard aGuard; - if (pDocShell) - { - if ( pDocShell->GetDocument().GetTableCount() <= nTab ) - throw lang::IndexOutOfBoundsException(); - uno::Reference<sheet::XDatabaseRange> xRange( - new ScDatabaseRangeObj(pDocShell, static_cast<SCTAB>(nTab))); - if (xRange.is()) - return uno::makeAny(xRange); - else - throw container::NoSuchElementException(); - } - else + if (!pDocShell) throw uno::RuntimeException(); + + if ( pDocShell->GetDocument().GetTableCount() <= nTab ) + throw lang::IndexOutOfBoundsException(); + uno::Reference<sheet::XDatabaseRange> xRange( + new ScDatabaseRangeObj(pDocShell, static_cast<SCTAB>(nTab))); + if (!xRange.is()) + throw container::NoSuchElementException(); + + return uno::makeAny(xRange); } sal_Bool ScUnnamedDatabaseRangesObj::hasByTable( sal_Int32 nTab ) diff --git a/sc/source/ui/unoobj/docuno.cxx b/sc/source/ui/unoobj/docuno.cxx index c985cb5b61aa..629b2c6816e3 100644 --- a/sc/source/ui/unoobj/docuno.cxx +++ b/sc/source/ui/unoobj/docuno.cxx @@ -3568,24 +3568,21 @@ uno::Sequence < uno::Reference< table::XCellRange > > SAL_CALL ScTableSheetsObj: ScRangeList aRangeList; ScDocument& rDoc = pDocShell->GetDocument(); - if (ScRangeStringConverter::GetRangeListFromString( aRangeList, aRange, &rDoc, ::formula::FormulaGrammar::CONV_OOO, ';' )) + if (!ScRangeStringConverter::GetRangeListFromString( aRangeList, aRange, &rDoc, ::formula::FormulaGrammar::CONV_OOO, ';' )) + throw lang::IllegalArgumentException(); + + size_t nCount = aRangeList.size(); + if (!nCount) + throw lang::IllegalArgumentException(); + + xRet.realloc(nCount); + for( size_t nIndex = 0; nIndex < nCount; nIndex++ ) { - size_t nCount = aRangeList.size(); - if (nCount) - { - xRet.realloc(nCount); - for( size_t nIndex = 0; nIndex < nCount; nIndex++ ) - { - const ScRange* pRange = aRangeList[ nIndex ]; - if( pRange ) - xRet[nIndex] = new ScCellRangeObj(pDocShell, *pRange); - } - } - else - throw lang::IllegalArgumentException(); + const ScRange* pRange = aRangeList[ nIndex ]; + if( pRange ) + xRet[nIndex] = new ScCellRangeObj(pDocShell, *pRange); } - else - throw lang::IllegalArgumentException(); + return xRet; } diff --git a/sc/source/ui/unoobj/fmtuno.cxx b/sc/source/ui/unoobj/fmtuno.cxx index 1187454cab57..45cd9a418107 100644 --- a/sc/source/ui/unoobj/fmtuno.cxx +++ b/sc/source/ui/unoobj/fmtuno.cxx @@ -375,10 +375,10 @@ uno::Any SAL_CALL ScTableConditionalFormat::getByIndex( sal_Int32 nIndex ) { SolarMutexGuard aGuard; uno::Reference<sheet::XSheetConditionalEntry> xEntry(GetObjectByIndex_Impl((sal_uInt16)nIndex)); - if (xEntry.is()) - return uno::makeAny(xEntry); - else + if (!xEntry.is()) throw lang::IndexOutOfBoundsException(); + + return uno::makeAny(xEntry); } uno::Type SAL_CALL ScTableConditionalFormat::getElementType() @@ -416,10 +416,10 @@ uno::Any SAL_CALL ScTableConditionalFormat::getByName( const OUString& aName ) break; } - if (xEntry.is()) - return uno::makeAny(xEntry); - else + if (!xEntry.is()) throw container::NoSuchElementException(); + + return uno::makeAny(xEntry); } uno::Sequence<OUString> SAL_CALL ScTableConditionalFormat::getElementNames() diff --git a/sc/source/ui/unoobj/linkuno.cxx b/sc/source/ui/unoobj/linkuno.cxx index 64892b6a6bc9..ad0da525309d 100644 --- a/sc/source/ui/unoobj/linkuno.cxx +++ b/sc/source/ui/unoobj/linkuno.cxx @@ -470,10 +470,10 @@ uno::Any SAL_CALL ScSheetLinksObj::getByIndex( sal_Int32 nIndex ) { SolarMutexGuard aGuard; uno::Reference<beans::XPropertySet> xLink(GetObjectByIndex_Impl(nIndex)); - if (xLink.is()) - return uno::makeAny(xLink); - else + if (!xLink.is()) throw lang::IndexOutOfBoundsException(); + + return uno::makeAny(xLink); } uno::Type SAL_CALL ScSheetLinksObj::getElementType() @@ -492,11 +492,10 @@ uno::Any SAL_CALL ScSheetLinksObj::getByName( const OUString& aName ) { SolarMutexGuard aGuard; uno::Reference<beans::XPropertySet> xLink(GetObjectByName_Impl(aName)); - if (xLink.is()) - return uno::makeAny(xLink); - else + if (!xLink.is()) throw container::NoSuchElementException(); -// return uno::Any(); + + return uno::makeAny(xLink); } sal_Bool SAL_CALL ScSheetLinksObj::hasByName( const OUString& aName ) @@ -974,10 +973,11 @@ uno::Any SAL_CALL ScAreaLinksObj::getByIndex( sal_Int32 nIndex ) { SolarMutexGuard aGuard; uno::Reference<sheet::XAreaLink> xLink(GetObjectByIndex_Impl(nIndex)); - if (xLink.is()) - return uno::makeAny(xLink); - else + if (!xLink.is()) throw lang::IndexOutOfBoundsException(); + + return uno::makeAny(xLink); + } uno::Type SAL_CALL ScAreaLinksObj::getElementType() @@ -1264,10 +1264,10 @@ uno::Any SAL_CALL ScDDELinksObj::getByIndex( sal_Int32 nIndex ) { SolarMutexGuard aGuard; uno::Reference<sheet::XDDELink> xLink(GetObjectByIndex_Impl(nIndex)); - if (xLink.is()) - return uno::makeAny(xLink); - else + if (!xLink.is()) throw lang::IndexOutOfBoundsException(); + + return uno::makeAny(xLink); } uno::Type SAL_CALL ScDDELinksObj::getElementType() @@ -1286,10 +1286,10 @@ uno::Any SAL_CALL ScDDELinksObj::getByName( const OUString& aName ) { SolarMutexGuard aGuard; uno::Reference<sheet::XDDELink> xLink(GetObjectByName_Impl(aName)); - if (xLink.is()) - return uno::makeAny(xLink); - else + if (!xLink.is()) throw container::NoSuchElementException(); + + return uno::makeAny(xLink); } uno::Sequence<OUString> SAL_CALL ScDDELinksObj::getElementNames() diff --git a/sc/source/ui/unoobj/nameuno.cxx b/sc/source/ui/unoobj/nameuno.cxx index 2a266d94dd17..864f8f5bb6db 100644 --- a/sc/source/ui/unoobj/nameuno.cxx +++ b/sc/source/ui/unoobj/nameuno.cxx @@ -601,10 +601,10 @@ uno::Any SAL_CALL ScNamedRangesObj::getByIndex( sal_Int32 nIndex ) { SolarMutexGuard aGuard; uno::Reference< sheet::XNamedRange > xRange(GetObjectByIndex_Impl((sal_uInt16)nIndex)); - if ( xRange.is() ) - return uno::makeAny(xRange); - else + if ( !xRange.is() ) throw lang::IndexOutOfBoundsException(); + + return uno::makeAny(xRange); } uno::Type SAL_CALL ScNamedRangesObj::getElementType() @@ -652,10 +652,10 @@ uno::Any SAL_CALL ScNamedRangesObj::getByName( const OUString& aName ) { SolarMutexGuard aGuard; uno::Reference< sheet::XNamedRange > xRange(GetObjectByName_Impl(aName)); - if ( xRange.is() ) - return uno::makeAny(xRange); - else + if ( !xRange.is() ) throw container::NoSuchElementException(); + + return uno::makeAny(xRange); } uno::Sequence<OUString> SAL_CALL ScNamedRangesObj::getElementNames() @@ -1144,10 +1144,10 @@ uno::Any SAL_CALL ScLabelRangesObj::getByIndex( sal_Int32 nIndex ) { SolarMutexGuard aGuard; uno::Reference< sheet::XLabelRange > xRange(GetObjectByIndex_Impl((sal_uInt16)nIndex)); - if ( xRange.is() ) - return uno::makeAny(xRange); - else + if ( !xRange.is() ) throw lang::IndexOutOfBoundsException(); + + return uno::makeAny(xRange); } uno::Type SAL_CALL ScLabelRangesObj::getElementType() diff --git a/sc/source/ui/unoobj/shapeuno.cxx b/sc/source/ui/unoobj/shapeuno.cxx index c8656949b904..b11f98dadb2d 100644 --- a/sc/source/ui/unoobj/shapeuno.cxx +++ b/sc/source/ui/unoobj/shapeuno.cxx @@ -327,101 +327,101 @@ void SAL_CALL ScShapeObj::setPropertyValue(const OUString& aPropertyName, const if ( aPropertyName == SC_UNONAME_ANCHOR ) { uno::Reference<sheet::XCellRangeAddressable> xRangeAdd(aValue, uno::UNO_QUERY); - if (xRangeAdd.is()) + if (!xRangeAdd.is()) + throw lang::IllegalArgumentException("only XCell or XSpreadsheet objects allowed", static_cast<cppu::OWeakObject*>(this), 0); + + SdrObject *pObj = GetSdrObject(); + if (pObj) { - SdrObject *pObj = GetSdrObject(); - if (pObj) + ScDrawLayer* pModel = static_cast<ScDrawLayer*>(pObj->GetModel()); + SdrPage* pPage = pObj->GetPage(); + if ( pModel && pPage ) { - ScDrawLayer* pModel = static_cast<ScDrawLayer*>(pObj->GetModel()); - SdrPage* pPage = pObj->GetPage(); - if ( pModel && pPage ) + ScDocument* pDoc = pModel->GetDocument(); + if ( pDoc ) { - ScDocument* pDoc = pModel->GetDocument(); - if ( pDoc ) + SfxObjectShell* pObjSh = pDoc->GetDocumentShell(); + if ( pObjSh && dynamic_cast<const ScDocShell*>( pObjSh) != nullptr ) { - SfxObjectShell* pObjSh = pDoc->GetDocumentShell(); - if ( pObjSh && dynamic_cast<const ScDocShell*>( pObjSh) != nullptr ) - { - ScDocShell* pDocSh = static_cast<ScDocShell*>(pObjSh); + ScDocShell* pDocSh = static_cast<ScDocShell*>(pObjSh); - SCTAB nTab = 0; - if ( lcl_GetPageNum( pPage, *pModel, nTab ) ) + SCTAB nTab = 0; + if ( lcl_GetPageNum( pPage, *pModel, nTab ) ) + { + table::CellRangeAddress aAddress = xRangeAdd->getRangeAddress(); + if (nTab == aAddress.Sheet) { - table::CellRangeAddress aAddress = xRangeAdd->getRangeAddress(); - if (nTab == aAddress.Sheet) + tools::Rectangle aRect(pDoc->GetMMRect( static_cast<SCCOL>(aAddress.StartColumn), static_cast<SCROW>(aAddress.StartRow), + static_cast<SCCOL>(aAddress.EndColumn), static_cast<SCROW>(aAddress.EndRow), aAddress.Sheet )); + awt::Point aRelPoint; + uno::Reference<drawing::XShape> xShape( mxShapeAgg, uno::UNO_QUERY ); + if (xShape.is()) { - tools::Rectangle aRect(pDoc->GetMMRect( static_cast<SCCOL>(aAddress.StartColumn), static_cast<SCROW>(aAddress.StartRow), - static_cast<SCCOL>(aAddress.EndColumn), static_cast<SCROW>(aAddress.EndRow), aAddress.Sheet )); - awt::Point aRelPoint; - uno::Reference<drawing::XShape> xShape( mxShapeAgg, uno::UNO_QUERY ); - if (xShape.is()) + Point aPoint; + Point aEndPoint; + if (pDoc->IsNegativePage(nTab)) { - Point aPoint; - Point aEndPoint; - if (pDoc->IsNegativePage(nTab)) - { - aPoint = aRect.TopRight(); - aEndPoint = aRect.BottomLeft(); - } - else - { - aPoint = aRect.TopLeft(); - aEndPoint = aRect.BottomRight(); - } - awt::Size aUnoSize; - awt::Point aCaptionPoint; - ScRange aRange; - aRelPoint = lcl_GetRelativePos( xShape, pDoc, nTab, aRange, aUnoSize, aCaptionPoint ); - awt::Point aUnoPoint(aRelPoint); - - aUnoPoint.X += aPoint.X(); - aUnoPoint.Y += aPoint.Y(); - - if ( aUnoPoint.Y > aEndPoint.Y() ) - aUnoPoint.Y = aEndPoint.Y() - 2; - if (pDoc->IsNegativePage(nTab)) - { - if ( aUnoPoint.X < aEndPoint.X() ) - aUnoPoint.X = aEndPoint.X() + 2; - aUnoPoint.X -= aUnoSize.Width; - // remove difference to caption point - if (aCaptionPoint.X > 0 && aCaptionPoint.X > aUnoSize.Width) - aUnoPoint.X -= aCaptionPoint.X - aUnoSize.Width; - } - else - { - if ( aUnoPoint.X > aEndPoint.X() ) - aUnoPoint.X = aEndPoint.X() - 2; - if (aCaptionPoint.X < 0) - aUnoPoint.X -= aCaptionPoint.X; - } - if (aCaptionPoint.Y < 0) - aUnoPoint.Y -= aCaptionPoint.Y; - - xShape->setPosition(aUnoPoint); - pDocSh->SetModified(); + aPoint = aRect.TopRight(); + aEndPoint = aRect.BottomLeft(); } + else + { + aPoint = aRect.TopLeft(); + aEndPoint = aRect.BottomRight(); + } + awt::Size aUnoSize; + awt::Point aCaptionPoint; + ScRange aRange; + aRelPoint = lcl_GetRelativePos( xShape, pDoc, nTab, aRange, aUnoSize, aCaptionPoint ); + awt::Point aUnoPoint(aRelPoint); - if (aAddress.StartRow != aAddress.EndRow) //should be a Spreadsheet + aUnoPoint.X += aPoint.X(); + aUnoPoint.Y += aPoint.Y(); + + if ( aUnoPoint.Y > aEndPoint.Y() ) + aUnoPoint.Y = aEndPoint.Y() - 2; + if (pDoc->IsNegativePage(nTab)) { - OSL_ENSURE(aAddress.StartRow == 0 && aAddress.EndRow == MAXROW && - aAddress.StartColumn == 0 && aAddress.EndColumn == MAXCOL, "here should be a XSpreadsheet"); - ScDrawLayer::SetPageAnchored(*pObj); + if ( aUnoPoint.X < aEndPoint.X() ) + aUnoPoint.X = aEndPoint.X() + 2; + aUnoPoint.X -= aUnoSize.Width; + // remove difference to caption point + if (aCaptionPoint.X > 0 && aCaptionPoint.X > aUnoSize.Width) + aUnoPoint.X -= aCaptionPoint.X - aUnoSize.Width; } else { - OSL_ENSURE(aAddress.StartRow == aAddress.EndRow && - aAddress.StartColumn == aAddress.EndColumn, "here should be a XCell"); - ScDrawObjData aAnchor; - aAnchor.maStart = ScAddress(aAddress.StartColumn, aAddress.StartRow, aAddress.Sheet); - aAnchor.maStartOffset = Point(aRelPoint.X, aRelPoint.Y); - //Uno sets the Anchor in terms of the unrotated shape, not much we can do - //about that since uno also displays the shape geometry in terms of the unrotated - //shape. #TODO think about changing the anchoring behaviour here too - //Currently we've only got a start anchor, not an end-anchor, so generate that now - ScDrawLayer::UpdateCellAnchorFromPositionEnd(*pObj, aAnchor, *pDoc, aAddress.Sheet); - ScDrawLayer::SetCellAnchored(*pObj, aAnchor); + if ( aUnoPoint.X > aEndPoint.X() ) + aUnoPoint.X = aEndPoint.X() - 2; + if (aCaptionPoint.X < 0) + aUnoPoint.X -= aCaptionPoint.X; } + if (aCaptionPoint.Y < 0) + aUnoPoint.Y -= aCaptionPoint.Y; + + xShape->setPosition(aUnoPoint); + pDocSh->SetModified(); + } + + if (aAddress.StartRow != aAddress.EndRow) //should be a Spreadsheet + { + OSL_ENSURE(aAddress.StartRow == 0 && aAddress.EndRow == MAXROW && + aAddress.StartColumn == 0 && aAddress.EndColumn == MAXCOL, "here should be a XSpreadsheet"); + ScDrawLayer::SetPageAnchored(*pObj); + } + else + { + OSL_ENSURE(aAddress.StartRow == aAddress.EndRow && + aAddress.StartColumn == aAddress.EndColumn, "here should be a XCell"); + ScDrawObjData aAnchor; + aAnchor.maStart = ScAddress(aAddress.StartColumn, aAddress.StartRow, aAddress.Sheet); + aAnchor.maStartOffset = Point(aRelPoint.X, aRelPoint.Y); + //Uno sets the Anchor in terms of the unrotated shape, not much we can do + //about that since uno also displays the shape geometry in terms of the unrotated + //shape. #TODO think about changing the anchoring behaviour here too + //Currently we've only got a start anchor, not an end-anchor, so generate that now + ScDrawLayer::UpdateCellAnchorFromPositionEnd(*pObj, aAnchor, *pDoc, aAddress.Sheet); + ScDrawLayer::SetCellAnchored(*pObj, aAnchor); } } } @@ -429,8 +429,7 @@ void SAL_CALL ScShapeObj::setPropertyValue(const OUString& aPropertyName, const } } } - else - throw lang::IllegalArgumentException("only XCell or XSpreadsheet objects allowed", static_cast<cppu::OWeakObject*>(this), 0); + } else if ( aPropertyName == SC_UNONAME_IMAGEMAP ) { @@ -1163,10 +1162,10 @@ void SAL_CALL ScShapeObj::insertString( const uno::Reference<text::XTextRange>& SolarMutexGuard aGuard; uno::Reference<text::XSimpleText> xAggSimpleText(lcl_GetSimpleText(mxShapeAgg)); - if ( xAggSimpleText.is() ) - xAggSimpleText->insertString( xRange, aString, bAbsorb ); - else + if ( !xAggSimpleText.is() ) throw uno::RuntimeException(); + + xAggSimpleText->insertString( xRange, aString, bAbsorb ); } void SAL_CALL ScShapeObj::insertControlCharacter( const uno::Reference<text::XTextRange>& xRange, @@ -1175,10 +1174,10 @@ void SAL_CALL ScShapeObj::insertControlCharacter( const uno::Reference<text::XTe SolarMutexGuard aGuard; uno::Reference<text::XSimpleText> xAggSimpleText(lcl_GetSimpleText(mxShapeAgg)); - if ( xAggSimpleText.is() ) - xAggSimpleText->insertControlCharacter( xRange, nControlCharacter, bAbsorb ); - else + if ( !xAggSimpleText.is() ) throw uno::RuntimeException(); + + xAggSimpleText->insertControlCharacter( xRange, nControlCharacter, bAbsorb ); } // XTextRange @@ -1194,12 +1193,10 @@ uno::Reference<text::XTextRange> SAL_CALL ScShapeObj::getStart() SolarMutexGuard aGuard; uno::Reference<text::XTextRange> xAggTextRange(lcl_GetTextRange(mxShapeAgg)); ... etc. - the rest is truncated _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits