summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2020-08-09 11:59:30 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-08-09 19:05:34 +0200
commit8c505204f25b509daa586c2d308fb870325c59b9 (patch)
tree3c5840215f37f8f37c39703de767a4fe7b3b6d87 /sc
parent966b156cbd8b786c88ade5d322177e16fd408732 (diff)
loplugin:flatten in sc
Change-Id: Iedb6ca37d1b006131d1fc77eca3303a12ccb60c9 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/100401 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
Diffstat (limited to 'sc')
-rw-r--r--sc/source/core/opencl/formulagroupcl.cxx7
-rw-r--r--sc/source/core/opencl/op_statistical.cxx1044
-rw-r--r--sc/source/core/opencl/opbase.cxx31
-rw-r--r--sc/source/core/tool/formulalogger.cxx24
-rw-r--r--sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx20
-rw-r--r--sc/source/ui/app/inputhdl.cxx74
-rw-r--r--sc/source/ui/dbgui/pfiltdlg.cxx122
-rw-r--r--sc/source/ui/dbgui/tpsort.cxx227
-rw-r--r--sc/source/ui/dbgui/tpsubt.cxx82
-rw-r--r--sc/source/ui/docshell/docsh.cxx121
-rw-r--r--sc/source/ui/drawfunc/fuconrec.cxx198
-rw-r--r--sc/source/ui/drawfunc/fudraw.cxx96
-rw-r--r--sc/source/ui/drawfunc/fuins1.cxx40
-rw-r--r--sc/source/ui/drawfunc/fuins2.cxx166
-rw-r--r--sc/source/ui/drawfunc/futext.cxx116
-rw-r--r--sc/source/ui/drawfunc/futext3.cxx118
-rw-r--r--sc/source/ui/drawfunc/mediash.cxx44
-rw-r--r--sc/source/ui/formdlg/formula.cxx268
-rw-r--r--sc/source/ui/namedlg/namedlg.cxx56
-rw-r--r--sc/source/ui/navipi/content.cxx254
-rw-r--r--sc/source/ui/navipi/navipi.cxx110
-rw-r--r--sc/source/ui/optdlg/tpusrlst.cxx30
-rw-r--r--sc/source/ui/pagedlg/areasdlg.cxx48
-rw-r--r--sc/source/ui/pagedlg/scuitphfedit.cxx22
-rw-r--r--sc/source/ui/pagedlg/tphfedit.cxx64
-rw-r--r--sc/source/ui/undo/areasave.cxx24
-rw-r--r--sc/source/ui/undo/undobase.cxx70
-rw-r--r--sc/source/ui/undo/undoblk.cxx121
-rw-r--r--sc/source/ui/undo/undocell.cxx22
-rw-r--r--sc/source/ui/undo/undodat.cxx30
-rw-r--r--sc/source/ui/undo/undoutil.cxx24
31 files changed, 1836 insertions, 1837 deletions
diff --git a/sc/source/core/opencl/formulagroupcl.cxx b/sc/source/core/opencl/formulagroupcl.cxx
index 459de3fae64b..59e4ff1480bf 100644
--- a/sc/source/core/opencl/formulagroupcl.cxx
+++ b/sc/source/core/opencl/formulagroupcl.cxx
@@ -2737,11 +2737,12 @@ DynamicKernelSoPArguments::DynamicKernelSoPArguments(const ScCalcConfig& config,
// explicitly claims it will handle this situation properly.
if( pDVR->GetArrays().size() > 1 )
{
- if( pCodeGen->canHandleMultiVector())
- SAL_INFO("sc.opencl", "multi-column DoubleRef");
- else
+ if( !pCodeGen->canHandleMultiVector())
throw UnhandledToken(("Function '" + pCodeGen->BinFuncName()
+ "' cannot handle multi-column DoubleRef").c_str(), __FILE__, __LINE__);
+
+ SAL_INFO("sc.opencl", "multi-column DoubleRef");
+
}
// FIXME: The Right Thing to do would be to compare the accumulated kernel
diff --git a/sc/source/core/opencl/op_statistical.cxx b/sc/source/core/opencl/op_statistical.cxx
index 94415b39e41a..273f37dcc204 100644
--- a/sc/source/core/opencl/op_statistical.cxx
+++ b/sc/source/core/opencl/op_statistical.cxx
@@ -494,167 +494,73 @@ void OpTTest::GenSlidingWindowFunction(std::stringstream &ss,
ss << "}\n";
return ;
}
- if(vSubArguments.size() == 4)
+ if(vSubArguments.size() != 4)
+ return;
+
+ FormulaToken *pCur = vSubArguments[0]->GetFormulaToken();
+ FormulaToken *pCur1 = vSubArguments[1]->GetFormulaToken();
+ FormulaToken *pCur2 = vSubArguments[2]->GetFormulaToken();
+ FormulaToken *pCur3 = vSubArguments[3]->GetFormulaToken();
+ assert(pCur);
+ assert(pCur1);
+ assert(pCur2);
+ assert(pCur3);
+ if(ocPush == vSubArguments[2]->GetFormulaToken()->GetOpCode())
{
- FormulaToken *pCur = vSubArguments[0]->GetFormulaToken();
- FormulaToken *pCur1 = vSubArguments[1]->GetFormulaToken();
- FormulaToken *pCur2 = vSubArguments[2]->GetFormulaToken();
- FormulaToken *pCur3 = vSubArguments[3]->GetFormulaToken();
- assert(pCur);
- assert(pCur1);
- assert(pCur2);
- assert(pCur3);
- if(ocPush == vSubArguments[2]->GetFormulaToken()->GetOpCode())
+ if(pCur2->GetType() == formula::svSingleVectorRef)
{
- if(pCur2->GetType() == formula::svSingleVectorRef)
- {
- const formula::SingleVectorRefToken* pSVR =
- static_cast< const formula::SingleVectorRefToken*>(pCur2);
- ss << " if (gid0 < " << pSVR->GetArrayLength() << ")\n";
- ss << " {\n";
- ss << " mode = " ;
- ss << vSubArguments[2]->GenSlidingWindowDeclRef() << ";\n";
- ss << " if (isnan(mode))\n";
- ss << " mode = 0.0;\n";
- ss << " else\n";
- ss << " mode = floor(mode);\n";
- ss << " }\n";
- }
- else if(pCur2->GetType() == formula::svDouble)
- {
- ss << " mode = floor(convert_double(";
- ss << pCur2->GetDouble() << "));\n";
- }
- else
- {
- ss << " return DBL_MAX;\n";
- ss << "}\n";
- return ;
- }
+ const formula::SingleVectorRefToken* pSVR =
+ static_cast< const formula::SingleVectorRefToken*>(pCur2);
+ ss << " if (gid0 < " << pSVR->GetArrayLength() << ")\n";
+ ss << " {\n";
+ ss << " mode = " ;
+ ss << vSubArguments[2]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " if (isnan(mode))\n";
+ ss << " mode = 0.0;\n";
+ ss << " else\n";
+ ss << " mode = floor(mode);\n";
+ ss << " }\n";
}
- else
+ else if(pCur2->GetType() == formula::svDouble)
{
- ss << " mode = floor(" ;
- ss << vSubArguments[2]->GenSlidingWindowDeclRef() << ");\n";
+ ss << " mode = floor(convert_double(";
+ ss << pCur2->GetDouble() << "));\n";
}
- ss << " if(!(mode == 1.0 || mode == 2.0))\n";
- ss << " return DBL_MAX;\n";
- if(ocPush==vSubArguments[3]->GetFormulaToken()->GetOpCode())
+ else
{
- if(pCur3->GetType() == formula::svSingleVectorRef)
- {
- const formula::SingleVectorRefToken* pSVR =
- static_cast< const formula::SingleVectorRefToken*>(pCur3);
- assert(pSVR);
- ss << " if (gid0 < " << pSVR->GetArrayLength() << ")\n";
- ss << " {\n";
- ss << " if (isnan(";
- ss << vSubArguments[3]->GenSlidingWindowDeclRef() << "))\n";
- ss << " type=0.0;\n";
- ss << " else\n";
- ss << " type=floor(";
- ss << vSubArguments[3]->GenSlidingWindowDeclRef() << ");\n";
- ss << " }\n";
- }
- else if(pCur3->GetType() == formula::svDouble)
- {
- ss << " type = floor(convert_double(" << pCur3->GetDouble() <<
- "));\n";
- }
- else
- {
- ss << " return DBL_MAX;\n";
- ss << "}\n";
- return ;
- }
+ ss << " return DBL_MAX;\n";
+ ss << "}\n";
+ return ;
}
- else
+ }
+ else
+ {
+ ss << " mode = floor(" ;
+ ss << vSubArguments[2]->GenSlidingWindowDeclRef() << ");\n";
+ }
+ ss << " if(!(mode == 1.0 || mode == 2.0))\n";
+ ss << " return DBL_MAX;\n";
+ if(ocPush==vSubArguments[3]->GetFormulaToken()->GetOpCode())
+ {
+ if(pCur3->GetType() == formula::svSingleVectorRef)
{
- ss << " type=floor(";
+ const formula::SingleVectorRefToken* pSVR =
+ static_cast< const formula::SingleVectorRefToken*>(pCur3);
+ assert(pSVR);
+ ss << " if (gid0 < " << pSVR->GetArrayLength() << ")\n";
+ ss << " {\n";
+ ss << " if (isnan(";
+ ss << vSubArguments[3]->GenSlidingWindowDeclRef() << "))\n";
+ ss << " type=0.0;\n";
+ ss << " else\n";
+ ss << " type=floor(";
ss << vSubArguments[3]->GenSlidingWindowDeclRef() << ");\n";
+ ss << " }\n";
}
- ss << " if(!(type == 1.0||type == 2.0||type == 3.0))\n";
- ss << " return DBL_MAX;\n";
-
- if(pCur->GetType() == formula::svDoubleVectorRef &&
- pCur1->GetType() == formula::svDoubleVectorRef)
+ else if(pCur3->GetType() == formula::svDouble)
{
- const formula::DoubleVectorRefToken* pDVR =
- static_cast<const formula::DoubleVectorRefToken *>(pCur);
- const formula::DoubleVectorRefToken* pDVR1 =
- static_cast<const formula::DoubleVectorRefToken *>(pCur1);
-
- size_t nCurWindowSize = pDVR->GetRefRowSize();
- size_t nCurWindowSize1 = pDVR1->GetRefRowSize();
-
- if(nCurWindowSize == nCurWindowSize1)
- {
- ss << " if(type == 1.0)\n";
- ss << " {\n";
- ss << " for (int i = ";
- if ((!pDVR->IsStartFixed() && pDVR->IsEndFixed()) &&
- (!pDVR1->IsStartFixed() && pDVR1->IsEndFixed()))
- {
- ss << "gid0; i < " << pDVR->GetArrayLength();
- ss << " && i < " << nCurWindowSize << "; i++)\n";
- ss << " {\n";
- }
- else if ((pDVR->IsStartFixed() && !pDVR->IsEndFixed()) &&
- (pDVR1->IsStartFixed() && !pDVR1->IsEndFixed()))
- {
- ss << "0; i < " << pDVR->GetArrayLength();
- ss << " && i < gid0+"<< nCurWindowSize << "; i++)\n";
- ss << " {\n";
- }
- else if ((!pDVR->IsStartFixed() && !pDVR->IsEndFixed()) &&
- (!pDVR1->IsStartFixed() && !pDVR1->IsEndFixed()))
- {
- ss << "0; i + gid0 < " << pDVR->GetArrayLength();
- ss << " && i < " << nCurWindowSize << "; i++)\n";
- ss << " {\n";
- }
- else if ((pDVR->IsStartFixed() && pDVR->IsEndFixed()) &&
- (pDVR1->IsStartFixed() && pDVR1->IsEndFixed()))
- {
- ss << "0; i < " << nCurWindowSize << "; i++)\n";
- ss << " {\n";
- }
- else
- {
- ss << "0; i < " << nCurWindowSize << "; i++)\n";
- ss << " {\n";
- ss << " break;\n";
- ss << " }";
- ss << " return DBL_MAX;\n";
- ss << " }\n";
- ss << "}\n";
- return ;
- }
-
- ss << " arg1 = ";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef(true) << ";\n";
- ss << " arg2 = ";
- ss << vSubArguments[1]->GenSlidingWindowDeclRef(true) << ";\n";
- ss << " if (isnan(arg1)||isnan(arg2))\n";
- ss << " continue;\n";
- ss << " fSum1 += arg1;\n";
- ss << " fSum2 += arg2;\n";
- ss << " fSumSqr1 += (arg1 - arg2)*(arg1 - arg2);\n";
- ss << " fCount1 += 1;\n";
- ss << " }\n";
- ss << " if(fCount1 < 1.0)\n";
- ss << " return DBL_MAX;\n";
- ss << " fT = sqrt(fCount1-1.0) * fabs(fSum1 - fSum2)\n";
- ss << " /sqrt(fCount1 * fSumSqr1 - (fSum1-fSum2)\n";
- ss << " *(fSum1-fSum2));\n";
- ss << " fF = fCount1 - 1.0;\n";
- }
- else
- {
- ss << " return DBL_MAX;\n";
- ss << "}\n";
- return ;
- }
+ ss << " type = floor(convert_double(" << pCur3->GetDouble() <<
+ "));\n";
}
else
{
@@ -662,131 +568,225 @@ void OpTTest::GenSlidingWindowFunction(std::stringstream &ss,
ss << "}\n";
return ;
}
- ss << " }\n";
- ss << " if(type == 2.0 || type == 3.0)\n";
- ss << " {\n";
+ }
+ else
+ {
+ ss << " type=floor(";
+ ss << vSubArguments[3]->GenSlidingWindowDeclRef() << ");\n";
+ }
+ ss << " if(!(type == 1.0||type == 2.0||type == 3.0))\n";
+ ss << " return DBL_MAX;\n";
- if(pCur->GetType() == formula::svDoubleVectorRef &&
- pCur1->GetType() == formula::svDoubleVectorRef)
- {
- const formula::DoubleVectorRefToken* pDVR =
- static_cast<const formula::DoubleVectorRefToken *>(pCur);
- const formula::DoubleVectorRefToken* pDVR1 =
- static_cast<const formula::DoubleVectorRefToken *>(pCur1);
+ if(pCur->GetType() == formula::svDoubleVectorRef &&
+ pCur1->GetType() == formula::svDoubleVectorRef)
+ {
+ const formula::DoubleVectorRefToken* pDVR =
+ static_cast<const formula::DoubleVectorRefToken *>(pCur);
+ const formula::DoubleVectorRefToken* pDVR1 =
+ static_cast<const formula::DoubleVectorRefToken *>(pCur1);
+
+ size_t nCurWindowSize = pDVR->GetRefRowSize();
+ size_t nCurWindowSize1 = pDVR1->GetRefRowSize();
- size_t nCurWindowSize = pDVR->GetRefRowSize();
- size_t nCurWindowSize1 = pDVR1->GetRefRowSize();
+ if(nCurWindowSize == nCurWindowSize1)
+ {
+ ss << " if(type == 1.0)\n";
+ ss << " {\n";
ss << " for (int i = ";
- if (!pDVR->IsStartFixed() && pDVR->IsEndFixed())
+ if ((!pDVR->IsStartFixed() && pDVR->IsEndFixed()) &&
+ (!pDVR1->IsStartFixed() && pDVR1->IsEndFixed()))
{
ss << "gid0; i < " << pDVR->GetArrayLength();
ss << " && i < " << nCurWindowSize << "; i++)\n";
ss << " {\n";
}
- else if (pDVR->IsStartFixed() && !pDVR->IsEndFixed())
+ else if ((pDVR->IsStartFixed() && !pDVR->IsEndFixed()) &&
+ (pDVR1->IsStartFixed() && !pDVR1->IsEndFixed()))
{
ss << "0; i < " << pDVR->GetArrayLength();
ss << " && i < gid0+"<< nCurWindowSize << "; i++)\n";
ss << " {\n";
}
- else if (!pDVR->IsStartFixed() && !pDVR->IsEndFixed())
+ else if ((!pDVR->IsStartFixed() && !pDVR->IsEndFixed()) &&
+ (!pDVR1->IsStartFixed() && !pDVR1->IsEndFixed()))
{
ss << "0; i + gid0 < " << pDVR->GetArrayLength();
ss << " && i < " << nCurWindowSize << "; i++)\n";
ss << " {\n";
}
- else
+ else if ((pDVR->IsStartFixed() && pDVR->IsEndFixed()) &&
+ (pDVR1->IsStartFixed() && pDVR1->IsEndFixed()))
{
ss << "0; i < " << nCurWindowSize << "; i++)\n";
ss << " {\n";
}
-
- ss << " arg1 = ";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef(true) << ";\n";
- ss << " if (isnan(arg1))\n";
- ss << " continue;\n";
- ss << " fSum1 += arg1;\n";
- ss << " fSumSqr1 += arg1 * arg1;\n";
- ss << " fCount1 += 1;\n";
- ss << " }\n";
-
- ss << " for (int i = ";
- if (!pDVR1->IsStartFixed() && pDVR1->IsEndFixed())
- {
- ss << "gid0; i < " << pDVR1->GetArrayLength();
- ss << " && i < " << nCurWindowSize1 << "; i++)\n";
- ss << " {\n";
- }
- else if (pDVR1->IsStartFixed() && !pDVR1->IsEndFixed())
- {
- ss << "0; i < " << pDVR1->GetArrayLength();
- ss << " && i < gid0+"<< nCurWindowSize1 << "; i++)\n";
- ss << " {\n";
- }
- else if (!pDVR1->IsStartFixed() && !pDVR1->IsEndFixed())
- {
- ss << "0; i + gid0 < " << pDVR1->GetArrayLength();
- ss << " && i < " << nCurWindowSize1 << "; i++)\n";
- ss << " {\n";
- }
else
{
- ss << "0; i < " << nCurWindowSize1 << "; i++)\n";
+ ss << "0; i < " << nCurWindowSize << "; i++)\n";
ss << " {\n";
+ ss << " break;\n";
+ ss << " }";
+ ss << " return DBL_MAX;\n";
+ ss << " }\n";
+ ss << "}\n";
+ return ;
}
+
+ ss << " arg1 = ";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef(true) << ";\n";
ss << " arg2 = ";
ss << vSubArguments[1]->GenSlidingWindowDeclRef(true) << ";\n";
- ss << " if (isnan(arg2))\n";
+ ss << " if (isnan(arg1)||isnan(arg2))\n";
ss << " continue;\n";
+ ss << " fSum1 += arg1;\n";
ss << " fSum2 += arg2;\n";
- ss << " fSumSqr2 += arg2 * arg2;\n";
- ss << " fCount2 += 1;\n";
+ ss << " fSumSqr1 += (arg1 - arg2)*(arg1 - arg2);\n";
+ ss << " fCount1 += 1;\n";
ss << " }\n";
+ ss << " if(fCount1 < 1.0)\n";
+ ss << " return DBL_MAX;\n";
+ ss << " fT = sqrt(fCount1-1.0) * fabs(fSum1 - fSum2)\n";
+ ss << " /sqrt(fCount1 * fSumSqr1 - (fSum1-fSum2)\n";
+ ss << " *(fSum1-fSum2));\n";
+ ss << " fF = fCount1 - 1.0;\n";
}
else
{
- ss << " return DBL_MAX;\n";
- ss << " }\n";
+ ss << " return DBL_MAX;\n";
ss << "}\n";
return ;
}
- ss << " if (fCount1 < 2.0 || fCount2 < 2.0)\n";
- ss << " return DBL_MAX;\n";
- ss << " }\n";
- ss << " if(type == 3.0)\n";
- ss << " {\n";
- ss << " double fS1 = (fSumSqr1-fSum1*fSum1/fCount1)\n";
- ss << " /(fCount1-1.0)/fCount1;\n";
- ss << " double fS2 = (fSumSqr2-fSum2*fSum2/fCount2)\n";
- ss << " /(fCount2-1.0)/fCount2;\n";
- ss << " if (fS1 + fS2 == 0.0)\n";
- ss << " return DBL_MAX;\n";
- ss << " fT = fabs(fSum1/fCount1 - fSum2/fCount2)\n";
- ss << " /sqrt(fS1+fS2);\n";
- ss << " double c = fS1/(fS1+fS2);\n";
- ss << " fF = 1.0/(c*c/(fCount1-1.0)+(1.0-c)*(1.0-c)\n";
- ss << " /(fCount2-1.0));\n";
- ss << " }\n";
- ss << " if(type == 2.0)\n";
- ss << " {\n";
- ss << " double fS1 = (fSumSqr1 - fSum1*fSum1/fCount1)\n";
- ss << " /(fCount1 - 1.0);\n";
- ss << " double fS2 = (fSumSqr2 - fSum2*fSum2/fCount2)\n";
- ss << " /(fCount2 - 1.0);\n";
- ss << " fT = fabs( fSum1/fCount1 - fSum2/fCount2 )\n";
- ss << " /sqrt( (fCount1-1.0)*fS1 + (fCount2-1.0)*fS2 )\n";
- ss << " *sqrt( fCount1*fCount2*(fCount1+fCount2-2)\n";
- ss << " /(fCount1+fCount2) );\n";
- ss << " fF = fCount1 + fCount2 - 2;\n";
- ss << " }\n";
+ }
+ else
+ {
+ ss << " return DBL_MAX;\n";
+ ss << "}\n";
+ return ;
+ }
+ ss << " }\n";
+ ss << " if(type == 2.0 || type == 3.0)\n";
+ ss << " {\n";
- ss << " double tdist=GetTDist(fT, fF);\n";
- ss << " if (mode==1)\n";
- ss << " return tdist;\n";
- ss << " else\n";
- ss << " return 2.0*tdist;\n";
+ if(pCur->GetType() == formula::svDoubleVectorRef &&
+ pCur1->GetType() == formula::svDoubleVectorRef)
+ {
+ const formula::DoubleVectorRefToken* pDVR =
+ static_cast<const formula::DoubleVectorRefToken *>(pCur);
+ const formula::DoubleVectorRefToken* pDVR1 =
+ static_cast<const formula::DoubleVectorRefToken *>(pCur1);
+
+ size_t nCurWindowSize = pDVR->GetRefRowSize();
+ size_t nCurWindowSize1 = pDVR1->GetRefRowSize();
+ ss << " for (int i = ";
+ if (!pDVR->IsStartFixed() && pDVR->IsEndFixed())
+ {
+ ss << "gid0; i < " << pDVR->GetArrayLength();
+ ss << " && i < " << nCurWindowSize << "; i++)\n";
+ ss << " {\n";
+ }
+ else if (pDVR->IsStartFixed() && !pDVR->IsEndFixed())
+ {
+ ss << "0; i < " << pDVR->GetArrayLength();
+ ss << " && i < gid0+"<< nCurWindowSize << "; i++)\n";
+ ss << " {\n";
+ }
+ else if (!pDVR->IsStartFixed() && !pDVR->IsEndFixed())
+ {
+ ss << "0; i + gid0 < " << pDVR->GetArrayLength();
+ ss << " && i < " << nCurWindowSize << "; i++)\n";
+ ss << " {\n";
+ }
+ else
+ {
+ ss << "0; i < " << nCurWindowSize << "; i++)\n";
+ ss << " {\n";
+ }
+
+ ss << " arg1 = ";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef(true) << ";\n";
+ ss << " if (isnan(arg1))\n";
+ ss << " continue;\n";
+ ss << " fSum1 += arg1;\n";
+ ss << " fSumSqr1 += arg1 * arg1;\n";
+ ss << " fCount1 += 1;\n";
+ ss << " }\n";
+
+ ss << " for (int i = ";
+ if (!pDVR1->IsStartFixed() && pDVR1->IsEndFixed())
+ {
+ ss << "gid0; i < " << pDVR1->GetArrayLength();
+ ss << " && i < " << nCurWindowSize1 << "; i++)\n";
+ ss << " {\n";
+ }
+ else if (pDVR1->IsStartFixed() && !pDVR1->IsEndFixed())
+ {
+ ss << "0; i < " << pDVR1->GetArrayLength();
+ ss << " && i < gid0+"<< nCurWindowSize1 << "; i++)\n";
+ ss << " {\n";
+ }
+ else if (!pDVR1->IsStartFixed() && !pDVR1->IsEndFixed())
+ {
+ ss << "0; i + gid0 < " << pDVR1->GetArrayLength();
+ ss << " && i < " << nCurWindowSize1 << "; i++)\n";
+ ss << " {\n";
+ }
+ else
+ {
+ ss << "0; i < " << nCurWindowSize1 << "; i++)\n";
+ ss << " {\n";
+ }
+ ss << " arg2 = ";
+ ss << vSubArguments[1]->GenSlidingWindowDeclRef(true) << ";\n";
+ ss << " if (isnan(arg2))\n";
+ ss << " continue;\n";
+ ss << " fSum2 += arg2;\n";
+ ss << " fSumSqr2 += arg2 * arg2;\n";
+ ss << " fCount2 += 1;\n";
+ ss << " }\n";
+ }
+ else
+ {
+ ss << " return DBL_MAX;\n";
+ ss << " }\n";
ss << "}\n";
+ return ;
}
+ ss << " if (fCount1 < 2.0 || fCount2 < 2.0)\n";
+ ss << " return DBL_MAX;\n";
+ ss << " }\n";
+ ss << " if(type == 3.0)\n";
+ ss << " {\n";
+ ss << " double fS1 = (fSumSqr1-fSum1*fSum1/fCount1)\n";
+ ss << " /(fCount1-1.0)/fCount1;\n";
+ ss << " double fS2 = (fSumSqr2-fSum2*fSum2/fCount2)\n";
+ ss << " /(fCount2-1.0)/fCount2;\n";
+ ss << " if (fS1 + fS2 == 0.0)\n";
+ ss << " return DBL_MAX;\n";
+ ss << " fT = fabs(fSum1/fCount1 - fSum2/fCount2)\n";
+ ss << " /sqrt(fS1+fS2);\n";
+ ss << " double c = fS1/(fS1+fS2);\n";
+ ss << " fF = 1.0/(c*c/(fCount1-1.0)+(1.0-c)*(1.0-c)\n";
+ ss << " /(fCount2-1.0));\n";
+ ss << " }\n";
+ ss << " if(type == 2.0)\n";
+ ss << " {\n";
+ ss << " double fS1 = (fSumSqr1 - fSum1*fSum1/fCount1)\n";
+ ss << " /(fCount1 - 1.0);\n";
+ ss << " double fS2 = (fSumSqr2 - fSum2*fSum2/fCount2)\n";
+ ss << " /(fCount2 - 1.0);\n";
+ ss << " fT = fabs( fSum1/fCount1 - fSum2/fCount2 )\n";
+ ss << " /sqrt( (fCount1-1.0)*fS1 + (fCount2-1.0)*fS2 )\n";
+ ss << " *sqrt( fCount1*fCount2*(fCount1+fCount2-2)\n";
+ ss << " /(fCount1+fCount2) );\n";
+ ss << " fF = fCount1 + fCount2 - 2;\n";
+ ss << " }\n";
+
+ ss << " double tdist=GetTDist(fT, fF);\n";
+ ss << " if (mode==1)\n";
+ ss << " return tdist;\n";
+ ss << " else\n";
+ ss << " return 2.0*tdist;\n";
+ ss << "}\n";
}
void OpVarP::GenSlidingWindowFunction(std::stringstream &ss,
const std::string &sSymName, SubArguments &vSubArguments)
@@ -2572,122 +2572,121 @@ void OpSlope::GenSlidingWindowFunction(std::stringstream &ss,
FormulaToken *pCur1 = vSubArguments[0]->GetFormulaToken();
assert(pCur);
assert(pCur1);
- if (pCur->GetType() == formula::svDoubleVectorRef&&
- pCur1->GetType() == formula::svDoubleVectorRef)
+ if (pCur->GetType() != formula::svDoubleVectorRef ||
+ pCur1->GetType() != formula::svDoubleVectorRef)
{
- const formula::DoubleVectorRefToken* pDVR =
- static_cast<const formula::DoubleVectorRefToken *>(pCur);
- const formula::DoubleVectorRefToken* pDVR1 =
- static_cast<const formula::DoubleVectorRefToken *>(pCur1);
-
- size_t nCurWindowSize = pDVR->GetRefRowSize();
- size_t nCurWindowSize1 = pDVR1->GetRefRowSize();
- size_t arrayLength = pDVR->GetArrayLength()<
- pDVR1->GetArrayLength() ? pDVR->GetArrayLength():
- pDVR1->GetArrayLength();
- if(nCurWindowSize != nCurWindowSize1)
- throw Unhandled(__FILE__, __LINE__);
- ss << " for (int i = ";
- if ((!pDVR->IsStartFixed() && pDVR->IsEndFixed())
- &&(!pDVR1->IsStartFixed() && pDVR1->IsEndFixed()))
- {
- ss << "gid0; i < " << arrayLength;
- ss << " && i < " << nCurWindowSize << "; i++)\n";
- ss << " {\n";
- }
- else if ((pDVR->IsStartFixed() && !pDVR->IsEndFixed())
- &&(pDVR1->IsStartFixed() && !pDVR1->IsEndFixed()))
- {
- ss << "0; i < " << arrayLength ;
- ss << " && i < gid0+" << nCurWindowSize << "; i++)\n";
- ss << " {\n";
- }
- else if ((!pDVR->IsStartFixed() && !pDVR->IsEndFixed())
- &&(!pDVR1->IsStartFixed() && !pDVR1->IsEndFixed()))
- {
- ss << "0; i + gid0 < " << arrayLength;
- ss << " && i < " << nCurWindowSize << "; i++)\n";
- ss << " {\n";
- }
- else if ((pDVR->IsStartFixed() && pDVR->IsEndFixed())
- &&(pDVR1->IsStartFixed() && pDVR1->IsEndFixed()))
- {
- ss << "0; i < " << arrayLength << "; i++)\n";
- ss << " {\n";
- }
- else
- {
- throw Unhandled(__FILE__, __LINE__);
- }
+ throw Unhandled(__FILE__, __LINE__);
+ }
- ss << " argX = ";
- ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";\n";
- ss << " argY = ";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
- ss << " if (isnan(argX) || isnan(argY))\n";
- ss << " continue;\n";
- ss << " fSumX += argX;\n";
- ss << " fSumY += argY;\n";
- ss << " fCount += 1.0;\n";
- ss << " }\n";
+ const formula::DoubleVectorRefToken* pDVR =
+ static_cast<const formula::DoubleVectorRefToken *>(pCur);
+ const formula::DoubleVectorRefToken* pDVR1 =
+ static_cast<const formula::DoubleVectorRefToken *>(pCur1);
- ss << " if (fCount < 1.0)\n";
- ss << " return CreateDoubleError(NoValue);\n";
- ss << " else\n";
+ size_t nCurWindowSize = pDVR->GetRefRowSize();
+ size_t nCurWindowSize1 = pDVR1->GetRefRowSize();
+ size_t arrayLength = pDVR->GetArrayLength()<
+ pDVR1->GetArrayLength() ? pDVR->GetArrayLength():
+ pDVR1->GetArrayLength();
+ if(nCurWindowSize != nCurWindowSize1)
+ throw Unhandled(__FILE__, __LINE__);
+ ss << " for (int i = ";
+ if ((!pDVR->IsStartFixed() && pDVR->IsEndFixed())
+ &&(!pDVR1->IsStartFixed() && pDVR1->IsEndFixed()))
+ {
+ ss << "gid0; i < " << arrayLength;
+ ss << " && i < " << nCurWindowSize << "; i++)\n";
ss << " {\n";
- ss << " fMeanX = fSumX * pow(fCount,-1.0);\n";
- ss << " fMeanY = fSumY * pow(fCount,-1.0);\n";
+ }
+ else if ((pDVR->IsStartFixed() && !pDVR->IsEndFixed())
+ &&(pDVR1->IsStartFixed() && !pDVR1->IsEndFixed()))
+ {
+ ss << "0; i < " << arrayLength ;
+ ss << " && i < gid0+" << nCurWindowSize << "; i++)\n";
+ ss << " {\n";
+ }
+ else if ((!pDVR->IsStartFixed() && !pDVR->IsEndFixed())
+ &&(!pDVR1->IsStartFixed() && !pDVR1->IsEndFixed()))
+ {
+ ss << "0; i + gid0 < " << arrayLength;
+ ss << " && i < " << nCurWindowSize << "; i++)\n";
+ ss << " {\n";
+ }
+ else if ((pDVR->IsStartFixed() && pDVR->IsEndFixed())
+ &&(pDVR1->IsStartFixed() && pDVR1->IsEndFixed()))
+ {
+ ss << "0; i < " << arrayLength << "; i++)\n";
+ ss << " {\n";
+ }
+ else
+ {
+ throw Unhandled(__FILE__, __LINE__);
+ }
- ss << " for (int i = ";
- if ((!pDVR->IsStartFixed() && pDVR->IsEndFixed())
- &&(!pDVR1->IsStartFixed() && pDVR1->IsEndFixed()))
- {
- ss << "gid0; i < " << arrayLength;
- ss << " && i < " << nCurWindowSize << "; i++)\n";
- ss << " {\n";
- }
- else if ((pDVR->IsStartFixed() && !pDVR->IsEndFixed())
- &&(pDVR1->IsStartFixed() && !pDVR1->IsEndFixed()))
- {
- ss << "0; i < " << arrayLength ;
- ss << " && i < gid0+" << nCurWindowSize << "; i++)\n";
- ss << " {\n";
- }
- else if ((!pDVR->IsStartFixed() && !pDVR->IsEndFixed())
- &&(!pDVR1->IsStartFixed() && !pDVR1->IsEndFixed()))
- {
- ss << "0; i + gid0 < " << arrayLength;
- ss << " && i < " << nCurWindowSize << "; i++)\n";
- ss << " {\n";
- }
- else
- {
- ss << "0; i < " << arrayLength << "; i++)\n";
- ss << " {\n";
- }
+ ss << " argX = ";
+ ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " argY = ";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " if (isnan(argX) || isnan(argY))\n";
+ ss << " continue;\n";
+ ss << " fSumX += argX;\n";
+ ss << " fSumY += argY;\n";
+ ss << " fCount += 1.0;\n";
+ ss << " }\n";
- ss << " argX = ";
- ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";\n";
- ss << " argY = ";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
- ss << " if (isnan(argX) || isnan(argY))\n";
- ss << " continue;\n";
- ss << " fSumDeltaXDeltaY += (argX-fMeanX)*(argY-fMeanY);\n";
- ss << " fSumSqrDeltaX += (argX-fMeanX) * (argX-fMeanX);\n";
- ss << " }\n";
- ss << " if(fSumSqrDeltaX == 0.0)\n";
- ss << " return CreateDoubleError(DivisionByZero);\n";
- ss << " else\n";
+ ss << " if (fCount < 1.0)\n";
+ ss << " return CreateDoubleError(NoValue);\n";
+ ss << " else\n";
+ ss << " {\n";
+ ss << " fMeanX = fSumX * pow(fCount,-1.0);\n";
+ ss << " fMeanY = fSumY * pow(fCount,-1.0);\n";
+
+ ss << " for (int i = ";
+ if ((!pDVR->IsStartFixed() && pDVR->IsEndFixed())
+ &&(!pDVR1->IsStartFixed() && pDVR1->IsEndFixed()))
+ {
+ ss << "gid0; i < " << arrayLength;
+ ss << " && i < " << nCurWindowSize << "; i++)\n";
+ ss << " {\n";
+ }
+ else if ((pDVR->IsStartFixed() && !pDVR->IsEndFixed())
+ &&(pDVR1->IsStartFixed() && !pDVR1->IsEndFixed()))
+ {
+ ss << "0; i < " << arrayLength ;
+ ss << " && i < gid0+" << nCurWindowSize << "; i++)\n";
+ ss << " {\n";
+ }
+ else if ((!pDVR->IsStartFixed() && !pDVR->IsEndFixed())
+ &&(!pDVR1->IsStartFixed() && !pDVR1->IsEndFixed()))
+ {
+ ss << "0; i + gid0 < " << arrayLength;
+ ss << " && i < " << nCurWindowSize << "; i++)\n";
ss << " {\n";
- ss << " return fSumDeltaXDeltaY*pow(fSumSqrDeltaX,-1.0);\n";
- ss << " }\n";
- ss << " }\n";
- ss << "}\n";
}
else
{
- throw Unhandled(__FILE__, __LINE__);
+ ss << "0; i < " << arrayLength << "; i++)\n";
+ ss << " {\n";
}
+
+ ss << " argX = ";
+ ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " argY = ";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " if (isnan(argX) || isnan(argY))\n";
+ ss << " continue;\n";
+ ss << " fSumDeltaXDeltaY += (argX-fMeanX)*(argY-fMeanY);\n";
+ ss << " fSumSqrDeltaX += (argX-fMeanX) * (argX-fMeanX);\n";
+ ss << " }\n";
+ ss << " if(fSumSqrDeltaX == 0.0)\n";
+ ss << " return CreateDoubleError(DivisionByZero);\n";
+ ss << " else\n";
+ ss << " {\n";
+ ss << " return fSumDeltaXDeltaY*pow(fSumSqrDeltaX,-1.0);\n";
+ ss << " }\n";
+ ss << " }\n";
+ ss << "}\n";
+
}
void OpSTEYX::GenSlidingWindowFunction(std::stringstream &ss,
const std::string &sSymName, SubArguments &vSubArguments)
@@ -6874,193 +6873,192 @@ void OpCovar::GenSlidingWindowFunction(std::stringstream& ss,
static_cast<const formula::DoubleVectorRefToken* >(pCurY);
size_t nCurWindowSizeX = pCurDVRX->GetRefRowSize();
size_t nCurWindowSizeY = pCurDVRY->GetRefRowSize();
- if(nCurWindowSizeX == nCurWindowSizeY)
- {
- ss << " for( ";
- if (!pCurDVRX->IsStartFixed() && pCurDVRX->IsEndFixed()) {
- ss << "int i = gid0; i < " << nCurWindowSizeX;
- ss << " && i < " << pCurDVRX->GetArrayLength() << " && i < ";
- ss << pCurDVRY->GetArrayLength() << "; i++){\n";
- ss << " if(isnan(";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ") ||";
- ss << " isnan("<< vSubArguments[1]->GenSlidingWindowDeclRef();
- ss << ")) {\n";
- ss << " arg0 = 0.0;\n";
- ss << " arg1 = 0.0;\n";
- ss << " --cnt;\n";
- ss << " }\n";
- ss << "else{\n";
- ss << " arg0 = ";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
- ss << " arg1 = ";
- ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";\n";
- ss << "}\n";
- ss << " ++cnt;\n";
- ss << " vSum0 += arg0;\n";
- ss << " vSum1 += arg1;\n";
- ss << " }\n";
- }
- else if (pCurDVRX->IsStartFixed() && !pCurDVRX->IsEndFixed()) {
- ss << "int i = 0; i < gid0 + " << nCurWindowSizeX << " && ";
- ss << " i < " << pCurDVRX->GetArrayLength() << " && ";
- ss << " i < " << pCurDVRY->GetArrayLength() << "; i++) {\n";
- ss << " if(isnan(";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ") ||";
- ss << " isnan(" << vSubArguments[1]->GenSlidingWindowDeclRef();
- ss << ")) {\n";
- ss << " arg0 = 0.0;\n";
- ss << " arg1 = 0.0;\n";
- ss << " --cnt;\n";
- ss << " }\n";
- ss << "else{\n";
- ss << " arg0 = ";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
- ss << " arg1 = ";
- ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";}\n";
- ss << " ++cnt;\n";
- ss << " vSum0 += arg0;\n";
- ss << " vSum1 += arg1;\n";
- ss << " }\n";
- }
- else if (pCurDVRX->IsStartFixed() && pCurDVRX->IsEndFixed()) {
- ss << "int i = 0; i < " << nCurWindowSizeX << " && i < ";
- ss << pCurDVRX->GetArrayLength() << " && i < ";
- ss << pCurDVRY->GetArrayLength() << "; i++) {\n";
- ss << " if(isnan(";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ") ||";
- ss << " isnan(" << vSubArguments[1]->GenSlidingWindowDeclRef();
- ss << ")) {\n";
- ss << " arg0 = 0.0;\n";
- ss << " arg1 = 0.0;\n";
- ss << " --cnt;\n";
- ss << " }\n";
- ss << "else{\n";
- ss << " arg0 = ";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
- ss << " arg1 = ";
- ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";}\n";
- ss << " ++cnt;\n";
- ss << " vSum0 += arg0;\n";
- ss << " vSum1 += arg1;\n";
- ss << " }\n";
- }
- else {
- ss << "int i = 0; i < " << nCurWindowSizeX << " && ";
- ss << " i + gid0 < " << pCurDVRX->GetArrayLength();
- ss << " && i + gid0 < " << pCurDVRY->GetArrayLength();
- ss << "; i++) {\n";
- ss << "if ((isnan(";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ")) || ";
- ss << "(isnan("<< vSubArguments[1]->GenSlidingWindowDeclRef();
- ss << "))) {\n";
- ss << " arg0 = 0.0;\n";
- ss << " arg1 = 0.0;\n";
- ss << " --cnt;\n";
- ss << " }\n";
- ss << " else {\n";
- ss << " arg0 = ";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
- ss << " arg1 = ";
- ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";\n";
- ss << " }\n";
- ss << " ++cnt;\n";
- ss << " vSum0 += arg0;\n";
- ss << " vSum1 += arg1;\n";
- ss << " }\n";
- }
- ss << " if(cnt < 1) {\n";
- ss << " return CreateDoubleError(NoValue);\n";
+ if(nCurWindowSizeX != nCurWindowSizeY)
+ {
+ throw Unhandled(__FILE__, __LINE__);
+ }
+
+ ss << " for( ";
+ if (!pCurDVRX->IsStartFixed() && pCurDVRX->IsEndFixed()) {
+ ss << "int i = gid0; i < " << nCurWindowSizeX;
+ ss << " && i < " << pCurDVRX->GetArrayLength() << " && i < ";
+ ss << pCurDVRY->GetArrayLength() << "; i++){\n";
+ ss << " if(isnan(";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ") ||";
+ ss << " isnan("<< vSubArguments[1]->GenSlidingWindowDeclRef();
+ ss << ")) {\n";
+ ss << " arg0 = 0.0;\n";
+ ss << " arg1 = 0.0;\n";
+ ss << " --cnt;\n";
+ ss << " }\n";
+ ss << "else{\n";
+ ss << " arg0 = ";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " arg1 = ";
+ ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";\n";
+ ss << "}\n";
+ ss << " ++cnt;\n";
+ ss << " vSum0 += arg0;\n";
+ ss << " vSum1 += arg1;\n";
ss << " }\n";
- ss << " else {\n";
- ss << " vMean0 = vSum0 / cnt;\n";
- ss << " vMean1 = vSum1 / cnt;\n";
- ss << " for(";
- if (!pCurDVRX->IsStartFixed() && pCurDVRX->IsEndFixed()) {
- ss << "int i = gid0; i < " << nCurWindowSizeX;
- ss << " && i < " << pCurDVRX->GetArrayLength() << " && i < ";
- ss << pCurDVRY->GetArrayLength() << "; i++){\n";
- ss << " if(isnan(";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ") ||";
- ss << " isnan(" << vSubArguments[1]->GenSlidingWindowDeclRef();
- ss << ")){\n";
- ss << " arg0 = vMean0;\n";
- ss << " arg1 = vMean1;\n";
- ss << " }\n";
- ss << " else{\n";
- ss << " arg0 = ";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
- ss << " arg1 = ";
- ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";}\n";
- ss << " vSum += (arg0 - vMean0) * (arg1 - vMean1);\n";
- ss << " }\n";
- }
- else if (pCurDVRX->IsStartFixed() && !pCurDVRX->IsEndFixed()) {
- ss << "int i = 0; i < gid0 + " << nCurWindowSizeX << " && ";
- ss << " i < " << pCurDVRX->GetArrayLength() << " && ";
- ss << " i < " << pCurDVRY->GetArrayLength() << "; i++) {\n";
- ss << " if(isnan(";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ") || ";
- ss << "isnan(" << vSubArguments[1]->GenSlidingWindowDeclRef();
- ss << ")) {\n";
- ss << " arg0 = vMean0;\n";
- ss << " arg1 = vMean1;\n";
- ss << " }\n";
- ss << "else{\n";
- ss << " arg0 = ";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
- ss << " arg1 = ";
- ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";}\n";
- ss << " vSum += (arg0 - vMean0) * (arg1 - vMean1);\n";
- ss << " }\n";
- }
- else if (pCurDVRX->IsStartFixed() && pCurDVRX->IsEndFixed()) {
- ss << "int i = 0; i < " << nCurWindowSizeX << " && i < ";
- ss << pCurDVRX->GetArrayLength() << " && i < ";
- ss << pCurDVRY->GetArrayLength() << "; i++) {\n";
- ss << " if(isnan(";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ") || ";
- ss << "isnan(" << vSubArguments[1]->GenSlidingWindowDeclRef();
- ss << ")) {\n";
- ss << " arg0 = vMean0;\n";
- ss << " arg1 = vMean1;\n";
- ss << " }\n";
- ss << "else{\n";
- ss << " arg0 = ";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
- ss << " arg1 = ";
- ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";}\n";
- ss << " vSum += (arg0 - vMean0) * (arg1 - vMean1);\n";
- ss << " }\n";
- }
- else {
- ss << "int i = 0; i < " << nCurWindowSizeX << " && ";
- ss << " i + gid0 < " << pCurDVRX->GetArrayLength();
- ss << " && i + gid0 < " << pCurDVRX->GetArrayLength();
- ss << "; i++) {\n";
- ss << "if((isnan(";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ")) || ";
- ss << "(isnan(" << vSubArguments[1]->GenSlidingWindowDeclRef();
- ss << "))) {\n";
- ss << " arg0 = vMean0;\n";
- ss << " arg1 = vMean1;\n";
- ss << " }\n";
- ss << " else{\n";
- ss << " arg0 = ";
- ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
- ss << " arg1 = ";
- ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";\n";
- ss << " }\n";
- ss << " vSum += (arg0 - vMean0) * (arg1 - vMean1);\n";
- ss << " }\n";
- }
- ss << " return vSum / cnt;\n";
+ }
+ else if (pCurDVRX->IsStartFixed() && !pCurDVRX->IsEndFixed()) {
+ ss << "int i = 0; i < gid0 + " << nCurWindowSizeX << " && ";
+ ss << " i < " << pCurDVRX->GetArrayLength() << " && ";
+ ss << " i < " << pCurDVRY->GetArrayLength() << "; i++) {\n";
+ ss << " if(isnan(";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ") ||";
+ ss << " isnan(" << vSubArguments[1]->GenSlidingWindowDeclRef();
+ ss << ")) {\n";
+ ss << " arg0 = 0.0;\n";
+ ss << " arg1 = 0.0;\n";
+ ss << " --cnt;\n";
+ ss << " }\n";
+ ss << "else{\n";
+ ss << " arg0 = ";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " arg1 = ";
+ ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";}\n";
+ ss << " ++cnt;\n";
+ ss << " vSum0 += arg0;\n";
+ ss << " vSum1 += arg1;\n";
ss << " }\n";
- ss << "}";
}
- else
- {
- throw Unhandled(__FILE__, __LINE__);
+ else if (pCurDVRX->IsStartFixed() && pCurDVRX->IsEndFixed()) {
+ ss << "int i = 0; i < " << nCurWindowSizeX << " && i < ";
+ ss << pCurDVRX->GetArrayLength() << " && i < ";
+ ss << pCurDVRY->GetArrayLength() << "; i++) {\n";
+ ss << " if(isnan(";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ") ||";
+ ss << " isnan(" << vSubArguments[1]->GenSlidingWindowDeclRef();
+ ss << ")) {\n";
+ ss << " arg0 = 0.0;\n";
+ ss << " arg1 = 0.0;\n";
+ ss << " --cnt;\n";
+ ss << " }\n";
+ ss << "else{\n";
+ ss << " arg0 = ";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " arg1 = ";
+ ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";}\n";
+ ss << " ++cnt;\n";
+ ss << " vSum0 += arg0;\n";
+ ss << " vSum1 += arg1;\n";
+ ss << " }\n";
}
+ else {
+ ss << "int i = 0; i < " << nCurWindowSizeX << " && ";
+ ss << " i + gid0 < " << pCurDVRX->GetArrayLength();
+ ss << " && i + gid0 < " << pCurDVRY->GetArrayLength();
+ ss << "; i++) {\n";
+ ss << "if ((isnan(";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ")) || ";
+ ss << "(isnan("<< vSubArguments[1]->GenSlidingWindowDeclRef();
+ ss << "))) {\n";
+ ss << " arg0 = 0.0;\n";
+ ss << " arg1 = 0.0;\n";
+ ss << " --cnt;\n";
+ ss << " }\n";
+ ss << " else {\n";
+ ss << " arg0 = ";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " arg1 = ";
+ ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " }\n";
+ ss << " ++cnt;\n";
+ ss << " vSum0 += arg0;\n";
+ ss << " vSum1 += arg1;\n";
+ ss << " }\n";
+ }
+ ss << " if(cnt < 1) {\n";
+ ss << " return CreateDoubleError(NoValue);\n";
+ ss << " }\n";
+ ss << " else {\n";
+ ss << " vMean0 = vSum0 / cnt;\n";
+ ss << " vMean1 = vSum1 / cnt;\n";
+ ss << " for(";
+ if (!pCurDVRX->IsStartFixed() && pCurDVRX->IsEndFixed()) {
+ ss << "int i = gid0; i < " << nCurWindowSizeX;
+ ss << " && i < " << pCurDVRX->GetArrayLength() << " && i < ";
+ ss << pCurDVRY->GetArrayLength() << "; i++){\n";
+ ss << " if(isnan(";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ") ||";
+ ss << " isnan(" << vSubArguments[1]->GenSlidingWindowDeclRef();
+ ss << ")){\n";
+ ss << " arg0 = vMean0;\n";
+ ss << " arg1 = vMean1;\n";
+ ss << " }\n";
+ ss << " else{\n";
+ ss << " arg0 = ";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " arg1 = ";
+ ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";}\n";
+ ss << " vSum += (arg0 - vMean0) * (arg1 - vMean1);\n";
+ ss << " }\n";
+ }
+ else if (pCurDVRX->IsStartFixed() && !pCurDVRX->IsEndFixed()) {
+ ss << "int i = 0; i < gid0 + " << nCurWindowSizeX << " && ";
+ ss << " i < " << pCurDVRX->GetArrayLength() << " && ";
+ ss << " i < " << pCurDVRY->GetArrayLength() << "; i++) {\n";
+ ss << " if(isnan(";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ") || ";
+ ss << "isnan(" << vSubArguments[1]->GenSlidingWindowDeclRef();
+ ss << ")) {\n";
+ ss << " arg0 = vMean0;\n";
+ ss << " arg1 = vMean1;\n";
+ ss << " }\n";
+ ss << "else{\n";
+ ss << " arg0 = ";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " arg1 = ";
+ ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";}\n";
+ ss << " vSum += (arg0 - vMean0) * (arg1 - vMean1);\n";
+ ss << " }\n";
+ }
+ else if (pCurDVRX->IsStartFixed() && pCurDVRX->IsEndFixed()) {
+ ss << "int i = 0; i < " << nCurWindowSizeX << " && i < ";
+ ss << pCurDVRX->GetArrayLength() << " && i < ";
+ ss << pCurDVRY->GetArrayLength() << "; i++) {\n";
+ ss << " if(isnan(";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ") || ";
+ ss << "isnan(" << vSubArguments[1]->GenSlidingWindowDeclRef();
+ ss << ")) {\n";
+ ss << " arg0 = vMean0;\n";
+ ss << " arg1 = vMean1;\n";
+ ss << " }\n";
+ ss << "else{\n";
+ ss << " arg0 = ";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " arg1 = ";
+ ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";}\n";
+ ss << " vSum += (arg0 - vMean0) * (arg1 - vMean1);\n";
+ ss << " }\n";
+ }
+ else {
+ ss << "int i = 0; i < " << nCurWindowSizeX << " && ";
+ ss << " i + gid0 < " << pCurDVRX->GetArrayLength();
+ ss << " && i + gid0 < " << pCurDVRX->GetArrayLength();
+ ss << "; i++) {\n";
+ ss << "if((isnan(";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ")) || ";
+ ss << "(isnan(" << vSubArguments[1]->GenSlidingWindowDeclRef();
+ ss << "))) {\n";
+ ss << " arg0 = vMean0;\n";
+ ss << " arg1 = vMean1;\n";
+ ss << " }\n";
+ ss << " else{\n";
+ ss << " arg0 = ";
+ ss << vSubArguments[0]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " arg1 = ";
+ ss << vSubArguments[1]->GenSlidingWindowDeclRef() << ";\n";
+ ss << " }\n";
+ ss << " vSum += (arg0 - vMean0) * (arg1 - vMean1);\n";
+ ss << " }\n";
+ }
+ ss << " return vSum / cnt;\n";
+ ss << " }\n";
+ ss << "}";
+
}
else {
ss << " int cnt0 = 0,cnt1 = 0;\n";
diff --git a/sc/source/core/opencl/opbase.cxx b/sc/source/core/opencl/opbase.cxx
index 7755610a14f3..e197ea002bb3 100644
--- a/sc/source/core/opencl/opbase.cxx
+++ b/sc/source/core/opencl/opbase.cxx
@@ -251,23 +251,22 @@ void CheckVariables::CheckSubArgumentIsNan( std::stringstream& ss,
ss << vSubArguments[i]->GenSlidingWindowDeclRef();
ss << ";\n";
}
- if (vSubArguments[i]->GetFormulaToken()->GetType() == formula::svDouble ||
- vSubArguments[i]->GetFormulaToken()->GetOpCode() != ocPush)
- {
- ss << " if(";
- ss << "isnan(";
- ss << vSubArguments[i]->GenSlidingWindowDeclRef();
- ss << "))\n";
- ss << " tmp";
- ss << i;
- ss << "=0;\n else \n";
- ss << " tmp";
- ss << i;
- ss << "=";
- ss << vSubArguments[i]->GenSlidingWindowDeclRef();
- ss << ";\n";
+ if (vSubArguments[i]->GetFormulaToken()->GetType() != formula::svDouble &&
+ vSubArguments[i]->GetFormulaToken()->GetOpCode() == ocPush)
+ return;
- }
+ ss << " if(";
+ ss << "isnan(";
+ ss << vSubArguments[i]->GenSlidingWindowDeclRef();
+ ss << "))\n";
+ ss << " tmp";
+ ss << i;
+ ss << "=0;\n else \n";
+ ss << " tmp";
+ ss << i;
+ ss << "=";
+ ss << vSubArguments[i]->GenSlidingWindowDeclRef();
+ ss << ";\n";
}
diff --git a/sc/source/core/tool/formulalogger.cxx b/sc/source/core/tool/formulalogger.cxx
index cb072c7a4ef8..3f600cdb9743 100644
--- a/sc/source/core/tool/formulalogger.cxx
+++ b/sc/source/core/tool/formulalogger.cxx
@@ -75,20 +75,20 @@ struct FormulaLogger::GroupScope::Impl
{
++mrLogger.mnNestLevel;
- if (mbOutputEnabled)
- {
- sc::TokenStringContext aCxt(&rDoc, rDoc.GetGrammar());
- OUString aFormula = rCell.GetCode()->CreateString(aCxt, rCell.aPos);
+ if (!mbOutputEnabled)
+ return;
- mrLogger.write(maPrefix);
- mrLogger.writeNestLevel();
+ sc::TokenStringContext aCxt(&rDoc, rDoc.GetGrammar());
+ OUString aFormula = rCell.GetCode()->CreateString(aCxt, rCell.aPos);
- mrLogger.writeAscii("-- enter (formula='");
- mrLogger.write(aFormula);
- mrLogger.writeAscii("', size=");
- mrLogger.write(rCell.GetSharedLength());
- mrLogger.writeAscii(")\n");
- }
+ mrLogger.write(maPrefix);
+ mrLogger.writeNestLevel();
+
+ mrLogger.writeAscii("-- enter (formula='");
+ mrLogger.write(aFormula);
+ mrLogger.writeAscii("', size=");
+ mrLogger.write(rCell.GetSharedLength());
+ mrLogger.writeAscii(")\n");
}
~Impl()
diff --git a/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx b/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx
index 9127f879d17a..dea6561288a6 100644
--- a/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx
+++ b/sc/source/ui/StatisticsDialogs/RandomNumberGeneratorDialog.cxx
@@ -132,19 +132,19 @@ void ScRandomNumberGeneratorDialog::Close()
void ScRandomNumberGeneratorDialog::SetReference( const ScRange& rReferenceRange, ScDocument& rDoc )
{
- if (mxInputRangeEdit->GetWidget()->get_sensitive())
- {
- if ( rReferenceRange.aStart != rReferenceRange.aEnd )
- RefInputStart(mxInputRangeEdit.get());
+ if (!mxInputRangeEdit->GetWidget()->get_sensitive())
+ return;
- maInputRange = rReferenceRange;
+ if ( rReferenceRange.aStart != rReferenceRange.aEnd )
+ RefInputStart(mxInputRangeEdit.get());
- OUString aReferenceString(maInputRange.Format(rDoc, ScRefFlags::RANGE_ABS_3D, rDoc.GetAddressConvention()));
- mxInputRangeEdit->SetRefString( aReferenceString );
+ maInputRange = rReferenceRange;
- mxButtonApply->set_sensitive(true);
- mxButtonOk->set_sensitive(true);
- }
+ OUString aReferenceString(maInputRange.Format(rDoc, ScRefFlags::RANGE_ABS_3D, rDoc.GetAddressConvention()));
+ mxInputRangeEdit->SetRefString( aReferenceString );
+
+ mxButtonApply->set_sensitive(true);
+ mxButtonOk->set_sensitive(true);
}
void ScRandomNumberGeneratorDialog::SelectGeneratorAndGenerateNumbers()
diff --git a/sc/source/ui/app/inputhdl.cxx b/sc/source/ui/app/inputhdl.cxx
index 377077f7032b..1eda36788038 100644
--- a/sc/source/ui/app/inputhdl.cxx
+++ b/sc/source/ui/app/inputhdl.cxx
@@ -1944,49 +1944,49 @@ void ScInputHandler::UseColData() // When typing
OUString aNew;
miAutoPosColumn = pColumnData->end();
miAutoPosColumn = findText(*pColumnData, miAutoPosColumn, aText, aNew, false);
- if (miAutoPosColumn != pColumnData->end())
- {
- // Strings can contain line endings (e.g. due to dBase import),
- // which would result in multiple paragraphs here, which is not desirable.
- //! Then GetExactMatch doesn't work either
- lcl_RemoveLineEnd( aNew );
+ if (miAutoPosColumn == pColumnData->end())
+ return;
- // Keep paragraph, just append the rest
- //! Exact replacement in EnterHandler !!!
- // One Space between paragraphs:
- sal_Int32 nEdLen = mpEditEngine->GetTextLen() + nParCnt - 1;
- OUString aIns = aNew.copy(nEdLen);
+ // Strings can contain line endings (e.g. due to dBase import),
+ // which would result in multiple paragraphs here, which is not desirable.
+ //! Then GetExactMatch doesn't work either
+ lcl_RemoveLineEnd( aNew );
- // Selection must be "backwards", so the cursor stays behind the last
- // typed character
- ESelection aSelection( aSel.nEndPara, aSel.nEndPos + aIns.getLength(),
- aSel.nEndPara, aSel.nEndPos );
+ // Keep paragraph, just append the rest
+ //! Exact replacement in EnterHandler !!!
+ // One Space between paragraphs:
+ sal_Int32 nEdLen = mpEditEngine->GetTextLen() + nParCnt - 1;
+ OUString aIns = aNew.copy(nEdLen);
- // When editing in input line, apply to both edit views
- if ( pTableView )
- {
- pTableView->InsertText( aIns );
- pTableView->SetSelection( aSelection );
- }
- if ( pTopView )
- {
- pTopView->InsertText( aIns );
- pTopView->SetSelection( aSelection );
- }
+ // Selection must be "backwards", so the cursor stays behind the last
+ // typed character
+ ESelection aSelection( aSel.nEndPara, aSel.nEndPos + aIns.getLength(),
+ aSel.nEndPara, aSel.nEndPos );
+
+ // When editing in input line, apply to both edit views
+ if ( pTableView )
+ {
+ pTableView->InsertText( aIns );
+ pTableView->SetSelection( aSelection );
+ }
+ if ( pTopView )
+ {
+ pTopView->InsertText( aIns );
+ pTopView->SetSelection( aSelection );
+ }
- aAutoSearch = aText; // To keep searching - nAutoPos is set
+ aAutoSearch = aText; // To keep searching - nAutoPos is set
- if (aText.getLength() == aNew.getLength())
- {
- // If the inserted text is found, consume TAB only if there's more coming
- OUString aDummy;
- ScTypedCaseStrSet::const_iterator itNextPos =
- findText(*pColumnData, miAutoPosColumn, aText, aDummy, false);
- bUseTab = itNextPos != pColumnData->end();
- }
- else
- bUseTab = true;
+ if (aText.getLength() == aNew.getLength())
+ {
+ // If the inserted text is found, consume TAB only if there's more coming
+ OUString aDummy;
+ ScTypedCaseStrSet::const_iterator itNextPos =
+ findText(*pColumnData, miAutoPosColumn, aText, aDummy, false);
+ bUseTab = itNextPos != pColumnData->end();
}
+ else
+ bUseTab = true;
}
void ScInputHandler::NextAutoEntry( bool bBack )
diff --git a/sc/source/ui/dbgui/pfiltdlg.cxx b/sc/source/ui/dbgui/pfiltdlg.cxx
index 8ab7a954f440..98b0580bdda9 100644
--- a/sc/source/ui/dbgui/pfiltdlg.cxx
+++ b/sc/source/ui/dbgui/pfiltdlg.cxx
@@ -219,66 +219,66 @@ void ScPivotFilterDlg::FillFieldLists()
m_xLbField2->append_text(aStrNone);
m_xLbField3->append_text(aStrNone);
- if ( pDoc )
+ if ( !pDoc )
+ return;
+
+ OUString aFieldName;
+ SCTAB nTab = nSrcTab;
+ SCCOL nFirstCol = theQueryData.nCol1;
+ SCROW nFirstRow = theQueryData.nRow1;
+ SCCOL nMaxCol = theQueryData.nCol2;
+ SCCOL col = 0;
+
+ for ( col=nFirstCol; col<=nMaxCol; col++ )
{
- OUString aFieldName;
- SCTAB nTab = nSrcTab;
- SCCOL nFirstCol = theQueryData.nCol1;
- SCROW nFirstRow = theQueryData.nRow1;
- SCCOL nMaxCol = theQueryData.nCol2;
- SCCOL col = 0;
-
- for ( col=nFirstCol; col<=nMaxCol; col++ )
+ aFieldName = pDoc->GetString(col, nFirstRow, nTab);
+ if ( aFieldName.isEmpty() )
{
- aFieldName = pDoc->GetString(col, nFirstRow, nTab);
- if ( aFieldName.isEmpty() )
- {
- aFieldName = ScGlobal::ReplaceOrAppend( aStrColumn, "%1", ScColToAlpha( col ));
- }
- m_xLbField1->append_text(aFieldName);
- m_xLbField2->append_text(aFieldName);
- m_xLbField3->append_text(aFieldName);
+ aFieldName = ScGlobal::ReplaceOrAppend( aStrColumn, "%1", ScColToAlpha( col ));
}
+ m_xLbField1->append_text(aFieldName);
+ m_xLbField2->append_text(aFieldName);
+ m_xLbField3->append_text(aFieldName);
}
}
void ScPivotFilterDlg::UpdateValueList( sal_uInt16 nList )
{
- if ( pDoc && nList>0 && nList<=3 )
- {
- weld::ComboBox* pValList = aValueEdArr[nList-1];
- sal_Int32 nFieldSelPos = aFieldLbArr[nList-1]->get_active();
- OUString aCurValue = pValList->get_active_text();
+ if ( !(pDoc && nList>0 && nList<=3) )
+ return;
- pValList->clear();
- pValList->append_text(aStrNotEmpty);
- pValList->append_text(aStrEmpty);
+ weld::ComboBox* pValList = aValueEdArr[nList-1];
+ sal_Int32 nFieldSelPos = aFieldLbArr[nList-1]->get_active();
+ OUString aCurValue = pValList->get_active_text();
+
+ pValList->clear();
+ pValList->append_text(aStrNotEmpty);
+ pValList->append_text(aStrEmpty);
- if ( pDoc && nFieldSelPos )
+ if ( pDoc && nFieldSelPos )
+ {
+ SCCOL nColumn = theQueryData.nCol1 + static_cast<SCCOL>(nFieldSelPos) - 1;
+ if (!m_pEntryLists[nColumn])
{
- SCCOL nColumn = theQueryData.nCol1 + static_cast<SCCOL>(nFieldSelPos) - 1;
- if (!m_pEntryLists[nColumn])
- {
- weld::WaitObject aWaiter(m_xDialog.get());
-
- SCTAB nTab = nSrcTab;
- SCROW nFirstRow = theQueryData.nRow1;
- SCROW nLastRow = theQueryData.nRow2;
- nFirstRow++;
- bool bCaseSens = m_xBtnCase->get_active();
- m_pEntryLists[nColumn].reset( new ScFilterEntries);
- pDoc->GetFilterEntriesArea(
- nColumn, nFirstRow, nLastRow, nTab, bCaseSens, *m_pEntryLists[nColumn]);
- }
+ weld::WaitObject aWaiter(m_xDialog.get());
+
+ SCTAB nTab = nSrcTab;
+ SCROW nFirstRow = theQueryData.nRow1;
+ SCROW nLastRow = theQueryData.nRow2;
+ nFirstRow++;
+ bool bCaseSens = m_xBtnCase->get_active();
+ m_pEntryLists[nColumn].reset( new ScFilterEntries);
+ pDoc->GetFilterEntriesArea(
+ nColumn, nFirstRow, nLastRow, nTab, bCaseSens, *m_pEntryLists[nColumn]);
+ }
- const ScFilterEntries* pColl = m_pEntryLists[nColumn].get();
- for (const auto& rEntry : *pColl)
- {
- pValList->append_text(rEntry.GetString());
- }
+ const ScFilterEntries* pColl = m_pEntryLists[nColumn].get();
+ for (const auto& rEntry : *pColl)
+ {
+ pValList->append_text(rEntry.GetString());
}
- pValList->set_entry_text(aCurValue);
}
+ pValList->set_entry_text(aCurValue);
}
void ScPivotFilterDlg::ClearValueList( sal_uInt16 nList )
@@ -467,21 +467,21 @@ IMPL_LINK(ScPivotFilterDlg, CheckBoxHdl, weld::Button&, rBox, void)
{
// update the value lists when dealing with uppercase/lowercase
- if (&rBox == m_xBtnCase.get()) // value lists
- {
- for (auto& a : m_pEntryLists)
- a.reset();
-
- OUString aCurVal1 = m_xEdVal1->get_active_text();
- OUString aCurVal2 = m_xEdVal2->get_active_text();
- OUString aCurVal3 = m_xEdVal3->get_active_text();
- UpdateValueList( 1 );
- UpdateValueList( 2 );
- UpdateValueList( 3 );
- m_xEdVal1->set_entry_text(aCurVal1);
- m_xEdVal2->set_entry_text(aCurVal2);
- m_xEdVal3->set_entry_text(aCurVal3);
- }
+ if (&rBox != m_xBtnCase.get()) // value lists
+ return;
+
+ for (auto& a : m_pEntryLists)
+ a.reset();
+
+ OUString aCurVal1 = m_xEdVal1->get_active_text();
+ OUString aCurVal2 = m_xEdVal2->get_active_text();
+ OUString aCurVal3 = m_xEdVal3->get_active_text();
+ UpdateValueList( 1 );
+ UpdateValueList( 2 );
+ UpdateValueList( 3 );
+ m_xEdVal1->set_entry_text(aCurVal1);
+ m_xEdVal2->set_entry_text(aCurVal2);
+ m_xEdVal3->set_entry_text(aCurVal3);
}
IMPL_LINK( ScPivotFilterDlg, ValModifyHdl, weld::ComboBox&, rEd, void )
diff --git a/sc/source/ui/dbgui/tpsort.cxx b/sc/source/ui/dbgui/tpsort.cxx
index 2e7ed6e3af8d..5ad843793a37 100644
--- a/sc/source/ui/dbgui/tpsort.cxx
+++ b/sc/source/ui/dbgui/tpsort.cxx
@@ -276,23 +276,23 @@ void ScTabPageSortFields::ActivatePage( const SfxItemSet& rSet )
{
// Refresh local copy with shared data
aSortData = static_cast<const ScSortItem&>(rSet.Get( SCITEM_SORTDATA )).GetSortData();
- if (ScSortDlg* pDlg = static_cast<ScSortDlg*>(GetDialogController()))
- {
- if ( bHasHeader != pDlg->GetHeaders()
- || bSortByRows != pDlg->GetByRows() )
- {
- std::vector<sal_uInt16> nCurSel;
- for ( sal_uInt16 i=0; i<nSortKeyCount; i++ )
- nCurSel.push_back( m_aSortWin.m_aSortKeyItems[i]->m_xLbSort->get_active() );
+ ScSortDlg* pDlg = static_cast<ScSortDlg*>(GetDialogController());
+ if (!pDlg)
+ return;
- bHasHeader = pDlg->GetHeaders();
- bSortByRows = pDlg->GetByRows();
- FillFieldLists(0);
+ if ( bHasHeader == pDlg->GetHeaders() && bSortByRows == pDlg->GetByRows() )
+ return;
- for ( sal_uInt16 i=0; i<nSortKeyCount; i++ )
- m_aSortWin.m_aSortKeyItems[i]->m_xLbSort->set_active(nCurSel[i]);
- }
- }
+ std::vector<sal_uInt16> nCurSel;
+ for ( sal_uInt16 i=0; i<nSortKeyCount; i++ )
+ nCurSel.push_back( m_aSortWin.m_aSortKeyItems[i]->m_xLbSort->get_active() );
+
+ bHasHeader = pDlg->GetHeaders();
+ bSortByRows = pDlg->GetByRows();
+ FillFieldLists(0);
+
+ for ( sal_uInt16 i=0; i<nSortKeyCount; i++ )
+ m_aSortWin.m_aSortKeyItems[i]->m_xLbSort->set_active(nCurSel[i]);
}
DeactivateRC ScTabPageSortFields::DeactivatePage( SfxItemSet* pSetP )
@@ -314,77 +314,77 @@ DeactivateRC ScTabPageSortFields::DeactivatePage( SfxItemSet* pSetP )
void ScTabPageSortFields::FillFieldLists( sal_uInt16 nStartField )
{
- if ( pViewData )
+ if ( !pViewData )
+ return;
+
+ ScDocument* pDoc = pViewData->GetDocument();
+
+ if ( !pDoc )
+ return;
+
+ for (sal_uInt16 j = nStartField; j < nSortKeyCount; ++j)
+ {
+ m_aSortWin.m_aSortKeyItems[j]->m_xLbSort->clear();
+ m_aSortWin.m_aSortKeyItems[j]->m_xLbSort->freeze();
+ m_aSortWin.m_aSortKeyItems[j]->m_xLbSort->append_text(aStrUndefined);
+ }
+
+ SCCOL nFirstSortCol = aSortData.nCol1;
+ SCROW nFirstSortRow = aSortData.nRow1;
+ SCTAB nTab = pViewData->GetTabNo();
+ sal_uInt16 i = 1;
+ nFieldArr.clear();
+ nFieldArr.push_back(0);
+
+ if ( bSortByRows )
{
- ScDocument* pDoc = pViewData->GetDocument();
+ OUString aFieldName;
+ SCCOL nMaxCol = pDoc->ClampToAllocatedColumns(nTab, aSortData.nCol2);
+ SCCOL col;
- if ( pDoc )
+ for ( col=nFirstSortCol; col<=nMaxCol && i<SC_MAXFIELDS; col++ )
{
- for (sal_uInt16 j = nStartField; j < nSortKeyCount; ++j)
+ aFieldName = pDoc->GetString(col, nFirstSortRow, nTab);
+ if ( !bHasHeader || aFieldName.isEmpty() )
{
- m_aSortWin.m_aSortKeyItems[j]->m_xLbSort->clear();
- m_aSortWin.m_aSortKeyItems[j]->m_xLbSort->freeze();
- m_aSortWin.m_aSortKeyItems[j]->m_xLbSort->append_text(aStrUndefined);
+ aFieldName = ScGlobal::ReplaceOrAppend( aStrColumn, "%1", ScColToAlpha( col ));
}
+ nFieldArr.push_back( col );
- SCCOL nFirstSortCol = aSortData.nCol1;
- SCROW nFirstSortRow = aSortData.nRow1;
- SCTAB nTab = pViewData->GetTabNo();
- sal_uInt16 i = 1;
- nFieldArr.clear();
- nFieldArr.push_back(0);
+ for ( sal_uInt16 j=nStartField; j<nSortKeyCount; j++ )
+ m_aSortWin.m_aSortKeyItems[j]->m_xLbSort->insert_text(i, aFieldName);
- if ( bSortByRows )
- {
- OUString aFieldName;
- SCCOL nMaxCol = pDoc->ClampToAllocatedColumns(nTab, aSortData.nCol2);
- SCCOL col;
-
- for ( col=nFirstSortCol; col<=nMaxCol && i<SC_MAXFIELDS; col++ )
- {
- aFieldName = pDoc->GetString(col, nFirstSortRow, nTab);
- if ( !bHasHeader || aFieldName.isEmpty() )
- {
- aFieldName = ScGlobal::ReplaceOrAppend( aStrColumn, "%1", ScColToAlpha( col ));
- }
- nFieldArr.push_back( col );
-
- for ( sal_uInt16 j=nStartField; j<nSortKeyCount; j++ )
- m_aSortWin.m_aSortKeyItems[j]->m_xLbSort->insert_text(i, aFieldName);
-
- i++;
- }
- }
- else
- {
- OUString aFieldName;
- SCROW nMaxRow = aSortData.nRow2;
- SCROW row;
-
- for ( row=nFirstSortRow; row<=nMaxRow && i<SC_MAXFIELDS; row++ )
- {
- aFieldName = pDoc->GetString(nFirstSortCol, row, nTab);
- if ( !bHasHeader || aFieldName.isEmpty() )
- {
- aFieldName = ScGlobal::ReplaceOrAppend( aStrRow, "%1", OUString::number( row+1));
- }
- nFieldArr.push_back( row );
-
- for ( sal_uInt16 j=nStartField; j<nSortKeyCount; j++ )
- m_aSortWin.m_aSortKeyItems[j]->m_xLbSort->insert_text(i, aFieldName);
-
- i++;
- }
- }
+ i++;
+ }
+ }
+ else
+ {
+ OUString aFieldName;
+ SCROW nMaxRow = aSortData.nRow2;
+ SCROW row;
- for (sal_uInt16 j=nStartField; j < nSortKeyCount; ++j)
+ for ( row=nFirstSortRow; row<=nMaxRow && i<SC_MAXFIELDS; row++ )
+ {
+ aFieldName = pDoc->GetString(nFirstSortCol, row, nTab);
+ if ( !bHasHeader || aFieldName.isEmpty() )
{
- m_aSortWin.m_aSortKeyItems[j]->m_xLbSort->thaw();
+ aFieldName = ScGlobal::ReplaceOrAppend( aStrRow, "%1", OUString::number( row+1));
}
+ nFieldArr.push_back( row );
- nFieldCount = i;
+ for ( sal_uInt16 j=nStartField; j<nSortKeyCount; j++ )
+ m_aSortWin.m_aSortKeyItems[j]->m_xLbSort->insert_text(i, aFieldName);
+
+ i++;
}
}
+
+ for (sal_uInt16 j=nStartField; j < nSortKeyCount; ++j)
+ {
+ m_aSortWin.m_aSortKeyItems[j]->m_xLbSort->thaw();
+ }
+
+ nFieldCount = i;
}
sal_uInt16 ScTabPageSortFields::GetFieldSelPos( SCCOLROW nField )
@@ -449,22 +449,22 @@ IMPL_LINK( ScTabPageSortFields, SelectHdl, weld::ComboBox&, rLb, void )
// If not selecting the last Listbox, modify the succeeding ones
++pIter;
- if ( std::distance(m_aSortWin.m_aSortKeyItems.begin(), pIter) < nSortKeyCount )
+ if ( std::distance(m_aSortWin.m_aSortKeyItems.begin(), pIter) >= nSortKeyCount )
+ return;
+
+ if ( aSelEntry == aStrUndefined )
{
- if ( aSelEntry == aStrUndefined )
+ for ( ; pIter != m_aSortWin.m_aSortKeyItems.end(); ++pIter )
{
- for ( ; pIter != m_aSortWin.m_aSortKeyItems.end(); ++pIter )
- {
- (*pIter)->m_xLbSort->set_active(0);
+ (*pIter)->m_xLbSort->set_active(0);
- (*pIter)->DisableField();
- }
- }
- else
- {
- (*pIter)->EnableField();
+ (*pIter)->DisableField();
}
- }
+ }
+ else
+ {
+ (*pIter)->EnableField();
+ }
}
IMPL_LINK_NOARG(ScTabPageSortFields, ScrollToEndHdl, Timer*, void)
@@ -709,23 +709,24 @@ void ScTabPageSortOptions::ActivatePage( const SfxItemSet& rSet )
{
// Refresh local copy with shared data
aSortData = static_cast<const ScSortItem&>(rSet.Get( SCITEM_SORTDATA )).GetSortData();
- if (ScSortDlg* pDlg = static_cast<ScSortDlg*>(GetDialogController()))
- {
- if ( m_xBtnHeader->get_active() != pDlg->GetHeaders() )
- {
- m_xBtnHeader->set_active( pDlg->GetHeaders() );
- }
+ ScSortDlg* pDlg = static_cast<ScSortDlg*>(GetDialogController());
+ if (!pDlg)
+ return;
- if ( m_xBtnTopDown->get_active() != pDlg->GetByRows() )
- {
- m_xBtnTopDown->set_active( pDlg->GetByRows() );
- m_xBtnLeftRight->set_active( !pDlg->GetByRows() );
- }
+ if ( m_xBtnHeader->get_active() != pDlg->GetHeaders() )
+ {
+ m_xBtnHeader->set_active( pDlg->GetHeaders() );
+ }
- m_xBtnHeader->set_label( (pDlg->GetByRows())
- ? aStrColLabel
- : aStrRowLabel );
+ if ( m_xBtnTopDown->get_active() != pDlg->GetByRows() )
+ {
+ m_xBtnTopDown->set_active( pDlg->GetByRows() );
+ m_xBtnLeftRight->set_active( !pDlg->GetByRows() );
}
+
+ m_xBtnHeader->set_label( (pDlg->GetByRows())
+ ? aStrColLabel
+ : aStrRowLabel );
}
DeactivateRC ScTabPageSortOptions::DeactivatePage( SfxItemSet* pSetP )
@@ -852,23 +853,23 @@ void ScTabPageSortOptions::EdOutPosModHdl()
OUString theCurPosStr = m_xEdOutPos->get_text();
ScRefFlags nResult = ScAddress().Parse( theCurPosStr, pDoc, pDoc->GetAddressConvention() );
- if ( (nResult & ScRefFlags::VALID) == ScRefFlags::VALID )
- {
- bool bFound = false;
- sal_Int32 i = 0;
- const int nCount = m_xLbOutPos->get_count();
+ if ( (nResult & ScRefFlags::VALID) != ScRefFlags::VALID )
+ return;
- for ( i=2; i<nCount && !bFound; i++ )
- {
- OUString aStr = m_xLbOutPos->get_id(i);
- bFound = (theCurPosStr == aStr);
- }
+ bool bFound = false;
+ sal_Int32 i = 0;
+ const int nCount = m_xLbOutPos->get_count();
- if ( bFound )
- m_xLbOutPos->set_active(--i);
- else
- m_xLbOutPos->set_active(0);
+ for ( i=2; i<nCount && !bFound; i++ )
+ {
+ OUString aStr = m_xLbOutPos->get_id(i);
+ bFound = (theCurPosStr == aStr);
}
+
+ if ( bFound )
+ m_xLbOutPos->set_active(--i);
+ else
+ m_xLbOutPos->set_active(0);
}
void ScTabPageSortOptions::FillAlgor()
diff --git a/sc/source/ui/dbgui/tpsubt.cxx b/sc/source/ui/dbgui/tpsubt.cxx
index ed23b10017a6..92ff178eeaef 100644
--- a/sc/source/ui/dbgui/tpsubt.cxx
+++ b/sc/source/ui/dbgui/tpsubt.cxx
@@ -235,38 +235,38 @@ void ScTpSubTotalGroup::FillListBoxes()
{
OSL_ENSURE( pViewData && pDoc, "ViewData or Document not found :-/" );
- if ( pViewData && pDoc )
+ if ( !(pViewData && pDoc) )
+ return;
+
+ SCCOL nFirstCol = rSubTotalData.nCol1;
+ SCROW nFirstRow = rSubTotalData.nRow1;
+ SCTAB nTab = pViewData->GetTabNo();
+ SCCOL nMaxCol = rSubTotalData.nCol2;
+ SCCOL col;
+ OUString aFieldName;
+
+ mxLbGroup->clear();
+ mxLbColumns->clear();
+ mxLbGroup->insert_text(0, aStrNone );
+
+ sal_uInt16 i=0;
+ for ( col=nFirstCol; col<=nMaxCol && i<SC_MAXFIELDS; col++ )
{
- SCCOL nFirstCol = rSubTotalData.nCol1;
- SCROW nFirstRow = rSubTotalData.nRow1;
- SCTAB nTab = pViewData->GetTabNo();
- SCCOL nMaxCol = rSubTotalData.nCol2;
- SCCOL col;
- OUString aFieldName;
-
- mxLbGroup->clear();
- mxLbColumns->clear();
- mxLbGroup->insert_text(0, aStrNone );
-
- sal_uInt16 i=0;
- for ( col=nFirstCol; col<=nMaxCol && i<SC_MAXFIELDS; col++ )
+ aFieldName = pDoc->GetString(col, nFirstRow, nTab);
+ if ( aFieldName.isEmpty() )
{
- aFieldName = pDoc->GetString(col, nFirstRow, nTab);
- if ( aFieldName.isEmpty() )
- {
- aFieldName = ScGlobal::ReplaceOrAppend( aStrColumn, "%1", ScColToAlpha( col ));
- }
- nFieldArr[i] = col;
- mxLbGroup->insert_text(i+1, aFieldName);
- mxLbColumns->insert(i);
- mxLbColumns->set_toggle(i, TRISTATE_FALSE);
- mxLbColumns->set_text(i, aFieldName, 0);
- mxLbColumns->set_id(i, "0");
- i++;
+ aFieldName = ScGlobal::ReplaceOrAppend( aStrColumn, "%1", ScColToAlpha( col ));
}
- // subsequent initialization of the constant:
- nFieldCount = i;
+ nFieldArr[i] = col;
+ mxLbGroup->insert_text(i+1, aFieldName);
+ mxLbColumns->insert(i);
+ mxLbColumns->set_toggle(i, TRISTATE_FALSE);
+ mxLbColumns->set_text(i, aFieldName, 0);
+ mxLbColumns->set_id(i, "0");
+ i++;
}
+ // subsequent initialization of the constant:
+ nFieldCount = i;
}
sal_uInt16 ScTpSubTotalGroup::GetFieldSelPos( SCCOL nField )
@@ -345,20 +345,20 @@ IMPL_LINK(ScTpSubTotalGroup, SelectListBoxHdl, weld::ComboBox&, rLb, void)
void ScTpSubTotalGroup::SelectHdl(const weld::Widget *pLb)
{
const sal_Int32 nColumn = mxLbColumns->get_selected_index();
- if (nColumn != -1)
- {
- const sal_Int32 nFunction = mxLbFunctions->get_selected_index();
- sal_uInt16 nOldFunction = mxLbColumns->get_id(nColumn).toUInt32();
+ if (nColumn == -1)
+ return;
- if ( pLb == mxLbColumns.get() )
- {
- mxLbFunctions->select(nOldFunction);
- }
- else if ( pLb == mxLbFunctions.get() )
- {
- mxLbColumns->set_id(nColumn, OUString::number(nFunction));
- mxLbColumns->set_toggle(nColumn, TRISTATE_TRUE);
- }
+ const sal_Int32 nFunction = mxLbFunctions->get_selected_index();
+ sal_uInt16 nOldFunction = mxLbColumns->get_id(nColumn).toUInt32();
+
+ if ( pLb == mxLbColumns.get() )
+ {
+ mxLbFunctions->select(nOldFunction);
+ }
+ else if ( pLb == mxLbFunctions.get() )
+ {
+ mxLbColumns->set_id(nColumn, OUString::number(nFunction));
+ mxLbColumns->set_toggle(nColumn, TRISTATE_TRUE);
}
}
diff --git a/sc/source/ui/docshell/docsh.cxx b/sc/source/ui/docshell/docsh.cxx
index b0d3dd8f55cc..434be78d2c4a 100644
--- a/sc/source/ui/docshell/docsh.cxx
+++ b/sc/source/ui/docshell/docsh.cxx
@@ -1049,31 +1049,32 @@ void ScDocShell::Notify( SfxBroadcaster&, const SfxHint& rHint )
}
}
- if ( const SfxEventHint* pSfxEventHint = dynamic_cast<const SfxEventHint*>(&rHint) )
+ const SfxEventHint* pSfxEventHint = dynamic_cast<const SfxEventHint*>(&rHint);
+ if (!pSfxEventHint)
+ return;
+
+ switch( pSfxEventHint->GetEventId() )
{
- switch( pSfxEventHint->GetEventId() )
- {
- case SfxEventHintId::CreateDoc:
- {
- uno::Any aWorkbook;
- aWorkbook <<= mxAutomationWorkbookObject;
- uno::Sequence< uno::Any > aArgs(1);
- aArgs[0] = aWorkbook;
- SC_MOD()->CallAutomationApplicationEventSinks( "NewWorkbook", aArgs );
- }
- break;
- case SfxEventHintId::OpenDoc:
- {
- uno::Any aWorkbook;
- aWorkbook <<= mxAutomationWorkbookObject;
- uno::Sequence< uno::Any > aArgs(1);
- aArgs[0] = aWorkbook;
- SC_MOD()->CallAutomationApplicationEventSinks( "WorkbookOpen", aArgs );
- }
- break;
- default:
- break;
- }
+ case SfxEventHintId::CreateDoc:
+ {
+ uno::Any aWorkbook;
+ aWorkbook <<= mxAutomationWorkbookObject;
+ uno::Sequence< uno::Any > aArgs(1);
+ aArgs[0] = aWorkbook;
+ SC_MOD()->CallAutomationApplicationEventSinks( "NewWorkbook", aArgs );
+ }
+ break;
+ case SfxEventHintId::OpenDoc:
+ {
+ uno::Any aWorkbook;
+ aWorkbook <<= mxAutomationWorkbookObject;
+ uno::Sequence< uno::Any > aArgs(1);
+ aArgs[0] = aWorkbook;
+ SC_MOD()->CallAutomationApplicationEventSinks( "WorkbookOpen", aArgs );
+ }
+ break;
+ default:
+ break;
}
}
@@ -3111,24 +3112,24 @@ void ScDocShell::ResetKeyBindings( ScOptionsUtil::KeyBindingType eType )
void ScDocShell::UseSheetSaveEntries()
{
- if (m_pSheetSaveData)
- {
- m_pSheetSaveData->UseSaveEntries(); // use positions from saved file for next saving
+ if (!m_pSheetSaveData)
+ return;
- bool bHasEntries = false;
- SCTAB nTabCount = m_aDocument.GetTableCount();
- SCTAB nTab;
- for (nTab = 0; nTab < nTabCount; ++nTab)
- if (m_pSheetSaveData->HasStreamPos(nTab))
- bHasEntries = true;
+ m_pSheetSaveData->UseSaveEntries(); // use positions from saved file for next saving
- if (!bHasEntries)
- {
- // if no positions were set (for example, export to other format),
- // reset all "valid" flags
- for (nTab = 0; nTab < nTabCount; ++nTab)
- m_aDocument.SetStreamValid(nTab, false);
- }
+ bool bHasEntries = false;
+ SCTAB nTabCount = m_aDocument.GetTableCount();
+ SCTAB nTab;
+ for (nTab = 0; nTab < nTabCount; ++nTab)
+ if (m_pSheetSaveData->HasStreamPos(nTab))
+ bHasEntries = true;
+
+ if (!bHasEntries)
+ {
+ // if no positions were set (for example, export to other format),
+ // reset all "valid" flags
+ for (nTab = 0; nTab < nTabCount; ++nTab)
+ m_aDocument.SetStreamValid(nTab, false);
}
}
@@ -3220,29 +3221,29 @@ void ScDocShell::SetChangeRecording( bool bActivate )
void ScDocShell::SetProtectionPassword( const OUString &rNewPassword )
{
ScChangeTrack* pChangeTrack = m_aDocument.GetChangeTrack();
- if (pChangeTrack)
- {
- bool bProtected = pChangeTrack->IsProtected();
+ if (!pChangeTrack)
+ return;
- if (!rNewPassword.isEmpty())
- {
- // when password protection is applied change tracking must always be active
- SetChangeRecording( true );
+ bool bProtected = pChangeTrack->IsProtected();
- css::uno::Sequence< sal_Int8 > aProtectionHash;
- SvPasswordHelper::GetHashPassword( aProtectionHash, rNewPassword );
- pChangeTrack->SetProtection( aProtectionHash );
- }
- else
- {
- pChangeTrack->SetProtection( css::uno::Sequence< sal_Int8 >() );
- }
+ if (!rNewPassword.isEmpty())
+ {
+ // when password protection is applied change tracking must always be active
+ SetChangeRecording( true );
- if ( bProtected != pChangeTrack->IsProtected() )
- {
- UpdateAcceptChangesDialog();
- SetDocumentModified();
- }
+ css::uno::Sequence< sal_Int8 > aProtectionHash;
+ SvPasswordHelper::GetHashPassword( aProtectionHash, rNewPassword );
+ pChangeTrack->SetProtection( aProtectionHash );
+ }
+ else
+ {
+ pChangeTrack->SetProtection( css::uno::Sequence< sal_Int8 >() );
+ }
+
+ if ( bProtected != pChangeTrack->IsProtected() )
+ {
+ UpdateAcceptChangesDialog();
+ SetDocumentModified();
}
}
diff --git a/sc/source/ui/drawfunc/fuconrec.cxx b/sc/source/ui/drawfunc/fuconrec.cxx
index 8743138ec405..1f33472a6bfe 100644
--- a/sc/source/ui/drawfunc/fuconrec.cxx
+++ b/sc/source/ui/drawfunc/fuconrec.cxx
@@ -207,132 +207,132 @@ void FuConstRectangle::SetLineEnds(SfxItemSet& rAttr, const SdrObject& rObj, sal
{
SdrModel& rModel(rObj.getSdrModelFromSdrObject());
- if ( nSlotId == SID_LINE_ARROW_START ||
+ if ( !(nSlotId == SID_LINE_ARROW_START ||
nSlotId == SID_LINE_ARROW_END ||
nSlotId == SID_LINE_ARROWS ||
nSlotId == SID_LINE_ARROW_CIRCLE ||
nSlotId == SID_LINE_CIRCLE_ARROW ||
nSlotId == SID_LINE_ARROW_SQUARE ||
nSlotId == SID_LINE_SQUARE_ARROW ||
- nSlotId == SID_DRAW_MEASURELINE )
+ nSlotId == SID_DRAW_MEASURELINE) )
+ return;
+
+
+ // set attributes of line start and ends
+
+ // arrowhead
+ ::basegfx::B2DPolyPolygon aArrow( getPolygon( RID_SVXSTR_ARROW, rModel ) );
+ if( !aArrow.count() )
{
+ ::basegfx::B2DPolygon aNewArrow;
+ aNewArrow.append(::basegfx::B2DPoint(10.0, 0.0));
+ aNewArrow.append(::basegfx::B2DPoint(0.0, 30.0));
+ aNewArrow.append(::basegfx::B2DPoint(20.0, 30.0));
+ aNewArrow.setClosed(true);
+ aArrow.append(aNewArrow);
+ }
- // set attributes of line start and ends
+ // Circles
+ ::basegfx::B2DPolyPolygon aCircle( getPolygon( RID_SVXSTR_CIRCLE, rModel ) );
+ if( !aCircle.count() )
+ {
+ ::basegfx::B2DPolygon aNewCircle = ::basegfx::utils::createPolygonFromEllipse(::basegfx::B2DPoint(0.0, 0.0), 250.0, 250.0);
+ aNewCircle.setClosed(true);
+ aCircle.append(aNewCircle);
+ }
+
+ // Square
+ ::basegfx::B2DPolyPolygon aSquare( getPolygon( RID_SVXSTR_SQUARE, rModel ) );
+ if( !aSquare.count() )
+ {
+ ::basegfx::B2DPolygon aNewSquare;
+ aNewSquare.append(::basegfx::B2DPoint(0.0, 0.0));
+ aNewSquare.append(::basegfx::B2DPoint(10.0, 0.0));
+ aNewSquare.append(::basegfx::B2DPoint(10.0, 10.0));
+ aNewSquare.append(::basegfx::B2DPoint(0.0, 10.0));
+ aNewSquare.setClosed(true);
+ aSquare.append(aNewSquare);
+ }
- // arrowhead
- ::basegfx::B2DPolyPolygon aArrow( getPolygon( RID_SVXSTR_ARROW, rModel ) );
- if( !aArrow.count() )
+ SfxItemSet aSet( rModel.GetItemPool() );
+ long nWidth = 200; // (1/100th mm)
+
+ // determine line width and calculate with it the line end width
+ if( aSet.GetItemState( XATTR_LINEWIDTH ) != SfxItemState::DONTCARE )
+ {
+ long nValue = aSet.Get( XATTR_LINEWIDTH ).GetValue();
+ if( nValue > 0 )
+ nWidth = nValue * 3;
+ }
+
+ switch (nSlotId)
+ {
+ case SID_LINE_ARROWS:
+ case SID_DRAW_MEASURELINE:
{
- ::basegfx::B2DPolygon aNewArrow;
- aNewArrow.append(::basegfx::B2DPoint(10.0, 0.0));
- aNewArrow.append(::basegfx::B2DPoint(0.0, 30.0));
- aNewArrow.append(::basegfx::B2DPoint(20.0, 30.0));
- aNewArrow.setClosed(true);
- aArrow.append(aNewArrow);
+ // connector with arrow ends
+ rAttr.Put(XLineStartItem(SvxResId(RID_SVXSTR_ARROW), aArrow));
+ rAttr.Put(XLineStartWidthItem(nWidth));
+ rAttr.Put(XLineEndItem(SvxResId(RID_SVXSTR_ARROW), aArrow));
+ rAttr.Put(XLineEndWidthItem(nWidth));
}
+ break;
- // Circles
- ::basegfx::B2DPolyPolygon aCircle( getPolygon( RID_SVXSTR_CIRCLE, rModel ) );
- if( !aCircle.count() )
+ case SID_LINE_ARROW_START:
+ case SID_LINE_ARROW_CIRCLE:
+ case SID_LINE_ARROW_SQUARE:
{
- ::basegfx::B2DPolygon aNewCircle = ::basegfx::utils::createPolygonFromEllipse(::basegfx::B2DPoint(0.0, 0.0), 250.0, 250.0);
- aNewCircle.setClosed(true);
- aCircle.append(aNewCircle);
+ // connector with arrow start
+ rAttr.Put(XLineStartItem(SvxResId(RID_SVXSTR_ARROW), aArrow));
+ rAttr.Put(XLineStartWidthItem(nWidth));
}
+ break;
- // Square
- ::basegfx::B2DPolyPolygon aSquare( getPolygon( RID_SVXSTR_SQUARE, rModel ) );
- if( !aSquare.count() )
+ case SID_LINE_ARROW_END:
+ case SID_LINE_CIRCLE_ARROW:
+ case SID_LINE_SQUARE_ARROW:
{
- ::basegfx::B2DPolygon aNewSquare;
- aNewSquare.append(::basegfx::B2DPoint(0.0, 0.0));
- aNewSquare.append(::basegfx::B2DPoint(10.0, 0.0));
- aNewSquare.append(::basegfx::B2DPoint(10.0, 10.0));
- aNewSquare.append(::basegfx::B2DPoint(0.0, 10.0));
- aNewSquare.setClosed(true);
- aSquare.append(aNewSquare);
+ // connector with arrow end
+ rAttr.Put(XLineEndItem(SvxResId(RID_SVXSTR_ARROW), aArrow));
+ rAttr.Put(XLineEndWidthItem(nWidth));
}
+ break;
+ }
- SfxItemSet aSet( rModel.GetItemPool() );
- long nWidth = 200; // (1/100th mm)
-
- // determine line width and calculate with it the line end width
- if( aSet.GetItemState( XATTR_LINEWIDTH ) != SfxItemState::DONTCARE )
+ // and again, for the still missing ends
+ switch (nSlotId)
+ {
+ case SID_LINE_ARROW_CIRCLE:
{
- long nValue = aSet.Get( XATTR_LINEWIDTH ).GetValue();
- if( nValue > 0 )
- nWidth = nValue * 3;
+ // circle end
+ rAttr.Put(XLineEndItem(SvxResId(RID_SVXSTR_CIRCLE), aCircle));
+ rAttr.Put(XLineEndWidthItem(nWidth));
}
+ break;
- switch (nSlotId)
+ case SID_LINE_CIRCLE_ARROW:
{
- case SID_LINE_ARROWS:
- case SID_DRAW_MEASURELINE:
- {
- // connector with arrow ends
- rAttr.Put(XLineStartItem(SvxResId(RID_SVXSTR_ARROW), aArrow));
- rAttr.Put(XLineStartWidthItem(nWidth));
- rAttr.Put(XLineEndItem(SvxResId(RID_SVXSTR_ARROW), aArrow));
- rAttr.Put(XLineEndWidthItem(nWidth));
- }
- break;
-
- case SID_LINE_ARROW_START:
- case SID_LINE_ARROW_CIRCLE:
- case SID_LINE_ARROW_SQUARE:
- {
- // connector with arrow start
- rAttr.Put(XLineStartItem(SvxResId(RID_SVXSTR_ARROW), aArrow));
- rAttr.Put(XLineStartWidthItem(nWidth));
- }
- break;
-
- case SID_LINE_ARROW_END:
- case SID_LINE_CIRCLE_ARROW:
- case SID_LINE_SQUARE_ARROW:
- {
- // connector with arrow end
- rAttr.Put(XLineEndItem(SvxResId(RID_SVXSTR_ARROW), aArrow));
- rAttr.Put(XLineEndWidthItem(nWidth));
- }
- break;
+ // circle start
+ rAttr.Put(XLineStartItem(SvxResId(RID_SVXSTR_CIRCLE), aCircle));
+ rAttr.Put(XLineStartWidthItem(nWidth));
}
+ break;
- // and again, for the still missing ends
- switch (nSlotId)
+ case SID_LINE_ARROW_SQUARE:
{
- case SID_LINE_ARROW_CIRCLE:
- {
- // circle end
- rAttr.Put(XLineEndItem(SvxResId(RID_SVXSTR_CIRCLE), aCircle));
- rAttr.Put(XLineEndWidthItem(nWidth));
- }
- break;
-
- case SID_LINE_CIRCLE_ARROW:
- {
- // circle start
- rAttr.Put(XLineStartItem(SvxResId(RID_SVXSTR_CIRCLE), aCircle));
- rAttr.Put(XLineStartWidthItem(nWidth));
- }
- break;
-
- case SID_LINE_ARROW_SQUARE:
- {
- // square end
- rAttr.Put(XLineEndItem(SvxResId(RID_SVXSTR_SQUARE), aSquare));
- rAttr.Put(XLineEndWidthItem(nWidth));
- }
- break;
+ // square end
+ rAttr.Put(XLineEndItem(SvxResId(RID_SVXSTR_SQUARE), aSquare));
+ rAttr.Put(XLineEndWidthItem(nWidth));
+ }
+ break;
- case SID_LINE_SQUARE_ARROW:
- {
- // square start
- rAttr.Put(XLineStartItem(SvxResId(RID_SVXSTR_SQUARE), aSquare));
- rAttr.Put(XLineStartWidthItem(nWidth));
- }
- break;
+ case SID_LINE_SQUARE_ARROW:
+ {
+ // square start
+ rAttr.Put(XLineStartItem(SvxResId(RID_SVXSTR_SQUARE), aSquare));
+ rAttr.Put(XLineStartWidthItem(nWidth));
}
+ break;
}
}
diff --git a/sc/source/ui/drawfunc/fudraw.cxx b/sc/source/ui/drawfunc/fudraw.cxx
index a07f60d6679a..36abddf039f5 100644
--- a/sc/source/ui/drawfunc/fudraw.cxx
+++ b/sc/source/ui/drawfunc/fudraw.cxx
@@ -648,59 +648,59 @@ static bool lcl_UrlHit( const SdrView* pView, const Point& rPosPixel, const vcl:
void FuDraw::ForcePointer(const MouseEvent* pMEvt)
{
- if ( !pView->IsAction() )
+ if ( pView->IsAction() )
+ return;
+
+ Point aPosPixel = pWindow->GetPointerPosPixel();
+ bool bAlt = pMEvt && pMEvt->IsMod2();
+ Point aPnt = pWindow->PixelToLogic( aPosPixel );
+ SdrHdl* pHdl = pView->PickHandle(aPnt);
+ SdrPageView* pPV;
+
+ ScMacroInfo* pInfo = nullptr;
+ SdrObject* pObj = pView->PickObj(aPnt, pView->getHitTolLog(), pPV, SdrSearchOptions::ALSOONMASTER);
+ if (pObj)
{
- Point aPosPixel = pWindow->GetPointerPosPixel();
- bool bAlt = pMEvt && pMEvt->IsMod2();
- Point aPnt = pWindow->PixelToLogic( aPosPixel );
- SdrHdl* pHdl = pView->PickHandle(aPnt);
- SdrPageView* pPV;
-
- ScMacroInfo* pInfo = nullptr;
- SdrObject* pObj = pView->PickObj(aPnt, pView->getHitTolLog(), pPV, SdrSearchOptions::ALSOONMASTER);
- if (pObj)
+ if ( pObj->IsGroupObject() )
{
- if ( pObj->IsGroupObject() )
- {
- SdrObject* pHit = pView->PickObj(aMDPos, pView->getHitTolLog(), pPV, SdrSearchOptions::DEEP);
- if (pHit)
- pObj = pHit;
- }
- pInfo = ScDrawLayer::GetMacroInfo( pObj );
+ SdrObject* pHit = pView->PickObj(aMDPos, pView->getHitTolLog(), pPV, SdrSearchOptions::DEEP);
+ if (pHit)
+ pObj = pHit;
}
+ pInfo = ScDrawLayer::GetMacroInfo( pObj );
+ }
- if ( pView->IsTextEdit() )
- {
- rViewShell.SetActivePointer(PointerStyle::Text); // can't be ?
- }
- else if ( pHdl )
- {
- rViewShell.SetActivePointer(
- pView->GetPreferredPointer( aPnt, pWindow ) );
- }
- else if ( pView->IsMarkedHit(aPnt) )
- {
- rViewShell.SetActivePointer( PointerStyle::Move );
- }
- else if ( !bAlt && ( !pMEvt || !pMEvt->GetButtons() )
- && lcl_UrlHit( pView, aPosPixel, pWindow ) )
- {
- // could be suppressed with ALT
- pWindow->SetPointer( PointerStyle::RefHand ); // Text-URL / ImageMap
- }
- else if ( !bAlt && (pObj = pView->PickObj(aPnt, pView->getHitTolLog(), pPV, SdrSearchOptions::PICKMACRO)) )
- {
- // could be suppressed with ALT
- SdrObjMacroHitRec aHitRec; //! something missing ????
- rViewShell.SetActivePointer( pObj->GetMacroPointer(aHitRec) );
- }
- else if ( !bAlt && pInfo && (!pInfo->GetMacro().isEmpty() || !pInfo->GetHlink().isEmpty()) )
- pWindow->SetPointer( PointerStyle::RefHand );
- else if ( IsDetectiveHit( aPnt ) )
- rViewShell.SetActivePointer( PointerStyle::Detective );
- else
- rViewShell.SetActivePointer( aNewPointer ); //! in Gridwin?
+ if ( pView->IsTextEdit() )
+ {
+ rViewShell.SetActivePointer(PointerStyle::Text); // can't be ?
+ }
+ else if ( pHdl )
+ {
+ rViewShell.SetActivePointer(
+ pView->GetPreferredPointer( aPnt, pWindow ) );
+ }
+ else if ( pView->IsMarkedHit(aPnt) )
+ {
+ rViewShell.SetActivePointer( PointerStyle::Move );
+ }
+ else if ( !bAlt && ( !pMEvt || !pMEvt->GetButtons() )
+ && lcl_UrlHit( pView, aPosPixel, pWindow ) )
+ {
+ // could be suppressed with ALT
+ pWindow->SetPointer( PointerStyle::RefHand ); // Text-URL / ImageMap
+ }
+ else if ( !bAlt && (pObj = pView->PickObj(aPnt, pView->getHitTolLog(), pPV, SdrSearchOptions::PICKMACRO)) )
+ {
+ // could be suppressed with ALT
+ SdrObjMacroHitRec aHitRec; //! something missing ????
+ rViewShell.SetActivePointer( pObj->GetMacroPointer(aHitRec) );
}
+ else if ( !bAlt && pInfo && (!pInfo->GetMacro().isEmpty() || !pInfo->GetHlink().isEmpty()) )
+ pWindow->SetPointer( PointerStyle::RefHand );
+ else if ( IsDetectiveHit( aPnt ) )
+ rViewShell.SetActivePointer( PointerStyle::Detective );
+ else
+ rViewShell.SetActivePointer( aNewPointer ); //! in Gridwin?
}
bool FuDraw::IsEditingANote() const
diff --git a/sc/source/ui/drawfunc/fuins1.cxx b/sc/source/ui/drawfunc/fuins1.cxx
index 11e2290d08ff..686e00e596a4 100644
--- a/sc/source/ui/drawfunc/fuins1.cxx
+++ b/sc/source/ui/drawfunc/fuins1.cxx
@@ -392,35 +392,35 @@ FuInsertMedia::FuInsertMedia( ScTabViewShell& rViewSh,
}
bool bLink(true);
- if (bAPI
+ if (!bAPI
#if HAVE_FEATURE_AVMEDIA
- || ::avmedia::MediaWindow::executeMediaURLDialog(pWin ? pWin->GetFrameWeld() : nullptr, aURL, &bLink)
+ || !::avmedia::MediaWindow::executeMediaURLDialog(pWin ? pWin->GetFrameWeld() : nullptr, aURL, &bLink)
#endif
)
- {
- Size aPrefSize;
+ return;
- if( pWin )
- pWin->EnterWait();
+ Size aPrefSize;
+
+ if( pWin )
+ pWin->EnterWait();
#if HAVE_FEATURE_AVMEDIA
- if( !::avmedia::MediaWindow::isMediaURL( aURL, ""/*TODO?*/, true, &aPrefSize ) )
- {
- if( pWin )
- pWin->LeaveWait();
+ if( !::avmedia::MediaWindow::isMediaURL( aURL, ""/*TODO?*/, true, &aPrefSize ) )
+ {
+ if( pWin )
+ pWin->LeaveWait();
- if( !bAPI )
- ::avmedia::MediaWindow::executeFormatErrorBox(pWindow ? pWindow->GetFrameWeld() : nullptr);
- }
- else
+ if( !bAPI )
+ ::avmedia::MediaWindow::executeFormatErrorBox(pWindow ? pWindow->GetFrameWeld() : nullptr);
+ }
+ else
#endif
- {
- lcl_InsertMedia( aURL, bAPI, &rViewSh, pWindow, pView, aPrefSize,
- bLink );
+ {
+ lcl_InsertMedia( aURL, bAPI, &rViewSh, pWindow, pView, aPrefSize,
+ bLink );
- if( pWin )
- pWin->LeaveWait();
- }
+ if( pWin )
+ pWin->LeaveWait();
}
}
diff --git a/sc/source/ui/drawfunc/fuins2.cxx b/sc/source/ui/drawfunc/fuins2.cxx
index 1c30fa935809..0faac4dc664e 100644
--- a/sc/source/ui/drawfunc/fuins2.cxx
+++ b/sc/source/ui/drawfunc/fuins2.cxx
@@ -116,100 +116,100 @@ void lcl_ChartInit(const uno::Reference <embed::XEmbeddedObject>& xObj, ScViewDa
}
}
- if (!aRangeString.isEmpty())
- {
- // connect to Calc data (if no range string, leave chart alone, with its own data)
+ if (aRangeString.isEmpty())
+ return;
- uno::Reference< css::chart2::data::XDataReceiver > xReceiver;
- if( xObj.is())
- xReceiver.set( xObj->getComponent(), uno::UNO_QUERY );
- OSL_ASSERT( xReceiver.is());
- if( xReceiver.is() )
- {
- uno::Reference<chart2::data::XDataProvider> xDataProvider;
- if (bRangeIsPivotTable)
- {
- std::unique_ptr<sc::PivotTableDataProvider> pPivotTableDataProvider(new sc::PivotTableDataProvider(&rScDoc));
- pPivotTableDataProvider->setPivotTableName(aRangeString);
- xDataProvider.set(pPivotTableDataProvider.release());
- }
- else
- {
- xDataProvider.set(new ScChart2DataProvider(&rScDoc));
- }
+ // connect to Calc data (if no range string, leave chart alone, with its own data)
- xReceiver->attachDataProvider(xDataProvider);
+ uno::Reference< css::chart2::data::XDataReceiver > xReceiver;
+ if( xObj.is())
+ xReceiver.set( xObj->getComponent(), uno::UNO_QUERY );
+ OSL_ASSERT( xReceiver.is());
+ if( !xReceiver.is() )
+ return;
- uno::Reference< util::XNumberFormatsSupplier > xNumberFormatsSupplier( pDocShell->GetModel(), uno::UNO_QUERY );
- xReceiver->attachNumberFormatsSupplier( xNumberFormatsSupplier );
+ uno::Reference<chart2::data::XDataProvider> xDataProvider;
+ if (bRangeIsPivotTable)
+ {
+ std::unique_ptr<sc::PivotTableDataProvider> pPivotTableDataProvider(new sc::PivotTableDataProvider(&rScDoc));
+ pPivotTableDataProvider->setPivotTableName(aRangeString);
+ xDataProvider.set(pPivotTableDataProvider.release());
+ }
+ else
+ {
+ xDataProvider.set(new ScChart2DataProvider(&rScDoc));
+ }
- // Same behavior as with old chart: Always assume data series in columns
- chart::ChartDataRowSource eDataRowSource = chart::ChartDataRowSource_COLUMNS;
- bool bHasCategories = false;
- bool bFirstCellAsLabel = false;
+ xReceiver->attachDataProvider(xDataProvider);
- // use ScChartPositioner to auto-detect column/row headers (like ScChartArray in old version)
- ScRangeListRef aRangeListRef( new ScRangeList );
- aRangeListRef->Parse( aRangeString, &rScDoc, rScDoc.GetAddressConvention() );
- if ( !aRangeListRef->empty() )
- {
- rScDoc.LimitChartIfAll( aRangeListRef ); // limit whole columns/rows to used area
+ uno::Reference< util::XNumberFormatsSupplier > xNumberFormatsSupplier( pDocShell->GetModel(), uno::UNO_QUERY );
+ xReceiver->attachNumberFormatsSupplier( xNumberFormatsSupplier );
- // update string from modified ranges. The ranges must be in the current formula syntax.
- OUString aTmpStr;
- aRangeListRef->Format( aTmpStr, ScRefFlags::RANGE_ABS_3D, rScDoc, rScDoc.GetAddressConvention() );
- aRangeString = aTmpStr;
+ // Same behavior as with old chart: Always assume data series in columns
+ chart::ChartDataRowSource eDataRowSource = chart::ChartDataRowSource_COLUMNS;
+ bool bHasCategories = false;
+ bool bFirstCellAsLabel = false;
- ScChartPositioner aChartPositioner( &rScDoc, aRangeListRef );
- const ScChartPositionMap* pPositionMap( aChartPositioner.GetPositionMap() );
- if( pPositionMap )
- {
- SCSIZE nRowCount = pPositionMap->GetRowCount();
- if( 1==nRowCount )
- eDataRowSource = chart::ChartDataRowSource_ROWS;
- }
- if ( eDataRowSource == chart::ChartDataRowSource_COLUMNS )
- {
- bHasCategories = aChartPositioner.HasRowHeaders();
- bFirstCellAsLabel = aChartPositioner.HasColHeaders();
- }
- else // in case the default is changed
- {
- bHasCategories = aChartPositioner.HasColHeaders();
- bFirstCellAsLabel = aChartPositioner.HasRowHeaders();
- }
- }
+ // use ScChartPositioner to auto-detect column/row headers (like ScChartArray in old version)
+ ScRangeListRef aRangeListRef( new ScRangeList );
+ aRangeListRef->Parse( aRangeString, &rScDoc, rScDoc.GetAddressConvention() );
+ if ( !aRangeListRef->empty() )
+ {
+ rScDoc.LimitChartIfAll( aRangeListRef ); // limit whole columns/rows to used area
- uno::Sequence< beans::PropertyValue > aArgs( 4 );
- aArgs[0] = beans::PropertyValue(
- "CellRangeRepresentation", -1,
- uno::makeAny( aRangeString ), beans::PropertyState_DIRECT_VALUE );
- aArgs[1] = beans::PropertyValue(
- "HasCategories", -1,
- uno::makeAny( bHasCategories ), beans::PropertyState_DIRECT_VALUE );
- aArgs[2] = beans::PropertyValue(
- "FirstCellAsLabel", -1,
- uno::makeAny( bFirstCellAsLabel ), beans::PropertyState_DIRECT_VALUE );
- aArgs[3] = beans::PropertyValue(
- "DataRowSource", -1,
- uno::makeAny( eDataRowSource ), beans::PropertyState_DIRECT_VALUE );
-
- try
- {
- xReceiver->setArguments( aArgs );
- }
- catch (const lang::IllegalArgumentException&)
- {
- // Can happen for invalid aRangeString, in which case a Chart
- // will be created nevertheless and the range string can be
- // edited.
- TOOLS_WARN_EXCEPTION("sc.ui",
- "lcl_ChartInit - caught IllegalArgumentException might be due to aRangeString: " << aRangeString);
- }
+ // update string from modified ranges. The ranges must be in the current formula syntax.
+ OUString aTmpStr;
+ aRangeListRef->Format( aTmpStr, ScRefFlags::RANGE_ABS_3D, rScDoc, rScDoc.GetAddressConvention() );
+ aRangeString = aTmpStr;
- // don't create chart listener here (range may be modified in chart dialog)
+ ScChartPositioner aChartPositioner( &rScDoc, aRangeListRef );
+ const ScChartPositionMap* pPositionMap( aChartPositioner.GetPositionMap() );
+ if( pPositionMap )
+ {
+ SCSIZE nRowCount = pPositionMap->GetRowCount();
+ if( 1==nRowCount )
+ eDataRowSource = chart::ChartDataRowSource_ROWS;
}
+ if ( eDataRowSource == chart::ChartDataRowSource_COLUMNS )
+ {
+ bHasCategories = aChartPositioner.HasRowHeaders();
+ bFirstCellAsLabel = aChartPositioner.HasColHeaders();
+ }
+ else // in case the default is changed
+ {
+ bHasCategories = aChartPositioner.HasColHeaders();
+ bFirstCellAsLabel = aChartPositioner.HasRowHeaders();
+ }
+ }
+
+ uno::Sequence< beans::PropertyValue > aArgs( 4 );
+ aArgs[0] = beans::PropertyValue(
+ "CellRangeRepresentation", -1,
+ uno::makeAny( aRangeString ), beans::PropertyState_DIRECT_VALUE );
+ aArgs[1] = beans::PropertyValue(
+ "HasCategories", -1,
+ uno::makeAny( bHasCategories ), beans::PropertyState_DIRECT_VALUE );
+ aArgs[2] = beans::PropertyValue(
+ "FirstCellAsLabel", -1,
+ uno::makeAny( bFirstCellAsLabel ), beans::PropertyState_DIRECT_VALUE );
+ aArgs[3] = beans::PropertyValue(
+ "DataRowSource", -1,
+ uno::makeAny( eDataRowSource ), beans::PropertyState_DIRECT_VALUE );
+
+ try
+ {
+ xReceiver->setArguments( aArgs );
}
+ catch (const lang::IllegalArgumentException&)
+ {
+ // Can happen for invalid aRangeString, in which case a Chart
+ // will be created nevertheless and the range string can be
+ // edited.
+ TOOLS_WARN_EXCEPTION("sc.ui",
+ "lcl_ChartInit - caught IllegalArgumentException might be due to aRangeString: " << aRangeString);
+ }
+
+ // don't create chart listener here (range may be modified in chart dialog)
}
}
diff --git a/sc/source/ui/drawfunc/futext.cxx b/sc/source/ui/drawfunc/futext.cxx
index 5405ca2c608a..9e412449917c 100644
--- a/sc/source/ui/drawfunc/futext.cxx
+++ b/sc/source/ui/drawfunc/futext.cxx
@@ -549,73 +549,73 @@ void FuText::SetInEditMode(SdrObject* pObj, const Point* pMousePixel,
}
}
- if ( pObj )
- {
- sal_uInt16 nSdrObjKind = pObj->GetObjIdentifier();
+ if ( !pObj )
+ return;
- if (nSdrObjKind == OBJ_TEXT ||
- nSdrObjKind == OBJ_TITLETEXT ||
- nSdrObjKind == OBJ_OUTLINETEXT ||
- dynamic_cast<const SdrTextObj*>( pObj) != nullptr)
- {
- SdrPageView* pPV = pView->GetSdrPageView();
+ sal_uInt16 nSdrObjKind = pObj->GetObjIdentifier();
- if ( pObj->HasTextEdit() )
- {
- std::unique_ptr<SdrOutliner> pO = MakeOutliner();
- lcl_UpdateHyphenator( *pO, pObj );
+ if (!(nSdrObjKind == OBJ_TEXT ||
+ nSdrObjKind == OBJ_TITLETEXT ||
+ nSdrObjKind == OBJ_OUTLINETEXT ||
+ dynamic_cast<const SdrTextObj*>( pObj) != nullptr))
+ return;
- // vertical flag:
- // deduced from slot ids only if text object has no content
+ SdrPageView* pPV = pView->GetSdrPageView();
- sal_uInt16 nSlotID = aSfxRequest.GetSlot();
- bool bVertical = ( nSlotID == SID_DRAW_TEXT_VERTICAL );
- OutlinerParaObject* pOPO = pObj->GetOutlinerParaObject();
- if ( pOPO )
- bVertical = pOPO->IsVertical(); // content wins
- pO->SetVertical( bVertical );
+ if ( !pObj->HasTextEdit() )
+ return;
- //!?? without returned Outliner the defaults are not correct ???!?
- auto pOTemp = pO.get();
- if ( pView->SdrBeginTextEdit(pObj, pPV, pWindow, true, pO.release()) )
- {
- // Toggle out of paste mode if we are in it, otherwise
- // pressing return in this object will instead go to the
- // sheet and be considered an overwrite-cell instruction
- rViewShell.GetViewData().SetPasteMode(ScPasteFlags::NONE);
- rViewShell.UpdateCopySourceOverlay();
+ std::unique_ptr<SdrOutliner> pO = MakeOutliner();
+ lcl_UpdateHyphenator( *pO, pObj );
- // EditEngine-UndoManager anmelden
- rViewShell.SetDrawTextUndo( &pOTemp->GetUndoManager() );
+ // vertical flag:
+ // deduced from slot ids only if text object has no content
- pView->SetEditMode();
+ sal_uInt16 nSlotID = aSfxRequest.GetSlot();
+ bool bVertical = ( nSlotID == SID_DRAW_TEXT_VERTICAL );
+ OutlinerParaObject* pOPO = pObj->GetOutlinerParaObject();
+ if ( pOPO )
+ bVertical = pOPO->IsVertical(); // content wins
+ pO->SetVertical( bVertical );
- // set text cursor to click position or to end,
- // pass initial key event to outliner view
- if ( pMousePixel || bCursorToEnd || pInitialKey )
- {
- OutlinerView* pOLV = pView->GetTextEditOutlinerView();
- if (pOLV)
- {
- if ( pMousePixel )
- {
- MouseEvent aEditEvt( *pMousePixel, 1, MouseEventModifiers::SYNTHETIC, MOUSE_LEFT, 0 );
- pOLV->MouseButtonDown(aEditEvt);
- pOLV->MouseButtonUp(aEditEvt);
- }
- else if ( bCursorToEnd )
- {
- ESelection aNewSelection(EE_PARA_NOT_FOUND, EE_INDEX_NOT_FOUND, EE_PARA_NOT_FOUND, EE_INDEX_NOT_FOUND);
- pOLV->SetSelection(aNewSelection);
- }
-
- if ( pInitialKey )
- pOLV->PostKeyEvent( *pInitialKey );
- }
- }
- }
- }
+ //!?? without returned Outliner the defaults are not correct ???!?
+ auto pOTemp = pO.get();
+ if ( !pView->SdrBeginTextEdit(pObj, pPV, pWindow, true, pO.release()) )
+ return;
+
+ // Toggle out of paste mode if we are in it, otherwise
+ // pressing return in this object will instead go to the
+ // sheet and be considered an overwrite-cell instruction
+ rViewShell.GetViewData().SetPasteMode(ScPasteFlags::NONE);
+ rViewShell.UpdateCopySourceOverlay();
+
+ // EditEngine-UndoManager anmelden
+ rViewShell.SetDrawTextUndo( &pOTemp->GetUndoManager() );
+
+ pView->SetEditMode();
+
+ // set text cursor to click position or to end,
+ // pass initial key event to outliner view
+ if ( !(pMousePixel || bCursorToEnd || pInitialKey) )
+ return;
+
+ OutlinerView* pOLV = pView->GetTextEditOutlinerView();
+ if (pOLV)
+ {
+ if ( pMousePixel )
+ {
+ MouseEvent aEditEvt( *pMousePixel, 1, MouseEventModifiers::SYNTHETIC, MOUSE_LEFT, 0 );
+ pOLV->MouseButtonDown(aEditEvt);
+ pOLV->MouseButtonUp(aEditEvt);
}
+ else if ( bCursorToEnd )
+ {
+ ESelection aNewSelection(EE_PARA_NOT_FOUND, EE_INDEX_NOT_FOUND, EE_PARA_NOT_FOUND, EE_INDEX_NOT_FOUND);
+ pOLV->SetSelection(aNewSelection);
+ }
+
+ if ( pInitialKey )
+ pOLV->PostKeyEvent( *pInitialKey );
}
}
diff --git a/sc/source/ui/drawfunc/futext3.cxx b/sc/source/ui/drawfunc/futext3.cxx
index a41a64b8a684..307cd87ec609 100644
--- a/sc/source/ui/drawfunc/futext3.cxx
+++ b/sc/source/ui/drawfunc/futext3.cxx
@@ -108,74 +108,74 @@ void FuText::StopEditMode()
if( pCur && pCur->IsVisible() )
pCur->Hide();
- if( pNote )
- {
- ScTabView::OnLOKNoteStateChanged( pNote );
+ if( !pNote )
+ return;
- // hide the caption object if it is in hidden state
- pNote->ShowCaptionTemp( aNotePos, false );
+ ScTabView::OnLOKNoteStateChanged( pNote );
- // update author and date
- pNote->AutoStamp();
+ // hide the caption object if it is in hidden state
+ pNote->ShowCaptionTemp( aNotePos, false );
- /* If the entire text has been cleared, the cell note and its caption
- object have to be removed. */
- SdrTextObj* pTextObject = dynamic_cast< SdrTextObj* >( pObject );
- bool bDeleteNote = !pTextObject || !pTextObject->HasText();
- if( bDeleteNote )
- {
- if( pUndoMgr )
- {
- // collect the "remove object" drawing undo action created by DeleteNote()
- pDrawLayer->BeginCalcUndo(false);
- // rescue note data before deletion
- ScNoteData aNoteData( pNote->GetNoteData() );
- // delete note from document (removes caption, but does not delete it)
- rDoc.ReleaseNote(aNotePos);
- // create undo action for removed note
- pUndoMgr->AddUndoAction( std::make_unique<ScUndoReplaceNote>( *pDocShell, aNotePos, aNoteData, false, pDrawLayer->GetCalcUndo() ) );
- }
- else
- {
- rDoc.ReleaseNote(aNotePos);
- }
- // ScDocument::DeleteNote has deleted the note that pNote points to
- pNote = nullptr;
- }
+ // update author and date
+ pNote->AutoStamp();
- // finalize the undo list action
+ /* If the entire text has been cleared, the cell note and its caption
+ object have to be removed. */
+ SdrTextObj* pTextObject = dynamic_cast< SdrTextObj* >( pObject );
+ bool bDeleteNote = !pTextObject || !pTextObject->HasText();
+ if( bDeleteNote )
+ {
if( pUndoMgr )
{
- pUndoMgr->LeaveListAction();
-
- /* #i94039# Update the default name "Edit Note" of the undo action
- if the note has been created before editing or is deleted due
- to deleted text. If the note has been created *and* is deleted,
- the last undo action can be removed completely. Note: The
- function LeaveListAction() removes the last action by itself,
- if it is empty (when result is SdrEndTextEditKind::Unchanged). */
- if( bNewNote && bDeleteNote )
- {
- pUndoMgr->RemoveLastUndoAction();
-
- // Make sure the former area of the note anchor is invalidated.
- ScRangeList aRangeList(aNotePos);
- ScMarkData aMarkData(rDoc.GetSheetLimits(), aRangeList);
- rViewShell.UpdateSelectionArea(aMarkData);
- }
- else if( bNewNote || bDeleteNote )
- {
- SfxListUndoAction* pAction = dynamic_cast< SfxListUndoAction* >( pUndoMgr->GetUndoAction() );
- OSL_ENSURE( pAction, "FuText::StopEditMode - list undo action expected" );
- if( pAction )
- pAction->SetComment( ScResId( bNewNote ? STR_UNDO_INSERTNOTE : STR_UNDO_DELETENOTE ) );
- }
+ // collect the "remove object" drawing undo action created by DeleteNote()
+ pDrawLayer->BeginCalcUndo(false);
+ // rescue note data before deletion
+ ScNoteData aNoteData( pNote->GetNoteData() );
+ // delete note from document (removes caption, but does not delete it)
+ rDoc.ReleaseNote(aNotePos);
+ // create undo action for removed note
+ pUndoMgr->AddUndoAction( std::make_unique<ScUndoReplaceNote>( *pDocShell, aNotePos, aNoteData, false, pDrawLayer->GetCalcUndo() ) );
+ }
+ else
+ {
+ rDoc.ReleaseNote(aNotePos);
}
+ // ScDocument::DeleteNote has deleted the note that pNote points to
+ pNote = nullptr;
+ }
+
+ // finalize the undo list action
+ if( pUndoMgr )
+ {
+ pUndoMgr->LeaveListAction();
+
+ /* #i94039# Update the default name "Edit Note" of the undo action
+ if the note has been created before editing or is deleted due
+ to deleted text. If the note has been created *and* is deleted,
+ the last undo action can be removed completely. Note: The
+ function LeaveListAction() removes the last action by itself,
+ if it is empty (when result is SdrEndTextEditKind::Unchanged). */
+ if( bNewNote && bDeleteNote )
+ {
+ pUndoMgr->RemoveLastUndoAction();
- // invalidate stream positions only for the affected sheet
- rDoc.LockStreamValid(false);
- rDoc.SetStreamValid(aNotePos.Tab(), false);
+ // Make sure the former area of the note anchor is invalidated.
+ ScRangeList aRangeList(aNotePos);
+ ScMarkData aMarkData(rDoc.GetSheetLimits(), aRangeList);
+ rViewShell.UpdateSelectionArea(aMarkData);
+ }
+ else if( bNewNote || bDeleteNote )
+ {
+ SfxListUndoAction* pAction = dynamic_cast< SfxListUndoAction* >( pUndoMgr->GetUndoAction() );
+ OSL_ENSURE( pAction, "FuText::StopEditMode - list undo action expected" );
+ if( pAction )
+ pAction->SetComment( ScResId( bNewNote ? STR_UNDO_INSERTNOTE : STR_UNDO_DELETENOTE ) );
+ }
}
+
+ // invalidate stream positions only for the affected sheet
+ rDoc.LockStreamValid(false);
+ rDoc.SetStreamValid(aNotePos.Tab(), false);
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/drawfunc/mediash.cxx b/sc/source/ui/drawfunc/mediash.cxx
index b70c5cb31d23..4ab6c187bb83 100644
--- a/sc/source/ui/drawfunc/mediash.cxx
+++ b/sc/source/ui/drawfunc/mediash.cxx
@@ -60,38 +60,38 @@ void ScMediaShell::GetMediaState( SfxItemSet& rSet )
{
ScDrawView* pView = GetViewData()->GetScDrawView();
- if( pView )
- {
- SfxWhichIter aIter( rSet );
- sal_uInt16 nWhich = aIter.FirstWhich();
+ if( !pView )
+ return;
+
+ SfxWhichIter aIter( rSet );
+ sal_uInt16 nWhich = aIter.FirstWhich();
- while( nWhich )
+ while( nWhich )
+ {
+ if( SID_AVMEDIA_TOOLBOX == nWhich )
{
- if( SID_AVMEDIA_TOOLBOX == nWhich )
+ std::unique_ptr<SdrMarkList> pMarkList(new SdrMarkList( pView->GetMarkedObjectList() ));
+ bool bDisable = true;
+
+ if( 1 == pMarkList->GetMarkCount() )
{
- std::unique_ptr<SdrMarkList> pMarkList(new SdrMarkList( pView->GetMarkedObjectList() ));
- bool bDisable = true;
+ SdrObject* pObj = pMarkList->GetMark( 0 )->GetMarkedSdrObj();
- if( 1 == pMarkList->GetMarkCount() )
+ if( dynamic_cast<const SdrMediaObj*>( pObj) )
{
- SdrObject* pObj = pMarkList->GetMark( 0 )->GetMarkedSdrObj();
-
- if( dynamic_cast<const SdrMediaObj*>( pObj) )
- {
- ::avmedia::MediaItem aItem( SID_AVMEDIA_TOOLBOX );
+ ::avmedia::MediaItem aItem( SID_AVMEDIA_TOOLBOX );
- static_cast< sdr::contact::ViewContactOfSdrMediaObj& >( pObj->GetViewContact() ).updateMediaItem( aItem );
- rSet.Put( aItem );
- bDisable = false;
- }
+ static_cast< sdr::contact::ViewContactOfSdrMediaObj& >( pObj->GetViewContact() ).updateMediaItem( aItem );
+ rSet.Put( aItem );
+ bDisable = false;
}
-
- if( bDisable )
- rSet.DisableItem( SID_AVMEDIA_TOOLBOX );
}
- nWhich = aIter.NextWhich();
+ if( bDisable )
+ rSet.DisableItem( SID_AVMEDIA_TOOLBOX );
}
+
+ nWhich = aIter.NextWhich();
}
}
diff --git a/sc/source/ui/formdlg/formula.cxx b/sc/source/ui/formdlg/formula.cxx
index 9bd22bc4b0e2..de2c41cfed0b 100644
--- a/sc/source/ui/formdlg/formula.cxx
+++ b/sc/source/ui/formdlg/formula.cxx
@@ -109,72 +109,72 @@ ScFormulaDlg::ScFormulaDlg(SfxBindings* pB, SfxChildWindow* pCW,
fill();
ScFormEditData* pData = m_pViewShell->GetFormEditData();
- if (!pData)
- {
- pScMod->SetRefInputHdl(pInputHdl);
-
- m_pDoc = pViewData->GetDocument();
- SCCOL nCol = pViewData->GetCurX();
- SCROW nRow = pViewData->GetCurY();
- SCTAB nTab = pViewData->GetTabNo();
- m_CursorPos = ScAddress( nCol, nRow, nTab );
+ if (pData)
+ return;
- m_pViewShell->InitFormEditData(); // create new
- pData = m_pViewShell->GetFormEditData();
- pData->SetInputHandler(pInputHdl);
- pData->SetDocShell(pViewData->GetDocShell());
+ pScMod->SetRefInputHdl(pInputHdl);
- OSL_ENSURE(pData,"FormEditData not available");
+ m_pDoc = pViewData->GetDocument();
+ SCCOL nCol = pViewData->GetCurX();
+ SCROW nRow = pViewData->GetCurY();
+ SCTAB nTab = pViewData->GetTabNo();
+ m_CursorPos = ScAddress( nCol, nRow, nTab );
- formula::FormulaDlgMode eMode = FormulaDlgMode::Formula; // default...
+ m_pViewShell->InitFormEditData(); // create new
+ pData = m_pViewShell->GetFormEditData();
+ pData->SetInputHandler(pInputHdl);
+ pData->SetDocShell(pViewData->GetDocShell());
- // edit if formula exists
+ OSL_ENSURE(pData,"FormEditData not available");
- OUString aFormula;
- m_pDoc->GetFormula( nCol, nRow, nTab, aFormula );
- bool bEdit = ( aFormula.getLength() > 1 );
- bool bMatrix = false;
- if ( bEdit )
- {
- bMatrix = CheckMatrix(aFormula);
+ formula::FormulaDlgMode eMode = FormulaDlgMode::Formula; // default...
- sal_Int32 nFStart = 0;
- sal_Int32 nFEnd = 0;
- if ( GetFormulaHelper().GetNextFunc( aFormula, false, nFStart, &nFEnd) )
- {
- pInputHdl->InputReplaceSelection( aFormula );
- pInputHdl->InputSetSelection( nFStart, nFEnd );
- sal_Int32 PrivStart, PrivEnd;
- pInputHdl->InputGetSelection( PrivStart, PrivEnd);
+ // edit if formula exists
- eMode = SetMeText(pInputHdl->GetFormString(),PrivStart, PrivEnd, bMatrix, true, true);
- pData->SetFStart( nFStart );
- }
- else
- bEdit = false;
- }
+ OUString aFormula;
+ m_pDoc->GetFormula( nCol, nRow, nTab, aFormula );
+ bool bEdit = ( aFormula.getLength() > 1 );
+ bool bMatrix = false;
+ if ( bEdit )
+ {
+ bMatrix = CheckMatrix(aFormula);
- if ( !bEdit )
+ sal_Int32 nFStart = 0;
+ sal_Int32 nFEnd = 0;
+ if ( GetFormulaHelper().GetNextFunc( aFormula, false, nFStart, &nFEnd) )
{
- OUString aNewFormula('=');
- if ( aFormula.startsWith("=") )
- aNewFormula = aFormula;
-
- pInputHdl->InputReplaceSelection( aNewFormula );
- pInputHdl->InputSetSelection( 1, aNewFormula.getLength()+1 );
+ pInputHdl->InputReplaceSelection( aFormula );
+ pInputHdl->InputSetSelection( nFStart, nFEnd );
sal_Int32 PrivStart, PrivEnd;
pInputHdl->InputGetSelection( PrivStart, PrivEnd);
- SetMeText(pInputHdl->GetFormString(),PrivStart, PrivEnd,bMatrix,false,false);
- pData->SetFStart( 1 ); // after "="
+ eMode = SetMeText(pInputHdl->GetFormString(),PrivStart, PrivEnd, bMatrix, true, true);
+ pData->SetFStart( nFStart );
}
+ else
+ bEdit = false;
+ }
- pData->SetMode( eMode );
- OUString rStrExp = GetMeText();
+ if ( !bEdit )
+ {
+ OUString aNewFormula('=');
+ if ( aFormula.startsWith("=") )
+ aNewFormula = aFormula;
+
+ pInputHdl->InputReplaceSelection( aNewFormula );
+ pInputHdl->InputSetSelection( 1, aNewFormula.getLength()+1 );
+ sal_Int32 PrivStart, PrivEnd;
+ pInputHdl->InputGetSelection( PrivStart, PrivEnd);
+ SetMeText(pInputHdl->GetFormString(),PrivStart, PrivEnd,bMatrix,false,false);
- Update(rStrExp);
+ pData->SetFStart( 1 ); // after "="
}
+ pData->SetMode( eMode );
+ OUString rStrExp = GetMeText();
+
+ Update(rStrExp);
+
}
void ScFormulaDlg::notifyChange()
@@ -190,45 +190,45 @@ void ScFormulaDlg::fill()
ScFormEditData* pData = static_cast<ScFormEditData*>(getFormEditData());
notifyChange();
OUString rStrExp;
- if (pData)
+ if (!pData)
+ return;
+
+ // data exists -> restore state (after switch)
+ // don't reinitialise m_pDoc and m_CursorPos
+ //pDoc = pViewData->GetDocument();
+ if(IsInputHdl(pData->GetInputHandler()))
{
- // data exists -> restore state (after switch)
- // don't reinitialise m_pDoc and m_CursorPos
- //pDoc = pViewData->GetDocument();
- if(IsInputHdl(pData->GetInputHandler()))
+ pScMod->SetRefInputHdl(pData->GetInputHandler());
+ }
+ else
+ {
+ ScTabViewShell* pTabViewShell;
+ ScInputHandler* pInputHdl = GetNextInputHandler(pData->GetDocShell(),&pTabViewShell);
+
+ if ( pInputHdl == nullptr ) //no more InputHandler for DocShell
{
- pScMod->SetRefInputHdl(pData->GetInputHandler());
+ disableOk();
+ pInputHdl = pScMod->GetInputHdl();
}
else
{
- ScTabViewShell* pTabViewShell;
- ScInputHandler* pInputHdl = GetNextInputHandler(pData->GetDocShell(),&pTabViewShell);
-
- if ( pInputHdl == nullptr ) //no more InputHandler for DocShell
- {
- disableOk();
- pInputHdl = pScMod->GetInputHdl();
- }
- else
- {
- pInputHdl->SetRefViewShell(pTabViewShell);
- }
- pScMod->SetRefInputHdl(pInputHdl);
- pData->SetInputHandler(pInputHdl);
+ pInputHdl->SetRefViewShell(pTabViewShell);
}
+ pScMod->SetRefInputHdl(pInputHdl);
+ pData->SetInputHandler(pInputHdl);
+ }
- OUString aOldFormulaTmp(pData->GetInputHandler()->GetFormString());
- pData->GetInputHandler()->InputSetSelection( 0, aOldFormulaTmp.getLength());
+ OUString aOldFormulaTmp(pData->GetInputHandler()->GetFormString());
+ pData->GetInputHandler()->InputSetSelection( 0, aOldFormulaTmp.getLength());
- rStrExp=pData->GetUndoStr();
- pData->GetInputHandler()->InputReplaceSelection(rStrExp);
+ rStrExp=pData->GetUndoStr();
+ pData->GetInputHandler()->InputReplaceSelection(rStrExp);
- SetMeText(rStrExp);
+ SetMeText(rStrExp);
- Update();
- // switch back, maybe new Doc has been opened
- pScMod->SetRefInputHdl(nullptr);
- }
+ Update();
+ // switch back, maybe new Doc has been opened
+ pScMod->SetRefInputHdl(nullptr);
}
ScFormulaDlg::~ScFormulaDlg() COVERITY_NOEXCEPT_FALSE
@@ -395,62 +395,62 @@ void ScFormulaDlg::RefInputDone( bool bForced )
void ScFormulaDlg::SetReference( const ScRange& rRef, ScDocument& rRefDoc )
{
const IFunctionDescription* pFunc = getCurrentFunctionDescription();
- if ( pFunc && pFunc->getSuppressedArgumentCount() > 0 )
- {
- Selection theSel;
- bool bRefNull = UpdateParaWin(theSel);
+ if ( !(pFunc && pFunc->getSuppressedArgumentCount() > 0) )
+ return;
- if ( rRef.aStart != rRef.aEnd && bRefNull )
- {
- RefInputStart(GetActiveEdit());
- }
+ Selection theSel;
+ bool bRefNull = UpdateParaWin(theSel);
- OUString aRefStr;
- bool bOtherDoc = (&rRefDoc != m_pDoc && rRefDoc.GetDocumentShell()->HasName());
- if ( bOtherDoc )
- {
- // reference to other document - like inputhdl.cxx
+ if ( rRef.aStart != rRef.aEnd && bRefNull )
+ {
+ RefInputStart(GetActiveEdit());
+ }
+
+ OUString aRefStr;
+ bool bOtherDoc = (&rRefDoc != m_pDoc && rRefDoc.GetDocumentShell()->HasName());
+ if ( bOtherDoc )
+ {
+ // reference to other document - like inputhdl.cxx
- OSL_ENSURE(rRef.aStart.Tab()==rRef.aEnd.Tab(), "nStartTab!=nEndTab");
+ OSL_ENSURE(rRef.aStart.Tab()==rRef.aEnd.Tab(), "nStartTab!=nEndTab");
- // Always 3D and absolute.
- OUString aTmp( rRef.Format(rRefDoc, ScRefFlags::VALID | ScRefFlags::TAB_ABS_3D));
+ // Always 3D and absolute.
+ OUString aTmp( rRef.Format(rRefDoc, ScRefFlags::VALID | ScRefFlags::TAB_ABS_3D));
- SfxObjectShell* pObjSh = rRefDoc.GetDocumentShell();
+ SfxObjectShell* pObjSh = rRefDoc.GetDocumentShell();
- // #i75893# convert escaped URL of the document to something user friendly
+ // #i75893# convert escaped URL of the document to something user friendly
// OUString aFileName = pObjSh->GetMedium()->GetName();
- OUString aFileName = pObjSh->GetMedium()->GetURLObject().GetMainURL( INetURLObject::DecodeMechanism::Unambiguous );
+ OUString aFileName = pObjSh->GetMedium()->GetURLObject().GetMainURL( INetURLObject::DecodeMechanism::Unambiguous );
- aRefStr = "'" + aFileName + "'#" + aTmp;
- }
- else
+ aRefStr = "'" + aFileName + "'#" + aTmp;
+ }
+ else
+ {
+ // We can't use ScRange::Format here because in R1C1 mode we need
+ // to display the reference position relative to the cursor
+ // position.
+ ScTokenArray aArray(&rRefDoc);
+ ScComplexRefData aRefData;
+ aRefData.InitRangeRel(&rRefDoc, rRef, m_CursorPos);
+ bool bSingle = aRefData.Ref1 == aRefData.Ref2;
+ if (m_CursorPos.Tab() != rRef.aStart.Tab())
{
- // We can't use ScRange::Format here because in R1C1 mode we need
- // to display the reference position relative to the cursor
- // position.
- ScTokenArray aArray(&rRefDoc);
- ScComplexRefData aRefData;
- aRefData.InitRangeRel(&rRefDoc, rRef, m_CursorPos);
- bool bSingle = aRefData.Ref1 == aRefData.Ref2;
- if (m_CursorPos.Tab() != rRef.aStart.Tab())
- {
- // pointer-selected => absolute sheet reference
- aRefData.Ref1.SetAbsTab( rRef.aStart.Tab() );
- aRefData.Ref1.SetFlag3D(true);
- }
- if (bSingle)
- aArray.AddSingleReference(aRefData.Ref1);
- else
- aArray.AddDoubleReference(aRefData);
- ScCompiler aComp(m_pDoc, m_CursorPos, aArray, m_pDoc->GetGrammar());
- OUStringBuffer aBuf;
- aComp.CreateStringFromTokenArray(aBuf);
- aRefStr = aBuf.makeStringAndClear();
+ // pointer-selected => absolute sheet reference
+ aRefData.Ref1.SetAbsTab( rRef.aStart.Tab() );
+ aRefData.Ref1.SetFlag3D(true);
}
-
- UpdateParaWin(theSel,aRefStr);
+ if (bSingle)
+ aArray.AddSingleReference(aRefData.Ref1);
+ else
+ aArray.AddDoubleReference(aRefData);
+ ScCompiler aComp(m_pDoc, m_CursorPos, aArray, m_pDoc->GetGrammar());
+ OUStringBuffer aBuf;
+ aComp.CreateStringFromTokenArray(aBuf);
+ aRefStr = aBuf.makeStringAndClear();
}
+
+ UpdateParaWin(theSel,aRefStr);
}
bool ScFormulaDlg::IsRefInputMode() const
@@ -585,19 +585,19 @@ void ScFormulaDlg::switchBack()
// restore current chart (cause mouse-RefInput)
ScTabViewShell* pScViewShell = dynamic_cast<ScTabViewShell*>( SfxViewShell::Current() );
- if ( pScViewShell )
- {
- ScViewData& rVD=pScViewShell->GetViewData();
- SCTAB nExecTab = m_CursorPos.Tab();
- if ( nExecTab != rVD.GetTabNo() )
- pScViewShell->SetTabNo( nExecTab );
+ if ( !pScViewShell )
+ return;
- SCROW nRow = m_CursorPos.Row();
- SCCOL nCol = m_CursorPos.Col();
+ ScViewData& rVD=pScViewShell->GetViewData();
+ SCTAB nExecTab = m_CursorPos.Tab();
+ if ( nExecTab != rVD.GetTabNo() )
+ pScViewShell->SetTabNo( nExecTab );
- if(rVD.GetCurX()!=nCol || rVD.GetCurY()!=nRow)
- pScViewShell->SetCursor(nCol,nRow);
- }
+ SCROW nRow = m_CursorPos.Row();
+ SCCOL nCol = m_CursorPos.Col();
+
+ if(rVD.GetCurX()!=nCol || rVD.GetCurY()!=nRow)
+ pScViewShell->SetCursor(nCol,nRow);
}
formula::FormEditData* ScFormulaDlg::getFormEditData() const
{
diff --git a/sc/source/ui/namedlg/namedlg.cxx b/sc/source/ui/namedlg/namedlg.cxx
index 7c3a91e320af..dbc3180a2ad7 100644
--- a/sc/source/ui/namedlg/namedlg.cxx
+++ b/sc/source/ui/namedlg/namedlg.cxx
@@ -372,34 +372,34 @@ void ScNameDlg::NameModified()
ScRangeName* pNewRangeName = GetRangeName( aNewScope );
OSL_ENSURE(pData, "model and table should be in sync");
// be safe and check for range data
- if (pData)
- {
- // Assign new index (0) only if the scope is changed, else keep the
- // existing index.
- sal_uInt16 nIndex = (aNewScope != aOldScope ? 0 : pData->GetIndex());
-
- pOldRangeName->erase(*pData);
- m_xRangeManagerTable->BlockUpdate();
- m_xRangeManagerTable->DeleteSelectedEntries();
- ScRangeData::Type nType = ScRangeData::Type::Name;
- if ( m_xBtnRowHeader->get_active() ) nType |= ScRangeData::Type::RowHeader;
- if ( m_xBtnColHeader->get_active() ) nType |= ScRangeData::Type::ColHeader;
- if ( m_xBtnPrintArea->get_active() ) nType |= ScRangeData::Type::PrintArea;
- if ( m_xBtnCriteria->get_active() ) nType |= ScRangeData::Type::Criteria;
-
- ScRangeData* pNewEntry = new ScRangeData( mpDoc, aNewName, aExpr,
- maCursorPos, nType);
- pNewEntry->SetIndex( nIndex);
- pNewRangeName->insert(pNewEntry, false /*bReuseFreeIndex*/);
- aLine.aName = aNewName;
- aLine.aExpression = aExpr;
- aLine.aScope = aNewScope;
- m_xRangeManagerTable->addEntry(aLine, true);
- // tdf#128137 process pending async row change events while UpdatesBlocked in place
- Application::Reschedule(true);
- m_xRangeManagerTable->UnblockUpdate();
- mbDataChanged = true;
- }
+ if (!pData)
+ return;
+
+ // Assign new index (0) only if the scope is changed, else keep the
+ // existing index.
+ sal_uInt16 nIndex = (aNewScope != aOldScope ? 0 : pData->GetIndex());
+
+ pOldRangeName->erase(*pData);
+ m_xRangeManagerTable->BlockUpdate();
+ m_xRangeManagerTable->DeleteSelectedEntries();
+ ScRangeData::Type nType = ScRangeData::Type::Name;
+ if ( m_xBtnRowHeader->get_active() ) nType |= ScRangeData::Type::RowHeader;
+ if ( m_xBtnColHeader->get_active() ) nType |= ScRangeData::Type::ColHeader;
+ if ( m_xBtnPrintArea->get_active() ) nType |= ScRangeData::Type::PrintArea;
+ if ( m_xBtnCriteria->get_active() ) nType |= ScRangeData::Type::Criteria;
+
+ ScRangeData* pNewEntry = new ScRangeData( mpDoc, aNewName, aExpr,
+ maCursorPos, nType);
+ pNewEntry->SetIndex( nIndex);
+ pNewRangeName->insert(pNewEntry, false /*bReuseFreeIndex*/);
+ aLine.aName = aNewName;
+ aLine.aExpression = aExpr;
+ aLine.aScope = aNewScope;
+ m_xRangeManagerTable->addEntry(aLine, true);
+ // tdf#128137 process pending async row change events while UpdatesBlocked in place
+ Application::Reschedule(true);
+ m_xRangeManagerTable->UnblockUpdate();
+ mbDataChanged = true;
}
void ScNameDlg::SelectionChanged()
diff --git a/sc/source/ui/navipi/content.cxx b/sc/source/ui/navipi/content.cxx
index eaeb767cafaa..918880c03572 100644
--- a/sc/source/ui/navipi/content.cxx
+++ b/sc/source/ui/navipi/content.cxx
@@ -661,47 +661,47 @@ void ScContentTree::ObjectFresh(ScContentId nType, const weld::TreeIter* pEntry)
if (bHiddenDoc && !pHiddenDocument)
return; // other document displayed
- if (nType == ScContentId::GRAPHIC || nType == ScContentId::OLEOBJECT || nType == ScContentId::DRAWING)
- {
- auto nOldChildren = m_aRootNodes[nType] ? m_xTreeView->iter_n_children(*m_aRootNodes[nType]) : 0;
- auto nOldPos = m_xTreeView->vadjustment_get_value();
+ if (!(nType == ScContentId::GRAPHIC || nType == ScContentId::OLEOBJECT || nType == ScContentId::DRAWING))
+ return;
- freeze();
- ClearType( nType );
- GetDrawNames( nType/*, nId*/ );
- thaw();
+ auto nOldChildren = m_aRootNodes[nType] ? m_xTreeView->iter_n_children(*m_aRootNodes[nType]) : 0;
+ auto nOldPos = m_xTreeView->vadjustment_get_value();
- auto nNewChildren = m_aRootNodes[nType] ? m_xTreeView->iter_n_children(*m_aRootNodes[nType]) : 0;
- bool bRestorePos = nOldChildren == nNewChildren;
+ freeze();
+ ClearType( nType );
+ GetDrawNames( nType/*, nId*/ );
+ thaw();
- if (!pEntry)
- ApplyNavigatorSettings(bRestorePos, nOldPos);
- if (pEntry)
+ auto nNewChildren = m_aRootNodes[nType] ? m_xTreeView->iter_n_children(*m_aRootNodes[nType]) : 0;
+ bool bRestorePos = nOldChildren == nNewChildren;
+
+ if (!pEntry)
+ ApplyNavigatorSettings(bRestorePos, nOldPos);
+ if (!pEntry)
+ return;
+
+ weld::TreeIter* pParent = m_aRootNodes[nType].get();
+ std::unique_ptr<weld::TreeIter> xOldEntry;
+ std::unique_ptr<weld::TreeIter> xBeginEntry(m_xTreeView->make_iterator(pParent));
+ bool bBeginEntry = false;
+ if( pParent )
+ bBeginEntry = m_xTreeView->iter_children(*xBeginEntry);
+ while (bBeginEntry)
+ {
+ OUString aTempText(m_xTreeView->get_text(*xBeginEntry));
+ if (aTempText == sKeyString)
{
- weld::TreeIter* pParent = m_aRootNodes[nType].get();
- std::unique_ptr<weld::TreeIter> xOldEntry;
- std::unique_ptr<weld::TreeIter> xBeginEntry(m_xTreeView->make_iterator(pParent));
- bool bBeginEntry = false;
- if( pParent )
- bBeginEntry = m_xTreeView->iter_children(*xBeginEntry);
- while (bBeginEntry)
- {
- OUString aTempText(m_xTreeView->get_text(*xBeginEntry));
- if (aTempText == sKeyString)
- {
- xOldEntry = m_xTreeView->make_iterator(xBeginEntry.get());
- break;
- }
- bBeginEntry = m_xTreeView->iter_next(*xBeginEntry);
- }
- if (xOldEntry)
- {
- m_xTreeView->expand_row(*pParent);
- m_xTreeView->select(*xOldEntry);
- m_xTreeView->set_cursor(*xOldEntry);
- StoreNavigatorSettings();
- }
+ xOldEntry = m_xTreeView->make_iterator(xBeginEntry.get());
+ break;
}
+ bBeginEntry = m_xTreeView->iter_next(*xBeginEntry);
+ }
+ if (xOldEntry)
+ {
+ m_xTreeView->expand_row(*pParent);
+ m_xTreeView->select(*xOldEntry);
+ m_xTreeView->set_cursor(*xOldEntry);
+ StoreNavigatorSettings();
}
}
@@ -867,41 +867,41 @@ void ScContentTree::GetDrawNames( ScContentId nType )
ScDrawLayer* pDrawLayer = pDoc->GetDrawLayer();
SfxObjectShell* pShell = pDoc->GetDocumentShell();
- if (pDrawLayer && pShell)
+ if (!(pDrawLayer && pShell))
+ return;
+
+ SCTAB nTabCount = pDoc->GetTableCount();
+ for (SCTAB nTab=0; nTab<nTabCount; nTab++)
{
- SCTAB nTabCount = pDoc->GetTableCount();
- for (SCTAB nTab=0; nTab<nTabCount; nTab++)
+ SdrPage* pPage = pDrawLayer->GetPage(static_cast<sal_uInt16>(nTab));
+ OSL_ENSURE(pPage,"Page ?");
+ if (pPage)
{
- SdrPage* pPage = pDrawLayer->GetPage(static_cast<sal_uInt16>(nTab));
- OSL_ENSURE(pPage,"Page ?");
- if (pPage)
+ SdrObjListIter aIter( pPage, eIter );
+ SdrObject* pObject = aIter.Next();
+ while (pObject)
{
- SdrObjListIter aIter( pPage, eIter );
- SdrObject* pObject = aIter.Next();
- while (pObject)
+ if ( IsPartOfType( nType, pObject->GetObjIdentifier() ) )
{
- if ( IsPartOfType( nType, pObject->GetObjIdentifier() ) )
+ OUString aName = ScDrawLayer::GetVisibleName( pObject );
+ if (!aName.isEmpty())
{
- OUString aName = ScDrawLayer::GetVisibleName( pObject );
- if (!aName.isEmpty())
+ if( bisInNavigatoeDlg )
{
- if( bisInNavigatoeDlg )
+ weld::TreeIter* pParent = m_aRootNodes[nType].get();
+ if (pParent)
{
- weld::TreeIter* pParent = m_aRootNodes[nType].get();
- if (pParent)
- {
- m_xTreeView->insert(pParent, -1, &aName, nullptr, nullptr, nullptr, false, m_xScratchIter.get());
- m_xTreeView->set_sensitive(*m_xScratchIter, true);
- }//end if parent
- else
- SAL_WARN("sc", "InsertContent without parent");
- }
+ m_xTreeView->insert(pParent, -1, &aName, nullptr, nullptr, nullptr, false, m_xScratchIter.get());
+ m_xTreeView->set_sensitive(*m_xScratchIter, true);
+ }//end if parent
+ else
+ SAL_WARN("sc", "InsertContent without parent");
}
-
}
- pObject = aIter.Next();
}
+
+ pObject = aIter.Next();
}
}
}
@@ -1391,19 +1391,19 @@ void ScContentTree::LoadFile( const OUString& rUrl )
OUString aURL = aDocName;
OUString aFilter, aOptions;
ScDocumentLoader aLoader( aURL, aFilter, aOptions );
- if ( !aLoader.IsError() )
- {
- bHiddenDoc = true;
- aHiddenName = aDocName;
- aHiddenTitle = aLoader.GetTitle();
- pHiddenDocument = aLoader.GetDocument();
+ if ( aLoader.IsError() )
+ return;
- Refresh(); // get content from loaded document
+ bHiddenDoc = true;
+ aHiddenName = aDocName;
+ aHiddenTitle = aLoader.GetTitle();
+ pHiddenDocument = aLoader.GetDocument();
- pHiddenDocument = nullptr;
+ Refresh(); // get content from loaded document
- pParentWindow->GetDocNames( &aHiddenTitle ); // fill list
- }
+ pHiddenDocument = nullptr;
+
+ pParentWindow->GetDocNames( &aHiddenTitle ); // fill list
// document is closed again by ScDocumentLoader in dtor
}
@@ -1574,56 +1574,56 @@ void ScContentTree::SelectEntryByName(const ScContentId nRoot, const OUString& r
void ScContentTree::ApplyNavigatorSettings(bool bRestorePos, int nScrollPos)
{
const ScNavigatorSettings* pSettings = ScNavigatorDlg::GetNavigatorSettings();
- if( pSettings )
- {
- ScContentId nRootSel = pSettings->GetRootSelected();
- auto nChildSel = pSettings->GetChildSelected();
+ if( !pSettings )
+ return;
- // tdf#133079 ensure Sheet root is selected if nothing
- // else would be
- if (nRootSel == ScContentId::ROOT)
- {
- nRootSel = ScContentId::TABLE;
- nChildSel = SC_CONTENT_NOCHILD;
- }
+ ScContentId nRootSel = pSettings->GetRootSelected();
+ auto nChildSel = pSettings->GetChildSelected();
- for( int i = 1; i <= int(ScContentId::LAST); ++i )
+ // tdf#133079 ensure Sheet root is selected if nothing
+ // else would be
+ if (nRootSel == ScContentId::ROOT)
+ {
+ nRootSel = ScContentId::TABLE;
+ nChildSel = SC_CONTENT_NOCHILD;
+ }
+
+ for( int i = 1; i <= int(ScContentId::LAST); ++i )
+ {
+ ScContentId nEntry = static_cast<ScContentId>(i);
+ if( m_aRootNodes[ nEntry ] )
{
- ScContentId nEntry = static_cast<ScContentId>(i);
- if( m_aRootNodes[ nEntry ] )
+ // gray or ungray
+ if (!m_xTreeView->iter_has_child(*m_aRootNodes[nEntry]))
+ m_xTreeView->set_sensitive(*m_aRootNodes[nEntry], false);
+ else
+ m_xTreeView->set_sensitive(*m_aRootNodes[nEntry], true);
+
+ // expand
+ bool bExp = pSettings->IsExpanded( nEntry );
+ if (bExp != m_xTreeView->get_row_expanded(*m_aRootNodes[nEntry]))
{
- // gray or ungray
- if (!m_xTreeView->iter_has_child(*m_aRootNodes[nEntry]))
- m_xTreeView->set_sensitive(*m_aRootNodes[nEntry], false);
+ if( bExp )
+ m_xTreeView->expand_row(*m_aRootNodes[nEntry]);
else
- m_xTreeView->set_sensitive(*m_aRootNodes[nEntry], true);
+ m_xTreeView->collapse_row(*m_aRootNodes[nEntry]);
+ }
- // expand
- bool bExp = pSettings->IsExpanded( nEntry );
- if (bExp != m_xTreeView->get_row_expanded(*m_aRootNodes[nEntry]))
- {
- if( bExp )
- m_xTreeView->expand_row(*m_aRootNodes[nEntry]);
- else
- m_xTreeView->collapse_row(*m_aRootNodes[nEntry]);
- }
+ // select
+ if( nRootSel == nEntry )
+ {
+ if (bRestorePos)
+ m_xTreeView->vadjustment_set_value(nScrollPos);
- // select
- if( nRootSel == nEntry )
+ std::unique_ptr<weld::TreeIter> xEntry;
+ if (bExp && (nChildSel != SC_CONTENT_NOCHILD))
{
- if (bRestorePos)
- m_xTreeView->vadjustment_set_value(nScrollPos);
-
- std::unique_ptr<weld::TreeIter> xEntry;
- if (bExp && (nChildSel != SC_CONTENT_NOCHILD))
- {
- xEntry = m_xTreeView->make_iterator(m_aRootNodes[nEntry].get());
- if (!m_xTreeView->iter_children(*xEntry) || !m_xTreeView->iter_nth_sibling(*xEntry, nChildSel))
- xEntry.reset();
- }
- m_xTreeView->select(xEntry ? *xEntry : *m_aRootNodes[nEntry]);
- m_xTreeView->set_cursor(xEntry ? *xEntry : *m_aRootNodes[nEntry]);
+ xEntry = m_xTreeView->make_iterator(m_aRootNodes[nEntry].get());
+ if (!m_xTreeView->iter_children(*xEntry) || !m_xTreeView->iter_nth_sibling(*xEntry, nChildSel))
+ xEntry.reset();
}
+ m_xTreeView->select(xEntry ? *xEntry : *m_aRootNodes[nEntry]);
+ m_xTreeView->set_cursor(xEntry ? *xEntry : *m_aRootNodes[nEntry]);
}
}
}
@@ -1632,26 +1632,26 @@ void ScContentTree::ApplyNavigatorSettings(bool bRestorePos, int nScrollPos)
void ScContentTree::StoreNavigatorSettings() const
{
ScNavigatorSettings* pSettings = ScNavigatorDlg::GetNavigatorSettings();
- if( pSettings )
+ if( !pSettings )
+ return;
+
+ for( int i = 1; i <= int(ScContentId::LAST); ++i )
{
- for( int i = 1; i <= int(ScContentId::LAST); ++i )
- {
- ScContentId nEntry = static_cast<ScContentId>(i);
- bool bExp = m_aRootNodes[nEntry] && m_xTreeView->get_row_expanded(*m_aRootNodes[nEntry]);
- pSettings->SetExpanded( nEntry, bExp );
- }
+ ScContentId nEntry = static_cast<ScContentId>(i);
+ bool bExp = m_aRootNodes[nEntry] && m_xTreeView->get_row_expanded(*m_aRootNodes[nEntry]);
+ pSettings->SetExpanded( nEntry, bExp );
+ }
- std::unique_ptr<weld::TreeIter> xCurEntry(m_xTreeView->make_iterator());
- if (!m_xTreeView->get_cursor(xCurEntry.get()))
- xCurEntry.reset();
+ std::unique_ptr<weld::TreeIter> xCurEntry(m_xTreeView->make_iterator());
+ if (!m_xTreeView->get_cursor(xCurEntry.get()))
+ xCurEntry.reset();
- ScContentId nRoot;
- sal_uLong nChild;
- GetEntryIndexes(nRoot, nChild, xCurEntry.get());
+ ScContentId nRoot;
+ sal_uLong nChild;
+ GetEntryIndexes(nRoot, nChild, xCurEntry.get());
- pSettings->SetRootSelected( nRoot );
- pSettings->SetChildSelected( nChild );
- }
+ pSettings->SetRootSelected( nRoot );
+ pSettings->SetChildSelected( nChild );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/ui/navipi/navipi.cxx b/sc/source/ui/navipi/navipi.cxx
index f970ef9c8683..c7edef768b2e 100644
--- a/sc/source/ui/navipi/navipi.cxx
+++ b/sc/source/ui/navipi/navipi.cxx
@@ -233,20 +233,20 @@ IMPL_LINK(ScNavigatorDlg, ToolBoxDropdownClickHdl, const OString&, rCommand, voi
// the popup menu of the drop mode has to be called in the
// click (button down) and not in the select (button up)
- if (rCommand == "dragmode")
+ if (rCommand != "dragmode")
+ return;
+
+ switch (GetDropMode())
{
- switch (GetDropMode())
- {
- case 0:
- m_xDragModeMenu->set_active("hyperlink", true);
- break;
- case 1:
- m_xDragModeMenu->set_active("link", true);
- break;
- case 2:
- m_xDragModeMenu->set_active("copy", true);
- break;
- }
+ case 0:
+ m_xDragModeMenu->set_active("hyperlink", true);
+ break;
+ case 1:
+ m_xDragModeMenu->set_active("link", true);
+ break;
+ case 2:
+ m_xDragModeMenu->set_active("copy", true);
+ break;
}
}
@@ -550,26 +550,26 @@ void ScNavigatorDlg::SetDropMode(sal_uInt16 nNew)
void ScNavigatorDlg::SetCurrentCell( SCCOL nColNo, SCROW nRowNo )
{
- if ( (nColNo+1 != nCurCol) || (nRowNo+1 != nCurRow) )
- {
- // SID_CURRENTCELL == Item #0 clear cache, so it's possible
- // setting the current cell even in combined areas
- mvBoundItems[0]->ClearCache();
+ if ((nColNo+1 == nCurCol) && (nRowNo+1 == nCurRow))
+ return;
- ScAddress aScAddress( nColNo, nRowNo, 0 );
- OUString aAddr(aScAddress.Format(ScRefFlags::ADDR_ABS));
+ // SID_CURRENTCELL == Item #0 clear cache, so it's possible
+ // setting the current cell even in combined areas
+ mvBoundItems[0]->ClearCache();
- bool bUnmark = false;
- if ( GetViewData() )
- bUnmark = !pViewData->GetMarkData().IsCellMarked( nColNo, nRowNo );
+ ScAddress aScAddress( nColNo, nRowNo, 0 );
+ OUString aAddr(aScAddress.Format(ScRefFlags::ADDR_ABS));
- SfxStringItem aPosItem( SID_CURRENTCELL, aAddr );
- SfxBoolItem aUnmarkItem( FN_PARAM_1, bUnmark ); // cancel selection
+ bool bUnmark = false;
+ if ( GetViewData() )
+ bUnmark = !pViewData->GetMarkData().IsCellMarked( nColNo, nRowNo );
- rBindings.GetDispatcher()->ExecuteList(SID_CURRENTCELL,
- SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
- { &aPosItem, &aUnmarkItem });
- }
+ SfxStringItem aPosItem( SID_CURRENTCELL, aAddr );
+ SfxBoolItem aUnmarkItem( FN_PARAM_1, bUnmark ); // cancel selection
+
+ rBindings.GetDispatcher()->ExecuteList(SID_CURRENTCELL,
+ SfxCallMode::SYNCHRON | SfxCallMode::RECORD,
+ { &aPosItem, &aUnmarkItem });
}
void ScNavigatorDlg::SetCurrentCellStr( const OUString& rName )
@@ -652,21 +652,21 @@ void ScNavigatorDlg::UpdateSelection()
return;
uno::Reference< drawing::XShapes > xShapes = pViewSh->getSelectedXShapes();
- if( xShapes )
+ if( !xShapes )
+ return;
+
+ uno::Reference< container::XIndexAccess > xIndexAccess(
+ xShapes, uno::UNO_QUERY_THROW );
+ if( xIndexAccess->getCount() > 1 )
+ return;
+ uno::Reference< drawing::XShape > xShape;
+ if( xIndexAccess->getByIndex(0) >>= xShape )
{
- uno::Reference< container::XIndexAccess > xIndexAccess(
- xShapes, uno::UNO_QUERY_THROW );
- if( xIndexAccess->getCount() > 1 )
- return;
- uno::Reference< drawing::XShape > xShape;
- if( xIndexAccess->getByIndex(0) >>= xShape )
+ uno::Reference< container::XNamed > xNamed( xShape, uno::UNO_QUERY_THROW );
+ OUString sName = xNamed->getName();
+ if (!sName.isEmpty())
{
- uno::Reference< container::XNamed > xNamed( xShape, uno::UNO_QUERY_THROW );
- OUString sName = xNamed->getName();
- if (!sName.isEmpty())
- {
- m_xLbEntries->SelectEntryByName( ScContentId::DRAWING, sName );
- }
+ m_xLbEntries->SelectEntryByName( ScContentId::DRAWING, sName );
}
}
}
@@ -863,20 +863,20 @@ void ScNavigatorDlg::MarkDataArea()
{
ScTabViewShell* pViewSh = GetTabViewShell();
- if ( pViewSh )
- {
- if ( !pMarkArea )
- pMarkArea.reset( new ScArea );
+ if ( !pViewSh )
+ return;
- pViewSh->MarkDataArea();
- ScRange aMarkRange;
- pViewSh->GetViewData().GetMarkData().GetMarkArea(aMarkRange);
- pMarkArea->nColStart = aMarkRange.aStart.Col();
- pMarkArea->nRowStart = aMarkRange.aStart.Row();
- pMarkArea->nColEnd = aMarkRange.aEnd.Col();
- pMarkArea->nRowEnd = aMarkRange.aEnd.Row();
- pMarkArea->nTab = aMarkRange.aStart.Tab();
- }
+ if ( !pMarkArea )
+ pMarkArea.reset( new ScArea );
+
+ pViewSh->MarkDataArea();
+ ScRange aMarkRange;
+ pViewSh->GetViewData().GetMarkData().GetMarkArea(aMarkRange);
+ pMarkArea->nColStart = aMarkRange.aStart.Col();
+ pMarkArea->nRowStart = aMarkRange.aStart.Row();
+ pMarkArea->nColEnd = aMarkRange.aEnd.Col();
+ pMarkArea->nRowEnd = aMarkRange.aEnd.Row();
+ pMarkArea->nTab = aMarkRange.aStart.Tab();
}
void ScNavigatorDlg::UnmarkDataArea()
diff --git a/sc/source/ui/optdlg/tpusrlst.cxx b/sc/source/ui/optdlg/tpusrlst.cxx
index 5cedd09b6895..e32ebb5de033 100644
--- a/sc/source/ui/optdlg/tpusrlst.cxx
+++ b/sc/source/ui/optdlg/tpusrlst.cxx
@@ -435,23 +435,23 @@ void ScTpUserLists::RemoveList( size_t nList )
IMPL_LINK( ScTpUserLists, LbSelectHdl, weld::TreeView&, rLb, void )
{
- if ( &rLb == mxLbLists.get() )
- {
- sal_Int32 nSelPos = mxLbLists->get_selected_index();
- if ( nSelPos != -1 )
- {
- if ( !mxFtEntries->get_sensitive() ) mxFtEntries->set_sensitive(true);
- if ( !mxEdEntries->get_sensitive() ) mxEdEntries->set_sensitive(true);
- if ( !mxBtnRemove->get_sensitive() ) mxBtnRemove->set_sensitive(true);
- if ( mxBtnAdd->get_sensitive() )
- {
- mxBtnAdd->set_sensitive(false);
- mxBtnModify->set_sensitive(false);
- }
+ if ( &rLb != mxLbLists.get() )
+ return;
- UpdateEntries( nSelPos );
- }
+ sal_Int32 nSelPos = mxLbLists->get_selected_index();
+ if ( nSelPos == -1 )
+ return;
+
+ if ( !mxFtEntries->get_sensitive() ) mxFtEntries->set_sensitive(true);
+ if ( !mxEdEntries->get_sensitive() ) mxEdEntries->set_sensitive(true);
+ if ( !mxBtnRemove->get_sensitive() ) mxBtnRemove->set_sensitive(true);
+ if ( mxBtnAdd->get_sensitive() )
+ {
+ mxBtnAdd->set_sensitive(false);
+ mxBtnModify->set_sensitive(false);
}
+
+ UpdateEntries( nSelPos );
}
IMPL_LINK( ScTpUserLists, BtnClickHdl, weld::Button&, rBtn, void )
diff --git a/sc/source/ui/pagedlg/areasdlg.cxx b/sc/source/ui/pagedlg/areasdlg.cxx
index 791c4d1e696a..c9221ac68b78 100644
--- a/sc/source/ui/pagedlg/areasdlg.cxx
+++ b/sc/source/ui/pagedlg/areasdlg.cxx
@@ -165,33 +165,33 @@ bool ScPrintAreasDlg::IsTableLocked() const
void ScPrintAreasDlg::SetReference( const ScRange& rRef, ScDocument& /* rDoc */ )
{
- if ( m_pRefInputEdit )
- {
- if ( rRef.aStart != rRef.aEnd )
- RefInputStart( m_pRefInputEdit );
+ if ( !m_pRefInputEdit )
+ return;
- OUString aStr;
- const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
+ if ( rRef.aStart != rRef.aEnd )
+ RefInputStart( m_pRefInputEdit );
- if (m_xEdPrintArea.get() == m_pRefInputEdit)
- {
- aStr = rRef.Format(*pDoc, ScRefFlags::RANGE_ABS, eConv);
- OUString aVal = m_xEdPrintArea->GetText();
- Selection aSel = m_xEdPrintArea->GetSelection();
- aSel.Justify();
- aVal = aVal.replaceAt( aSel.Min(), aSel.Len(), aStr );
- Selection aNewSel( aSel.Min(), aSel.Min()+aStr.getLength() );
- m_xEdPrintArea->SetRefString( aVal );
- m_xEdPrintArea->SetSelection( aNewSel );
- }
- else
- {
- bool bRow = ( m_xEdRepeatRow.get() == m_pRefInputEdit );
- lcl_GetRepeatRangeString(&rRef, *pDoc, bRow, aStr);
- m_pRefInputEdit->SetRefString( aStr );
- }
- Impl_ModifyHdl( *m_pRefInputEdit );
+ OUString aStr;
+ const formula::FormulaGrammar::AddressConvention eConv = pDoc->GetAddressConvention();
+
+ if (m_xEdPrintArea.get() == m_pRefInputEdit)
+ {
+ aStr = rRef.Format(*pDoc, ScRefFlags::RANGE_ABS, eConv);
+ OUString aVal = m_xEdPrintArea->GetText();
+ Selection aSel = m_xEdPrintArea->GetSelection();
+ aSel.Justify();
+ aVal = aVal.replaceAt( aSel.Min(), aSel.Len(), aStr );
+ Selection aNewSel( aSel.Min(), aSel.Min()+aStr.getLength() );
+ m_xEdPrintArea->SetRefString( aVal );
+ m_xEdPrintArea->SetSelection( aNewSel );
+ }
+ else
+ {
+ bool bRow = ( m_xEdRepeatRow.get() == m_pRefInputEdit );
+ lcl_GetRepeatRangeString(&rRef, *pDoc, bRow, aStr);
+ m_pRefInputEdit->SetRefString( aStr );
}
+ Impl_ModifyHdl( *m_pRefInputEdit );
}
void ScPrintAreasDlg::AddRefEntry()
diff --git a/sc/source/ui/pagedlg/scuitphfedit.cxx b/sc/source/ui/pagedlg/scuitphfedit.cxx
index f1336a641b97..06e3b0406f9e 100644
--- a/sc/source/ui/pagedlg/scuitphfedit.cxx
+++ b/sc/source/ui/pagedlg/scuitphfedit.cxx
@@ -148,19 +148,19 @@ void ScHFEditPage::SetNumType(SvxNumType eNumType)
void ScHFEditPage::Reset( const SfxItemSet* rCoreSet )
{
const SfxPoolItem* pItem = nullptr;
- if ( rCoreSet->HasItem(nWhich, &pItem) )
- {
- const ScPageHFItem& rItem = static_cast<const ScPageHFItem&>(*pItem);
+ if ( !rCoreSet->HasItem(nWhich, &pItem) )
+ return;
- if( const EditTextObject* pLeft = rItem.GetLeftArea() )
- m_xWndLeft->SetText( *pLeft );
- if( const EditTextObject* pCenter = rItem.GetCenterArea() )
- m_xWndCenter->SetText( *pCenter );
- if( const EditTextObject* pRight = rItem.GetRightArea() )
- m_xWndRight->SetText( *pRight );
+ const ScPageHFItem& rItem = static_cast<const ScPageHFItem&>(*pItem);
- SetSelectDefinedList();
- }
+ if( const EditTextObject* pLeft = rItem.GetLeftArea() )
+ m_xWndLeft->SetText( *pLeft );
+ if( const EditTextObject* pCenter = rItem.GetCenterArea() )
+ m_xWndCenter->SetText( *pCenter );
+ if( const EditTextObject* pRight = rItem.GetRightArea() )
+ m_xWndRight->SetText( *pRight );
+
+ SetSelectDefinedList();
}
bool ScHFEditPage::FillItemSet( SfxItemSet* rCoreSet )
diff --git a/sc/source/ui/pagedlg/tphfedit.cxx b/sc/source/ui/pagedlg/tphfedit.cxx
index db2a91e5e3eb..4de4c93ff554 100644
--- a/sc/source/ui/pagedlg/tphfedit.cxx
+++ b/sc/source/ui/pagedlg/tphfedit.cxx
@@ -92,25 +92,25 @@ void ScEditWindow::SetDrawingArea(weld::DrawingArea* pDrawingArea)
if (mbRTL)
m_xEditEngine->SetDefaultHorizontalTextDirection(EEHorizontalTextDirection::R2L);
- if (pAcc)
+ if (!pAcc)
+ return;
+
+ OUString sName;
+ switch (eLocation)
{
- OUString sName;
- switch (eLocation)
- {
- case Left:
- sName = ScResId(STR_ACC_LEFTAREA_NAME);
- break;
- case Center:
- sName = ScResId(STR_ACC_CENTERAREA_NAME);
- break;
- case Right:
- sName = ScResId(STR_ACC_RIGHTAREA_NAME);
- break;
- }
-
- pAcc->InitAcc(nullptr, m_xEditView.get(), nullptr,
- sName, pDrawingArea->get_tooltip_text());
+ case Left:
+ sName = ScResId(STR_ACC_LEFTAREA_NAME);
+ break;
+ case Center:
+ sName = ScResId(STR_ACC_CENTERAREA_NAME);
+ break;
+ case Right:
+ sName = ScResId(STR_ACC_RIGHTAREA_NAME);
+ break;
}
+
+ pAcc->InitAcc(nullptr, m_xEditView.get(), nullptr,
+ sName, pDrawingArea->get_tooltip_text());
}
ScEditWindow::~ScEditWindow()
@@ -179,26 +179,26 @@ void ScEditWindow::SetCharAttributes()
OSL_ENSURE( pDocSh, "Current DocShell not found" );
OSL_ENSURE( pViewSh, "Current ViewShell not found" );
- if ( pDocSh && pViewSh )
- {
- if(pTabViewSh!=nullptr) pTabViewSh->SetInFormatDialog(true);
+ if ( !(pDocSh && pViewSh) )
+ return;
- SfxItemSet aSet( m_xEditView->GetAttribs() );
+ if(pTabViewSh!=nullptr) pTabViewSh->SetInFormatDialog(true);
- ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
+ SfxItemSet aSet( m_xEditView->GetAttribs() );
- ScopedVclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateScCharDlg(
- mpDialog, &aSet, pDocSh, false));
- pDlg->SetText( ScResId( STR_TEXTATTRS ) );
- if ( pDlg->Execute() == RET_OK )
- {
- aSet.ClearItem();
- aSet.Put( *pDlg->GetOutputItemSet() );
- m_xEditView->SetAttribs( aSet );
- }
+ ScAbstractDialogFactory* pFact = ScAbstractDialogFactory::Create();
- if(pTabViewSh!=nullptr) pTabViewSh->SetInFormatDialog(false);
+ ScopedVclPtr<SfxAbstractTabDialog> pDlg(pFact->CreateScCharDlg(
+ mpDialog, &aSet, pDocSh, false));
+ pDlg->SetText( ScResId( STR_TEXTATTRS ) );
+ if ( pDlg->Execute() == RET_OK )
+ {
+ aSet.ClearItem();
+ aSet.Put( *pDlg->GetOutputItemSet() );
+ m_xEditView->SetAttribs( aSet );
}
+
+ if(pTabViewSh!=nullptr) pTabViewSh->SetInFormatDialog(false);
}
bool ScEditWindow::KeyInput( const KeyEvent& rKEvt )
diff --git a/sc/source/ui/undo/areasave.cxx b/sc/source/ui/undo/areasave.cxx
index 361084ad7739..e250aac70e60 100644
--- a/sc/source/ui/undo/areasave.cxx
+++ b/sc/source/ui/undo/areasave.cxx
@@ -130,19 +130,19 @@ void ScAreaLinkSaveCollection::Restore( ScDocument* pDoc )
// of links changes if deleted entries are re-added to the link manager (always at the end).
sfx2::LinkManager* pLinkManager = pDoc->GetDocLinkManager().getLinkManager(false);
- if (pLinkManager)
+ if (!pLinkManager)
+ return;
+
+ const ::sfx2::SvBaseLinks& rLinks = pLinkManager->GetLinks();
+ size_t nSaveCount = size();
+ for (size_t nPos=0; nPos<nSaveCount; ++nPos)
{
- const ::sfx2::SvBaseLinks& rLinks = pLinkManager->GetLinks();
- size_t nSaveCount = size();
- for (size_t nPos=0; nPos<nSaveCount; ++nPos)
- {
- ScAreaLinkSaver& rSaver = (*this)[nPos];
- ScAreaLink* pLink = lcl_FindLink( rLinks, rSaver );
- if ( pLink )
- rSaver.WriteToLink( *pLink ); // restore output position
- else
- rSaver.InsertNewLink( pDoc ); // re-insert deleted link
- }
+ ScAreaLinkSaver& rSaver = (*this)[nPos];
+ ScAreaLink* pLink = lcl_FindLink( rLinks, rSaver );
+ if ( pLink )
+ rSaver.WriteToLink( *pLink ); // restore output position
+ else
+ rSaver.InsertNewLink( pDoc ); // re-insert deleted link
}
}
diff --git a/sc/source/ui/undo/undobase.cxx b/sc/source/ui/undo/undobase.cxx
index c9a9173c5193..21e91998904a 100644
--- a/sc/source/ui/undo/undobase.cxx
+++ b/sc/source/ui/undo/undobase.cxx
@@ -325,19 +325,19 @@ void ScBlockUndo::ShowBlock()
return;
ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
- if (pViewShell)
- {
- ShowTable( aBlockRange ); // with multiple sheets in range each of them is good
- pViewShell->MoveCursorAbs( aBlockRange.aStart.Col(), aBlockRange.aStart.Row(),
- SC_FOLLOW_JUMP, false, false );
- SCTAB nTab = pViewShell->GetViewData().GetTabNo();
- ScRange aRange = aBlockRange;
- aRange.aStart.SetTab( nTab );
- aRange.aEnd.SetTab( nTab );
- pViewShell->MarkRange( aRange );
+ if (!pViewShell)
+ return;
- // not through SetMarkArea to MarkData, due to possibly lacking paint
- }
+ ShowTable( aBlockRange ); // with multiple sheets in range each of them is good
+ pViewShell->MoveCursorAbs( aBlockRange.aStart.Col(), aBlockRange.aStart.Row(),
+ SC_FOLLOW_JUMP, false, false );
+ SCTAB nTab = pViewShell->GetViewData().GetTabNo();
+ ScRange aRange = aBlockRange;
+ aRange.aStart.SetTab( nTab );
+ aRange.aEnd.SetTab( nTab );
+ pViewShell->MarkRange( aRange );
+
+ // not through SetMarkArea to MarkData, due to possibly lacking paint
}
ScMultiBlockUndo::ScMultiBlockUndo(
@@ -473,31 +473,31 @@ void ScDBFuncUndo::EndUndo()
{
ScSimpleUndo::EndUndo();
- if ( pAutoDBRange )
- {
- ScDocument& rDoc = pDocShell->GetDocument();
- SCTAB nTab = rDoc.GetVisibleTab();
- ScDBData* pNoNameData = rDoc.GetAnonymousDBData(nTab);
- if (pNoNameData )
- {
- SCCOL nRangeX1;
- SCROW nRangeY1;
- SCCOL nRangeX2;
- SCROW nRangeY2;
- SCTAB nRangeTab;
- pNoNameData->GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
- pDocShell->DBAreaDeleted( nRangeTab, nRangeX1, nRangeY1, nRangeX2 );
+ if ( !pAutoDBRange )
+ return;
- *pNoNameData = *pAutoDBRange;
+ ScDocument& rDoc = pDocShell->GetDocument();
+ SCTAB nTab = rDoc.GetVisibleTab();
+ ScDBData* pNoNameData = rDoc.GetAnonymousDBData(nTab);
+ if (!pNoNameData )
+ return;
- if ( pAutoDBRange->HasAutoFilter() )
- {
- // restore AutoFilter buttons
- pAutoDBRange->GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
- rDoc.ApplyFlagsTab( nRangeX1, nRangeY1, nRangeX2, nRangeY1, nRangeTab, ScMF::Auto );
- pDocShell->PostPaint( nRangeX1, nRangeY1, nRangeTab, nRangeX2, nRangeY1, nRangeTab, PaintPartFlags::Grid );
- }
- }
+ SCCOL nRangeX1;
+ SCROW nRangeY1;
+ SCCOL nRangeX2;
+ SCROW nRangeY2;
+ SCTAB nRangeTab;
+ pNoNameData->GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
+ pDocShell->DBAreaDeleted( nRangeTab, nRangeX1, nRangeY1, nRangeX2 );
+
+ *pNoNameData = *pAutoDBRange;
+
+ if ( pAutoDBRange->HasAutoFilter() )
+ {
+ // restore AutoFilter buttons
+ pAutoDBRange->GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
+ rDoc.ApplyFlagsTab( nRangeX1, nRangeY1, nRangeX2, nRangeY1, nRangeTab, ScMF::Auto );
+ pDocShell->PostPaint( nRangeX1, nRangeY1, nRangeTab, nRangeX2, nRangeY1, nRangeTab, PaintPartFlags::Grid );
}
}
diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx
index dacbfa00d9f7..2ef4fae1490a 100644
--- a/sc/source/ui/undo/undoblk.cxx
+++ b/sc/source/ui/undo/undoblk.cxx
@@ -267,29 +267,29 @@ void ScUndoInsertCells::DoChange( const bool bUndo )
aWorkRange.aEnd.Col(), aWorkRange.aEnd.Row(), pTabs[i]+pScenarios[i], nPaint );
}
pDocShell->PostDataChanged();
- if (pViewShell)
- {
- pViewShell->CellContentChanged();
+ if (!pViewShell)
+ return;
- if (comphelper::LibreOfficeKit::isActive())
- {
- SCTAB nTab = pViewShell->GetViewData().GetTabNo();
- bool bColsAffected = (eCmd == INS_INSCOLS_BEFORE || eCmd == INS_INSCOLS_AFTER || eCmd == INS_CELLSRIGHT);
- bool bRowsAffected = (eCmd == INS_INSROWS_BEFORE || eCmd == INS_INSROWS_AFTER || eCmd == INS_CELLSDOWN);
+ pViewShell->CellContentChanged();
- if (bColsAffected)
- ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, COLUMN_HEADER, nTab);
+ if (!comphelper::LibreOfficeKit::isActive())
+ return;
- if (bRowsAffected)
- ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, ROW_HEADER, nTab);
+ SCTAB nTab = pViewShell->GetViewData().GetTabNo();
+ bool bColsAffected = (eCmd == INS_INSCOLS_BEFORE || eCmd == INS_INSCOLS_AFTER || eCmd == INS_CELLSRIGHT);
+ bool bRowsAffected = (eCmd == INS_INSROWS_BEFORE || eCmd == INS_INSROWS_AFTER || eCmd == INS_CELLSDOWN);
- ScTabViewShell::notifyAllViewsSheetGeomInvalidation(
- pViewShell,
- bColsAffected, bRowsAffected,
- true /* bSizes*/, true /* bHidden */, true /* bFiltered */,
- true /* bGroups */, nTab);
- }
- }
+ if (bColsAffected)
+ ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, COLUMN_HEADER, nTab);
+
+ if (bRowsAffected)
+ ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, ROW_HEADER, nTab);
+
+ ScTabViewShell::notifyAllViewsSheetGeomInvalidation(
+ pViewShell,
+ bColsAffected, bRowsAffected,
+ true /* bSizes*/, true /* bHidden */, true /* bFiltered */,
+ true /* bGroups */, nTab);
}
void ScUndoInsertCells::Undo()
@@ -540,28 +540,27 @@ void ScUndoDeleteCells::DoChange( const bool bUndo )
pDocShell->PostDataChanged();
// CellContentChanged comes with the selection
- if (pViewShell)
- {
- if (comphelper::LibreOfficeKit::isActive())
- {
- SCTAB nTab = pViewShell->GetViewData().GetTabNo();
- bool bColsAffected = (eCmd == DelCellCmd::Cols || eCmd == DelCellCmd::CellsLeft);
- bool bRowsAffected = (eCmd == DelCellCmd::Rows || eCmd == DelCellCmd::CellsUp);
+ if (!pViewShell)
+ return;
- if (bColsAffected)
- ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, COLUMN_HEADER, nTab);
+ if (!comphelper::LibreOfficeKit::isActive())
+ return;
- if (bRowsAffected)
- ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, ROW_HEADER, nTab);
+ SCTAB nTab = pViewShell->GetViewData().GetTabNo();
+ bool bColsAffected = (eCmd == DelCellCmd::Cols || eCmd == DelCellCmd::CellsLeft);
+ bool bRowsAffected = (eCmd == DelCellCmd::Rows || eCmd == DelCellCmd::CellsUp);
- ScTabViewShell::notifyAllViewsSheetGeomInvalidation(
- pViewShell,
- bColsAffected, bRowsAffected,
- true /* bSizes*/, true /* bHidden */, true /* bFiltered */,
- true /* bGroups */, nTab);
- }
+ if (bColsAffected)
+ ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, COLUMN_HEADER, nTab);
- }
+ if (bRowsAffected)
+ ScTabViewShell::notifyAllViewsHeaderInvalidation(pViewShell, ROW_HEADER, nTab);
+
+ ScTabViewShell::notifyAllViewsSheetGeomInvalidation(
+ pViewShell,
+ bColsAffected, bRowsAffected,
+ true /* bSizes*/, true /* bHidden */, true /* bFiltered */,
+ true /* bGroups */, nTab);
}
@@ -1170,18 +1169,18 @@ void ScUndoPaste::Redo()
void ScUndoPaste::Repeat(SfxRepeatTarget& rTarget)
{
- if (dynamic_cast<const ScTabViewTarget*>( &rTarget) != nullptr)
+ if (dynamic_cast<const ScTabViewTarget*>( &rTarget) == nullptr)
+ return;
+
+ ScTabViewShell* pViewSh = static_cast<ScTabViewTarget&>(rTarget).GetViewShell();
+ // keep a reference in case the clipboard is changed during PasteFromClip
+ const ScTransferObj* pOwnClip = ScTransferObj::GetOwnClipboard(ScTabViewShell::GetClipData(pViewSh->GetViewData().GetActiveWin()));
+ if (pOwnClip)
{
- ScTabViewShell* pViewSh = static_cast<ScTabViewTarget&>(rTarget).GetViewShell();
- // keep a reference in case the clipboard is changed during PasteFromClip
- const ScTransferObj* pOwnClip = ScTransferObj::GetOwnClipboard(ScTabViewShell::GetClipData(pViewSh->GetViewData().GetActiveWin()));
- if (pOwnClip)
- {
- pViewSh->PasteFromClip( nFlags, pOwnClip->GetDocument(),
- aPasteOptions.nFunction, aPasteOptions.bSkipEmpty, aPasteOptions.bTranspose,
- aPasteOptions.bAsLink, aPasteOptions.eMoveMode, InsertDeleteFlags::NONE,
- true ); // allow warning dialog
- }
+ pViewSh->PasteFromClip( nFlags, pOwnClip->GetDocument(),
+ aPasteOptions.nFunction, aPasteOptions.bSkipEmpty, aPasteOptions.bTranspose,
+ aPasteOptions.bAsLink, aPasteOptions.eMoveMode, InsertDeleteFlags::NONE,
+ true ); // allow warning dialog
}
}
@@ -1858,21 +1857,21 @@ void ScUndoSelectionStyle::Redo()
void ScUndoSelectionStyle::Repeat(SfxRepeatTarget& rTarget)
{
- if (dynamic_cast<const ScTabViewTarget*>( &rTarget) != nullptr)
- {
- ScDocument& rDoc = pDocShell->GetDocument();
- ScStyleSheetPool* pStlPool = rDoc.GetStyleSheetPool();
- ScStyleSheet* pStyleSheet = static_cast<ScStyleSheet*>( pStlPool->
- Find( aStyleName, SfxStyleFamily::Para ));
- if (!pStyleSheet)
- {
- OSL_FAIL("StyleSheet not found");
- return;
- }
+ if (dynamic_cast<const ScTabViewTarget*>( &rTarget) == nullptr)
+ return;
- ScTabViewShell& rViewShell = *static_cast<ScTabViewTarget&>(rTarget).GetViewShell();
- rViewShell.SetStyleSheetToMarked( pStyleSheet );
+ ScDocument& rDoc = pDocShell->GetDocument();
+ ScStyleSheetPool* pStlPool = rDoc.GetStyleSheetPool();
+ ScStyleSheet* pStyleSheet = static_cast<ScStyleSheet*>( pStlPool->
+ Find( aStyleName, SfxStyleFamily::Para ));
+ if (!pStyleSheet)
+ {
+ OSL_FAIL("StyleSheet not found");
+ return;
}
+
+ ScTabViewShell& rViewShell = *static_cast<ScTabViewTarget&>(rTarget).GetViewShell();
+ rViewShell.SetStyleSheetToMarked( pStyleSheet );
}
bool ScUndoSelectionStyle::CanRepeat(SfxRepeatTarget& rTarget) const
diff --git a/sc/source/ui/undo/undocell.cxx b/sc/source/ui/undo/undocell.cxx
index 345e85ac4a7d..b34426c8f4d9 100644
--- a/sc/source/ui/undo/undocell.cxx
+++ b/sc/source/ui/undo/undocell.cxx
@@ -812,18 +812,18 @@ void ScUndoReplaceNote::DoInsertNote( const ScNoteData& rNoteData )
void ScUndoReplaceNote::DoRemoveNote( const ScNoteData& rNoteData )
{
- if( rNoteData.mxCaption )
+ if( !rNoteData.mxCaption )
+ return;
+
+ ScDocument& rDoc = pDocShell->GetDocument();
+ OSL_ENSURE( rDoc.GetNote(maPos), "ScUndoReplaceNote::DoRemoveNote - missing cell note" );
+ if( std::unique_ptr<ScPostIt> pNote = rDoc.ReleaseNote( maPos ) )
{
- ScDocument& rDoc = pDocShell->GetDocument();
- OSL_ENSURE( rDoc.GetNote(maPos), "ScUndoReplaceNote::DoRemoveNote - missing cell note" );
- if( std::unique_ptr<ScPostIt> pNote = rDoc.ReleaseNote( maPos ) )
- {
- /* Forget pointer to caption object to suppress removing the
- caption object from the drawing layer while deleting pNote
- (removing the caption is done by a drawing undo action). */
- pNote->ForgetCaption();
- ScDocShell::LOKCommentNotify(LOKCommentNotificationType::Remove, &rDoc, maPos, pNote.get());
- }
+ /* Forget pointer to caption object to suppress removing the
+ caption object from the drawing layer while deleting pNote
+ (removing the caption is done by a drawing undo action). */
+ pNote->ForgetCaption();
+ ScDocShell::LOKCommentNotify(LOKCommentNotificationType::Remove, &rDoc, maPos, pNote.get());
}
}
diff --git a/sc/source/ui/undo/undodat.cxx b/sc/source/ui/undo/undodat.cxx
index eb356af9da62..30a1a040c7a6 100644
--- a/sc/source/ui/undo/undodat.cxx
+++ b/sc/source/ui/undo/undodat.cxx
@@ -929,24 +929,24 @@ void ScUndoAutoFilter::DoChange( bool bUndo )
pDBData = pColl->getNamedDBs().findByUpperName(ScGlobal::getCharClassPtr()->uppercase(aDBName));
}
- if ( pDBData )
- {
- pDBData->SetAutoFilter( bNewFilter );
+ if ( !pDBData )
+ return;
- SCCOL nRangeX1;
- SCROW nRangeY1;
- SCCOL nRangeX2;
- SCROW nRangeY2;
- SCTAB nRangeTab;
- pDBData->GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
+ pDBData->SetAutoFilter( bNewFilter );
- if ( bNewFilter )
- rDoc.ApplyFlagsTab( nRangeX1, nRangeY1, nRangeX2, nRangeY1, nRangeTab, ScMF::Auto );
- else
- rDoc.RemoveFlagsTab( nRangeX1, nRangeY1, nRangeX2, nRangeY1, nRangeTab, ScMF::Auto );
+ SCCOL nRangeX1;
+ SCROW nRangeY1;
+ SCCOL nRangeX2;
+ SCROW nRangeY2;
+ SCTAB nRangeTab;
+ pDBData->GetArea( nRangeTab, nRangeX1, nRangeY1, nRangeX2, nRangeY2 );
- pDocShell->PostPaint( nRangeX1, nRangeY1, nRangeTab, nRangeX2, nRangeY1, nRangeTab, PaintPartFlags::Grid );
- }
+ if ( bNewFilter )
+ rDoc.ApplyFlagsTab( nRangeX1, nRangeY1, nRangeX2, nRangeY1, nRangeTab, ScMF::Auto );
+ else
+ rDoc.RemoveFlagsTab( nRangeX1, nRangeY1, nRangeX2, nRangeY1, nRangeTab, ScMF::Auto );
+
+ pDocShell->PostPaint( nRangeX1, nRangeY1, nRangeTab, nRangeX2, nRangeY1, nRangeTab, PaintPartFlags::Grid );
}
void ScUndoAutoFilter::Undo()
diff --git a/sc/source/ui/undo/undoutil.cxx b/sc/source/ui/undo/undoutil.cxx
index d89905cbd685..76789b8b7857 100644
--- a/sc/source/ui/undo/undoutil.cxx
+++ b/sc/source/ui/undo/undoutil.cxx
@@ -35,19 +35,19 @@ void ScUndoUtil::MarkSimpleBlock( const ScDocShell* pDocShell,
return;
ScTabViewShell* pViewShell = ScTabViewShell::GetActiveViewShell();
- if (pViewShell)
- {
- SCTAB nViewTab = pViewShell->GetViewData().GetTabNo();
- if ( nViewTab < nStartZ || nViewTab > nEndZ )
- pViewShell->SetTabNo( nStartZ );
+ if (!pViewShell)
+ return;
- pViewShell->DoneBlockMode();
- pViewShell->MoveCursorAbs( nStartX, nStartY, SC_FOLLOW_JUMP, false, false );
- pViewShell->InitOwnBlockMode();
- pViewShell->GetViewData().GetMarkData().
- SetMarkArea( ScRange( nStartX, nStartY, nStartZ, nEndX, nEndY, nEndZ ) );
- pViewShell->MarkDataChanged();
- }
+ SCTAB nViewTab = pViewShell->GetViewData().GetTabNo();
+ if ( nViewTab < nStartZ || nViewTab > nEndZ )
+ pViewShell->SetTabNo( nStartZ );
+
+ pViewShell->DoneBlockMode();
+ pViewShell->MoveCursorAbs( nStartX, nStartY, SC_FOLLOW_JUMP, false, false );
+ pViewShell->InitOwnBlockMode();
+ pViewShell->GetViewData().GetMarkData().
+ SetMarkArea( ScRange( nStartX, nStartY, nStartZ, nEndX, nEndY, nEndZ ) );
+ pViewShell->MarkDataChanged();
}
void ScUndoUtil::MarkSimpleBlock( const ScDocShell* pDocShell,