summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2020-07-29 16:13:12 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2020-07-29 20:47:22 +0200
commitb6a4ddf4d8c45030dbe3fc68b51f9366109041bd (patch)
tree4a4cf192eb2851503b7b95640283d567401f7e9f
parent26a29f7f62f4f98b7eafa738037bef3b737c8470 (diff)
loplugin:flatten in sc/filter/xml
Change-Id: I93117f601a8f450ebfcde32c156802137b87da76 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/99701 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--sc/source/filter/xml/XMLCalculationSettingsContext.cxx172
-rw-r--r--sc/source/filter/xml/XMLCellRangeSourceContext.cxx80
-rw-r--r--sc/source/filter/xml/XMLChangeTrackingExportHelper.cxx140
-rw-r--r--sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx324
-rw-r--r--sc/source/filter/xml/XMLConsolidationContext.cxx110
-rw-r--r--sc/source/filter/xml/XMLConverter.cxx101
-rw-r--r--sc/source/filter/xml/XMLDDELinksContext.cxx170
-rw-r--r--sc/source/filter/xml/XMLDetectiveContext.cxx44
-rw-r--r--sc/source/filter/xml/XMLExportDDELinks.cxx64
-rw-r--r--sc/source/filter/xml/XMLExportDataPilot.cxx452
-rw-r--r--sc/source/filter/xml/XMLExportIterator.cxx128
-rw-r--r--sc/source/filter/xml/XMLStylesExportHelper.cxx310
-rw-r--r--sc/source/filter/xml/XMLTableMasterPageExport.cxx74
-rw-r--r--sc/source/filter/xml/XMLTableShapeResizer.cxx76
-rw-r--r--sc/source/filter/xml/XMLTableSourceContext.cxx100
-rw-r--r--sc/source/filter/xml/XMLTrackedChangesContext.cxx44
-rw-r--r--sc/source/filter/xml/datastreamimport.cxx50
-rw-r--r--sc/source/filter/xml/xmlbodyi.cxx46
-rw-r--r--sc/source/filter/xml/xmlcelli.cxx272
-rw-r--r--sc/source/filter/xml/xmlcoli.cxx48
-rw-r--r--sc/source/filter/xml/xmlcondformat.cxx28
-rw-r--r--sc/source/filter/xml/xmlcvali.cxx260
-rw-r--r--sc/source/filter/xml/xmldpimp.cxx534
-rw-r--r--sc/source/filter/xml/xmldrani.cxx112
-rw-r--r--sc/source/filter/xml/xmlexprt.cxx1464
-rw-r--r--sc/source/filter/xml/xmlexternaltabi.cxx172
-rw-r--r--sc/source/filter/xml/xmlfilti.cxx246
-rw-r--r--sc/source/filter/xml/xmlfonte.cxx72
-rw-r--r--sc/source/filter/xml/xmlimprt.cxx460
-rw-r--r--sc/source/filter/xml/xmllabri.cxx28
-rw-r--r--sc/source/filter/xml/xmlrowi.cxx128
-rw-r--r--sc/source/filter/xml/xmlsceni.cxx108
-rw-r--r--sc/source/filter/xml/xmlsorti.cxx130
-rw-r--r--sc/source/filter/xml/xmlstyle.cxx152
-rw-r--r--sc/source/filter/xml/xmlsubti.cxx136
-rw-r--r--sc/source/filter/xml/xmltransformationi.cxx168
36 files changed, 3502 insertions, 3501 deletions
diff --git a/sc/source/filter/xml/XMLCalculationSettingsContext.cxx b/sc/source/filter/xml/XMLCalculationSettingsContext.cxx
index 9917eaaa0ba1..26161c092360 100644
--- a/sc/source/filter/xml/XMLCalculationSettingsContext.cxx
+++ b/sc/source/filter/xml/XMLCalculationSettingsContext.cxx
@@ -48,43 +48,43 @@ ScXMLCalculationSettingsContext::ScXMLCalculationSettingsContext( ScXMLImport& r
aNullDate.Day = 30;
aNullDate.Month = 12;
aNullDate.Year = 1899;
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_CASE_SENSITIVE ):
- if( IsXMLToken( aIter, XML_FALSE ) )
- bIgnoreCase = true;
- break;
- case XML_ELEMENT( TABLE, XML_PRECISION_AS_SHOWN ):
- if( IsXMLToken( aIter, XML_TRUE ) )
- bCalcAsShown = true;
- break;
- case XML_ELEMENT( TABLE, XML_SEARCH_CRITERIA_MUST_APPLY_TO_WHOLE_CELL ):
- if( IsXMLToken( aIter, XML_FALSE ) )
- bMatchWholeCell = false;
- break;
- case XML_ELEMENT( TABLE, XML_AUTOMATIC_FIND_LABELS ):
- if( IsXMLToken( aIter, XML_FALSE ) )
- bLookUpLabels = false;
- break;
- case XML_ELEMENT( TABLE, XML_NULL_YEAR ):
- sal_Int32 nTemp;
- ::sax::Converter::convertNumber( nTemp, aIter.toString() );
- nYear2000 = static_cast<sal_uInt16>(nTemp);
- break;
- case XML_ELEMENT( TABLE, XML_USE_REGULAR_EXPRESSIONS ):
- // Overwrite only the default (regex true) value, not wildcard.
- if( eSearchType == utl::SearchParam::SearchType::Regexp && IsXMLToken( aIter, XML_FALSE ) )
- eSearchType = utl::SearchParam::SearchType::Normal;
- break;
- case XML_ELEMENT( TABLE, XML_USE_WILDCARDS ):
- if( IsXMLToken( aIter, XML_TRUE ) )
- eSearchType = utl::SearchParam::SearchType::Wildcard;
- break;
- }
+ case XML_ELEMENT( TABLE, XML_CASE_SENSITIVE ):
+ if( IsXMLToken( aIter, XML_FALSE ) )
+ bIgnoreCase = true;
+ break;
+ case XML_ELEMENT( TABLE, XML_PRECISION_AS_SHOWN ):
+ if( IsXMLToken( aIter, XML_TRUE ) )
+ bCalcAsShown = true;
+ break;
+ case XML_ELEMENT( TABLE, XML_SEARCH_CRITERIA_MUST_APPLY_TO_WHOLE_CELL ):
+ if( IsXMLToken( aIter, XML_FALSE ) )
+ bMatchWholeCell = false;
+ break;
+ case XML_ELEMENT( TABLE, XML_AUTOMATIC_FIND_LABELS ):
+ if( IsXMLToken( aIter, XML_FALSE ) )
+ bLookUpLabels = false;
+ break;
+ case XML_ELEMENT( TABLE, XML_NULL_YEAR ):
+ sal_Int32 nTemp;
+ ::sax::Converter::convertNumber( nTemp, aIter.toString() );
+ nYear2000 = static_cast<sal_uInt16>(nTemp);
+ break;
+ case XML_ELEMENT( TABLE, XML_USE_REGULAR_EXPRESSIONS ):
+ // Overwrite only the default (regex true) value, not wildcard.
+ if( eSearchType == utl::SearchParam::SearchType::Regexp && IsXMLToken( aIter, XML_FALSE ) )
+ eSearchType = utl::SearchParam::SearchType::Normal;
+ break;
+ case XML_ELEMENT( TABLE, XML_USE_WILDCARDS ):
+ if( IsXMLToken( aIter, XML_TRUE ) )
+ eSearchType = utl::SearchParam::SearchType::Wildcard;
+ break;
}
}
}
@@ -110,31 +110,31 @@ uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLCalculationSetting
void SAL_CALL ScXMLCalculationSettingsContext::endFastElement( sal_Int32 /*nElement*/ )
{
- if (GetScImport().GetModel().is())
+ if (!GetScImport().GetModel().is())
+ return;
+
+ uno::Reference <beans::XPropertySet> xPropertySet (GetScImport().GetModel(), uno::UNO_QUERY);
+ if (!xPropertySet.is())
+ return;
+
+ xPropertySet->setPropertyValue( SC_UNO_CALCASSHOWN, uno::makeAny(bCalcAsShown) );
+ xPropertySet->setPropertyValue( SC_UNO_IGNORECASE, uno::makeAny(bIgnoreCase) );
+ xPropertySet->setPropertyValue( SC_UNO_LOOKUPLABELS, uno::makeAny(bLookUpLabels) );
+ xPropertySet->setPropertyValue( SC_UNO_MATCHWHOLE, uno::makeAny(bMatchWholeCell) );
+ bool bWildcards, bRegex;
+ utl::SearchParam::ConvertToBool( eSearchType, bWildcards, bRegex);
+ xPropertySet->setPropertyValue( SC_UNO_REGEXENABLED, uno::makeAny(bRegex) );
+ xPropertySet->setPropertyValue( SC_UNO_WILDCARDSENABLED, uno::makeAny(bWildcards) );
+ xPropertySet->setPropertyValue( SC_UNO_ITERENABLED, uno::makeAny(bIsIterationEnabled) );
+ xPropertySet->setPropertyValue( SC_UNO_ITERCOUNT, uno::makeAny(nIterationCount) );
+ xPropertySet->setPropertyValue( SC_UNO_ITEREPSILON, uno::makeAny(fIterationEpsilon) );
+ xPropertySet->setPropertyValue( SC_UNO_NULLDATE, uno::makeAny(aNullDate) );
+ if (GetScImport().GetDocument())
{
- uno::Reference <beans::XPropertySet> xPropertySet (GetScImport().GetModel(), uno::UNO_QUERY);
- if (xPropertySet.is())
- {
- xPropertySet->setPropertyValue( SC_UNO_CALCASSHOWN, uno::makeAny(bCalcAsShown) );
- xPropertySet->setPropertyValue( SC_UNO_IGNORECASE, uno::makeAny(bIgnoreCase) );
- xPropertySet->setPropertyValue( SC_UNO_LOOKUPLABELS, uno::makeAny(bLookUpLabels) );
- xPropertySet->setPropertyValue( SC_UNO_MATCHWHOLE, uno::makeAny(bMatchWholeCell) );
- bool bWildcards, bRegex;
- utl::SearchParam::ConvertToBool( eSearchType, bWildcards, bRegex);
- xPropertySet->setPropertyValue( SC_UNO_REGEXENABLED, uno::makeAny(bRegex) );
- xPropertySet->setPropertyValue( SC_UNO_WILDCARDSENABLED, uno::makeAny(bWildcards) );
- xPropertySet->setPropertyValue( SC_UNO_ITERENABLED, uno::makeAny(bIsIterationEnabled) );
- xPropertySet->setPropertyValue( SC_UNO_ITERCOUNT, uno::makeAny(nIterationCount) );
- xPropertySet->setPropertyValue( SC_UNO_ITEREPSILON, uno::makeAny(fIterationEpsilon) );
- xPropertySet->setPropertyValue( SC_UNO_NULLDATE, uno::makeAny(aNullDate) );
- if (GetScImport().GetDocument())
- {
- ScXMLImport::MutexGuard aGuard(GetScImport());
- ScDocOptions aDocOptions (GetScImport().GetDocument()->GetDocOptions());
- aDocOptions.SetYear2000(nYear2000);
- GetScImport().GetDocument()->SetDocOptions(aDocOptions);
- }
- }
+ ScXMLImport::MutexGuard aGuard(GetScImport());
+ ScDocOptions aDocOptions (GetScImport().GetDocument()->GetDocOptions());
+ aDocOptions.SetYear2000(nYear2000);
+ GetScImport().GetDocument()->SetDocOptions(aDocOptions);
}
}
@@ -143,19 +143,19 @@ ScXMLNullDateContext::ScXMLNullDateContext( ScXMLImport& rImport,
ScXMLCalculationSettingsContext* pCalcSet) :
ScXMLImportContext( rImport )
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ auto aIter( rAttrList->find( XML_ELEMENT( TABLE, XML_DATE_VALUE ) ) );
+ if (aIter != rAttrList->end())
{
- auto aIter( rAttrList->find( XML_ELEMENT( TABLE, XML_DATE_VALUE ) ) );
- if (aIter != rAttrList->end())
- {
- util::DateTime aDateTime;
- ::sax::Converter::parseDateTime(aDateTime, aIter.toString());
- util::Date aDate;
- aDate.Day = aDateTime.Day;
- aDate.Month = aDateTime.Month;
- aDate.Year = aDateTime.Year;
- pCalcSet->SetNullDate(aDate);
- }
+ util::DateTime aDateTime;
+ ::sax::Converter::parseDateTime(aDateTime, aIter.toString());
+ util::Date aDate;
+ aDate.Day = aDateTime.Day;
+ aDate.Month = aDateTime.Month;
+ aDate.Year = aDateTime.Year;
+ pCalcSet->SetNullDate(aDate);
}
}
@@ -168,23 +168,23 @@ ScXMLIterationContext::ScXMLIterationContext( ScXMLImport& rImport,
ScXMLCalculationSettingsContext* pCalcSet) :
ScXMLImportContext( rImport )
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_STATUS ):
- if (IsXMLToken(aIter, XML_ENABLE))
- pCalcSet->SetIterationStatus(true);
- break;
- case XML_ELEMENT( TABLE, XML_STEPS ):
- pCalcSet->SetIterationCount(aIter.toInt32());
- break;
- case XML_ELEMENT( TABLE, XML_MAXIMUM_DIFFERENCE ):
- pCalcSet->SetIterationEpsilon( aIter.toDouble() );
- break;
- }
+ case XML_ELEMENT( TABLE, XML_STATUS ):
+ if (IsXMLToken(aIter, XML_ENABLE))
+ pCalcSet->SetIterationStatus(true);
+ break;
+ case XML_ELEMENT( TABLE, XML_STEPS ):
+ pCalcSet->SetIterationCount(aIter.toInt32());
+ break;
+ case XML_ELEMENT( TABLE, XML_MAXIMUM_DIFFERENCE ):
+ pCalcSet->SetIterationEpsilon( aIter.toDouble() );
+ break;
}
}
}
diff --git a/sc/source/filter/xml/XMLCellRangeSourceContext.cxx b/sc/source/filter/xml/XMLCellRangeSourceContext.cxx
index 936f565c93a6..70608c430cb9 100644
--- a/sc/source/filter/xml/XMLCellRangeSourceContext.cxx
+++ b/sc/source/filter/xml/XMLCellRangeSourceContext.cxx
@@ -40,50 +40,50 @@ ScXMLCellRangeSourceContext::ScXMLCellRangeSourceContext(
ScMyImpCellRangeSource* pCellRangeSource ) :
ScXMLImportContext( rImport )
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_NAME ):
+ pCellRangeSource->sSourceStr = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_FILTER_NAME ):
+ pCellRangeSource->sFilterName = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_FILTER_OPTIONS ):
+ pCellRangeSource->sFilterOptions = aIter.toString();
+ break;
+ case XML_ELEMENT( XLINK, XML_HREF ):
+ pCellRangeSource->sURL = GetScImport().GetAbsoluteReference(aIter.toString());
+ break;
+ case XML_ELEMENT( TABLE, XML_LAST_COLUMN_SPANNED ):
+ {
+ sal_Int32 nValue;
+ if (::sax::Converter::convertNumber( nValue, aIter.toString(), 1 ))
+ pCellRangeSource->nColumns = nValue;
+ else
+ pCellRangeSource->nColumns = 1;
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_LAST_ROW_SPANNED ):
+ {
+ sal_Int32 nValue;
+ if (::sax::Converter::convertNumber( nValue, aIter.toString(), 1 ))
+ pCellRangeSource->nRows = nValue;
+ else
+ pCellRangeSource->nRows = 1;
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_REFRESH_DELAY ):
{
- case XML_ELEMENT( TABLE, XML_NAME ):
- pCellRangeSource->sSourceStr = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_FILTER_NAME ):
- pCellRangeSource->sFilterName = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_FILTER_OPTIONS ):
- pCellRangeSource->sFilterOptions = aIter.toString();
- break;
- case XML_ELEMENT( XLINK, XML_HREF ):
- pCellRangeSource->sURL = GetScImport().GetAbsoluteReference(aIter.toString());
- break;
- case XML_ELEMENT( TABLE, XML_LAST_COLUMN_SPANNED ):
- {
- sal_Int32 nValue;
- if (::sax::Converter::convertNumber( nValue, aIter.toString(), 1 ))
- pCellRangeSource->nColumns = nValue;
- else
- pCellRangeSource->nColumns = 1;
- }
- break;
- case XML_ELEMENT( TABLE, XML_LAST_ROW_SPANNED ):
- {
- sal_Int32 nValue;
- if (::sax::Converter::convertNumber( nValue, aIter.toString(), 1 ))
- pCellRangeSource->nRows = nValue;
- else
- pCellRangeSource->nRows = 1;
- }
- break;
- case XML_ELEMENT( TABLE, XML_REFRESH_DELAY ):
- {
- double fTime;
- if (::sax::Converter::convertDuration( fTime, aIter.toString() ))
- pCellRangeSource->nRefresh = std::max( static_cast<sal_Int32>(fTime * 86400.0), sal_Int32(0) );
- }
- break;
+ double fTime;
+ if (::sax::Converter::convertDuration( fTime, aIter.toString() ))
+ pCellRangeSource->nRefresh = std::max( static_cast<sal_Int32>(fTime * 86400.0), sal_Int32(0) );
}
+ break;
}
}
}
diff --git a/sc/source/filter/xml/XMLChangeTrackingExportHelper.cxx b/sc/source/filter/xml/XMLChangeTrackingExportHelper.cxx
index 1efca32d0efe..4a8af8b60dcd 100644
--- a/sc/source/filter/xml/XMLChangeTrackingExportHelper.cxx
+++ b/sc/source/filter/xml/XMLChangeTrackingExportHelper.cxx
@@ -503,64 +503,64 @@ void ScChangeTrackingExportHelper::AddDeletionAttributes(const ScChangeActionDel
break;
}
rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_POSITION, OUString::number(nPosition));
- if (pDelAction->GetType() != SC_CAT_DELETE_TABS)
+ if (pDelAction->GetType() == SC_CAT_DELETE_TABS)
+ return;
+
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_TABLE, OUString::number(nStartSheet));
+ if (!(pDelAction->IsMultiDelete() && !pDelAction->GetDx() && !pDelAction->GetDy()))
+ return;
+
+ const ScChangeAction* p = pDelAction->GetNext();
+ sal_Int32 nSlavesCount (1);
+ while (p)
{
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_TABLE, OUString::number(nStartSheet));
- if (pDelAction->IsMultiDelete() && !pDelAction->GetDx() && !pDelAction->GetDy())
+ if (p->GetType() != pDelAction->GetType())
+ break;
+ else
{
- const ScChangeAction* p = pDelAction->GetNext();
- sal_Int32 nSlavesCount (1);
- while (p)
+ const ScChangeActionDel* pDel = static_cast<const ScChangeActionDel*>(p);
+ if ( (pDel->GetDx() > pDelAction->GetDx() || pDel->GetDy() > pDelAction->GetDy()) &&
+ pDel->GetBigRange() == pDelAction->GetBigRange() )
{
- if (p->GetType() != pDelAction->GetType())
- break;
- else
- {
- const ScChangeActionDel* pDel = static_cast<const ScChangeActionDel*>(p);
- if ( (pDel->GetDx() > pDelAction->GetDx() || pDel->GetDy() > pDelAction->GetDy()) &&
- pDel->GetBigRange() == pDelAction->GetBigRange() )
- {
- ++nSlavesCount;
- p = p->GetNext();
- }
- else
- break;
- }
+ ++nSlavesCount;
+ p = p->GetNext();
}
-
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_MULTI_DELETION_SPANNED, OUString::number(nSlavesCount));
+ else
+ break;
}
}
+
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_MULTI_DELETION_SPANNED, OUString::number(nSlavesCount));
}
void ScChangeTrackingExportHelper::WriteCutOffs(const ScChangeActionDel* pAction)
{
const ScChangeActionIns* pCutOffIns = pAction->GetCutOffInsert();
const ScChangeActionDelMoveEntry* pLinkMove = pAction->GetFirstMoveEntry();
- if (pCutOffIns || pLinkMove)
+ if (!(pCutOffIns || pLinkMove))
+ return;
+
+ SvXMLElementExport aCutOffsElem (rExport, XML_NAMESPACE_TABLE, XML_CUT_OFFS, true, true);
+ if (pCutOffIns)
+ {
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ID, GetChangeID(pCutOffIns->GetActionNumber()));
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_POSITION, OUString::number(pAction->GetCutOffCount()));
+ SvXMLElementExport aInsertCutOffElem (rExport, XML_NAMESPACE_TABLE, XML_INSERTION_CUT_OFF, true, true);
+ }
+ while (pLinkMove)
{
- SvXMLElementExport aCutOffsElem (rExport, XML_NAMESPACE_TABLE, XML_CUT_OFFS, true, true);
- if (pCutOffIns)
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ID, GetChangeID(pLinkMove->GetAction()->GetActionNumber()));
+ if (pLinkMove->GetCutOffFrom() == pLinkMove->GetCutOffTo())
{
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ID, GetChangeID(pCutOffIns->GetActionNumber()));
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_POSITION, OUString::number(pAction->GetCutOffCount()));
- SvXMLElementExport aInsertCutOffElem (rExport, XML_NAMESPACE_TABLE, XML_INSERTION_CUT_OFF, true, true);
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_POSITION, OUString::number(pLinkMove->GetCutOffFrom()));
}
- while (pLinkMove)
+ else
{
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ID, GetChangeID(pLinkMove->GetAction()->GetActionNumber()));
- if (pLinkMove->GetCutOffFrom() == pLinkMove->GetCutOffTo())
- {
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_POSITION, OUString::number(pLinkMove->GetCutOffFrom()));
- }
- else
- {
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_START_POSITION, OUString::number(pLinkMove->GetCutOffFrom()));
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_END_POSITION, OUString::number(pLinkMove->GetCutOffTo()));
- }
- SvXMLElementExport aMoveCutOffElem (rExport, XML_NAMESPACE_TABLE, XML_MOVEMENT_CUT_OFF, true, true);
- pLinkMove = pLinkMove->GetNext();
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_START_POSITION, OUString::number(pLinkMove->GetCutOffFrom()));
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_END_POSITION, OUString::number(pLinkMove->GetCutOffTo()));
}
+ SvXMLElementExport aMoveCutOffElem (rExport, XML_NAMESPACE_TABLE, XML_MOVEMENT_CUT_OFF, true, true);
+ pLinkMove = pLinkMove->GetNext();
}
}
@@ -652,45 +652,45 @@ void ScChangeTrackingExportHelper::WorkWithChangeAction(ScChangeAction* pAction)
void ScChangeTrackingExportHelper::CollectAutoStyles()
{
- if (pChangeTrack)
+ if (!pChangeTrack)
+ return;
+
+ sal_uInt32 nCount (pChangeTrack->GetActionMax());
+ if (!nCount)
+ return;
+
+ ScChangeAction* pAction = pChangeTrack->GetFirst();
+ CollectActionAutoStyles(pAction);
+ ScChangeAction* pLastAction = pChangeTrack->GetLast();
+ while (pAction != pLastAction)
{
- sal_uInt32 nCount (pChangeTrack->GetActionMax());
- if (nCount)
- {
- ScChangeAction* pAction = pChangeTrack->GetFirst();
- CollectActionAutoStyles(pAction);
- ScChangeAction* pLastAction = pChangeTrack->GetLast();
- while (pAction != pLastAction)
- {
- pAction = pAction->GetNext();
- CollectActionAutoStyles(pAction);
- }
- pAction = pChangeTrack->GetFirstGenerated();
- while (pAction)
- {
- CollectActionAutoStyles(pAction);
- pAction = pAction->GetNext();
- }
- }
+ pAction = pAction->GetNext();
+ CollectActionAutoStyles(pAction);
+ }
+ pAction = pChangeTrack->GetFirstGenerated();
+ while (pAction)
+ {
+ CollectActionAutoStyles(pAction);
+ pAction = pAction->GetNext();
}
}
void ScChangeTrackingExportHelper::CollectAndWriteChanges()
{
- if (pChangeTrack)
+ if (!pChangeTrack)
+ return;
+
+ SvXMLElementExport aCangeListElem(rExport, XML_NAMESPACE_TABLE, XML_TRACKED_CHANGES, true, true);
{
- SvXMLElementExport aCangeListElem(rExport, XML_NAMESPACE_TABLE, XML_TRACKED_CHANGES, true, true);
+ ScChangeAction* pAction = pChangeTrack->GetFirst();
+ if (pAction)
{
- ScChangeAction* pAction = pChangeTrack->GetFirst();
- if (pAction)
+ WorkWithChangeAction(pAction);
+ ScChangeAction* pLastAction = pChangeTrack->GetLast();
+ while (pAction != pLastAction)
{
+ pAction = pAction->GetNext();
WorkWithChangeAction(pAction);
- ScChangeAction* pLastAction = pChangeTrack->GetLast();
- while (pAction != pLastAction)
- {
- pAction = pAction->GetNext();
- WorkWithChangeAction(pAction);
- }
}
}
}
diff --git a/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx b/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
index a9a7cb3f126c..dc1a93a7c913 100644
--- a/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
+++ b/sc/source/filter/xml/XMLChangeTrackingImportHelper.cxx
@@ -531,46 +531,46 @@ void ScXMLChangeTrackingImportHelper::SetDeletionDependencies(ScMyDelAction* pAc
OSL_FAIL("no cut off insert action");
}
}
- if (!pAction->aMoveCutOffs.empty())
+ if (pAction->aMoveCutOffs.empty())
+ return;
+
+ OSL_ENSURE(((pAction->nActionType == SC_CAT_DELETE_COLS) ||
+ (pAction->nActionType == SC_CAT_DELETE_ROWS) ||
+ (pAction->nActionType == SC_CAT_DELETE_TABS)), "wrong action type");
+ for (auto it = pAction->aMoveCutOffs.crbegin(); it != pAction->aMoveCutOffs.crend(); ++it)
{
- OSL_ENSURE(((pAction->nActionType == SC_CAT_DELETE_COLS) ||
- (pAction->nActionType == SC_CAT_DELETE_ROWS) ||
- (pAction->nActionType == SC_CAT_DELETE_TABS)), "wrong action type");
- for (auto it = pAction->aMoveCutOffs.crbegin(); it != pAction->aMoveCutOffs.crend(); ++it)
+ const ScMyMoveCutOff & rCutOff = *it;
+ ScChangeAction* pChangeAction = pTrack->GetAction(rCutOff.nID);
+ if (pChangeAction && (pChangeAction->GetType() == SC_CAT_MOVE))
{
- const ScMyMoveCutOff & rCutOff = *it;
- ScChangeAction* pChangeAction = pTrack->GetAction(rCutOff.nID);
- if (pChangeAction && (pChangeAction->GetType() == SC_CAT_MOVE))
- {
- ScChangeActionMove* pMoveAction = static_cast<ScChangeActionMove*>(pChangeAction);
- if (pDelAct)
- pDelAct->AddCutOffMove(pMoveAction, static_cast<sal_Int16>(rCutOff.nStartPosition),
- static_cast<sal_Int16>(rCutOff.nEndPosition));
- }
- else
- {
- OSL_FAIL("no cut off move action");
- }
+ ScChangeActionMove* pMoveAction = static_cast<ScChangeActionMove*>(pChangeAction);
+ if (pDelAct)
+ pDelAct->AddCutOffMove(pMoveAction, static_cast<sal_Int16>(rCutOff.nStartPosition),
+ static_cast<sal_Int16>(rCutOff.nEndPosition));
+ }
+ else
+ {
+ OSL_FAIL("no cut off move action");
}
- pAction->aMoveCutOffs.clear();
}
+ pAction->aMoveCutOffs.clear();
}
void ScXMLChangeTrackingImportHelper::SetMovementDependencies(ScMyMoveAction* pAction, ScChangeActionMove* pMoveAct)
{
- if (!pAction->aGeneratedList.empty())
+ if (pAction->aGeneratedList.empty())
+ return;
+
+ if (pAction->nActionType == SC_CAT_MOVE)
{
- if (pAction->nActionType == SC_CAT_MOVE)
+ if (pMoveAct)
{
- if (pMoveAct)
+ for (const ScMyGenerated & rGenerated : pAction->aGeneratedList)
{
- for (const ScMyGenerated & rGenerated : pAction->aGeneratedList)
- {
- OSL_ENSURE(rGenerated.nID, "a not inserted generated action");
- pMoveAct->SetDeletedInThis(rGenerated.nID, pTrack);
- }
- pAction->aGeneratedList.clear();
+ OSL_ENSURE(rGenerated.nID, "a not inserted generated action");
+ pMoveAct->SetDeletedInThis(rGenerated.nID, pTrack);
}
+ pAction->aGeneratedList.clear();
}
}
}
@@ -648,169 +648,169 @@ void ScXMLChangeTrackingImportHelper::SetDependencies(ScMyBaseAction* pAction)
void ScXMLChangeTrackingImportHelper::SetNewCell(const ScMyContentAction* pAction)
{
ScChangeAction* pChangeAction = pTrack->GetAction(pAction->nActionNumber);
- if (pChangeAction)
+ if (!pChangeAction)
+ return;
+
+ assert(dynamic_cast<ScChangeActionContent*>(pChangeAction));
+ ScChangeActionContent* pChangeActionContent = static_cast<ScChangeActionContent*>(pChangeAction);
+ if (!(pChangeActionContent->IsTopContent() && !pChangeActionContent->IsDeletedIn()))
+ return;
+
+ sal_Int32 nCol, nRow, nTab, nCol2, nRow2, nTab2;
+ pAction->aBigRange.GetVars(nCol, nRow, nTab, nCol2, nRow2, nTab2);
+ if ((nCol >= 0) && (nCol <= pDoc->MaxCol()) &&
+ (nRow >= 0) && (nRow <= pDoc->MaxRow()) &&
+ (nTab >= 0) && (nTab <= MAXTAB))
{
- assert(dynamic_cast<ScChangeActionContent*>(pChangeAction));
- ScChangeActionContent* pChangeActionContent = static_cast<ScChangeActionContent*>(pChangeAction);
- if (pChangeActionContent->IsTopContent() && !pChangeActionContent->IsDeletedIn())
+ ScAddress aAddress (static_cast<SCCOL>(nCol),
+ static_cast<SCROW>(nRow),
+ static_cast<SCTAB>(nTab));
+ ScCellValue aCell;
+ aCell.assign(*pDoc, aAddress);
+ if (!aCell.isEmpty())
{
- sal_Int32 nCol, nRow, nTab, nCol2, nRow2, nTab2;
- pAction->aBigRange.GetVars(nCol, nRow, nTab, nCol2, nRow2, nTab2);
- if ((nCol >= 0) && (nCol <= pDoc->MaxCol()) &&
- (nRow >= 0) && (nRow <= pDoc->MaxRow()) &&
- (nTab >= 0) && (nTab <= MAXTAB))
+ ScCellValue aNewCell;
+ if (aCell.meType != CELLTYPE_FORMULA)
{
- ScAddress aAddress (static_cast<SCCOL>(nCol),
- static_cast<SCROW>(nRow),
- static_cast<SCTAB>(nTab));
- ScCellValue aCell;
- aCell.assign(*pDoc, aAddress);
- if (!aCell.isEmpty())
- {
- ScCellValue aNewCell;
- if (aCell.meType != CELLTYPE_FORMULA)
- {
- aNewCell = aCell;
- pChangeActionContent->SetNewCell(aNewCell, pDoc, EMPTY_OUSTRING);
- pChangeActionContent->SetNewValue(aCell, pDoc);
- }
- else
- {
- ScMatrixMode nMatrixFlag = aCell.mpFormula->GetMatrixFlag();
- OUString sFormula;
- // With GRAM_ODFF reference detection is faster on compilation.
- /* FIXME: new cell should be created with a clone
- * of the token array instead. Any reason why this
- * wasn't done? */
- aCell.mpFormula->GetFormula(sFormula, formula::FormulaGrammar::GRAM_ODFF);
-
- // #i87826# [Collaboration] Rejected move destroys formulas
- // FIXME: adjust ScFormulaCell::GetFormula(), so that the right formula string
- // is returned and no further string handling is necessary
- OUString sFormula2;
- if ( nMatrixFlag != ScMatrixMode::NONE )
- {
- sFormula2 = sFormula.copy( 2, sFormula.getLength() - 3 );
- }
- else
- {
- sFormula2 = sFormula.copy( 1 );
- }
-
- aNewCell.meType = CELLTYPE_FORMULA;
- aNewCell.mpFormula = new ScFormulaCell(pDoc, aAddress, sFormula2,formula::FormulaGrammar::GRAM_ODFF, nMatrixFlag);
- if (nMatrixFlag == ScMatrixMode::Formula)
- {
- SCCOL nCols;
- SCROW nRows;
- aCell.mpFormula->GetMatColsRows(nCols, nRows);
- aNewCell.mpFormula->SetMatColsRows(nCols, nRows);
- }
- aNewCell.mpFormula->SetInChangeTrack(true);
- pChangeActionContent->SetNewCell(aNewCell, pDoc, EMPTY_OUSTRING);
- // #i40704# don't overwrite the formula string via SetNewValue()
- }
- }
+ aNewCell = aCell;
+ pChangeActionContent->SetNewCell(aNewCell, pDoc, EMPTY_OUSTRING);
+ pChangeActionContent->SetNewValue(aCell, pDoc);
}
else
{
- OSL_FAIL("wrong cell position");
+ ScMatrixMode nMatrixFlag = aCell.mpFormula->GetMatrixFlag();
+ OUString sFormula;
+ // With GRAM_ODFF reference detection is faster on compilation.
+ /* FIXME: new cell should be created with a clone
+ * of the token array instead. Any reason why this
+ * wasn't done? */
+ aCell.mpFormula->GetFormula(sFormula, formula::FormulaGrammar::GRAM_ODFF);
+
+ // #i87826# [Collaboration] Rejected move destroys formulas
+ // FIXME: adjust ScFormulaCell::GetFormula(), so that the right formula string
+ // is returned and no further string handling is necessary
+ OUString sFormula2;
+ if ( nMatrixFlag != ScMatrixMode::NONE )
+ {
+ sFormula2 = sFormula.copy( 2, sFormula.getLength() - 3 );
+ }
+ else
+ {
+ sFormula2 = sFormula.copy( 1 );
+ }
+
+ aNewCell.meType = CELLTYPE_FORMULA;
+ aNewCell.mpFormula = new ScFormulaCell(pDoc, aAddress, sFormula2,formula::FormulaGrammar::GRAM_ODFF, nMatrixFlag);
+ if (nMatrixFlag == ScMatrixMode::Formula)
+ {
+ SCCOL nCols;
+ SCROW nRows;
+ aCell.mpFormula->GetMatColsRows(nCols, nRows);
+ aNewCell.mpFormula->SetMatColsRows(nCols, nRows);
+ }
+ aNewCell.mpFormula->SetInChangeTrack(true);
+ pChangeActionContent->SetNewCell(aNewCell, pDoc, EMPTY_OUSTRING);
+ // #i40704# don't overwrite the formula string via SetNewValue()
}
}
}
+ else
+ {
+ OSL_FAIL("wrong cell position");
+ }
}
void ScXMLChangeTrackingImportHelper::CreateChangeTrack(ScDocument* pTempDoc)
{
pDoc = pTempDoc;
- if (pDoc)
+ if (!pDoc)
+ return;
+
+ pTrack = new ScChangeTrack(pDoc, aUsers);
+ // old files didn't store nanoseconds, disable until encountered
+ pTrack->SetTimeNanoSeconds( false );
+
+ for (const auto & rAction : aActions)
{
- pTrack = new ScChangeTrack(pDoc, aUsers);
- // old files didn't store nanoseconds, disable until encountered
- pTrack->SetTimeNanoSeconds( false );
+ std::unique_ptr<ScChangeAction> pAction;
- for (const auto & rAction : aActions)
+ switch (rAction->nActionType)
{
- std::unique_ptr<ScChangeAction> pAction;
-
- switch (rAction->nActionType)
+ case SC_CAT_INSERT_COLS:
+ case SC_CAT_INSERT_ROWS:
+ case SC_CAT_INSERT_TABS:
{
- case SC_CAT_INSERT_COLS:
- case SC_CAT_INSERT_ROWS:
- case SC_CAT_INSERT_TABS:
- {
- pAction = CreateInsertAction(static_cast<ScMyInsAction*>(rAction.get()));
- }
- break;
- case SC_CAT_DELETE_COLS:
- case SC_CAT_DELETE_ROWS:
- case SC_CAT_DELETE_TABS:
- {
- ScMyDelAction* pDelAct = static_cast<ScMyDelAction*>(rAction.get());
- pAction = CreateDeleteAction(pDelAct);
- CreateGeneratedActions(pDelAct->aGeneratedList);
- }
- break;
- case SC_CAT_MOVE:
- {
- ScMyMoveAction* pMovAct = static_cast<ScMyMoveAction*>(rAction.get());
- pAction = CreateMoveAction(pMovAct);
- CreateGeneratedActions(pMovAct->aGeneratedList);
- }
- break;
- case SC_CAT_CONTENT:
- {
- pAction = CreateContentAction(static_cast<ScMyContentAction*>(rAction.get()));
- }
- break;
- case SC_CAT_REJECT:
- {
- pAction = CreateRejectionAction(static_cast<ScMyRejAction*>(rAction.get()));
- }
- break;
- default:
- {
- // added to avoid warnings
- }
+ pAction = CreateInsertAction(static_cast<ScMyInsAction*>(rAction.get()));
}
-
- if (pAction)
- pTrack->AppendLoaded(std::move(pAction));
- else
+ break;
+ case SC_CAT_DELETE_COLS:
+ case SC_CAT_DELETE_ROWS:
+ case SC_CAT_DELETE_TABS:
+ {
+ ScMyDelAction* pDelAct = static_cast<ScMyDelAction*>(rAction.get());
+ pAction = CreateDeleteAction(pDelAct);
+ CreateGeneratedActions(pDelAct->aGeneratedList);
+ }
+ break;
+ case SC_CAT_MOVE:
{
- OSL_FAIL("no action");
+ ScMyMoveAction* pMovAct = static_cast<ScMyMoveAction*>(rAction.get());
+ pAction = CreateMoveAction(pMovAct);
+ CreateGeneratedActions(pMovAct->aGeneratedList);
+ }
+ break;
+ case SC_CAT_CONTENT:
+ {
+ pAction = CreateContentAction(static_cast<ScMyContentAction*>(rAction.get()));
+ }
+ break;
+ case SC_CAT_REJECT:
+ {
+ pAction = CreateRejectionAction(static_cast<ScMyRejAction*>(rAction.get()));
+ }
+ break;
+ default:
+ {
+ // added to avoid warnings
}
}
- if (pTrack->GetLast())
- pTrack->SetActionMax(pTrack->GetLast()->GetActionNumber());
- auto aItr = aActions.begin();
- while (aItr != aActions.end())
+ if (pAction)
+ pTrack->AppendLoaded(std::move(pAction));
+ else
{
- SetDependencies(aItr->get());
-
- if ((*aItr)->nActionType == SC_CAT_CONTENT)
- ++aItr;
- else
- aItr = aActions.erase(aItr);
+ OSL_FAIL("no action");
}
+ }
+ if (pTrack->GetLast())
+ pTrack->SetActionMax(pTrack->GetLast()->GetActionNumber());
- for (const auto& rxAction : aActions)
- {
- OSL_ENSURE(rxAction->nActionType == SC_CAT_CONTENT, "wrong action type");
- SetNewCell(static_cast<ScMyContentAction*>(rxAction.get()));
- }
- aActions.clear();
- if (aProtect.hasElements())
- pTrack->SetProtection(aProtect);
- else if (pDoc->GetChangeTrack() && pDoc->GetChangeTrack()->IsProtected())
- pTrack->SetProtection(pDoc->GetChangeTrack()->GetProtection());
+ auto aItr = aActions.begin();
+ while (aItr != aActions.end())
+ {
+ SetDependencies(aItr->get());
- if ( pTrack->GetLast() )
- pTrack->SetLastSavedActionNumber(pTrack->GetLast()->GetActionNumber());
+ if ((*aItr)->nActionType == SC_CAT_CONTENT)
+ ++aItr;
+ else
+ aItr = aActions.erase(aItr);
+ }
- pDoc->SetChangeTrack(std::unique_ptr<ScChangeTrack>(pTrack));
+ for (const auto& rxAction : aActions)
+ {
+ OSL_ENSURE(rxAction->nActionType == SC_CAT_CONTENT, "wrong action type");
+ SetNewCell(static_cast<ScMyContentAction*>(rxAction.get()));
}
+ aActions.clear();
+ if (aProtect.hasElements())
+ pTrack->SetProtection(aProtect);
+ else if (pDoc->GetChangeTrack() && pDoc->GetChangeTrack()->IsProtected())
+ pTrack->SetProtection(pDoc->GetChangeTrack()->GetProtection());
+
+ if ( pTrack->GetLast() )
+ pTrack->SetLastSavedActionNumber(pTrack->GetLast()->GetActionNumber());
+
+ pDoc->SetChangeTrack(std::unique_ptr<ScChangeTrack>(pTrack));
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/xml/XMLConsolidationContext.cxx b/sc/source/filter/xml/XMLConsolidationContext.cxx
index 71dafb482636..e32db595b494 100644
--- a/sc/source/filter/xml/XMLConsolidationContext.cxx
+++ b/sc/source/filter/xml/XMLConsolidationContext.cxx
@@ -37,32 +37,32 @@ ScXMLConsolidationContext::ScXMLConsolidationContext(
bTargetAddr(false)
{
rImport.LockSolarMutex();
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_FUNCTION ):
- eFunction = ScXMLConverter::GetSubTotalFuncFromString( aIter.toString() );
- break;
- case XML_ELEMENT( TABLE, XML_SOURCE_CELL_RANGE_ADDRESSES ):
- sSourceList = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_TARGET_CELL_ADDRESS ):
- {
- sal_Int32 nOffset(0);
- bTargetAddr = ScRangeStringConverter::GetAddressFromString(
- aTargetAddr, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset );
- }
- break;
- case XML_ELEMENT( TABLE, XML_USE_LABEL ):
- sUseLabel = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_LINK_TO_SOURCE_DATA ):
- bLinkToSource = IsXMLToken( aIter, XML_TRUE );
+ case XML_ELEMENT( TABLE, XML_FUNCTION ):
+ eFunction = ScXMLConverter::GetSubTotalFuncFromString( aIter.toString() );
+ break;
+ case XML_ELEMENT( TABLE, XML_SOURCE_CELL_RANGE_ADDRESSES ):
+ sSourceList = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_TARGET_CELL_ADDRESS ):
+ {
+ sal_Int32 nOffset(0);
+ bTargetAddr = ScRangeStringConverter::GetAddressFromString(
+ aTargetAddr, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset );
+ }
break;
- }
+ case XML_ELEMENT( TABLE, XML_USE_LABEL ):
+ sUseLabel = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_LINK_TO_SOURCE_DATA ):
+ bLinkToSource = IsXMLToken( aIter, XML_TRUE );
+ break;
}
}
}
@@ -74,46 +74,46 @@ ScXMLConsolidationContext::~ScXMLConsolidationContext()
void SAL_CALL ScXMLConsolidationContext::endFastElement( sal_Int32 /*nElement*/ )
{
- if (bTargetAddr)
- {
- std::unique_ptr<ScConsolidateParam> pConsParam(new ScConsolidateParam);
- pConsParam->nCol = aTargetAddr.Col();
- pConsParam->nRow = aTargetAddr.Row();
- pConsParam->nTab = aTargetAddr.Tab();
- pConsParam->eFunction = eFunction;
+ if (!bTargetAddr)
+ return;
- sal_uInt16 nCount = static_cast<sal_uInt16>(std::min( ScRangeStringConverter::GetTokenCount( sSourceList ), sal_Int32(0xFFFF) ));
- if( nCount )
+ std::unique_ptr<ScConsolidateParam> pConsParam(new ScConsolidateParam);
+ pConsParam->nCol = aTargetAddr.Col();
+ pConsParam->nRow = aTargetAddr.Row();
+ pConsParam->nTab = aTargetAddr.Tab();
+ pConsParam->eFunction = eFunction;
+
+ sal_uInt16 nCount = static_cast<sal_uInt16>(std::min( ScRangeStringConverter::GetTokenCount( sSourceList ), sal_Int32(0xFFFF) ));
+ if( nCount )
+ {
+ std::unique_ptr<ScArea[]> ppAreas(new ScArea[ nCount ]);
+ sal_Int32 nOffset = 0;
+ sal_uInt16 nIndex;
+ for( nIndex = 0; nIndex < nCount; ++nIndex )
{
- std::unique_ptr<ScArea[]> ppAreas(new ScArea[ nCount ]);
- sal_Int32 nOffset = 0;
- sal_uInt16 nIndex;
- for( nIndex = 0; nIndex < nCount; ++nIndex )
+ if ( !ScRangeStringConverter::GetAreaFromString(
+ ppAreas[ nIndex ], sSourceList, GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ) )
{
- if ( !ScRangeStringConverter::GetAreaFromString(
- ppAreas[ nIndex ], sSourceList, GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ) )
- {
- //! handle error
- }
+ //! handle error
}
-
- pConsParam->SetAreas( std::move(ppAreas), nCount );
}
- pConsParam->bByCol = pConsParam->bByRow = false;
- if( IsXMLToken(sUseLabel, XML_COLUMN ) )
- pConsParam->bByCol = true;
- else if( IsXMLToken( sUseLabel, XML_ROW ) )
- pConsParam->bByRow = true;
- else if( IsXMLToken( sUseLabel, XML_BOTH ) )
- pConsParam->bByCol = pConsParam->bByRow = true;
+ pConsParam->SetAreas( std::move(ppAreas), nCount );
+ }
+
+ pConsParam->bByCol = pConsParam->bByRow = false;
+ if( IsXMLToken(sUseLabel, XML_COLUMN ) )
+ pConsParam->bByCol = true;
+ else if( IsXMLToken( sUseLabel, XML_ROW ) )
+ pConsParam->bByRow = true;
+ else if( IsXMLToken( sUseLabel, XML_BOTH ) )
+ pConsParam->bByCol = pConsParam->bByRow = true;
- pConsParam->bReferenceData = bLinkToSource;
+ pConsParam->bReferenceData = bLinkToSource;
- ScDocument* pDoc = GetScImport().GetDocument();
- if( pDoc )
- pDoc->SetConsolidateDlgData( std::move(pConsParam) );
- }
+ ScDocument* pDoc = GetScImport().GetDocument();
+ if( pDoc )
+ pDoc->SetConsolidateDlgData( std::move(pConsParam) );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/xml/XMLConverter.cxx b/sc/source/filter/xml/XMLConverter.cxx
index 8f288b6b02b9..004479c7a2c6 100644
--- a/sc/source/filter/xml/XMLConverter.cxx
+++ b/sc/source/filter/xml/XMLConverter.cxx
@@ -543,69 +543,70 @@ void ScXMLConditionHelper::parseCondition(
const sal_Unicode* pcBegin = rAttribute.getStr();
const sal_Unicode* pcString = pcBegin + nStartIndex;
const sal_Unicode* pcEnd = pcBegin + rAttribute.getLength();
- if( const ScXMLConditionInfo* pCondInfo = lclGetConditionInfo( pcString, pcEnd ) )
+ const ScXMLConditionInfo* pCondInfo = lclGetConditionInfo( pcString, pcEnd );
+ if( !pCondInfo )
+ return;
+
+ // insert default values into parse result (may be changed below)
+ rParseResult.meValidation = pCondInfo->meValidation;
+ rParseResult.meOperator = pCondInfo->meOperator;
+ // continue parsing dependent on token type
+ switch( pCondInfo->meType )
{
- // insert default values into parse result (may be changed below)
- rParseResult.meValidation = pCondInfo->meValidation;
- rParseResult.meOperator = pCondInfo->meOperator;
- // continue parsing dependent on token type
- switch( pCondInfo->meType )
- {
- case XML_COND_TYPE_KEYWORD:
- // nothing specific has to follow, success
- rParseResult.meToken = pCondInfo->meToken;
- break;
+ case XML_COND_TYPE_KEYWORD:
+ // nothing specific has to follow, success
+ rParseResult.meToken = pCondInfo->meToken;
+ break;
- case XML_COND_TYPE_COMPARISON:
- // format is <condition>()<operator><expression>
- if( lclSkipEmptyParentheses( pcString, pcEnd ) )
+ case XML_COND_TYPE_COMPARISON:
+ // format is <condition>()<operator><expression>
+ if( lclSkipEmptyParentheses( pcString, pcEnd ) )
+ {
+ rParseResult.meOperator = lclGetConditionOperator( pcString, pcEnd );
+ if( rParseResult.meOperator != sheet::ConditionOperator_NONE )
{
- rParseResult.meOperator = lclGetConditionOperator( pcString, pcEnd );
- if( rParseResult.meOperator != sheet::ConditionOperator_NONE )
+ lclSkipWhitespace( pcString, pcEnd );
+ if( pcString < pcEnd )
{
- lclSkipWhitespace( pcString, pcEnd );
- if( pcString < pcEnd )
- {
- rParseResult.meToken = pCondInfo->meToken;
- // comparison must be at end of attribute, remaining text is the formula
- rParseResult.maOperand1 = OUString( pcString, static_cast< sal_Int32 >( pcEnd - pcString ) );
- }
+ rParseResult.meToken = pCondInfo->meToken;
+ // comparison must be at end of attribute, remaining text is the formula
+ rParseResult.maOperand1 = OUString( pcString, static_cast< sal_Int32 >( pcEnd - pcString ) );
}
}
- break;
+ }
+ break;
+
+ case XML_COND_TYPE_FUNCTION0:
+ // format is <condition>()
+ if( lclSkipEmptyParentheses( pcString, pcEnd ) )
+ rParseResult.meToken = pCondInfo->meToken;
+ break;
- case XML_COND_TYPE_FUNCTION0:
- // format is <condition>()
- if( lclSkipEmptyParentheses( pcString, pcEnd ) )
+ case XML_COND_TYPE_FUNCTION1:
+ // format is <condition>(<expression>)
+ if( (pcString < pcEnd) && (*pcString == '(') )
+ {
+ rParseResult.maOperand1 = getExpression( ++pcString, pcEnd, ')' );
+ if( !rParseResult.maOperand1.isEmpty() )
rParseResult.meToken = pCondInfo->meToken;
- break;
+ }
+ break;
- case XML_COND_TYPE_FUNCTION1:
- // format is <condition>(<expression>)
- if( (pcString < pcEnd) && (*pcString == '(') )
+ case XML_COND_TYPE_FUNCTION2:
+ // format is <condition>(<expression1>,<expression2>)
+ if( (pcString < pcEnd) && (*pcString == '(') )
+ {
+ rParseResult.maOperand1 = getExpression( ++pcString, pcEnd, ',' );
+ if( !rParseResult.maOperand1.isEmpty() )
{
- rParseResult.maOperand1 = getExpression( ++pcString, pcEnd, ')' );
- if( !rParseResult.maOperand1.isEmpty() )
+ rParseResult.maOperand2 = getExpression( pcString, pcEnd, ')' );
+ if( !rParseResult.maOperand2.isEmpty() )
rParseResult.meToken = pCondInfo->meToken;
}
- break;
-
- case XML_COND_TYPE_FUNCTION2:
- // format is <condition>(<expression1>,<expression2>)
- if( (pcString < pcEnd) && (*pcString == '(') )
- {
- rParseResult.maOperand1 = getExpression( ++pcString, pcEnd, ',' );
- if( !rParseResult.maOperand1.isEmpty() )
- {
- rParseResult.maOperand2 = getExpression( pcString, pcEnd, ')' );
- if( !rParseResult.maOperand2.isEmpty() )
- rParseResult.meToken = pCondInfo->meToken;
- }
- }
- break;
- }
- rParseResult.mnEndIndex = static_cast< sal_Int32 >( pcString - pcBegin );
+ }
+ break;
}
+ rParseResult.mnEndIndex = static_cast< sal_Int32 >( pcString - pcBegin );
}
OUString ScXMLConditionHelper::getExpression( const sal_Unicode*& rpcString, const sal_Unicode* pcEnd, sal_Unicode cEndChar )
diff --git a/sc/source/filter/xml/XMLDDELinksContext.cxx b/sc/source/filter/xml/XMLDDELinksContext.cxx
index 592197e5d39d..7bbf78d60fe2 100644
--- a/sc/source/filter/xml/XMLDDELinksContext.cxx
+++ b/sc/source/filter/xml/XMLDDELinksContext.cxx
@@ -126,51 +126,51 @@ void ScXMLDDELinkContext::AddRowsToTable(const sal_Int32 nRowsP)
void SAL_CALL ScXMLDDELinkContext::endFastElement( sal_Int32 /*nElement*/ )
{
ScDocument* pDoc = GetScImport().GetDocument();
- if (nPosition > -1 && nColumns && nRows)
+ if (!(nPosition > -1 && nColumns && nRows))
+ return;
+
+ bool bSizeMatch = (static_cast<size_t>(nColumns * nRows) == aDDELinkTable.size());
+ OSL_ENSURE( bSizeMatch, "ScXMLDDELinkContext::EndElement: matrix dimension doesn't match cells count");
+ // Excel writes bad ODF in that it does not write the
+ // table:number-columns-repeated attribute of the
+ // <table:table-column> element, but apparently uses the number of
+ // <table:table-cell> elements within a <table:table-row> element to
+ // determine the column count instead. Be lenient ...
+ if (!bSizeMatch && nColumns == 1)
{
- bool bSizeMatch = (static_cast<size_t>(nColumns * nRows) == aDDELinkTable.size());
- OSL_ENSURE( bSizeMatch, "ScXMLDDELinkContext::EndElement: matrix dimension doesn't match cells count");
- // Excel writes bad ODF in that it does not write the
- // table:number-columns-repeated attribute of the
- // <table:table-column> element, but apparently uses the number of
- // <table:table-cell> elements within a <table:table-row> element to
- // determine the column count instead. Be lenient ...
- if (!bSizeMatch && nColumns == 1)
- {
- nColumns = aDDELinkTable.size() / nRows;
- OSL_ENSURE( static_cast<size_t>(nColumns * nRows) == aDDELinkTable.size(),
- "ScXMLDDELinkContext::EndElement: adapted matrix dimension doesn't match either");
- }
- ScMatrixRef pMatrix = new ScMatrix(static_cast<SCSIZE>(nColumns), static_cast<SCSIZE>(nRows), 0.0);
- sal_Int32 nCol(0);
- sal_Int32 nRow(-1);
- sal_Int32 nIndex(0);
+ nColumns = aDDELinkTable.size() / nRows;
+ OSL_ENSURE( static_cast<size_t>(nColumns * nRows) == aDDELinkTable.size(),
+ "ScXMLDDELinkContext::EndElement: adapted matrix dimension doesn't match either");
+ }
+ ScMatrixRef pMatrix = new ScMatrix(static_cast<SCSIZE>(nColumns), static_cast<SCSIZE>(nRows), 0.0);
+ sal_Int32 nCol(0);
+ sal_Int32 nRow(-1);
+ sal_Int32 nIndex(0);
- svl::SharedStringPool& rPool = pDoc->GetSharedStringPool();
- for (const auto& rDDELinkCell : aDDELinkTable)
+ svl::SharedStringPool& rPool = pDoc->GetSharedStringPool();
+ for (const auto& rDDELinkCell : aDDELinkTable)
+ {
+ if (nIndex % nColumns == 0)
{
- if (nIndex % nColumns == 0)
- {
- ++nRow;
- nCol = 0;
- }
- else
- ++nCol;
-
- SCSIZE nScCol( static_cast< SCSIZE >( nCol ) );
- SCSIZE nScRow( static_cast< SCSIZE >( nRow ) );
- if( rDDELinkCell.bEmpty )
- pMatrix->PutEmpty( nScCol, nScRow );
- else if( rDDELinkCell.bString )
- pMatrix->PutString(rPool.intern(rDDELinkCell.sValue), nScCol, nScRow);
- else
- pMatrix->PutDouble( rDDELinkCell.fValue, nScCol, nScRow );
-
- ++nIndex;
+ ++nRow;
+ nCol = 0;
}
+ else
+ ++nCol;
+
+ SCSIZE nScCol( static_cast< SCSIZE >( nCol ) );
+ SCSIZE nScRow( static_cast< SCSIZE >( nRow ) );
+ if( rDDELinkCell.bEmpty )
+ pMatrix->PutEmpty( nScCol, nScRow );
+ else if( rDDELinkCell.bString )
+ pMatrix->PutString(rPool.intern(rDDELinkCell.sValue), nScCol, nScRow);
+ else
+ pMatrix->PutDouble( rDDELinkCell.fValue, nScCol, nScRow );
- GetScImport().GetDocument()->SetDdeLinkResultMatrix( static_cast< sal_uInt16 >( nPosition ), pMatrix );
+ ++nIndex;
}
+
+ GetScImport().GetDocument()->SetDdeLinkResultMatrix( static_cast< sal_uInt16 >( nPosition ), pMatrix );
}
ScXMLDDESourceContext::ScXMLDDESourceContext( ScXMLImport& rImport,
@@ -179,30 +179,30 @@ ScXMLDDESourceContext::ScXMLDDESourceContext( ScXMLImport& rImport,
ScXMLImportContext( rImport ),
pDDELink(pTempDDELink)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( OFFICE, XML_DDE_APPLICATION ):
- pDDELink->SetApplication(aIter.toString());
- break;
- case XML_ELEMENT( OFFICE, XML_DDE_TOPIC ):
- pDDELink->SetTopic(aIter.toString());
- break;
- case XML_ELEMENT( OFFICE, XML_DDE_ITEM ):
- pDDELink->SetItem(aIter.toString());
- break;
- case XML_ELEMENT( TABLE, XML_CONVERSION_MODE ):
- if (IsXMLToken(aIter, XML_INTO_ENGLISH_NUMBER))
- pDDELink->SetMode(SC_DDE_ENGLISH);
- else if (IsXMLToken(aIter, XML_KEEP_TEXT))
- pDDELink->SetMode(SC_DDE_TEXT);
- else
- pDDELink->SetMode(SC_DDE_DEFAULT);
- break;
- }
+ case XML_ELEMENT( OFFICE, XML_DDE_APPLICATION ):
+ pDDELink->SetApplication(aIter.toString());
+ break;
+ case XML_ELEMENT( OFFICE, XML_DDE_TOPIC ):
+ pDDELink->SetTopic(aIter.toString());
+ break;
+ case XML_ELEMENT( OFFICE, XML_DDE_ITEM ):
+ pDDELink->SetItem(aIter.toString());
+ break;
+ case XML_ELEMENT( TABLE, XML_CONVERSION_MODE ):
+ if (IsXMLToken(aIter, XML_INTO_ENGLISH_NUMBER))
+ pDDELink->SetMode(SC_DDE_ENGLISH);
+ else if (IsXMLToken(aIter, XML_KEEP_TEXT))
+ pDDELink->SetMode(SC_DDE_TEXT);
+ else
+ pDDELink->SetMode(SC_DDE_DEFAULT);
+ break;
}
}
}
@@ -319,32 +319,32 @@ ScXMLDDECellContext::ScXMLDDECellContext( ScXMLImport& rImport,
bEmpty(true),
pDDELink(pTempDDELink)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( OFFICE, XML_VALUE_TYPE ):
- if (IsXMLToken(aIter, XML_STRING))
- bString = true;
- else
- bString = false;
- break;
- case XML_ELEMENT( OFFICE, XML_STRING_VALUE ):
- sValue = aIter.toString();
- bEmpty = false;
- bString2 = true;
- break;
- case XML_ELEMENT( OFFICE, XML_VALUE ):
- fValue = aIter.toDouble();
- bEmpty = false;
- bString2 = false;
- break;
- case XML_ELEMENT( TABLE, XML_NUMBER_COLUMNS_REPEATED ):
- nCells = aIter.toInt32();
- break;
- }
+ case XML_ELEMENT( OFFICE, XML_VALUE_TYPE ):
+ if (IsXMLToken(aIter, XML_STRING))
+ bString = true;
+ else
+ bString = false;
+ break;
+ case XML_ELEMENT( OFFICE, XML_STRING_VALUE ):
+ sValue = aIter.toString();
+ bEmpty = false;
+ bString2 = true;
+ break;
+ case XML_ELEMENT( OFFICE, XML_VALUE ):
+ fValue = aIter.toDouble();
+ bEmpty = false;
+ bString2 = false;
+ break;
+ case XML_ELEMENT( TABLE, XML_NUMBER_COLUMNS_REPEATED ):
+ nCells = aIter.toInt32();
+ break;
}
}
}
diff --git a/sc/source/filter/xml/XMLDetectiveContext.cxx b/sc/source/filter/xml/XMLDetectiveContext.cxx
index 3d62ce7076c9..90de30f44c77 100644
--- a/sc/source/filter/xml/XMLDetectiveContext.cxx
+++ b/sc/source/filter/xml/XMLDetectiveContext.cxx
@@ -97,32 +97,32 @@ ScXMLDetectiveHighlightedContext::ScXMLDetectiveHighlightedContext(
aDetectiveObj(),
bValid( false )
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_CELL_RANGE_ADDRESS ):
{
- case XML_ELEMENT( TABLE, XML_CELL_RANGE_ADDRESS ):
- {
- sal_Int32 nOffset(0);
- ScXMLImport::MutexGuard aGuard(GetScImport());
- bValid = ScRangeStringConverter::GetRangeFromString( aDetectiveObj.aSourceRange, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset );
- }
- break;
- case XML_ELEMENT( TABLE, XML_DIRECTION ):
- aDetectiveObj.eObjType = ScXMLConverter::GetDetObjTypeFromString( aIter.toString() );
- break;
- case XML_ELEMENT( TABLE, XML_CONTAINS_ERROR ):
- aDetectiveObj.bHasError = IsXMLToken(aIter, XML_TRUE);
- break;
- case XML_ELEMENT( TABLE, XML_MARKED_INVALID ):
- {
- if (IsXMLToken(aIter, XML_TRUE))
- aDetectiveObj.eObjType = SC_DETOBJ_CIRCLE;
- }
- break;
+ sal_Int32 nOffset(0);
+ ScXMLImport::MutexGuard aGuard(GetScImport());
+ bValid = ScRangeStringConverter::GetRangeFromString( aDetectiveObj.aSourceRange, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset );
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_DIRECTION ):
+ aDetectiveObj.eObjType = ScXMLConverter::GetDetObjTypeFromString( aIter.toString() );
+ break;
+ case XML_ELEMENT( TABLE, XML_CONTAINS_ERROR ):
+ aDetectiveObj.bHasError = IsXMLToken(aIter, XML_TRUE);
+ break;
+ case XML_ELEMENT( TABLE, XML_MARKED_INVALID ):
+ {
+ if (IsXMLToken(aIter, XML_TRUE))
+ aDetectiveObj.eObjType = SC_DETOBJ_CIRCLE;
}
+ break;
}
}
}
diff --git a/sc/source/filter/xml/XMLExportDDELinks.cxx b/sc/source/filter/xml/XMLExportDDELinks.cxx
index 9d2ef95b64bc..c5999a7e2294 100644
--- a/sc/source/filter/xml/XMLExportDDELinks.cxx
+++ b/sc/source/filter/xml/XMLExportDDELinks.cxx
@@ -116,46 +116,46 @@ void ScXMLExportDDELinks::WriteTable(const sal_Int32 nPos)
void ScXMLExportDDELinks::WriteDDELinks(const uno::Reference<sheet::XSpreadsheetDocument>& xSpreadDoc)
{
uno::Reference <beans::XPropertySet> xPropertySet (xSpreadDoc, uno::UNO_QUERY);
- if (xPropertySet.is())
+ if (!xPropertySet.is())
+ return;
+
+ uno::Reference<container::XIndexAccess> xIndex(xPropertySet->getPropertyValue(SC_UNO_DDELINKS), uno::UNO_QUERY);
+ if (!xIndex.is())
+ return;
+
+ sal_Int32 nCount = xIndex->getCount();
+ if (!nCount)
+ return;
+
+ SvXMLElementExport aElemDDEs(rExport, XML_NAMESPACE_TABLE, XML_DDE_LINKS, true, true);
+ for (sal_Int32 nDDELink = 0; nDDELink < nCount; ++nDDELink)
{
- uno::Reference<container::XIndexAccess> xIndex(xPropertySet->getPropertyValue(SC_UNO_DDELINKS), uno::UNO_QUERY);
- if (xIndex.is())
+ uno::Reference<sheet::XDDELink> xDDELink(xIndex->getByIndex(nDDELink), uno::UNO_QUERY);
+ if (xDDELink.is())
{
- sal_Int32 nCount = xIndex->getCount();
- if (nCount)
+ SvXMLElementExport aElemDDE(rExport, XML_NAMESPACE_TABLE, XML_DDE_LINK, true, true);
{
- SvXMLElementExport aElemDDEs(rExport, XML_NAMESPACE_TABLE, XML_DDE_LINKS, true, true);
- for (sal_Int32 nDDELink = 0; nDDELink < nCount; ++nDDELink)
+ rExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_DDE_APPLICATION, xDDELink->getApplication());
+ rExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_DDE_TOPIC, xDDELink->getTopic());
+ rExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_DDE_ITEM, xDDELink->getItem());
+ rExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_AUTOMATIC_UPDATE, XML_TRUE);
+ sal_uInt8 nMode;
+ if (rExport.GetDocument() &&
+ rExport.GetDocument()->GetDdeLinkMode(nDDELink, nMode))
{
- uno::Reference<sheet::XDDELink> xDDELink(xIndex->getByIndex(nDDELink), uno::UNO_QUERY);
- if (xDDELink.is())
+ switch (nMode)
{
- SvXMLElementExport aElemDDE(rExport, XML_NAMESPACE_TABLE, XML_DDE_LINK, true, true);
- {
- rExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_DDE_APPLICATION, xDDELink->getApplication());
- rExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_DDE_TOPIC, xDDELink->getTopic());
- rExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_DDE_ITEM, xDDELink->getItem());
- rExport.AddAttribute(XML_NAMESPACE_OFFICE, XML_AUTOMATIC_UPDATE, XML_TRUE);
- sal_uInt8 nMode;
- if (rExport.GetDocument() &&
- rExport.GetDocument()->GetDdeLinkMode(nDDELink, nMode))
- {
- switch (nMode)
- {
- case SC_DDE_ENGLISH :
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CONVERSION_MODE, XML_INTO_ENGLISH_NUMBER);
- break;
- case SC_DDE_TEXT :
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CONVERSION_MODE, XML_KEEP_TEXT);
- break;
- }
- }
- SvXMLElementExport(rExport, XML_NAMESPACE_OFFICE, XML_DDE_SOURCE, true, true);
- }
- WriteTable(nDDELink);
+ case SC_DDE_ENGLISH :
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CONVERSION_MODE, XML_INTO_ENGLISH_NUMBER);
+ break;
+ case SC_DDE_TEXT :
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CONVERSION_MODE, XML_KEEP_TEXT);
+ break;
}
}
+ SvXMLElementExport(rExport, XML_NAMESPACE_OFFICE, XML_DDE_SOURCE, true, true);
}
+ WriteTable(nDDELink);
}
}
}
diff --git a/sc/source/filter/xml/XMLExportDataPilot.cxx b/sc/source/filter/xml/XMLExportDataPilot.cxx
index 185e43efdaca..8b5e169bd7bf 100644
--- a/sc/source/filter/xml/XMLExportDataPilot.cxx
+++ b/sc/source/filter/xml/XMLExportDataPilot.cxx
@@ -144,125 +144,125 @@ void ScXMLExportDataPilot::WriteDPCondition(const ScQueryEntry& aQueryEntry, boo
void ScXMLExportDataPilot::WriteDPFilter(const ScQueryParam& aQueryParam)
{
SCSIZE nQueryEntryCount = aQueryParam.GetEntryCount();
- if (nQueryEntryCount > 0)
- {
- bool bAnd(false);
- bool bOr(false);
- bool bHasEntries(true);
- SCSIZE nEntries(0);
- SCSIZE j;
+ if (nQueryEntryCount <= 0)
+ return;
- for ( j = 0; (j < nQueryEntryCount) && bHasEntries; ++j)
+ bool bAnd(false);
+ bool bOr(false);
+ bool bHasEntries(true);
+ SCSIZE nEntries(0);
+ SCSIZE j;
+
+ for ( j = 0; (j < nQueryEntryCount) && bHasEntries; ++j)
+ {
+ ScQueryEntry aEntry = aQueryParam.GetEntry(j);
+ if (aEntry.bDoQuery)
{
- ScQueryEntry aEntry = aQueryParam.GetEntry(j);
- if (aEntry.bDoQuery)
+ if (nEntries > 0)
{
- if (nEntries > 0)
- {
- if (aEntry.eConnect == SC_AND)
- bAnd = true;
- else
- bOr = true;
- }
- ++nEntries;
+ if (aEntry.eConnect == SC_AND)
+ bAnd = true;
+ else
+ bOr = true;
}
- else
- bHasEntries = false;
+ ++nEntries;
}
- nQueryEntryCount = nEntries;
- if (nQueryEntryCount)
+ else
+ bHasEntries = false;
+ }
+ nQueryEntryCount = nEntries;
+ if (!nQueryEntryCount)
+ return;
+
+ if(!((aQueryParam.nCol1 == aQueryParam.nCol2) && (aQueryParam.nRow1 == aQueryParam.nRow2) &&
+ (static_cast<SCCOLROW>(aQueryParam.nCol1) == static_cast<SCCOLROW>(aQueryParam.nRow1)) &&
+ (aQueryParam.nCol1 == 0) && (aQueryParam.nTab == SCTAB_MAX)))
+ {
+ ScRange aConditionRange(aQueryParam.nCol1, aQueryParam.nRow1, aQueryParam.nTab,
+ aQueryParam.nCol2, aQueryParam.nRow2, aQueryParam.nTab);
+ OUString sConditionRange;
+ ScRangeStringConverter::GetStringFromRange( sConditionRange, aConditionRange, pDoc, ::formula::FormulaGrammar::CONV_OOO );
+ if (!sConditionRange.isEmpty())
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CONDITION_SOURCE_RANGE_ADDRESS, sConditionRange);
+ }
+ if (!aQueryParam.bDuplicate)
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY_DUPLICATES, XML_FALSE);
+ SvXMLElementExport aElemDPF(rExport, XML_NAMESPACE_TABLE, XML_FILTER, true, true);
+ rExport.CheckAttrList();
+ if (nQueryEntryCount == 1)
+ {
+ WriteDPCondition(aQueryParam.GetEntry(0), aQueryParam.bCaseSens, aQueryParam.eSearchType);
+ }
+ else if (bOr && !bAnd)
+ {
+ SvXMLElementExport aElemOr(rExport, XML_NAMESPACE_TABLE, XML_FILTER_OR, true, true);
+ for (j = 0; j < nQueryEntryCount; ++j)
{
- if(!((aQueryParam.nCol1 == aQueryParam.nCol2) && (aQueryParam.nRow1 == aQueryParam.nRow2) &&
- (static_cast<SCCOLROW>(aQueryParam.nCol1) == static_cast<SCCOLROW>(aQueryParam.nRow1)) &&
- (aQueryParam.nCol1 == 0) && (aQueryParam.nTab == SCTAB_MAX)))
- {
- ScRange aConditionRange(aQueryParam.nCol1, aQueryParam.nRow1, aQueryParam.nTab,
- aQueryParam.nCol2, aQueryParam.nRow2, aQueryParam.nTab);
- OUString sConditionRange;
- ScRangeStringConverter::GetStringFromRange( sConditionRange, aConditionRange, pDoc, ::formula::FormulaGrammar::CONV_OOO );
- if (!sConditionRange.isEmpty())
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CONDITION_SOURCE_RANGE_ADDRESS, sConditionRange);
- }
- if (!aQueryParam.bDuplicate)
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY_DUPLICATES, XML_FALSE);
- SvXMLElementExport aElemDPF(rExport, XML_NAMESPACE_TABLE, XML_FILTER, true, true);
- rExport.CheckAttrList();
- if (nQueryEntryCount == 1)
- {
- WriteDPCondition(aQueryParam.GetEntry(0), aQueryParam.bCaseSens, aQueryParam.eSearchType);
- }
- else if (bOr && !bAnd)
- {
- SvXMLElementExport aElemOr(rExport, XML_NAMESPACE_TABLE, XML_FILTER_OR, true, true);
- for (j = 0; j < nQueryEntryCount; ++j)
- {
- WriteDPCondition(aQueryParam.GetEntry(j), aQueryParam.bCaseSens, aQueryParam.eSearchType);
- }
- }
- else if (bAnd && !bOr)
- {
- SvXMLElementExport aElemAnd(rExport, XML_NAMESPACE_TABLE, XML_FILTER_AND, true, true);
- for (j = 0; j < nQueryEntryCount; ++j)
- {
- WriteDPCondition(aQueryParam.GetEntry(j), aQueryParam.bCaseSens, aQueryParam.eSearchType);
- }
- }
- else
+ WriteDPCondition(aQueryParam.GetEntry(j), aQueryParam.bCaseSens, aQueryParam.eSearchType);
+ }
+ }
+ else if (bAnd && !bOr)
+ {
+ SvXMLElementExport aElemAnd(rExport, XML_NAMESPACE_TABLE, XML_FILTER_AND, true, true);
+ for (j = 0; j < nQueryEntryCount; ++j)
+ {
+ WriteDPCondition(aQueryParam.GetEntry(j), aQueryParam.bCaseSens, aQueryParam.eSearchType);
+ }
+ }
+ else
+ {
+ SvXMLElementExport aElemC(rExport, XML_NAMESPACE_TABLE, XML_FILTER_OR, true, true);
+ ScQueryEntry aPrevFilterField(aQueryParam.GetEntry(0));
+ ScQueryConnect aConnection = aQueryParam.GetEntry(1).eConnect;
+ bool bOpenAndElement;
+ OUString aName(rExport.GetNamespaceMap().GetQNameByKey(XML_NAMESPACE_TABLE, GetXMLToken(XML_FILTER_AND)));
+ if (aConnection == SC_AND)
+ {
+ rExport.StartElement( aName, true );
+ bOpenAndElement = true;
+ }
+ else
+ bOpenAndElement = false;
+ for (j = 1; j < nQueryEntryCount; ++j)
+ {
+ if (aConnection != aQueryParam.GetEntry(j).eConnect)
{
- SvXMLElementExport aElemC(rExport, XML_NAMESPACE_TABLE, XML_FILTER_OR, true, true);
- ScQueryEntry aPrevFilterField(aQueryParam.GetEntry(0));
- ScQueryConnect aConnection = aQueryParam.GetEntry(1).eConnect;
- bool bOpenAndElement;
- OUString aName(rExport.GetNamespaceMap().GetQNameByKey(XML_NAMESPACE_TABLE, GetXMLToken(XML_FILTER_AND)));
- if (aConnection == SC_AND)
+ aConnection = aQueryParam.GetEntry(j).eConnect;
+ if (aQueryParam.GetEntry(j).eConnect == SC_AND)
{
rExport.StartElement( aName, true );
bOpenAndElement = true;
+ WriteDPCondition(aPrevFilterField, aQueryParam.bCaseSens, aQueryParam.eSearchType);
+ aPrevFilterField = aQueryParam.GetEntry(j);
+ if (j == nQueryEntryCount - 1)
+ {
+ WriteDPCondition(aPrevFilterField, aQueryParam.bCaseSens, aQueryParam.eSearchType);
+ rExport.EndElement(aName, true);
+ bOpenAndElement = false;
+ }
}
else
- bOpenAndElement = false;
- for (j = 1; j < nQueryEntryCount; ++j)
{
- if (aConnection != aQueryParam.GetEntry(j).eConnect)
+ WriteDPCondition(aPrevFilterField, aQueryParam.bCaseSens, aQueryParam.eSearchType);
+ aPrevFilterField = aQueryParam.GetEntry(j);
+ if (bOpenAndElement)
{
- aConnection = aQueryParam.GetEntry(j).eConnect;
- if (aQueryParam.GetEntry(j).eConnect == SC_AND)
- {
- rExport.StartElement( aName, true );
- bOpenAndElement = true;
- WriteDPCondition(aPrevFilterField, aQueryParam.bCaseSens, aQueryParam.eSearchType);
- aPrevFilterField = aQueryParam.GetEntry(j);
- if (j == nQueryEntryCount - 1)
- {
- WriteDPCondition(aPrevFilterField, aQueryParam.bCaseSens, aQueryParam.eSearchType);
- rExport.EndElement(aName, true);
- bOpenAndElement = false;
- }
- }
- else
- {
- WriteDPCondition(aPrevFilterField, aQueryParam.bCaseSens, aQueryParam.eSearchType);
- aPrevFilterField = aQueryParam.GetEntry(j);
- if (bOpenAndElement)
- {
- rExport.EndElement(aName, true);
- bOpenAndElement = false;
- }
- if (j == nQueryEntryCount - 1)
- {
- WriteDPCondition(aPrevFilterField, aQueryParam.bCaseSens, aQueryParam.eSearchType);
- }
- }
+ rExport.EndElement(aName, true);
+ bOpenAndElement = false;
}
- else
+ if (j == nQueryEntryCount - 1)
{
WriteDPCondition(aPrevFilterField, aQueryParam.bCaseSens, aQueryParam.eSearchType);
- aPrevFilterField = aQueryParam.GetEntry(j);
- if (j == nQueryEntryCount - 1)
- WriteDPCondition(aPrevFilterField, aQueryParam.bCaseSens, aQueryParam.eSearchType);
}
}
}
+ else
+ {
+ WriteDPCondition(aPrevFilterField, aQueryParam.bCaseSens, aQueryParam.eSearchType);
+ aPrevFilterField = aQueryParam.GetEntry(j);
+ if (j == nQueryEntryCount - 1)
+ WriteDPCondition(aPrevFilterField, aQueryParam.bCaseSens, aQueryParam.eSearchType);
+ }
}
}
}
@@ -337,95 +337,95 @@ void ScXMLExportDataPilot::WriteFieldReference(const ScDPSaveDimension* pDim)
void ScXMLExportDataPilot::WriteSortInfo(const ScDPSaveDimension* pDim)
{
const sheet::DataPilotFieldSortInfo* pSortInfo = pDim->GetSortInfo();
- if (pSortInfo)
- {
- if (pSortInfo->IsAscending)
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ORDER, XML_ASCENDING);
- else
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ORDER, XML_DESCENDING);
+ if (!pSortInfo)
+ return;
- OUString sValueStr;
- switch (pSortInfo->Mode)
- {
- case sheet::DataPilotFieldSortMode::NONE:
- sValueStr = GetXMLToken(XML_NONE);
- break;
- case sheet::DataPilotFieldSortMode::MANUAL:
- sValueStr = GetXMLToken(XML_MANUAL);
- break;
- case sheet::DataPilotFieldSortMode::NAME:
- sValueStr = GetXMLToken(XML_NAME);
- break;
- case sheet::DataPilotFieldSortMode::DATA:
- sValueStr = GetXMLToken(XML_DATA);
- if (!pSortInfo->Field.isEmpty())
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DATA_FIELD, pSortInfo->Field);
- break;
- }
- if (!sValueStr.isEmpty())
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_SORT_MODE, sValueStr);
- SvXMLElementExport aElemDPLSI(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_SORT_INFO, true, true);
+ if (pSortInfo->IsAscending)
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ORDER, XML_ASCENDING);
+ else
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ORDER, XML_DESCENDING);
+
+ OUString sValueStr;
+ switch (pSortInfo->Mode)
+ {
+ case sheet::DataPilotFieldSortMode::NONE:
+ sValueStr = GetXMLToken(XML_NONE);
+ break;
+ case sheet::DataPilotFieldSortMode::MANUAL:
+ sValueStr = GetXMLToken(XML_MANUAL);
+ break;
+ case sheet::DataPilotFieldSortMode::NAME:
+ sValueStr = GetXMLToken(XML_NAME);
+ break;
+ case sheet::DataPilotFieldSortMode::DATA:
+ sValueStr = GetXMLToken(XML_DATA);
+ if (!pSortInfo->Field.isEmpty())
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DATA_FIELD, pSortInfo->Field);
+ break;
}
+ if (!sValueStr.isEmpty())
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_SORT_MODE, sValueStr);
+ SvXMLElementExport aElemDPLSI(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_SORT_INFO, true, true);
}
void ScXMLExportDataPilot::WriteAutoShowInfo(const ScDPSaveDimension* pDim)
{
const sheet::DataPilotFieldAutoShowInfo* pAutoInfo = pDim->GetAutoShowInfo();
- if (pAutoInfo)
- {
- if (pAutoInfo->IsEnabled)
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ENABLED, XML_TRUE);
- else
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ENABLED, XML_FALSE);
+ if (!pAutoInfo)
+ return;
- OUString sValueStr;
- switch (pAutoInfo->ShowItemsMode)
- {
- case sheet::DataPilotFieldShowItemsMode::FROM_TOP:
- sValueStr = GetXMLToken(XML_FROM_TOP);
- break;
- case sheet::DataPilotFieldShowItemsMode::FROM_BOTTOM:
- sValueStr = GetXMLToken(XML_FROM_BOTTOM);
- break;
- }
- if (!sValueStr.isEmpty())
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY_MEMBER_MODE, sValueStr);
+ if (pAutoInfo->IsEnabled)
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ENABLED, XML_TRUE);
+ else
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ENABLED, XML_FALSE);
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_MEMBER_COUNT, OUString::number(pAutoInfo->ItemCount));
+ OUString sValueStr;
+ switch (pAutoInfo->ShowItemsMode)
+ {
+ case sheet::DataPilotFieldShowItemsMode::FROM_TOP:
+ sValueStr = GetXMLToken(XML_FROM_TOP);
+ break;
+ case sheet::DataPilotFieldShowItemsMode::FROM_BOTTOM:
+ sValueStr = GetXMLToken(XML_FROM_BOTTOM);
+ break;
+ }
+ if (!sValueStr.isEmpty())
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY_MEMBER_MODE, sValueStr);
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DATA_FIELD, pAutoInfo->DataField);
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_MEMBER_COUNT, OUString::number(pAutoInfo->ItemCount));
- SvXMLElementExport aElemDPLAI(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_DISPLAY_INFO, true, true);
- }
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DATA_FIELD, pAutoInfo->DataField);
+
+ SvXMLElementExport aElemDPLAI(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_DISPLAY_INFO, true, true);
}
void ScXMLExportDataPilot::WriteLayoutInfo(const ScDPSaveDimension* pDim)
{
const sheet::DataPilotFieldLayoutInfo* pLayoutInfo = pDim->GetLayoutInfo();
- if (pLayoutInfo)
- {
- if (pLayoutInfo->AddEmptyLines)
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ADD_EMPTY_LINES, XML_TRUE);
- else
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ADD_EMPTY_LINES, XML_FALSE);
+ if (!pLayoutInfo)
+ return;
- OUString sValueStr;
- switch (pLayoutInfo->LayoutMode)
- {
- case sheet::DataPilotFieldLayoutMode::TABULAR_LAYOUT:
- sValueStr = GetXMLToken(XML_TABULAR_LAYOUT);
- break;
- case sheet::DataPilotFieldLayoutMode::OUTLINE_SUBTOTALS_TOP:
- sValueStr = GetXMLToken(XML_OUTLINE_SUBTOTALS_TOP);
- break;
- case sheet::DataPilotFieldLayoutMode::OUTLINE_SUBTOTALS_BOTTOM:
- sValueStr = GetXMLToken(XML_OUTLINE_SUBTOTALS_BOTTOM);
- break;
- }
- if (!sValueStr.isEmpty())
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_LAYOUT_MODE, sValueStr);
- SvXMLElementExport aElemDPLLI(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_LAYOUT_INFO, true, true);
+ if (pLayoutInfo->AddEmptyLines)
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ADD_EMPTY_LINES, XML_TRUE);
+ else
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ADD_EMPTY_LINES, XML_FALSE);
+
+ OUString sValueStr;
+ switch (pLayoutInfo->LayoutMode)
+ {
+ case sheet::DataPilotFieldLayoutMode::TABULAR_LAYOUT:
+ sValueStr = GetXMLToken(XML_TABULAR_LAYOUT);
+ break;
+ case sheet::DataPilotFieldLayoutMode::OUTLINE_SUBTOTALS_TOP:
+ sValueStr = GetXMLToken(XML_OUTLINE_SUBTOTALS_TOP);
+ break;
+ case sheet::DataPilotFieldLayoutMode::OUTLINE_SUBTOTALS_BOTTOM:
+ sValueStr = GetXMLToken(XML_OUTLINE_SUBTOTALS_BOTTOM);
+ break;
}
+ if (!sValueStr.isEmpty())
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_LAYOUT_MODE, sValueStr);
+ SvXMLElementExport aElemDPLLI(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_LAYOUT_INFO, true, true);
}
void ScXMLExportDataPilot::WriteSubTotals(const ScDPSaveDimension* pDim)
@@ -436,50 +436,50 @@ void ScXMLExportDataPilot::WriteSubTotals(const ScDPSaveDimension* pDim)
// Export display names only for 1.2 extended or later.
pLayoutName = pDim->GetSubtotalName();
- if (nSubTotalCount > 0)
+ if (nSubTotalCount <= 0)
+ return;
+
+ SvXMLElementExport aElemSTs(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_SUBTOTALS, true, true);
+ rExport.CheckAttrList();
+ for (sal_Int32 nSubTotal = 0; nSubTotal < nSubTotalCount; nSubTotal++)
{
- SvXMLElementExport aElemSTs(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_SUBTOTALS, true, true);
- rExport.CheckAttrList();
- for (sal_Int32 nSubTotal = 0; nSubTotal < nSubTotalCount; nSubTotal++)
- {
- OUString sFunction;
- sal_Int16 nFunc = static_cast<sal_Int16>(pDim->GetSubTotalFunc(nSubTotal));
- ScXMLConverter::GetStringFromFunction( sFunction, nFunc);
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_FUNCTION, sFunction);
- if (pLayoutName && nFunc == sheet::GeneralFunction2::AUTO)
- rExport.AddAttribute(XML_NAMESPACE_TABLE_EXT, XML_DISPLAY_NAME, *pLayoutName);
- SvXMLElementExport aElemST(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_SUBTOTAL, true, true);
- }
+ OUString sFunction;
+ sal_Int16 nFunc = static_cast<sal_Int16>(pDim->GetSubTotalFunc(nSubTotal));
+ ScXMLConverter::GetStringFromFunction( sFunction, nFunc);
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_FUNCTION, sFunction);
+ if (pLayoutName && nFunc == sheet::GeneralFunction2::AUTO)
+ rExport.AddAttribute(XML_NAMESPACE_TABLE_EXT, XML_DISPLAY_NAME, *pLayoutName);
+ SvXMLElementExport aElemST(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_SUBTOTAL, true, true);
}
}
void ScXMLExportDataPilot::WriteMembers(const ScDPSaveDimension* pDim)
{
const ScDPSaveDimension::MemberList &rMembers = pDim->GetMembers();
- if (!rMembers.empty())
- {
- SvXMLElementExport aElemDPMs(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_MEMBERS, true, true);
- rExport.CheckAttrList();
- for (const auto& rpMember : rMembers)
- {
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_NAME, rpMember->GetName());
+ if (rMembers.empty())
+ return;
- if (rExport.getSaneDefaultVersion() & SvtSaveOptions::ODFSVER_EXTENDED)
- {
- // Export display names only for ODF 1.2 extended or later.
- const std::optional<OUString> & pLayoutName = rpMember->GetLayoutName();
- if (pLayoutName)
- rExport.AddAttribute(XML_NAMESPACE_TABLE_EXT, XML_DISPLAY_NAME, *pLayoutName);
- }
+ SvXMLElementExport aElemDPMs(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_MEMBERS, true, true);
+ rExport.CheckAttrList();
+ for (const auto& rpMember : rMembers)
+ {
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_NAME, rpMember->GetName());
- OUStringBuffer sBuffer;
- ::sax::Converter::convertBool(sBuffer, rpMember->GetIsVisible());
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY, sBuffer.makeStringAndClear());
- ::sax::Converter::convertBool(sBuffer, rpMember->GetShowDetails());
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_SHOW_DETAILS, sBuffer.makeStringAndClear());
- SvXMLElementExport aElemDPM(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_MEMBER, true, true);
- rExport.CheckAttrList();
+ if (rExport.getSaneDefaultVersion() & SvtSaveOptions::ODFSVER_EXTENDED)
+ {
+ // Export display names only for ODF 1.2 extended or later.
+ const std::optional<OUString> & pLayoutName = rpMember->GetLayoutName();
+ if (pLayoutName)
+ rExport.AddAttribute(XML_NAMESPACE_TABLE_EXT, XML_DISPLAY_NAME, *pLayoutName);
}
+
+ OUStringBuffer sBuffer;
+ ::sax::Converter::convertBool(sBuffer, rpMember->GetIsVisible());
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY, sBuffer.makeStringAndClear());
+ ::sax::Converter::convertBool(sBuffer, rpMember->GetShowDetails());
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_SHOW_DETAILS, sBuffer.makeStringAndClear());
+ SvXMLElementExport aElemDPM(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_MEMBER, true, true);
+ rExport.CheckAttrList();
}
}
@@ -642,30 +642,30 @@ void ScXMLExportDataPilot::WriteGroupDimElements(const ScDPSaveDimension* pDim,
OSL_ENSURE((!pGroupDim || !pNumGroupDim), "there should be no NumGroup and Group at the same field");
}
- if (pGroupDim || pNumGroupDim)
+ if (!(pGroupDim || pNumGroupDim))
+ return;
+
+ SvXMLElementExport aElemDPGs(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_GROUPS, true, true);
+ if (!pGroupDim)
+ return;
+
+ if (pGroupDim->GetDatePart())
+ return;
+
+ sal_Int32 nCount = pGroupDim->GetGroupCount();
+ for (sal_Int32 i = 0; i < nCount; ++i)
{
- SvXMLElementExport aElemDPGs(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_GROUPS, true, true);
- if (pGroupDim)
- {
- if (!pGroupDim->GetDatePart())
+ const ScDPSaveGroupItem& rGroup = pGroupDim->GetGroupByIndex( i );
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_NAME, rGroup.GetGroupName());
+ SvXMLElementExport aElemDPG(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_GROUP, true, true);
+ sal_Int32 nElemCount = rGroup.GetElementCount();
+ for(sal_Int32 j = 0; j < nElemCount; ++j)
+ {
+ const OUString* pElem = rGroup.GetElementByIndex(j);
+ if (pElem)
{
- sal_Int32 nCount = pGroupDim->GetGroupCount();
- for (sal_Int32 i = 0; i < nCount; ++i)
- {
- const ScDPSaveGroupItem& rGroup = pGroupDim->GetGroupByIndex( i );
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_NAME, rGroup.GetGroupName());
- SvXMLElementExport aElemDPG(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_GROUP, true, true);
- sal_Int32 nElemCount = rGroup.GetElementCount();
- for(sal_Int32 j = 0; j < nElemCount; ++j)
- {
- const OUString* pElem = rGroup.GetElementByIndex(j);
- if (pElem)
- {
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_NAME, *pElem);
- SvXMLElementExport aElemDPM(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_GROUP_MEMBER, true, true);
- }
- }
- }
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_NAME, *pElem);
+ SvXMLElementExport aElemDPM(rExport, XML_NAMESPACE_TABLE, XML_DATA_PILOT_GROUP_MEMBER, true, true);
}
}
}
diff --git a/sc/source/filter/xml/XMLExportIterator.cxx b/sc/source/filter/xml/XMLExportIterator.cxx
index ae68f6cbec84..dd924507e77e 100644
--- a/sc/source/filter/xml/XMLExportIterator.cxx
+++ b/sc/source/filter/xml/XMLExportIterator.cxx
@@ -210,24 +210,24 @@ void ScMyMergedRangesContainer::SetCellData( ScMyCell& rMyCell )
{
rMyCell.bIsMergedBase = rMyCell.bIsCovered = false;
ScMyMergedRangeList::iterator aItr(aRangeList.begin());
- if( aItr != aRangeList.end() )
+ if( aItr == aRangeList.end() )
+ return;
+
+ if( aItr->aCellRange.aStart != rMyCell.aCellAddress )
+ return;
+
+ rMyCell.aMergeRange = aItr->aCellRange;
+ if (aItr->bIsFirst)
+ rMyCell.aMergeRange.aEnd.SetRow( rMyCell.aMergeRange.aStart.Row() + aItr->nRows - 1 );
+ rMyCell.bIsMergedBase = aItr->bIsFirst;
+ rMyCell.bIsCovered = !aItr->bIsFirst;
+ if( aItr->aCellRange.aStart.Col() < aItr->aCellRange.aEnd.Col() )
{
- if( aItr->aCellRange.aStart == rMyCell.aCellAddress )
- {
- rMyCell.aMergeRange = aItr->aCellRange;
- if (aItr->bIsFirst)
- rMyCell.aMergeRange.aEnd.SetRow( rMyCell.aMergeRange.aStart.Row() + aItr->nRows - 1 );
- rMyCell.bIsMergedBase = aItr->bIsFirst;
- rMyCell.bIsCovered = !aItr->bIsFirst;
- if( aItr->aCellRange.aStart.Col() < aItr->aCellRange.aEnd.Col() )
- {
- aItr->aCellRange.aStart.IncCol( 1 );
- aItr->bIsFirst = false;
- }
- else
- aRangeList.erase(aItr);
- }
+ aItr->aCellRange.aStart.IncCol( 1 );
+ aItr->bIsFirst = false;
}
+ else
+ aRangeList.erase(aItr);
}
void ScMyMergedRangesContainer::SkipTable(SCTAB nSkip)
@@ -280,25 +280,25 @@ void ScMyAreaLinksContainer::SetCellData( ScMyCell& rMyCell )
{
rMyCell.bHasAreaLink = false;
ScMyAreaLinkList::iterator aItr(aAreaLinkList.begin());
- if( aItr != aAreaLinkList.end() )
+ if( aItr == aAreaLinkList.end() )
+ return;
+
+ if( aItr->aDestRange.aStart != rMyCell.aCellAddress )
+ return;
+
+ rMyCell.bHasAreaLink = true;
+ rMyCell.aAreaLink = *aItr;
+ aItr = aAreaLinkList.erase( aItr );
+ bool bFound = true;
+ while (aItr != aAreaLinkList.end() && bFound)
{
- if( aItr->aDestRange.aStart == rMyCell.aCellAddress )
+ if ( aItr->aDestRange.aStart == rMyCell.aCellAddress )
{
- rMyCell.bHasAreaLink = true;
- rMyCell.aAreaLink = *aItr;
+ OSL_FAIL("more than one linked range on one cell");
aItr = aAreaLinkList.erase( aItr );
- bool bFound = true;
- while (aItr != aAreaLinkList.end() && bFound)
- {
- if ( aItr->aDestRange.aStart == rMyCell.aCellAddress )
- {
- OSL_FAIL("more than one linked range on one cell");
- aItr = aAreaLinkList.erase( aItr );
- }
- else
- bFound = false;
- }
}
+ else
+ bFound = false;
}
}
@@ -395,32 +395,32 @@ void ScMyDetectiveObjContainer::AddObject( ScDetectiveObjType eObjType, const SC
const ScAddress& rPosition, const ScRange& rSourceRange,
bool bHasError )
{
- if( (eObjType == SC_DETOBJ_ARROW) ||
+ if( !((eObjType == SC_DETOBJ_ARROW) ||
(eObjType == SC_DETOBJ_FROMOTHERTAB) ||
(eObjType == SC_DETOBJ_TOOTHERTAB) ||
- (eObjType == SC_DETOBJ_CIRCLE) )
+ (eObjType == SC_DETOBJ_CIRCLE)) )
+ return;
+
+ ScMyDetectiveObj aDetObj;
+ aDetObj.eObjType = eObjType;
+ if( eObjType == SC_DETOBJ_TOOTHERTAB )
+ aDetObj.aPosition = rSourceRange.aStart;
+ else
+ aDetObj.aPosition = rPosition;
+ aDetObj.aSourceRange = rSourceRange;
+
+ // #111064#; take the sheet where the object is found and not the sheet given in the ranges, because they are not always true
+ if (eObjType != SC_DETOBJ_FROMOTHERTAB)
{
- ScMyDetectiveObj aDetObj;
- aDetObj.eObjType = eObjType;
- if( eObjType == SC_DETOBJ_TOOTHERTAB )
- aDetObj.aPosition = rSourceRange.aStart;
- else
- aDetObj.aPosition = rPosition;
- aDetObj.aSourceRange = rSourceRange;
-
- // #111064#; take the sheet where the object is found and not the sheet given in the ranges, because they are not always true
- if (eObjType != SC_DETOBJ_FROMOTHERTAB)
- {
- // if the ObjType == SC_DETOBJ_FROMOTHERTAB then the SourceRange is not used and so it has not to be tested and changed
- OSL_ENSURE(aDetObj.aPosition.Tab() == aDetObj.aSourceRange.aStart.Tab(), "It seems to be possible to have different sheets");
- aDetObj.aSourceRange.aStart.SetTab( nSheet );
- aDetObj.aSourceRange.aEnd.SetTab( nSheet );
- }
- aDetObj.aPosition.SetTab( nSheet );
-
- aDetObj.bHasError = bHasError;
- aDetectiveObjList.push_back( aDetObj );
+ // if the ObjType == SC_DETOBJ_FROMOTHERTAB then the SourceRange is not used and so it has not to be tested and changed
+ OSL_ENSURE(aDetObj.aPosition.Tab() == aDetObj.aSourceRange.aStart.Tab(), "It seems to be possible to have different sheets");
+ aDetObj.aSourceRange.aStart.SetTab( nSheet );
+ aDetObj.aSourceRange.aEnd.SetTab( nSheet );
}
+ aDetObj.aPosition.SetTab( nSheet );
+
+ aDetObj.bHasError = bHasError;
+ aDetectiveObjList.push_back( aDetObj );
}
bool ScMyDetectiveObjContainer::GetFirstAddress( ScAddress& rCellAddress )
@@ -643,19 +643,19 @@ void ScMyNotEmptyCellsIterator::SetCurrentTable(const SCTAB nTable,
aLastAddress.SetRow( 0 );
aLastAddress.SetCol( 0 );
aLastAddress.SetTab( nTable );
- if (nCurrentTable != nTable)
- {
- nCurrentTable = nTable;
+ if (nCurrentTable == nTable)
+ return;
- mpCellItr.reset(
- new ScHorizontalCellIterator(
- rExport.GetDocument(), nCurrentTable, 0, 0,
- static_cast<SCCOL>(rExport.GetSharedData()->GetLastColumn(nCurrentTable)),
- static_cast<SCROW>(rExport.GetSharedData()->GetLastRow(nCurrentTable))));
+ nCurrentTable = nTable;
- xTable.set(rxTable);
- xCellRange.set(xTable);
- }
+ mpCellItr.reset(
+ new ScHorizontalCellIterator(
+ rExport.GetDocument(), nCurrentTable, 0, 0,
+ static_cast<SCCOL>(rExport.GetSharedData()->GetLastColumn(nCurrentTable)),
+ static_cast<SCROW>(rExport.GetSharedData()->GetLastRow(nCurrentTable))));
+
+ xTable.set(rxTable);
+ xCellRange.set(xTable);
}
void ScMyNotEmptyCellsIterator::SkipTable(SCTAB nSkip)
diff --git a/sc/source/filter/xml/XMLStylesExportHelper.cxx b/sc/source/filter/xml/XMLStylesExportHelper.cxx
index 4f1b820bf071..b21f2dea976e 100644
--- a/sc/source/filter/xml/XMLStylesExportHelper.cxx
+++ b/sc/source/filter/xml/XMLStylesExportHelper.cxx
@@ -99,65 +99,65 @@ void ScMyValidationsContainer::AddValidation(const uno::Any& aTempAny,
sal_Int32& nValidationIndex)
{
uno::Reference<beans::XPropertySet> xPropertySet(aTempAny, uno::UNO_QUERY);
- if (xPropertySet.is())
+ if (!xPropertySet.is())
+ return;
+
+ OUString sErrorMessage;
+ xPropertySet->getPropertyValue(gsERRMESS) >>= sErrorMessage;
+ OUString sErrorTitle;
+ xPropertySet->getPropertyValue(gsERRTITLE) >>= sErrorTitle;
+ OUString sImputMessage;
+ xPropertySet->getPropertyValue(gsINPMESS) >>= sImputMessage;
+ OUString sImputTitle;
+ xPropertySet->getPropertyValue(gsINPTITLE) >>= sImputTitle;
+ bool bShowErrorMessage = ::cppu::any2bool(xPropertySet->getPropertyValue(gsSHOWERR));
+ bool bShowImputMessage = ::cppu::any2bool(xPropertySet->getPropertyValue(gsSHOWINP));
+ sheet::ValidationType aValidationType;
+ xPropertySet->getPropertyValue(gsTYPE) >>= aValidationType;
+ if (!(bShowErrorMessage || bShowImputMessage || aValidationType != sheet::ValidationType_ANY ||
+ !sErrorMessage.isEmpty() || !sErrorTitle.isEmpty() || !sImputMessage.isEmpty() || !sImputTitle.isEmpty()))
+ return;
+
+ ScMyValidation aValidation;
+ aValidation.sErrorMessage = sErrorMessage;
+ aValidation.sErrorTitle = sErrorTitle;
+ aValidation.sImputMessage = sImputMessage;
+ aValidation.sImputTitle = sImputTitle;
+ aValidation.bShowErrorMessage = bShowErrorMessage;
+ aValidation.bShowImputMessage = bShowImputMessage;
+ aValidation.aValidationType = aValidationType;
+ aValidation.bIgnoreBlanks = ::cppu::any2bool(xPropertySet->getPropertyValue(gsIGNOREBL));
+ xPropertySet->getPropertyValue(gsSHOWLIST) >>= aValidation.nShowList;
+ xPropertySet->getPropertyValue(gsERRALSTY) >>= aValidation.aAlertStyle;
+ uno::Reference<sheet::XSheetCondition> xCondition(xPropertySet, uno::UNO_QUERY);
+ if (xCondition.is())
{
- OUString sErrorMessage;
- xPropertySet->getPropertyValue(gsERRMESS) >>= sErrorMessage;
- OUString sErrorTitle;
- xPropertySet->getPropertyValue(gsERRTITLE) >>= sErrorTitle;
- OUString sImputMessage;
- xPropertySet->getPropertyValue(gsINPMESS) >>= sImputMessage;
- OUString sImputTitle;
- xPropertySet->getPropertyValue(gsINPTITLE) >>= sImputTitle;
- bool bShowErrorMessage = ::cppu::any2bool(xPropertySet->getPropertyValue(gsSHOWERR));
- bool bShowImputMessage = ::cppu::any2bool(xPropertySet->getPropertyValue(gsSHOWINP));
- sheet::ValidationType aValidationType;
- xPropertySet->getPropertyValue(gsTYPE) >>= aValidationType;
- if (bShowErrorMessage || bShowImputMessage || aValidationType != sheet::ValidationType_ANY ||
- !sErrorMessage.isEmpty() || !sErrorTitle.isEmpty() || !sImputMessage.isEmpty() || !sImputTitle.isEmpty())
- {
- ScMyValidation aValidation;
- aValidation.sErrorMessage = sErrorMessage;
- aValidation.sErrorTitle = sErrorTitle;
- aValidation.sImputMessage = sImputMessage;
- aValidation.sImputTitle = sImputTitle;
- aValidation.bShowErrorMessage = bShowErrorMessage;
- aValidation.bShowImputMessage = bShowImputMessage;
- aValidation.aValidationType = aValidationType;
- aValidation.bIgnoreBlanks = ::cppu::any2bool(xPropertySet->getPropertyValue(gsIGNOREBL));
- xPropertySet->getPropertyValue(gsSHOWLIST) >>= aValidation.nShowList;
- xPropertySet->getPropertyValue(gsERRALSTY) >>= aValidation.aAlertStyle;
- uno::Reference<sheet::XSheetCondition> xCondition(xPropertySet, uno::UNO_QUERY);
- if (xCondition.is())
- {
- aValidation.sFormula1 = xCondition->getFormula1();
- aValidation.sFormula2 = xCondition->getFormula2();
- aValidation.aOperator = xCondition->getOperator();
- table::CellAddress aCellAddress= xCondition->getSourcePosition();
- aValidation.aBaseCell = ScAddress( static_cast<SCCOL>(aCellAddress.Column), static_cast<SCROW>(aCellAddress.Row), aCellAddress.Sheet );
- }
- //ScMyValidationRange aValidationRange;
- bool bEqualFound(false);
- sal_Int32 i(0);
- sal_Int32 nCount(aValidationVec.size());
- while (i < nCount && !bEqualFound)
- {
- bEqualFound = aValidationVec[i].IsEqual(aValidation);
- if (!bEqualFound)
- ++i;
- }
- if (bEqualFound)
- nValidationIndex = i;
- else
- {
- sal_Int32 nNameIndex(nCount + 1);
- OUString sCount(OUString::number(nNameIndex));
- aValidation.sName += "val";
- aValidation.sName += sCount;
- aValidationVec.push_back(aValidation);
- nValidationIndex = nCount;
- }
- }
+ aValidation.sFormula1 = xCondition->getFormula1();
+ aValidation.sFormula2 = xCondition->getFormula2();
+ aValidation.aOperator = xCondition->getOperator();
+ table::CellAddress aCellAddress= xCondition->getSourcePosition();
+ aValidation.aBaseCell = ScAddress( static_cast<SCCOL>(aCellAddress.Column), static_cast<SCROW>(aCellAddress.Row), aCellAddress.Sheet );
+ }
+ //ScMyValidationRange aValidationRange;
+ bool bEqualFound(false);
+ sal_Int32 i(0);
+ sal_Int32 nCount(aValidationVec.size());
+ while (i < nCount && !bEqualFound)
+ {
+ bEqualFound = aValidationVec[i].IsEqual(aValidation);
+ if (!bEqualFound)
+ ++i;
+ }
+ if (bEqualFound)
+ nValidationIndex = i;
+ else
+ {
+ sal_Int32 nNameIndex(nCount + 1);
+ OUString sCount(OUString::number(nNameIndex));
+ aValidation.sName += "val";
+ aValidation.sName += sCount;
+ aValidationVec.push_back(aValidation);
+ nValidationIndex = nCount;
}
}
@@ -297,126 +297,126 @@ void ScMyValidationsContainer::WriteMessage(ScXMLExport& rExport,
pMessage.reset(new SvXMLElementExport(rExport, XML_NAMESPACE_TABLE, XML_HELP_MESSAGE, true, true));
else
pMessage.reset(new SvXMLElementExport(rExport, XML_NAMESPACE_TABLE, XML_ERROR_MESSAGE, true, true));
- if (!sOUMessage.isEmpty())
+ if (sOUMessage.isEmpty())
+ return;
+
+ sal_Int32 i(0);
+ OUStringBuffer sTemp;
+ OUString sText(convertLineEnd(sOUMessage, LINEEND_LF));
+ bool bPrevCharWasSpace(true);
+ while(i < sText.getLength())
{
- sal_Int32 i(0);
- OUStringBuffer sTemp;
- OUString sText(convertLineEnd(sOUMessage, LINEEND_LF));
- bool bPrevCharWasSpace(true);
- while(i < sText.getLength())
- {
- if( sText[i] == '\n')
- {
- SvXMLElementExport aElemP(rExport, XML_NAMESPACE_TEXT, XML_P, true, false);
- rExport.GetTextParagraphExport()->exportCharacterData(sTemp.makeStringAndClear(), bPrevCharWasSpace);
- bPrevCharWasSpace = true; // reset for start of next paragraph
- }
- else
- sTemp.append(sText[i]);
- ++i;
- }
- if (!sTemp.isEmpty())
+ if( sText[i] == '\n')
{
SvXMLElementExport aElemP(rExport, XML_NAMESPACE_TEXT, XML_P, true, false);
rExport.GetTextParagraphExport()->exportCharacterData(sTemp.makeStringAndClear(), bPrevCharWasSpace);
+ bPrevCharWasSpace = true; // reset for start of next paragraph
}
+ else
+ sTemp.append(sText[i]);
+ ++i;
+ }
+ if (!sTemp.isEmpty())
+ {
+ SvXMLElementExport aElemP(rExport, XML_NAMESPACE_TEXT, XML_P, true, false);
+ rExport.GetTextParagraphExport()->exportCharacterData(sTemp.makeStringAndClear(), bPrevCharWasSpace);
}
}
void ScMyValidationsContainer::WriteValidations(ScXMLExport& rExport)
{
- if (!aValidationVec.empty())
+ if (aValidationVec.empty())
+ return;
+
+ SvXMLElementExport aElemVs(rExport, XML_NAMESPACE_TABLE, XML_CONTENT_VALIDATIONS, true, true);
+ for (const auto& rValidation : aValidationVec)
{
- SvXMLElementExport aElemVs(rExport, XML_NAMESPACE_TABLE, XML_CONTENT_VALIDATIONS, true, true);
- for (const auto& rValidation : aValidationVec)
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_NAME, rValidation.sName);
+ OUString sCondition(GetCondition(rExport, rValidation));
+ if (!sCondition.isEmpty())
{
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_NAME, rValidation.sName);
- OUString sCondition(GetCondition(rExport, rValidation));
- if (!sCondition.isEmpty())
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CONDITION, sCondition);
+ if (rValidation.bIgnoreBlanks)
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ALLOW_EMPTY_CELL, XML_TRUE);
+ else
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ALLOW_EMPTY_CELL, XML_FALSE);
+ if (rValidation.aValidationType == sheet::ValidationType_LIST)
{
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_CONDITION, sCondition);
- if (rValidation.bIgnoreBlanks)
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ALLOW_EMPTY_CELL, XML_TRUE);
- else
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_ALLOW_EMPTY_CELL, XML_FALSE);
- if (rValidation.aValidationType == sheet::ValidationType_LIST)
+ switch (rValidation.nShowList)
{
- switch (rValidation.nShowList)
- {
- case sheet::TableValidationVisibility::INVISIBLE:
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY_LIST, XML_NO);
- break;
- case sheet::TableValidationVisibility::UNSORTED:
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY_LIST, XML_UNSORTED);
- break;
- case sheet::TableValidationVisibility::SORTEDASCENDING:
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY_LIST, XML_SORT_ASCENDING);
- break;
- default:
- OSL_FAIL("unknown ListType");
- }
+ case sheet::TableValidationVisibility::INVISIBLE:
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY_LIST, XML_NO);
+ break;
+ case sheet::TableValidationVisibility::UNSORTED:
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY_LIST, XML_UNSORTED);
+ break;
+ case sheet::TableValidationVisibility::SORTEDASCENDING:
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY_LIST, XML_SORT_ASCENDING);
+ break;
+ default:
+ OSL_FAIL("unknown ListType");
}
}
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_BASE_CELL_ADDRESS, GetBaseCellAddress(rExport.GetDocument(), rValidation.aBaseCell));
- SvXMLElementExport aElemV(rExport, XML_NAMESPACE_TABLE, XML_CONTENT_VALIDATION, true, true);
- if (rValidation.bShowImputMessage || !rValidation.sImputMessage.isEmpty() || !rValidation.sImputTitle.isEmpty())
- {
- WriteMessage(rExport, rValidation.sImputTitle, rValidation.sImputMessage, rValidation.bShowImputMessage, true);
- }
- if (rValidation.bShowErrorMessage || !rValidation.sErrorMessage.isEmpty() || !rValidation.sErrorTitle.isEmpty())
+ }
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_BASE_CELL_ADDRESS, GetBaseCellAddress(rExport.GetDocument(), rValidation.aBaseCell));
+ SvXMLElementExport aElemV(rExport, XML_NAMESPACE_TABLE, XML_CONTENT_VALIDATION, true, true);
+ if (rValidation.bShowImputMessage || !rValidation.sImputMessage.isEmpty() || !rValidation.sImputTitle.isEmpty())
+ {
+ WriteMessage(rExport, rValidation.sImputTitle, rValidation.sImputMessage, rValidation.bShowImputMessage, true);
+ }
+ if (rValidation.bShowErrorMessage || !rValidation.sErrorMessage.isEmpty() || !rValidation.sErrorTitle.isEmpty())
+ {
+ switch (rValidation.aAlertStyle)
{
- switch (rValidation.aAlertStyle)
+ case sheet::ValidationAlertStyle_INFO :
+ {
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_MESSAGE_TYPE, XML_INFORMATION);
+ WriteMessage(rExport, rValidation.sErrorTitle, rValidation.sErrorMessage, rValidation.bShowErrorMessage, false);
+ }
+ break;
+ case sheet::ValidationAlertStyle_WARNING :
+ {
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_MESSAGE_TYPE, XML_WARNING);
+ WriteMessage(rExport, rValidation.sErrorTitle, rValidation.sErrorMessage, rValidation.bShowErrorMessage, false);
+ }
+ break;
+ case sheet::ValidationAlertStyle_STOP :
+ {
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_MESSAGE_TYPE, XML_STOP);
+ WriteMessage(rExport, rValidation.sErrorTitle, rValidation.sErrorMessage, rValidation.bShowErrorMessage, false);
+ }
+ break;
+ case sheet::ValidationAlertStyle_MACRO :
{
- case sheet::ValidationAlertStyle_INFO :
- {
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_MESSAGE_TYPE, XML_INFORMATION);
- WriteMessage(rExport, rValidation.sErrorTitle, rValidation.sErrorMessage, rValidation.bShowErrorMessage, false);
- }
- break;
- case sheet::ValidationAlertStyle_WARNING :
- {
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_MESSAGE_TYPE, XML_WARNING);
- WriteMessage(rExport, rValidation.sErrorTitle, rValidation.sErrorMessage, rValidation.bShowErrorMessage, false);
- }
- break;
- case sheet::ValidationAlertStyle_STOP :
- {
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_MESSAGE_TYPE, XML_STOP);
- WriteMessage(rExport, rValidation.sErrorTitle, rValidation.sErrorMessage, rValidation.bShowErrorMessage, false);
- }
- break;
- case sheet::ValidationAlertStyle_MACRO :
{
- {
- //rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_NAME, aItr->sErrorTitle);
- if (rValidation.bShowErrorMessage)
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_EXECUTE, XML_TRUE);
- else
- rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_EXECUTE, XML_FALSE);
- SvXMLElementExport aEMElem(rExport, XML_NAMESPACE_TABLE, XML_ERROR_MACRO, true, true);
- }
- {
- // #i47525# for a script URL the type and the property name for the URL
- // are both "Script", for a simple macro name the type is "StarBasic"
- // and the property name is "MacroName".
- bool bScriptURL = SfxApplication::IsXScriptURL( rValidation.sErrorTitle );
-
- const OUString sScript("Script");
- uno::Sequence<beans::PropertyValue> aSeq( comphelper::InitPropertySequence({
- { "EventType", uno::Any(bScriptURL ? sScript : OUString("StarBasic")) },
- { "Library", uno::Any(OUString()) },
- { bScriptURL ? sScript : OUString("MacroName"), uno::Any(rValidation.sErrorTitle) }
- }));
- // 2) export the sequence
- rExport.GetEventExport().ExportSingleEvent( aSeq, "OnError");
- }
+ //rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_NAME, aItr->sErrorTitle);
+ if (rValidation.bShowErrorMessage)
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_EXECUTE, XML_TRUE);
+ else
+ rExport.AddAttribute(XML_NAMESPACE_TABLE, XML_EXECUTE, XML_FALSE);
+ SvXMLElementExport aEMElem(rExport, XML_NAMESPACE_TABLE, XML_ERROR_MACRO, true, true);
}
- break;
- default:
{
- // added to avoid warnings
+ // #i47525# for a script URL the type and the property name for the URL
+ // are both "Script", for a simple macro name the type is "StarBasic"
+ // and the property name is "MacroName".
+ bool bScriptURL = SfxApplication::IsXScriptURL( rValidation.sErrorTitle );
+
+ const OUString sScript("Script");
+ uno::Sequence<beans::PropertyValue> aSeq( comphelper::InitPropertySequence({
+ { "EventType", uno::Any(bScriptURL ? sScript : OUString("StarBasic")) },
+ { "Library", uno::Any(OUString()) },
+ { bScriptURL ? sScript : OUString("MacroName"), uno::Any(rValidation.sErrorTitle) }
+ }));
+ // 2) export the sequence
+ rExport.GetEventExport().ExportSingleEvent( aSeq, "OnError");
}
}
+ break;
+ default:
+ {
+ // added to avoid warnings
+ }
}
}
}
diff --git a/sc/source/filter/xml/XMLTableMasterPageExport.cxx b/sc/source/filter/xml/XMLTableMasterPageExport.cxx
index 69cbda1f83a1..f8bf9d1b0b5e 100644
--- a/sc/source/filter/xml/XMLTableMasterPageExport.cxx
+++ b/sc/source/filter/xml/XMLTableMasterPageExport.cxx
@@ -65,45 +65,45 @@ void XMLTableMasterPageExport::exportHeaderFooter(const css::uno::Reference < cs
const XMLTokenEnum aName,
const bool bDisplay)
{
- if( xHeaderFooter.is() )
+ if( !xHeaderFooter.is() )
+ return;
+
+ Reference < XText > xCenter(xHeaderFooter->getCenterText());
+ Reference < XText > xLeft(xHeaderFooter->getLeftText());
+ Reference < XText > xRight(xHeaderFooter->getRightText());
+ if (!(xCenter.is() && xLeft.is() && xRight.is()))
+ return;
+
+ OUString sCenter (xCenter->getString());
+ OUString sLeft (xLeft->getString());
+ OUString sRight (xRight->getString());
+
+ if( !bDisplay )
+ GetExport().AddAttribute( XML_NAMESPACE_STYLE,
+ XML_DISPLAY, XML_FALSE );
+ SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_STYLE,
+ aName, true, true );
+ if (!sCenter.isEmpty() && sLeft.isEmpty() && sRight.isEmpty())
+ exportHeaderFooterContent( xCenter, false, false );
+ else
{
- Reference < XText > xCenter(xHeaderFooter->getCenterText());
- Reference < XText > xLeft(xHeaderFooter->getLeftText());
- Reference < XText > xRight(xHeaderFooter->getRightText());
- if (xCenter.is() && xLeft.is() && xRight.is())
+ if (!sLeft.isEmpty())
+ {
+ SvXMLElementExport aSubElem( GetExport(), XML_NAMESPACE_STYLE,
+ XML_REGION_LEFT, true, true );
+ exportHeaderFooterContent( xLeft, false, false );
+ }
+ if (!sCenter.isEmpty())
+ {
+ SvXMLElementExport aSubElem( GetExport(), XML_NAMESPACE_STYLE,
+ XML_REGION_CENTER, true, true );
+ exportHeaderFooterContent( xCenter, false, false );
+ }
+ if (!sRight.isEmpty())
{
- OUString sCenter (xCenter->getString());
- OUString sLeft (xLeft->getString());
- OUString sRight (xRight->getString());
-
- if( !bDisplay )
- GetExport().AddAttribute( XML_NAMESPACE_STYLE,
- XML_DISPLAY, XML_FALSE );
- SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_STYLE,
- aName, true, true );
- if (!sCenter.isEmpty() && sLeft.isEmpty() && sRight.isEmpty())
- exportHeaderFooterContent( xCenter, false, false );
- else
- {
- if (!sLeft.isEmpty())
- {
- SvXMLElementExport aSubElem( GetExport(), XML_NAMESPACE_STYLE,
- XML_REGION_LEFT, true, true );
- exportHeaderFooterContent( xLeft, false, false );
- }
- if (!sCenter.isEmpty())
- {
- SvXMLElementExport aSubElem( GetExport(), XML_NAMESPACE_STYLE,
- XML_REGION_CENTER, true, true );
- exportHeaderFooterContent( xCenter, false, false );
- }
- if (!sRight.isEmpty())
- {
- SvXMLElementExport aSubElem( GetExport(), XML_NAMESPACE_STYLE,
- XML_REGION_RIGHT, true, true );
- exportHeaderFooterContent( xRight, false, false );
- }
- }
+ SvXMLElementExport aSubElem( GetExport(), XML_NAMESPACE_STYLE,
+ XML_REGION_RIGHT, true, true );
+ exportHeaderFooterContent( xRight, false, false );
}
}
}
diff --git a/sc/source/filter/xml/XMLTableShapeResizer.cxx b/sc/source/filter/xml/XMLTableShapeResizer.cxx
index 105bbb7cbeb5..84577bcaf2e6 100644
--- a/sc/source/filter/xml/XMLTableShapeResizer.cxx
+++ b/sc/source/filter/xml/XMLTableShapeResizer.cxx
@@ -85,25 +85,25 @@ void ScMyOLEFixer::CreateChartListener(ScDocument* pDoc,
const sal_Unicode cSep = ScCompiler::GetNativeSymbolChar(ocSep);
ScRefTokenHelper::compileRangeRepresentation(
*pRefTokens, aRangeStr, pDoc, cSep, pDoc->GetGrammar());
- if (!pRefTokens->empty())
- {
- ScChartListener* pCL(new ScChartListener(rName, pDoc, std::move(pRefTokens)));
-
- //for loading binary files e.g.
- //if we have the flat filter we need to set the dirty flag thus the visible charts get repainted
- //otherwise the charts keep their first visual representation which was created at a moment where the calc itself was not loaded completely and is therefore incorrect
- if( (rImport.getImportFlags() & SvXMLImportFlags::ALL) == SvXMLImportFlags::ALL )
- pCL->SetDirty( true );
- else
- {
- // #i104899# If a formula cell is already dirty, further changes aren't propagated.
- // This can happen easily now that row heights aren't updated for all sheets.
- pDoc->InterpretDirtyCells( *pCL->GetRangeList() );
- }
+ if (pRefTokens->empty())
+ return;
- pCollection->insert( pCL );
- pCL->StartListeningTo();
+ ScChartListener* pCL(new ScChartListener(rName, pDoc, std::move(pRefTokens)));
+
+ //for loading binary files e.g.
+ //if we have the flat filter we need to set the dirty flag thus the visible charts get repainted
+ //otherwise the charts keep their first visual representation which was created at a moment where the calc itself was not loaded completely and is therefore incorrect
+ if( (rImport.getImportFlags() & SvXMLImportFlags::ALL) == SvXMLImportFlags::ALL )
+ pCL->SetDirty( true );
+ else
+ {
+ // #i104899# If a formula cell is already dirty, further changes aren't propagated.
+ // This can happen easily now that row heights aren't updated for all sheets.
+ pDoc->InterpretDirtyCells( *pCL->GetRangeList() );
}
+
+ pCollection->insert( pCL );
+ pCL->StartListeningTo();
}
void ScMyOLEFixer::AddOLE(const uno::Reference <drawing::XShape>& rShape,
@@ -117,32 +117,32 @@ void ScMyOLEFixer::AddOLE(const uno::Reference <drawing::XShape>& rShape,
void ScMyOLEFixer::FixupOLEs()
{
- if (!aShapes.empty() && rImport.GetModel().is())
- {
- OUString sPersistName ("PersistName");
- ScDocument* pDoc(rImport.GetDocument());
+ if (!(!aShapes.empty() && rImport.GetModel().is()))
+ return;
+
+ OUString sPersistName ("PersistName");
+ ScDocument* pDoc(rImport.GetDocument());
- ScXMLImport::MutexGuard aGuard(rImport);
+ ScXMLImport::MutexGuard aGuard(rImport);
- for (auto const& shape : aShapes)
+ for (auto const& shape : aShapes)
+ {
+ // #i78086# also call CreateChartListener for invalid position (anchored to sheet)
+ if (!IsOLE(shape.xShape))
+ OSL_FAIL("Only OLEs should be in here now");
+
+ if (IsOLE(shape.xShape))
{
- // #i78086# also call CreateChartListener for invalid position (anchored to sheet)
- if (!IsOLE(shape.xShape))
- OSL_FAIL("Only OLEs should be in here now");
-
- if (IsOLE(shape.xShape))
- {
- uno::Reference < beans::XPropertySet > xShapeProps ( shape.xShape, uno::UNO_QUERY );
- uno::Reference < beans::XPropertySetInfo > xShapeInfo(xShapeProps->getPropertySetInfo());
-
- OUString sName;
- if (pDoc && xShapeProps.is() && xShapeInfo.is() && xShapeInfo->hasPropertyByName(sPersistName) &&
- (xShapeProps->getPropertyValue(sPersistName) >>= sName))
- CreateChartListener(pDoc, sName, shape.sRangeList);
- }
+ uno::Reference < beans::XPropertySet > xShapeProps ( shape.xShape, uno::UNO_QUERY );
+ uno::Reference < beans::XPropertySetInfo > xShapeInfo(xShapeProps->getPropertySetInfo());
+
+ OUString sName;
+ if (pDoc && xShapeProps.is() && xShapeInfo.is() && xShapeInfo->hasPropertyByName(sPersistName) &&
+ (xShapeProps->getPropertyValue(sPersistName) >>= sName))
+ CreateChartListener(pDoc, sName, shape.sRangeList);
}
- aShapes.clear();
}
+ aShapes.clear();
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/xml/XMLTableSourceContext.cxx b/sc/source/filter/xml/XMLTableSourceContext.cxx
index 58d3f44536d1..f3cf2e547123 100644
--- a/sc/source/filter/xml/XMLTableSourceContext.cxx
+++ b/sc/source/filter/xml/XMLTableSourceContext.cxx
@@ -41,34 +41,34 @@ ScXMLTableSourceContext::ScXMLTableSourceContext( ScXMLImport& rImport,
nRefresh(0),
nMode(sheet::SheetLinkMode_NORMAL)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( XLINK, XML_HREF ):
- sLink = GetScImport().GetAbsoluteReference(aIter.toString());
- break;
- case XML_ELEMENT( TABLE, XML_TABLE_NAME ):
- sTableName = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_FILTER_NAME):
- sFilterName = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_FILTER_OPTIONS ):
- sFilterOptions = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_MODE ):
- if (IsXMLToken(aIter, XML_COPY_RESULTS_ONLY))
- nMode = sheet::SheetLinkMode_VALUE;
- break;
- case XML_ELEMENT( TABLE, XML_REFRESH_DELAY ):
- double fTime;
- if (::sax::Converter::convertDuration( fTime, aIter.toString() ))
- nRefresh = std::max( static_cast<sal_Int32>(fTime * 86400.0), sal_Int32(0) );
- break;
- }
+ case XML_ELEMENT( XLINK, XML_HREF ):
+ sLink = GetScImport().GetAbsoluteReference(aIter.toString());
+ break;
+ case XML_ELEMENT( TABLE, XML_TABLE_NAME ):
+ sTableName = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_FILTER_NAME):
+ sFilterName = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_FILTER_OPTIONS ):
+ sFilterOptions = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_MODE ):
+ if (IsXMLToken(aIter, XML_COPY_RESULTS_ONLY))
+ nMode = sheet::SheetLinkMode_VALUE;
+ break;
+ case XML_ELEMENT( TABLE, XML_REFRESH_DELAY ):
+ double fTime;
+ if (::sax::Converter::convertDuration( fTime, aIter.toString() ))
+ nRefresh = std::max( static_cast<sal_Int32>(fTime * 86400.0), sal_Int32(0) );
+ break;
}
}
}
@@ -85,32 +85,32 @@ uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLTableSourceContext
void SAL_CALL ScXMLTableSourceContext::endFastElement( sal_Int32 /*nElement*/ )
{
- if (!sLink.isEmpty())
- {
- uno::Reference <sheet::XSheetLinkable> xLinkable (GetScImport().GetTables().GetCurrentXSheet(), uno::UNO_QUERY);
- ScDocument* pDoc(GetScImport().GetDocument());
- if (xLinkable.is() && pDoc)
- {
- ScXMLImport::MutexGuard aGuard(GetScImport());
- if (pDoc->RenameTab( GetScImport().GetTables().GetCurrentSheet(),
- GetScImport().GetTables().GetCurrentSheetName(), true/*bExternalDocument*/))
- {
- sLink = ScGlobal::GetAbsDocName( sLink, pDoc->GetDocumentShell() );
- if (sFilterName.isEmpty())
- ScDocumentLoader::GetFilterName( sLink, sFilterName, sFilterOptions, false, false );
+ if (sLink.isEmpty())
+ return;
- ScLinkMode nLinkMode = ScLinkMode::NONE;
- if ( nMode == sheet::SheetLinkMode_NORMAL )
- nLinkMode = ScLinkMode::NORMAL;
- else if ( nMode == sheet::SheetLinkMode_VALUE )
- nLinkMode = ScLinkMode::VALUE;
+ uno::Reference <sheet::XSheetLinkable> xLinkable (GetScImport().GetTables().GetCurrentXSheet(), uno::UNO_QUERY);
+ ScDocument* pDoc(GetScImport().GetDocument());
+ if (!(xLinkable.is() && pDoc))
+ return;
- pDoc->SetLink( GetScImport().GetTables().GetCurrentSheet(),
- nLinkMode, sLink, sFilterName, sFilterOptions,
- sTableName, nRefresh );
- }
- }
- }
+ ScXMLImport::MutexGuard aGuard(GetScImport());
+ if (!pDoc->RenameTab( GetScImport().GetTables().GetCurrentSheet(),
+ GetScImport().GetTables().GetCurrentSheetName(), true/*bExternalDocument*/))
+ return;
+
+ sLink = ScGlobal::GetAbsDocName( sLink, pDoc->GetDocumentShell() );
+ if (sFilterName.isEmpty())
+ ScDocumentLoader::GetFilterName( sLink, sFilterName, sFilterOptions, false, false );
+
+ ScLinkMode nLinkMode = ScLinkMode::NONE;
+ if ( nMode == sheet::SheetLinkMode_NORMAL )
+ nLinkMode = ScLinkMode::NORMAL;
+ else if ( nMode == sheet::SheetLinkMode_VALUE )
+ nLinkMode = ScLinkMode::VALUE;
+
+ pDoc->SetLink( GetScImport().GetTables().GetCurrentSheet(),
+ nLinkMode, sLink, sFilterName, sFilterOptions,
+ sTableName, nRefresh );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/xml/XMLTrackedChangesContext.cxx b/sc/source/filter/xml/XMLTrackedChangesContext.cxx
index 5f8a1368d120..b4f656133819 100644
--- a/sc/source/filter/xml/XMLTrackedChangesContext.cxx
+++ b/sc/source/filter/xml/XMLTrackedChangesContext.cxx
@@ -346,17 +346,17 @@ ScXMLTrackedChangesContext::ScXMLTrackedChangesContext( ScXMLImport& rImport,
{
rImport.LockSolarMutex();
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ auto aIter( rAttrList->find( XML_ELEMENT( TABLE, XML_PROTECTION_KEY ) ) );
+ if (aIter != rAttrList->end())
{
- auto aIter( rAttrList->find( XML_ELEMENT( TABLE, XML_PROTECTION_KEY ) ) );
- if (aIter != rAttrList->end())
+ if( !aIter.isEmpty() )
{
- if( !aIter.isEmpty() )
- {
- uno::Sequence<sal_Int8> aPass;
- ::comphelper::Base64::decode( aPass, aIter.toString() );
- pChangeTrackingImportHelper->SetProtection(aPass);
- }
+ uno::Sequence<sal_Int8> aPass;
+ ::comphelper::Base64::decode( aPass, aIter.toString() );
+ pChangeTrackingImportHelper->SetProtection(aPass);
}
}
}
@@ -835,22 +835,22 @@ SvXMLImportContextRef ScXMLChangeCellContext::CreateChildContext( sal_uInt16 nPr
void ScXMLChangeCellContext::CreateTextPContext(bool bIsNewParagraph)
{
- if (GetScImport().GetDocument())
+ if (!GetScImport().GetDocument())
+ return;
+
+ mpEditTextObj = new ScEditEngineTextObj();
+ mpEditTextObj->GetEditEngine()->SetEditTextObjectPool(GetScImport().GetDocument()->GetEditPool());
+ uno::Reference <text::XText> xText(mpEditTextObj.get());
+ if (xText.is())
{
- mpEditTextObj = new ScEditEngineTextObj();
- mpEditTextObj->GetEditEngine()->SetEditTextObjectPool(GetScImport().GetDocument()->GetEditPool());
- uno::Reference <text::XText> xText(mpEditTextObj.get());
- if (xText.is())
+ uno::Reference<text::XTextCursor> xTextCursor(xText->createTextCursor());
+ if (bIsNewParagraph)
{
- uno::Reference<text::XTextCursor> xTextCursor(xText->createTextCursor());
- if (bIsNewParagraph)
- {
- xText->setString(sText);
- xTextCursor->gotoEnd(false);
- xText->insertControlCharacter(xTextCursor, text::ControlCharacter::PARAGRAPH_BREAK, false);
- }
- GetScImport().GetTextImport()->SetCursor(xTextCursor);
+ xText->setString(sText);
+ xTextCursor->gotoEnd(false);
+ xText->insertControlCharacter(xTextCursor, text::ControlCharacter::PARAGRAPH_BREAK, false);
}
+ GetScImport().GetTextImport()->SetCursor(xTextCursor);
}
}
diff --git a/sc/source/filter/xml/datastreamimport.cxx b/sc/source/filter/xml/datastreamimport.cxx
index 9a7a708bd281..3552123ec660 100644
--- a/sc/source/filter/xml/datastreamimport.cxx
+++ b/sc/source/filter/xml/datastreamimport.cxx
@@ -26,35 +26,35 @@ ScXMLDataStreamContext::ScXMLDataStreamContext(
mbRefreshOnEmpty(false),
meInsertPos(sc::ImportPostProcessData::DataStream::InsertBottom)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch ( aIter.getToken() )
{
- switch ( aIter.getToken() )
+ case XML_ELEMENT( XLINK, XML_HREF ):
+ maURL = GetScImport().GetAbsoluteReference( aIter.toString() );
+ break;
+ case XML_ELEMENT( TABLE, XML_TARGET_RANGE_ADDRESS ):
{
- case XML_ELEMENT( XLINK, XML_HREF ):
- maURL = GetScImport().GetAbsoluteReference( aIter.toString() );
- break;
- case XML_ELEMENT( TABLE, XML_TARGET_RANGE_ADDRESS ):
- {
- ScDocument* pDoc = GetScImport().GetDocument();
- sal_Int32 nOffset = 0;
- if (!ScRangeStringConverter::GetRangeFromString(
- maRange, aIter.toString(), pDoc, formula::FormulaGrammar::CONV_OOO, nOffset))
- maRange.SetInvalid();
- }
- break;
- case XML_ELEMENT( CALC_EXT, XML_EMPTY_LINE_REFRESH ):
- mbRefreshOnEmpty = IsXMLToken( aIter, XML_TRUE );
- break;
- case XML_ELEMENT( CALC_EXT, XML_INSERTION_POSITION ):
- meInsertPos = IsXMLToken( aIter, XML_TOP ) ?
- sc::ImportPostProcessData::DataStream::InsertTop :
- sc::ImportPostProcessData::DataStream::InsertBottom;
- break;
- default:
- ;
+ ScDocument* pDoc = GetScImport().GetDocument();
+ sal_Int32 nOffset = 0;
+ if (!ScRangeStringConverter::GetRangeFromString(
+ maRange, aIter.toString(), pDoc, formula::FormulaGrammar::CONV_OOO, nOffset))
+ maRange.SetInvalid();
}
+ break;
+ case XML_ELEMENT( CALC_EXT, XML_EMPTY_LINE_REFRESH ):
+ mbRefreshOnEmpty = IsXMLToken( aIter, XML_TRUE );
+ break;
+ case XML_ELEMENT( CALC_EXT, XML_INSERTION_POSITION ):
+ meInsertPos = IsXMLToken( aIter, XML_TOP ) ?
+ sc::ImportPostProcessData::DataStream::InsertTop :
+ sc::ImportPostProcessData::DataStream::InsertBottom;
+ break;
+ default:
+ ;
}
}
}
diff --git a/sc/source/filter/xml/xmlbodyi.cxx b/sc/source/filter/xml/xmlbodyi.cxx
index 81bf3e95124f..753b9cfb1614 100644
--- a/sc/source/filter/xml/xmlbodyi.cxx
+++ b/sc/source/filter/xml/xmlbodyi.cxx
@@ -237,37 +237,37 @@ void SAL_CALL ScXMLBodyContext::endFastElement(sal_Int32 nElement)
ScDocument* pDoc = GetScImport().GetDocument();
ScMyImpDetectiveOp aDetOp;
- if (pDoc && GetScImport().GetModel().is())
+ if (!(pDoc && GetScImport().GetModel().is()))
+ return;
+
+ if (pDetOpArray)
{
- if (pDetOpArray)
+ pDetOpArray->Sort();
+ while( pDetOpArray->GetFirstOp( aDetOp ) )
{
- pDetOpArray->Sort();
- while( pDetOpArray->GetFirstOp( aDetOp ) )
- {
- ScDetOpData aOpData( aDetOp.aPosition, aDetOp.eOpType );
- pDoc->AddDetectiveOperation( aOpData );
- }
+ ScDetOpData aOpData( aDetOp.aPosition, aDetOp.eOpType );
+ pDoc->AddDetectiveOperation( aOpData );
}
+ }
- if (pChangeTrackingImportHelper)
- pChangeTrackingImportHelper->CreateChangeTrack(GetScImport().GetDocument());
+ if (pChangeTrackingImportHelper)
+ pChangeTrackingImportHelper->CreateChangeTrack(GetScImport().GetDocument());
- // #i37959# handle document protection after the sheet settings
- if (bProtected)
- {
- std::unique_ptr<ScDocProtection> pProtection(new ScDocProtection);
- pProtection->setProtected(true);
+ // #i37959# handle document protection after the sheet settings
+ if (!bProtected)
+ return;
- uno::Sequence<sal_Int8> aPass;
- if (!sPassword.isEmpty())
- {
- ::comphelper::Base64::decode(aPass, sPassword);
- pProtection->setPasswordHash(aPass, meHash1, meHash2);
- }
+ std::unique_ptr<ScDocProtection> pProtection(new ScDocProtection);
+ pProtection->setProtected(true);
- pDoc->SetDocProtection(pProtection.get());
- }
+ uno::Sequence<sal_Int8> aPass;
+ if (!sPassword.isEmpty())
+ {
+ ::comphelper::Base64::decode(aPass, sPassword);
+ pProtection->setPasswordHash(aPass, meHash1, meHash2);
}
+
+ pDoc->SetDocProtection(pProtection.get());
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/xml/xmlcelli.cxx b/sc/source/filter/xml/xmlcelli.cxx
index e397192ceaea..590db3a8224c 100644
--- a/sc/source/filter/xml/xmlcelli.cxx
+++ b/sc/source/filter/xml/xmlcelli.cxx
@@ -780,58 +780,58 @@ ScValidErrorStyle validAlertToValidError( const sheet::ValidationAlertStyle eVAl
void ScXMLTableRowCellContext::SetContentValidation( const ScRange& rScRange )
{
- if (maContentValidationName)
- {
- ScDocument* pDoc = rXMLImport.GetDocument();
- ScMyImportValidation aValidation;
- aValidation.eGrammar1 = aValidation.eGrammar2 = pDoc->GetStorageGrammar();
- if( rXMLImport.GetValidation(*maContentValidationName, aValidation) )
- {
- ScValidationData aScValidationData(
- validationTypeToMode(aValidation.aValidationType),
- ScConditionEntry::GetModeFromApi(aValidation.aOperator),
- aValidation.sFormula1, aValidation.sFormula2, pDoc, ScAddress(),
- aValidation.sFormulaNmsp1, aValidation.sFormulaNmsp2,
- aValidation.eGrammar1, aValidation.eGrammar2
- );
-
- aScValidationData.SetIgnoreBlank( aValidation.bIgnoreBlanks );
- aScValidationData.SetListType( aValidation.nShowList );
-
- // set strings for error / input even if disabled (and disable afterwards)
- aScValidationData.SetInput( aValidation.sImputTitle, aValidation.sImputMessage );
- if( !aValidation.bShowImputMessage )
- aScValidationData.ResetInput();
- aScValidationData.SetError( aValidation.sErrorTitle, aValidation.sErrorMessage, validAlertToValidError(aValidation.aAlertStyle) );
- if( !aValidation.bShowErrorMessage )
- aScValidationData.ResetError();
-
- if( !aValidation.sBaseCellAddress.isEmpty() )
- aScValidationData.SetSrcString( aValidation.sBaseCellAddress );
-
- sal_uLong nIndex = pDoc->AddValidationEntry( aScValidationData );
-
- ScPatternAttr aPattern( pDoc->GetPool() );
- aPattern.GetItemSet().Put( SfxUInt32Item( ATTR_VALIDDATA, nIndex ) );
- if( rScRange.aStart == rScRange.aEnd ) //for a single cell
- {
- pDoc->ApplyPattern( rScRange.aStart.Col(), rScRange.aStart.Row(),
- rScRange.aStart.Tab(), aPattern );
- }
- else //for repeating cells
- {
- pDoc->ApplyPatternAreaTab( rScRange.aStart.Col(), rScRange.aStart.Row(),
- rScRange.aEnd.Col(), rScRange.aEnd.Row(),
- rScRange.aStart.Tab(), aPattern );
- }
+ if (!maContentValidationName)
+ return;
- // is the below still needed?
- // For now, any sheet with validity is blocked from stream-copying.
- // Later, the validation names could be stored along with the style names.
- ScSheetSaveData* pSheetData = comphelper::getUnoTunnelImplementation<ScModelObj>(GetImport().GetModel())->GetSheetSaveData();
- pSheetData->BlockSheet( GetScImport().GetTables().GetCurrentSheet() );
- }
+ ScDocument* pDoc = rXMLImport.GetDocument();
+ ScMyImportValidation aValidation;
+ aValidation.eGrammar1 = aValidation.eGrammar2 = pDoc->GetStorageGrammar();
+ if( !rXMLImport.GetValidation(*maContentValidationName, aValidation) )
+ return;
+
+ ScValidationData aScValidationData(
+ validationTypeToMode(aValidation.aValidationType),
+ ScConditionEntry::GetModeFromApi(aValidation.aOperator),
+ aValidation.sFormula1, aValidation.sFormula2, pDoc, ScAddress(),
+ aValidation.sFormulaNmsp1, aValidation.sFormulaNmsp2,
+ aValidation.eGrammar1, aValidation.eGrammar2
+ );
+
+ aScValidationData.SetIgnoreBlank( aValidation.bIgnoreBlanks );
+ aScValidationData.SetListType( aValidation.nShowList );
+
+ // set strings for error / input even if disabled (and disable afterwards)
+ aScValidationData.SetInput( aValidation.sImputTitle, aValidation.sImputMessage );
+ if( !aValidation.bShowImputMessage )
+ aScValidationData.ResetInput();
+ aScValidationData.SetError( aValidation.sErrorTitle, aValidation.sErrorMessage, validAlertToValidError(aValidation.aAlertStyle) );
+ if( !aValidation.bShowErrorMessage )
+ aScValidationData.ResetError();
+
+ if( !aValidation.sBaseCellAddress.isEmpty() )
+ aScValidationData.SetSrcString( aValidation.sBaseCellAddress );
+
+ sal_uLong nIndex = pDoc->AddValidationEntry( aScValidationData );
+
+ ScPatternAttr aPattern( pDoc->GetPool() );
+ aPattern.GetItemSet().Put( SfxUInt32Item( ATTR_VALIDDATA, nIndex ) );
+ if( rScRange.aStart == rScRange.aEnd ) //for a single cell
+ {
+ pDoc->ApplyPattern( rScRange.aStart.Col(), rScRange.aStart.Row(),
+ rScRange.aStart.Tab(), aPattern );
}
+ else //for repeating cells
+ {
+ pDoc->ApplyPatternAreaTab( rScRange.aStart.Col(), rScRange.aStart.Row(),
+ rScRange.aEnd.Col(), rScRange.aEnd.Row(),
+ rScRange.aStart.Tab(), aPattern );
+ }
+
+ // is the below still needed?
+ // For now, any sheet with validity is blocked from stream-copying.
+ // Later, the validation names could be stored along with the style names.
+ ScSheetSaveData* pSheetData = comphelper::getUnoTunnelImplementation<ScModelObj>(GetImport().GetModel())->GetSheetSaveData();
+ pSheetData->BlockSheet( GetScImport().GetTables().GetCurrentSheet() );
}
void ScXMLTableRowCellContext::SetContentValidation( const ScAddress& rCellPos )
@@ -947,20 +947,20 @@ void ScXMLTableRowCellContext::SetAnnotation(const ScAddress& rPos)
void ScXMLTableRowCellContext::SetDetectiveObj( const ScAddress& rPosition )
{
ScDocument* pDoc = rXMLImport.GetDocument();
- if( pDoc && cellExists(*pDoc, rPosition) && pDetectiveObjVec && !pDetectiveObjVec->empty() )
+ if( !(pDoc && cellExists(*pDoc, rPosition) && pDetectiveObjVec && !pDetectiveObjVec->empty()) )
+ return;
+
+ LockSolarMutex();
+ ScDetectiveFunc aDetFunc( pDoc, rPosition.Tab() );
+ uno::Reference<container::XIndexAccess> xShapesIndex = rXMLImport.GetTables().GetCurrentXShapes(); // make draw page
+ for(const auto& rDetectiveObj : *pDetectiveObjVec)
{
- LockSolarMutex();
- ScDetectiveFunc aDetFunc( pDoc, rPosition.Tab() );
- uno::Reference<container::XIndexAccess> xShapesIndex = rXMLImport.GetTables().GetCurrentXShapes(); // make draw page
- for(const auto& rDetectiveObj : *pDetectiveObjVec)
+ aDetFunc.InsertObject( rDetectiveObj.eObjType, rPosition, rDetectiveObj.aSourceRange, rDetectiveObj.bHasError );
+ if (xShapesIndex.is())
{
- aDetFunc.InsertObject( rDetectiveObj.eObjType, rPosition, rDetectiveObj.aSourceRange, rDetectiveObj.bHasError );
- if (xShapesIndex.is())
- {
- sal_Int32 nShapes = xShapesIndex->getCount();
- uno::Reference < drawing::XShape > xShape;
- rXMLImport.GetShapeImport()->shapeWithZIndexAdded(xShape, nShapes);
- }
+ sal_Int32 nShapes = xShapesIndex->getCount();
+ uno::Reference < drawing::XShape > xShape;
+ rXMLImport.GetShapeImport()->shapeWithZIndexAdded(xShape, nShapes);
}
}
}
@@ -969,62 +969,62 @@ void ScXMLTableRowCellContext::SetDetectiveObj( const ScAddress& rPosition )
void ScXMLTableRowCellContext::SetCellRangeSource( const ScAddress& rPosition )
{
ScDocument* pDoc = rXMLImport.GetDocument();
- if( pDoc && cellExists(*pDoc, rPosition) && pCellRangeSource && !pCellRangeSource->sSourceStr.isEmpty() &&
- !pCellRangeSource->sFilterName.isEmpty() && !pCellRangeSource->sURL.isEmpty() )
- {
- LockSolarMutex();
- ScRange aDestRange( rPosition.Col(), rPosition.Row(), rPosition.Tab(),
- rPosition.Col() + static_cast<SCCOL>(pCellRangeSource->nColumns - 1),
- rPosition.Row() + static_cast<SCROW>(pCellRangeSource->nRows - 1), rPosition.Tab() );
- OUString sFilterName( pCellRangeSource->sFilterName );
- OUString sSourceStr( pCellRangeSource->sSourceStr );
- ScAreaLink* pLink = new ScAreaLink( pDoc->GetDocumentShell(), pCellRangeSource->sURL,
- sFilterName, pCellRangeSource->sFilterOptions, sSourceStr, aDestRange, pCellRangeSource->nRefresh );
- sfx2::LinkManager* pLinkManager = pDoc->GetLinkManager();
- pLinkManager->InsertFileLink( *pLink, sfx2::SvBaseLinkObjectType::ClientFile, pCellRangeSource->sURL, &sFilterName, &sSourceStr );
- }
+ if( !(pDoc && cellExists(*pDoc, rPosition) && pCellRangeSource && !pCellRangeSource->sSourceStr.isEmpty() &&
+ !pCellRangeSource->sFilterName.isEmpty() && !pCellRangeSource->sURL.isEmpty()) )
+ return;
+
+ LockSolarMutex();
+ ScRange aDestRange( rPosition.Col(), rPosition.Row(), rPosition.Tab(),
+ rPosition.Col() + static_cast<SCCOL>(pCellRangeSource->nColumns - 1),
+ rPosition.Row() + static_cast<SCROW>(pCellRangeSource->nRows - 1), rPosition.Tab() );
+ OUString sFilterName( pCellRangeSource->sFilterName );
+ OUString sSourceStr( pCellRangeSource->sSourceStr );
+ ScAreaLink* pLink = new ScAreaLink( pDoc->GetDocumentShell(), pCellRangeSource->sURL,
+ sFilterName, pCellRangeSource->sFilterOptions, sSourceStr, aDestRange, pCellRangeSource->nRefresh );
+ sfx2::LinkManager* pLinkManager = pDoc->GetLinkManager();
+ pLinkManager->InsertFileLink( *pLink, sfx2::SvBaseLinkObjectType::ClientFile, pCellRangeSource->sURL, &sFilterName, &sSourceStr );
}
void ScXMLTableRowCellContext::SetFormulaCell(ScFormulaCell* pFCell) const
{
- if(pFCell)
- {
- bool bMayForceNumberformat = true;
+ if(!pFCell)
+ return;
- if(mbErrorValue)
- {
- // don't do anything here
- // we need to recalc anyway
- }
- else if( bFormulaTextResult && maStringValue )
+ bool bMayForceNumberformat = true;
+
+ if(mbErrorValue)
+ {
+ // don't do anything here
+ // we need to recalc anyway
+ }
+ else if( bFormulaTextResult && maStringValue )
+ {
+ if( !IsPossibleErrorString() )
{
- if( !IsPossibleErrorString() )
- {
- ScDocument* pDoc = rXMLImport.GetDocument();
- pFCell->SetHybridString(pDoc->GetSharedStringPool().intern(*maStringValue));
- pFCell->ResetDirty();
- // A General format doesn't force any other format for a string
- // result, don't attempt to recalculate this later.
- bMayForceNumberformat = false;
- }
+ ScDocument* pDoc = rXMLImport.GetDocument();
+ pFCell->SetHybridString(pDoc->GetSharedStringPool().intern(*maStringValue));
+ pFCell->ResetDirty();
+ // A General format doesn't force any other format for a string
+ // result, don't attempt to recalculate this later.
+ bMayForceNumberformat = false;
}
- else if (std::isfinite(fValue))
+ }
+ else if (std::isfinite(fValue))
+ {
+ pFCell->SetHybridDouble(fValue);
+ if (mbPossibleEmptyDisplay && fValue == 0.0)
{
- pFCell->SetHybridDouble(fValue);
- if (mbPossibleEmptyDisplay && fValue == 0.0)
- {
- // Needs to be recalculated to propagate, otherwise would be
- // propagated as empty string. So don't ResetDirty().
- pFCell->SetHybridEmptyDisplayedAsString();
- }
- else
- pFCell->ResetDirty();
+ // Needs to be recalculated to propagate, otherwise would be
+ // propagated as empty string. So don't ResetDirty().
+ pFCell->SetHybridEmptyDisplayedAsString();
}
-
- if (bMayForceNumberformat)
- // Re-calculate to get number format only when style is not set.
- pFCell->SetNeedNumberFormat(!mbHasStyle);
+ else
+ pFCell->ResetDirty();
}
+
+ if (bMayForceNumberformat)
+ // Re-calculate to get number format only when style is not set.
+ pFCell->SetNeedNumberFormat(!mbHasStyle);
}
void ScXMLTableRowCellContext::PutTextCell( const ScAddress& rCurrentPos,
@@ -1347,42 +1347,42 @@ void ScXMLTableRowCellContext::PutFormulaCell( const ScAddress& rCellPos )
ScExternalRefManager::ApiGuard aExtRefGuard(pDoc);
- if ( !aText.isEmpty() )
- {
- // temporary formula string as string tokens
- std::unique_ptr<ScTokenArray> pCode(new ScTokenArray(pDoc));
+ if ( aText.isEmpty() )
+ return;
- // Check the special case of a single error constant without leading
- // '=' and create an error formula cell without tokens.
- FormulaError nError = GetScImport().GetFormulaErrorConstant(aText);
- if (nError != FormulaError::NONE)
+ // temporary formula string as string tokens
+ std::unique_ptr<ScTokenArray> pCode(new ScTokenArray(pDoc));
+
+ // Check the special case of a single error constant without leading
+ // '=' and create an error formula cell without tokens.
+ FormulaError nError = GetScImport().GetFormulaErrorConstant(aText);
+ if (nError != FormulaError::NONE)
+ {
+ pCode->SetCodeError(nError);
+ }
+ else
+ {
+ // 5.2 and earlier wrote broken "Err:xxx" as formula to designate
+ // an error formula cell.
+ if (aText.startsWithIgnoreAsciiCase("Err:") && aText.getLength() <= 9 &&
+ ((nError =
+ GetScImport().GetFormulaErrorConstant( "#ERR" + aText.copy(4) + "!")) != FormulaError::NONE))
{
pCode->SetCodeError(nError);
}
else
{
- // 5.2 and earlier wrote broken "Err:xxx" as formula to designate
- // an error formula cell.
- if (aText.startsWithIgnoreAsciiCase("Err:") && aText.getLength() <= 9 &&
- ((nError =
- GetScImport().GetFormulaErrorConstant( "#ERR" + aText.copy(4) + "!")) != FormulaError::NONE))
- {
- pCode->SetCodeError(nError);
- }
- else
- {
- OUString aFormulaNmsp = maFormula->second;
- if( eGrammar != formula::FormulaGrammar::GRAM_EXTERNAL )
- aFormulaNmsp.clear();
- pCode->AssignXMLString( aText, aFormulaNmsp );
- rDocImport.getDoc().IncXMLImportedFormulaCount( aText.getLength() );
- }
+ OUString aFormulaNmsp = maFormula->second;
+ if( eGrammar != formula::FormulaGrammar::GRAM_EXTERNAL )
+ aFormulaNmsp.clear();
+ pCode->AssignXMLString( aText, aFormulaNmsp );
+ rDocImport.getDoc().IncXMLImportedFormulaCount( aText.getLength() );
}
-
- ScFormulaCell* pNewCell = new ScFormulaCell(pDoc, rCellPos, std::move(pCode), eGrammar, ScMatrixMode::NONE);
- SetFormulaCell(pNewCell);
- rDocImport.setFormulaCell(rCellPos, pNewCell);
}
+
+ ScFormulaCell* pNewCell = new ScFormulaCell(pDoc, rCellPos, std::move(pCode), eGrammar, ScMatrixMode::NONE);
+ SetFormulaCell(pNewCell);
+ rDocImport.setFormulaCell(rCellPos, pNewCell);
}
void ScXMLTableRowCellContext::AddFormulaCell( const ScAddress& rCellPos )
diff --git a/sc/source/filter/xml/xmlcoli.cxx b/sc/source/filter/xml/xmlcoli.cxx
index d1e581553488..612161d78731 100644
--- a/sc/source/filter/xml/xmlcoli.cxx
+++ b/sc/source/filter/xml/xmlcoli.cxx
@@ -43,34 +43,34 @@ ScXMLTableColContext::ScXMLTableColContext( ScXMLImport& rImport,
nColCount(1),
sVisibility(GetXMLToken(XML_VISIBLE))
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_NUMBER_COLUMNS_REPEATED ):
{
- case XML_ELEMENT( TABLE, XML_NUMBER_COLUMNS_REPEATED ):
- {
- nColCount = std::max<sal_Int32>(aIter.toInt32(), 1);
- nColCount = std::min<sal_Int32>(nColCount, MAXCOLCOUNT);
- }
- break;
- case XML_ELEMENT( TABLE, XML_STYLE_NAME ):
- {
- sStyleName = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_VISIBILITY ):
- {
- sVisibility = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_DEFAULT_CELL_STYLE_NAME ):
- {
- sCellStyleName = aIter.toString();
- }
- break;
+ nColCount = std::max<sal_Int32>(aIter.toInt32(), 1);
+ nColCount = std::min<sal_Int32>(nColCount, MAXCOLCOUNT);
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_STYLE_NAME ):
+ {
+ sStyleName = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_VISIBILITY ):
+ {
+ sVisibility = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_DEFAULT_CELL_STYLE_NAME ):
+ {
+ sCellStyleName = aIter.toString();
}
+ break;
}
}
}
diff --git a/sc/source/filter/xml/xmlcondformat.cxx b/sc/source/filter/xml/xmlcondformat.cxx
index b178927caec8..6c1fd1b8dded 100644
--- a/sc/source/filter/xml/xmlcondformat.cxx
+++ b/sc/source/filter/xml/xmlcondformat.cxx
@@ -343,24 +343,24 @@ void SAL_CALL ScXMLConditionalFormatContext::endFastElement( sal_Int32 /*nElemen
mrParent.mvCondFormatData.push_back( { pInsertedFormat, nTab } );
- if (bEligibleForCache)
+ if (!bEligibleForCache)
+ return;
+
+ // Not found in cache, replace oldest cache entry
+ sal_Int64 nOldestAge = -1;
+ size_t nIndexOfOldest = 0;
+ for (auto& aCacheEntry : mrParent.maCache)
{
- // Not found in cache, replace oldest cache entry
- sal_Int64 nOldestAge = -1;
- size_t nIndexOfOldest = 0;
- for (auto& aCacheEntry : mrParent.maCache)
+ if (aCacheEntry.mnAge > nOldestAge)
{
- if (aCacheEntry.mnAge > nOldestAge)
- {
- nOldestAge = aCacheEntry.mnAge;
- nIndexOfOldest = (&aCacheEntry - &mrParent.maCache.front());
- }
+ nOldestAge = aCacheEntry.mnAge;
+ nIndexOfOldest = (&aCacheEntry - &mrParent.maCache.front());
}
- mrParent.maCache[nIndexOfOldest].mpFormat = pInsertedFormat;
- mrParent.maCache[nIndexOfOldest].mbSingleRelativeReference = bSingleRelativeReference;
- mrParent.maCache[nIndexOfOldest].mpTokens = std::move(pTokens);
- mrParent.maCache[nIndexOfOldest].mnAge = 0;
}
+ mrParent.maCache[nIndexOfOldest].mpFormat = pInsertedFormat;
+ mrParent.maCache[nIndexOfOldest].mbSingleRelativeReference = bSingleRelativeReference;
+ mrParent.maCache[nIndexOfOldest].mpTokens = std::move(pTokens);
+ mrParent.maCache[nIndexOfOldest].mnAge = 0;
}
ScXMLConditionalFormatContext::~ScXMLConditionalFormatContext()
diff --git a/sc/source/filter/xml/xmlcvali.cxx b/sc/source/filter/xml/xmlcvali.cxx
index 658f8007d0e7..2be3f74c1be7 100644
--- a/sc/source/filter/xml/xmlcvali.cxx
+++ b/sc/source/filter/xml/xmlcvali.cxx
@@ -171,45 +171,45 @@ ScXMLContentValidationContext::ScXMLContentValidationContext( ScXMLImport& rImpo
bDisplayHelp(false),
bDisplayError(false)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_NAME ):
+ sName = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_CONDITION ):
+ sCondition = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_BASE_CELL_ADDRESS ):
+ sBaseCellAddress = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_ALLOW_EMPTY_CELL ):
+ if (IsXMLToken(aIter, XML_FALSE))
+ bAllowEmptyCell = false;
+ break;
+ case XML_ELEMENT( TABLE, XML_DISPLAY_LIST ):
+ if (IsXMLToken(aIter, XML_NO))
{
- case XML_ELEMENT( TABLE, XML_NAME ):
- sName = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_CONDITION ):
- sCondition = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_BASE_CELL_ADDRESS ):
- sBaseCellAddress = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_ALLOW_EMPTY_CELL ):
- if (IsXMLToken(aIter, XML_FALSE))
- bAllowEmptyCell = false;
- break;
- case XML_ELEMENT( TABLE, XML_DISPLAY_LIST ):
- if (IsXMLToken(aIter, XML_NO))
- {
- nShowList = sheet::TableValidationVisibility::INVISIBLE;
- }
- else if (IsXMLToken(aIter, XML_UNSORTED))
- {
- nShowList = sheet::TableValidationVisibility::UNSORTED;
- }
- else if (IsXMLToken(aIter, XML_SORT_ASCENDING))
- {
- nShowList = sheet::TableValidationVisibility::SORTEDASCENDING;
- }
- else if (IsXMLToken(aIter, XML_SORTED_ASCENDING))
- {
- // Read old wrong value, fdo#72548
- nShowList = sheet::TableValidationVisibility::SORTEDASCENDING;
- }
- break;
+ nShowList = sheet::TableValidationVisibility::INVISIBLE;
+ }
+ else if (IsXMLToken(aIter, XML_UNSORTED))
+ {
+ nShowList = sheet::TableValidationVisibility::UNSORTED;
+ }
+ else if (IsXMLToken(aIter, XML_SORT_ASCENDING))
+ {
+ nShowList = sheet::TableValidationVisibility::SORTEDASCENDING;
}
+ else if (IsXMLToken(aIter, XML_SORTED_ASCENDING))
+ {
+ // Read old wrong value, fdo#72548
+ nShowList = sheet::TableValidationVisibility::SORTEDASCENDING;
+ }
+ break;
}
}
}
@@ -279,77 +279,77 @@ void ScXMLContentValidationContext::GetCondition( ScMyImportValidation& rValidat
rValidation.aValidationType = sheet::ValidationType_ANY; // default if no condition is given
rValidation.aOperator = sheet::ConditionOperator_NONE;
- if( !sCondition.isEmpty() )
+ if( sCondition.isEmpty() )
+ return;
+
+ // extract leading namespace from condition string
+ OUString aCondition, aConditionNmsp;
+ FormulaGrammar::Grammar eGrammar = FormulaGrammar::GRAM_UNSPECIFIED;
+ GetScImport().ExtractFormulaNamespaceGrammar( aCondition, aConditionNmsp, eGrammar, sCondition );
+ bool bHasNmsp = aCondition.getLength() < sCondition.getLength();
+
+ // parse a condition from the attribute string
+ ScXMLConditionParseResult aParseResult;
+ ScXMLConditionHelper::parseCondition( aParseResult, aCondition, 0 );
+
+ /* Check the result. A valid value in aParseResult.meToken implies
+ that the other members of aParseResult are filled with valid data
+ for that token. */
+ bool bSecondaryPart = false;
+ switch( aParseResult.meToken )
{
- // extract leading namespace from condition string
- OUString aCondition, aConditionNmsp;
- FormulaGrammar::Grammar eGrammar = FormulaGrammar::GRAM_UNSPECIFIED;
- GetScImport().ExtractFormulaNamespaceGrammar( aCondition, aConditionNmsp, eGrammar, sCondition );
- bool bHasNmsp = aCondition.getLength() < sCondition.getLength();
-
- // parse a condition from the attribute string
- ScXMLConditionParseResult aParseResult;
- ScXMLConditionHelper::parseCondition( aParseResult, aCondition, 0 );
-
- /* Check the result. A valid value in aParseResult.meToken implies
- that the other members of aParseResult are filled with valid data
- for that token. */
- bool bSecondaryPart = false;
- switch( aParseResult.meToken )
- {
- case XML_COND_TEXTLENGTH: // condition is 'cell-content-text-length()<operator><expression>'
- case XML_COND_TEXTLENGTH_ISBETWEEN: // condition is 'cell-content-text-length-is-between(<expression1>,<expression2>)'
- case XML_COND_TEXTLENGTH_ISNOTBETWEEN: // condition is 'cell-content-text-length-is-not-between(<expression1>,<expression2>)'
- case XML_COND_ISINLIST: // condition is 'cell-content-is-in-list(<expression>)'
- case XML_COND_ISTRUEFORMULA: // condition is 'is-true-formula(<expression>)'
- rValidation.aValidationType = aParseResult.meValidation;
- rValidation.aOperator = aParseResult.meOperator;
- break;
+ case XML_COND_TEXTLENGTH: // condition is 'cell-content-text-length()<operator><expression>'
+ case XML_COND_TEXTLENGTH_ISBETWEEN: // condition is 'cell-content-text-length-is-between(<expression1>,<expression2>)'
+ case XML_COND_TEXTLENGTH_ISNOTBETWEEN: // condition is 'cell-content-text-length-is-not-between(<expression1>,<expression2>)'
+ case XML_COND_ISINLIST: // condition is 'cell-content-is-in-list(<expression>)'
+ case XML_COND_ISTRUEFORMULA: // condition is 'is-true-formula(<expression>)'
+ rValidation.aValidationType = aParseResult.meValidation;
+ rValidation.aOperator = aParseResult.meOperator;
+ break;
- case XML_COND_ISWHOLENUMBER: // condition is 'cell-content-is-whole-number() and <condition>'
- case XML_COND_ISDECIMALNUMBER: // condition is 'cell-content-is-decimal-number() and <condition>'
- case XML_COND_ISDATE: // condition is 'cell-content-is-date() and <condition>'
- case XML_COND_ISTIME: // condition is 'cell-content-is-time() and <condition>'
- rValidation.aValidationType = aParseResult.meValidation;
- bSecondaryPart = true;
- break;
+ case XML_COND_ISWHOLENUMBER: // condition is 'cell-content-is-whole-number() and <condition>'
+ case XML_COND_ISDECIMALNUMBER: // condition is 'cell-content-is-decimal-number() and <condition>'
+ case XML_COND_ISDATE: // condition is 'cell-content-is-date() and <condition>'
+ case XML_COND_ISTIME: // condition is 'cell-content-is-time() and <condition>'
+ rValidation.aValidationType = aParseResult.meValidation;
+ bSecondaryPart = true;
+ break;
- default:; // unacceptable or unknown condition
- }
+ default:; // unacceptable or unknown condition
+ }
- /* Parse the following 'and <condition>' part of some conditions. This
- updates the members of aParseResult that will contain the operands
- and comparison operator then. */
- if( bSecondaryPart )
+ /* Parse the following 'and <condition>' part of some conditions. This
+ updates the members of aParseResult that will contain the operands
+ and comparison operator then. */
+ if( bSecondaryPart )
+ {
+ ScXMLConditionHelper::parseCondition( aParseResult, aCondition, aParseResult.mnEndIndex );
+ if( aParseResult.meToken == XML_COND_AND )
{
ScXMLConditionHelper::parseCondition( aParseResult, aCondition, aParseResult.mnEndIndex );
- if( aParseResult.meToken == XML_COND_AND )
+ switch( aParseResult.meToken )
{
- ScXMLConditionHelper::parseCondition( aParseResult, aCondition, aParseResult.mnEndIndex );
- switch( aParseResult.meToken )
- {
- case XML_COND_CELLCONTENT: // condition is 'and cell-content()<operator><expression>'
- case XML_COND_ISBETWEEN: // condition is 'and cell-content-is-between(<expression1>,<expression2>)'
- case XML_COND_ISNOTBETWEEN: // condition is 'and cell-content-is-not-between(<expression1>,<expression2>)'
- rValidation.aOperator = aParseResult.meOperator;
- break;
- default:; // unacceptable or unknown condition
- }
+ case XML_COND_CELLCONTENT: // condition is 'and cell-content()<operator><expression>'
+ case XML_COND_ISBETWEEN: // condition is 'and cell-content-is-between(<expression1>,<expression2>)'
+ case XML_COND_ISNOTBETWEEN: // condition is 'and cell-content-is-not-between(<expression1>,<expression2>)'
+ rValidation.aOperator = aParseResult.meOperator;
+ break;
+ default:; // unacceptable or unknown condition
}
}
+ }
- // a validation type (date, integer) without a condition isn't possible
- if( rValidation.aOperator == sheet::ConditionOperator_NONE )
- rValidation.aValidationType = sheet::ValidationType_ANY;
+ // a validation type (date, integer) without a condition isn't possible
+ if( rValidation.aOperator == sheet::ConditionOperator_NONE )
+ rValidation.aValidationType = sheet::ValidationType_ANY;
- // parse the formulas
- if( rValidation.aValidationType != sheet::ValidationType_ANY )
- {
- SetFormula( rValidation.sFormula1, rValidation.sFormulaNmsp1, rValidation.eGrammar1,
- aParseResult.maOperand1, aConditionNmsp, eGrammar, bHasNmsp );
- SetFormula( rValidation.sFormula2, rValidation.sFormulaNmsp2, rValidation.eGrammar2,
- aParseResult.maOperand2, aConditionNmsp, eGrammar, bHasNmsp );
- }
+ // parse the formulas
+ if( rValidation.aValidationType != sheet::ValidationType_ANY )
+ {
+ SetFormula( rValidation.sFormula1, rValidation.sFormulaNmsp1, rValidation.eGrammar1,
+ aParseResult.maOperand1, aConditionNmsp, eGrammar, bHasNmsp );
+ SetFormula( rValidation.sFormula2, rValidation.sFormulaNmsp2, rValidation.eGrammar2,
+ aParseResult.maOperand2, aConditionNmsp, eGrammar, bHasNmsp );
}
}
@@ -419,19 +419,19 @@ ScXMLHelpMessageContext::ScXMLHelpMessageContext( ScXMLImport& rImport,
bDisplay(false)
{
pValidationContext = pTempValidationContext;
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_TITLE ):
- sTitle = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_DISPLAY ):
- bDisplay = IsXMLToken(aIter, XML_TRUE);
- break;
- }
+ case XML_ELEMENT( TABLE, XML_TITLE ):
+ sTitle = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_DISPLAY ):
+ bDisplay = IsXMLToken(aIter, XML_TRUE);
+ break;
}
}
}
@@ -473,22 +473,22 @@ ScXMLErrorMessageContext::ScXMLErrorMessageContext( ScXMLImport& rImport,
bDisplay(false)
{
pValidationContext = pTempValidationContext;
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_TITLE ):
- sTitle = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_MESSAGE_TYPE ):
- sMessageType = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_DISPLAY ):
- bDisplay = IsXMLToken(aIter, XML_TRUE);
- break;
- }
+ case XML_ELEMENT( TABLE, XML_TITLE ):
+ sTitle = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_MESSAGE_TYPE ):
+ sMessageType = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_DISPLAY ):
+ bDisplay = IsXMLToken(aIter, XML_TRUE);
+ break;
}
}
}
@@ -526,18 +526,18 @@ ScXMLErrorMacroContext::ScXMLErrorMacroContext( ScXMLImport& rImport,
bExecute(false)
{
pValidationContext = pTempValidationContext;
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_NAME ):
- break;
- case XML_ELEMENT( TABLE, XML_EXECUTE ):
- bExecute = IsXMLToken(aIter, XML_TRUE);
- break;
- }
+ case XML_ELEMENT( TABLE, XML_NAME ):
+ break;
+ case XML_ELEMENT( TABLE, XML_EXECUTE ):
+ bExecute = IsXMLToken(aIter, XML_TRUE);
+ break;
}
}
}
diff --git a/sc/source/filter/xml/xmldpimp.cxx b/sc/source/filter/xml/xmldpimp.cxx
index 8b9bcd98325e..71ddfd5b51f6 100644
--- a/sc/source/filter/xml/xmldpimp.cxx
+++ b/sc/source/filter/xml/xmldpimp.cxx
@@ -104,83 +104,83 @@ ScXMLDataPilotTableContext::ScXMLDataPilotTableContext( ScXMLImport& rImport,
bDrillDown(true),
bHeaderGridLayout(false)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_NAME ):
{
- case XML_ELEMENT( TABLE, XML_NAME ):
- {
- sDataPilotTableName = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_APPLICATION_DATA ):
- {
- sApplicationData = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_GRAND_TOTAL ):
- {
- if (IsXMLToken(aIter, XML_BOTH))
- {
- maRowGrandTotal.mbVisible = true;
- maColGrandTotal.mbVisible = true;
- }
- else if (IsXMLToken(aIter, XML_ROW))
- {
- maRowGrandTotal.mbVisible = true;
- maColGrandTotal.mbVisible = false;
- }
- else if (IsXMLToken(aIter, XML_COLUMN))
- {
- maRowGrandTotal.mbVisible = false;
- maColGrandTotal.mbVisible = true;
- }
- else
- {
- maRowGrandTotal.mbVisible = false;
- maColGrandTotal.mbVisible = false;
- }
- }
- break;
- case XML_ELEMENT( TABLE, XML_IGNORE_EMPTY_ROWS ):
- {
- bIgnoreEmptyRows = IsXMLToken(aIter, XML_TRUE);
- }
- break;
- case XML_ELEMENT( TABLE, XML_IDENTIFY_CATEGORIES ):
- {
- bIdentifyCategories = IsXMLToken(aIter, XML_TRUE);
- }
- break;
- case XML_ELEMENT( TABLE, XML_TARGET_RANGE_ADDRESS ):
- {
- sal_Int32 nOffset(0);
- bTargetRangeAddress = ScRangeStringConverter::GetRangeFromString( aTargetRangeAddress, aIter.toString(), pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset );
- }
- break;
- case XML_ELEMENT( TABLE, XML_BUTTONS ):
+ sDataPilotTableName = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_APPLICATION_DATA ):
+ {
+ sApplicationData = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_GRAND_TOTAL ):
+ {
+ if (IsXMLToken(aIter, XML_BOTH))
{
- sButtons = aIter.toString();
+ maRowGrandTotal.mbVisible = true;
+ maColGrandTotal.mbVisible = true;
}
- break;
- case XML_ELEMENT( TABLE, XML_SHOW_FILTER_BUTTON ):
+ else if (IsXMLToken(aIter, XML_ROW))
{
- bShowFilter = IsXMLToken(aIter, XML_TRUE);
+ maRowGrandTotal.mbVisible = true;
+ maColGrandTotal.mbVisible = false;
}
- break;
- case XML_ELEMENT( TABLE, XML_DRILL_DOWN_ON_DOUBLE_CLICK ):
+ else if (IsXMLToken(aIter, XML_COLUMN))
{
- bDrillDown = IsXMLToken(aIter, XML_TRUE);
+ maRowGrandTotal.mbVisible = false;
+ maColGrandTotal.mbVisible = true;
}
- break;
- case XML_ELEMENT( TABLE, XML_HEADER_GRID_LAYOUT ):
+ else
{
- bHeaderGridLayout = IsXMLToken(aIter, XML_TRUE);
+ maRowGrandTotal.mbVisible = false;
+ maColGrandTotal.mbVisible = false;
}
- break;
}
+ break;
+ case XML_ELEMENT( TABLE, XML_IGNORE_EMPTY_ROWS ):
+ {
+ bIgnoreEmptyRows = IsXMLToken(aIter, XML_TRUE);
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_IDENTIFY_CATEGORIES ):
+ {
+ bIdentifyCategories = IsXMLToken(aIter, XML_TRUE);
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_TARGET_RANGE_ADDRESS ):
+ {
+ sal_Int32 nOffset(0);
+ bTargetRangeAddress = ScRangeStringConverter::GetRangeFromString( aTargetRangeAddress, aIter.toString(), pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset );
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_BUTTONS ):
+ {
+ sButtons = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_SHOW_FILTER_BUTTON ):
+ {
+ bShowFilter = IsXMLToken(aIter, XML_TRUE);
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_DRILL_DOWN_ON_DOUBLE_CLICK ):
+ {
+ bDrillDown = IsXMLToken(aIter, XML_TRUE);
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_HEADER_GRID_LAYOUT ):
+ {
+ bHeaderGridLayout = IsXMLToken(aIter, XML_TRUE);
+ }
+ break;
}
}
}
@@ -383,39 +383,39 @@ void ScXMLDataPilotTableContext::SetSelectedPage( const OUString& rDimName, cons
void ScXMLDataPilotTableContext::AddDimension(ScDPSaveDimension* pDim)
{
- if (pDPSave)
- {
- if (pDim->IsDataLayout())
- mnDataLayoutType = pDim->GetOrientation();
+ if (!pDPSave)
+ return;
- // if a dimension with that name has already been inserted,
- // mark the new one as duplicate
- if ( !pDim->IsDataLayout() &&
- pDPSave->GetExistingDimensionByName(pDim->GetName()) )
- pDim->SetDupFlag(true);
+ if (pDim->IsDataLayout())
+ mnDataLayoutType = pDim->GetOrientation();
- switch (pDim->GetOrientation())
- {
- case sheet::DataPilotFieldOrientation_ROW:
- ++mnRowFieldCount;
- break;
- case sheet::DataPilotFieldOrientation_COLUMN:
- ++mnColFieldCount;
- break;
- case sheet::DataPilotFieldOrientation_PAGE:
- ++mnPageFieldCount;
+ // if a dimension with that name has already been inserted,
+ // mark the new one as duplicate
+ if ( !pDim->IsDataLayout() &&
+ pDPSave->GetExistingDimensionByName(pDim->GetName()) )
+ pDim->SetDupFlag(true);
+
+ switch (pDim->GetOrientation())
+ {
+ case sheet::DataPilotFieldOrientation_ROW:
+ ++mnRowFieldCount;
+ break;
+ case sheet::DataPilotFieldOrientation_COLUMN:
+ ++mnColFieldCount;
+ break;
+ case sheet::DataPilotFieldOrientation_PAGE:
+ ++mnPageFieldCount;
+ break;
+ case sheet::DataPilotFieldOrientation_DATA:
+ ++mnDataFieldCount;
+ break;
+ case sheet::DataPilotFieldOrientation_HIDDEN:
break;
- case sheet::DataPilotFieldOrientation_DATA:
- ++mnDataFieldCount;
+ default:
break;
- case sheet::DataPilotFieldOrientation_HIDDEN:
- break;
- default:
- break;
- }
-
- pDPSave->AddDimension(pDim);
}
+
+ pDPSave->AddDimension(pDim);
}
void ScXMLDataPilotTableContext::AddGroupDim(const ScDPSaveNumGroupDimension& aNumGroupDim)
@@ -557,22 +557,22 @@ ScXMLDPSourceSQLContext::ScXMLDPSourceSQLContext( ScXMLImport& rImport,
ScXMLDataPilotTableContext* pDataPilotTable) :
ScXMLImportContext( rImport )
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_DATABASE_NAME ):
- pDataPilotTable->SetDatabaseName(aIter.toString());
- break;
- case XML_ELEMENT( TABLE, XML_SQL_STATEMENT ):
- pDataPilotTable->SetSourceObject(aIter.toString());
- break;
- case XML_ELEMENT( TABLE, XML_PARSE_SQL_STATEMENT ):
- pDataPilotTable->SetNative(!IsXMLToken(aIter, XML_TRUE));
- break;
- }
+ case XML_ELEMENT( TABLE, XML_DATABASE_NAME ):
+ pDataPilotTable->SetDatabaseName(aIter.toString());
+ break;
+ case XML_ELEMENT( TABLE, XML_SQL_STATEMENT ):
+ pDataPilotTable->SetSourceObject(aIter.toString());
+ break;
+ case XML_ELEMENT( TABLE, XML_PARSE_SQL_STATEMENT ):
+ pDataPilotTable->SetNative(!IsXMLToken(aIter, XML_TRUE));
+ break;
}
}
}
@@ -586,20 +586,20 @@ ScXMLDPSourceTableContext::ScXMLDPSourceTableContext( ScXMLImport& rImport,
ScXMLDataPilotTableContext* pDataPilotTable) :
ScXMLImportContext( rImport )
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_DATABASE_NAME ):
- pDataPilotTable->SetDatabaseName(aIter.toString());
- break;
- case XML_ELEMENT( TABLE, XML_TABLE_NAME ):
- case XML_ELEMENT( TABLE, XML_DATABASE_TABLE_NAME ):
- pDataPilotTable->SetSourceObject(aIter.toString());
- break;
- }
+ case XML_ELEMENT( TABLE, XML_DATABASE_NAME ):
+ pDataPilotTable->SetDatabaseName(aIter.toString());
+ break;
+ case XML_ELEMENT( TABLE, XML_TABLE_NAME ):
+ case XML_ELEMENT( TABLE, XML_DATABASE_TABLE_NAME ):
+ pDataPilotTable->SetSourceObject(aIter.toString());
+ break;
}
}
}
@@ -613,19 +613,19 @@ ScXMLDPSourceQueryContext::ScXMLDPSourceQueryContext( ScXMLImport& rImport,
ScXMLDataPilotTableContext* pDataPilotTable) :
ScXMLImportContext( rImport )
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_DATABASE_NAME ):
- pDataPilotTable->SetDatabaseName(aIter.toString());
- break;
- case XML_ELEMENT( TABLE, XML_QUERY_NAME ):
- pDataPilotTable->SetSourceObject(aIter.toString());
- break;
- }
+ case XML_ELEMENT( TABLE, XML_DATABASE_NAME ):
+ pDataPilotTable->SetDatabaseName(aIter.toString());
+ break;
+ case XML_ELEMENT( TABLE, XML_QUERY_NAME ):
+ pDataPilotTable->SetSourceObject(aIter.toString());
+ break;
}
}
}
@@ -639,28 +639,28 @@ ScXMLSourceServiceContext::ScXMLSourceServiceContext( ScXMLImport& rImport,
ScXMLDataPilotTableContext* pDataPilotTable) :
ScXMLImportContext( rImport )
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_NAME ):
- pDataPilotTable->SetServiceName(aIter.toString());
- break;
- case XML_ELEMENT( TABLE, XML_SOURCE_NAME ):
- pDataPilotTable->SetServiceSourceName(aIter.toString());
- break;
- case XML_ELEMENT( TABLE, XML_OBJECT_NAME ):
- pDataPilotTable->SetServiceSourceObject(aIter.toString());
- break;
- case XML_ELEMENT( TABLE, XML_USER_NAME ):
- pDataPilotTable->SetServiceUsername(aIter.toString());
- break;
- case XML_ELEMENT( TABLE, XML_PASSWORD ):
- pDataPilotTable->SetServicePassword(aIter.toString());
- break;
- }
+ case XML_ELEMENT( TABLE, XML_NAME ):
+ pDataPilotTable->SetServiceName(aIter.toString());
+ break;
+ case XML_ELEMENT( TABLE, XML_SOURCE_NAME ):
+ pDataPilotTable->SetServiceSourceName(aIter.toString());
+ break;
+ case XML_ELEMENT( TABLE, XML_OBJECT_NAME ):
+ pDataPilotTable->SetServiceSourceObject(aIter.toString());
+ break;
+ case XML_ELEMENT( TABLE, XML_USER_NAME ):
+ pDataPilotTable->SetServiceUsername(aIter.toString());
+ break;
+ case XML_ELEMENT( TABLE, XML_PASSWORD ):
+ pDataPilotTable->SetServicePassword(aIter.toString());
+ break;
}
}
}
@@ -677,30 +677,30 @@ ScXMLDataPilotGrandTotalContext::ScXMLDataPilotGrandTotalContext(
meOrientation(NONE),
mbVisible(false)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_DISPLAY ):
- mbVisible = IsXMLToken(aIter, XML_TRUE);
- break;
- case XML_ELEMENT( TABLE, XML_ORIENTATION ):
- if (IsXMLToken(aIter, XML_BOTH))
- meOrientation = BOTH;
- else if (IsXMLToken(aIter, XML_ROW))
- meOrientation = ROW;
- else if (IsXMLToken(aIter, XML_COLUMN))
- meOrientation = COLUMN;
- break;
- case XML_ELEMENT( TABLE, XML_DISPLAY_NAME ):
- case XML_ELEMENT( TABLE_EXT, XML_DISPLAY_NAME ):
- maDisplayName = aIter.toString();
+ case XML_ELEMENT( TABLE, XML_DISPLAY ):
+ mbVisible = IsXMLToken(aIter, XML_TRUE);
+ break;
+ case XML_ELEMENT( TABLE, XML_ORIENTATION ):
+ if (IsXMLToken(aIter, XML_BOTH))
+ meOrientation = BOTH;
+ else if (IsXMLToken(aIter, XML_ROW))
+ meOrientation = ROW;
+ else if (IsXMLToken(aIter, XML_COLUMN))
+ meOrientation = COLUMN;
+ break;
+ case XML_ELEMENT( TABLE, XML_DISPLAY_NAME ):
+ case XML_ELEMENT( TABLE_EXT, XML_DISPLAY_NAME ):
+ maDisplayName = aIter.toString();
+ break;
+ default:
break;
- default:
- break;
- }
}
}
}
@@ -735,24 +735,24 @@ ScXMLSourceCellRangeContext::ScXMLSourceCellRangeContext( ScXMLImport& rImport,
ScXMLImportContext( rImport ),
pDataPilotTable(pTempDataPilotTable)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_CELL_RANGE_ADDRESS ):
{
- case XML_ELEMENT( TABLE, XML_CELL_RANGE_ADDRESS ):
- {
- ScRange aSourceRangeAddress;
- sal_Int32 nOffset(0);
- if (ScRangeStringConverter::GetRangeFromString( aSourceRangeAddress, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ))
- pDataPilotTable->SetSourceCellRangeAddress(aSourceRangeAddress);
- }
- break;
- case XML_ELEMENT( TABLE, XML_NAME ):
- pDataPilotTable->SetSourceRangeName(aIter.toString());
- break;
+ ScRange aSourceRangeAddress;
+ sal_Int32 nOffset(0);
+ if (ScRangeStringConverter::GetRangeFromString( aSourceRangeAddress, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ))
+ pDataPilotTable->SetSourceCellRangeAddress(aSourceRangeAddress);
}
+ break;
+ case XML_ELEMENT( TABLE, XML_NAME ):
+ pDataPilotTable->SetSourceRangeName(aIter.toString());
+ break;
}
}
}
@@ -906,53 +906,53 @@ void ScXMLDataPilotFieldContext::AddGroup(const ::std::vector<OUString>& rMember
void SAL_CALL ScXMLDataPilotFieldContext::endFastElement( sal_Int32 /*nElement*/ )
{
- if (xDim)
+ if (!xDim)
+ return;
+
+ xDim->SetUsedHierarchy(nUsedHierarchy);
+ xDim->SetFunction(nFunction);
+ xDim->SetOrientation(nOrientation);
+ if (bSelectedPage)
{
- xDim->SetUsedHierarchy(nUsedHierarchy);
- xDim->SetFunction(nFunction);
- xDim->SetOrientation(nOrientation);
- if (bSelectedPage)
- {
- pDataPilotTable->SetSelectedPage(xDim->GetName(), sSelectedPage);
- }
- pDataPilotTable->AddDimension(xDim.release());
- if (bIsGroupField)
+ pDataPilotTable->SetSelectedPage(xDim->GetName(), sSelectedPage);
+ }
+ pDataPilotTable->AddDimension(xDim.release());
+ if (!bIsGroupField)
+ return;
+
+ ScDPNumGroupInfo aInfo;
+ aInfo.mbEnable = true;
+ aInfo.mbDateValues = bDateValue;
+ aInfo.mbAutoStart = bAutoStart;
+ aInfo.mbAutoEnd = bAutoEnd;
+ aInfo.mfStart = fStart;
+ aInfo.mfEnd = fEnd;
+ aInfo.mfStep = fStep;
+ if (!sGroupSource.isEmpty())
+ {
+ ScDPSaveGroupDimension aGroupDim(sGroupSource, sName);
+ if (nGroupPart)
+ aGroupDim.SetDateInfo(aInfo, nGroupPart);
+ else
{
- ScDPNumGroupInfo aInfo;
- aInfo.mbEnable = true;
- aInfo.mbDateValues = bDateValue;
- aInfo.mbAutoStart = bAutoStart;
- aInfo.mbAutoEnd = bAutoEnd;
- aInfo.mfStart = fStart;
- aInfo.mfEnd = fEnd;
- aInfo.mfStep = fStep;
- if (!sGroupSource.isEmpty())
+ for (const auto& rGroup : aGroups)
{
- ScDPSaveGroupDimension aGroupDim(sGroupSource, sName);
- if (nGroupPart)
- aGroupDim.SetDateInfo(aInfo, nGroupPart);
- else
+ ScDPSaveGroupItem aItem(rGroup.aName);
+ for (const auto& rMember : rGroup.aMembers)
{
- for (const auto& rGroup : aGroups)
- {
- ScDPSaveGroupItem aItem(rGroup.aName);
- for (const auto& rMember : rGroup.aMembers)
- {
- aItem.AddElement(rMember);
- }
- aGroupDim.AddGroupItem(aItem);
- }
+ aItem.AddElement(rMember);
}
- pDataPilotTable->AddGroupDim(aGroupDim);
- }
- else //NumGroup
- {
- ScDPSaveNumGroupDimension aNumGroupDim(sName, aInfo);
- if (nGroupPart)
- aNumGroupDim.SetDateInfo(aInfo, nGroupPart);
- pDataPilotTable->AddGroupDim(aNumGroupDim);
+ aGroupDim.AddGroupItem(aItem);
}
}
+ pDataPilotTable->AddGroupDim(aGroupDim);
+ }
+ else //NumGroup
+ {
+ ScDPSaveNumGroupDimension aNumGroupDim(sName, aInfo);
+ if (nGroupPart)
+ aNumGroupDim.SetDateInfo(aInfo, nGroupPart);
+ pDataPilotTable->AddGroupDim(aNumGroupDim);
}
}
@@ -1027,19 +1027,19 @@ ScXMLDataPilotLevelContext::ScXMLDataPilotLevelContext( ScXMLImport& rImport,
ScXMLImportContext( rImport ),
pDataPilotField(pTempDataPilotField)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_SHOW_EMPTY ):
- pDataPilotField->SetShowEmpty(IsXMLToken(aIter, XML_TRUE));
- break;
- case XML_ELEMENT( CALC_EXT, XML_REPEAT_ITEM_LABELS ):
- pDataPilotField->SetRepeatItemLabels(IsXMLToken(aIter, XML_TRUE));
- break;
- }
+ case XML_ELEMENT( TABLE, XML_SHOW_EMPTY ):
+ pDataPilotField->SetShowEmpty(IsXMLToken(aIter, XML_TRUE));
+ break;
+ case XML_ELEMENT( CALC_EXT, XML_REPEAT_ITEM_LABELS ):
+ pDataPilotField->SetRepeatItemLabels(IsXMLToken(aIter, XML_TRUE));
+ break;
}
}
}
@@ -1248,20 +1248,20 @@ ScXMLDataPilotSubTotalContext::ScXMLDataPilotSubTotalContext( ScXMLImport& rImpo
ScXMLDataPilotSubTotalsContext* pDataPilotSubTotals) :
ScXMLImportContext( rImport )
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_FUNCTION ):
- pDataPilotSubTotals->AddFunction( ScXMLConverter::GetFunctionFromString2( aIter.toString() ) );
- break;
- case XML_ELEMENT( TABLE, XML_DISPLAY_NAME ):
- case XML_ELEMENT( TABLE_EXT, XML_DISPLAY_NAME ):
- pDataPilotSubTotals->SetDisplayName(aIter.toString());
- break;
- }
+ case XML_ELEMENT( TABLE, XML_FUNCTION ):
+ pDataPilotSubTotals->AddFunction( ScXMLConverter::GetFunctionFromString2( aIter.toString() ) );
+ break;
+ case XML_ELEMENT( TABLE, XML_DISPLAY_NAME ):
+ case XML_ELEMENT( TABLE_EXT, XML_DISPLAY_NAME ):
+ pDataPilotSubTotals->SetDisplayName(aIter.toString());
+ break;
}
}
}
@@ -1308,27 +1308,27 @@ ScXMLDataPilotMemberContext::ScXMLDataPilotMemberContext( ScXMLImport& rImport,
bDisplayDetails( true ),
bHasName( false )
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_NAME ):
- sName = aIter.toString();
- bHasName = true;
- break;
- case XML_ELEMENT( TABLE, XML_DISPLAY_NAME ):
- case XML_ELEMENT( TABLE_EXT, XML_DISPLAY_NAME ):
- maDisplayName = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_DISPLAY ):
- bDisplay = IsXMLToken(aIter, XML_TRUE);
- break;
- case XML_ELEMENT( TABLE, XML_SHOW_DETAILS ):
- bDisplayDetails = IsXMLToken(aIter, XML_TRUE);
- break;
- }
+ case XML_ELEMENT( TABLE, XML_NAME ):
+ sName = aIter.toString();
+ bHasName = true;
+ break;
+ case XML_ELEMENT( TABLE, XML_DISPLAY_NAME ):
+ case XML_ELEMENT( TABLE_EXT, XML_DISPLAY_NAME ):
+ maDisplayName = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_DISPLAY ):
+ bDisplay = IsXMLToken(aIter, XML_TRUE);
+ break;
+ case XML_ELEMENT( TABLE, XML_SHOW_DETAILS ):
+ bDisplayDetails = IsXMLToken(aIter, XML_TRUE);
+ break;
}
}
}
diff --git a/sc/source/filter/xml/xmldrani.cxx b/sc/source/filter/xml/xmldrani.cxx
index 7e7a61d50f6a..ed92086b00ca 100644
--- a/sc/source/filter/xml/xmldrani.cxx
+++ b/sc/source/filter/xml/xmldrani.cxx
@@ -615,22 +615,22 @@ ScXMLSubTotalRulesContext::ScXMLSubTotalRulesContext( ScXMLImport& rImport,
ScXMLImportContext( rImport ),
pDatabaseRangeContext(pTempDatabaseRangeContext)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_BIND_STYLES_TO_CONTENT ):
- pDatabaseRangeContext->SetSubTotalsBindFormatsToContent(IsXMLToken(aIter, XML_TRUE));
- break;
- case XML_ELEMENT( TABLE, XML_CASE_SENSITIVE ):
- pDatabaseRangeContext->SetSubTotalsIsCaseSensitive(IsXMLToken(aIter, XML_TRUE));
- break;
- case XML_ELEMENT( TABLE, XML_PAGE_BREAKS_ON_GROUP_CHANGE ):
- pDatabaseRangeContext->SetSubTotalsInsertPageBreaks(IsXMLToken(aIter, XML_TRUE));
- break;
- }
+ case XML_ELEMENT( TABLE, XML_BIND_STYLES_TO_CONTENT ):
+ pDatabaseRangeContext->SetSubTotalsBindFormatsToContent(IsXMLToken(aIter, XML_TRUE));
+ break;
+ case XML_ELEMENT( TABLE, XML_CASE_SENSITIVE ):
+ pDatabaseRangeContext->SetSubTotalsIsCaseSensitive(IsXMLToken(aIter, XML_TRUE));
+ break;
+ case XML_ELEMENT( TABLE, XML_PAGE_BREAKS_ON_GROUP_CHANGE ):
+ pDatabaseRangeContext->SetSubTotalsInsertPageBreaks(IsXMLToken(aIter, XML_TRUE));
+ break;
}
}
}
@@ -669,51 +669,51 @@ ScXMLSortGroupsContext::ScXMLSortGroupsContext( ScXMLImport& rImport,
ScXMLImportContext( rImport )
{
pDatabaseRangeContext->SetSubTotalsSortGroups(true);
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_DATA_TYPE ):
{
- case XML_ELEMENT( TABLE, XML_DATA_TYPE ):
+ const OUString &sValue = aIter.toString();
+ if (sValue.getLength() > 8)
{
- const OUString &sValue = aIter.toString();
- if (sValue.getLength() > 8)
+ OUString sTemp = sValue.copy(0, 8);
+ if (sTemp == "UserList")
{
- OUString sTemp = sValue.copy(0, 8);
- if (sTemp == "UserList")
- {
- pDatabaseRangeContext->SetSubTotalsEnabledUserList(true);
- sTemp = sValue.copy(8);
- pDatabaseRangeContext->SetSubTotalsUserListIndex(static_cast<sal_Int16>(sTemp.toInt32()));
- }
- else
- {
- //if (IsXMLToken(aIter, XML_AUTOMATIC))
- //aSortField.FieldType = util::SortFieldType_AUTOMATIC;
- // is not supported by StarOffice
- }
+ pDatabaseRangeContext->SetSubTotalsEnabledUserList(true);
+ sTemp = sValue.copy(8);
+ pDatabaseRangeContext->SetSubTotalsUserListIndex(static_cast<sal_Int16>(sTemp.toInt32()));
}
else
{
- //if (IsXMLToken(aIter, XML_TEXT))
- //aSortField.FieldType = util::SortFieldType_ALPHANUMERIC;
- // is not supported by StarOffice
- //else if (IsXMLToken(aIter, XML_NUMBER))
- //aSortField.FieldType = util::SortFieldType_NUMERIC;
+ //if (IsXMLToken(aIter, XML_AUTOMATIC))
+ //aSortField.FieldType = util::SortFieldType_AUTOMATIC;
// is not supported by StarOffice
}
}
- break;
- case XML_ELEMENT( TABLE, XML_ORDER ):
+ else
{
- if (IsXMLToken(aIter, XML_ASCENDING))
- pDatabaseRangeContext->SetSubTotalsAscending(true);
- else
- pDatabaseRangeContext->SetSubTotalsAscending(false);
+ //if (IsXMLToken(aIter, XML_TEXT))
+ //aSortField.FieldType = util::SortFieldType_ALPHANUMERIC;
+ // is not supported by StarOffice
+ //else if (IsXMLToken(aIter, XML_NUMBER))
+ //aSortField.FieldType = util::SortFieldType_NUMERIC;
+ // is not supported by StarOffice
}
- break;
}
+ break;
+ case XML_ELEMENT( TABLE, XML_ORDER ):
+ {
+ if (IsXMLToken(aIter, XML_ASCENDING))
+ pDatabaseRangeContext->SetSubTotalsAscending(true);
+ else
+ pDatabaseRangeContext->SetSubTotalsAscending(false);
+ }
+ break;
}
}
}
@@ -777,19 +777,19 @@ ScXMLSubTotalFieldContext::ScXMLSubTotalFieldContext( ScXMLImport& rImport,
ScXMLImportContext( rImport ),
pSubTotalRuleContext(pTempSubTotalRuleContext)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_FIELD_NUMBER ):
- sFieldNumber = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_FUNCTION ):
- sFunction = aIter.toString();
- break;
- }
+ case XML_ELEMENT( TABLE, XML_FIELD_NUMBER ):
+ sFieldNumber = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_FUNCTION ):
+ sFunction = aIter.toString();
+ break;
}
}
}
diff --git a/sc/source/filter/xml/xmlexprt.cxx b/sc/source/filter/xml/xmlexprt.cxx
index 9ca21ed5498d..3ea2aef57ba3 100644
--- a/sc/source/filter/xml/xmlexprt.cxx
+++ b/sc/source/filter/xml/xmlexprt.cxx
@@ -389,27 +389,27 @@ ScXMLExport::ScXMLExport(
GetAutoStylePool()->AddFamily(XmlStyleFamily::TABLE_TABLE, XML_STYLE_FAMILY_TABLE_TABLE_STYLES_NAME,
xTableStylesExportPropertySetMapper, XML_STYLE_FAMILY_TABLE_TABLE_STYLES_PREFIX);
- if( getExportFlags() & (SvXMLExportFlags::STYLES|SvXMLExportFlags::AUTOSTYLES|SvXMLExportFlags::MASTERSTYLES|SvXMLExportFlags::CONTENT) )
- {
- // This name is reserved for the external ref cache tables. This
- // should not conflict with user-defined styles since this name is
- // used for a table style which is not available in the UI.
- sExternalRefTabStyleName = "ta_extref";
- GetAutoStylePool()->RegisterName(XmlStyleFamily::TABLE_TABLE, sExternalRefTabStyleName);
-
- sAttrName = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_NAME));
- sAttrStyleName = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_STYLE_NAME));
- sAttrColumnsRepeated = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_NUMBER_COLUMNS_REPEATED));
- sAttrFormula = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_FORMULA));
- sAttrStringValue = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, GetXMLToken(XML_STRING_VALUE));
- sAttrValueType = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, GetXMLToken(XML_VALUE_TYPE));
- sElemCell = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_TABLE_CELL));
- sElemCoveredCell = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_COVERED_TABLE_CELL));
- sElemCol = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_TABLE_COLUMN));
- sElemRow = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_TABLE_ROW));
- sElemTab = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_TABLE));
- sElemP = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TEXT, GetXMLToken(XML_P));
- }
+ if( !(getExportFlags() & (SvXMLExportFlags::STYLES|SvXMLExportFlags::AUTOSTYLES|SvXMLExportFlags::MASTERSTYLES|SvXMLExportFlags::CONTENT)) )
+ return;
+
+ // This name is reserved for the external ref cache tables. This
+ // should not conflict with user-defined styles since this name is
+ // used for a table style which is not available in the UI.
+ sExternalRefTabStyleName = "ta_extref";
+ GetAutoStylePool()->RegisterName(XmlStyleFamily::TABLE_TABLE, sExternalRefTabStyleName);
+
+ sAttrName = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_NAME));
+ sAttrStyleName = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_STYLE_NAME));
+ sAttrColumnsRepeated = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_NUMBER_COLUMNS_REPEATED));
+ sAttrFormula = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_FORMULA));
+ sAttrStringValue = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, GetXMLToken(XML_STRING_VALUE));
+ sAttrValueType = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_OFFICE, GetXMLToken(XML_VALUE_TYPE));
+ sElemCell = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_TABLE_CELL));
+ sElemCoveredCell = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_COVERED_TABLE_CELL));
+ sElemCol = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_TABLE_COLUMN));
+ sElemRow = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_TABLE_ROW));
+ sElemTab = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TABLE, GetXMLToken(XML_TABLE));
+ sElemP = GetNamespaceMap().GetQNameByKey( XML_NAMESPACE_TEXT, GetXMLToken(XML_P));
}
ScXMLExport::~ScXMLExport()
@@ -431,36 +431,36 @@ void ScXMLExport::SetSourceStream( const uno::Reference<io::XInputStream>& xNewS
{
xSourceStream = xNewStream;
- if ( xSourceStream.is() )
- {
- // make sure it's a plain UTF-8 stream as written by OOo itself
+ if ( !xSourceStream.is() )
+ return;
- const char pXmlHeader[] = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
- sal_Int32 nLen = strlen(pXmlHeader);
+ // make sure it's a plain UTF-8 stream as written by OOo itself
- uno::Sequence<sal_Int8> aFileStart(nLen);
- sal_Int32 nRead = xSourceStream->readBytes( aFileStart, nLen );
+ const char pXmlHeader[] = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
+ sal_Int32 nLen = strlen(pXmlHeader);
- if ( nRead != nLen || memcmp( aFileStart.getConstArray(), pXmlHeader, nLen ) != 0 )
- {
- // invalid - ignore stream, save normally
- xSourceStream.clear();
- }
- else
+ uno::Sequence<sal_Int8> aFileStart(nLen);
+ sal_Int32 nRead = xSourceStream->readBytes( aFileStart, nLen );
+
+ if ( nRead != nLen || memcmp( aFileStart.getConstArray(), pXmlHeader, nLen ) != 0 )
+ {
+ // invalid - ignore stream, save normally
+ xSourceStream.clear();
+ }
+ else
+ {
+ // keep track of the bytes already read
+ nSourceStreamPos = nRead;
+
+ const ScSheetSaveData* pSheetData = comphelper::getUnoTunnelImplementation<ScModelObj>(GetModel())->GetSheetSaveData();
+ if (pSheetData)
{
- // keep track of the bytes already read
- nSourceStreamPos = nRead;
+ // add the loaded namespaces to the name space map
- const ScSheetSaveData* pSheetData = comphelper::getUnoTunnelImplementation<ScModelObj>(GetModel())->GetSheetSaveData();
- if (pSheetData)
+ if ( !pSheetData->AddLoadedNamespaces( GetNamespaceMap_() ) )
{
- // add the loaded namespaces to the name space map
-
- if ( !pSheetData->AddLoadedNamespaces( GetNamespaceMap_() ) )
- {
- // conflicts in the namespaces - ignore the stream, save normally
- xSourceStream.clear();
- }
+ // conflicts in the namespaces - ignore the stream, save normally
+ xSourceStream.clear();
}
}
}
@@ -704,29 +704,29 @@ void ScXMLExport::GetAreaLinks( ScMyAreaLinksContainer& rAreaLinks )
// core implementation
void ScXMLExport::GetDetectiveOpList( ScMyDetectiveOpContainer& rDetOp )
{
- if (pDoc)
+ if (!pDoc)
+ return;
+
+ ScDetOpList* pOpList(pDoc->GetDetOpList());
+ if( !pOpList )
+ return;
+
+ size_t nCount = pOpList->Count();
+ for (size_t nIndex = 0; nIndex < nCount; ++nIndex )
{
- ScDetOpList* pOpList(pDoc->GetDetOpList());
- if( pOpList )
+ const ScDetOpData& rDetData = pOpList->GetObject( nIndex);
+ const ScAddress& rDetPos = rDetData.GetPos();
+ SCTAB nTab = rDetPos.Tab();
+ if ( nTab < pDoc->GetTableCount() )
{
- size_t nCount = pOpList->Count();
- for (size_t nIndex = 0; nIndex < nCount; ++nIndex )
- {
- const ScDetOpData& rDetData = pOpList->GetObject( nIndex);
- const ScAddress& rDetPos = rDetData.GetPos();
- SCTAB nTab = rDetPos.Tab();
- if ( nTab < pDoc->GetTableCount() )
- {
- rDetOp.AddOperation( rDetData.GetOperation(), rDetPos, static_cast<sal_uInt32>( nIndex) );
+ rDetOp.AddOperation( rDetData.GetOperation(), rDetPos, static_cast<sal_uInt32>( nIndex) );
- // cells with detective operations are written even if empty
- pSharedData->SetLastColumn( nTab, rDetPos.Col() );
- pSharedData->SetLastRow( nTab, rDetPos.Row() );
- }
- }
- rDetOp.Sort();
+ // cells with detective operations are written even if empty
+ pSharedData->SetLastColumn( nTab, rDetPos.Col() );
+ pSharedData->SetLastRow( nTab, rDetPos.Row() );
}
}
+ rDetOp.Sort();
}
void ScXMLExport::WriteSingleColumn(const sal_Int32 nRepeatColumns, const sal_Int32 nStyleIndex,
@@ -1610,27 +1610,27 @@ void ScXMLExport::GetColumnRowHeader(bool& rHasColumnHeader, ScRange& rColumnHea
OUString& rPrintRanges) const
{
uno::Reference <sheet::XPrintAreas> xPrintAreas (xCurrentTable, uno::UNO_QUERY);
- if (xPrintAreas.is())
- {
- rHasRowHeader = xPrintAreas->getPrintTitleRows();
- rHasColumnHeader = xPrintAreas->getPrintTitleColumns();
- table::CellRangeAddress rTempRowHeaderRange = xPrintAreas->getTitleRows();
- rRowHeaderRange = ScRange(rTempRowHeaderRange.StartColumn,
- rTempRowHeaderRange.StartRow,
- rTempRowHeaderRange.Sheet,
- rTempRowHeaderRange.EndColumn,
- rTempRowHeaderRange.EndRow,
- rTempRowHeaderRange.Sheet);
- table::CellRangeAddress rTempColumnHeaderRange = xPrintAreas->getTitleColumns();
- rColumnHeaderRange = ScRange(rTempColumnHeaderRange.StartColumn,
- rTempColumnHeaderRange.StartRow,
- rTempColumnHeaderRange.Sheet,
- rTempColumnHeaderRange.EndColumn,
- rTempColumnHeaderRange.EndRow,
- rTempColumnHeaderRange.Sheet);
- uno::Sequence< table::CellRangeAddress > aRangeList( xPrintAreas->getPrintAreas() );
- ScRangeStringConverter::GetStringFromRangeList( rPrintRanges, aRangeList, pDoc, FormulaGrammar::CONV_OOO );
- }
+ if (!xPrintAreas.is())
+ return;
+
+ rHasRowHeader = xPrintAreas->getPrintTitleRows();
+ rHasColumnHeader = xPrintAreas->getPrintTitleColumns();
+ table::CellRangeAddress rTempRowHeaderRange = xPrintAreas->getTitleRows();
+ rRowHeaderRange = ScRange(rTempRowHeaderRange.StartColumn,
+ rTempRowHeaderRange.StartRow,
+ rTempRowHeaderRange.Sheet,
+ rTempRowHeaderRange.EndColumn,
+ rTempRowHeaderRange.EndRow,
+ rTempRowHeaderRange.Sheet);
+ table::CellRangeAddress rTempColumnHeaderRange = xPrintAreas->getTitleColumns();
+ rColumnHeaderRange = ScRange(rTempColumnHeaderRange.StartColumn,
+ rTempColumnHeaderRange.StartRow,
+ rTempColumnHeaderRange.Sheet,
+ rTempColumnHeaderRange.EndColumn,
+ rTempColumnHeaderRange.EndRow,
+ rTempColumnHeaderRange.Sheet);
+ uno::Sequence< table::CellRangeAddress > aRangeList( xPrintAreas->getPrintAreas() );
+ ScRangeStringConverter::GetStringFromRangeList( rPrintRanges, aRangeList, pDoc, FormulaGrammar::CONV_OOO );
}
void ScXMLExport::FillFieldGroup(ScOutlineArray* pFields, ScMyOpenCloseColumnRowGroup* pGroups)
@@ -1655,74 +1655,74 @@ void ScXMLExport::FillFieldGroup(ScOutlineArray* pFields, ScMyOpenCloseColumnRow
void ScXMLExport::FillColumnRowGroups()
{
- if (pDoc)
+ if (!pDoc)
+ return;
+
+ ScOutlineTable* pOutlineTable = pDoc->GetOutlineTable( static_cast<SCTAB>(nCurrentTable) );
+ if(pOutlineTable)
{
- ScOutlineTable* pOutlineTable = pDoc->GetOutlineTable( static_cast<SCTAB>(nCurrentTable) );
- if(pOutlineTable)
- {
- ScOutlineArray& rCols(pOutlineTable->GetColArray());
- ScOutlineArray& rRows(pOutlineTable->GetRowArray());
- FillFieldGroup(&rCols, pGroupColumns.get());
- FillFieldGroup(&rRows, pGroupRows.get());
- pSharedData->SetLastColumn(nCurrentTable, pGroupColumns->GetLast());
- pSharedData->SetLastRow(nCurrentTable, pGroupRows->GetLast());
- }
+ ScOutlineArray& rCols(pOutlineTable->GetColArray());
+ ScOutlineArray& rRows(pOutlineTable->GetRowArray());
+ FillFieldGroup(&rCols, pGroupColumns.get());
+ FillFieldGroup(&rRows, pGroupRows.get());
+ pSharedData->SetLastColumn(nCurrentTable, pGroupColumns->GetLast());
+ pSharedData->SetLastRow(nCurrentTable, pGroupRows->GetLast());
}
}
void ScXMLExport::SetBodyAttributes()
{
- if (pDoc && pDoc->IsDocProtected())
+ if (!(pDoc && pDoc->IsDocProtected()))
+ return;
+
+ AddAttribute(XML_NAMESPACE_TABLE, XML_STRUCTURE_PROTECTED, XML_TRUE);
+ OUStringBuffer aBuffer;
+ uno::Sequence<sal_Int8> aPassHash;
+ ScPasswordHash eHashUsed = PASSHASH_UNSPECIFIED;
+ const ScDocProtection* p = pDoc->GetDocProtection();
+ if (p)
{
- AddAttribute(XML_NAMESPACE_TABLE, XML_STRUCTURE_PROTECTED, XML_TRUE);
- OUStringBuffer aBuffer;
- uno::Sequence<sal_Int8> aPassHash;
- ScPasswordHash eHashUsed = PASSHASH_UNSPECIFIED;
- const ScDocProtection* p = pDoc->GetDocProtection();
- if (p)
+ if (p->hasPasswordHash(PASSHASH_SHA1))
{
- if (p->hasPasswordHash(PASSHASH_SHA1))
- {
- aPassHash = p->getPasswordHash(PASSHASH_SHA1);
- eHashUsed = PASSHASH_SHA1;
- }
- else if (p->hasPasswordHash(PASSHASH_SHA256))
- {
- aPassHash = p->getPasswordHash(PASSHASH_SHA256);
- eHashUsed = PASSHASH_SHA256;
- }
- else if (p->hasPasswordHash(PASSHASH_XL, PASSHASH_SHA1))
- {
- aPassHash = p->getPasswordHash(PASSHASH_XL, PASSHASH_SHA1);
- eHashUsed = PASSHASH_XL;
- }
+ aPassHash = p->getPasswordHash(PASSHASH_SHA1);
+ eHashUsed = PASSHASH_SHA1;
}
- ::comphelper::Base64::encode(aBuffer, aPassHash);
- if (!aBuffer.isEmpty())
+ else if (p->hasPasswordHash(PASSHASH_SHA256))
{
- AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTION_KEY, aBuffer.makeStringAndClear());
- if (getSaneDefaultVersion() >= SvtSaveOptions::ODFSVER_012)
- {
- if (eHashUsed == PASSHASH_XL)
- {
- AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTION_KEY_DIGEST_ALGORITHM,
- ScPassHashHelper::getHashURI(PASSHASH_XL));
- if (getSaneDefaultVersion() & SvtSaveOptions::ODFSVER_EXTENDED)
- AddAttribute(XML_NAMESPACE_LO_EXT, XML_PROTECTION_KEY_DIGEST_ALGORITHM_2,
- ScPassHashHelper::getHashURI(PASSHASH_SHA1));
- }
- else if (eHashUsed == PASSHASH_SHA1)
- {
- AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTION_KEY_DIGEST_ALGORITHM,
- ScPassHashHelper::getHashURI(PASSHASH_SHA1));
- }
- else if (eHashUsed == PASSHASH_SHA256)
- {
- AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTION_KEY_DIGEST_ALGORITHM,
- ScPassHashHelper::getHashURI(PASSHASH_SHA256));
- }
- }
+ aPassHash = p->getPasswordHash(PASSHASH_SHA256);
+ eHashUsed = PASSHASH_SHA256;
}
+ else if (p->hasPasswordHash(PASSHASH_XL, PASSHASH_SHA1))
+ {
+ aPassHash = p->getPasswordHash(PASSHASH_XL, PASSHASH_SHA1);
+ eHashUsed = PASSHASH_XL;
+ }
+ }
+ ::comphelper::Base64::encode(aBuffer, aPassHash);
+ if (aBuffer.isEmpty())
+ return;
+
+ AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTION_KEY, aBuffer.makeStringAndClear());
+ if (getSaneDefaultVersion() < SvtSaveOptions::ODFSVER_012)
+ return;
+
+ if (eHashUsed == PASSHASH_XL)
+ {
+ AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTION_KEY_DIGEST_ALGORITHM,
+ ScPassHashHelper::getHashURI(PASSHASH_XL));
+ if (getSaneDefaultVersion() & SvtSaveOptions::ODFSVER_EXTENDED)
+ AddAttribute(XML_NAMESPACE_LO_EXT, XML_PROTECTION_KEY_DIGEST_ALGORITHM_2,
+ ScPassHashHelper::getHashURI(PASSHASH_SHA1));
+ }
+ else if (eHashUsed == PASSHASH_SHA1)
+ {
+ AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTION_KEY_DIGEST_ALGORITHM,
+ ScPassHashHelper::getHashURI(PASSHASH_SHA1));
+ }
+ else if (eHashUsed == PASSHASH_SHA256)
+ {
+ AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTION_KEY_DIGEST_ALGORITHM,
+ ScPassHashHelper::getHashURI(PASSHASH_SHA256));
}
}
@@ -1799,40 +1799,40 @@ void ScXMLExport::CopySourceStream( sal_Int32 nStartOffset, sal_Int32 nEndOffset
{
uno::Reference<xml::sax::XDocumentHandler> xHandler = GetDocHandler();
uno::Reference<io::XActiveDataSource> xDestSource( xHandler, uno::UNO_QUERY );
- if ( xDestSource.is() )
- {
- uno::Reference<io::XOutputStream> xDestStream = xDestSource->getOutputStream();
- uno::Reference<io::XSeekable> xDestSeek( xDestStream, uno::UNO_QUERY );
- if ( xDestSeek.is() )
- {
- // temporary: set same stream again to clear buffer
- xDestSource->setOutputStream( xDestStream );
+ if ( !xDestSource.is() )
+ return;
- if ( getExportFlags() & SvXMLExportFlags::PRETTY )
- {
- const OString aOutStr("\n ");
- uno::Sequence<sal_Int8> aOutSeq( reinterpret_cast<sal_Int8 const *>(aOutStr.getStr()), aOutStr.getLength() );
- xDestStream->writeBytes( aOutSeq );
- }
+ uno::Reference<io::XOutputStream> xDestStream = xDestSource->getOutputStream();
+ uno::Reference<io::XSeekable> xDestSeek( xDestStream, uno::UNO_QUERY );
+ if ( !xDestSeek.is() )
+ return;
- rNewStart = static_cast<sal_Int32>(xDestSeek->getPosition());
+ // temporary: set same stream again to clear buffer
+ xDestSource->setOutputStream( xDestStream );
- if ( nStartOffset > nSourceStreamPos )
- lcl_SkipBytesInBlocks( xSourceStream, nStartOffset - nSourceStreamPos );
+ if ( getExportFlags() & SvXMLExportFlags::PRETTY )
+ {
+ const OString aOutStr("\n ");
+ uno::Sequence<sal_Int8> aOutSeq( reinterpret_cast<sal_Int8 const *>(aOutStr.getStr()), aOutStr.getLength() );
+ xDestStream->writeBytes( aOutSeq );
+ }
- if ( !lcl_CopyStreamElement( xSourceStream, xDestStream, nEndOffset - nStartOffset ) )
- {
- // If copying went wrong, set an error.
- // ScXMLImportWrapper then resets all stream flags, so the next save attempt will use normal saving.
+ rNewStart = static_cast<sal_Int32>(xDestSeek->getPosition());
- uno::Sequence<OUString> aEmptySeq;
- SetError(XMLERROR_CANCEL|XMLERROR_FLAG_SEVERE, aEmptySeq);
- }
- nSourceStreamPos = nEndOffset;
+ if ( nStartOffset > nSourceStreamPos )
+ lcl_SkipBytesInBlocks( xSourceStream, nStartOffset - nSourceStreamPos );
- rNewEnd = static_cast<sal_Int32>(xDestSeek->getPosition());
- }
+ if ( !lcl_CopyStreamElement( xSourceStream, xDestStream, nEndOffset - nStartOffset ) )
+ {
+ // If copying went wrong, set an error.
+ // ScXMLImportWrapper then resets all stream flags, so the next save attempt will use normal saving.
+
+ uno::Sequence<OUString> aEmptySeq;
+ SetError(XMLERROR_CANCEL|XMLERROR_FLAG_SEVERE, aEmptySeq);
}
+ nSourceStreamPos = nEndOffset;
+
+ rNewEnd = static_cast<sal_Int32>(xDestSeek->getPosition());
}
const ScXMLEditAttributeMap& ScXMLExport::GetEditAttributeMap() const
@@ -2051,76 +2051,76 @@ void ScXMLExport::AddStyleFromCells(const uno::Reference<beans::XPropertySet>& x
aPropStates.clear();
if (nNumberFormat == -1)
xProperties->getPropertyValue(SC_UNONAME_NUMFMT) >>= nNumberFormat;
- if (!sStyleName.isEmpty())
+ if (sStyleName.isEmpty())
+ return;
+
+ if (!aPropStates.empty())
{
- if (!aPropStates.empty())
+ sal_Int32 nIndex;
+ if (pOldName)
{
- sal_Int32 nIndex;
- if (pOldName)
+ if (GetAutoStylePool()->AddNamed(*pOldName, XmlStyleFamily::TABLE_CELL, sStyleName, aPropStates))
{
- if (GetAutoStylePool()->AddNamed(*pOldName, XmlStyleFamily::TABLE_CELL, sStyleName, aPropStates))
- {
- GetAutoStylePool()->RegisterName(XmlStyleFamily::TABLE_CELL, *pOldName);
- // add to pCellStyles, so the name is found for normal sheets
- pCellStyles->AddStyleName(*pOldName, nIndex);
- }
+ GetAutoStylePool()->RegisterName(XmlStyleFamily::TABLE_CELL, *pOldName);
+ // add to pCellStyles, so the name is found for normal sheets
+ pCellStyles->AddStyleName(*pOldName, nIndex);
}
- else
+ }
+ else
+ {
+ OUString sName;
+ bool bAdded = false;
+ if (nKey)
{
- OUString sName;
- bool bAdded = false;
- if (nKey)
- {
- uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( GetModel(), uno::UNO_QUERY );
- ScFormatSaveData* pFormatData = comphelper::getUnoTunnelImplementation<ScModelObj>(xSpreadDoc)->GetFormatSaveData();
- auto itr = pFormatData->maIDToName.find(nKey);
- if (itr != pFormatData->maIDToName.end())
- {
- sName = itr->second;
- bAdded = GetAutoStylePool()->AddNamed(sName, XmlStyleFamily::TABLE_CELL, sStyleName, aPropStates);
- if (bAdded)
- GetAutoStylePool()->RegisterName(XmlStyleFamily::TABLE_CELL, sName);
- }
- }
- bool bIsAutoStyle(true);
- if (bAdded || GetAutoStylePool()->Add(sName, XmlStyleFamily::TABLE_CELL, sStyleName, aPropStates))
+ uno::Reference <sheet::XSpreadsheetDocument> xSpreadDoc( GetModel(), uno::UNO_QUERY );
+ ScFormatSaveData* pFormatData = comphelper::getUnoTunnelImplementation<ScModelObj>(xSpreadDoc)->GetFormatSaveData();
+ auto itr = pFormatData->maIDToName.find(nKey);
+ if (itr != pFormatData->maIDToName.end())
{
- pCellStyles->AddStyleName(sName, nIndex);
+ sName = itr->second;
+ bAdded = GetAutoStylePool()->AddNamed(sName, XmlStyleFamily::TABLE_CELL, sStyleName, aPropStates);
+ if (bAdded)
+ GetAutoStylePool()->RegisterName(XmlStyleFamily::TABLE_CELL, sName);
}
- else
- nIndex = pCellStyles->GetIndexOfStyleName(sName, XML_STYLE_FAMILY_TABLE_CELL_STYLES_PREFIX, bIsAutoStyle);
+ }
+ bool bIsAutoStyle(true);
+ if (bAdded || GetAutoStylePool()->Add(sName, XmlStyleFamily::TABLE_CELL, sStyleName, aPropStates))
+ {
+ pCellStyles->AddStyleName(sName, nIndex);
+ }
+ else
+ nIndex = pCellStyles->GetIndexOfStyleName(sName, XML_STYLE_FAMILY_TABLE_CELL_STYLES_PREFIX, bIsAutoStyle);
- const uno::Sequence<table::CellRangeAddress> aAddresses(xCellRanges->getRangeAddresses());
- bool bGetMerge(true);
- for (table::CellRangeAddress const & address : aAddresses)
- {
- pSharedData->SetLastColumn(nTable, address.EndColumn);
- pSharedData->SetLastRow(nTable, address.EndRow);
- pCellStyles->AddRangeStyleName(address, nIndex, bIsAutoStyle, nValidationIndex, nNumberFormat);
- if (bGetMerge)
- bGetMerge = GetMerged(&address, xTable);
- }
+ const uno::Sequence<table::CellRangeAddress> aAddresses(xCellRanges->getRangeAddresses());
+ bool bGetMerge(true);
+ for (table::CellRangeAddress const & address : aAddresses)
+ {
+ pSharedData->SetLastColumn(nTable, address.EndColumn);
+ pSharedData->SetLastRow(nTable, address.EndRow);
+ pCellStyles->AddRangeStyleName(address, nIndex, bIsAutoStyle, nValidationIndex, nNumberFormat);
+ if (bGetMerge)
+ bGetMerge = GetMerged(&address, xTable);
}
}
- else
+ }
+ else
+ {
+ OUString sEncodedStyleName(EncodeStyleName(sStyleName));
+ sal_Int32 nIndex(0);
+ pCellStyles->AddStyleName(sEncodedStyleName, nIndex, false);
+ if ( !pOldName )
{
- OUString sEncodedStyleName(EncodeStyleName(sStyleName));
- sal_Int32 nIndex(0);
- pCellStyles->AddStyleName(sEncodedStyleName, nIndex, false);
- if ( !pOldName )
+ const uno::Sequence<table::CellRangeAddress> aAddresses(xCellRanges->getRangeAddresses());
+ bool bGetMerge(true);
+ for (table::CellRangeAddress const & address : aAddresses)
{
- const uno::Sequence<table::CellRangeAddress> aAddresses(xCellRanges->getRangeAddresses());
- bool bGetMerge(true);
- for (table::CellRangeAddress const & address : aAddresses)
+ if (bGetMerge)
+ bGetMerge = GetMerged(&address, xTable);
+ pCellStyles->AddRangeStyleName(address, nIndex, false, nValidationIndex, nNumberFormat);
+ if( sStyleName != "Default" || nValidationIndex != -1 )
{
- if (bGetMerge)
- bGetMerge = GetMerged(&address, xTable);
- pCellStyles->AddRangeStyleName(address, nIndex, false, nValidationIndex, nNumberFormat);
- if( sStyleName != "Default" || nValidationIndex != -1 )
- {
- pSharedData->SetLastColumn(nTable, address.EndColumn);
- pSharedData->SetLastRow(nTable, address.EndRow);
- }
+ pSharedData->SetLastColumn(nTable, address.EndColumn);
+ pSharedData->SetLastRow(nTable, address.EndRow);
}
}
}
@@ -2131,36 +2131,36 @@ void ScXMLExport::AddStyleFromColumn(const uno::Reference<beans::XPropertySet>&
const OUString* pOldName, sal_Int32& rIndex, bool& rIsVisible)
{
std::vector<XMLPropertyState> aPropStates(xColumnStylesExportPropertySetMapper->Filter(xColumnProperties));
- if(!aPropStates.empty())
+ if(aPropStates.empty())
+ return;
+
+ auto aItr = std::find_if(aPropStates.begin(), aPropStates.end(),
+ [this](const XMLPropertyState& rPropState) {
+ return xColumnStylesPropertySetMapper->GetEntryContextId(rPropState.mnIndex) == CTF_SC_ISVISIBLE; });
+ if (aItr != aPropStates.end())
{
- auto aItr = std::find_if(aPropStates.begin(), aPropStates.end(),
- [this](const XMLPropertyState& rPropState) {
- return xColumnStylesPropertySetMapper->GetEntryContextId(rPropState.mnIndex) == CTF_SC_ISVISIBLE; });
- if (aItr != aPropStates.end())
- {
- aItr->maValue >>= rIsVisible;
- }
+ aItr->maValue >>= rIsVisible;
+ }
- OUString sParent;
- if (pOldName)
+ OUString sParent;
+ if (pOldName)
+ {
+ if (GetAutoStylePool()->AddNamed(*pOldName, XmlStyleFamily::TABLE_COLUMN, sParent, aPropStates))
{
- if (GetAutoStylePool()->AddNamed(*pOldName, XmlStyleFamily::TABLE_COLUMN, sParent, aPropStates))
- {
- GetAutoStylePool()->RegisterName(XmlStyleFamily::TABLE_COLUMN, *pOldName);
- // add to pColumnStyles, so the name is found for normal sheets
- rIndex = pColumnStyles->AddStyleName(*pOldName);
- }
+ GetAutoStylePool()->RegisterName(XmlStyleFamily::TABLE_COLUMN, *pOldName);
+ // add to pColumnStyles, so the name is found for normal sheets
+ rIndex = pColumnStyles->AddStyleName(*pOldName);
}
- else
+ }
+ else
+ {
+ OUString sName;
+ if (GetAutoStylePool()->Add(sName, XmlStyleFamily::TABLE_COLUMN, sParent, aPropStates))
{
- OUString sName;
- if (GetAutoStylePool()->Add(sName, XmlStyleFamily::TABLE_COLUMN, sParent, aPropStates))
- {
- rIndex = pColumnStyles->AddStyleName(sName);
- }
- else
- rIndex = pColumnStyles->GetIndexOfStyleName(sName, XML_STYLE_FAMILY_TABLE_COLUMN_STYLES_PREFIX);
+ rIndex = pColumnStyles->AddStyleName(sName);
}
+ else
+ rIndex = pColumnStyles->GetIndexOfStyleName(sName, XML_STYLE_FAMILY_TABLE_COLUMN_STYLES_PREFIX);
}
}
@@ -2168,28 +2168,28 @@ void ScXMLExport::AddStyleFromRow(const uno::Reference<beans::XPropertySet>& xRo
const OUString* pOldName, sal_Int32& rIndex)
{
std::vector<XMLPropertyState> aPropStates(xRowStylesExportPropertySetMapper->Filter(xRowProperties));
- if(!aPropStates.empty())
+ if(aPropStates.empty())
+ return;
+
+ OUString sParent;
+ if (pOldName)
{
- OUString sParent;
- if (pOldName)
+ if (GetAutoStylePool()->AddNamed(*pOldName, XmlStyleFamily::TABLE_ROW, sParent, aPropStates))
{
- if (GetAutoStylePool()->AddNamed(*pOldName, XmlStyleFamily::TABLE_ROW, sParent, aPropStates))
- {
- GetAutoStylePool()->RegisterName(XmlStyleFamily::TABLE_ROW, *pOldName);
- // add to pRowStyles, so the name is found for normal sheets
- rIndex = pRowStyles->AddStyleName(*pOldName);
- }
+ GetAutoStylePool()->RegisterName(XmlStyleFamily::TABLE_ROW, *pOldName);
+ // add to pRowStyles, so the name is found for normal sheets
+ rIndex = pRowStyles->AddStyleName(*pOldName);
}
- else
+ }
+ else
+ {
+ OUString sName;
+ if (GetAutoStylePool()->Add(sName, XmlStyleFamily::TABLE_ROW, sParent, aPropStates))
{
- OUString sName;
- if (GetAutoStylePool()->Add(sName, XmlStyleFamily::TABLE_ROW, sParent, aPropStates))
- {
- rIndex = pRowStyles->AddStyleName(sName);
- }
- else
- rIndex = pRowStyles->GetIndexOfStyleName(sName, XML_STYLE_FAMILY_TABLE_ROW_STYLES_PREFIX);
+ rIndex = pRowStyles->AddStyleName(sName);
}
+ else
+ rIndex = pRowStyles->GetIndexOfStyleName(sName, XML_STYLE_FAMILY_TABLE_ROW_STYLES_PREFIX);
}
}
@@ -2665,37 +2665,39 @@ void ScXMLExport::ExportMasterStyles_()
void ScXMLExport::CollectInternalShape( uno::Reference< drawing::XShape > const & xShape )
{
// detective objects and notes
- if( SvxShape* pShapeImp = comphelper::getUnoTunnelImplementation<SvxShape>( xShape ) )
+ SvxShape* pShapeImp = comphelper::getUnoTunnelImplementation<SvxShape>( xShape );
+ if( !pShapeImp )
+ return;
+
+ SdrObject* pObject = pShapeImp->GetSdrObject();
+ if( !pObject )
+ return;
+
+ // collect note caption objects from all layers (internal or hidden)
+ if( ScDrawObjData* pCaptData = ScDrawLayer::GetNoteCaptionData( pObject, static_cast< SCTAB >( nCurrentTable ) ) )
{
- if( SdrObject* pObject = pShapeImp->GetSdrObject() )
+ if(pDoc->GetNote(pCaptData->maStart))
{
- // collect note caption objects from all layers (internal or hidden)
- if( ScDrawObjData* pCaptData = ScDrawLayer::GetNoteCaptionData( pObject, static_cast< SCTAB >( nCurrentTable ) ) )
- {
- if(pDoc->GetNote(pCaptData->maStart))
- {
- pSharedData->AddNoteObj( xShape, pCaptData->maStart );
+ pSharedData->AddNoteObj( xShape, pCaptData->maStart );
- // #i60851# When the file is saved while editing a new note,
- // the cell is still empty -> last column/row must be updated
- OSL_ENSURE( pCaptData->maStart.Tab() == nCurrentTable, "invalid table in object data" );
- pSharedData->SetLastColumn( nCurrentTable, pCaptData->maStart.Col() );
- pSharedData->SetLastRow( nCurrentTable, pCaptData->maStart.Row() );
- }
- }
- // other objects from internal layer only (detective)
- else if( pObject->GetLayer() == SC_LAYER_INTERN )
- {
- ScDetectiveFunc aDetFunc( pDoc, static_cast<SCTAB>(nCurrentTable) );
- ScAddress aPosition;
- ScRange aSourceRange;
- bool bRedLine;
- ScDetectiveObjType eObjType = aDetFunc.GetDetectiveObjectType(
- pObject, nCurrentTable, aPosition, aSourceRange, bRedLine );
- pSharedData->GetDetectiveObjContainer()->AddObject( eObjType, static_cast<SCTAB>(nCurrentTable), aPosition, aSourceRange, bRedLine );
- }
+ // #i60851# When the file is saved while editing a new note,
+ // the cell is still empty -> last column/row must be updated
+ OSL_ENSURE( pCaptData->maStart.Tab() == nCurrentTable, "invalid table in object data" );
+ pSharedData->SetLastColumn( nCurrentTable, pCaptData->maStart.Col() );
+ pSharedData->SetLastRow( nCurrentTable, pCaptData->maStart.Row() );
}
}
+ // other objects from internal layer only (detective)
+ else if( pObject->GetLayer() == SC_LAYER_INTERN )
+ {
+ ScDetectiveFunc aDetFunc( pDoc, static_cast<SCTAB>(nCurrentTable) );
+ ScAddress aPosition;
+ ScRange aSourceRange;
+ bool bRedLine;
+ ScDetectiveObjType eObjType = aDetFunc.GetDetectiveObjectType(
+ pObject, nCurrentTable, aPosition, aSourceRange, bRedLine );
+ pSharedData->GetDetectiveObjContainer()->AddObject( eObjType, static_cast<SCTAB>(nCurrentTable), aPosition, aSourceRange, bRedLine );
+ }
}
bool ScXMLExport::GetMerged (const table::CellRangeAddress* pCellAddress,
@@ -2972,21 +2974,20 @@ void ScXMLExport::WriteTable(sal_Int32 nTable, const uno::Reference<sheet::XSpre
CloseRow(pSharedData->GetLastRow(nTable));
- if (pDoc)
- {
- // Export sheet-local named ranges.
- ScRangeName* pRangeName = pDoc->GetRangeName(nTable);
- if (pRangeName && !pRangeName->empty())
- {
- WriteNamedRange(pRangeName);
- }
+ if (!pDoc)
+ return;
- if (getSaneDefaultVersion() & SvtSaveOptions::ODFSVER_EXTENDED)
- {
- //export new conditional format information
- ExportConditionalFormat(nTable);
- }
+ // Export sheet-local named ranges.
+ ScRangeName* pRangeName = pDoc->GetRangeName(nTable);
+ if (pRangeName && !pRangeName->empty())
+ {
+ WriteNamedRange(pRangeName);
+ }
+ if (getSaneDefaultVersion() & SvtSaveOptions::ODFSVER_EXTENDED)
+ {
+ //export new conditional format information
+ ExportConditionalFormat(nTable);
}
}
@@ -3467,41 +3468,41 @@ void ScXMLExport::ExportShape(const uno::Reference < drawing::XShape >& xShape,
void ScXMLExport::WriteShapes(const ScMyCell& rMyCell)
{
- if( rMyCell.bHasShape && !rMyCell.aShapeList.empty() && pDoc )
+ if( !(rMyCell.bHasShape && !rMyCell.aShapeList.empty() && pDoc) )
+ return;
+
+ awt::Point aPoint;
+ tools::Rectangle aRect = pDoc->GetMMRect(rMyCell.maCellAddress.Col(), rMyCell.maCellAddress.Row(),
+ rMyCell.maCellAddress.Col(), rMyCell.maCellAddress.Row(), rMyCell.maCellAddress.Tab());
+ bool bNegativePage = pDoc->IsNegativePage(rMyCell.maCellAddress.Tab());
+ if (bNegativePage)
+ aPoint.X = aRect.Right();
+ else
+ aPoint.X = aRect.Left();
+ aPoint.Y = aRect.Top();
+ for (const auto& rShape : rMyCell.aShapeList)
{
- awt::Point aPoint;
- tools::Rectangle aRect = pDoc->GetMMRect(rMyCell.maCellAddress.Col(), rMyCell.maCellAddress.Row(),
- rMyCell.maCellAddress.Col(), rMyCell.maCellAddress.Row(), rMyCell.maCellAddress.Tab());
- bool bNegativePage = pDoc->IsNegativePage(rMyCell.maCellAddress.Tab());
- if (bNegativePage)
- aPoint.X = aRect.Right();
- else
- aPoint.X = aRect.Left();
- aPoint.Y = aRect.Top();
- for (const auto& rShape : rMyCell.aShapeList)
+ if (rShape.xShape.is())
{
- if (rShape.xShape.is())
- {
- if (bNegativePage)
- aPoint.X = 2 * rShape.xShape->getPosition().X + rShape.xShape->getSize().Width - aPoint.X;
+ if (bNegativePage)
+ aPoint.X = 2 * rShape.xShape->getPosition().X + rShape.xShape->getSize().Width - aPoint.X;
- // We only write the end address if we want the shape to resize with the cell
- if ( rShape.bResizeWithCell &&
- rShape.xShape->getShapeType() != "com.sun.star.drawing.CaptionShape" )
- {
- OUString sEndAddress;
- ScRangeStringConverter::GetStringFromAddress(sEndAddress, rShape.aEndAddress, pDoc, FormulaGrammar::CONV_OOO);
- AddAttribute(XML_NAMESPACE_TABLE, XML_END_CELL_ADDRESS, sEndAddress);
- OUStringBuffer sBuffer;
- GetMM100UnitConverter().convertMeasureToXML(
- sBuffer, rShape.nEndX);
- AddAttribute(XML_NAMESPACE_TABLE, XML_END_X, sBuffer.makeStringAndClear());
- GetMM100UnitConverter().convertMeasureToXML(
- sBuffer, rShape.nEndY);
- AddAttribute(XML_NAMESPACE_TABLE, XML_END_Y, sBuffer.makeStringAndClear());
- }
- ExportShape(rShape.xShape, &aPoint);
+ // We only write the end address if we want the shape to resize with the cell
+ if ( rShape.bResizeWithCell &&
+ rShape.xShape->getShapeType() != "com.sun.star.drawing.CaptionShape" )
+ {
+ OUString sEndAddress;
+ ScRangeStringConverter::GetStringFromAddress(sEndAddress, rShape.aEndAddress, pDoc, FormulaGrammar::CONV_OOO);
+ AddAttribute(XML_NAMESPACE_TABLE, XML_END_CELL_ADDRESS, sEndAddress);
+ OUStringBuffer sBuffer;
+ GetMM100UnitConverter().convertMeasureToXML(
+ sBuffer, rShape.nEndX);
+ AddAttribute(XML_NAMESPACE_TABLE, XML_END_X, sBuffer.makeStringAndClear());
+ GetMM100UnitConverter().convertMeasureToXML(
+ sBuffer, rShape.nEndY);
+ AddAttribute(XML_NAMESPACE_TABLE, XML_END_Y, sBuffer.makeStringAndClear());
}
+ ExportShape(rShape.xShape, &aPoint);
}
}
}
@@ -3509,99 +3510,92 @@ void ScXMLExport::WriteShapes(const ScMyCell& rMyCell)
void ScXMLExport::WriteTableShapes()
{
ScMyTableShapes* pTableShapes(pSharedData->GetTableShapes());
- if (pTableShapes && !(*pTableShapes)[nCurrentTable].empty())
+ if (!(pTableShapes && !(*pTableShapes)[nCurrentTable].empty()))
+ return;
+
+ OSL_ENSURE(pTableShapes->size() > static_cast<size_t>(nCurrentTable), "wrong Table");
+ SvXMLElementExport aShapesElem(*this, XML_NAMESPACE_TABLE, XML_SHAPES, true, false);
+ for (const auto& rxShape : (*pTableShapes)[nCurrentTable])
{
- OSL_ENSURE(pTableShapes->size() > static_cast<size_t>(nCurrentTable), "wrong Table");
- SvXMLElementExport aShapesElem(*this, XML_NAMESPACE_TABLE, XML_SHAPES, true, false);
- for (const auto& rxShape : (*pTableShapes)[nCurrentTable])
+ if (rxShape.is())
{
- if (rxShape.is())
+ if (pDoc->IsNegativePage(static_cast<SCTAB>(nCurrentTable)))
{
- if (pDoc->IsNegativePage(static_cast<SCTAB>(nCurrentTable)))
- {
- awt::Point aPoint(rxShape->getPosition());
- awt::Size aSize(rxShape->getSize());
- aPoint.X += aPoint.X + aSize.Width;
- aPoint.Y = 0;
- ExportShape(rxShape, &aPoint);
- }
- else
- ExportShape(rxShape, nullptr);
+ awt::Point aPoint(rxShape->getPosition());
+ awt::Size aSize(rxShape->getSize());
+ aPoint.X += aPoint.X + aSize.Width;
+ aPoint.Y = 0;
+ ExportShape(rxShape, &aPoint);
}
+ else
+ ExportShape(rxShape, nullptr);
}
- (*pTableShapes)[nCurrentTable].clear();
}
+ (*pTableShapes)[nCurrentTable].clear();
}
void ScXMLExport::WriteAreaLink( const ScMyCell& rMyCell )
{
- if( rMyCell.bHasAreaLink )
+ if( !rMyCell.bHasAreaLink )
+ return;
+
+ const ScMyAreaLink& rAreaLink = rMyCell.aAreaLink;
+ AddAttribute( XML_NAMESPACE_TABLE, XML_NAME, rAreaLink.sSourceStr );
+ AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
+ AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, GetRelativeReference(rAreaLink.sURL) );
+ AddAttribute( XML_NAMESPACE_TABLE, XML_FILTER_NAME, rAreaLink.sFilter );
+ if( !rAreaLink.sFilterOptions.isEmpty() )
+ AddAttribute( XML_NAMESPACE_TABLE, XML_FILTER_OPTIONS, rAreaLink.sFilterOptions );
+ OUStringBuffer sValue;
+ AddAttribute( XML_NAMESPACE_TABLE, XML_LAST_COLUMN_SPANNED, OUString::number(rAreaLink.GetColCount()) );
+ AddAttribute( XML_NAMESPACE_TABLE, XML_LAST_ROW_SPANNED, OUString::number(rAreaLink.GetRowCount()) );
+ if( rAreaLink.nRefresh )
{
- const ScMyAreaLink& rAreaLink = rMyCell.aAreaLink;
- AddAttribute( XML_NAMESPACE_TABLE, XML_NAME, rAreaLink.sSourceStr );
- AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE );
- AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, GetRelativeReference(rAreaLink.sURL) );
- AddAttribute( XML_NAMESPACE_TABLE, XML_FILTER_NAME, rAreaLink.sFilter );
- if( !rAreaLink.sFilterOptions.isEmpty() )
- AddAttribute( XML_NAMESPACE_TABLE, XML_FILTER_OPTIONS, rAreaLink.sFilterOptions );
- OUStringBuffer sValue;
- AddAttribute( XML_NAMESPACE_TABLE, XML_LAST_COLUMN_SPANNED, OUString::number(rAreaLink.GetColCount()) );
- AddAttribute( XML_NAMESPACE_TABLE, XML_LAST_ROW_SPANNED, OUString::number(rAreaLink.GetRowCount()) );
- if( rAreaLink.nRefresh )
- {
- ::sax::Converter::convertDuration( sValue,
- static_cast<double>(rAreaLink.nRefresh) / 86400 );
- AddAttribute( XML_NAMESPACE_TABLE, XML_REFRESH_DELAY, sValue.makeStringAndClear() );
- }
- SvXMLElementExport aElem( *this, XML_NAMESPACE_TABLE, XML_CELL_RANGE_SOURCE, true, true );
+ ::sax::Converter::convertDuration( sValue,
+ static_cast<double>(rAreaLink.nRefresh) / 86400 );
+ AddAttribute( XML_NAMESPACE_TABLE, XML_REFRESH_DELAY, sValue.makeStringAndClear() );
}
+ SvXMLElementExport aElem( *this, XML_NAMESPACE_TABLE, XML_CELL_RANGE_SOURCE, true, true );
}
void ScXMLExport::exportAnnotationMeta( const uno::Reference < drawing::XShape >& xShape)
{
ScPostIt* pNote = pCurrentCell->pNote;
- if (pNote)
- {
- // TODO : notes
- //is it still useful, as this call back is only called from ScXMLExport::WriteAnnotation
- // and should be in sync with pCurrentCell
- SdrCaptionObj* pNoteCaption = pNote->GetOrCreateCaption(pCurrentCell->maCellAddress);
- uno::Reference<drawing::XShape> xCurrentShape( pNoteCaption->getUnoShape(), uno::UNO_QUERY );
- if (xCurrentShape.get()!=xShape.get())
- return;
+ if (!pNote)
+ return;
- const OUString& sAuthor(pNote->GetAuthor());
- if (!sAuthor.isEmpty())
- {
- SvXMLElementExport aCreatorElem( *this, XML_NAMESPACE_DC,
- XML_CREATOR, true,
- false );
- Characters(sAuthor);
- }
+ // TODO : notes
+ //is it still useful, as this call back is only called from ScXMLExport::WriteAnnotation
+ // and should be in sync with pCurrentCell
+ SdrCaptionObj* pNoteCaption = pNote->GetOrCreateCaption(pCurrentCell->maCellAddress);
+ uno::Reference<drawing::XShape> xCurrentShape( pNoteCaption->getUnoShape(), uno::UNO_QUERY );
+ if (xCurrentShape.get()!=xShape.get())
+ return;
- const OUString& aDate(pNote->GetDate());
- if (pDoc)
+ const OUString& sAuthor(pNote->GetAuthor());
+ if (!sAuthor.isEmpty())
+ {
+ SvXMLElementExport aCreatorElem( *this, XML_NAMESPACE_DC,
+ XML_CREATOR, true,
+ false );
+ Characters(sAuthor);
+ }
+
+ const OUString& aDate(pNote->GetDate());
+ if (pDoc)
+ {
+ SvNumberFormatter* pNumForm = pDoc->GetFormatTable();
+ double fDate;
+ sal_uInt32 nfIndex = pNumForm->GetFormatIndex(NF_DATE_SYS_DDMMYYYY, LANGUAGE_SYSTEM);
+ if (pNumForm->IsNumberFormat(aDate, nfIndex, fDate))
{
- SvNumberFormatter* pNumForm = pDoc->GetFormatTable();
- double fDate;
- sal_uInt32 nfIndex = pNumForm->GetFormatIndex(NF_DATE_SYS_DDMMYYYY, LANGUAGE_SYSTEM);
- if (pNumForm->IsNumberFormat(aDate, nfIndex, fDate))
- {
- OUStringBuffer sBuf;
- GetMM100UnitConverter().convertDateTime(sBuf, fDate,true);
- SvXMLElementExport aDateElem( *this, XML_NAMESPACE_DC,
- XML_DATE, true,
- false );
- Characters(sBuf.makeStringAndClear());
- }
- else
- {
- SvXMLElementExport aDateElem( *this, XML_NAMESPACE_META,
- XML_DATE_STRING, true,
- false );
- Characters(aDate);
- }
+ OUStringBuffer sBuf;
+ GetMM100UnitConverter().convertDateTime(sBuf, fDate,true);
+ SvXMLElementExport aDateElem( *this, XML_NAMESPACE_DC,
+ XML_DATE, true,
+ false );
+ Characters(sBuf.makeStringAndClear());
}
else
{
@@ -3611,70 +3605,76 @@ void ScXMLExport::exportAnnotationMeta( const uno::Reference < drawing::XShape >
Characters(aDate);
}
}
+ else
+ {
+ SvXMLElementExport aDateElem( *this, XML_NAMESPACE_META,
+ XML_DATE_STRING, true,
+ false );
+ Characters(aDate);
+ }
}
void ScXMLExport::WriteAnnotation(ScMyCell& rMyCell)
{
ScPostIt* pNote = pDoc->GetNote(rMyCell.maCellAddress);
- if (pNote)
- {
- if (pNote->IsCaptionShown())
- AddAttribute(XML_NAMESPACE_OFFICE, XML_DISPLAY, XML_TRUE);
-
- pCurrentCell = &rMyCell;
+ if (!pNote)
+ return;
- SdrCaptionObj* pNoteCaption = pNote->GetOrCreateCaption(rMyCell.maCellAddress);
- if (pNoteCaption)
- {
- uno::Reference<drawing::XShape> xShape( pNoteCaption->getUnoShape(), uno::UNO_QUERY );
- if (xShape.is())
- GetShapeExport()->exportShape(xShape, SEF_DEFAULT|XMLShapeExportFlags::ANNOTATION);
- }
+ if (pNote->IsCaptionShown())
+ AddAttribute(XML_NAMESPACE_OFFICE, XML_DISPLAY, XML_TRUE);
- pCurrentCell = nullptr;
+ pCurrentCell = &rMyCell;
+ SdrCaptionObj* pNoteCaption = pNote->GetOrCreateCaption(rMyCell.maCellAddress);
+ if (pNoteCaption)
+ {
+ uno::Reference<drawing::XShape> xShape( pNoteCaption->getUnoShape(), uno::UNO_QUERY );
+ if (xShape.is())
+ GetShapeExport()->exportShape(xShape, SEF_DEFAULT|XMLShapeExportFlags::ANNOTATION);
}
+
+ pCurrentCell = nullptr;
}
void ScXMLExport::WriteDetective( const ScMyCell& rMyCell )
{
- if( rMyCell.bHasDetectiveObj || rMyCell.bHasDetectiveOp )
+ if( !(rMyCell.bHasDetectiveObj || rMyCell.bHasDetectiveOp) )
+ return;
+
+ const ScMyDetectiveObjVec& rObjVec = rMyCell.aDetectiveObjVec;
+ const ScMyDetectiveOpVec& rOpVec = rMyCell.aDetectiveOpVec;
+ sal_Int32 nObjCount(rObjVec.size());
+ sal_Int32 nOpCount(rOpVec.size());
+ if( !(nObjCount || nOpCount) )
+ return;
+
+ SvXMLElementExport aDetElem( *this, XML_NAMESPACE_TABLE, XML_DETECTIVE, true, true );
+ OUString sString;
+ for(const auto& rObj : rObjVec)
{
- const ScMyDetectiveObjVec& rObjVec = rMyCell.aDetectiveObjVec;
- const ScMyDetectiveOpVec& rOpVec = rMyCell.aDetectiveOpVec;
- sal_Int32 nObjCount(rObjVec.size());
- sal_Int32 nOpCount(rOpVec.size());
- if( nObjCount || nOpCount )
+ if (rObj.eObjType != SC_DETOBJ_CIRCLE)
{
- SvXMLElementExport aDetElem( *this, XML_NAMESPACE_TABLE, XML_DETECTIVE, true, true );
- OUString sString;
- for(const auto& rObj : rObjVec)
+ if( (rObj.eObjType == SC_DETOBJ_ARROW) || (rObj.eObjType == SC_DETOBJ_TOOTHERTAB))
{
- if (rObj.eObjType != SC_DETOBJ_CIRCLE)
- {
- if( (rObj.eObjType == SC_DETOBJ_ARROW) || (rObj.eObjType == SC_DETOBJ_TOOTHERTAB))
- {
- ScRangeStringConverter::GetStringFromRange( sString, rObj.aSourceRange, pDoc, FormulaGrammar::CONV_OOO );
- AddAttribute( XML_NAMESPACE_TABLE, XML_CELL_RANGE_ADDRESS, sString );
- }
- ScXMLConverter::GetStringFromDetObjType( sString, rObj.eObjType );
- AddAttribute( XML_NAMESPACE_TABLE, XML_DIRECTION, sString );
- if( rObj.bHasError )
- AddAttribute( XML_NAMESPACE_TABLE, XML_CONTAINS_ERROR, XML_TRUE );
- }
- else
- AddAttribute( XML_NAMESPACE_TABLE, XML_MARKED_INVALID, XML_TRUE );
- SvXMLElementExport aRangeElem( *this, XML_NAMESPACE_TABLE, XML_HIGHLIGHTED_RANGE, true, true );
- }
- for(const auto& rOp : rOpVec)
- {
- OUString sOpString;
- ScXMLConverter::GetStringFromDetOpType( sOpString, rOp.eOpType );
- AddAttribute( XML_NAMESPACE_TABLE, XML_NAME, sOpString );
- AddAttribute( XML_NAMESPACE_TABLE, XML_INDEX, OUString::number(rOp.nIndex) );
- SvXMLElementExport aRangeElem( *this, XML_NAMESPACE_TABLE, XML_OPERATION, true, true );
+ ScRangeStringConverter::GetStringFromRange( sString, rObj.aSourceRange, pDoc, FormulaGrammar::CONV_OOO );
+ AddAttribute( XML_NAMESPACE_TABLE, XML_CELL_RANGE_ADDRESS, sString );
}
+ ScXMLConverter::GetStringFromDetObjType( sString, rObj.eObjType );
+ AddAttribute( XML_NAMESPACE_TABLE, XML_DIRECTION, sString );
+ if( rObj.bHasError )
+ AddAttribute( XML_NAMESPACE_TABLE, XML_CONTAINS_ERROR, XML_TRUE );
}
+ else
+ AddAttribute( XML_NAMESPACE_TABLE, XML_MARKED_INVALID, XML_TRUE );
+ SvXMLElementExport aRangeElem( *this, XML_NAMESPACE_TABLE, XML_HIGHLIGHTED_RANGE, true, true );
+ }
+ for(const auto& rOp : rOpVec)
+ {
+ OUString sOpString;
+ ScXMLConverter::GetStringFromDetOpType( sOpString, rOp.eOpType );
+ AddAttribute( XML_NAMESPACE_TABLE, XML_NAME, sOpString );
+ AddAttribute( XML_NAMESPACE_TABLE, XML_INDEX, OUString::number(rOp.nIndex) );
+ SvXMLElementExport aRangeElem( *this, XML_NAMESPACE_TABLE, XML_OPERATION, true, true );
}
}
@@ -3767,72 +3767,72 @@ bool ScXMLExport::IsCellEqual (const ScMyCell& aCell1, const ScMyCell& aCell2)
void ScXMLExport::WriteCalculationSettings(const uno::Reference <sheet::XSpreadsheetDocument>& xSpreadDoc)
{
uno::Reference<beans::XPropertySet> xPropertySet(xSpreadDoc, uno::UNO_QUERY);
- if (xPropertySet.is())
+ if (!xPropertySet.is())
+ return;
+
+ bool bCalcAsShown (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_CALCASSHOWN) ));
+ bool bIgnoreCase (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_IGNORECASE) ));
+ bool bLookUpLabels (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_LOOKUPLABELS) ));
+ bool bMatchWholeCell (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_MATCHWHOLE) ));
+ bool bUseRegularExpressions (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_REGEXENABLED) ));
+ bool bUseWildcards (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_WILDCARDSENABLED) ));
+ if (bUseWildcards && bUseRegularExpressions)
+ bUseRegularExpressions = false; // mutually exclusive, wildcards take precedence
+ bool bIsIterationEnabled (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_ITERENABLED) ));
+ sal_uInt16 nYear2000 (pDoc ? pDoc->GetDocOptions().GetYear2000() : 0);
+ sal_Int32 nIterationCount(100);
+ xPropertySet->getPropertyValue( SC_UNO_ITERCOUNT ) >>= nIterationCount;
+ double fIterationEpsilon = 0;
+ xPropertySet->getPropertyValue( SC_UNO_ITEREPSILON ) >>= fIterationEpsilon;
+ util::Date aNullDate;
+ xPropertySet->getPropertyValue( SC_UNO_NULLDATE ) >>= aNullDate;
+ if (!(bCalcAsShown || bIgnoreCase || !bLookUpLabels || !bMatchWholeCell || !bUseRegularExpressions ||
+ bUseWildcards ||
+ bIsIterationEnabled || nIterationCount != 100 || !::rtl::math::approxEqual(fIterationEpsilon, 0.001) ||
+ aNullDate.Day != 30 || aNullDate.Month != 12 || aNullDate.Year != 1899 || nYear2000 != 1930))
+ return;
+
+ if (bIgnoreCase)
+ AddAttribute(XML_NAMESPACE_TABLE, XML_CASE_SENSITIVE, XML_FALSE);
+ if (bCalcAsShown)
+ AddAttribute(XML_NAMESPACE_TABLE, XML_PRECISION_AS_SHOWN, XML_TRUE);
+ if (!bMatchWholeCell)
+ AddAttribute(XML_NAMESPACE_TABLE, XML_SEARCH_CRITERIA_MUST_APPLY_TO_WHOLE_CELL, XML_FALSE);
+ if (!bLookUpLabels)
+ AddAttribute(XML_NAMESPACE_TABLE, XML_AUTOMATIC_FIND_LABELS, XML_FALSE);
+ if (!bUseRegularExpressions)
+ AddAttribute(XML_NAMESPACE_TABLE, XML_USE_REGULAR_EXPRESSIONS, XML_FALSE);
+ if (bUseWildcards)
+ AddAttribute(XML_NAMESPACE_TABLE, XML_USE_WILDCARDS, XML_TRUE);
+ if (nYear2000 != 1930)
+ {
+ AddAttribute(XML_NAMESPACE_TABLE, XML_NULL_YEAR, OUString::number(nYear2000));
+ }
+ SvXMLElementExport aCalcSettings(*this, XML_NAMESPACE_TABLE, XML_CALCULATION_SETTINGS, true, true);
{
- bool bCalcAsShown (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_CALCASSHOWN) ));
- bool bIgnoreCase (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_IGNORECASE) ));
- bool bLookUpLabels (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_LOOKUPLABELS) ));
- bool bMatchWholeCell (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_MATCHWHOLE) ));
- bool bUseRegularExpressions (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_REGEXENABLED) ));
- bool bUseWildcards (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_WILDCARDSENABLED) ));
- if (bUseWildcards && bUseRegularExpressions)
- bUseRegularExpressions = false; // mutually exclusive, wildcards take precedence
- bool bIsIterationEnabled (::cppu::any2bool( xPropertySet->getPropertyValue(SC_UNO_ITERENABLED) ));
- sal_uInt16 nYear2000 (pDoc ? pDoc->GetDocOptions().GetYear2000() : 0);
- sal_Int32 nIterationCount(100);
- xPropertySet->getPropertyValue( SC_UNO_ITERCOUNT ) >>= nIterationCount;
- double fIterationEpsilon = 0;
- xPropertySet->getPropertyValue( SC_UNO_ITEREPSILON ) >>= fIterationEpsilon;
- util::Date aNullDate;
- xPropertySet->getPropertyValue( SC_UNO_NULLDATE ) >>= aNullDate;
- if (bCalcAsShown || bIgnoreCase || !bLookUpLabels || !bMatchWholeCell || !bUseRegularExpressions ||
- bUseWildcards ||
- bIsIterationEnabled || nIterationCount != 100 || !::rtl::math::approxEqual(fIterationEpsilon, 0.001) ||
- aNullDate.Day != 30 || aNullDate.Month != 12 || aNullDate.Year != 1899 || nYear2000 != 1930)
+ if (aNullDate.Day != 30 || aNullDate.Month != 12 || aNullDate.Year != 1899)
{
- if (bIgnoreCase)
- AddAttribute(XML_NAMESPACE_TABLE, XML_CASE_SENSITIVE, XML_FALSE);
- if (bCalcAsShown)
- AddAttribute(XML_NAMESPACE_TABLE, XML_PRECISION_AS_SHOWN, XML_TRUE);
- if (!bMatchWholeCell)
- AddAttribute(XML_NAMESPACE_TABLE, XML_SEARCH_CRITERIA_MUST_APPLY_TO_WHOLE_CELL, XML_FALSE);
- if (!bLookUpLabels)
- AddAttribute(XML_NAMESPACE_TABLE, XML_AUTOMATIC_FIND_LABELS, XML_FALSE);
- if (!bUseRegularExpressions)
- AddAttribute(XML_NAMESPACE_TABLE, XML_USE_REGULAR_EXPRESSIONS, XML_FALSE);
- if (bUseWildcards)
- AddAttribute(XML_NAMESPACE_TABLE, XML_USE_WILDCARDS, XML_TRUE);
- if (nYear2000 != 1930)
+ OUStringBuffer sDate;
+ SvXMLUnitConverter::convertDateTime(sDate, 0.0, aNullDate);
+ AddAttribute(XML_NAMESPACE_TABLE, XML_DATE_VALUE, sDate.makeStringAndClear());
+ SvXMLElementExport aElemNullDate(*this, XML_NAMESPACE_TABLE, XML_NULL_DATE, true, true);
+ }
+ if (bIsIterationEnabled || nIterationCount != 100 || !::rtl::math::approxEqual(fIterationEpsilon, 0.001))
+ {
+ OUStringBuffer sBuffer;
+ if (bIsIterationEnabled)
+ AddAttribute(XML_NAMESPACE_TABLE, XML_STATUS, XML_ENABLE);
+ if (nIterationCount != 100)
{
- AddAttribute(XML_NAMESPACE_TABLE, XML_NULL_YEAR, OUString::number(nYear2000));
+ AddAttribute(XML_NAMESPACE_TABLE, XML_STEPS, OUString::number(nIterationCount));
}
- SvXMLElementExport aCalcSettings(*this, XML_NAMESPACE_TABLE, XML_CALCULATION_SETTINGS, true, true);
+ if (!::rtl::math::approxEqual(fIterationEpsilon, 0.001))
{
- if (aNullDate.Day != 30 || aNullDate.Month != 12 || aNullDate.Year != 1899)
- {
- OUStringBuffer sDate;
- SvXMLUnitConverter::convertDateTime(sDate, 0.0, aNullDate);
- AddAttribute(XML_NAMESPACE_TABLE, XML_DATE_VALUE, sDate.makeStringAndClear());
- SvXMLElementExport aElemNullDate(*this, XML_NAMESPACE_TABLE, XML_NULL_DATE, true, true);
- }
- if (bIsIterationEnabled || nIterationCount != 100 || !::rtl::math::approxEqual(fIterationEpsilon, 0.001))
- {
- OUStringBuffer sBuffer;
- if (bIsIterationEnabled)
- AddAttribute(XML_NAMESPACE_TABLE, XML_STATUS, XML_ENABLE);
- if (nIterationCount != 100)
- {
- AddAttribute(XML_NAMESPACE_TABLE, XML_STEPS, OUString::number(nIterationCount));
- }
- if (!::rtl::math::approxEqual(fIterationEpsilon, 0.001))
- {
- ::sax::Converter::convertDouble(sBuffer,
- fIterationEpsilon);
- AddAttribute(XML_NAMESPACE_TABLE, XML_MAXIMUM_DIFFERENCE, sBuffer.makeStringAndClear());
- }
- SvXMLElementExport aElemIteration(*this, XML_NAMESPACE_TABLE, XML_ITERATION, true, true);
- }
+ ::sax::Converter::convertDouble(sBuffer,
+ fIterationEpsilon);
+ AddAttribute(XML_NAMESPACE_TABLE, XML_MAXIMUM_DIFFERENCE, sBuffer.makeStringAndClear());
}
+ SvXMLElementExport aElemIteration(*this, XML_NAMESPACE_TABLE, XML_ITERATION, true, true);
}
}
}
@@ -3840,66 +3840,66 @@ void ScXMLExport::WriteCalculationSettings(const uno::Reference <sheet::XSpreads
void ScXMLExport::WriteTableSource()
{
uno::Reference <sheet::XSheetLinkable> xLinkable (xCurrentTable, uno::UNO_QUERY);
- if (xLinkable.is() && GetModel().is())
+ if (!(xLinkable.is() && GetModel().is()))
+ return;
+
+ sheet::SheetLinkMode nMode (xLinkable->getLinkMode());
+ if (nMode == sheet::SheetLinkMode_NONE)
+ return;
+
+ OUString sLink (xLinkable->getLinkUrl());
+ uno::Reference <beans::XPropertySet> xProps (GetModel(), uno::UNO_QUERY);
+ if (!xProps.is())
+ return;
+
+ uno::Reference <container::XIndexAccess> xIndex(xProps->getPropertyValue(SC_UNO_SHEETLINKS), uno::UNO_QUERY);
+ if (!xIndex.is())
+ return;
+
+ sal_Int32 nCount(xIndex->getCount());
+ if (nCount)
{
- sheet::SheetLinkMode nMode (xLinkable->getLinkMode());
- if (nMode != sheet::SheetLinkMode_NONE)
+ bool bFound(false);
+ uno::Reference <beans::XPropertySet> xLinkProps;
+ for (sal_Int32 i = 0; (i < nCount) && !bFound; ++i)
{
- OUString sLink (xLinkable->getLinkUrl());
- uno::Reference <beans::XPropertySet> xProps (GetModel(), uno::UNO_QUERY);
- if (xProps.is())
+ xLinkProps.set(xIndex->getByIndex(i), uno::UNO_QUERY);
+ if (xLinkProps.is())
{
- uno::Reference <container::XIndexAccess> xIndex(xProps->getPropertyValue(SC_UNO_SHEETLINKS), uno::UNO_QUERY);
- if (xIndex.is())
+ OUString sNewLink;
+ if (xLinkProps->getPropertyValue(SC_UNONAME_LINKURL) >>= sNewLink)
+ bFound = sLink == sNewLink;
+ }
+ }
+ if (bFound && xLinkProps.is())
+ {
+ OUString sFilter;
+ OUString sFilterOptions;
+ OUString sTableName (xLinkable->getLinkSheetName());
+ sal_Int32 nRefresh(0);
+ xLinkProps->getPropertyValue(SC_UNONAME_FILTER) >>= sFilter;
+ xLinkProps->getPropertyValue(SC_UNONAME_FILTOPT) >>= sFilterOptions;
+ xLinkProps->getPropertyValue(SC_UNONAME_REFDELAY) >>= nRefresh;
+ if (!sLink.isEmpty())
+ {
+ AddAttribute(XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE);
+ AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, GetRelativeReference(sLink));
+ if (!sTableName.isEmpty())
+ AddAttribute(XML_NAMESPACE_TABLE, XML_TABLE_NAME, sTableName);
+ if (!sFilter.isEmpty())
+ AddAttribute(XML_NAMESPACE_TABLE, XML_FILTER_NAME, sFilter);
+ if (!sFilterOptions.isEmpty())
+ AddAttribute(XML_NAMESPACE_TABLE, XML_FILTER_OPTIONS, sFilterOptions);
+ if (nMode != sheet::SheetLinkMode_NORMAL)
+ AddAttribute(XML_NAMESPACE_TABLE, XML_MODE, XML_COPY_RESULTS_ONLY);
+ if( nRefresh )
{
- sal_Int32 nCount(xIndex->getCount());
- if (nCount)
- {
- bool bFound(false);
- uno::Reference <beans::XPropertySet> xLinkProps;
- for (sal_Int32 i = 0; (i < nCount) && !bFound; ++i)
- {
- xLinkProps.set(xIndex->getByIndex(i), uno::UNO_QUERY);
- if (xLinkProps.is())
- {
- OUString sNewLink;
- if (xLinkProps->getPropertyValue(SC_UNONAME_LINKURL) >>= sNewLink)
- bFound = sLink == sNewLink;
- }
- }
- if (bFound && xLinkProps.is())
- {
- OUString sFilter;
- OUString sFilterOptions;
- OUString sTableName (xLinkable->getLinkSheetName());
- sal_Int32 nRefresh(0);
- xLinkProps->getPropertyValue(SC_UNONAME_FILTER) >>= sFilter;
- xLinkProps->getPropertyValue(SC_UNONAME_FILTOPT) >>= sFilterOptions;
- xLinkProps->getPropertyValue(SC_UNONAME_REFDELAY) >>= nRefresh;
- if (!sLink.isEmpty())
- {
- AddAttribute(XML_NAMESPACE_XLINK, XML_TYPE, XML_SIMPLE);
- AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, GetRelativeReference(sLink));
- if (!sTableName.isEmpty())
- AddAttribute(XML_NAMESPACE_TABLE, XML_TABLE_NAME, sTableName);
- if (!sFilter.isEmpty())
- AddAttribute(XML_NAMESPACE_TABLE, XML_FILTER_NAME, sFilter);
- if (!sFilterOptions.isEmpty())
- AddAttribute(XML_NAMESPACE_TABLE, XML_FILTER_OPTIONS, sFilterOptions);
- if (nMode != sheet::SheetLinkMode_NORMAL)
- AddAttribute(XML_NAMESPACE_TABLE, XML_MODE, XML_COPY_RESULTS_ONLY);
- if( nRefresh )
- {
- OUStringBuffer sBuffer;
- ::sax::Converter::convertDuration( sBuffer,
- static_cast<double>(nRefresh) / 86400 );
- AddAttribute( XML_NAMESPACE_TABLE, XML_REFRESH_DELAY, sBuffer.makeStringAndClear() );
- }
- SvXMLElementExport aSourceElem(*this, XML_NAMESPACE_TABLE, XML_TABLE_SOURCE, true, true);
- }
- }
- }
+ OUStringBuffer sBuffer;
+ ::sax::Converter::convertDuration( sBuffer,
+ static_cast<double>(nRefresh) / 86400 );
+ AddAttribute( XML_NAMESPACE_TABLE, XML_REFRESH_DELAY, sBuffer.makeStringAndClear() );
}
+ SvXMLElementExport aSourceElem(*this, XML_NAMESPACE_TABLE, XML_TABLE_SOURCE, true, true);
}
}
}
@@ -3908,36 +3908,36 @@ void ScXMLExport::WriteTableSource()
// core implementation
void ScXMLExport::WriteScenario()
{
- if (pDoc && pDoc->IsScenario(static_cast<SCTAB>(nCurrentTable)))
- {
- OUString sComment;
- Color aColor;
- ScScenarioFlags nFlags;
- pDoc->GetScenarioData(static_cast<SCTAB>(nCurrentTable), sComment, aColor, nFlags);
- if (!(nFlags & ScScenarioFlags::ShowFrame))
- AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY_BORDER, XML_FALSE);
- OUStringBuffer aBuffer;
- ::sax::Converter::convertColor(aBuffer, aColor);
- AddAttribute(XML_NAMESPACE_TABLE, XML_BORDER_COLOR, aBuffer.makeStringAndClear());
- if (!(nFlags & ScScenarioFlags::TwoWay))
- AddAttribute(XML_NAMESPACE_TABLE, XML_COPY_BACK, XML_FALSE);
- if (!(nFlags & ScScenarioFlags::Attrib))
- AddAttribute(XML_NAMESPACE_TABLE, XML_COPY_STYLES, XML_FALSE);
- if (nFlags & ScScenarioFlags::Value)
- AddAttribute(XML_NAMESPACE_TABLE, XML_COPY_FORMULAS, XML_FALSE);
- if (nFlags & ScScenarioFlags::Protected)
- AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTED, XML_TRUE);
- ::sax::Converter::convertBool(aBuffer,
- pDoc->IsActiveScenario(static_cast<SCTAB>(nCurrentTable)));
- AddAttribute(XML_NAMESPACE_TABLE, XML_IS_ACTIVE, aBuffer.makeStringAndClear());
- const ScRangeList* pRangeList = pDoc->GetScenarioRanges(static_cast<SCTAB>(nCurrentTable));
- OUString sRangeListStr;
- ScRangeStringConverter::GetStringFromRangeList( sRangeListStr, pRangeList, pDoc, FormulaGrammar::CONV_OOO );
- AddAttribute(XML_NAMESPACE_TABLE, XML_SCENARIO_RANGES, sRangeListStr);
- if (!sComment.isEmpty())
- AddAttribute(XML_NAMESPACE_TABLE, XML_COMMENT, sComment);
- SvXMLElementExport aElem(*this, XML_NAMESPACE_TABLE, XML_SCENARIO, true, true);
- }
+ if (!(pDoc && pDoc->IsScenario(static_cast<SCTAB>(nCurrentTable))))
+ return;
+
+ OUString sComment;
+ Color aColor;
+ ScScenarioFlags nFlags;
+ pDoc->GetScenarioData(static_cast<SCTAB>(nCurrentTable), sComment, aColor, nFlags);
+ if (!(nFlags & ScScenarioFlags::ShowFrame))
+ AddAttribute(XML_NAMESPACE_TABLE, XML_DISPLAY_BORDER, XML_FALSE);
+ OUStringBuffer aBuffer;
+ ::sax::Converter::convertColor(aBuffer, aColor);
+ AddAttribute(XML_NAMESPACE_TABLE, XML_BORDER_COLOR, aBuffer.makeStringAndClear());
+ if (!(nFlags & ScScenarioFlags::TwoWay))
+ AddAttribute(XML_NAMESPACE_TABLE, XML_COPY_BACK, XML_FALSE);
+ if (!(nFlags & ScScenarioFlags::Attrib))
+ AddAttribute(XML_NAMESPACE_TABLE, XML_COPY_STYLES, XML_FALSE);
+ if (nFlags & ScScenarioFlags::Value)
+ AddAttribute(XML_NAMESPACE_TABLE, XML_COPY_FORMULAS, XML_FALSE);
+ if (nFlags & ScScenarioFlags::Protected)
+ AddAttribute(XML_NAMESPACE_TABLE, XML_PROTECTED, XML_TRUE);
+ ::sax::Converter::convertBool(aBuffer,
+ pDoc->IsActiveScenario(static_cast<SCTAB>(nCurrentTable)));
+ AddAttribute(XML_NAMESPACE_TABLE, XML_IS_ACTIVE, aBuffer.makeStringAndClear());
+ const ScRangeList* pRangeList = pDoc->GetScenarioRanges(static_cast<SCTAB>(nCurrentTable));
+ OUString sRangeListStr;
+ ScRangeStringConverter::GetStringFromRangeList( sRangeListStr, pRangeList, pDoc, FormulaGrammar::CONV_OOO );
+ AddAttribute(XML_NAMESPACE_TABLE, XML_SCENARIO_RANGES, sRangeListStr);
+ if (!sComment.isEmpty())
+ AddAttribute(XML_NAMESPACE_TABLE, XML_COMMENT, sComment);
+ SvXMLElementExport aElem(*this, XML_NAMESPACE_TABLE, XML_SCENARIO, true, true);
}
void ScXMLExport::WriteTheLabelRanges( const uno::Reference< sheet::XSpreadsheetDocument >& xSpreadDoc )
@@ -4005,21 +4005,21 @@ void ScXMLExport::WriteExternalDataMapping()
sc::ExternalDataMapper& rDataMapper = pDoc->GetExternalDataMapper();
auto& rDataSources = rDataMapper.getDataSources();
- if (!rDataSources.empty())
+ if (rDataSources.empty())
+ return;
+
+ SvXMLElementExport aMappings(*this, XML_NAMESPACE_CALC_EXT, XML_DATA_MAPPINGS, true, true);
+ for (const auto& itr : rDataSources)
{
- SvXMLElementExport aMappings(*this, XML_NAMESPACE_CALC_EXT, XML_DATA_MAPPINGS, true, true);
- for (const auto& itr : rDataSources)
- {
- AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, itr.getURL());
- AddAttribute(XML_NAMESPACE_CALC_EXT, XML_PROVIDER, itr.getProvider());
- AddAttribute(XML_NAMESPACE_CALC_EXT, XML_DATA_FREQUENCY, OUString::number(sc::ExternalDataSource::getUpdateFrequency()));
- AddAttribute(XML_NAMESPACE_CALC_EXT, XML_ID, itr.getID());
- AddAttribute(XML_NAMESPACE_CALC_EXT, XML_DATABASE_NAME, itr.getDBName());
-
- SvXMLElementExport aMapping(*this, XML_NAMESPACE_CALC_EXT, XML_DATA_MAPPING, true, true);
- // Add the data transformations
- WriteExternalDataTransformations(itr.getDataTransformation());
- }
+ AddAttribute(XML_NAMESPACE_XLINK, XML_HREF, itr.getURL());
+ AddAttribute(XML_NAMESPACE_CALC_EXT, XML_PROVIDER, itr.getProvider());
+ AddAttribute(XML_NAMESPACE_CALC_EXT, XML_DATA_FREQUENCY, OUString::number(sc::ExternalDataSource::getUpdateFrequency()));
+ AddAttribute(XML_NAMESPACE_CALC_EXT, XML_ID, itr.getID());
+ AddAttribute(XML_NAMESPACE_CALC_EXT, XML_DATABASE_NAME, itr.getDBName());
+
+ SvXMLElementExport aMapping(*this, XML_NAMESPACE_CALC_EXT, XML_DATA_MAPPING, true, true);
+ // Add the data transformations
+ WriteExternalDataTransformations(itr.getDataTransformation());
}
}
@@ -4980,37 +4980,37 @@ void ScXMLExport::WriteExternalRefCaches()
// core implementation
void ScXMLExport::WriteConsolidation()
{
- if (pDoc)
- {
- const ScConsolidateParam* pCons(pDoc->GetConsolidateDlgData());
- if( pCons )
- {
- OUString sStrData;
+ if (!pDoc)
+ return;
- ScXMLConverter::GetStringFromFunction( sStrData, pCons->eFunction );
- AddAttribute( XML_NAMESPACE_TABLE, XML_FUNCTION, sStrData );
+ const ScConsolidateParam* pCons(pDoc->GetConsolidateDlgData());
+ if( !pCons )
+ return;
- sStrData.clear();
- for( sal_Int32 nIndex = 0; nIndex < pCons->nDataAreaCount; ++nIndex )
- ScRangeStringConverter::GetStringFromArea( sStrData, pCons->pDataAreas[ nIndex ], pDoc, FormulaGrammar::CONV_OOO, ' ', true );
- AddAttribute( XML_NAMESPACE_TABLE, XML_SOURCE_CELL_RANGE_ADDRESSES, sStrData );
+ OUString sStrData;
- ScRangeStringConverter::GetStringFromAddress( sStrData, ScAddress( pCons->nCol, pCons->nRow, pCons->nTab ), pDoc, FormulaGrammar::CONV_OOO );
- AddAttribute( XML_NAMESPACE_TABLE, XML_TARGET_CELL_ADDRESS, sStrData );
+ ScXMLConverter::GetStringFromFunction( sStrData, pCons->eFunction );
+ AddAttribute( XML_NAMESPACE_TABLE, XML_FUNCTION, sStrData );
- if( pCons->bByCol && !pCons->bByRow )
- AddAttribute( XML_NAMESPACE_TABLE, XML_USE_LABEL, XML_COLUMN );
- else if( !pCons->bByCol && pCons->bByRow )
- AddAttribute( XML_NAMESPACE_TABLE, XML_USE_LABEL, XML_ROW );
- else if( pCons->bByCol && pCons->bByRow )
- AddAttribute( XML_NAMESPACE_TABLE, XML_USE_LABEL, XML_BOTH );
+ sStrData.clear();
+ for( sal_Int32 nIndex = 0; nIndex < pCons->nDataAreaCount; ++nIndex )
+ ScRangeStringConverter::GetStringFromArea( sStrData, pCons->pDataAreas[ nIndex ], pDoc, FormulaGrammar::CONV_OOO, ' ', true );
+ AddAttribute( XML_NAMESPACE_TABLE, XML_SOURCE_CELL_RANGE_ADDRESSES, sStrData );
- if( pCons->bReferenceData )
- AddAttribute( XML_NAMESPACE_TABLE, XML_LINK_TO_SOURCE_DATA, XML_TRUE );
+ ScRangeStringConverter::GetStringFromAddress( sStrData, ScAddress( pCons->nCol, pCons->nRow, pCons->nTab ), pDoc, FormulaGrammar::CONV_OOO );
+ AddAttribute( XML_NAMESPACE_TABLE, XML_TARGET_CELL_ADDRESS, sStrData );
- SvXMLElementExport aElem( *this, XML_NAMESPACE_TABLE, XML_CONSOLIDATION, true, true );
- }
- }
+ if( pCons->bByCol && !pCons->bByRow )
+ AddAttribute( XML_NAMESPACE_TABLE, XML_USE_LABEL, XML_COLUMN );
+ else if( !pCons->bByCol && pCons->bByRow )
+ AddAttribute( XML_NAMESPACE_TABLE, XML_USE_LABEL, XML_ROW );
+ else if( pCons->bByCol && pCons->bByRow )
+ AddAttribute( XML_NAMESPACE_TABLE, XML_USE_LABEL, XML_BOTH );
+
+ if( pCons->bReferenceData )
+ AddAttribute( XML_NAMESPACE_TABLE, XML_LINK_TO_SOURCE_DATA, XML_TRUE );
+
+ SvXMLElementExport aElem( *this, XML_NAMESPACE_TABLE, XML_CONSOLIDATION, true, true );
}
SvXMLAutoStylePoolP* ScXMLExport::CreateAutoStylePool()
@@ -5026,46 +5026,46 @@ XMLPageExport* ScXMLExport::CreatePageExport()
void ScXMLExport::GetChangeTrackViewSettings(uno::Sequence<beans::PropertyValue>& rProps)
{
ScChangeViewSettings* pViewSettings(GetDocument() ? GetDocument()->GetChangeViewSettings() : nullptr);
- if (pViewSettings)
- {
- sal_Int32 nChangePos(rProps.getLength());
- rProps.realloc(nChangePos + 1);
- beans::PropertyValue* pProps(rProps.getArray());
+ if (!pViewSettings)
+ return;
- uno::Sequence<beans::PropertyValue> aChangeProps(SC_VIEWCHANGES_COUNT);
- beans::PropertyValue* pChangeProps(aChangeProps.getArray());
- pChangeProps[SC_SHOW_CHANGES].Name = "ShowChanges";
- pChangeProps[SC_SHOW_CHANGES].Value <<= pViewSettings->ShowChanges();
- pChangeProps[SC_SHOW_ACCEPTED_CHANGES].Name = "ShowAcceptedChanges";
- pChangeProps[SC_SHOW_ACCEPTED_CHANGES].Value <<= pViewSettings->IsShowAccepted();
- pChangeProps[SC_SHOW_REJECTED_CHANGES].Name = "ShowRejectedChanges";
- pChangeProps[SC_SHOW_REJECTED_CHANGES].Value <<= pViewSettings->IsShowRejected();
- pChangeProps[SC_SHOW_CHANGES_BY_DATETIME].Name = "ShowChangesByDatetime";
- pChangeProps[SC_SHOW_CHANGES_BY_DATETIME].Value <<= pViewSettings->HasDate();
- pChangeProps[SC_SHOW_CHANGES_BY_DATETIME_MODE].Name = "ShowChangesByDatetimeMode";
- pChangeProps[SC_SHOW_CHANGES_BY_DATETIME_MODE].Value <<= static_cast<sal_Int16>(pViewSettings->GetTheDateMode());
- pChangeProps[SC_SHOW_CHANGES_BY_DATETIME_FIRST_DATETIME].Name = "ShowChangesByDatetimeFirstDatetime";
- pChangeProps[SC_SHOW_CHANGES_BY_DATETIME_FIRST_DATETIME].Value <<= pViewSettings->GetTheFirstDateTime().GetUNODateTime();
- pChangeProps[SC_SHOW_CHANGES_BY_DATETIME_SECOND_DATETIME].Name = "ShowChangesByDatetimeSecondDatetime";
- pChangeProps[SC_SHOW_CHANGES_BY_DATETIME_SECOND_DATETIME].Value <<= pViewSettings->GetTheLastDateTime().GetUNODateTime();
- pChangeProps[SC_SHOW_CHANGES_BY_AUTHOR].Name = "ShowChangesByAuthor";
- pChangeProps[SC_SHOW_CHANGES_BY_AUTHOR].Value <<= pViewSettings->HasAuthor();
- pChangeProps[SC_SHOW_CHANGES_BY_AUTHOR_NAME].Name = "ShowChangesByAuthorName";
- pChangeProps[SC_SHOW_CHANGES_BY_AUTHOR_NAME].Value <<= pViewSettings->GetTheAuthorToShow();
- pChangeProps[SC_SHOW_CHANGES_BY_COMMENT].Name = "ShowChangesByComment";
- pChangeProps[SC_SHOW_CHANGES_BY_COMMENT].Value <<= pViewSettings->HasComment();
- pChangeProps[SC_SHOW_CHANGES_BY_COMMENT_TEXT].Name = "ShowChangesByCommentText";
- pChangeProps[SC_SHOW_CHANGES_BY_COMMENT_TEXT].Value <<= pViewSettings->GetTheComment();
- pChangeProps[SC_SHOW_CHANGES_BY_RANGES].Name = "ShowChangesByRanges";
- pChangeProps[SC_SHOW_CHANGES_BY_RANGES].Value <<= pViewSettings->HasRange();
- OUString sRangeList;
- ScRangeStringConverter::GetStringFromRangeList(sRangeList, &(pViewSettings->GetTheRangeList()), GetDocument(), FormulaGrammar::CONV_OOO);
- pChangeProps[SC_SHOW_CHANGES_BY_RANGES_LIST].Name = "ShowChangesByRangesList";
- pChangeProps[SC_SHOW_CHANGES_BY_RANGES_LIST].Value <<= sRangeList;
-
- pProps[nChangePos].Name = "TrackedChangesViewSettings";
- pProps[nChangePos].Value <<= aChangeProps;
- }
+ sal_Int32 nChangePos(rProps.getLength());
+ rProps.realloc(nChangePos + 1);
+ beans::PropertyValue* pProps(rProps.getArray());
+
+ uno::Sequence<beans::PropertyValue> aChangeProps(SC_VIEWCHANGES_COUNT);
+ beans::PropertyValue* pChangeProps(aChangeProps.getArray());
+ pChangeProps[SC_SHOW_CHANGES].Name = "ShowChanges";
+ pChangeProps[SC_SHOW_CHANGES].Value <<= pViewSettings->ShowChanges();
+ pChangeProps[SC_SHOW_ACCEPTED_CHANGES].Name = "ShowAcceptedChanges";
+ pChangeProps[SC_SHOW_ACCEPTED_CHANGES].Value <<= pViewSettings->IsShowAccepted();
+ pChangeProps[SC_SHOW_REJECTED_CHANGES].Name = "ShowRejectedChanges";
+ pChangeProps[SC_SHOW_REJECTED_CHANGES].Value <<= pViewSettings->IsShowRejected();
+ pChangeProps[SC_SHOW_CHANGES_BY_DATETIME].Name = "ShowChangesByDatetime";
+ pChangeProps[SC_SHOW_CHANGES_BY_DATETIME].Value <<= pViewSettings->HasDate();
+ pChangeProps[SC_SHOW_CHANGES_BY_DATETIME_MODE].Name = "ShowChangesByDatetimeMode";
+ pChangeProps[SC_SHOW_CHANGES_BY_DATETIME_MODE].Value <<= static_cast<sal_Int16>(pViewSettings->GetTheDateMode());
+ pChangeProps[SC_SHOW_CHANGES_BY_DATETIME_FIRST_DATETIME].Name = "ShowChangesByDatetimeFirstDatetime";
+ pChangeProps[SC_SHOW_CHANGES_BY_DATETIME_FIRST_DATETIME].Value <<= pViewSettings->GetTheFirstDateTime().GetUNODateTime();
+ pChangeProps[SC_SHOW_CHANGES_BY_DATETIME_SECOND_DATETIME].Name = "ShowChangesByDatetimeSecondDatetime";
+ pChangeProps[SC_SHOW_CHANGES_BY_DATETIME_SECOND_DATETIME].Value <<= pViewSettings->GetTheLastDateTime().GetUNODateTime();
+ pChangeProps[SC_SHOW_CHANGES_BY_AUTHOR].Name = "ShowChangesByAuthor";
+ pChangeProps[SC_SHOW_CHANGES_BY_AUTHOR].Value <<= pViewSettings->HasAuthor();
+ pChangeProps[SC_SHOW_CHANGES_BY_AUTHOR_NAME].Name = "ShowChangesByAuthorName";
+ pChangeProps[SC_SHOW_CHANGES_BY_AUTHOR_NAME].Value <<= pViewSettings->GetTheAuthorToShow();
+ pChangeProps[SC_SHOW_CHANGES_BY_COMMENT].Name = "ShowChangesByComment";
+ pChangeProps[SC_SHOW_CHANGES_BY_COMMENT].Value <<= pViewSettings->HasComment();
+ pChangeProps[SC_SHOW_CHANGES_BY_COMMENT_TEXT].Name = "ShowChangesByCommentText";
+ pChangeProps[SC_SHOW_CHANGES_BY_COMMENT_TEXT].Value <<= pViewSettings->GetTheComment();
+ pChangeProps[SC_SHOW_CHANGES_BY_RANGES].Name = "ShowChangesByRanges";
+ pChangeProps[SC_SHOW_CHANGES_BY_RANGES].Value <<= pViewSettings->HasRange();
+ OUString sRangeList;
+ ScRangeStringConverter::GetStringFromRangeList(sRangeList, &(pViewSettings->GetTheRangeList()), GetDocument(), FormulaGrammar::CONV_OOO);
+ pChangeProps[SC_SHOW_CHANGES_BY_RANGES_LIST].Name = "ShowChangesByRangesList";
+ pChangeProps[SC_SHOW_CHANGES_BY_RANGES_LIST].Value <<= sRangeList;
+
+ pProps[nChangePos].Name = "TrackedChangesViewSettings";
+ pProps[nChangePos].Value <<= aChangeProps;
}
void ScXMLExport::GetViewSettings(uno::Sequence<beans::PropertyValue>& rProps)
@@ -5098,65 +5098,65 @@ void ScXMLExport::GetViewSettings(uno::Sequence<beans::PropertyValue>& rProps)
void ScXMLExport::GetConfigurationSettings(uno::Sequence<beans::PropertyValue>& rProps)
{
- if (GetModel().is())
+ if (!GetModel().is())
+ return;
+
+ uno::Reference <lang::XMultiServiceFactory> xMultiServiceFactory(GetModel(), uno::UNO_QUERY);
+ if (!xMultiServiceFactory.is())
+ return;
+
+ uno::Reference <beans::XPropertySet> xProperties(xMultiServiceFactory->createInstance("com.sun.star.comp.SpreadsheetSettings"), uno::UNO_QUERY);
+ if (xProperties.is())
+ SvXMLUnitConverter::convertPropertySet(rProps, xProperties);
+
+ sal_Int32 nPropsToAdd = 0;
+ OUStringBuffer aTrackedChangesKey;
+ if (GetDocument() && GetDocument()->GetChangeTrack() && GetDocument()->GetChangeTrack()->IsProtected())
{
- uno::Reference <lang::XMultiServiceFactory> xMultiServiceFactory(GetModel(), uno::UNO_QUERY);
- if (xMultiServiceFactory.is())
- {
- uno::Reference <beans::XPropertySet> xProperties(xMultiServiceFactory->createInstance("com.sun.star.comp.SpreadsheetSettings"), uno::UNO_QUERY);
- if (xProperties.is())
- SvXMLUnitConverter::convertPropertySet(rProps, xProperties);
+ ::comphelper::Base64::encode(aTrackedChangesKey,
+ GetDocument()->GetChangeTrack()->GetProtection());
+ if (!aTrackedChangesKey.isEmpty())
+ ++nPropsToAdd;
+ }
- sal_Int32 nPropsToAdd = 0;
- OUStringBuffer aTrackedChangesKey;
- if (GetDocument() && GetDocument()->GetChangeTrack() && GetDocument()->GetChangeTrack()->IsProtected())
- {
- ::comphelper::Base64::encode(aTrackedChangesKey,
- GetDocument()->GetChangeTrack()->GetProtection());
- if (!aTrackedChangesKey.isEmpty())
- ++nPropsToAdd;
- }
+ bool bVBACompat = false;
+ uno::Reference <container::XNameAccess> xCodeNameAccess;
+ OSL_ENSURE( pDoc, "ScXMLExport::GetConfigurationSettings - no ScDocument!" );
+ if( pDoc && pDoc->IsInVBAMode() )
+ {
+ // VBA compatibility mode
+ bVBACompat = true;
+ ++nPropsToAdd;
+ // code names
+ xCodeNameAccess = new XMLCodeNameProvider( pDoc );
+ if( xCodeNameAccess->hasElements() )
+ ++nPropsToAdd;
+ else
+ xCodeNameAccess.clear();
+ }
- bool bVBACompat = false;
- uno::Reference <container::XNameAccess> xCodeNameAccess;
- OSL_ENSURE( pDoc, "ScXMLExport::GetConfigurationSettings - no ScDocument!" );
- if( pDoc && pDoc->IsInVBAMode() )
- {
- // VBA compatibility mode
- bVBACompat = true;
- ++nPropsToAdd;
- // code names
- xCodeNameAccess = new XMLCodeNameProvider( pDoc );
- if( xCodeNameAccess->hasElements() )
- ++nPropsToAdd;
- else
- xCodeNameAccess.clear();
- }
+ if( nPropsToAdd <= 0 )
+ return;
- if( nPropsToAdd > 0 )
- {
- sal_Int32 nCount(rProps.getLength());
- rProps.realloc(nCount + nPropsToAdd);
- if (!aTrackedChangesKey.isEmpty())
- {
- rProps[nCount].Name = "TrackedChangesProtectionKey";
- rProps[nCount].Value <<= aTrackedChangesKey.makeStringAndClear();
- ++nCount;
- }
- if( bVBACompat )
- {
- rProps[nCount].Name = "VBACompatibilityMode";
- rProps[nCount].Value <<= bVBACompat;
- ++nCount;
- }
- if( xCodeNameAccess.is() )
- {
- rProps[nCount].Name = "ScriptConfiguration";
- rProps[nCount].Value <<= xCodeNameAccess;
- ++nCount;
- }
- }
- }
+ sal_Int32 nCount(rProps.getLength());
+ rProps.realloc(nCount + nPropsToAdd);
+ if (!aTrackedChangesKey.isEmpty())
+ {
+ rProps[nCount].Name = "TrackedChangesProtectionKey";
+ rProps[nCount].Value <<= aTrackedChangesKey.makeStringAndClear();
+ ++nCount;
+ }
+ if( bVBACompat )
+ {
+ rProps[nCount].Name = "VBACompatibilityMode";
+ rProps[nCount].Value <<= bVBACompat;
+ ++nCount;
+ }
+ if( xCodeNameAccess.is() )
+ {
+ rProps[nCount].Name = "ScriptConfiguration";
+ rProps[nCount].Value <<= xCodeNameAccess;
+ ++nCount;
}
}
diff --git a/sc/source/filter/xml/xmlexternaltabi.cxx b/sc/source/filter/xml/xmlexternaltabi.cxx
index 8185cf6f5821..a0d9297dad46 100644
--- a/sc/source/filter/xml/xmlexternaltabi.cxx
+++ b/sc/source/filter/xml/xmlexternaltabi.cxx
@@ -47,21 +47,21 @@ ScXMLExternalRefTabSourceContext::ScXMLExternalRefTabSourceContext(
{
using namespace ::xmloff::token;
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &it : *rAttrList)
{
- for (auto &it : *rAttrList)
- {
- sal_Int32 nAttrToken = it.getToken();
- if ( nAttrToken == XML_ELEMENT( XLINK, XML_HREF ) )
- maRelativeUrl = it.toString();
- else if ( nAttrToken == XML_ELEMENT( TABLE, XML_TABLE_NAME ) )
- // todo
- ;
- else if ( nAttrToken == XML_ELEMENT( TABLE, XML_FILTER_NAME ) )
- maFilterName = it.toString();
- else if ( nAttrToken == XML_ELEMENT( TABLE, XML_FILTER_OPTIONS ) )
- maFilterOptions = it.toString();
- }
+ sal_Int32 nAttrToken = it.getToken();
+ if ( nAttrToken == XML_ELEMENT( XLINK, XML_HREF ) )
+ maRelativeUrl = it.toString();
+ else if ( nAttrToken == XML_ELEMENT( TABLE, XML_TABLE_NAME ) )
+ // todo
+ ;
+ else if ( nAttrToken == XML_ELEMENT( TABLE, XML_FILTER_NAME ) )
+ maFilterName = it.toString();
+ else if ( nAttrToken == XML_ELEMENT( TABLE, XML_FILTER_OPTIONS ) )
+ maFilterOptions = it.toString();
}
}
@@ -156,18 +156,18 @@ ScXMLExternalRefRowContext::ScXMLExternalRefRowContext(
mrExternalRefInfo.mnCol = 0;
const SvXMLTokenMap& rAttrTokenMap = mrScImport.GetTableRowAttrTokenMap();
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &it : *rAttrList)
{
- for (auto &it : *rAttrList)
+ switch ( rAttrTokenMap.Get( it.getToken() ) )
{
- switch ( rAttrTokenMap.Get( it.getToken() ) )
+ case XML_TOK_TABLE_ROW_ATTR_REPEATED:
{
- case XML_TOK_TABLE_ROW_ATTR_REPEATED:
- {
- mnRepeatRowCount = std::max(it.toInt32(), static_cast<sal_Int32>(1));
- }
- break;
+ mnRepeatRowCount = std::max(it.toInt32(), static_cast<sal_Int32>(1));
}
+ break;
}
}
}
@@ -236,84 +236,84 @@ ScXMLExternalRefCellContext::ScXMLExternalRefCellContext(
using namespace ::xmloff::token;
const SvXMLTokenMap& rTokenMap = rImport.GetTableRowCellAttrTokenMap();
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &it : *rAttrList)
{
- for (auto &it : *rAttrList)
+ switch ( rTokenMap.Get( it.getToken() ) )
{
- switch ( rTokenMap.Get( it.getToken() ) )
+ case XML_TOK_TABLE_ROW_CELL_ATTR_STYLE_NAME:
{
- case XML_TOK_TABLE_ROW_CELL_ATTR_STYLE_NAME:
- {
- XMLTableStylesContext* pStyles = static_cast<XMLTableStylesContext*>(mrScImport.GetAutoStyles());
- const XMLTableStyleContext* pStyle = static_cast<const XMLTableStyleContext*>(
- pStyles->FindStyleChildContext(XmlStyleFamily::TABLE_CELL, it.toString(), true));
- if (pStyle)
- mnNumberFormat = const_cast<XMLTableStyleContext*>(pStyle)->GetNumberFormat();
- }
- break;
- case XML_TOK_TABLE_ROW_CELL_ATTR_REPEATED:
- {
- mnRepeatCount = ::std::max( it.toInt32(), static_cast<sal_Int32>(1) );
- }
- break;
- case XML_TOK_TABLE_ROW_CELL_ATTR_VALUE_TYPE:
- {
- mnCellType = ScXMLImport::GetCellType( it.toCString(), it.getLength() );
- }
- break;
- case XML_TOK_TABLE_ROW_CELL_ATTR_VALUE:
+ XMLTableStylesContext* pStyles = static_cast<XMLTableStylesContext*>(mrScImport.GetAutoStyles());
+ const XMLTableStyleContext* pStyle = static_cast<const XMLTableStyleContext*>(
+ pStyles->FindStyleChildContext(XmlStyleFamily::TABLE_CELL, it.toString(), true));
+ if (pStyle)
+ mnNumberFormat = const_cast<XMLTableStyleContext*>(pStyle)->GetNumberFormat();
+ }
+ break;
+ case XML_TOK_TABLE_ROW_CELL_ATTR_REPEATED:
+ {
+ mnRepeatCount = ::std::max( it.toInt32(), static_cast<sal_Int32>(1) );
+ }
+ break;
+ case XML_TOK_TABLE_ROW_CELL_ATTR_VALUE_TYPE:
+ {
+ mnCellType = ScXMLImport::GetCellType( it.toCString(), it.getLength() );
+ }
+ break;
+ case XML_TOK_TABLE_ROW_CELL_ATTR_VALUE:
+ {
+ if ( !it.isEmpty() )
{
- if ( !it.isEmpty() )
- {
- mfCellValue = it.toDouble();
- mbIsNumeric = true;
- mbIsEmpty = false;
- }
+ mfCellValue = it.toDouble();
+ mbIsNumeric = true;
+ mbIsEmpty = false;
}
- break;
- case XML_TOK_TABLE_ROW_CELL_ATTR_DATE_VALUE:
+ }
+ break;
+ case XML_TOK_TABLE_ROW_CELL_ATTR_DATE_VALUE:
+ {
+ if ( !it.isEmpty() && mrScImport.SetNullDateOnUnitConverter() )
{
- if ( !it.isEmpty() && mrScImport.SetNullDateOnUnitConverter() )
- {
- mrScImport.GetMM100UnitConverter().convertDateTime( mfCellValue, it.toString() );
- mbIsNumeric = true;
- mbIsEmpty = false;
- }
+ mrScImport.GetMM100UnitConverter().convertDateTime( mfCellValue, it.toString() );
+ mbIsNumeric = true;
+ mbIsEmpty = false;
}
- break;
- case XML_TOK_TABLE_ROW_CELL_ATTR_TIME_VALUE:
+ }
+ break;
+ case XML_TOK_TABLE_ROW_CELL_ATTR_TIME_VALUE:
+ {
+ if ( !it.isEmpty() )
{
- if ( !it.isEmpty() )
- {
- ::sax::Converter::convertDuration( mfCellValue, it.toString() );
- mbIsNumeric = true;
- mbIsEmpty = false;
- }
+ ::sax::Converter::convertDuration( mfCellValue, it.toString() );
+ mbIsNumeric = true;
+ mbIsEmpty = false;
}
- break;
- case XML_TOK_TABLE_ROW_CELL_ATTR_STRING_VALUE:
+ }
+ break;
+ case XML_TOK_TABLE_ROW_CELL_ATTR_STRING_VALUE:
+ {
+ if ( !it.isEmpty() )
{
- if ( !it.isEmpty() )
- {
- maCellString = it.toString();
- mbIsNumeric = false;
- mbIsEmpty = false;
- }
+ maCellString = it.toString();
+ mbIsNumeric = false;
+ mbIsEmpty = false;
}
- break;
- case XML_TOK_TABLE_ROW_CELL_ATTR_BOOLEAN_VALUE:
+ }
+ break;
+ case XML_TOK_TABLE_ROW_CELL_ATTR_BOOLEAN_VALUE:
+ {
+ if ( !it.isEmpty() )
{
- if ( !it.isEmpty() )
- {
- mfCellValue = IsXMLToken( it, XML_TRUE ) ? 1.0 : 0.0;
- mbIsNumeric = true;
- mbIsEmpty = false;
- }
+ mfCellValue = IsXMLToken( it, XML_TRUE ) ? 1.0 : 0.0;
+ mbIsNumeric = true;
+ mbIsEmpty = false;
}
- break;
- default:
- ;
}
+ break;
+ default:
+ ;
}
}
}
diff --git a/sc/source/filter/xml/xmlfilti.cxx b/sc/source/filter/xml/xmlfilti.cxx
index 49013cfc4c6c..947a70695ffa 100644
--- a/sc/source/filter/xml/xmlfilti.cxx
+++ b/sc/source/filter/xml/xmlfilti.cxx
@@ -50,41 +50,41 @@ ScXMLFilterContext::ScXMLFilterContext( ScXMLImport& rImport,
{
ScDocument* pDoc(GetScImport().GetDocument());
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_TARGET_RANGE_ADDRESS ):
{
- case XML_ELEMENT( TABLE, XML_TARGET_RANGE_ADDRESS ):
- {
- ScRange aScRange;
- sal_Int32 nOffset(0);
- if (ScRangeStringConverter::GetRangeFromString( aScRange, aIter.toString(), pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset ))
- {
- aOutputPosition = aScRange.aStart;
- bCopyOutputData = true;
- }
- }
- break;
- case XML_ELEMENT( TABLE, XML_CONDITION_SOURCE_RANGE_ADDRESS ):
- {
- sal_Int32 nOffset(0);
- if (ScRangeStringConverter::GetRangeFromString( aConditionSourceRangeAddress, aIter.toString(), pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset ) )
- bConditionSourceRange = true;
- }
- break;
- case XML_ELEMENT( TABLE, XML_CONDITION_SOURCE ):
+ ScRange aScRange;
+ sal_Int32 nOffset(0);
+ if (ScRangeStringConverter::GetRangeFromString( aScRange, aIter.toString(), pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset ))
{
- // not supported by StarOffice
+ aOutputPosition = aScRange.aStart;
+ bCopyOutputData = true;
}
- break;
- case XML_ELEMENT( TABLE, XML_DISPLAY_DUPLICATES ):
- {
- bSkipDuplicates = !IsXMLToken(aIter, XML_TRUE);
- }
- break;
}
+ break;
+ case XML_ELEMENT( TABLE, XML_CONDITION_SOURCE_RANGE_ADDRESS ):
+ {
+ sal_Int32 nOffset(0);
+ if (ScRangeStringConverter::GetRangeFromString( aConditionSourceRangeAddress, aIter.toString(), pDoc, ::formula::FormulaGrammar::CONV_OOO, nOffset ) )
+ bConditionSourceRange = true;
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_CONDITION_SOURCE ):
+ {
+ // not supported by StarOffice
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_DISPLAY_DUPLICATES ):
+ {
+ bSkipDuplicates = !IsXMLToken(aIter, XML_TRUE);
+ }
+ break;
}
}
}
@@ -285,38 +285,38 @@ ScXMLConditionContext::ScXMLConditionContext(
bIsCaseSensitive(false)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_FIELD_NUMBER ):
{
- case XML_ELEMENT( TABLE, XML_FIELD_NUMBER ):
- {
- nField = aIter.toInt32();
- }
- break;
- case XML_ELEMENT( TABLE, XML_CASE_SENSITIVE ):
- {
- bIsCaseSensitive = IsXMLToken(aIter, XML_TRUE);
- }
- break;
- case XML_ELEMENT( TABLE, XML_DATA_TYPE ):
- {
- sDataType = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_VALUE ):
- {
- sConditionValue = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_OPERATOR ):
- {
- sOperator = aIter.toString();
- }
- break;
+ nField = aIter.toInt32();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_CASE_SENSITIVE ):
+ {
+ bIsCaseSensitive = IsXMLToken(aIter, XML_TRUE);
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_DATA_TYPE ):
+ {
+ sDataType = aIter.toString();
}
+ break;
+ case XML_ELEMENT( TABLE, XML_VALUE ):
+ {
+ sConditionValue = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_OPERATOR ):
+ {
+ sOperator = aIter.toString();
+ }
+ break;
}
}
}
@@ -440,23 +440,23 @@ ScXMLSetItemContext::ScXMLSetItemContext(
const rtl::Reference<sax_fastparser::FastAttributeList>& rAttrList, ScXMLConditionContext& rParent) :
ScXMLImportContext(rImport)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_VALUE ):
{
- case XML_ELEMENT( TABLE, XML_VALUE ):
- {
- svl::SharedStringPool& rPool = GetScImport().GetDocument()->GetSharedStringPool();
- ScQueryEntry::Item aItem;
- aItem.maString = rPool.intern(aIter.toString());
- aItem.meType = ScQueryEntry::ByString;
- aItem.mfVal = 0.0;
- rParent.AddSetItem(aItem);
- }
- break;
+ svl::SharedStringPool& rPool = GetScImport().GetDocument()->GetSharedStringPool();
+ ScQueryEntry::Item aItem;
+ aItem.maString = rPool.intern(aIter.toString());
+ aItem.meType = ScQueryEntry::ByString;
+ aItem.mfVal = 0.0;
+ rParent.AddSetItem(aItem);
}
+ break;
}
}
}
@@ -478,34 +478,34 @@ ScXMLDPFilterContext::ScXMLDPFilterContext( ScXMLImport& rImport,
bConnectionOr(true),
bNextConnectionOr(true)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_TARGET_RANGE_ADDRESS ):
{
- case XML_ELEMENT( TABLE, XML_TARGET_RANGE_ADDRESS ):
- {
- // not supported
- }
- break;
- case XML_ELEMENT( TABLE, XML_CONDITION_SOURCE_RANGE_ADDRESS ):
- {
- // not supported
- }
- break;
- case XML_ELEMENT( TABLE, XML_CONDITION_SOURCE ):
- {
- // not supported by StarOffice
- }
- break;
- case XML_ELEMENT( TABLE, XML_DISPLAY_DUPLICATES ):
- {
- bSkipDuplicates = !IsXMLToken(aIter, XML_TRUE);
- }
- break;
- }
- }
+ // not supported
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_CONDITION_SOURCE_RANGE_ADDRESS ):
+ {
+ // not supported
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_CONDITION_SOURCE ):
+ {
+ // not supported by StarOffice
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_DISPLAY_DUPLICATES ):
+ {
+ bSkipDuplicates = !IsXMLToken(aIter, XML_TRUE);
+ }
+ break;
+ }
}
}
@@ -653,38 +653,38 @@ ScXMLDPConditionContext::ScXMLDPConditionContext( ScXMLImport& rImport,
bIsCaseSensitive(false)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_FIELD_NUMBER ):
{
- case XML_ELEMENT( TABLE, XML_FIELD_NUMBER ):
- {
- nField = aIter.toInt32();
- }
- break;
- case XML_ELEMENT( TABLE, XML_CASE_SENSITIVE ):
- {
- bIsCaseSensitive = IsXMLToken(aIter, XML_TRUE);
- }
- break;
- case XML_ELEMENT( TABLE, XML_DATA_TYPE ):
- {
- sDataType = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_VALUE ):
- {
- sConditionValue = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_OPERATOR ):
- {
- sOperator = aIter.toString();
- }
- break;
+ nField = aIter.toInt32();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_CASE_SENSITIVE ):
+ {
+ bIsCaseSensitive = IsXMLToken(aIter, XML_TRUE);
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_DATA_TYPE ):
+ {
+ sDataType = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_VALUE ):
+ {
+ sConditionValue = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_OPERATOR ):
+ {
+ sOperator = aIter.toString();
}
+ break;
}
}
}
diff --git a/sc/source/filter/xml/xmlfonte.cxx b/sc/source/filter/xml/xmlfonte.cxx
index 754c6471798f..1120ed9cfd09 100644
--- a/sc/source/filter/xml/xmlfonte.cxx
+++ b/sc/source/filter/xml/xmlfonte.cxx
@@ -93,50 +93,50 @@ ScXMLFontAutoStylePool_Impl::ScXMLFontAutoStylePool_Impl(ScXMLExport& rExportP,
m_bEmbedAsianScript = rExportP.GetDocument()->IsEmbedFontScriptAsian();
m_bEmbedComplexScript = rExportP.GetDocument()->IsEmbedFontScriptComplex();
- if(pItr)
+ if(!pItr)
+ return;
+
+ SfxStyleSheetBase* pStyle(pItr->First());
+
+ if(!pStyle)
+ return;
+
+ // #i120077# remember the SfxItemPool in member variable before usage. The
+ // local EditEngine will not take over ownership of the pool.
+ mpEditEnginePool = EditEngine::CreatePool();
+ EditEngine aEditEngine(mpEditEnginePool);
+
+ while (pStyle)
{
- SfxStyleSheetBase* pStyle(pItr->First());
+ const SfxItemPool& rPagePool(pStyle->GetPool()->GetPool());
- if(pStyle)
+ for (sal_uInt16 nPageWhichId : aPageWhichIds)
{
- // #i120077# remember the SfxItemPool in member variable before usage. The
- // local EditEngine will not take over ownership of the pool.
- mpEditEnginePool = EditEngine::CreatePool();
- EditEngine aEditEngine(mpEditEnginePool);
-
- while (pStyle)
+ for (const SfxPoolItem* pItem : rPagePool.GetItemSurrogates( nPageWhichId ))
{
- const SfxItemPool& rPagePool(pStyle->GetPool()->GetPool());
-
- for (sal_uInt16 nPageWhichId : aPageWhichIds)
+ const ScPageHFItem* pPageItem = static_cast<const ScPageHFItem*>(pItem);
+ const EditTextObject* pLeftArea(pPageItem->GetLeftArea());
+ if (pLeftArea)
{
- for (const SfxPoolItem* pItem : rPagePool.GetItemSurrogates( nPageWhichId ))
- {
- const ScPageHFItem* pPageItem = static_cast<const ScPageHFItem*>(pItem);
- const EditTextObject* pLeftArea(pPageItem->GetLeftArea());
- if (pLeftArea)
- {
- aEditEngine.SetText(*pLeftArea);
- AddFontItems(aEditWhichIds, 3, mpEditEnginePool, false);
- }
- const EditTextObject* pCenterArea(pPageItem->GetCenterArea());
- if (pCenterArea)
- {
- aEditEngine.SetText(*pCenterArea);
- AddFontItems(aEditWhichIds, 3, mpEditEnginePool, false);
- }
- const EditTextObject* pRightArea(pPageItem->GetRightArea());
- if (pRightArea)
- {
- aEditEngine.SetText(*pRightArea);
- AddFontItems(aEditWhichIds, 3, mpEditEnginePool, false);
- }
- }
+ aEditEngine.SetText(*pLeftArea);
+ AddFontItems(aEditWhichIds, 3, mpEditEnginePool, false);
+ }
+ const EditTextObject* pCenterArea(pPageItem->GetCenterArea());
+ if (pCenterArea)
+ {
+ aEditEngine.SetText(*pCenterArea);
+ AddFontItems(aEditWhichIds, 3, mpEditEnginePool, false);
+ }
+ const EditTextObject* pRightArea(pPageItem->GetRightArea());
+ if (pRightArea)
+ {
+ aEditEngine.SetText(*pRightArea);
+ AddFontItems(aEditWhichIds, 3, mpEditEnginePool, false);
}
-
- pStyle = pItr->Next();
}
}
+
+ pStyle = pItr->Next();
}
}
diff --git a/sc/source/filter/xml/xmlimprt.cxx b/sc/source/filter/xml/xmlimprt.cxx
index da3624b2e5ce..0290c4fe6ec9 100644
--- a/sc/source/filter/xml/xmlimprt.cxx
+++ b/sc/source/filter/xml/xmlimprt.cxx
@@ -837,82 +837,82 @@ void ScXMLImport::ExamineDefaultStyle()
void ScXMLImport::SetChangeTrackingViewSettings(const css::uno::Sequence<css::beans::PropertyValue>& rChangeProps)
{
- if (pDoc)
+ if (!pDoc)
+ return;
+
+ if (!rChangeProps.hasElements())
+ return;
+
+ ScXMLImport::MutexGuard aGuard(*this);
+ sal_Int16 nTemp16(0);
+ std::unique_ptr<ScChangeViewSettings> pViewSettings(new ScChangeViewSettings());
+ for (const auto& rChangeProp : rChangeProps)
{
- if (rChangeProps.hasElements())
+ OUString sName(rChangeProp.Name);
+ if (sName == "ShowChanges")
+ pViewSettings->SetShowChanges(::cppu::any2bool(rChangeProp.Value));
+ else if (sName == "ShowAcceptedChanges")
+ pViewSettings->SetShowAccepted(::cppu::any2bool(rChangeProp.Value));
+ else if (sName == "ShowRejectedChanges")
+ pViewSettings->SetShowRejected(::cppu::any2bool(rChangeProp.Value));
+ else if (sName == "ShowChangesByDatetime")
+ pViewSettings->SetHasDate(::cppu::any2bool(rChangeProp.Value));
+ else if (sName == "ShowChangesByDatetimeMode")
+ {
+ if (rChangeProp.Value >>= nTemp16)
+ pViewSettings->SetTheDateMode(static_cast<SvxRedlinDateMode>(nTemp16));
+ }
+ else if (sName == "ShowChangesByDatetimeFirstDatetime")
{
- ScXMLImport::MutexGuard aGuard(*this);
- sal_Int16 nTemp16(0);
- std::unique_ptr<ScChangeViewSettings> pViewSettings(new ScChangeViewSettings());
- for (const auto& rChangeProp : rChangeProps)
+ util::DateTime aDateTime;
+ if (rChangeProp.Value >>= aDateTime)
{
- OUString sName(rChangeProp.Name);
- if (sName == "ShowChanges")
- pViewSettings->SetShowChanges(::cppu::any2bool(rChangeProp.Value));
- else if (sName == "ShowAcceptedChanges")
- pViewSettings->SetShowAccepted(::cppu::any2bool(rChangeProp.Value));
- else if (sName == "ShowRejectedChanges")
- pViewSettings->SetShowRejected(::cppu::any2bool(rChangeProp.Value));
- else if (sName == "ShowChangesByDatetime")
- pViewSettings->SetHasDate(::cppu::any2bool(rChangeProp.Value));
- else if (sName == "ShowChangesByDatetimeMode")
- {
- if (rChangeProp.Value >>= nTemp16)
- pViewSettings->SetTheDateMode(static_cast<SvxRedlinDateMode>(nTemp16));
- }
- else if (sName == "ShowChangesByDatetimeFirstDatetime")
- {
- util::DateTime aDateTime;
- if (rChangeProp.Value >>= aDateTime)
- {
- pViewSettings->SetTheFirstDateTime(::DateTime(aDateTime));
- }
- }
- else if (sName == "ShowChangesByDatetimeSecondDatetime")
- {
- util::DateTime aDateTime;
- if (rChangeProp.Value >>= aDateTime)
- {
- pViewSettings->SetTheLastDateTime(::DateTime(aDateTime));
- }
- }
- else if (sName == "ShowChangesByAuthor")
- pViewSettings->SetHasAuthor(::cppu::any2bool(rChangeProp.Value));
- else if (sName == "ShowChangesByAuthorName")
- {
- OUString sOUName;
- if (rChangeProp.Value >>= sOUName)
- {
- pViewSettings->SetTheAuthorToShow(sOUName);
- }
- }
- else if (sName == "ShowChangesByComment")
- pViewSettings->SetHasComment(::cppu::any2bool(rChangeProp.Value));
- else if (sName == "ShowChangesByCommentText")
- {
- OUString sOUComment;
- if (rChangeProp.Value >>= sOUComment)
- {
- pViewSettings->SetTheComment(sOUComment);
- }
- }
- else if (sName == "ShowChangesByRanges")
- pViewSettings->SetHasRange(::cppu::any2bool(rChangeProp.Value));
- else if (sName == "ShowChangesByRangesList")
- {
- OUString sRanges;
- if ((rChangeProp.Value >>= sRanges) && !sRanges.isEmpty())
- {
- ScRangeList aRangeList;
- ScRangeStringConverter::GetRangeListFromString(
- aRangeList, sRanges, GetDocument(), FormulaGrammar::CONV_OOO);
- pViewSettings->SetTheRangeList(aRangeList);
- }
- }
+ pViewSettings->SetTheFirstDateTime(::DateTime(aDateTime));
+ }
+ }
+ else if (sName == "ShowChangesByDatetimeSecondDatetime")
+ {
+ util::DateTime aDateTime;
+ if (rChangeProp.Value >>= aDateTime)
+ {
+ pViewSettings->SetTheLastDateTime(::DateTime(aDateTime));
+ }
+ }
+ else if (sName == "ShowChangesByAuthor")
+ pViewSettings->SetHasAuthor(::cppu::any2bool(rChangeProp.Value));
+ else if (sName == "ShowChangesByAuthorName")
+ {
+ OUString sOUName;
+ if (rChangeProp.Value >>= sOUName)
+ {
+ pViewSettings->SetTheAuthorToShow(sOUName);
+ }
+ }
+ else if (sName == "ShowChangesByComment")
+ pViewSettings->SetHasComment(::cppu::any2bool(rChangeProp.Value));
+ else if (sName == "ShowChangesByCommentText")
+ {
+ OUString sOUComment;
+ if (rChangeProp.Value >>= sOUComment)
+ {
+ pViewSettings->SetTheComment(sOUComment);
+ }
+ }
+ else if (sName == "ShowChangesByRanges")
+ pViewSettings->SetHasRange(::cppu::any2bool(rChangeProp.Value));
+ else if (sName == "ShowChangesByRangesList")
+ {
+ OUString sRanges;
+ if ((rChangeProp.Value >>= sRanges) && !sRanges.isEmpty())
+ {
+ ScRangeList aRangeList;
+ ScRangeStringConverter::GetRangeListFromString(
+ aRangeList, sRanges, GetDocument(), FormulaGrammar::CONV_OOO);
+ pViewSettings->SetTheRangeList(aRangeList);
}
- pDoc->SetChangeViewSettings(*pViewSettings);
}
}
+ pDoc->SetChangeViewSettings(*pViewSettings);
}
void ScXMLImport::SetViewSettings(const uno::Sequence<beans::PropertyValue>& aViewProps)
@@ -939,81 +939,81 @@ void ScXMLImport::SetViewSettings(const uno::Sequence<beans::PropertyValue>& aVi
SetChangeTrackingViewSettings(aChangeProps);
}
}
- if (nHeight && nWidth && GetModel().is())
+ if (!(nHeight && nWidth && GetModel().is()))
+ return;
+
+ ScModelObj* pDocObj(comphelper::getUnoTunnelImplementation<ScModelObj>( GetModel() ));
+ if (!pDocObj)
+ return;
+
+ SfxObjectShell* pEmbeddedObj = pDocObj->GetEmbeddedObject();
+ if (pEmbeddedObj)
{
- ScModelObj* pDocObj(comphelper::getUnoTunnelImplementation<ScModelObj>( GetModel() ));
- if (pDocObj)
- {
- SfxObjectShell* pEmbeddedObj = pDocObj->GetEmbeddedObject();
- if (pEmbeddedObj)
- {
- tools::Rectangle aRect;
- aRect.setX( nLeft );
- aRect.setY( nTop );
- aRect.setWidth( nWidth );
- aRect.setHeight( nHeight );
- pEmbeddedObj->SetVisArea(aRect);
- }
- }
+ tools::Rectangle aRect;
+ aRect.setX( nLeft );
+ aRect.setY( nTop );
+ aRect.setWidth( nWidth );
+ aRect.setHeight( nHeight );
+ pEmbeddedObj->SetVisArea(aRect);
}
}
void ScXMLImport::SetConfigurationSettings(const uno::Sequence<beans::PropertyValue>& aConfigProps)
{
- if (GetModel().is())
+ if (!GetModel().is())
+ return;
+
+ uno::Reference <lang::XMultiServiceFactory> xMultiServiceFactory(GetModel(), uno::UNO_QUERY);
+ if (!xMultiServiceFactory.is())
+ return;
+
+ sal_Int32 nCount(aConfigProps.getLength());
+ css::uno::Sequence<css::beans::PropertyValue> aFilteredProps(nCount);
+ sal_Int32 nFilteredPropsLen = 0;
+ for (sal_Int32 i = nCount - 1; i >= 0; --i)
{
- uno::Reference <lang::XMultiServiceFactory> xMultiServiceFactory(GetModel(), uno::UNO_QUERY);
- if (xMultiServiceFactory.is())
+ if (aConfigProps[i].Name == "TrackedChangesProtectionKey")
{
- sal_Int32 nCount(aConfigProps.getLength());
- css::uno::Sequence<css::beans::PropertyValue> aFilteredProps(nCount);
- sal_Int32 nFilteredPropsLen = 0;
- for (sal_Int32 i = nCount - 1; i >= 0; --i)
+ OUString sKey;
+ if (aConfigProps[i].Value >>= sKey)
{
- if (aConfigProps[i].Name == "TrackedChangesProtectionKey")
+ uno::Sequence<sal_Int8> aPass;
+ ::comphelper::Base64::decode(aPass, sKey);
+ if (aPass.hasElements())
{
- OUString sKey;
- if (aConfigProps[i].Value >>= sKey)
+ if (pDoc->GetChangeTrack())
+ pDoc->GetChangeTrack()->SetProtection(aPass);
+ else
{
- uno::Sequence<sal_Int8> aPass;
- ::comphelper::Base64::decode(aPass, sKey);
- if (aPass.hasElements())
- {
- if (pDoc->GetChangeTrack())
- pDoc->GetChangeTrack()->SetProtection(aPass);
- else
- {
- std::set<OUString> aUsers;
- std::unique_ptr<ScChangeTrack> pTrack( new ScChangeTrack(pDoc, aUsers) );
- pTrack->SetProtection(aPass);
- pDoc->SetChangeTrack(std::move(pTrack));
- }
- }
- }
- }
- // store the following items for later use (after document is loaded)
- else if ((aConfigProps[i].Name == "VBACompatibilityMode") || (aConfigProps[i].Name == "ScriptConfiguration"))
- {
- uno::Reference< beans::XPropertySet > xImportInfo = getImportInfo();
- if (xImportInfo.is())
- {
- uno::Reference< beans::XPropertySetInfo > xPropertySetInfo = xImportInfo->getPropertySetInfo();
- if (xPropertySetInfo.is() && xPropertySetInfo->hasPropertyByName(aConfigProps[i].Name))
- xImportInfo->setPropertyValue( aConfigProps[i].Name, aConfigProps[i].Value );
+ std::set<OUString> aUsers;
+ std::unique_ptr<ScChangeTrack> pTrack( new ScChangeTrack(pDoc, aUsers) );
+ pTrack->SetProtection(aPass);
+ pDoc->SetChangeTrack(std::move(pTrack));
}
}
- if (aConfigProps[i].Name != "LinkUpdateMode")
- {
- aFilteredProps[nFilteredPropsLen++] = aConfigProps[i];
- }
}
- aFilteredProps.realloc(nFilteredPropsLen);
- uno::Reference <uno::XInterface> xInterface = xMultiServiceFactory->createInstance("com.sun.star.comp.SpreadsheetSettings");
- uno::Reference <beans::XPropertySet> xProperties(xInterface, uno::UNO_QUERY);
- if (xProperties.is())
- SvXMLUnitConverter::convertPropertySet(xProperties, aFilteredProps);
+ }
+ // store the following items for later use (after document is loaded)
+ else if ((aConfigProps[i].Name == "VBACompatibilityMode") || (aConfigProps[i].Name == "ScriptConfiguration"))
+ {
+ uno::Reference< beans::XPropertySet > xImportInfo = getImportInfo();
+ if (xImportInfo.is())
+ {
+ uno::Reference< beans::XPropertySetInfo > xPropertySetInfo = xImportInfo->getPropertySetInfo();
+ if (xPropertySetInfo.is() && xPropertySetInfo->hasPropertyByName(aConfigProps[i].Name))
+ xImportInfo->setPropertyValue( aConfigProps[i].Name, aConfigProps[i].Value );
+ }
+ }
+ if (aConfigProps[i].Name != "LinkUpdateMode")
+ {
+ aFilteredProps[nFilteredPropsLen++] = aConfigProps[i];
}
}
+ aFilteredProps.realloc(nFilteredPropsLen);
+ uno::Reference <uno::XInterface> xInterface = xMultiServiceFactory->createInstance("com.sun.star.comp.SpreadsheetSettings");
+ uno::Reference <beans::XPropertySet> xProperties(xInterface, uno::UNO_QUERY);
+ if (xProperties.is())
+ SvXMLUnitConverter::convertPropertySet(xProperties, aFilteredProps);
}
sal_Int32 ScXMLImport::SetCurrencySymbol(const sal_Int32 nKey, const OUString& rCurrency)
@@ -1127,73 +1127,73 @@ void ScXMLImport::SetType(const uno::Reference <beans::XPropertySet>& rPropertie
if (!mbImportStyles)
return;
- if ((nCellType != util::NumberFormat::TEXT) && (nCellType != util::NumberFormat::UNDEFINED))
+ if ((nCellType == util::NumberFormat::TEXT) || (nCellType == util::NumberFormat::UNDEFINED))
+ return;
+
+ if (rNumberFormat == -1)
+ rProperties->getPropertyValue( gsNumberFormat ) >>= rNumberFormat;
+ OSL_ENSURE(rNumberFormat != -1, "no NumberFormat");
+ bool bIsStandard;
+ // sCurrentCurrency may be the ISO code abbreviation if the currency
+ // symbol matches such, or if no match found the symbol itself!
+ OUString sCurrentCurrency;
+ sal_Int32 nCurrentCellType(
+ GetNumberFormatAttributesExportHelper()->GetCellType(
+ rNumberFormat, sCurrentCurrency, bIsStandard) & ~util::NumberFormat::DEFINED);
+ // If the (numeric) cell type (number, currency, date, time, boolean)
+ // is different from the format type then for some combinations we may
+ // have to apply a format, e.g. in case the generator deduced format
+ // from type and did not apply a format but we don't keep a dedicated
+ // type internally. Specifically this is necessary if the cell type is
+ // not number but the format type is (i.e. General). Currency cells
+ // need extra attention, see calls of ScXMLImport::IsCurrencySymbol()
+ // and description within there and ScXMLImport::SetCurrencySymbol().
+ if ((nCellType != nCurrentCellType) &&
+ (nCellType != util::NumberFormat::NUMBER) &&
+ (bIsStandard || (nCellType == util::NumberFormat::CURRENCY)))
{
- if (rNumberFormat == -1)
- rProperties->getPropertyValue( gsNumberFormat ) >>= rNumberFormat;
- OSL_ENSURE(rNumberFormat != -1, "no NumberFormat");
- bool bIsStandard;
- // sCurrentCurrency may be the ISO code abbreviation if the currency
- // symbol matches such, or if no match found the symbol itself!
- OUString sCurrentCurrency;
- sal_Int32 nCurrentCellType(
- GetNumberFormatAttributesExportHelper()->GetCellType(
- rNumberFormat, sCurrentCurrency, bIsStandard) & ~util::NumberFormat::DEFINED);
- // If the (numeric) cell type (number, currency, date, time, boolean)
- // is different from the format type then for some combinations we may
- // have to apply a format, e.g. in case the generator deduced format
- // from type and did not apply a format but we don't keep a dedicated
- // type internally. Specifically this is necessary if the cell type is
- // not number but the format type is (i.e. General). Currency cells
- // need extra attention, see calls of ScXMLImport::IsCurrencySymbol()
- // and description within there and ScXMLImport::SetCurrencySymbol().
- if ((nCellType != nCurrentCellType) &&
- (nCellType != util::NumberFormat::NUMBER) &&
- (bIsStandard || (nCellType == util::NumberFormat::CURRENCY)))
+ if (!xNumberFormats.is())
{
- if (!xNumberFormats.is())
- {
- uno::Reference <util::XNumberFormatsSupplier> xNumberFormatsSupplier(GetNumberFormatsSupplier());
- if (xNumberFormatsSupplier.is())
- xNumberFormats.set(xNumberFormatsSupplier->getNumberFormats());
- }
- if (xNumberFormats.is())
+ uno::Reference <util::XNumberFormatsSupplier> xNumberFormatsSupplier(GetNumberFormatsSupplier());
+ if (xNumberFormatsSupplier.is())
+ xNumberFormats.set(xNumberFormatsSupplier->getNumberFormats());
+ }
+ if (xNumberFormats.is())
+ {
+ try
{
- try
+ uno::Reference < beans::XPropertySet> xNumberFormatProperties(xNumberFormats->getByKey(rNumberFormat));
+ if (xNumberFormatProperties.is())
{
- uno::Reference < beans::XPropertySet> xNumberFormatProperties(xNumberFormats->getByKey(rNumberFormat));
- if (xNumberFormatProperties.is())
+ if (nCellType != util::NumberFormat::CURRENCY)
{
- if (nCellType != util::NumberFormat::CURRENCY)
+ lang::Locale aLocale;
+ if ( xNumberFormatProperties->getPropertyValue(gsLocale) >>= aLocale )
{
- lang::Locale aLocale;
- if ( xNumberFormatProperties->getPropertyValue(gsLocale) >>= aLocale )
- {
- if (!xNumberFormatTypes.is())
- xNumberFormatTypes.set(uno::Reference <util::XNumberFormatTypes>(xNumberFormats, uno::UNO_QUERY));
- rProperties->setPropertyValue( gsNumberFormat, uno::makeAny(xNumberFormatTypes->getStandardFormat(nCellType, aLocale)) );
- }
- }
- else if (!rCurrency.isEmpty() && !sCurrentCurrency.isEmpty())
- {
- if (sCurrentCurrency != rCurrency)
- if (!IsCurrencySymbol(rNumberFormat, sCurrentCurrency, rCurrency))
- rProperties->setPropertyValue( gsNumberFormat, uno::makeAny(SetCurrencySymbol(rNumberFormat, rCurrency)));
+ if (!xNumberFormatTypes.is())
+ xNumberFormatTypes.set(uno::Reference <util::XNumberFormatTypes>(xNumberFormats, uno::UNO_QUERY));
+ rProperties->setPropertyValue( gsNumberFormat, uno::makeAny(xNumberFormatTypes->getStandardFormat(nCellType, aLocale)) );
}
}
- }
- catch ( uno::Exception& )
- {
- OSL_FAIL("Numberformat not found");
+ else if (!rCurrency.isEmpty() && !sCurrentCurrency.isEmpty())
+ {
+ if (sCurrentCurrency != rCurrency)
+ if (!IsCurrencySymbol(rNumberFormat, sCurrentCurrency, rCurrency))
+ rProperties->setPropertyValue( gsNumberFormat, uno::makeAny(SetCurrencySymbol(rNumberFormat, rCurrency)));
+ }
}
}
+ catch ( uno::Exception& )
+ {
+ OSL_FAIL("Numberformat not found");
+ }
}
- else
- {
- if ((nCellType == util::NumberFormat::CURRENCY) && !rCurrency.isEmpty() && !sCurrentCurrency.isEmpty() &&
- sCurrentCurrency != rCurrency && !IsCurrencySymbol(rNumberFormat, sCurrentCurrency, rCurrency))
- rProperties->setPropertyValue( gsNumberFormat, uno::makeAny(SetCurrencySymbol(rNumberFormat, rCurrency)));
- }
+ }
+ else
+ {
+ if ((nCellType == util::NumberFormat::CURRENCY) && !rCurrency.isEmpty() && !sCurrentCurrency.isEmpty() &&
+ sCurrentCurrency != rCurrency && !IsCurrencySymbol(rNumberFormat, sCurrentCurrency, rCurrency))
+ rProperties->setPropertyValue( gsNumberFormat, uno::makeAny(SetCurrencySymbol(rNumberFormat, rCurrency)));
}
}
@@ -1433,42 +1433,42 @@ sal_Int32 ScXMLImport::GetRangeType(const OUString& sRangeType)
void ScXMLImport::SetLabelRanges()
{
- if (pMyLabelRanges)
- {
- uno::Reference <beans::XPropertySet> xPropertySet (GetModel(), uno::UNO_QUERY);
- if (xPropertySet.is())
- {
- uno::Any aColAny = xPropertySet->getPropertyValue(SC_UNO_COLLABELRNG);
- uno::Any aRowAny = xPropertySet->getPropertyValue(SC_UNO_ROWLABELRNG);
+ if (!pMyLabelRanges)
+ return;
- uno::Reference< sheet::XLabelRanges > xColRanges;
- uno::Reference< sheet::XLabelRanges > xRowRanges;
+ uno::Reference <beans::XPropertySet> xPropertySet (GetModel(), uno::UNO_QUERY);
+ if (!xPropertySet.is())
+ return;
- if ( ( aColAny >>= xColRanges ) && ( aRowAny >>= xRowRanges ) )
- {
- table::CellRangeAddress aLabelRange;
- table::CellRangeAddress aDataRange;
+ uno::Any aColAny = xPropertySet->getPropertyValue(SC_UNO_COLLABELRNG);
+ uno::Any aRowAny = xPropertySet->getPropertyValue(SC_UNO_ROWLABELRNG);
- for (const auto& rxLabelRange : *pMyLabelRanges)
- {
- sal_Int32 nOffset1(0);
- sal_Int32 nOffset2(0);
- FormulaGrammar::AddressConvention eConv = FormulaGrammar::CONV_OOO;
+ uno::Reference< sheet::XLabelRanges > xColRanges;
+ uno::Reference< sheet::XLabelRanges > xRowRanges;
- if (ScRangeStringConverter::GetRangeFromString( aLabelRange, rxLabelRange->sLabelRangeStr, GetDocument(), eConv, nOffset1 ) &&
- ScRangeStringConverter::GetRangeFromString( aDataRange, rxLabelRange->sDataRangeStr, GetDocument(), eConv, nOffset2 ))
- {
- if ( rxLabelRange->bColumnOrientation )
- xColRanges->addNew( aLabelRange, aDataRange );
- else
- xRowRanges->addNew( aLabelRange, aDataRange );
- }
- }
+ if ( !(( aColAny >>= xColRanges ) && ( aRowAny >>= xRowRanges )) )
+ return;
- pMyLabelRanges->clear();
- }
+ table::CellRangeAddress aLabelRange;
+ table::CellRangeAddress aDataRange;
+
+ for (const auto& rxLabelRange : *pMyLabelRanges)
+ {
+ sal_Int32 nOffset1(0);
+ sal_Int32 nOffset2(0);
+ FormulaGrammar::AddressConvention eConv = FormulaGrammar::CONV_OOO;
+
+ if (ScRangeStringConverter::GetRangeFromString( aLabelRange, rxLabelRange->sLabelRangeStr, GetDocument(), eConv, nOffset1 ) &&
+ ScRangeStringConverter::GetRangeFromString( aDataRange, rxLabelRange->sDataRangeStr, GetDocument(), eConv, nOffset2 ))
+ {
+ if ( rxLabelRange->bColumnOrientation )
+ xColRanges->addNew( aLabelRange, aDataRange );
+ else
+ xRowRanges->addNew( aLabelRange, aDataRange );
}
}
+
+ pMyLabelRanges->clear();
}
namespace {
@@ -1495,24 +1495,24 @@ public:
if ( nUnoType & sheet::NamedRangeFlag::COLUMN_HEADER ) nNewType |= ScRangeData::Type::ColHeader;
if ( nUnoType & sheet::NamedRangeFlag::ROW_HEADER ) nNewType |= ScRangeData::Type::RowHeader;
- if (mpDoc)
- {
- // Insert a new name.
- ScAddress aPos;
- sal_Int32 nOffset = 0;
- bool bSuccess = ScRangeStringConverter::GetAddressFromString(
- aPos, p->sBaseCellAddress, mpDoc, FormulaGrammar::CONV_OOO, nOffset);
+ if (!mpDoc)
+ return;
- if (bSuccess)
- {
- OUString aContent = p->sContent;
- if (!p->bIsExpression)
- ScXMLConverter::ConvertCellRangeAddress(aContent);
+ // Insert a new name.
+ ScAddress aPos;
+ sal_Int32 nOffset = 0;
+ bool bSuccess = ScRangeStringConverter::GetAddressFromString(
+ aPos, p->sBaseCellAddress, mpDoc, FormulaGrammar::CONV_OOO, nOffset);
- ScRangeData* pData = new ScRangeData(
- mpDoc, p->sName, aContent, aPos, nNewType, p->eGrammar);
- mrRangeName.insert(pData);
- }
+ if (bSuccess)
+ {
+ OUString aContent = p->sContent;
+ if (!p->bIsExpression)
+ ScXMLConverter::ConvertCellRangeAddress(aContent);
+
+ ScRangeData* pData = new ScRangeData(
+ mpDoc, p->sName, aContent, aPos, nNewType, p->eGrammar);
+ mrRangeName.insert(pData);
}
}
};
diff --git a/sc/source/filter/xml/xmllabri.cxx b/sc/source/filter/xml/xmllabri.cxx
index c7b28e8750a0..16acf8f85164 100644
--- a/sc/source/filter/xml/xmllabri.cxx
+++ b/sc/source/filter/xml/xmllabri.cxx
@@ -60,22 +60,22 @@ ScXMLLabelRangeContext::ScXMLLabelRangeContext(
ScXMLImportContext( rImport ),
bColumnOrientation( false )
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_LABEL_CELL_RANGE_ADDRESS ):
- sLabelRangeStr = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_DATA_CELL_RANGE_ADDRESS ):
- sDataRangeStr = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_ORIENTATION ):
- bColumnOrientation = IsXMLToken(aIter, XML_COLUMN );
- break;
- }
+ case XML_ELEMENT( TABLE, XML_LABEL_CELL_RANGE_ADDRESS ):
+ sLabelRangeStr = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_DATA_CELL_RANGE_ADDRESS ):
+ sDataRangeStr = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_ORIENTATION ):
+ bColumnOrientation = IsXMLToken(aIter, XML_COLUMN );
+ break;
}
}
}
diff --git a/sc/source/filter/xml/xmlrowi.cxx b/sc/source/filter/xml/xmlrowi.cxx
index e23b3467428d..bbec80238a26 100644
--- a/sc/source/filter/xml/xmlrowi.cxx
+++ b/sc/source/filter/xml/xmlrowi.cxx
@@ -143,78 +143,78 @@ void SAL_CALL ScXMLTableRowContext::endFastElement(sal_Int32 /*nElement*/)
SCTAB nSheet = rXMLImport.GetTables().GetCurrentSheet();
sal_Int32 nCurrentRow(rXMLImport.GetTables().GetCurrentRow());
uno::Reference<sheet::XSpreadsheet> xSheet(rXMLImport.GetTables().GetCurrentXSheet());
- if(xSheet.is())
+ if(!xSheet.is())
+ return;
+
+ sal_Int32 nFirstRow(nCurrentRow - nRepeatedRows + 1);
+ if (nFirstRow > pDoc->MaxRow())
+ nFirstRow = pDoc->MaxRow();
+ if (nCurrentRow > pDoc->MaxRow())
+ nCurrentRow = pDoc->MaxRow();
+ uno::Reference <table::XCellRange> xCellRange(xSheet->getCellRangeByPosition(0, nFirstRow, 0, nCurrentRow));
+ if (!xCellRange.is())
+ return;
+
+ uno::Reference<table::XColumnRowRange> xColumnRowRange (xCellRange, uno::UNO_QUERY);
+ if (!xColumnRowRange.is())
+ return;
+
+ uno::Reference <beans::XPropertySet> xRowProperties(xColumnRowRange->getRows(), uno::UNO_QUERY);
+ if (!xRowProperties.is())
+ return;
+
+ if (!sStyleName.isEmpty())
{
- sal_Int32 nFirstRow(nCurrentRow - nRepeatedRows + 1);
- if (nFirstRow > pDoc->MaxRow())
- nFirstRow = pDoc->MaxRow();
- if (nCurrentRow > pDoc->MaxRow())
- nCurrentRow = pDoc->MaxRow();
- uno::Reference <table::XCellRange> xCellRange(xSheet->getCellRangeByPosition(0, nFirstRow, 0, nCurrentRow));
- if (xCellRange.is())
+ XMLTableStylesContext *pStyles(static_cast<XMLTableStylesContext *>(rXMLImport.GetAutoStyles()));
+ if ( pStyles )
{
- uno::Reference<table::XColumnRowRange> xColumnRowRange (xCellRange, uno::UNO_QUERY);
- if (xColumnRowRange.is())
+ XMLTableStyleContext* pStyle(const_cast<XMLTableStyleContext*>(static_cast<const XMLTableStyleContext *>(pStyles->FindStyleChildContext(
+ XmlStyleFamily::TABLE_ROW, sStyleName, true))));
+ if (pStyle)
{
- uno::Reference <beans::XPropertySet> xRowProperties(xColumnRowRange->getRows(), uno::UNO_QUERY);
- if (xRowProperties.is())
- {
- if (!sStyleName.isEmpty())
- {
- XMLTableStylesContext *pStyles(static_cast<XMLTableStylesContext *>(rXMLImport.GetAutoStyles()));
- if ( pStyles )
- {
- XMLTableStyleContext* pStyle(const_cast<XMLTableStyleContext*>(static_cast<const XMLTableStyleContext *>(pStyles->FindStyleChildContext(
- XmlStyleFamily::TABLE_ROW, sStyleName, true))));
- if (pStyle)
- {
- pStyle->FillPropertySet(xRowProperties);
+ pStyle->FillPropertySet(xRowProperties);
- if ( nSheet != pStyle->GetLastSheet() )
- {
- ScSheetSaveData* pSheetData = comphelper::getUnoTunnelImplementation<ScModelObj>(rXMLImport.GetModel())->GetSheetSaveData();
- pSheetData->AddRowStyle( sStyleName, ScAddress( 0, static_cast<SCROW>(nFirstRow), nSheet ) );
- pStyle->SetLastSheet(nSheet);
- }
- }
- }
- }
- bool bVisible (true);
- bool bFiltered (false);
- if (IsXMLToken(sVisibility, XML_COLLAPSE))
- {
- bVisible = false;
- }
- else if (IsXMLToken(sVisibility, XML_FILTER))
- {
- bVisible = false;
- bFiltered = true;
- }
- if (!bVisible)
- {
- rXMLImport.GetDoc().setRowsVisible(nSheet, nFirstRow, nCurrentRow, false);
- }
- if (bFiltered)
- xRowProperties->setPropertyValue(SC_ISFILTERED, uno::makeAny(bFiltered));
-
- uno::Any any = xRowProperties->getPropertyValue(SC_UNONAME_OHEIGHT);
- bool bOptionalHeight = false;
- any >>= bOptionalHeight;
- if (bOptionalHeight)
- {
- // Save this row for later height update
- std::vector<ScDocRowHeightUpdater::TabRanges>& rRecalcRanges = rXMLImport.GetRecalcRowRanges();
- while (static_cast<SCTAB>(rRecalcRanges.size()) <= nSheet)
- {
- rRecalcRanges.emplace_back(0, pDoc->MaxRow());
- }
- rRecalcRanges.at(nSheet).mnTab = nSheet;
- rRecalcRanges.at(nSheet).maRanges.setTrue(nFirstRow, nCurrentRow);
- }
+ if ( nSheet != pStyle->GetLastSheet() )
+ {
+ ScSheetSaveData* pSheetData = comphelper::getUnoTunnelImplementation<ScModelObj>(rXMLImport.GetModel())->GetSheetSaveData();
+ pSheetData->AddRowStyle( sStyleName, ScAddress( 0, static_cast<SCROW>(nFirstRow), nSheet ) );
+ pStyle->SetLastSheet(nSheet);
}
}
}
}
+ bool bVisible (true);
+ bool bFiltered (false);
+ if (IsXMLToken(sVisibility, XML_COLLAPSE))
+ {
+ bVisible = false;
+ }
+ else if (IsXMLToken(sVisibility, XML_FILTER))
+ {
+ bVisible = false;
+ bFiltered = true;
+ }
+ if (!bVisible)
+ {
+ rXMLImport.GetDoc().setRowsVisible(nSheet, nFirstRow, nCurrentRow, false);
+ }
+ if (bFiltered)
+ xRowProperties->setPropertyValue(SC_ISFILTERED, uno::makeAny(bFiltered));
+
+ uno::Any any = xRowProperties->getPropertyValue(SC_UNONAME_OHEIGHT);
+ bool bOptionalHeight = false;
+ any >>= bOptionalHeight;
+ if (bOptionalHeight)
+ {
+ // Save this row for later height update
+ std::vector<ScDocRowHeightUpdater::TabRanges>& rRecalcRanges = rXMLImport.GetRecalcRowRanges();
+ while (static_cast<SCTAB>(rRecalcRanges.size()) <= nSheet)
+ {
+ rRecalcRanges.emplace_back(0, pDoc->MaxRow());
+ }
+ rRecalcRanges.at(nSheet).mnTab = nSheet;
+ rRecalcRanges.at(nSheet).maRanges.setTrue(nFirstRow, nCurrentRow);
+ }
}
ScXMLTableRowsContext::ScXMLTableRowsContext( ScXMLImport& rImport,
diff --git a/sc/source/filter/xml/xmlsceni.cxx b/sc/source/filter/xml/xmlsceni.cxx
index 37df2e26db52..27361aa5ed2e 100644
--- a/sc/source/filter/xml/xmlsceni.cxx
+++ b/sc/source/filter/xml/xmlsceni.cxx
@@ -45,41 +45,41 @@ ScXMLTableScenarioContext::ScXMLTableScenarioContext(
{
rImport.LockSolarMutex();
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
- {
- case XML_ELEMENT( TABLE, XML_DISPLAY_BORDER ):
- bDisplayBorder = IsXMLToken(aIter, XML_TRUE);
- break;
- case XML_ELEMENT( TABLE, XML_BORDER_COLOR ):
- ::sax::Converter::convertColor(aBorderColor, aIter.toString());
- break;
- case XML_ELEMENT( TABLE, XML_COPY_BACK ):
- bCopyBack = IsXMLToken(aIter, XML_TRUE);
- break;
- case XML_ELEMENT( TABLE, XML_COPY_STYLES ):
- bCopyStyles = IsXMLToken(aIter, XML_TRUE);
- break;
- case XML_ELEMENT( TABLE, XML_COPY_FORMULAS ):
- bCopyFormulas = IsXMLToken(aIter, XML_TRUE);
- break;
- case XML_ELEMENT( TABLE, XML_IS_ACTIVE ):
- bIsActive = IsXMLToken(aIter, XML_TRUE);
- break;
- case XML_ELEMENT( TABLE, XML_SCENARIO_RANGES ):
- ScRangeStringConverter::GetRangeListFromString(
- aScenarioRanges, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO );
- break;
- case XML_ELEMENT( TABLE, XML_COMMENT ):
- sComment = aIter.toString();
- break;
- case XML_ELEMENT( TABLE, XML_PROTECTED ):
- bProtected = IsXMLToken(aIter, XML_TRUE);
- break;
- }
+ case XML_ELEMENT( TABLE, XML_DISPLAY_BORDER ):
+ bDisplayBorder = IsXMLToken(aIter, XML_TRUE);
+ break;
+ case XML_ELEMENT( TABLE, XML_BORDER_COLOR ):
+ ::sax::Converter::convertColor(aBorderColor, aIter.toString());
+ break;
+ case XML_ELEMENT( TABLE, XML_COPY_BACK ):
+ bCopyBack = IsXMLToken(aIter, XML_TRUE);
+ break;
+ case XML_ELEMENT( TABLE, XML_COPY_STYLES ):
+ bCopyStyles = IsXMLToken(aIter, XML_TRUE);
+ break;
+ case XML_ELEMENT( TABLE, XML_COPY_FORMULAS ):
+ bCopyFormulas = IsXMLToken(aIter, XML_TRUE);
+ break;
+ case XML_ELEMENT( TABLE, XML_IS_ACTIVE ):
+ bIsActive = IsXMLToken(aIter, XML_TRUE);
+ break;
+ case XML_ELEMENT( TABLE, XML_SCENARIO_RANGES ):
+ ScRangeStringConverter::GetRangeListFromString(
+ aScenarioRanges, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO );
+ break;
+ case XML_ELEMENT( TABLE, XML_COMMENT ):
+ sComment = aIter.toString();
+ break;
+ case XML_ELEMENT( TABLE, XML_PROTECTED ):
+ bProtected = IsXMLToken(aIter, XML_TRUE);
+ break;
}
}
}
@@ -93,29 +93,29 @@ void SAL_CALL ScXMLTableScenarioContext::endFastElement( sal_Int32 /*nElement*/
{
SCTAB nCurrTable( GetScImport().GetTables().GetCurrentSheet() );
ScDocument* pDoc(GetScImport().GetDocument());
- if (pDoc)
+ if (!pDoc)
+ return;
+
+ pDoc->SetScenario( nCurrTable, true );
+ ScScenarioFlags nFlags( ScScenarioFlags::NONE );
+ if( bDisplayBorder )
+ nFlags |= ScScenarioFlags::ShowFrame;
+ if( bCopyBack )
+ nFlags |= ScScenarioFlags::TwoWay;
+ if( bCopyStyles )
+ nFlags |= ScScenarioFlags::Attrib;
+ if( !bCopyFormulas )
+ nFlags |= ScScenarioFlags::Value;
+ if( bProtected )
+ nFlags |= ScScenarioFlags::Protected;
+ pDoc->SetScenarioData( nCurrTable, sComment, aBorderColor, nFlags );
+ for( size_t i = 0; i < aScenarioRanges.size(); ++i )
{
- pDoc->SetScenario( nCurrTable, true );
- ScScenarioFlags nFlags( ScScenarioFlags::NONE );
- if( bDisplayBorder )
- nFlags |= ScScenarioFlags::ShowFrame;
- if( bCopyBack )
- nFlags |= ScScenarioFlags::TwoWay;
- if( bCopyStyles )
- nFlags |= ScScenarioFlags::Attrib;
- if( !bCopyFormulas )
- nFlags |= ScScenarioFlags::Value;
- if( bProtected )
- nFlags |= ScScenarioFlags::Protected;
- pDoc->SetScenarioData( nCurrTable, sComment, aBorderColor, nFlags );
- for( size_t i = 0; i < aScenarioRanges.size(); ++i )
- {
- ScRange const & rRange = aScenarioRanges[ i ];
- pDoc->ApplyFlagsTab( rRange.aStart.Col(), rRange.aStart.Row(),
- rRange.aEnd.Col(), rRange.aEnd.Row(), nCurrTable, ScMF::Scenario );
- }
- pDoc->SetActiveScenario( nCurrTable, bIsActive );
+ ScRange const & rRange = aScenarioRanges[ i ];
+ pDoc->ApplyFlagsTab( rRange.aStart.Col(), rRange.aStart.Row(),
+ rRange.aEnd.Col(), rRange.aEnd.Row(), nCurrTable, ScMF::Scenario );
}
+ pDoc->SetActiveScenario( nCurrTable, bIsActive );
}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */
diff --git a/sc/source/filter/xml/xmlsorti.cxx b/sc/source/filter/xml/xmlsorti.cxx
index 0991c275eaea..16de3a1bc9dc 100644
--- a/sc/source/filter/xml/xmlsorti.cxx
+++ b/sc/source/filter/xml/xmlsorti.cxx
@@ -44,59 +44,59 @@ ScXMLSortContext::ScXMLSortContext( ScXMLImport& rImport,
bIsCaseSensitive(false),
bEnabledUserList(false)
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_BIND_STYLES_TO_CONTENT ):
{
- case XML_ELEMENT( TABLE, XML_BIND_STYLES_TO_CONTENT ):
- {
- bBindFormatsToContent = IsXMLToken(aIter, XML_TRUE);
- }
- break;
- case XML_ELEMENT( TABLE, XML_TARGET_RANGE_ADDRESS ):
- {
- ScRange aScRange;
- sal_Int32 nOffset(0);
- if (ScRangeStringConverter::GetRangeFromString( aScRange, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ))
- {
- ScUnoConversion::FillApiAddress( aOutputPosition, aScRange.aStart );
- bCopyOutputData = true;
- }
- }
- break;
- case XML_ELEMENT( TABLE, XML_CASE_SENSITIVE ):
- {
- bIsCaseSensitive = IsXMLToken(aIter, XML_TRUE);
- }
- break;
- case XML_ELEMENT( TABLE, XML_RFC_LANGUAGE_TAG ):
- {
- maLanguageTagODF.maRfcLanguageTag = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_LANGUAGE ):
- {
- maLanguageTagODF.maLanguage = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_SCRIPT ):
- {
- maLanguageTagODF.maScript = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_COUNTRY ):
- {
- maLanguageTagODF.maCountry = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_ALGORITHM ):
+ bBindFormatsToContent = IsXMLToken(aIter, XML_TRUE);
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_TARGET_RANGE_ADDRESS ):
+ {
+ ScRange aScRange;
+ sal_Int32 nOffset(0);
+ if (ScRangeStringConverter::GetRangeFromString( aScRange, aIter.toString(), GetScImport().GetDocument(), ::formula::FormulaGrammar::CONV_OOO, nOffset ))
{
- sAlgorithm = aIter.toString();
+ ScUnoConversion::FillApiAddress( aOutputPosition, aScRange.aStart );
+ bCopyOutputData = true;
}
- break;
}
+ break;
+ case XML_ELEMENT( TABLE, XML_CASE_SENSITIVE ):
+ {
+ bIsCaseSensitive = IsXMLToken(aIter, XML_TRUE);
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_RFC_LANGUAGE_TAG ):
+ {
+ maLanguageTagODF.maRfcLanguageTag = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_LANGUAGE ):
+ {
+ maLanguageTagODF.maLanguage = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_SCRIPT ):
+ {
+ maLanguageTagODF.maScript = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_COUNTRY ):
+ {
+ maLanguageTagODF.maCountry = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_ALGORITHM ):
+ {
+ sAlgorithm = aIter.toString();
+ }
+ break;
}
}
}
@@ -203,28 +203,28 @@ ScXMLSortByContext::ScXMLSortByContext( ScXMLImport& rImport,
sDataType(GetXMLToken(XML_AUTOMATIC)),
sOrder(GetXMLToken(XML_ASCENDING))
{
- if ( rAttrList.is() )
+ if ( !rAttrList.is() )
+ return;
+
+ for (auto &aIter : *rAttrList)
{
- for (auto &aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT( TABLE, XML_FIELD_NUMBER ):
{
- case XML_ELEMENT( TABLE, XML_FIELD_NUMBER ):
- {
- sFieldNumber = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_DATA_TYPE ):
- {
- sDataType = aIter.toString();
- }
- break;
- case XML_ELEMENT( TABLE, XML_ORDER ):
- {
- sOrder = aIter.toString();
- }
- break;
+ sFieldNumber = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_DATA_TYPE ):
+ {
+ sDataType = aIter.toString();
+ }
+ break;
+ case XML_ELEMENT( TABLE, XML_ORDER ):
+ {
+ sOrder = aIter.toString();
}
+ break;
}
}
}
diff --git a/sc/source/filter/xml/xmlstyle.cxx b/sc/source/filter/xml/xmlstyle.cxx
index 1cb5fb26591e..0cb367174613 100644
--- a/sc/source/filter/xml/xmlstyle.cxx
+++ b/sc/source/filter/xml/xmlstyle.cxx
@@ -680,108 +680,108 @@ void ScXMLAutoStylePoolP::exportStyleContent(
) const
{
SvXMLAutoStylePoolP::exportStyleContent( rHandler, nFamily, rProperties, rPropExp, rUnitConverter, rNamespaceMap );
- if (nFamily == XmlStyleFamily::TABLE_CELL)
+ if (nFamily != XmlStyleFamily::TABLE_CELL)
+ return;
+
+ for(const auto& rProperty : rProperties)
{
- for(const auto& rProperty : rProperties)
+ if (rProperty.mnIndex != -1)
{
- if (rProperty.mnIndex != -1)
+ sal_Int16 nContextID = rScXMLExport.GetCellStylesPropertySetMapper()->GetEntryContextId(rProperty.mnIndex);
+ switch (nContextID)
{
- sal_Int16 nContextID = rScXMLExport.GetCellStylesPropertySetMapper()->GetEntryContextId(rProperty.mnIndex);
- switch (nContextID)
+ case CTF_SC_MAP :
{
- case CTF_SC_MAP :
+ uno::Reference<container::XIndexAccess> xIndex( rProperty.maValue, uno::UNO_QUERY );
+ if ( xIndex.is() )
{
- uno::Reference<container::XIndexAccess> xIndex( rProperty.maValue, uno::UNO_QUERY );
- if ( xIndex.is() )
+ sal_Int32 nConditionCount(xIndex->getCount());
+ for (sal_Int32 nCondition = 0; nCondition < nConditionCount; ++nCondition)
{
- sal_Int32 nConditionCount(xIndex->getCount());
- for (sal_Int32 nCondition = 0; nCondition < nConditionCount; ++nCondition)
+ uno::Reference <sheet::XSheetConditionalEntry> xSheetConditionalEntry(xIndex->getByIndex(nCondition), uno::UNO_QUERY);
+ if (xSheetConditionalEntry.is())
{
- uno::Reference <sheet::XSheetConditionalEntry> xSheetConditionalEntry(xIndex->getByIndex(nCondition), uno::UNO_QUERY);
- if (xSheetConditionalEntry.is())
+ OUString sStyleName(xSheetConditionalEntry->getStyleName());
+ uno::Reference <sheet::XSheetCondition> xSheetCondition(xSheetConditionalEntry, uno::UNO_QUERY);
+ if (xSheetCondition.is())
{
- OUString sStyleName(xSheetConditionalEntry->getStyleName());
- uno::Reference <sheet::XSheetCondition> xSheetCondition(xSheetConditionalEntry, uno::UNO_QUERY);
- if (xSheetCondition.is())
+ sheet::ConditionOperator aOperator = xSheetCondition->getOperator();
+ if (aOperator != sheet::ConditionOperator_NONE)
{
- sheet::ConditionOperator aOperator = xSheetCondition->getOperator();
- if (aOperator != sheet::ConditionOperator_NONE)
+ if (aOperator == sheet::ConditionOperator_FORMULA)
+ {
+ OUString sCondition = "is-true-formula("
+ + xSheetCondition->getFormula1()
+ + ")";
+ rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_CONDITION, sCondition);
+ rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_APPLY_STYLE_NAME, rScXMLExport.EncodeStyleName( sStyleName ));
+ OUString sOUBaseAddress;
+ ScDocument* pDoc = rScXMLExport.GetDocument();
+ ScRangeStringConverter::GetStringFromAddress( sOUBaseAddress,
+ xSheetCondition->getSourcePosition(), pDoc, FormulaGrammar::CONV_OOO );
+ rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_BASE_CELL_ADDRESS, sOUBaseAddress);
+ SvXMLElementExport aMElem(rScXMLExport, XML_NAMESPACE_STYLE, XML_MAP, true, true);
+ }
+ else
{
- if (aOperator == sheet::ConditionOperator_FORMULA)
+ OUString sCondition;
+ if (aOperator == sheet::ConditionOperator_BETWEEN ||
+ aOperator == sheet::ConditionOperator_NOT_BETWEEN)
{
- OUString sCondition = "is-true-formula("
- + xSheetCondition->getFormula1()
- + ")";
- rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_CONDITION, sCondition);
- rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_APPLY_STYLE_NAME, rScXMLExport.EncodeStyleName( sStyleName ));
- OUString sOUBaseAddress;
- ScDocument* pDoc = rScXMLExport.GetDocument();
- ScRangeStringConverter::GetStringFromAddress( sOUBaseAddress,
- xSheetCondition->getSourcePosition(), pDoc, FormulaGrammar::CONV_OOO );
- rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_BASE_CELL_ADDRESS, sOUBaseAddress);
- SvXMLElementExport aMElem(rScXMLExport, XML_NAMESPACE_STYLE, XML_MAP, true, true);
+ if (aOperator == sheet::ConditionOperator_BETWEEN)
+ sCondition = "cell-content-is-between(";
+ else
+ sCondition = "cell-content-is-not-between(";
+ sCondition += xSheetCondition->getFormula1()
+ + ","
+ + xSheetCondition->getFormula2()
+ + ")";
}
else
{
- OUString sCondition;
- if (aOperator == sheet::ConditionOperator_BETWEEN ||
- aOperator == sheet::ConditionOperator_NOT_BETWEEN)
- {
- if (aOperator == sheet::ConditionOperator_BETWEEN)
- sCondition = "cell-content-is-between(";
- else
- sCondition = "cell-content-is-not-between(";
- sCondition += xSheetCondition->getFormula1()
- + ","
- + xSheetCondition->getFormula2()
- + ")";
- }
- else
+ sCondition = "cell-content()";
+ switch (aOperator)
{
- sCondition = "cell-content()";
- switch (aOperator)
+ case sheet::ConditionOperator_LESS:
+ sCondition += "<";
+ break;
+ case sheet::ConditionOperator_GREATER:
+ sCondition += ">";
+ break;
+ case sheet::ConditionOperator_LESS_EQUAL:
+ sCondition += "<=";
+ break;
+ case sheet::ConditionOperator_GREATER_EQUAL:
+ sCondition += ">=";
+ break;
+ case sheet::ConditionOperator_EQUAL:
+ sCondition += "=";
+ break;
+ case sheet::ConditionOperator_NOT_EQUAL:
+ sCondition += "!=";
+ break;
+ default:
{
- case sheet::ConditionOperator_LESS:
- sCondition += "<";
- break;
- case sheet::ConditionOperator_GREATER:
- sCondition += ">";
- break;
- case sheet::ConditionOperator_LESS_EQUAL:
- sCondition += "<=";
- break;
- case sheet::ConditionOperator_GREATER_EQUAL:
- sCondition += ">=";
- break;
- case sheet::ConditionOperator_EQUAL:
- sCondition += "=";
- break;
- case sheet::ConditionOperator_NOT_EQUAL:
- sCondition += "!=";
- break;
- default:
- {
- // added to avoid warnings
- }
+ // added to avoid warnings
}
- sCondition += xSheetCondition->getFormula1();
}
- rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_CONDITION, sCondition);
- rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_APPLY_STYLE_NAME, rScXMLExport.EncodeStyleName( sStyleName ));
- OUString sOUBaseAddress;
- ScRangeStringConverter::GetStringFromAddress( sOUBaseAddress,
- xSheetCondition->getSourcePosition(), rScXMLExport.GetDocument(), FormulaGrammar::CONV_OOO );
- rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_BASE_CELL_ADDRESS, sOUBaseAddress);
- SvXMLElementExport aMElem(rScXMLExport, XML_NAMESPACE_STYLE, XML_MAP, true, true);
+ sCondition += xSheetCondition->getFormula1();
}
+ rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_CONDITION, sCondition);
+ rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_APPLY_STYLE_NAME, rScXMLExport.EncodeStyleName( sStyleName ));
+ OUString sOUBaseAddress;
+ ScRangeStringConverter::GetStringFromAddress( sOUBaseAddress,
+ xSheetCondition->getSourcePosition(), rScXMLExport.GetDocument(), FormulaGrammar::CONV_OOO );
+ rScXMLExport.AddAttribute(XML_NAMESPACE_STYLE, XML_BASE_CELL_ADDRESS, sOUBaseAddress);
+ SvXMLElementExport aMElem(rScXMLExport, XML_NAMESPACE_STYLE, XML_MAP, true, true);
}
}
}
}
}
}
- break;
}
+ break;
}
}
}
diff --git a/sc/source/filter/xml/xmlsubti.cxx b/sc/source/filter/xml/xmlsubti.cxx
index b2f1013816f8..fa47ef2ce29b 100644
--- a/sc/source/filter/xml/xmlsubti.cxx
+++ b/sc/source/filter/xml/xmlsubti.cxx
@@ -95,32 +95,32 @@ uno::Reference<sheet::XSpreadsheet> getCurrentSheet(const uno::Reference<frame::
void ScMyTables::NewSheet(const OUString& sTableName, const OUString& sStyleName,
const ScXMLTabProtectionData& rProtectData)
{
- if (rImport.GetModel().is())
+ if (!rImport.GetModel().is())
+ return;
+
+ nCurrentColCount = 0;
+ sCurrentSheetName = sTableName;
+ //reset cols and rows for new sheet, but increment tab
+ maCurrentCellPos.SetCol(-1);
+ maCurrentCellPos.SetRow(-1);
+ maCurrentCellPos.SetTab(maCurrentCellPos.Tab() + 1);
+
+ maProtectionData = rProtectData;
+ ScDocument *pDoc = ScXMLConverter::GetScDocument(rImport.GetModel());
+
+ // The document contains one sheet when created. So for the first
+ // sheet, we only need to set its name.
+ if (maCurrentCellPos.Tab() > 0)
+ pDoc->AppendTabOnLoad(sTableName);
+ else
+ pDoc->SetTabNameOnLoad(maCurrentCellPos.Tab(), sTableName);
+
+ xCurrentSheet = getCurrentSheet(rImport.GetModel(), maCurrentCellPos.Tab());
+ if (xCurrentSheet.is())
{
- nCurrentColCount = 0;
- sCurrentSheetName = sTableName;
- //reset cols and rows for new sheet, but increment tab
- maCurrentCellPos.SetCol(-1);
- maCurrentCellPos.SetRow(-1);
- maCurrentCellPos.SetTab(maCurrentCellPos.Tab() + 1);
-
- maProtectionData = rProtectData;
- ScDocument *pDoc = ScXMLConverter::GetScDocument(rImport.GetModel());
-
- // The document contains one sheet when created. So for the first
- // sheet, we only need to set its name.
- if (maCurrentCellPos.Tab() > 0)
- pDoc->AppendTabOnLoad(sTableName);
- else
- pDoc->SetTabNameOnLoad(maCurrentCellPos.Tab(), sTableName);
-
- xCurrentSheet = getCurrentSheet(rImport.GetModel(), maCurrentCellPos.Tab());
- if (xCurrentSheet.is())
- {
- // We need to set the current cell range here regardless of
- // presence of style name.
- SetTableStyle(sStyleName);
- }
+ // We need to set the current cell range here regardless of
+ // presence of style name.
+ SetTableStyle(sStyleName);
}
}
@@ -128,35 +128,35 @@ void ScMyTables::SetTableStyle(const OUString& sStyleName)
{
//these uno calls are a bit difficult to remove, XMLTableStyleContext::FillPropertySet uses
//SvXMLImportPropertyMapper::FillPropertySet
- if ( !sStyleName.isEmpty() )
+ if ( sStyleName.isEmpty() )
+ return;
+
+ // #i57869# All table style properties for all sheets are now applied here,
+ // before importing the contents.
+ // This is needed for the background color.
+ // Sheet visibility has special handling in ScDocFunc::SetTableVisible to
+ // allow hiding the first sheet.
+ // RTL layout is only remembered, not actually applied, so the shapes can
+ // be loaded before mirroring.
+
+ if ( !xCurrentSheet.is() )
+ return;
+
+ uno::Reference <beans::XPropertySet> xProperties(xCurrentSheet, uno::UNO_QUERY);
+ if ( !xProperties.is() )
+ return;
+
+ XMLTableStylesContext *pStyles = static_cast<XMLTableStylesContext *>(rImport.GetAutoStyles());
+ if ( pStyles )
{
- // #i57869# All table style properties for all sheets are now applied here,
- // before importing the contents.
- // This is needed for the background color.
- // Sheet visibility has special handling in ScDocFunc::SetTableVisible to
- // allow hiding the first sheet.
- // RTL layout is only remembered, not actually applied, so the shapes can
- // be loaded before mirroring.
-
- if ( xCurrentSheet.is() )
+ XMLTableStyleContext* pStyle = const_cast<XMLTableStyleContext*>(static_cast<const XMLTableStyleContext *>(pStyles->FindStyleChildContext(
+ XmlStyleFamily::TABLE_TABLE, sStyleName, true)));
+ if ( pStyle )
{
- uno::Reference <beans::XPropertySet> xProperties(xCurrentSheet, uno::UNO_QUERY);
- if ( xProperties.is() )
- {
- XMLTableStylesContext *pStyles = static_cast<XMLTableStylesContext *>(rImport.GetAutoStyles());
- if ( pStyles )
- {
- XMLTableStyleContext* pStyle = const_cast<XMLTableStyleContext*>(static_cast<const XMLTableStyleContext *>(pStyles->FindStyleChildContext(
- XmlStyleFamily::TABLE_TABLE, sStyleName, true)));
- if ( pStyle )
- {
- pStyle->FillPropertySet(xProperties);
-
- ScSheetSaveData* pSheetData = comphelper::getUnoTunnelImplementation<ScModelObj>(rImport.GetModel())->GetSheetSaveData();
- pSheetData->AddTableStyle( sStyleName, ScAddress( 0, 0, maCurrentCellPos.Tab() ) );
- }
- }
- }
+ pStyle->FillPropertySet(xProperties);
+
+ ScSheetSaveData* pSheetData = comphelper::getUnoTunnelImplementation<ScModelObj>(rImport.GetModel())->GetSheetSaveData();
+ pSheetData->AddTableStyle( sStyleName, ScAddress( 0, 0, maCurrentCellPos.Tab() ) );
}
}
}
@@ -190,22 +190,22 @@ void ScMyTables::DeleteTable()
maMatrixRangeList.RemoveAll();
- if (rImport.GetDocument() && maProtectionData.mbProtected)
- {
- uno::Sequence<sal_Int8> aHash;
- ::comphelper::Base64::decode(aHash, maProtectionData.maPassword);
-
- std::unique_ptr<ScTableProtection> pProtect(new ScTableProtection);
- pProtect->setProtected(maProtectionData.mbProtected);
- pProtect->setPasswordHash(aHash, maProtectionData.meHash1, maProtectionData.meHash2);
- pProtect->setOption(ScTableProtection::SELECT_LOCKED_CELLS, maProtectionData.mbSelectProtectedCells);
- pProtect->setOption(ScTableProtection::SELECT_UNLOCKED_CELLS, maProtectionData.mbSelectUnprotectedCells);
- pProtect->setOption(ScTableProtection::INSERT_COLUMNS, maProtectionData.mbInsertColumns);
- pProtect->setOption(ScTableProtection::INSERT_ROWS, maProtectionData.mbInsertRows);
- pProtect->setOption(ScTableProtection::DELETE_COLUMNS, maProtectionData.mbDeleteColumns);
- pProtect->setOption(ScTableProtection::DELETE_ROWS, maProtectionData.mbDeleteRows);
- rImport.GetDocument()->SetTabProtection(maCurrentCellPos.Tab(), pProtect.get());
- }
+ if (!(rImport.GetDocument() && maProtectionData.mbProtected))
+ return;
+
+ uno::Sequence<sal_Int8> aHash;
+ ::comphelper::Base64::decode(aHash, maProtectionData.maPassword);
+
+ std::unique_ptr<ScTableProtection> pProtect(new ScTableProtection);
+ pProtect->setProtected(maProtectionData.mbProtected);
+ pProtect->setPasswordHash(aHash, maProtectionData.meHash1, maProtectionData.meHash2);
+ pProtect->setOption(ScTableProtection::SELECT_LOCKED_CELLS, maProtectionData.mbSelectProtectedCells);
+ pProtect->setOption(ScTableProtection::SELECT_UNLOCKED_CELLS, maProtectionData.mbSelectUnprotectedCells);
+ pProtect->setOption(ScTableProtection::INSERT_COLUMNS, maProtectionData.mbInsertColumns);
+ pProtect->setOption(ScTableProtection::INSERT_ROWS, maProtectionData.mbInsertRows);
+ pProtect->setOption(ScTableProtection::DELETE_COLUMNS, maProtectionData.mbDeleteColumns);
+ pProtect->setOption(ScTableProtection::DELETE_ROWS, maProtectionData.mbDeleteRows);
+ rImport.GetDocument()->SetTabProtection(maCurrentCellPos.Tab(), pProtect.get());
}
void ScMyTables::AddColStyle(const sal_Int32 nRepeat, const OUString& rCellStyleName)
diff --git a/sc/source/filter/xml/xmltransformationi.cxx b/sc/source/filter/xml/xmltransformationi.cxx
index c872767a7fb0..d2af7bcc2b71 100644
--- a/sc/source/filter/xml/xmltransformationi.cxx
+++ b/sc/source/filter/xml/xmltransformationi.cxx
@@ -177,18 +177,18 @@ ScXMLColumnMergeContext::ScXMLColumnMergeContext(
ScXMLImport& rImport, const rtl::Reference<sax_fastparser::FastAttributeList>& rAttrList)
: ScXMLImportContext(rImport)
{
- if (rAttrList.is())
+ if (!rAttrList.is())
+ return;
+
+ for (auto& aIter : *rAttrList)
{
- for (auto& aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT(CALC_EXT, XML_MERGE_STRING):
{
- case XML_ELEMENT(CALC_EXT, XML_MERGE_STRING):
- {
- maMergeString = aIter.toString();
- }
- break;
+ maMergeString = aIter.toString();
}
+ break;
}
}
}
@@ -415,35 +415,35 @@ ScXMLColumnNumberContext::ScXMLColumnNumberContext(
}
}
- if (!aType.isEmpty())
- {
- if (aType == "round")
- maType = sc::NUMBER_TRANSFORM_TYPE::ROUND;
- else if (aType == "round-up")
- maType = sc::NUMBER_TRANSFORM_TYPE::ROUND_UP;
- else if (aType == "round-down")
- maType = sc::NUMBER_TRANSFORM_TYPE::ROUND_DOWN;
- else if (aType == "abs")
- maType = sc::NUMBER_TRANSFORM_TYPE::ABSOLUTE;
- else if (aType == "log")
- maType = sc::NUMBER_TRANSFORM_TYPE::LOG_E;
- else if (aType == "log-base-10")
- maType = sc::NUMBER_TRANSFORM_TYPE::LOG_10;
- else if (aType == "cube")
- maType = sc::NUMBER_TRANSFORM_TYPE::CUBE;
- else if (aType == "number-square")
- maType = sc::NUMBER_TRANSFORM_TYPE::SQUARE;
- else if (aType == "square-root")
- maType = sc::NUMBER_TRANSFORM_TYPE::SQUARE_ROOT;
- else if (aType == "exponential")
- maType = sc::NUMBER_TRANSFORM_TYPE::EXPONENT;
- else if (aType == "even")
- maType = sc::NUMBER_TRANSFORM_TYPE::IS_EVEN;
- else if (aType == "odd")
- maType = sc::NUMBER_TRANSFORM_TYPE::IS_ODD;
- else if (aType == "sign")
- maType = sc::NUMBER_TRANSFORM_TYPE::SIGN;
- }
+ if (aType.isEmpty())
+ return;
+
+ if (aType == "round")
+ maType = sc::NUMBER_TRANSFORM_TYPE::ROUND;
+ else if (aType == "round-up")
+ maType = sc::NUMBER_TRANSFORM_TYPE::ROUND_UP;
+ else if (aType == "round-down")
+ maType = sc::NUMBER_TRANSFORM_TYPE::ROUND_DOWN;
+ else if (aType == "abs")
+ maType = sc::NUMBER_TRANSFORM_TYPE::ABSOLUTE;
+ else if (aType == "log")
+ maType = sc::NUMBER_TRANSFORM_TYPE::LOG_E;
+ else if (aType == "log-base-10")
+ maType = sc::NUMBER_TRANSFORM_TYPE::LOG_10;
+ else if (aType == "cube")
+ maType = sc::NUMBER_TRANSFORM_TYPE::CUBE;
+ else if (aType == "number-square")
+ maType = sc::NUMBER_TRANSFORM_TYPE::SQUARE;
+ else if (aType == "square-root")
+ maType = sc::NUMBER_TRANSFORM_TYPE::SQUARE_ROOT;
+ else if (aType == "exponential")
+ maType = sc::NUMBER_TRANSFORM_TYPE::EXPONENT;
+ else if (aType == "even")
+ maType = sc::NUMBER_TRANSFORM_TYPE::IS_EVEN;
+ else if (aType == "odd")
+ maType = sc::NUMBER_TRANSFORM_TYPE::IS_ODD;
+ else if (aType == "sign")
+ maType = sc::NUMBER_TRANSFORM_TYPE::SIGN;
}
ScXMLColumnNumberContext::~ScXMLColumnNumberContext()
@@ -486,18 +486,18 @@ ScXMLColumnRemoveNullContext::ScXMLColumnRemoveNullContext(
ScXMLImport& rImport, const rtl::Reference<sax_fastparser::FastAttributeList>& rAttrList)
: ScXMLImportContext(rImport)
{
- if (rAttrList.is())
+ if (!rAttrList.is())
+ return;
+
+ for (auto& aIter : *rAttrList)
{
- for (auto& aIter : *rAttrList)
+ switch (aIter.getToken())
{
- switch (aIter.getToken())
+ case XML_ELEMENT(CALC_EXT, XML_REPLACE_STRING):
{
- case XML_ELEMENT(CALC_EXT, XML_REPLACE_STRING):
- {
- maReplaceString = aIter.toString();
- }
- break;
+ maReplaceString = aIter.toString();
}
+ break;
}
}
}
@@ -558,45 +558,45 @@ ScXMLDateTimeContext::ScXMLDateTimeContext(
}
}
- if (!aType.isEmpty())
- {
- if (aType == "date-string")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::DATE_STRING;
- else if (aType == "year")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::YEAR;
- else if (aType == "start-of-year")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::START_OF_YEAR;
- else if (aType == "end-of-year")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::END_OF_YEAR;
- else if (aType == "month")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::MONTH;
- else if (aType == "month-name")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::MONTH_NAME;
- else if (aType == "start-of-month")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::START_OF_MONTH;
- else if (aType == "end-of-month")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::END_OF_MONTH;
- else if (aType == "day")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::DAY;
- else if (aType == "day-of-week")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::DAY_OF_WEEK;
- else if (aType == "day-of-year")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::DAY_OF_YEAR;
- else if (aType == "quarter")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::QUARTER;
- else if (aType == "start-of-quarter")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::START_OF_QUARTER;
- else if (aType == "end-of-quarter")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::END_OF_QUARTER;
- else if (aType == "time")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::TIME;
- else if (aType == "hour")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::HOUR;
- else if (aType == "minute")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::MINUTE;
- else if (aType == "seconds")
- maType = sc::DATETIME_TRANSFORMATION_TYPE::SECOND;
- }
+ if (aType.isEmpty())
+ return;
+
+ if (aType == "date-string")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::DATE_STRING;
+ else if (aType == "year")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::YEAR;
+ else if (aType == "start-of-year")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::START_OF_YEAR;
+ else if (aType == "end-of-year")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::END_OF_YEAR;
+ else if (aType == "month")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::MONTH;
+ else if (aType == "month-name")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::MONTH_NAME;
+ else if (aType == "start-of-month")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::START_OF_MONTH;
+ else if (aType == "end-of-month")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::END_OF_MONTH;
+ else if (aType == "day")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::DAY;
+ else if (aType == "day-of-week")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::DAY_OF_WEEK;
+ else if (aType == "day-of-year")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::DAY_OF_YEAR;
+ else if (aType == "quarter")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::QUARTER;
+ else if (aType == "start-of-quarter")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::START_OF_QUARTER;
+ else if (aType == "end-of-quarter")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::END_OF_QUARTER;
+ else if (aType == "time")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::TIME;
+ else if (aType == "hour")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::HOUR;
+ else if (aType == "minute")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::MINUTE;
+ else if (aType == "seconds")
+ maType = sc::DATETIME_TRANSFORMATION_TYPE::SECOND;
}
ScXMLDateTimeContext::~ScXMLDateTimeContext()