28#include <document.hxx>
36#include <com/sun/star/text/XTextCursor.hpp>
37#include <com/sun/star/text/ControlCharacter.hpp>
47 OUStringBuffer sAuthorBuffer{32};
48 OUStringBuffer sDateTimeBuffer{32};
49 OUStringBuffer sCommentBuffer{64};
51 sal_uInt32 nParagraphCount;
59 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
61 virtual void SAL_CALL
endFastElement( sal_Int32 nElement )
override;
74 OUString sFormulaAddress;
76 OUString sFormulaNmsp;
77 OUString sInputString;
83 sal_Int32 nMatrixCols;
84 sal_Int32 nMatrixRows;
90 ScXMLCellContentDeletionContext(
ScXMLImport& rImport,
95 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
97 virtual void SAL_CALL
endFastElement( sal_Int32 nElement )
override;
117 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
138 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
141class ScXMLChangeCellContext;
145 css::uno::Reference< css::xml::sax::XFastAttributeList> mxAttrList;
147 OUStringBuffer sText;
148 ScXMLChangeCellContext* pChangeCellContext;
154 ScXMLChangeTextPContext(
ScXMLImport& rImport, sal_Int32 nElement,
155 css::uno::Reference<css::xml::sax::XFastAttributeList> xAttrList,
156 ScXMLChangeCellContext* pChangeCellContext);
159 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
161 virtual void SAL_CALL
characters(
const OUString& rChars )
override;
163 virtual void SAL_CALL
endFastElement(sal_Int32 nElement)
override;
171 OUString& rInputString;
176 bool bFirstParagraph;
184 OUString& rFormula, OUString& rFormulaNmsp,
186 OUString& rInputString,
double& fValue, sal_uInt16&
nType,
187 ScMatrixMode& nMatrixFlag, sal_Int32& nMatrixCols, sal_Int32& nMatrixRows);
190 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
192 void CreateTextPContext(
bool bIsNewParagraph);
193 bool IsEditCell()
const {
return mpEditTextObj.is(); }
194 void SetText(
const OUString& sTempText) { sText = sTempText; }
196 virtual void SAL_CALL
endFastElement( sal_Int32 nElement )
override;
201 OUString sFormulaAddress;
203 OUString sFormulaNmsp;
204 OUString sInputString;
209 sal_Int32 nMatrixCols;
210 sal_Int32 nMatrixRows;
221 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
223 virtual void SAL_CALL
endFastElement( sal_Int32 nElement )
override;
237 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
239 virtual void SAL_CALL
endFastElement( sal_Int32 nElement )
override;
252 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
254 virtual void SAL_CALL
endFastElement( sal_Int32 nElement )
override;
261 const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
269 const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
282 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
295 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
297 virtual void SAL_CALL
endFastElement( sal_Int32 nElement )
override;
312 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
314 virtual void SAL_CALL
endFastElement( sal_Int32 nElement )
override;
327 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
329 virtual void SAL_CALL
endFastElement( sal_Int32 nElement )
override;
338 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
342 if ( !rAttrList.is() )
346 if (aIter != rAttrList->end())
348 if( !aIter.isEmpty() )
350 uno::Sequence<sal_Int8> aPass;
363 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
391ScXMLChangeInfoContext::ScXMLChangeInfoContext(
ScXMLImport& rImport,
396 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper),
399 if ( rAttrList.is() )
401 for (
auto &aIter : *rAttrList)
403 sal_Int32
nToken = aIter.getToken();
405 sAuthorBuffer = aIter.toString();
407 sDateTimeBuffer = aIter.toString();
412css::uno::Reference< css::xml::sax::XFastContextHandler > ScXMLChangeInfoContext::createFastChildContext(
413 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& )
424 sCommentBuffer.append(
'\n');
432void SAL_CALL ScXMLChangeInfoContext::endFastElement( sal_Int32 )
434 aInfo.sUser = sAuthorBuffer.makeStringAndClear();
436 SAL_WARN(
"sc.filter",
"ScXMLChangeInfoContext: broken DateTime '" << sDateTimeBuffer.toString() <<
"'");
437 sDateTimeBuffer.setLength(0);
438 aInfo.sComment = sCommentBuffer.makeStringAndClear();
439 pChangeTrackingImportHelper->SetActionInfo(aInfo);
442ScXMLBigRangeContext::ScXMLBigRangeContext(
ScXMLImport& rImport,
450 sal_Int32 nColumn(0);
453 sal_Int32 nStartColumn(0);
454 sal_Int32 nEndColumn(0);
455 sal_Int32 nStartRow(0);
456 sal_Int32 nEndRow(0);
457 sal_Int32 nStartTable(0);
458 sal_Int32 nEndTable(0);
459 if ( rAttrList.is() )
461 for (
auto &aIter : *rAttrList)
463 switch (aIter.getToken())
478 nStartColumn = aIter.
toInt32();
500 nStartColumn = nEndColumn = nColumn;
502 nStartRow = nEndRow = nRow;
504 nStartTable = nEndTable = nTable;
505 rBigRange.
Set(nStartColumn, nStartRow, nStartTable,
506 nEndColumn, nEndRow, nEndTable);
509ScXMLCellContentDeletionContext::ScXMLCellContentDeletionContext(
ScXMLImport& rImport,
514 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper),
518 eGrammar(
formula::FormulaGrammar::GRAM_STORAGE_DEFAULT),
519 nType(css::util::NumberFormat::
ALL),
522 if ( rAttrList.is() )
524 auto aIter( rAttrList->find(
XML_ELEMENT( TABLE, XML_ID ) ) );
525 if (aIter != rAttrList->end())
530uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLCellContentDeletionContext::createFastChildContext(
531 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
540 pContext = new ScXMLChangeCellContext(GetScImport(), pAttribList,
541 maCell, sFormulaAddress,
sFormula, sFormulaNmsp, eGrammar, sInputString, fValue,
nType, nMatrixFlag, nMatrixCols, nMatrixRows );
544 OSL_ENSURE(!nID,
"a action with a ID should not contain a BigRange");
545 pContext =
new ScXMLBigRangeContext(GetScImport(), pAttribList, aBigRange);
552void SAL_CALL ScXMLCellContentDeletionContext::endFastElement( sal_Int32 )
554 std::unique_ptr<ScMyCellInfo> pCellInfo(
new ScMyCellInfo(maCell, sFormulaAddress, sFormula, eGrammar, sInputString, fValue,
nType,
555 nMatrixFlag, nMatrixCols, nMatrixRows));
557 pChangeTrackingImportHelper->AddDeleted(nID, std::move(pCellInfo));
559 pChangeTrackingImportHelper->AddGenerated(std::move(pCellInfo), aBigRange);
562ScXMLDependenceContext::ScXMLDependenceContext(
ScXMLImport& rImport,
568 if ( rAttrList.is() )
570 auto aIter( rAttrList->find(
XML_ELEMENT( TABLE, XML_ID ) ) );
571 if (aIter != rAttrList->end())
577ScXMLDependingsContext::ScXMLDependingsContext(
ScXMLImport& rImport,
580 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
585uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDependingsContext::createFastChildContext(
586 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
596 pContext =
new ScXMLDependenceContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
602ScXMLChangeDeletionContext::ScXMLChangeDeletionContext(
ScXMLImport& rImport,
608 if ( rAttrList.is() )
610 auto aIter( rAttrList->find(
XML_ELEMENT( TABLE, XML_ID ) ) );
611 if (aIter != rAttrList->end())
617ScXMLDeletionsContext::ScXMLDeletionsContext(
ScXMLImport& rImport,
620 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
625uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDeletionsContext::createFastChildContext(
626 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
635 pContext = new ScXMLChangeDeletionContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
638 pContext = new ScXMLCellContentDeletionContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
645ScXMLChangeTextPContext::ScXMLChangeTextPContext(
ScXMLImport& rImport,
647 css::uno::Reference<css::xml::sax::XFastAttributeList> xAttrList,
648 ScXMLChangeCellContext* pTempChangeCellContext) :
650 mxAttrList(
std::move(xAttrList)),
652 pChangeCellContext(pTempChangeCellContext)
657uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLChangeTextPContext::createFastChildContext(
659 const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
661 uno::Reference< xml::sax::XFastContextHandler > xContext;
663 && (nElement & TOKEN_MASK) == XML_S
666 sal_Int32 nRepeat(0);
670 nRepeat = aIter.toInt32();
675 for (sal_Int32 j = 0; j < nRepeat; ++j)
682 if (!pChangeCellContext->IsEditCell())
683 pChangeCellContext->CreateTextPContext(
false);
684 bool bWasContext (
true);
688 pTextPContext = GetScImport().GetTextImport()->CreateTextChildContext(
689 GetScImport(), mnElement, mxAttrList);
694 pTextPContext->characters(sText.makeStringAndClear());
695 xContext = pTextPContext->createFastChildContext(nElement, xAttrList);
702void ScXMLChangeTextPContext::characters(
const OUString& rChars )
705 sText.append(rChars);
707 pTextPContext->characters(rChars);
710void ScXMLChangeTextPContext::endFastElement(sal_Int32 )
713 pChangeCellContext->SetText(sText.makeStringAndClear());
716ScXMLChangeCellContext::ScXMLChangeCellContext(
ScXMLImport& rImport,
719 OUString& rFormula, OUString& rFormulaNmsp,
721 OUString& rTempInputString,
double& rDateTimeValue, sal_uInt16&
nType,
722 ScMatrixMode& nMatrixFlag, sal_Int32& nMatrixCols, sal_Int32& nMatrixRows )
724 , mrOldCell(rOldCell)
725 , rInputString(rTempInputString)
729 , bFirstParagraph(true)
733 bool bIsMatrix(
false);
734 bool bIsCoveredMatrix(
false);
735 if ( rAttrList.is() )
737 for (
auto &aIter : *rAttrList)
739 switch (aIter.getToken())
752 case XML_ELEMENT( TABLE, XML_NUMBER_MATRIX_COLUMNS_SPANNED ):
754 nMatrixCols = aIter.toInt32();
756 case XML_ELEMENT( TABLE, XML_NUMBER_MATRIX_ROWS_SPANNED ):
758 nMatrixRows = aIter.toInt32();
770 rType = css::util::NumberFormat::TIME;
781 GetScImport().GetMM100UnitConverter().convertDateTime(rDateTimeValue, aIter.toView());
782 fValue = rDateTimeValue;
787 fValue = rDateTimeValue;
792 if (bIsCoveredMatrix)
794 else if (bIsMatrix && nMatrixRows && nMatrixCols)
798uno::Reference< xml::sax::XFastContextHandler > ScXMLChangeCellContext::createFastChildContext(
799 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
808 pContext =
new ScXMLChangeTextPContext(GetScImport(), nElement, xAttrList,
this);
809 bFirstParagraph =
false;
813 if (!mpEditTextObj.is())
814 CreateTextPContext(
true);
815 pContext = GetScImport().GetTextImport()->CreateTextChildContext(
816 GetScImport(), nElement, xAttrList);
825void ScXMLChangeCellContext::CreateTextPContext(
bool bIsNewParagraph)
827 if (!GetScImport().GetDocument())
831 mpEditTextObj->GetEditEngine()->SetEditTextObjectPool(GetScImport().GetDocument()->GetEditPool());
832 uno::Reference <text::XText> xText(mpEditTextObj);
835 uno::Reference<text::XTextCursor> xTextCursor(xText->createTextCursor());
838 xText->setString(sText);
839 xTextCursor->gotoEnd(
false);
840 xText->insertControlCharacter(xTextCursor, text::ControlCharacter::PARAGRAPH_BREAK,
false);
842 GetScImport().GetTextImport()->SetCursor(xTextCursor);
846void SAL_CALL ScXMLChangeCellContext::endFastElement( sal_Int32 )
850 ScDocument* pDoc = GetScImport().GetDocument();
851 if (mpEditTextObj.is())
853 if (GetImport().GetTextImport()->GetCursor().is())
856 if( GetImport().GetTextImport()->GetCursor()->goLeft( 1,
true ) )
858 GetImport().GetTextImport()->GetText()->insertString(
859 GetImport().GetTextImport()->GetCursorAsRange(),
"",
865 mrOldCell.set(mpEditTextObj->CreateTextObject());
866 GetScImport().GetTextImport()->ResetCursor();
867 mpEditTextObj.clear();
873 if (!sText.isEmpty() && bString)
879 mrOldCell.set(fValue);
882 rInputString = sText;
890ScXMLPreviousContext::ScXMLPreviousContext(
ScXMLImport& rImport,
895 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper),
899 eGrammar(
formula::FormulaGrammar::GRAM_STORAGE_DEFAULT),
900 nType(css::util::NumberFormat::
ALL),
903 if ( rAttrList.is() )
905 auto aIter( rAttrList->find(
XML_ELEMENT( TABLE, XML_ID ) ) );
906 if (aIter != rAttrList->end())
911uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLPreviousContext::createFastChildContext(
912 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
919 pContext =
new ScXMLChangeCellContext(GetScImport(), pAttribList,
920 maOldCell, sFormulaAddress, sFormula, sFormulaNmsp, eGrammar, sInputString, fValue,
nType, nMatrixFlag, nMatrixCols, nMatrixRows);
925void SAL_CALL ScXMLPreviousContext::endFastElement( sal_Int32 )
928 fValue,
nType, nMatrixFlag, nMatrixCols, nMatrixRows));
931ScXMLContentChangeContext::ScXMLContentChangeContext(
ScXMLImport& rImport,
935 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
937 sal_uInt32 nActionNumber(0);
938 sal_uInt32 nRejectingNumber(0);
941 if ( rAttrList.is() )
943 for (
auto &aIter : *rAttrList)
945 switch (aIter.getToken())
956 case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ):
968uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLContentChangeContext::createFastChildContext(
969 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
978 pContext = new ScXMLChangeInfoContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
981 pContext = new ScXMLBigRangeContext(GetScImport(), pAttribList, aBigRange);
984 pContext = new ScXMLDependingsContext(GetScImport(), pChangeTrackingImportHelper);
987 pContext = new ScXMLDeletionsContext(GetScImport(), pChangeTrackingImportHelper);
990 pContext = new ScXMLPreviousContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
997void SAL_CALL ScXMLContentChangeContext::endFastElement( sal_Int32 )
999 pChangeTrackingImportHelper->
SetBigRange(aBigRange);
1003ScXMLInsertionContext::ScXMLInsertionContext(
ScXMLImport& rImport,
1007 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
1009 sal_uInt32 nActionNumber(0);
1010 sal_uInt32 nRejectingNumber(0);
1011 sal_Int32 nPosition(0);
1013 sal_Int32 nTable(0);
1017 if ( rAttrList.is() )
1019 for (
auto &aIter : *rAttrList)
1021 switch (aIter.getToken())
1032 case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ):
1061uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLInsertionContext::createFastChildContext(
1062 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
1071 pContext = new ScXMLChangeInfoContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
1074 pContext = new ScXMLDependingsContext(GetScImport(), pChangeTrackingImportHelper);
1077 pContext = new ScXMLDeletionsContext(GetScImport(), pChangeTrackingImportHelper);
1084void SAL_CALL ScXMLInsertionContext::endFastElement( sal_Int32 )
1089ScXMLInsertionCutOffContext::ScXMLInsertionCutOffContext(
ScXMLImport& rImport,
1090 const uno::Reference<xml::sax::XFastAttributeList>& xAttrList,
1095 sal_Int32 nPosition(0);
1098 switch (aIter.getToken())
1104 ::
sax::Converter::convertNumber(nPosition, aIter.toView());
1112ScXMLMovementCutOffContext::ScXMLMovementCutOffContext(
ScXMLImport& rImport,
1113 const uno::Reference<xml::sax::XFastAttributeList>& xAttrList,
1118 sal_Int32 nPosition(0);
1119 sal_Int32 nStartPosition(0);
1120 sal_Int32 nEndPosition(0);
1121 bool bPosition(
false);
1124 switch (aIter.getToken())
1134 ::
sax::Converter::convertNumber(nStartPosition, aIter.toView());
1137 ::
sax::Converter::convertNumber(nEndPosition, aIter.toView());
1142 nStartPosition = nEndPosition = nPosition;
1146ScXMLCutOffsContext::ScXMLCutOffsContext(
ScXMLImport& rImport,
1149 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
1154css::uno::Reference< css::xml::sax::XFastContextHandler > ScXMLCutOffsContext::createFastChildContext(
1155 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
1160 pContext =
new ScXMLInsertionCutOffContext(GetScImport(), xAttrList, pChangeTrackingImportHelper);
1162 pContext =
new ScXMLMovementCutOffContext(GetScImport(), xAttrList, pChangeTrackingImportHelper);
1167ScXMLDeletionContext::ScXMLDeletionContext(
ScXMLImport& rImport,
1171 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
1173 sal_uInt32 nActionNumber(0);
1174 sal_uInt32 nRejectingNumber(0);
1175 sal_Int32 nPosition(0);
1176 sal_Int32 nMultiSpanned(0);
1177 sal_Int32 nTable(0);
1181 if ( rAttrList.is() )
1183 for (
auto &aIter : *rAttrList)
1185 sal_Int32
nToken = aIter.getToken();
1197 case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ):
1212 case XML_ELEMENT( TABLE, XML_MULTI_DELETION_SPANNED ):
1213 nMultiSpanned = aIter.
toInt32();
1227uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDeletionContext::createFastChildContext(
1228 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
1237 pContext = new ScXMLChangeInfoContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
1240 pContext = new ScXMLDependingsContext(GetScImport(), pChangeTrackingImportHelper);
1243 pContext = new ScXMLDeletionsContext(GetScImport(), pChangeTrackingImportHelper);
1247 pContext = new ScXMLCutOffsContext(GetScImport(), pChangeTrackingImportHelper);
1253void SAL_CALL ScXMLDeletionContext::endFastElement( sal_Int32 )
1258ScXMLMovementContext::ScXMLMovementContext(
ScXMLImport& rImport,
1262 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
1264 sal_uInt32 nActionNumber(0);
1265 sal_uInt32 nRejectingNumber(0);
1268 if ( rAttrList.is() )
1270 for (
auto &aIter : *rAttrList)
1272 switch (aIter.getToken())
1283 case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ):
1296uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLMovementContext::createFastChildContext(
1297 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
1306 pContext = new ScXMLChangeInfoContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
1309 pContext = new ScXMLDependingsContext(GetScImport(), pChangeTrackingImportHelper);
1312 pContext = new ScXMLDeletionsContext(GetScImport(), pChangeTrackingImportHelper);
1315 pContext = new ScXMLBigRangeContext(GetScImport(), pAttribList, aSourceRange);
1318 pContext = new ScXMLBigRangeContext(GetScImport(), pAttribList, aTargetRange);
1325void SAL_CALL ScXMLMovementContext::endFastElement( sal_Int32 )
1327 pChangeTrackingImportHelper->
SetMoveRanges(aSourceRange, aTargetRange);
1331ScXMLRejectionContext::ScXMLRejectionContext(
ScXMLImport& rImport,
1335 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
1337 sal_uInt32 nActionNumber(0);
1338 sal_uInt32 nRejectingNumber(0);
1341 if ( rAttrList.is() )
1343 for (
auto &aIter : *rAttrList)
1345 switch (aIter.getToken())
1356 case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ):
1369uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLRejectionContext::createFastChildContext(
1370 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
1379 pContext = new ScXMLChangeInfoContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
1382 pContext = new ScXMLDependingsContext(GetScImport(), pChangeTrackingImportHelper);
1385 pContext = new ScXMLDeletionsContext(GetScImport(), pChangeTrackingImportHelper);
1392void SAL_CALL ScXMLRejectionContext::endFastElement( sal_Int32 )
void Set(sal_Int64 nCol1, sal_Int64 nRow1, sal_Int64 nTab1, sal_Int64 nCol2, sal_Int64 nRow2, sal_Int64 nTab2)
SC_DLLPUBLIC svl::SharedStringPool & GetSharedStringPool()
void SetMultiSpanned(const sal_Int16 nMultiSpanned)
static sal_uInt32 GetIDFromString(std::string_view sID)
void SetActionState(const ScChangeActionState nActionState)
void SetProtection(const css::uno::Sequence< sal_Int8 > &rProtect)
void StartChangeAction(const ScChangeActionType nActionType)
void AddDeleted(const sal_uInt32 nID)
void SetActionNumber(const sal_uInt32 nActionNumber)
void AddMoveCutOff(const sal_uInt32 nID, const sal_Int32 nStartPosition, const sal_Int32 nEndPosition)
void SetRejectingNumber(const sal_uInt32 nRejectingNumber)
void SetPreviousChange(const sal_uInt32 nPreviousAction, ScMyCellInfo *pCellInfo)
void AddDependence(const sal_uInt32 nID)
void SetMoveRanges(const ScBigRange &aSourceRange, const ScBigRange &aTargetRange)
void SetBigRange(const ScBigRange &aBigRange)
void SetPosition(const sal_Int32 nPosition, const sal_Int32 nCount, const sal_Int32 nTable)
void SetInsertionCutOff(const sal_uInt32 nID, const sal_Int32 nPosition)
This class exists only to provide GetScImport() to its derived classes.
ScXMLImport & GetScImport()
void ExtractFormulaNamespaceGrammar(OUString &rFormula, OUString &rFormulaNmsp, ::formula::FormulaGrammar::Grammar &reGrammar, const OUString &rAttrValue, bool bRestrictToExternalNmsp=false) const
Extracts the formula string, the formula grammar namespace URL, and a grammar enum value from the pas...
ScXMLChangeTrackingImportHelper * pChangeTrackingImportHelper
virtual ~ScXMLTrackedChangesContext() override
ScXMLTrackedChangesContext(ScXMLImport &rImport, const rtl::Reference< sax_fastparser::FastAttributeList > &rAttrList, ScXMLChangeTrackingImportHelper *pChangeTrackingImportHelper)
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList) override
virtual void SAL_CALL endFastElement(sal_Int32 Element) override
virtual css::uno::Reference< XFastContextHandler > SAL_CALL createFastChildContext(sal_Int32 Element, const css::uno::Reference< css::xml::sax::XFastAttributeList > &Attribs) override
virtual void SAL_CALL characters(const OUString &aChars) override
static void decode(css::uno::Sequence< sal_Int8 > &aPass, std::u16string_view sBuffer)
static void convertDuration(OUStringBuffer &rBuffer, const double fTime)
static bool parseDateTime(css::util::DateTime &rDateTime, std::u16string_view rString)
static bool convertNumber(sal_Int32 &rValue, std::u16string_view aString, sal_Int32 nMin=SAL_MIN_INT32, sal_Int32 nMax=SAL_MAX_INT32)
SharedString intern(const OUString &rStr)
virtual void SetText(const OUString &rStr) override
#define SAL_WARN(area, stream)
if(aStr !=aBuf) UpdateName_Impl(m_xFollowLb.get()
double toDouble(std::u16string_view str)
FastAttributeList & castToFastAttributeList(const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList)
OUString toString(OptionInfo const *info)
bool IsXMLToken(std::u16string_view rString, enum XMLTokenEnum eToken)
sal_Int32 toInt32(std::u16string_view rStr)
Store arbitrary cell value of any kind.
#define XMLOFF_WARN_UNKNOWN_ELEMENT(area, token)
#define XMLOFF_WARN_UNKNOWN(area, rIter)
#define XML_ELEMENT(prefix, name)
constexpr bool IsTokenInNamespace(sal_Int32 nToken, sal_uInt16 nNamespacePrefix)