[Libreoffice-commits] core.git: 2 commits - sc/source
Noel Grandin (via logerrit)
logerrit at kemper.freedesktop.org
Wed Jul 29 18:44:47 UTC 2020
sc/source/core/tool/addincol.cxx | 672 -
sc/source/core/tool/address.cxx | 58
sc/source/core/tool/appoptio.cxx | 56
sc/source/core/tool/callform.cxx | 134
sc/source/core/tool/charthelper.cxx | 240
sc/source/core/tool/chgtrack.cxx | 634 -
sc/source/core/tool/compiler.cxx | 360
sc/source/core/tool/consoli.cxx | 222
sc/source/core/tool/dbdata.cxx | 66
sc/source/core/tool/defaultsoptions.cxx | 38
sc/source/core/tool/detfunc.cxx | 140
sc/source/core/tool/filtopt.cxx | 20
sc/source/core/tool/formulaopt.cxx | 404 -
sc/source/core/tool/formulaparserpool.cxx | 5
sc/source/core/tool/inputopt.cxx | 90
sc/source/core/tool/interpr1.cxx | 4174 +++++------
sc/source/core/tool/interpr2.cxx | 2782 +++----
sc/source/core/tool/interpr3.cxx | 486 -
sc/source/core/tool/interpr5.cxx | 790 +-
sc/source/core/tool/interpr7.cxx | 632 -
sc/source/core/tool/interpr8.cxx | 444 -
sc/source/core/tool/jumpmatrix.cxx | 44
sc/source/core/tool/printopt.cxx | 34
sc/source/core/tool/progress.cxx | 34
sc/source/core/tool/queryparam.cxx | 32
sc/source/core/tool/rangelst.cxx | 54
sc/source/core/tool/rangenam.cxx | 102
sc/source/core/tool/token.cxx | 28
sc/source/core/tool/tokenstringcontext.cxx | 22
sc/source/core/tool/unitconv.cxx | 74
sc/source/ui/Accessibility/AccessibleCell.cxx | 88
sc/source/ui/Accessibility/AccessibleContextBase.cxx | 30
sc/source/ui/Accessibility/AccessibleDocument.cxx | 378
sc/source/ui/Accessibility/AccessibleDocumentPagePreview.cxx | 146
sc/source/ui/Accessibility/AccessibleEditObject.cxx | 66
sc/source/ui/Accessibility/AccessiblePreviewCell.cxx | 26
sc/source/ui/Accessibility/AccessibleSpreadsheet.cxx | 74
37 files changed, 6842 insertions(+), 6837 deletions(-)
New commits:
commit 382ecc31a9480fc0d19dddc917d16a7e744a00e3
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Wed Jul 29 16:12:49 2020 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Wed Jul 29 20:44:14 2020 +0200
loplugin:flatten in sc/core/tool
Change-Id: Ibe5302ee320cf2e89c814dfb34ad42f9d72a25aa
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99700
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/source/core/tool/addincol.cxx b/sc/source/core/tool/addincol.cxx
index 48f5d4c03846..fbc9ac23592f 100644
--- a/sc/source/core/tool/addincol.cxx
+++ b/sc/source/core/tool/addincol.cxx
@@ -537,23 +537,23 @@ void ScUnoAddInCollection::LoadComponent( const ScUnoAddInFuncData& rFuncData )
{
const OUString& aFullName = rFuncData.GetOriginalName();
sal_Int32 nPos = aFullName.lastIndexOf( '.' );
- if ( nPos > 0 )
- {
- OUString aServiceName = aFullName.copy( 0, nPos );
+ if ( nPos <= 0 )
+ return;
- try
- {
- uno::Reference<lang::XMultiServiceFactory> xServiceFactory = comphelper::getProcessServiceFactory();
- uno::Reference<uno::XInterface> xInterface( xServiceFactory->createInstance( aServiceName ) );
+ OUString aServiceName = aFullName.copy( 0, nPos );
- if (xInterface.is())
- UpdateFromAddIn( xInterface, aServiceName );
- }
- catch (const uno::Exception &)
- {
- SAL_WARN ("sc", "Failed to create addin component '"
- << aServiceName << "'");
- }
+ try
+ {
+ uno::Reference<lang::XMultiServiceFactory> xServiceFactory = comphelper::getProcessServiceFactory();
+ uno::Reference<uno::XInterface> xInterface( xServiceFactory->createInstance( aServiceName ) );
+
+ if (xInterface.is())
+ UpdateFromAddIn( xInterface, aServiceName );
+ }
+ catch (const uno::Exception &)
+ {
+ SAL_WARN ("sc", "Failed to create addin component '"
+ << aServiceName << "'");
}
}
@@ -698,216 +698,216 @@ void ScUnoAddInCollection::ReadFromAddIn( const uno::Reference<uno::XInterface>&
{
uno::Reference<sheet::XAddIn> xAddIn( xInterface, uno::UNO_QUERY );
uno::Reference<lang::XServiceName> xName( xInterface, uno::UNO_QUERY );
- if ( xAddIn.is() && xName.is() )
- {
- // fdo50118 when GetUseEnglishFunctionName() returns true, set the
- // locale to en-US to get English function names
- if ( SC_MOD()->GetFormulaOptions().GetUseEnglishFuncName() )
- xAddIn->setLocale( lang::Locale( "en", "US", ""));
- else
- xAddIn->setLocale( Application::GetSettings().GetUILanguageTag().getLocale());
+ if ( !(xAddIn.is() && xName.is()) )
+ return;
- OUString aServiceName( xName->getServiceName() );
- ScUnoAddInHelpIdGenerator aHelpIdGenerator( aServiceName );
+ // fdo50118 when GetUseEnglishFunctionName() returns true, set the
+ // locale to en-US to get English function names
+ if ( SC_MOD()->GetFormulaOptions().GetUseEnglishFuncName() )
+ xAddIn->setLocale( lang::Locale( "en", "US", ""));
+ else
+ xAddIn->setLocale( Application::GetSettings().GetUILanguageTag().getLocale());
- //TODO: pass XIntrospection to ReadFromAddIn
+ OUString aServiceName( xName->getServiceName() );
+ ScUnoAddInHelpIdGenerator aHelpIdGenerator( aServiceName );
- uno::Reference<uno::XComponentContext> xContext = comphelper::getProcessComponentContext();
+ //TODO: pass XIntrospection to ReadFromAddIn
- uno::Reference<beans::XIntrospection> xIntro = beans::theIntrospection::get( xContext );
- uno::Any aObject;
- aObject <<= xAddIn;
- uno::Reference<beans::XIntrospectionAccess> xAcc = xIntro->inspect(aObject);
- if (xAcc.is())
+ uno::Reference<uno::XComponentContext> xContext = comphelper::getProcessComponentContext();
+
+ uno::Reference<beans::XIntrospection> xIntro = beans::theIntrospection::get( xContext );
+ uno::Any aObject;
+ aObject <<= xAddIn;
+ uno::Reference<beans::XIntrospectionAccess> xAcc = xIntro->inspect(aObject);
+ if (!xAcc.is())
+ return;
+
+ uno::Sequence< uno::Reference<reflection::XIdlMethod> > aMethods =
+ xAcc->getMethods( beans::MethodConcept::ALL );
+ long nNewCount = aMethods.getLength();
+ if ( !nNewCount )
+ return;
+
+ long nOld = nFuncCount;
+ nFuncCount = nNewCount+nOld;
+ if ( nOld )
+ {
+ std::unique_ptr<std::unique_ptr<ScUnoAddInFuncData>[]> ppNew(new std::unique_ptr<ScUnoAddInFuncData>[nFuncCount]);
+ for (long i=0; i<nOld; i++)
+ ppNew[i] = std::move(ppFuncData[i]);
+ ppFuncData = std::move(ppNew);
+ }
+ else
+ ppFuncData.reset(new std::unique_ptr<ScUnoAddInFuncData>[nFuncCount]);
+
+ //TODO: adjust bucket count?
+ if ( !pExactHashMap )
+ pExactHashMap.reset( new ScAddInHashMap );
+ if ( !pNameHashMap )
+ pNameHashMap.reset( new ScAddInHashMap );
+ if ( !pLocalHashMap )
+ pLocalHashMap.reset( new ScAddInHashMap );
+
+ const uno::Reference<reflection::XIdlMethod>* pArray = aMethods.getConstArray();
+ for (long nFuncPos=0; nFuncPos<nNewCount; nFuncPos++)
+ {
+ ppFuncData[nFuncPos+nOld] = nullptr;
+
+ uno::Reference<reflection::XIdlMethod> xFunc = pArray[nFuncPos];
+ if (xFunc.is())
{
- uno::Sequence< uno::Reference<reflection::XIdlMethod> > aMethods =
- xAcc->getMethods( beans::MethodConcept::ALL );
- long nNewCount = aMethods.getLength();
- if ( nNewCount )
+ // leave out internal functions
+ uno::Reference<reflection::XIdlClass> xClass =
+ xFunc->getDeclaringClass();
+ bool bSkip = true;
+ if ( xClass.is() )
{
- long nOld = nFuncCount;
- nFuncCount = nNewCount+nOld;
- if ( nOld )
+ //TODO: XIdlClass needs getType() method!
+ OUString sName = xClass->getName();
+ bSkip = (
+ IsTypeName( sName,
+ cppu::UnoType<uno::XInterface>::get()) ||
+ IsTypeName( sName,
+ cppu::UnoType<lang::XServiceName>::get()) ||
+ IsTypeName( sName,
+ cppu::UnoType<lang::XServiceInfo>::get()) ||
+ IsTypeName( sName,
+ cppu::UnoType<sheet::XAddIn>::get()) );
+ }
+ if (!bSkip)
+ {
+ uno::Reference<reflection::XIdlClass> xReturn =
+ xFunc->getReturnType();
+ if ( !lcl_ValidReturnType( xReturn ) )
+ bSkip = true;
+ }
+ if (!bSkip)
+ {
+ OUString aFuncU = xFunc->getName();
+
+ // stored function name: (service name).(function)
+ OUString aFuncName = aServiceName + "." + aFuncU;
+
+ bool bValid = true;
+ long nVisibleCount = 0;
+ long nCallerPos = SC_CALLERPOS_NONE;
+
+ uno::Sequence<reflection::ParamInfo> aParams =
+ xFunc->getParameterInfos();
+ long nParamCount = aParams.getLength();
+ const reflection::ParamInfo* pParArr = aParams.getConstArray();
+ long nParamPos;
+ for (nParamPos=0; nParamPos<nParamCount; nParamPos++)
{
- std::unique_ptr<std::unique_ptr<ScUnoAddInFuncData>[]> ppNew(new std::unique_ptr<ScUnoAddInFuncData>[nFuncCount]);
- for (long i=0; i<nOld; i++)
- ppNew[i] = std::move(ppFuncData[i]);
- ppFuncData = std::move(ppNew);
+ if ( pParArr[nParamPos].aMode != reflection::ParamMode_IN )
+ bValid = false;
+ uno::Reference<reflection::XIdlClass> xParClass =
+ pParArr[nParamPos].aType;
+ ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
+ if ( eArgType == SC_ADDINARG_NONE )
+ bValid = false;
+ else if ( eArgType == SC_ADDINARG_CALLER )
+ nCallerPos = nParamPos;
+ else
+ ++nVisibleCount;
}
- else
- ppFuncData.reset(new std::unique_ptr<ScUnoAddInFuncData>[nFuncCount]);
-
- //TODO: adjust bucket count?
- if ( !pExactHashMap )
- pExactHashMap.reset( new ScAddInHashMap );
- if ( !pNameHashMap )
- pNameHashMap.reset( new ScAddInHashMap );
- if ( !pLocalHashMap )
- pLocalHashMap.reset( new ScAddInHashMap );
-
- const uno::Reference<reflection::XIdlMethod>* pArray = aMethods.getConstArray();
- for (long nFuncPos=0; nFuncPos<nNewCount; nFuncPos++)
+ if (bValid)
{
- ppFuncData[nFuncPos+nOld] = nullptr;
+ sal_uInt16 nCategory = lcl_GetCategory(
+ xAddIn->getProgrammaticCategoryName( aFuncU ) );
- uno::Reference<reflection::XIdlMethod> xFunc = pArray[nFuncPos];
- if (xFunc.is())
- {
- // leave out internal functions
- uno::Reference<reflection::XIdlClass> xClass =
- xFunc->getDeclaringClass();
- bool bSkip = true;
- if ( xClass.is() )
- {
- //TODO: XIdlClass needs getType() method!
- OUString sName = xClass->getName();
- bSkip = (
- IsTypeName( sName,
- cppu::UnoType<uno::XInterface>::get()) ||
- IsTypeName( sName,
- cppu::UnoType<lang::XServiceName>::get()) ||
- IsTypeName( sName,
- cppu::UnoType<lang::XServiceInfo>::get()) ||
- IsTypeName( sName,
- cppu::UnoType<sheet::XAddIn>::get()) );
- }
- if (!bSkip)
- {
- uno::Reference<reflection::XIdlClass> xReturn =
- xFunc->getReturnType();
- if ( !lcl_ValidReturnType( xReturn ) )
- bSkip = true;
- }
- if (!bSkip)
- {
- OUString aFuncU = xFunc->getName();
+ OString sHelpId = aHelpIdGenerator.GetHelpId( aFuncU );
- // stored function name: (service name).(function)
- OUString aFuncName = aServiceName + "." + aFuncU;
+ OUString aLocalName;
+ try
+ {
+ aLocalName = xAddIn->
+ getDisplayFunctionName( aFuncU );
+ }
+ catch(uno::Exception&)
+ {
+ aLocalName = "###";
+ }
- bool bValid = true;
- long nVisibleCount = 0;
- long nCallerPos = SC_CALLERPOS_NONE;
+ OUString aDescription;
+ try
+ {
+ aDescription = xAddIn->
+ getFunctionDescription( aFuncU );
+ }
+ catch(uno::Exception&)
+ {
+ aDescription = "###";
+ }
- uno::Sequence<reflection::ParamInfo> aParams =
- xFunc->getParameterInfos();
- long nParamCount = aParams.getLength();
- const reflection::ParamInfo* pParArr = aParams.getConstArray();
- long nParamPos;
- for (nParamPos=0; nParamPos<nParamCount; nParamPos++)
- {
- if ( pParArr[nParamPos].aMode != reflection::ParamMode_IN )
- bValid = false;
- uno::Reference<reflection::XIdlClass> xParClass =
- pParArr[nParamPos].aType;
- ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
- if ( eArgType == SC_ADDINARG_NONE )
- bValid = false;
- else if ( eArgType == SC_ADDINARG_CALLER )
- nCallerPos = nParamPos;
- else
- ++nVisibleCount;
- }
- if (bValid)
+ std::unique_ptr<ScAddInArgDesc[]> pVisibleArgs;
+ if ( nVisibleCount > 0 )
+ {
+ ScAddInArgDesc aDesc;
+ pVisibleArgs.reset(new ScAddInArgDesc[nVisibleCount]);
+ long nDestPos = 0;
+ for (nParamPos=0; nParamPos<nParamCount; nParamPos++)
+ {
+ uno::Reference<reflection::XIdlClass> xParClass =
+ pParArr[nParamPos].aType;
+ ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
+ if ( eArgType != SC_ADDINARG_CALLER )
{
- sal_uInt16 nCategory = lcl_GetCategory(
- xAddIn->getProgrammaticCategoryName( aFuncU ) );
-
- OString sHelpId = aHelpIdGenerator.GetHelpId( aFuncU );
-
- OUString aLocalName;
+ OUString aArgName;
try
{
- aLocalName = xAddIn->
- getDisplayFunctionName( aFuncU );
+ aArgName = xAddIn->
+ getDisplayArgumentName( aFuncU, nParamPos );
}
catch(uno::Exception&)
{
- aLocalName = "###";
+ aArgName = "###";
}
-
- OUString aDescription;
+ OUString aArgDesc;
try
{
- aDescription = xAddIn->
- getFunctionDescription( aFuncU );
+ aArgDesc = xAddIn->
+ getArgumentDescription( aFuncU, nParamPos );
}
catch(uno::Exception&)
{
- aDescription = "###";
+ aArgDesc = "###";
}
- std::unique_ptr<ScAddInArgDesc[]> pVisibleArgs;
- if ( nVisibleCount > 0 )
- {
- ScAddInArgDesc aDesc;
- pVisibleArgs.reset(new ScAddInArgDesc[nVisibleCount]);
- long nDestPos = 0;
- for (nParamPos=0; nParamPos<nParamCount; nParamPos++)
- {
- uno::Reference<reflection::XIdlClass> xParClass =
- pParArr[nParamPos].aType;
- ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
- if ( eArgType != SC_ADDINARG_CALLER )
- {
- OUString aArgName;
- try
- {
- aArgName = xAddIn->
- getDisplayArgumentName( aFuncU, nParamPos );
- }
- catch(uno::Exception&)
- {
- aArgName = "###";
- }
- OUString aArgDesc;
- try
- {
- aArgDesc = xAddIn->
- getArgumentDescription( aFuncU, nParamPos );
- }
- catch(uno::Exception&)
- {
- aArgDesc = "###";
- }
-
- bool bOptional =
- ( eArgType == SC_ADDINARG_VALUE_OR_ARRAY ||
- eArgType == SC_ADDINARG_VARARGS );
-
- aDesc.eType = eArgType;
- aDesc.aName = aArgName;
- aDesc.aDescription = aArgDesc;
- aDesc.bOptional = bOptional;
- //TODO: initialize aInternalName only from config?
- aDesc.aInternalName = pParArr[nParamPos].aName;
-
- pVisibleArgs[nDestPos++] = aDesc;
- }
- }
- OSL_ENSURE( nDestPos==nVisibleCount, "wrong count" );
- }
+ bool bOptional =
+ ( eArgType == SC_ADDINARG_VALUE_OR_ARRAY ||
+ eArgType == SC_ADDINARG_VARARGS );
+
+ aDesc.eType = eArgType;
+ aDesc.aName = aArgName;
+ aDesc.aDescription = aArgDesc;
+ aDesc.bOptional = bOptional;
+ //TODO: initialize aInternalName only from config?
+ aDesc.aInternalName = pParArr[nParamPos].aName;
- ppFuncData[nFuncPos+nOld].reset( new ScUnoAddInFuncData(
- aFuncName, aLocalName, aDescription,
- nCategory, sHelpId,
- xFunc, aObject,
- nVisibleCount, pVisibleArgs.get(), nCallerPos ) );
-
- const ScUnoAddInFuncData* pData =
- ppFuncData[nFuncPos+nOld].get();
- pExactHashMap->emplace(
- pData->GetOriginalName(),
- pData );
- pNameHashMap->emplace(
- pData->GetUpperName(),
- pData );
- pLocalHashMap->emplace(
- pData->GetUpperLocal(),
- pData );
+ pVisibleArgs[nDestPos++] = aDesc;
}
}
+ OSL_ENSURE( nDestPos==nVisibleCount, "wrong count" );
}
+
+ ppFuncData[nFuncPos+nOld].reset( new ScUnoAddInFuncData(
+ aFuncName, aLocalName, aDescription,
+ nCategory, sHelpId,
+ xFunc, aObject,
+ nVisibleCount, pVisibleArgs.get(), nCallerPos ) );
+
+ const ScUnoAddInFuncData* pData =
+ ppFuncData[nFuncPos+nOld].get();
+ pExactHashMap->emplace(
+ pData->GetOriginalName(),
+ pData );
+ pNameHashMap->emplace(
+ pData->GetUpperName(),
+ pData );
+ pLocalHashMap->emplace(
+ pData->GetUpperLocal(),
+ pData );
}
}
}
@@ -970,97 +970,97 @@ void ScUnoAddInCollection::UpdateFromAddIn( const uno::Reference<uno::XInterface
uno::Any aObject;
aObject <<= xInterface;
uno::Reference<beans::XIntrospectionAccess> xAcc = xIntro->inspect(aObject);
- if (xAcc.is())
+ if (!xAcc.is())
+ return;
+
+ const uno::Sequence< uno::Reference<reflection::XIdlMethod> > aMethods =
+ xAcc->getMethods( beans::MethodConcept::ALL );
+ for (const uno::Reference<reflection::XIdlMethod>& xFunc : aMethods)
{
- const uno::Sequence< uno::Reference<reflection::XIdlMethod> > aMethods =
- xAcc->getMethods( beans::MethodConcept::ALL );
- for (const uno::Reference<reflection::XIdlMethod>& xFunc : aMethods)
+ if (xFunc.is())
{
- if (xFunc.is())
+ OUString aFuncU = xFunc->getName();
+
+ // stored function name: (service name).(function)
+ OUString aFuncName = rServiceName + "." + aFuncU;
+
+ // internal names are skipped because no FuncData exists
+ ScUnoAddInFuncData* pOldData = const_cast<ScUnoAddInFuncData*>( GetFuncData( aFuncName ) );
+ if ( pOldData )
{
- OUString aFuncU = xFunc->getName();
+ // Create new (complete) argument info.
+ // As in ReadFromAddIn, the reflection information is authoritative.
+ // Local names and descriptions from pOldData are looked up using the
+ // internal argument name.
- // stored function name: (service name).(function)
- OUString aFuncName = rServiceName + "." + aFuncU;
+ bool bValid = true;
+ long nVisibleCount = 0;
+ long nCallerPos = SC_CALLERPOS_NONE;
- // internal names are skipped because no FuncData exists
- ScUnoAddInFuncData* pOldData = const_cast<ScUnoAddInFuncData*>( GetFuncData( aFuncName ) );
- if ( pOldData )
+ const uno::Sequence<reflection::ParamInfo> aParams =
+ xFunc->getParameterInfos();
+ long nParamCount = aParams.getLength();
+ const reflection::ParamInfo* pParArr = aParams.getConstArray();
+ for (long nParamPos=0; nParamPos<nParamCount; nParamPos++)
{
- // Create new (complete) argument info.
- // As in ReadFromAddIn, the reflection information is authoritative.
- // Local names and descriptions from pOldData are looked up using the
- // internal argument name.
-
- bool bValid = true;
- long nVisibleCount = 0;
- long nCallerPos = SC_CALLERPOS_NONE;
-
- const uno::Sequence<reflection::ParamInfo> aParams =
- xFunc->getParameterInfos();
- long nParamCount = aParams.getLength();
- const reflection::ParamInfo* pParArr = aParams.getConstArray();
- for (long nParamPos=0; nParamPos<nParamCount; nParamPos++)
- {
- if ( pParArr[nParamPos].aMode != reflection::ParamMode_IN )
- bValid = false;
- uno::Reference<reflection::XIdlClass> xParClass =
- pParArr[nParamPos].aType;
- ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
- if ( eArgType == SC_ADDINARG_NONE )
- bValid = false;
- else if ( eArgType == SC_ADDINARG_CALLER )
- nCallerPos = nParamPos;
- else
- ++nVisibleCount;
- }
- if (bValid)
+ if ( pParArr[nParamPos].aMode != reflection::ParamMode_IN )
+ bValid = false;
+ uno::Reference<reflection::XIdlClass> xParClass =
+ pParArr[nParamPos].aType;
+ ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
+ if ( eArgType == SC_ADDINARG_NONE )
+ bValid = false;
+ else if ( eArgType == SC_ADDINARG_CALLER )
+ nCallerPos = nParamPos;
+ else
+ ++nVisibleCount;
+ }
+ if (bValid)
+ {
+ std::unique_ptr<ScAddInArgDesc[]> pVisibleArgs;
+ if ( nVisibleCount > 0 )
{
- std::unique_ptr<ScAddInArgDesc[]> pVisibleArgs;
- if ( nVisibleCount > 0 )
+ ScAddInArgDesc aDesc;
+ pVisibleArgs.reset(new ScAddInArgDesc[nVisibleCount]);
+ long nDestPos = 0;
+ for (const auto& rParam : aParams)
{
- ScAddInArgDesc aDesc;
- pVisibleArgs.reset(new ScAddInArgDesc[nVisibleCount]);
- long nDestPos = 0;
- for (const auto& rParam : aParams)
+ uno::Reference<reflection::XIdlClass> xParClass =
+ rParam.aType;
+ ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
+ if ( eArgType != SC_ADDINARG_CALLER )
{
- uno::Reference<reflection::XIdlClass> xParClass =
- rParam.aType;
- ScAddInArgumentType eArgType = lcl_GetArgType( xParClass );
- if ( eArgType != SC_ADDINARG_CALLER )
+ const ScAddInArgDesc* pOldArgDesc =
+ lcl_FindArgDesc( *pOldData, rParam.aName );
+ if ( pOldArgDesc )
{
- const ScAddInArgDesc* pOldArgDesc =
- lcl_FindArgDesc( *pOldData, rParam.aName );
- if ( pOldArgDesc )
- {
- aDesc.aName = pOldArgDesc->aName;
- aDesc.aDescription = pOldArgDesc->aDescription;
- }
- else
- aDesc.aName = aDesc.aDescription = "###";
-
- bool bOptional =
- ( eArgType == SC_ADDINARG_VALUE_OR_ARRAY ||
- eArgType == SC_ADDINARG_VARARGS );
-
- aDesc.eType = eArgType;
- aDesc.bOptional = bOptional;
- //TODO: initialize aInternalName only from config?
- aDesc.aInternalName = rParam.aName;
-
- pVisibleArgs[nDestPos++] = aDesc;
+ aDesc.aName = pOldArgDesc->aName;
+ aDesc.aDescription = pOldArgDesc->aDescription;
}
+ else
+ aDesc.aName = aDesc.aDescription = "###";
+
+ bool bOptional =
+ ( eArgType == SC_ADDINARG_VALUE_OR_ARRAY ||
+ eArgType == SC_ADDINARG_VARARGS );
+
+ aDesc.eType = eArgType;
+ aDesc.bOptional = bOptional;
+ //TODO: initialize aInternalName only from config?
+ aDesc.aInternalName = rParam.aName;
+
+ pVisibleArgs[nDestPos++] = aDesc;
}
- OSL_ENSURE( nDestPos==nVisibleCount, "wrong count" );
}
+ OSL_ENSURE( nDestPos==nVisibleCount, "wrong count" );
+ }
- pOldData->SetFunction( xFunc, aObject );
- pOldData->SetArguments( nVisibleCount, pVisibleArgs.get() );
- pOldData->SetCallerPos( nCallerPos );
+ pOldData->SetFunction( xFunc, aObject );
+ pOldData->SetArguments( nVisibleCount, pVisibleArgs.get() );
+ pOldData->SetCallerPos( nCallerPos );
- if ( pFunctionList )
- lcl_UpdateFunctionList( *pFunctionList, *pOldData );
- }
+ if ( pFunctionList )
+ lcl_UpdateFunctionList( *pFunctionList, *pOldData );
}
}
}
@@ -1240,32 +1240,32 @@ ScUnoAddInCall::ScUnoAddInCall( ScUnoAddInCollection& rColl, const OUString& rNa
{
pFuncData = rColl.GetFuncData( rName, true ); // need fully initialized data
OSL_ENSURE( pFuncData, "Function Data missing" );
- if ( pFuncData )
- {
- long nDescCount = pFuncData->GetArgumentCount();
- const ScAddInArgDesc* pArgs = pFuncData->GetArguments();
+ if ( !pFuncData )
+ return;
- // is aVarArg sequence needed?
- if ( nParamCount >= nDescCount && nDescCount > 0 &&
- pArgs[nDescCount-1].eType == SC_ADDINARG_VARARGS )
- {
- long nVarCount = nParamCount - ( nDescCount - 1 ); // size of last argument
- aVarArg.realloc( nVarCount );
- bValidCount = true;
- }
- else if ( nParamCount <= nDescCount )
- {
- // all args behind nParamCount must be optional
- bValidCount = true;
- for (long i=nParamCount; i<nDescCount; i++)
- if ( !pArgs[i].bOptional )
- bValidCount = false;
- }
- // else invalid (too many arguments)
+ long nDescCount = pFuncData->GetArgumentCount();
+ const ScAddInArgDesc* pArgs = pFuncData->GetArguments();
- if ( bValidCount )
- aArgs.realloc( nDescCount ); // sequence must always match function signature
+ // is aVarArg sequence needed?
+ if ( nParamCount >= nDescCount && nDescCount > 0 &&
+ pArgs[nDescCount-1].eType == SC_ADDINARG_VARARGS )
+ {
+ long nVarCount = nParamCount - ( nDescCount - 1 ); // size of last argument
+ aVarArg.realloc( nVarCount );
+ bValidCount = true;
+ }
+ else if ( nParamCount <= nDescCount )
+ {
+ // all args behind nParamCount must be optional
+ bValidCount = true;
+ for (long i=nParamCount; i<nDescCount; i++)
+ if ( !pArgs[i].bOptional )
+ bValidCount = false;
}
+ // else invalid (too many arguments)
+
+ if ( bValidCount )
+ aArgs.realloc( nDescCount ); // sequence must always match function signature
}
ScUnoAddInCall::~ScUnoAddInCall()
@@ -1311,27 +1311,27 @@ void ScUnoAddInCall::SetCallerFromObjectShell( const SfxObjectShell* pObjSh )
void ScUnoAddInCall::SetParam( long nPos, const uno::Any& rValue )
{
- if ( pFuncData )
+ if ( !pFuncData )
+ return;
+
+ long nCount = pFuncData->GetArgumentCount();
+ const ScAddInArgDesc* pArgs = pFuncData->GetArguments();
+ if ( nCount > 0 && nPos >= nCount-1 && pArgs[nCount-1].eType == SC_ADDINARG_VARARGS )
{
- long nCount = pFuncData->GetArgumentCount();
- const ScAddInArgDesc* pArgs = pFuncData->GetArguments();
- if ( nCount > 0 && nPos >= nCount-1 && pArgs[nCount-1].eType == SC_ADDINARG_VARARGS )
- {
- long nVarPos = nPos-(nCount-1);
- if ( nVarPos < aVarArg.getLength() )
- aVarArg.getArray()[nVarPos] = rValue;
- else
- {
- OSL_FAIL("wrong argument number");
- }
- }
- else if ( nPos < aArgs.getLength() )
- aArgs.getArray()[nPos] = rValue;
+ long nVarPos = nPos-(nCount-1);
+ if ( nVarPos < aVarArg.getLength() )
+ aVarArg.getArray()[nVarPos] = rValue;
else
{
OSL_FAIL("wrong argument number");
}
}
+ else if ( nPos < aArgs.getLength() )
+ aArgs.getArray()[nPos] = rValue;
+ else
+ {
+ OSL_FAIL("wrong argument number");
+ }
}
void ScUnoAddInCall::ExecuteCall()
@@ -1389,38 +1389,38 @@ void ScUnoAddInCall::ExecuteCallWithArgs(uno::Sequence<uno::Any>& rCallArgs)
aObject = pFuncData->GetObject();
}
- if ( xFunction.is() )
- {
- uno::Any aAny;
- nErrCode = FormulaError::NONE;
+ if ( !xFunction.is() )
+ return;
- try
- {
- aAny = xFunction->invoke( aObject, rCallArgs );
- }
- catch(lang::IllegalArgumentException&)
- {
+ uno::Any aAny;
+ nErrCode = FormulaError::NONE;
+
+ try
+ {
+ aAny = xFunction->invoke( aObject, rCallArgs );
+ }
+ catch(lang::IllegalArgumentException&)
+ {
+ nErrCode = FormulaError::IllegalArgument;
+ }
+ catch(const reflection::InvocationTargetException& rWrapped)
+ {
+ if ( rWrapped.TargetException.getValueType().equals(
+ cppu::UnoType<lang::IllegalArgumentException>::get()) )
nErrCode = FormulaError::IllegalArgument;
- }
- catch(const reflection::InvocationTargetException& rWrapped)
- {
- if ( rWrapped.TargetException.getValueType().equals(
- cppu::UnoType<lang::IllegalArgumentException>::get()) )
- nErrCode = FormulaError::IllegalArgument;
- else if ( rWrapped.TargetException.getValueType().equals(
- cppu::UnoType<sheet::NoConvergenceException>::get()) )
- nErrCode = FormulaError::NoConvergence;
- else
- nErrCode = FormulaError::NoValue;
- }
- catch(uno::Exception&)
- {
+ else if ( rWrapped.TargetException.getValueType().equals(
+ cppu::UnoType<sheet::NoConvergenceException>::get()) )
+ nErrCode = FormulaError::NoConvergence;
+ else
nErrCode = FormulaError::NoValue;
- }
-
- if (nErrCode == FormulaError::NONE)
- SetResult( aAny ); // convert result to Calc types
}
+ catch(uno::Exception&)
+ {
+ nErrCode = FormulaError::NoValue;
+ }
+
+ if (nErrCode == FormulaError::NONE)
+ SetResult( aAny ); // convert result to Calc types
}
template <typename T>
diff --git a/sc/source/core/tool/address.cxx b/sc/source/core/tool/address.cxx
index 0d75dfe4a816..be7beec97d83 100644
--- a/sc/source/core/tool/address.cxx
+++ b/sc/source/core/tool/address.cxx
@@ -2156,42 +2156,42 @@ static void lcl_ScRange_Format_XL_Header( OUStringBuffer& rString, const ScRange
ScRefFlags nFlags, const ScDocument& rDoc,
const ScAddress::Details& rDetails )
{
- if( nFlags & ScRefFlags::TAB_3D )
+ if( !(nFlags & ScRefFlags::TAB_3D) )
+ return;
+
+ OUString aTabName, aDocName;
+ lcl_Split_DocTab( rDoc, rRange.aStart.Tab(), rDetails, nFlags, aTabName, aDocName );
+ switch (rDetails.eConv)
{
- OUString aTabName, aDocName;
- lcl_Split_DocTab( rDoc, rRange.aStart.Tab(), rDetails, nFlags, aTabName, aDocName );
- switch (rDetails.eConv)
- {
- case formula::FormulaGrammar::CONV_XL_OOX:
- if (!aTabName.isEmpty() && aTabName[0] == '\'')
+ case formula::FormulaGrammar::CONV_XL_OOX:
+ if (!aTabName.isEmpty() && aTabName[0] == '\'')
+ {
+ if (!aDocName.isEmpty())
{
- if (!aDocName.isEmpty())
- {
- rString.append("'[").append(aDocName).append("]").append(std::u16string_view(aTabName).substr(1));
- }
- else
- {
- rString.append(aTabName);
- }
- break;
+ rString.append("'[").append(aDocName).append("]").append(std::u16string_view(aTabName).substr(1));
}
- [[fallthrough]];
- default:
- if (!aDocName.isEmpty())
+ else
{
- rString.append("[").append(aDocName).append("]");
+ rString.append(aTabName);
}
- rString.append(aTabName);
- break;
- }
- if( nFlags & ScRefFlags::TAB2_3D )
- {
- lcl_Split_DocTab( rDoc, rRange.aEnd.Tab(), rDetails, nFlags, aTabName, aDocName );
- rString.append(":");
+ break;
+ }
+ [[fallthrough]];
+ default:
+ if (!aDocName.isEmpty())
+ {
+ rString.append("[").append(aDocName).append("]");
+ }
rString.append(aTabName);
- }
- rString.append("!");
+ break;
+ }
+ if( nFlags & ScRefFlags::TAB2_3D )
+ {
+ lcl_Split_DocTab( rDoc, rRange.aEnd.Tab(), rDetails, nFlags, aTabName, aDocName );
+ rString.append(":");
+ rString.append(aTabName);
}
+ rString.append("!");
}
// helpers used in ScRange::Format
diff --git a/sc/source/core/tool/appoptio.cxx b/sc/source/core/tool/appoptio.cxx
index 530a8d9438cb..f66134c0d1c2 100644
--- a/sc/source/core/tool/appoptio.cxx
+++ b/sc/source/core/tool/appoptio.cxx
@@ -128,18 +128,18 @@ void ScAppOptions::SetLRUFuncList( const sal_uInt16* pList, const sal_uInt16 nCo
static void lcl_SetLastFunctions( ScAppOptions& rOpt, const Any& rValue )
{
Sequence<sal_Int32> aSeq;
- if ( rValue >>= aSeq )
+ if ( !(rValue >>= aSeq) )
+ return;
+
+ sal_Int32 nCount = aSeq.getLength();
+ if ( nCount < SAL_MAX_UINT16 )
{
- sal_Int32 nCount = aSeq.getLength();
- if ( nCount < SAL_MAX_UINT16 )
- {
- const sal_Int32* pArray = aSeq.getConstArray();
- std::unique_ptr<sal_uInt16[]> pUShorts(new sal_uInt16[nCount]);
- for (sal_Int32 i=0; i<nCount; i++)
- pUShorts[i] = static_cast<sal_uInt16>(pArray[i]);
+ const sal_Int32* pArray = aSeq.getConstArray();
+ std::unique_ptr<sal_uInt16[]> pUShorts(new sal_uInt16[nCount]);
+ for (sal_Int32 i=0; i<nCount; i++)
+ pUShorts[i] = static_cast<sal_uInt16>(pArray[i]);
- rOpt.SetLRUFuncList( pUShorts.get(), sal::static_int_cast<sal_uInt16>(nCount) );
- }
+ rOpt.SetLRUFuncList( pUShorts.get(), sal::static_int_cast<sal_uInt16>(nCount) );
}
}
@@ -162,29 +162,29 @@ static void lcl_GetLastFunctions( Any& rDest, const ScAppOptions& rOpt )
static void lcl_SetSortList( const Any& rValue )
{
Sequence<OUString> aSeq;
- if ( rValue >>= aSeq )
- {
- long nCount = aSeq.getLength();
- const OUString* pArray = aSeq.getConstArray();
- ScUserList aList;
+ if ( !(rValue >>= aSeq) )
+ return;
- // if setting is "default", keep default values from ScUserList ctor
- //TODO: mark "default" in a safe way
- bool bDefault = ( nCount == 1 && pArray[0] == "NULL" );
+ long nCount = aSeq.getLength();
+ const OUString* pArray = aSeq.getConstArray();
+ ScUserList aList;
- if (!bDefault)
- {
- aList.clear();
+ // if setting is "default", keep default values from ScUserList ctor
+ //TODO: mark "default" in a safe way
+ bool bDefault = ( nCount == 1 && pArray[0] == "NULL" );
- for (const auto& rStr : std::as_const(aSeq))
- {
- ScUserListData* pNew = new ScUserListData( rStr );
- aList.push_back(pNew);
- }
- }
+ if (!bDefault)
+ {
+ aList.clear();
- ScGlobal::SetUserList( &aList );
+ for (const auto& rStr : std::as_const(aSeq))
+ {
+ ScUserListData* pNew = new ScUserListData( rStr );
+ aList.push_back(pNew);
+ }
}
+
+ ScGlobal::SetUserList( &aList );
}
static void lcl_GetSortList( Any& rDest )
diff --git a/sc/source/core/tool/callform.cxx b/sc/source/core/tool/callform.cxx
index 3f5930925724..cbf8ae73a69f 100644
--- a/sc/source/core/tool/callform.cxx
+++ b/sc/source/core/tool/callform.cxx
@@ -249,74 +249,74 @@ void LegacyFuncData::Call(void** ppParam) const
#else
osl::Module* pLib = pModuleData->GetInstance();
oslGenericFunction fProc = pLib->getFunctionSymbol(aFuncName);
- if (fProc != nullptr)
+ if (fProc == nullptr)
+ return;
+
+ switch (nParamCount)
{
- switch (nParamCount)
- {
- case 1 :
- (*reinterpret_cast<ExFuncPtr1>(fProc))(ppParam[0]);
- break;
- case 2 :
- (*reinterpret_cast<ExFuncPtr2>(fProc))(ppParam[0], ppParam[1]);
- break;
- case 3 :
- (*reinterpret_cast<ExFuncPtr3>(fProc))(ppParam[0], ppParam[1], ppParam[2]);
- break;
- case 4 :
- (*reinterpret_cast<ExFuncPtr4>(fProc))(ppParam[0], ppParam[1], ppParam[2], ppParam[3]);
- break;
- case 5 :
- (*reinterpret_cast<ExFuncPtr5>(fProc))(ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4]);
- break;
- case 6 :
- (*reinterpret_cast<ExFuncPtr6>(fProc))(ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5]);
- break;
- case 7 :
- (*reinterpret_cast<ExFuncPtr7>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
- ppParam[6]);
- break;
- case 8 :
- (*reinterpret_cast<ExFuncPtr8>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
- ppParam[6], ppParam[7]);
- break;
- case 9 :
- (*reinterpret_cast<ExFuncPtr9>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
- ppParam[6], ppParam[7], ppParam[8]);
- break;
- case 10 :
- (*reinterpret_cast<ExFuncPtr10>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
- ppParam[6], ppParam[7], ppParam[8], ppParam[9]);
- break;
- case 11 :
- (*reinterpret_cast<ExFuncPtr11>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
- ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10]);
- break;
- case 12:
- (*reinterpret_cast<ExFuncPtr12>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
- ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11]);
- break;
- case 13:
- (*reinterpret_cast<ExFuncPtr13>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
- ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11],
- ppParam[12]);
- break;
- case 14 :
- (*reinterpret_cast<ExFuncPtr14>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
- ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11],
- ppParam[12], ppParam[13]);
- break;
- case 15 :
- (*reinterpret_cast<ExFuncPtr15>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
- ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11],
- ppParam[12], ppParam[13], ppParam[14]);
- break;
- case 16 :
- (*reinterpret_cast<ExFuncPtr16>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
- ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11],
- ppParam[12], ppParam[13], ppParam[14], ppParam[15]);
- break;
- default : break;
- }
+ case 1 :
+ (*reinterpret_cast<ExFuncPtr1>(fProc))(ppParam[0]);
+ break;
+ case 2 :
+ (*reinterpret_cast<ExFuncPtr2>(fProc))(ppParam[0], ppParam[1]);
+ break;
+ case 3 :
+ (*reinterpret_cast<ExFuncPtr3>(fProc))(ppParam[0], ppParam[1], ppParam[2]);
+ break;
+ case 4 :
+ (*reinterpret_cast<ExFuncPtr4>(fProc))(ppParam[0], ppParam[1], ppParam[2], ppParam[3]);
+ break;
+ case 5 :
+ (*reinterpret_cast<ExFuncPtr5>(fProc))(ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4]);
+ break;
+ case 6 :
+ (*reinterpret_cast<ExFuncPtr6>(fProc))(ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5]);
+ break;
+ case 7 :
+ (*reinterpret_cast<ExFuncPtr7>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
+ ppParam[6]);
+ break;
+ case 8 :
+ (*reinterpret_cast<ExFuncPtr8>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
+ ppParam[6], ppParam[7]);
+ break;
+ case 9 :
+ (*reinterpret_cast<ExFuncPtr9>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
+ ppParam[6], ppParam[7], ppParam[8]);
+ break;
+ case 10 :
+ (*reinterpret_cast<ExFuncPtr10>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
+ ppParam[6], ppParam[7], ppParam[8], ppParam[9]);
+ break;
+ case 11 :
+ (*reinterpret_cast<ExFuncPtr11>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
+ ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10]);
+ break;
+ case 12:
+ (*reinterpret_cast<ExFuncPtr12>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
+ ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11]);
+ break;
+ case 13:
+ (*reinterpret_cast<ExFuncPtr13>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
+ ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11],
+ ppParam[12]);
+ break;
+ case 14 :
+ (*reinterpret_cast<ExFuncPtr14>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
+ ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11],
+ ppParam[12], ppParam[13]);
+ break;
+ case 15 :
+ (*reinterpret_cast<ExFuncPtr15>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
+ ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11],
+ ppParam[12], ppParam[13], ppParam[14]);
+ break;
+ case 16 :
+ (*reinterpret_cast<ExFuncPtr16>(fProc))( ppParam[0], ppParam[1], ppParam[2], ppParam[3], ppParam[4], ppParam[5],
+ ppParam[6], ppParam[7], ppParam[8], ppParam[9], ppParam[10], ppParam[11],
+ ppParam[12], ppParam[13], ppParam[14], ppParam[15]);
+ break;
+ default : break;
}
#endif
}
diff --git a/sc/source/core/tool/charthelper.cxx b/sc/source/core/tool/charthelper.cxx
index 6acca9ce3666..cb31f2c7468f 100644
--- a/sc/source/core/tool/charthelper.cxx
+++ b/sc/source/core/tool/charthelper.cxx
@@ -118,32 +118,32 @@ void ScChartHelper::AdjustRangesOfChartsOnDestinationPage( const ScDocument* pSr
return;
SdrPage* pDestPage = pDrawLayer->GetPage(static_cast<sal_uInt16>(nDestTab));
- if( pDestPage )
+ if( !pDestPage )
+ return;
+
+ SdrObjListIter aIter( pDestPage, SdrIterMode::Flat );
+ SdrObject* pObject = aIter.Next();
+ while( pObject )
{
- SdrObjListIter aIter( pDestPage, SdrIterMode::Flat );
- SdrObject* pObject = aIter.Next();
- while( pObject )
+ if( pObject->GetObjIdentifier() == OBJ_OLE2 && static_cast<SdrOle2Obj*>(pObject)->IsChart() )
{
- if( pObject->GetObjIdentifier() == OBJ_OLE2 && static_cast<SdrOle2Obj*>(pObject)->IsChart() )
+ OUString aChartName = static_cast<SdrOle2Obj*>(pObject)->GetPersistName();
+
+ Reference< chart2::XChartDocument > xChartDoc( pDestDoc->GetChartByName( aChartName ) );
+ Reference< chart2::data::XDataReceiver > xReceiver( xChartDoc, uno::UNO_QUERY );
+ if( xChartDoc.is() && xReceiver.is() && !xChartDoc->hasInternalDataProvider() )
{
- OUString aChartName = static_cast<SdrOle2Obj*>(pObject)->GetPersistName();
+ ::std::vector< ScRangeList > aRangesVector;
+ pDestDoc->GetChartRanges( aChartName, aRangesVector, pSrcDoc );
- Reference< chart2::XChartDocument > xChartDoc( pDestDoc->GetChartByName( aChartName ) );
- Reference< chart2::data::XDataReceiver > xReceiver( xChartDoc, uno::UNO_QUERY );
- if( xChartDoc.is() && xReceiver.is() && !xChartDoc->hasInternalDataProvider() )
+ for( ScRangeList& rScRangeList : aRangesVector )
{
- ::std::vector< ScRangeList > aRangesVector;
- pDestDoc->GetChartRanges( aChartName, aRangesVector, pSrcDoc );
-
- for( ScRangeList& rScRangeList : aRangesVector )
- {
- lcl_AdjustRanges( rScRangeList, nSrcTab, nDestTab, pDestDoc->GetTableCount() );
- }
- pDestDoc->SetChartRanges( aChartName, aRangesVector );
+ lcl_AdjustRanges( rScRangeList, nSrcTab, nDestTab, pDestDoc->GetTableCount() );
}
+ pDestDoc->SetChartRanges( aChartName, aRangesVector );
}
- pObject = aIter.Next();
}
+ pObject = aIter.Next();
}
}
@@ -156,21 +156,21 @@ void ScChartHelper::UpdateChartsOnDestinationPage( ScDocument* pDestDoc, const S
return;
SdrPage* pDestPage = pDrawLayer->GetPage(static_cast<sal_uInt16>(nDestTab));
- if( pDestPage )
+ if( !pDestPage )
+ return;
+
+ SdrObjListIter aIter( pDestPage, SdrIterMode::Flat );
+ SdrObject* pObject = aIter.Next();
+ while( pObject )
{
- SdrObjListIter aIter( pDestPage, SdrIterMode::Flat );
- SdrObject* pObject = aIter.Next();
- while( pObject )
+ if( pObject->GetObjIdentifier() == OBJ_OLE2 && static_cast<SdrOle2Obj*>(pObject)->IsChart() )
{
- if( pObject->GetObjIdentifier() == OBJ_OLE2 && static_cast<SdrOle2Obj*>(pObject)->IsChart() )
- {
- OUString aChartName = static_cast<SdrOle2Obj*>(pObject)->GetPersistName();
- Reference< chart2::XChartDocument > xChartDoc( pDestDoc->GetChartByName( aChartName ) );
- Reference< util::XModifiable > xModif(xChartDoc, uno::UNO_QUERY_THROW);
- xModif->setModified( true);
- }
- pObject = aIter.Next();
+ OUString aChartName = static_cast<SdrOle2Obj*>(pObject)->GetPersistName();
+ Reference< chart2::XChartDocument > xChartDoc( pDestDoc->GetChartByName( aChartName ) );
+ Reference< util::XModifiable > xModif(xChartDoc, uno::UNO_QUERY_THROW);
+ xModif->setModified( true);
}
+ pObject = aIter.Next();
}
}
@@ -283,44 +283,44 @@ void ScChartHelper::SetChartRanges( const uno::Reference< chart2::XChartDocument
void ScChartHelper::AddRangesIfProtectedChart( ScRangeListVector& rRangesVector, const ScDocument* pDocument, SdrObject* pObject )
{
- if ( pDocument && pObject && ( pObject->GetObjIdentifier() == OBJ_OLE2 ) )
+ if ( !(pDocument && pObject && ( pObject->GetObjIdentifier() == OBJ_OLE2 )) )
+ return;
+
+ SdrOle2Obj* pSdrOle2Obj = dynamic_cast< SdrOle2Obj* >( pObject );
+ if ( !(pSdrOle2Obj && pSdrOle2Obj->IsChart()) )
+ return;
+
+ const uno::Reference< embed::XEmbeddedObject >& xEmbeddedObj = pSdrOle2Obj->GetObjRef();
+ if ( !xEmbeddedObj.is() )
+ return;
+
+ bool bDisableDataTableDialog = false;
+ sal_Int32 nOldState = xEmbeddedObj->getCurrentState();
+ svt::EmbeddedObjectRef::TryRunningState( xEmbeddedObj );
+ uno::Reference< beans::XPropertySet > xProps( xEmbeddedObj->getComponent(), uno::UNO_QUERY );
+ if ( xProps.is() &&
+ ( xProps->getPropertyValue("DisableDataTableDialog") >>= bDisableDataTableDialog ) &&
+ bDisableDataTableDialog )
{
- SdrOle2Obj* pSdrOle2Obj = dynamic_cast< SdrOle2Obj* >( pObject );
- if ( pSdrOle2Obj && pSdrOle2Obj->IsChart() )
+ ScChartListenerCollection* pCollection = pDocument->GetChartListenerCollection();
+ if (pCollection)
{
- const uno::Reference< embed::XEmbeddedObject >& xEmbeddedObj = pSdrOle2Obj->GetObjRef();
- if ( xEmbeddedObj.is() )
+ const OUString& aChartName = pSdrOle2Obj->GetPersistName();
+ const ScChartListener* pListener = pCollection->findByName(aChartName);
+ if (pListener)
{
- bool bDisableDataTableDialog = false;
- sal_Int32 nOldState = xEmbeddedObj->getCurrentState();
- svt::EmbeddedObjectRef::TryRunningState( xEmbeddedObj );
- uno::Reference< beans::XPropertySet > xProps( xEmbeddedObj->getComponent(), uno::UNO_QUERY );
- if ( xProps.is() &&
- ( xProps->getPropertyValue("DisableDataTableDialog") >>= bDisableDataTableDialog ) &&
- bDisableDataTableDialog )
- {
- ScChartListenerCollection* pCollection = pDocument->GetChartListenerCollection();
- if (pCollection)
- {
- const OUString& aChartName = pSdrOle2Obj->GetPersistName();
- const ScChartListener* pListener = pCollection->findByName(aChartName);
- if (pListener)
- {
- const ScRangeListRef& rRangeList = pListener->GetRangeList();
- if ( rRangeList.is() )
- {
- rRangesVector.push_back( *rRangeList );
- }
- }
- }
- }
- if ( xEmbeddedObj->getCurrentState() != nOldState )
+ const ScRangeListRef& rRangeList = pListener->GetRangeList();
+ if ( rRangeList.is() )
{
- xEmbeddedObj->changeState( nOldState );
+ rRangesVector.push_back( *rRangeList );
}
}
}
}
+ if ( xEmbeddedObj->getCurrentState() != nOldState )
+ {
+ xEmbeddedObj->changeState( nOldState );
+ }
}
void ScChartHelper::FillProtectedChartRangesVector( ScRangeListVector& rRangesVector, const ScDocument* pDocument, const SdrPage* pPage )
@@ -339,95 +339,95 @@ void ScChartHelper::FillProtectedChartRangesVector( ScRangeListVector& rRangesVe
void ScChartHelper::GetChartNames( ::std::vector< OUString >& rChartNames, const SdrPage* pPage )
{
- if ( pPage )
+ if ( !pPage )
+ return;
+
+ SdrObjListIter aIter( pPage, SdrIterMode::DeepNoGroups );
+ SdrObject* pObject = aIter.Next();
+ while ( pObject )
{
- SdrObjListIter aIter( pPage, SdrIterMode::DeepNoGroups );
- SdrObject* pObject = aIter.Next();
- while ( pObject )
+ if ( pObject->GetObjIdentifier() == OBJ_OLE2 )
{
- if ( pObject->GetObjIdentifier() == OBJ_OLE2 )
+ SdrOle2Obj* pSdrOle2Obj = dynamic_cast< SdrOle2Obj* >( pObject );
+ if ( pSdrOle2Obj && pSdrOle2Obj->IsChart() )
{
- SdrOle2Obj* pSdrOle2Obj = dynamic_cast< SdrOle2Obj* >( pObject );
- if ( pSdrOle2Obj && pSdrOle2Obj->IsChart() )
- {
- rChartNames.push_back( pSdrOle2Obj->GetPersistName() );
- }
+ rChartNames.push_back( pSdrOle2Obj->GetPersistName() );
}
- pObject = aIter.Next();
}
+ pObject = aIter.Next();
}
}
void ScChartHelper::CreateProtectedChartListenersAndNotify( ScDocument* pDoc, const SdrPage* pPage, ScModelObj* pModelObj, SCTAB nTab,
const ScRangeListVector& rRangesVector, const ::std::vector< OUString >& rExcludedChartNames, bool bSameDoc )
{
- if ( pDoc && pPage && pModelObj )
+ if ( !(pDoc && pPage && pModelObj) )
+ return;
+
+ size_t nRangeListCount = rRangesVector.size();
+ size_t nRangeList = 0;
+ SdrObjListIter aIter( pPage, SdrIterMode::DeepNoGroups );
+ SdrObject* pObject = aIter.Next();
+ while ( pObject )
{
- size_t nRangeListCount = rRangesVector.size();
- size_t nRangeList = 0;
- SdrObjListIter aIter( pPage, SdrIterMode::DeepNoGroups );
- SdrObject* pObject = aIter.Next();
- while ( pObject )
+ if ( pObject->GetObjIdentifier() == OBJ_OLE2 )
{
- if ( pObject->GetObjIdentifier() == OBJ_OLE2 )
+ SdrOle2Obj* pSdrOle2Obj = dynamic_cast< SdrOle2Obj* >( pObject );
+ if ( pSdrOle2Obj && pSdrOle2Obj->IsChart() )
{
- SdrOle2Obj* pSdrOle2Obj = dynamic_cast< SdrOle2Obj* >( pObject );
- if ( pSdrOle2Obj && pSdrOle2Obj->IsChart() )
+ const OUString& aChartName = pSdrOle2Obj->GetPersistName();
+ ::std::vector< OUString >::const_iterator aEnd = rExcludedChartNames.end();
+ ::std::vector< OUString >::const_iterator aFound = ::std::find( rExcludedChartNames.begin(), aEnd, aChartName );
+ if ( aFound == aEnd )
{
- const OUString& aChartName = pSdrOle2Obj->GetPersistName();
- ::std::vector< OUString >::const_iterator aEnd = rExcludedChartNames.end();
- ::std::vector< OUString >::const_iterator aFound = ::std::find( rExcludedChartNames.begin(), aEnd, aChartName );
- if ( aFound == aEnd )
+ const uno::Reference< embed::XEmbeddedObject >& xEmbeddedObj = pSdrOle2Obj->GetObjRef();
+ if ( xEmbeddedObj.is() && ( nRangeList < nRangeListCount ) )
{
- const uno::Reference< embed::XEmbeddedObject >& xEmbeddedObj = pSdrOle2Obj->GetObjRef();
- if ( xEmbeddedObj.is() && ( nRangeList < nRangeListCount ) )
+ bool bDisableDataTableDialog = false;
+ svt::EmbeddedObjectRef::TryRunningState( xEmbeddedObj );
+ uno::Reference< beans::XPropertySet > xProps( xEmbeddedObj->getComponent(), uno::UNO_QUERY );
+ if ( xProps.is() &&
+ ( xProps->getPropertyValue("DisableDataTableDialog") >>= bDisableDataTableDialog ) &&
+ bDisableDataTableDialog )
{
- bool bDisableDataTableDialog = false;
- svt::EmbeddedObjectRef::TryRunningState( xEmbeddedObj );
- uno::Reference< beans::XPropertySet > xProps( xEmbeddedObj->getComponent(), uno::UNO_QUERY );
- if ( xProps.is() &&
- ( xProps->getPropertyValue("DisableDataTableDialog") >>= bDisableDataTableDialog ) &&
- bDisableDataTableDialog )
+ if ( bSameDoc )
{
- if ( bSameDoc )
+ ScChartListenerCollection* pCollection = pDoc->GetChartListenerCollection();
+ if (pCollection && !pCollection->findByName(aChartName))
{
- ScChartListenerCollection* pCollection = pDoc->GetChartListenerCollection();
- if (pCollection && !pCollection->findByName(aChartName))
- {
- ScRangeList aRangeList( rRangesVector[ nRangeList++ ] );
- ScRangeListRef rRangeList( new ScRangeList( aRangeList ) );
- ScChartListener* pChartListener = new ScChartListener( aChartName, pDoc, rRangeList );
- pCollection->insert( pChartListener );
- pChartListener->StartListeningTo();
- }
- }
- else
- {
- xProps->setPropertyValue("DisableDataTableDialog",
- uno::makeAny( false ) );
- xProps->setPropertyValue("DisableComplexChartTypes",
- uno::makeAny( false ) );
+ ScRangeList aRangeList( rRangesVector[ nRangeList++ ] );
+ ScRangeListRef rRangeList( new ScRangeList( aRangeList ) );
+ ScChartListener* pChartListener = new ScChartListener( aChartName, pDoc, rRangeList );
+ pCollection->insert( pChartListener );
+ pChartListener->StartListeningTo();
}
}
+ else
+ {
+ xProps->setPropertyValue("DisableDataTableDialog",
+ uno::makeAny( false ) );
+ xProps->setPropertyValue("DisableComplexChartTypes",
+ uno::makeAny( false ) );
+ }
}
+ }
- if (pModelObj->HasChangesListeners())
- {
- tools::Rectangle aRectangle = pSdrOle2Obj->GetSnapRect();
- ScRange aRange( pDoc->GetRange( nTab, aRectangle ) );
- ScRangeList aChangeRanges( aRange );
+ if (pModelObj->HasChangesListeners())
+ {
+ tools::Rectangle aRectangle = pSdrOle2Obj->GetSnapRect();
+ ScRange aRange( pDoc->GetRange( nTab, aRectangle ) );
+ ScRangeList aChangeRanges( aRange );
- uno::Sequence< beans::PropertyValue > aProperties( 1 );
- aProperties[ 0 ].Name = "Name";
- aProperties[ 0 ].Value <<= aChartName;
+ uno::Sequence< beans::PropertyValue > aProperties( 1 );
+ aProperties[ 0 ].Name = "Name";
+ aProperties[ 0 ].Value <<= aChartName;
- pModelObj->NotifyChanges( "insert-chart", aChangeRanges, aProperties );
- }
+ pModelObj->NotifyChanges( "insert-chart", aChangeRanges, aProperties );
}
}
}
- pObject = aIter.Next();
}
+ pObject = aIter.Next();
}
}
diff --git a/sc/source/core/tool/chgtrack.cxx b/sc/source/core/tool/chgtrack.cxx
index ab1714d3683e..4f12df13ec42 100644
--- a/sc/source/core/tool/chgtrack.cxx
+++ b/sc/source/core/tool/chgtrack.cxx
@@ -478,27 +478,27 @@ void ScChangeAction::GetDescription(
return;
}
- if (pReject->HasDependent())
- {
- ScChangeActionMap aMap;
- pCT->GetDependents( pReject, aMap, false, true );
- ScChangeActionMap::iterator itChangeAction = std::find_if(aMap.begin(), aMap.end(),
- [&pReject](const ScChangeActionMap::value_type& rEntry) {
- return rEntry.second->GetType() == SC_CAT_MOVE || pReject->IsDeleteType(); });
- if (itChangeAction != aMap.end())
- {
- if( itChangeAction->second->GetType() == SC_CAT_MOVE)
- aBuf.append(
- ScResId(STR_CHANGED_MOVE_REJECTION_WARNING));
- else
- aBuf.append(
- ScResId(STR_CHANGED_DELETE_REJECTION_WARNING));
+ if (!pReject->HasDependent())
+ return;
- aBuf.append(' ');
- rStr = aBuf.makeStringAndClear();
- return;
- }
- }
+ ScChangeActionMap aMap;
+ pCT->GetDependents( pReject, aMap, false, true );
+ ScChangeActionMap::iterator itChangeAction = std::find_if(aMap.begin(), aMap.end(),
+ [&pReject](const ScChangeActionMap::value_type& rEntry) {
+ return rEntry.second->GetType() == SC_CAT_MOVE || pReject->IsDeleteType(); });
+ if (itChangeAction == aMap.end())
+ return;
+
+ if( itChangeAction->second->GetType() == SC_CAT_MOVE)
+ aBuf.append(
+ ScResId(STR_CHANGED_MOVE_REJECTION_WARNING));
+ else
+ aBuf.append(
+ ScResId(STR_CHANGED_DELETE_REJECTION_WARNING));
+
+ aBuf.append(' ');
+ rStr = aBuf.makeStringAndClear();
+ return;
}
OUString ScChangeAction::GetRefString(
@@ -711,19 +711,19 @@ void ScChangeActionIns::GetDescription(
OUString aRsc = ScResId(STR_CHANGED_INSERT);
sal_Int32 nPos = aRsc.indexOf("#1");
- if (nPos >= 0)
- {
- // Construct a range string to replace '#1' first.
- OUStringBuffer aBuf(ScResId(pWhatId));
- aBuf.append(' ');
- aBuf.append(GetRefString(GetBigRange(), pDoc));
- OUString aRangeStr = aBuf.makeStringAndClear();
+ if (nPos < 0)
+ return;
- aRsc = aRsc.replaceAt(nPos, 2, aRangeStr); // replace '#1' with the range string.
+ // Construct a range string to replace '#1' first.
+ OUStringBuffer aBuf(ScResId(pWhatId));
+ aBuf.append(' ');
+ aBuf.append(GetRefString(GetBigRange(), pDoc));
+ OUString aRangeStr = aBuf.makeStringAndClear();
- aBuf.append(rStr).append(aRsc);
- rStr = aBuf.makeStringAndClear();
- }
+ aRsc = aRsc.replaceAt(nPos, 2, aRangeStr); // replace '#1' with the range string.
+
+ aBuf.append(rStr).append(aRsc);
+ rStr = aBuf.makeStringAndClear();
}
bool ScChangeActionIns::IsEndOfList() const
@@ -959,19 +959,19 @@ void ScChangeActionDel::GetDescription(
OUString aRsc = ScResId(STR_CHANGED_DELETE);
sal_Int32 nPos = aRsc.indexOf("#1");
- if (nPos >= 0)
- {
- // Build a string to replace with.
- OUStringBuffer aBuf;
- aBuf.append(ScResId(pWhatId));
- aBuf.append(' ');
- aBuf.append(GetRefString(aTmpRange, pDoc));
- OUString aRangeStr = aBuf.makeStringAndClear();
- aRsc = aRsc.replaceAt(nPos, 2, aRangeStr); // replace '#1' with the string.
+ if (nPos < 0)
+ return;
- aBuf.append(rStr).append(aRsc);
- rStr = aBuf.makeStringAndClear(); // append to the original.
- }
+ // Build a string to replace with.
+ OUStringBuffer aBuf;
+ aBuf.append(ScResId(pWhatId));
+ aBuf.append(' ');
+ aBuf.append(GetRefString(aTmpRange, pDoc));
+ OUString aRangeStr = aBuf.makeStringAndClear();
+ aRsc = aRsc.replaceAt(nPos, 2, aRangeStr); // replace '#1' with the string.
+
+ aBuf.append(rStr).append(aRsc);
+ rStr = aBuf.makeStringAndClear(); // append to the original.
}
bool ScChangeActionDel::Reject( ScDocument* pDoc )
@@ -1095,35 +1095,35 @@ void ScChangeActionDel::UndoCutOffMoves()
void ScChangeActionDel::UndoCutOffInsert()
{ //Restore cut off Insert
- if ( pCutOff )
+ if ( !pCutOff )
+ return;
+
+ switch ( pCutOff->GetType() )
{
- switch ( pCutOff->GetType() )
+ case SC_CAT_INSERT_COLS :
+ if ( nCutOff < 0 )
+ pCutOff->GetBigRange().aEnd.IncCol( -nCutOff );
+ else
+ pCutOff->GetBigRange().aStart.IncCol( -nCutOff );
+ break;
+ case SC_CAT_INSERT_ROWS :
+ if ( nCutOff < 0 )
+ pCutOff->GetBigRange().aEnd.IncRow( -nCutOff );
+ else
+ pCutOff->GetBigRange().aStart.IncRow( -nCutOff );
+ break;
+ case SC_CAT_INSERT_TABS :
+ if ( nCutOff < 0 )
+ pCutOff->GetBigRange().aEnd.IncTab( -nCutOff );
+ else
+ pCutOff->GetBigRange().aStart.IncTab( -nCutOff );
+ break;
+ default:
{
- case SC_CAT_INSERT_COLS :
- if ( nCutOff < 0 )
- pCutOff->GetBigRange().aEnd.IncCol( -nCutOff );
- else
- pCutOff->GetBigRange().aStart.IncCol( -nCutOff );
- break;
- case SC_CAT_INSERT_ROWS :
- if ( nCutOff < 0 )
- pCutOff->GetBigRange().aEnd.IncRow( -nCutOff );
- else
- pCutOff->GetBigRange().aStart.IncRow( -nCutOff );
- break;
- case SC_CAT_INSERT_TABS :
- if ( nCutOff < 0 )
- pCutOff->GetBigRange().aEnd.IncTab( -nCutOff );
- else
- pCutOff->GetBigRange().aStart.IncTab( -nCutOff );
- break;
- default:
- {
- // added to avoid warnings
- }
+ // added to avoid warnings
}
- SetCutOffInsert( nullptr, 0 );
}
+ SetCutOffInsert( nullptr, 0 );
}
// ScChangeActionMove
@@ -1866,21 +1866,21 @@ static void lcl_InvalidateReference( const ScDocument* pDoc, formula::FormulaTok
{
rRef1.SetTabDeleted( true );
}
- if ( rTok.GetType() == formula::svDoubleRef )
+ if ( rTok.GetType() != formula::svDoubleRef )
+ return;
+
+ ScSingleRefData& rRef2 = rTok.GetDoubleRef()->Ref2;
+ if ( rPos.Col() < 0 || pDoc->MaxCol() < rPos.Col() )
{
- ScSingleRefData& rRef2 = rTok.GetDoubleRef()->Ref2;
- if ( rPos.Col() < 0 || pDoc->MaxCol() < rPos.Col() )
- {
- rRef2.SetColDeleted( true );
- }
- if ( rPos.Row() < 0 || pDoc->MaxRow() < rPos.Row() )
- {
- rRef2.SetRowDeleted( true );
- }
- if ( rPos.Tab() < 0 || MAXTAB < rPos.Tab() )
- {
- rRef2.SetTabDeleted( true );
- }
+ rRef2.SetColDeleted( true );
+ }
+ if ( rPos.Row() < 0 || pDoc->MaxRow() < rPos.Row() )
+ {
+ rRef2.SetRowDeleted( true );
+ }
+ if ( rPos.Tab() < 0 || MAXTAB < rPos.Tab() )
+ {
+ rRef2.SetTabDeleted( true );
}
}
@@ -1902,111 +1902,113 @@ void ScChangeActionContent::UpdateReference( const ScChangeTrack* pTrack,
bool bOldFormula = maOldCell.meType == CELLTYPE_FORMULA;
bool bNewFormula = maNewCell.meType == CELLTYPE_FORMULA;
- if ( bOldFormula || bNewFormula )
- { // Adjust UpdateReference via ScFormulaCell (there)
- if ( pTrack->IsInDelete() )
- {
- const ScRange& rDelRange = pTrack->GetInDeleteRange();
- if ( nDx > 0 )
- nDx = rDelRange.aEnd.Col() - rDelRange.aStart.Col() + 1;
- else if ( nDx < 0 )
- nDx = -(rDelRange.aEnd.Col() - rDelRange.aStart.Col() + 1);
- if ( nDy > 0 )
- nDy = rDelRange.aEnd.Row() - rDelRange.aStart.Row() + 1;
- else if ( nDy < 0 )
- nDy = -(rDelRange.aEnd.Row() - rDelRange.aStart.Row() + 1);
- if ( nDz > 0 )
- nDz = rDelRange.aEnd.Tab() - rDelRange.aStart.Tab() + 1;
- else if ( nDz < 0 )
- nDz = -(rDelRange.aEnd.Tab() - rDelRange.aStart.Tab() + 1);
- }
- ScBigRange aTmpRange( rRange );
- switch ( eMode )
- {
- case URM_INSDEL :
- if ( nDx < 0 || nDy < 0 || nDz < 0 )
- { // Delete starts there after removed range
- // Position is changed there
- if ( nDx )
- aTmpRange.aStart.IncCol( -nDx );
- if ( nDy )
- aTmpRange.aStart.IncRow( -nDy );
- if ( nDz )
- aTmpRange.aStart.IncTab( -nDz );
- }
- break;
- case URM_MOVE :
- // Move is Source here and Target there
- // Position needs to be adjusted before that
- if ( bOldFormula )
- maOldCell.mpFormula->aPos = aBigRange.aStart.MakeAddress();
- if ( bNewFormula )
- maNewCell.mpFormula->aPos = aBigRange.aStart.MakeAddress();
+ if ( !(bOldFormula || bNewFormula) )
+ return;
+
+// Adjust UpdateReference via ScFormulaCell (there)
+ if ( pTrack->IsInDelete() )
+ {
+ const ScRange& rDelRange = pTrack->GetInDeleteRange();
+ if ( nDx > 0 )
+ nDx = rDelRange.aEnd.Col() - rDelRange.aStart.Col() + 1;
+ else if ( nDx < 0 )
+ nDx = -(rDelRange.aEnd.Col() - rDelRange.aStart.Col() + 1);
+ if ( nDy > 0 )
+ nDy = rDelRange.aEnd.Row() - rDelRange.aStart.Row() + 1;
+ else if ( nDy < 0 )
+ nDy = -(rDelRange.aEnd.Row() - rDelRange.aStart.Row() + 1);
+ if ( nDz > 0 )
+ nDz = rDelRange.aEnd.Tab() - rDelRange.aStart.Tab() + 1;
+ else if ( nDz < 0 )
+ nDz = -(rDelRange.aEnd.Tab() - rDelRange.aStart.Tab() + 1);
+ }
+ ScBigRange aTmpRange( rRange );
+ switch ( eMode )
+ {
+ case URM_INSDEL :
+ if ( nDx < 0 || nDy < 0 || nDz < 0 )
+ { // Delete starts there after removed range
+ // Position is changed there
if ( nDx )
- {
- aTmpRange.aStart.IncCol( nDx );
- aTmpRange.aEnd.IncCol( nDx );
- }
+ aTmpRange.aStart.IncCol( -nDx );
if ( nDy )
- {
- aTmpRange.aStart.IncRow( nDy );
- aTmpRange.aEnd.IncRow( nDy );
- }
+ aTmpRange.aStart.IncRow( -nDy );
if ( nDz )
- {
- aTmpRange.aStart.IncTab( nDz );
- aTmpRange.aEnd.IncTab( nDz );
- }
- break;
- default:
- {
- // added to avoid warnings
+ aTmpRange.aStart.IncTab( -nDz );
}
- }
- ScRange aRange( aTmpRange.MakeRange() );
-
- sc::RefUpdateContext aRefCxt(*pTrack->GetDocument());
- aRefCxt.meMode = eMode;
- aRefCxt.maRange = aRange;
- aRefCxt.mnColDelta = nDx;
- aRefCxt.mnRowDelta = nDy;
- aRefCxt.mnTabDelta = nDz;
-
- if ( bOldFormula )
- maOldCell.mpFormula->UpdateReference(aRefCxt);
- if ( bNewFormula )
- maNewCell.mpFormula->UpdateReference(aRefCxt);
-
- if ( !aBigRange.aStart.IsValid( pTrack->GetDocument() ) )
- { //FIXME:
- // UpdateReference cannot handle positions outside of the Document.
- // Therefore set everything to #REF!
- //TODO: Remove the need for this hack! This means big changes to ScAddress etc.!
- const ScBigAddress& rPos = aBigRange.aStart;
+ break;
+ case URM_MOVE :
+ // Move is Source here and Target there
+ // Position needs to be adjusted before that
if ( bOldFormula )
+ maOldCell.mpFormula->aPos = aBigRange.aStart.MakeAddress();
+ if ( bNewFormula )
+ maNewCell.mpFormula->aPos = aBigRange.aStart.MakeAddress();
+ if ( nDx )
{
- formula::FormulaToken* t;
- ScTokenArray* pArr = maOldCell.mpFormula->GetCode();
- formula::FormulaTokenArrayPlainIterator aIter(*pArr);
- while ( ( t = aIter.GetNextReference() ) != nullptr )
- lcl_InvalidateReference( pTrack->GetDocument(), *t, rPos );
- aIter.Reset();
- while ( ( t = aIter.GetNextReferenceRPN() ) != nullptr )
- lcl_InvalidateReference( pTrack->GetDocument(), *t, rPos );
+ aTmpRange.aStart.IncCol( nDx );
+ aTmpRange.aEnd.IncCol( nDx );
}
- if ( bNewFormula )
+ if ( nDy )
+ {
+ aTmpRange.aStart.IncRow( nDy );
+ aTmpRange.aEnd.IncRow( nDy );
+ }
+ if ( nDz )
{
- formula::FormulaToken* t;
- ScTokenArray* pArr = maNewCell.mpFormula->GetCode();
- formula::FormulaTokenArrayPlainIterator aIter(*pArr);
- while ( ( t = aIter.GetNextReference() ) != nullptr )
- lcl_InvalidateReference( pTrack->GetDocument(), *t, rPos );
- aIter.Reset();
- while ( ( t = aIter.GetNextReferenceRPN() ) != nullptr )
- lcl_InvalidateReference( pTrack->GetDocument(), *t, rPos );
+ aTmpRange.aStart.IncTab( nDz );
+ aTmpRange.aEnd.IncTab( nDz );
}
+ break;
+ default:
+ {
+ // added to avoid warnings
}
}
+ ScRange aRange( aTmpRange.MakeRange() );
+
+ sc::RefUpdateContext aRefCxt(*pTrack->GetDocument());
+ aRefCxt.meMode = eMode;
+ aRefCxt.maRange = aRange;
+ aRefCxt.mnColDelta = nDx;
+ aRefCxt.mnRowDelta = nDy;
+ aRefCxt.mnTabDelta = nDz;
+
+ if ( bOldFormula )
+ maOldCell.mpFormula->UpdateReference(aRefCxt);
+ if ( bNewFormula )
+ maNewCell.mpFormula->UpdateReference(aRefCxt);
+
+ if ( aBigRange.aStart.IsValid( pTrack->GetDocument() ) )
+ return;
+
+//FIXME:
+ // UpdateReference cannot handle positions outside of the Document.
+ // Therefore set everything to #REF!
+ //TODO: Remove the need for this hack! This means big changes to ScAddress etc.!
+ const ScBigAddress& rPos = aBigRange.aStart;
+ if ( bOldFormula )
+ {
+ formula::FormulaToken* t;
+ ScTokenArray* pArr = maOldCell.mpFormula->GetCode();
+ formula::FormulaTokenArrayPlainIterator aIter(*pArr);
+ while ( ( t = aIter.GetNextReference() ) != nullptr )
+ lcl_InvalidateReference( pTrack->GetDocument(), *t, rPos );
+ aIter.Reset();
+ while ( ( t = aIter.GetNextReferenceRPN() ) != nullptr )
+ lcl_InvalidateReference( pTrack->GetDocument(), *t, rPos );
+ }
+ if ( bNewFormula )
+ {
+ formula::FormulaToken* t;
+ ScTokenArray* pArr = maNewCell.mpFormula->GetCode();
+ formula::FormulaTokenArrayPlainIterator aIter(*pArr);
+ while ( ( t = aIter.GetNextReference() ) != nullptr )
+ lcl_InvalidateReference( pTrack->GetDocument(), *t, rPos );
+ aIter.Reset();
+ while ( ( t = aIter.GetNextReferenceRPN() ) != nullptr )
+ lcl_InvalidateReference( pTrack->GetDocument(), *t, rPos );
+ }
}
bool ScChangeActionContent::IsMatrixOrigin() const
@@ -2200,28 +2202,28 @@ ScChangeAction* ScChangeTrack::GetLastSaved() const
void ScChangeTrack::ConfigurationChanged( utl::ConfigurationBroadcaster*, ConfigurationHints )
{
- if ( !pDoc->IsInDtorClear() )
- {
- const SvtUserOptions& rUserOptions = SC_MOD()->GetUserOptions();
- size_t nOldCount = maUserCollection.size();
+ if ( pDoc->IsInDtorClear() )
+ return;
- OUStringBuffer aBuf;
- aBuf.append(rUserOptions.GetFirstName());
- aBuf.append(' ');
- aBuf.append(rUserOptions.GetLastName());
- SetUser(aBuf.makeStringAndClear());
+ const SvtUserOptions& rUserOptions = SC_MOD()->GetUserOptions();
+ size_t nOldCount = maUserCollection.size();
- if ( maUserCollection.size() != nOldCount )
- {
- // New user in collection -> have to repaint because
- // colors may be different now (#106697#).
- // (Has to be done in the Notify handler, to be sure
- // the user collection has already been updated)
-
- SfxObjectShell* pDocSh = pDoc->GetDocumentShell();
- if (pDocSh)
- pDocSh->Broadcast( ScPaintHint( ScRange(0,0,0,pDoc->MaxCol(),pDoc->MaxRow(),MAXTAB), PaintPartFlags::Grid ) );
- }
+ OUStringBuffer aBuf;
+ aBuf.append(rUserOptions.GetFirstName());
+ aBuf.append(' ');
+ aBuf.append(rUserOptions.GetLastName());
+ SetUser(aBuf.makeStringAndClear());
+
+ if ( maUserCollection.size() != nOldCount )
+ {
+ // New user in collection -> have to repaint because
+ // colors may be different now (#106697#).
+ // (Has to be done in the Notify handler, to be sure
+ // the user collection has already been updated)
+
+ SfxObjectShell* pDocSh = pDoc->GetDocumentShell();
+ if (pDocSh)
+ pDocSh->Broadcast( ScPaintHint( ScRange(0,0,0,pDoc->MaxCol(),pDoc->MaxRow(),MAXTAB), PaintPartFlags::Grid ) );
}
}
@@ -2247,36 +2249,36 @@ void ScChangeTrack::StartBlockModify( ScChangeTrackMsgType eMsgType,
void ScChangeTrack::EndBlockModify( sal_uLong nEndAction )
{
- if ( aModifiedLink.IsSet() )
+ if ( !aModifiedLink.IsSet() )
+ return;
+
+ if ( xBlockModifyMsg )
{
- if ( xBlockModifyMsg )
+ if ( xBlockModifyMsg->nStartAction <= nEndAction )
{
- if ( xBlockModifyMsg->nStartAction <= nEndAction )
- {
- xBlockModifyMsg->nEndAction = nEndAction;
- // Blocks dissolved in Blocks
- aMsgStackFinal.push_back( *xBlockModifyMsg );
- }
- else
- xBlockModifyMsg.reset();
- if (aMsgStackTmp.empty())
- xBlockModifyMsg.reset();
- else
- {
- xBlockModifyMsg = aMsgStackTmp.back(); // Maybe Block in Block
- aMsgStackTmp.pop_back();
- }
+ xBlockModifyMsg->nEndAction = nEndAction;
+ // Blocks dissolved in Blocks
+ aMsgStackFinal.push_back( *xBlockModifyMsg );
}
- if ( !xBlockModifyMsg )
+ else
+ xBlockModifyMsg.reset();
+ if (aMsgStackTmp.empty())
+ xBlockModifyMsg.reset();
+ else
{
- bool bNew = !aMsgStackFinal.empty();
- aMsgQueue.reserve(aMsgQueue.size() + aMsgStackFinal.size());
- aMsgQueue.insert(aMsgQueue.end(), aMsgStackFinal.rbegin(), aMsgStackFinal.rend());
- aMsgStackFinal.clear();
- if ( bNew )
- aModifiedLink.Call( *this );
+ xBlockModifyMsg = aMsgStackTmp.back(); // Maybe Block in Block
+ aMsgStackTmp.pop_back();
}
}
+ if ( !xBlockModifyMsg )
+ {
+ bool bNew = !aMsgStackFinal.empty();
+ aMsgQueue.reserve(aMsgQueue.size() + aMsgStackFinal.size());
+ aMsgQueue.insert(aMsgQueue.end(), aMsgStackFinal.rbegin(), aMsgStackFinal.rend());
+ aMsgStackFinal.clear();
+ if ( bNew )
+ aModifiedLink.Call( *this );
+ }
}
ScChangeTrackMsgQueue& ScChangeTrack::GetMsgQueue()
@@ -2402,22 +2404,22 @@ void ScChangeTrack::Append( ScChangeAction* pAppend, sal_uLong nAction )
UpdateReference( pAppend, false );
MasterLinks( pAppend );
- if ( aModifiedLink.IsSet() )
+ if ( !aModifiedLink.IsSet() )
+ return;
+
+ NotifyModified( ScChangeTrackMsgType::Append, nAction, nAction );
+ if ( pAppend->GetType() == SC_CAT_CONTENT )
{
- NotifyModified( ScChangeTrackMsgType::Append, nAction, nAction );
- if ( pAppend->GetType() == SC_CAT_CONTENT )
+ ScChangeActionContent* pContent = static_cast<ScChangeActionContent*>(pAppend);
+ if ( ( pContent = pContent->GetPrevContent() ) != nullptr )
{
- ScChangeActionContent* pContent = static_cast<ScChangeActionContent*>(pAppend);
- if ( ( pContent = pContent->GetPrevContent() ) != nullptr )
- {
- sal_uLong nMod = pContent->GetActionNumber();
- NotifyModified( ScChangeTrackMsgType::Change, nMod, nMod );
- }
+ sal_uLong nMod = pContent->GetActionNumber();
+ NotifyModified( ScChangeTrackMsgType::Change, nMod, nMod );
}
- else
- NotifyModified( ScChangeTrackMsgType::Change, pFirst->GetActionNumber(),
- pLast->GetActionNumber() );
}
+ else
+ NotifyModified( ScChangeTrackMsgType::Change, pFirst->GetActionNumber(),
+ pLast->GetActionNumber() );
}
void ScChangeTrack::Append( ScChangeAction* pAppend )
@@ -2652,21 +2654,21 @@ void ScChangeTrack::AppendContent( const ScAddress& rPos, const ScCellValue& rOl
void ScChangeTrack::SetLastCutMoveRange( const ScRange& rRange,
ScDocument* pRefDoc )
{
- if ( pLastCutMove )
- {
- // Do not link ToRange with Deletes and don't change its size
- // This is actually unnecessary, as a delete triggers a ResetLastCut
- // in ScViewFunc::PasteFromClip before that
- ScBigRange& r = pLastCutMove->GetBigRange();
- r.aEnd.SetCol( -1 );
- r.aEnd.SetRow( -1 );
- r.aEnd.SetTab( -1 );
- r.aStart.SetCol( -1 - (rRange.aEnd.Col() - rRange.aStart.Col()) );
- r.aStart.SetRow( -1 - (rRange.aEnd.Row() - rRange.aStart.Row()) );
- r.aStart.SetTab( -1 - (rRange.aEnd.Tab() - rRange.aStart.Tab()) );
- // Contents in FromRange we should overwrite
- LookUpContents( rRange, pRefDoc, 0, 0, 0 );
- }
+ if ( !pLastCutMove )
+ return;
+
+ // Do not link ToRange with Deletes and don't change its size
+ // This is actually unnecessary, as a delete triggers a ResetLastCut
+ // in ScViewFunc::PasteFromClip before that
+ ScBigRange& r = pLastCutMove->GetBigRange();
+ r.aEnd.SetCol( -1 );
+ r.aEnd.SetRow( -1 );
+ r.aEnd.SetTab( -1 );
+ r.aStart.SetCol( -1 - (rRange.aEnd.Col() - rRange.aStart.Col()) );
+ r.aStart.SetRow( -1 - (rRange.aEnd.Row() - rRange.aStart.Row()) );
+ r.aStart.SetTab( -1 - (rRange.aEnd.Tab() - rRange.aStart.Tab()) );
+ // Contents in FromRange we should overwrite
+ LookUpContents( rRange, pRefDoc, 0, 0, 0 );
}
void ScChangeTrack::AppendContentRange( const ScRange& rRange,
@@ -2982,46 +2984,46 @@ void ScChangeTrack::Dependencies( ScChangeAction* pAct )
}
}
- if ( pLinkMove )
- {
- if ( eActType == SC_CAT_CONTENT )
- { // Content is depending on FromRange
- const ScBigAddress& rPos = rRange.aStart;
- for ( ScChangeActionLinkEntry* pL = pLinkMove; pL; pL = pL->GetNext() )
+ if ( !pLinkMove )
+ return;
+
+ if ( eActType == SC_CAT_CONTENT )
+ { // Content is depending on FromRange
+ const ScBigAddress& rPos = rRange.aStart;
+ for ( ScChangeActionLinkEntry* pL = pLinkMove; pL; pL = pL->GetNext() )
+ {
+ ScChangeActionMove* pTest = static_cast<ScChangeActionMove*>(pL->GetAction());
+ if ( !pTest->IsRejected() &&
+ pTest->GetFromRange().In( rPos ) )
{
- ScChangeActionMove* pTest = static_cast<ScChangeActionMove*>(pL->GetAction());
- if ( !pTest->IsRejected() &&
- pTest->GetFromRange().In( rPos ) )
- {
- AddDependentWithNotify( pTest, pAct );
- }
+ AddDependentWithNotify( pTest, pAct );
}
}
- else if ( eActType == SC_CAT_MOVE )
- { // Move FromRange is depending on ToRange
- const ScBigRange& rFromRange = static_cast<ScChangeActionMove*>(pAct)->GetFromRange();
- for ( ScChangeActionLinkEntry* pL = pLinkMove; pL; pL = pL->GetNext() )
+ }
+ else if ( eActType == SC_CAT_MOVE )
+ { // Move FromRange is depending on ToRange
+ const ScBigRange& rFromRange = static_cast<ScChangeActionMove*>(pAct)->GetFromRange();
+ for ( ScChangeActionLinkEntry* pL = pLinkMove; pL; pL = pL->GetNext() )
+ {
+ ScChangeActionMove* pTest = static_cast<ScChangeActionMove*>(pL->GetAction());
+ if ( !pTest->IsRejected() &&
+ pTest->GetBigRange().Intersects( rFromRange ) )
{
- ScChangeActionMove* pTest = static_cast<ScChangeActionMove*>(pL->GetAction());
- if ( !pTest->IsRejected() &&
- pTest->GetBigRange().Intersects( rFromRange ) )
- {
- AddDependentWithNotify( pTest, pAct );
- }
+ AddDependentWithNotify( pTest, pAct );
}
}
- else
- { // Inserts and Deletes are depending as soon as they cross FromRange or
- // ToRange
- for ( ScChangeActionLinkEntry* pL = pLinkMove; pL; pL = pL->GetNext() )
+ }
+ else
+ { // Inserts and Deletes are depending as soon as they cross FromRange or
+ // ToRange
+ for ( ScChangeActionLinkEntry* pL = pLinkMove; pL; pL = pL->GetNext() )
+ {
+ ScChangeActionMove* pTest = static_cast<ScChangeActionMove*>(pL->GetAction());
+ if ( !pTest->IsRejected() &&
+ (pTest->GetFromRange().Intersects( rRange ) ||
+ pTest->GetBigRange().Intersects( rRange )) )
{
- ScChangeActionMove* pTest = static_cast<ScChangeActionMove*>(pL->GetAction());
- if ( !pTest->IsRejected() &&
- (pTest->GetFromRange().Intersects( rRange ) ||
- pTest->GetBigRange().Intersects( rRange )) )
- {
- AddDependentWithNotify( pTest, pAct );
- }
+ AddDependentWithNotify( pTest, pAct );
}
}
}
@@ -3215,22 +3217,22 @@ void ScChangeTrack::MergePrepare( const ScChangeAction* pFirstMerge, bool bShare
void ScChangeTrack::MergeOwn( ScChangeAction* pAct, sal_uLong nFirstMerge, bool bShared )
{
// #i94841# [Collaboration] When deleting rows is rejected, the content is sometimes wrong
- if ( bShared || !ScChangeTrack::MergeIgnore( *pAct, nFirstMerge ) )
+ if ( !(bShared || !ScChangeTrack::MergeIgnore( *pAct, nFirstMerge )) )
+ return;
+
+ SetMergeState( SC_CTMS_OWN );
+ if ( pAct->IsDeleteType() )
{
- SetMergeState( SC_CTMS_OWN );
- if ( pAct->IsDeleteType() )
+ if ( static_cast<ScChangeActionDel*>(pAct)->IsTopDelete() )
{
- if ( static_cast<ScChangeActionDel*>(pAct)->IsTopDelete() )
- {
- SetInDeleteTop( true );
- SetInDeleteRange( static_cast<ScChangeActionDel*>(pAct)->
- GetOverAllRange().MakeRange() );
- }
+ SetInDeleteTop( true );
+ SetInDeleteRange( static_cast<ScChangeActionDel*>(pAct)->
+ GetOverAllRange().MakeRange() );
}
- UpdateReference( pAct, false );
- SetInDeleteTop( false );
- SetMergeState( SC_CTMS_OTHER ); // Preceding by default MergeOther!
}
+ UpdateReference( pAct, false );
+ SetInDeleteTop( false );
+ SetMergeState( SC_CTMS_OTHER ); // Preceding by default MergeOther!
}
void ScChangeTrack::UpdateReference( ScChangeAction* pAct, bool bUndo )
@@ -4659,44 +4661,44 @@ ScChangeTrack* ScChangeTrack::Clone( ScDocument* pDocument ) const
void ScChangeTrack::MergeActionState( ScChangeAction* pAct, const ScChangeAction* pOtherAct )
{
- if ( pAct->IsVirgin() )
+ if ( !pAct->IsVirgin() )
+ return;
+
+ if ( pOtherAct->IsAccepted() )
{
- if ( pOtherAct->IsAccepted() )
- {
- pAct->Accept();
- if ( pOtherAct->IsRejecting() )
- {
- pAct->SetRejectAction( pOtherAct->GetRejectAction() );
- }
- }
- else if ( pOtherAct->IsRejected() )
+ pAct->Accept();
+ if ( pOtherAct->IsRejecting() )
{
- pAct->SetRejected();
+ pAct->SetRejectAction( pOtherAct->GetRejectAction() );
}
}
+ else if ( pOtherAct->IsRejected() )
+ {
+ pAct->SetRejected();
+ }
}
/// Get info about a single ScChangeAction element.
static void lcl_getTrackedChange(ScDocument* pDoc, int nIndex, const ScChangeAction* pAction, tools::JsonWriter& rRedlines)
{
- if (pAction->GetType() == SC_CAT_CONTENT)
- {
- auto redlinesNode = rRedlines.startNode("");
- rRedlines.put("index", static_cast<sal_Int64>(nIndex));
+ if (pAction->GetType() != SC_CAT_CONTENT)
+ return;
- rRedlines.put("author", pAction->GetUser());
+ auto redlinesNode = rRedlines.startNode("");
+ rRedlines.put("index", static_cast<sal_Int64>(nIndex));
- rRedlines.put("type", "Modify");
+ rRedlines.put("author", pAction->GetUser());
- rRedlines.put("comment", pAction->GetComment());
+ rRedlines.put("type", "Modify");
- OUString aDescription;
- pAction->GetDescription(aDescription, pDoc, true);
- rRedlines.put("description", aDescription);
+ rRedlines.put("comment", pAction->GetComment());
- OUString sDateTime = utl::toISO8601(pAction->GetDateTimeUTC().GetUNODateTime());
- rRedlines.put("dateTime", sDateTime);
- }
+ OUString aDescription;
+ pAction->GetDescription(aDescription, pDoc, true);
+ rRedlines.put("description", aDescription);
+
+ OUString sDateTime = utl::toISO8601(pAction->GetDateTimeUTC().GetUNODateTime());
+ rRedlines.put("dateTime", sDateTime);
}
void ScChangeTrack::GetChangeTrackInfo(tools::JsonWriter& aRedlines)
diff --git a/sc/source/core/tool/compiler.cxx b/sc/source/core/tool/compiler.cxx
index 3dc18b0fe5dc..4eb3012b04ad 100644
--- a/sc/source/core/tool/compiler.cxx
+++ b/sc/source/core/tool/compiler.cxx
@@ -262,19 +262,19 @@ void ScCompiler::SetNumberFormatter( SvNumberFormatter* pFormatter )
void ScCompiler::SetFormulaLanguage( const ScCompiler::OpCodeMapPtr & xMap )
{
- if (xMap)
+ if (!xMap)
+ return;
+
+ mxSymbols = xMap;
+ if (mxSymbols->isEnglish())
{
- mxSymbols = xMap;
- if (mxSymbols->isEnglish())
- {
- if (!pCharClassEnglish)
- InitCharClassEnglish();
- pCharClass = pCharClassEnglish;
- }
- else
- pCharClass = ScGlobal::getCharClassPtr();
- SetGrammarAndRefConvention( mxSymbols->getGrammar(), GetGrammar());
+ if (!pCharClassEnglish)
+ InitCharClassEnglish();
+ pCharClass = pCharClassEnglish;
}
+ else
+ pCharClass = ScGlobal::getCharClassPtr();
+ SetGrammarAndRefConvention( mxSymbols->getGrammar(), GetGrammar());
}
void ScCompiler::SetGrammarAndRefConvention(
@@ -409,8 +409,9 @@ ScCompiler::Convention::Convention( FormulaGrammar::AddressConvention eConv )
/* ~ */ t[126] = ScCharFlags::Char; // OOo specific
/* 127 */ // FREE
- if( FormulaGrammar::CONV_XL_A1 == meConv || FormulaGrammar::CONV_XL_R1C1 == meConv || FormulaGrammar::CONV_XL_OOX == meConv )
- {
+ if( !(FormulaGrammar::CONV_XL_A1 == meConv || FormulaGrammar::CONV_XL_R1C1 == meConv || FormulaGrammar::CONV_XL_OOX == meConv) )
+return;
+
/* */ t[32] |= ScCharFlags::Word;
/* ! */ t[33] |= ScCharFlags::Ident | ScCharFlags::Word;
/* " */ t[34] |= ScCharFlags::Word;
@@ -445,7 +446,6 @@ ScCompiler::Convention::Convention( FormulaGrammar::AddressConvention eConv )
/* | */ t[124]|= ScCharFlags::Word;
/* } */ t[125]|= ScCharFlags::Word;
/* ~ */ t[126]|= ScCharFlags::Word;
- }
... etc. - the rest is truncated
More information about the Libreoffice-commits
mailing list