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;
58 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
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,
94 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
95 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
97 virtual void SAL_CALL endFastElement( sal_Int32 nElement )
override;
116 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
117 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
137 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
138 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
141 class ScXMLChangeCellContext;
145 css::uno::Reference< css::xml::sax::XFastAttributeList> mxAttrList;
147 OUStringBuffer sText;
148 ScXMLChangeCellContext* pChangeCellContext;
154 ScXMLChangeTextPContext(
ScXMLImport& rImport, sal_Int32 nElement,
155 const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
156 ScXMLChangeCellContext* pChangeCellContext);
158 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
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);
189 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
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;
220 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
221 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
223 virtual void SAL_CALL endFastElement( sal_Int32 nElement )
override;
236 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
237 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
239 virtual void SAL_CALL endFastElement( sal_Int32 nElement )
override;
251 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
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,
281 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
282 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
294 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
295 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
297 virtual void SAL_CALL endFastElement( sal_Int32 nElement )
override;
311 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
312 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
override;
314 virtual void SAL_CALL endFastElement( sal_Int32 nElement )
override;
326 virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(
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 )
391 ScXMLChangeInfoContext::ScXMLChangeInfoContext(
ScXMLImport& rImport,
396 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper),
399 if ( rAttrList.is() )
401 for (
auto &aIter : *rAttrList)
403 sal_Int32
nToken = aIter.getToken();
404 if ( nToken ==
XML_ELEMENT( OFFICE, XML_CHG_AUTHOR ) )
405 sAuthorBuffer = aIter.toString();
406 else if ( nToken ==
XML_ELEMENT( OFFICE, XML_CHG_DATE_TIME ) )
407 sDateTimeBuffer = aIter.toString();
412 css::uno::Reference< css::xml::sax::XFastContextHandler > ScXMLChangeInfoContext::createFastChildContext(
413 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& )
424 sCommentBuffer.append(
'\n');
432 void SAL_CALL ScXMLChangeInfoContext::endFastElement( sal_Int32 )
434 aInfo.sUser = sAuthorBuffer.makeStringAndClear();
436 sDateTimeBuffer.makeStringAndClear());
437 aInfo.sComment = sCommentBuffer.makeStringAndClear();
438 pChangeTrackingImportHelper->SetActionInfo(aInfo);
441 ScXMLBigRangeContext::ScXMLBigRangeContext(
ScXMLImport& rImport,
449 sal_Int32 nColumn(0);
452 sal_Int32 nStartColumn(0);
453 sal_Int32 nEndColumn(0);
454 sal_Int32 nStartRow(0);
455 sal_Int32 nEndRow(0);
456 sal_Int32 nStartTable(0);
457 sal_Int32 nEndTable(0);
458 if ( rAttrList.is() )
460 for (
auto &aIter : *rAttrList)
462 switch (aIter.getToken())
477 nStartColumn = aIter.
toInt32();
499 nStartColumn = nEndColumn = nColumn;
501 nStartRow = nEndRow = nRow;
503 nStartTable = nEndTable = nTable;
504 rBigRange.
Set(nStartColumn, nStartRow, nStartTable,
505 nEndColumn, nEndRow, nEndTable);
508 ScXMLCellContentDeletionContext::ScXMLCellContentDeletionContext(
ScXMLImport& rImport,
513 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper),
517 eGrammar(
formula::FormulaGrammar::GRAM_STORAGE_DEFAULT),
521 if ( rAttrList.is() )
523 auto aIter( rAttrList->find(
XML_ELEMENT( TABLE, XML_ID ) ) );
524 if (aIter != rAttrList->end())
529 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLCellContentDeletionContext::createFastChildContext(
530 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
539 pContext = new ScXMLChangeCellContext(GetScImport(), pAttribList,
540 maCell, sFormulaAddress, sFormula, sFormulaNmsp, eGrammar, sInputString, fValue,
nType, nMatrixFlag, nMatrixCols, nMatrixRows );
543 OSL_ENSURE(!nID,
"a action with a ID should not contain a BigRange");
544 pContext =
new ScXMLBigRangeContext(GetScImport(), pAttribList, aBigRange);
551 void SAL_CALL ScXMLCellContentDeletionContext::endFastElement( sal_Int32 )
553 std::unique_ptr<ScMyCellInfo> pCellInfo(
new ScMyCellInfo(maCell, sFormulaAddress, sFormula, eGrammar, sInputString, fValue,
nType,
554 nMatrixFlag, nMatrixCols, nMatrixRows));
556 pChangeTrackingImportHelper->AddDeleted(nID, std::move(pCellInfo));
558 pChangeTrackingImportHelper->AddGenerated(std::move(pCellInfo), aBigRange);
561 ScXMLDependenceContext::ScXMLDependenceContext(
ScXMLImport& rImport,
567 if ( rAttrList.is() )
569 auto aIter( rAttrList->find(
XML_ELEMENT( TABLE, XML_ID ) ) );
570 if (aIter != rAttrList->end())
576 ScXMLDependingsContext::ScXMLDependingsContext(
ScXMLImport& rImport,
579 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
584 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDependingsContext::createFastChildContext(
585 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
595 pContext =
new ScXMLDependenceContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
601 ScXMLChangeDeletionContext::ScXMLChangeDeletionContext(
ScXMLImport& rImport,
607 if ( rAttrList.is() )
609 auto aIter( rAttrList->find(
XML_ELEMENT( TABLE, XML_ID ) ) );
610 if (aIter != rAttrList->end())
616 ScXMLDeletionsContext::ScXMLDeletionsContext(
ScXMLImport& rImport,
619 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
624 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDeletionsContext::createFastChildContext(
625 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
634 pContext = new ScXMLChangeDeletionContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
637 pContext = new ScXMLCellContentDeletionContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
644 ScXMLChangeTextPContext::ScXMLChangeTextPContext(
ScXMLImport& rImport,
646 const css::uno::Reference<css::xml::sax::XFastAttributeList>& xAttrList,
647 ScXMLChangeCellContext* pTempChangeCellContext) :
649 mxAttrList(xAttrList),
652 pChangeCellContext(pTempChangeCellContext)
657 uno::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);
702 void ScXMLChangeTextPContext::characters(
const OUString& rChars )
705 sText.append(rChars);
707 pTextPContext->characters(rChars);
710 void ScXMLChangeTextPContext::endFastElement(sal_Int32 )
713 pChangeCellContext->SetText(sText.makeStringAndClear());
716 ScXMLChangeCellContext::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;
782 fValue = rDateTimeValue;
787 fValue = rDateTimeValue;
792 if (bIsCoveredMatrix)
794 else if (bIsMatrix && nMatrixRows && nMatrixCols)
798 uno::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);
825 void ScXMLChangeCellContext::CreateTextPContext(
bool bIsNewParagraph)
827 if (!GetScImport().GetDocument())
831 mpEditTextObj->GetEditEngine()->SetEditTextObjectPool(GetScImport().GetDocument()->GetEditPool());
832 uno::Reference <text::XText> xText(mpEditTextObj.get());
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);
846 void 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(),
"",
866 mrOldCell.mpEditText = mpEditTextObj->CreateTextObject().release();
867 GetScImport().GetTextImport()->ResetCursor();
868 mpEditTextObj.clear();
874 if (!sText.isEmpty() && bString)
882 mrOldCell.mfValue = fValue;
885 rInputString = sText;
893 ScXMLPreviousContext::ScXMLPreviousContext(
ScXMLImport& rImport,
898 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper),
902 eGrammar(
formula::FormulaGrammar::GRAM_STORAGE_DEFAULT),
906 if ( rAttrList.is() )
908 auto aIter( rAttrList->find(
XML_ELEMENT( TABLE, XML_ID ) ) );
909 if (aIter != rAttrList->end())
914 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLPreviousContext::createFastChildContext(
915 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
922 pContext =
new ScXMLChangeCellContext(GetScImport(), pAttribList,
923 maOldCell, sFormulaAddress, sFormula, sFormulaNmsp, eGrammar, sInputString, fValue, nType, nMatrixFlag, nMatrixCols, nMatrixRows);
928 void SAL_CALL ScXMLPreviousContext::endFastElement( sal_Int32 )
931 fValue, nType, nMatrixFlag, nMatrixCols, nMatrixRows));
934 ScXMLContentChangeContext::ScXMLContentChangeContext(
ScXMLImport& rImport,
938 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
940 sal_uInt32 nActionNumber(0);
941 sal_uInt32 nRejectingNumber(0);
944 if ( rAttrList.is() )
946 for (
auto &aIter : *rAttrList)
948 switch (aIter.getToken())
959 case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ):
971 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLContentChangeContext::createFastChildContext(
972 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
981 pContext = new ScXMLChangeInfoContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
984 pContext = new ScXMLBigRangeContext(GetScImport(), pAttribList, aBigRange);
987 pContext = new ScXMLDependingsContext(GetScImport(), pChangeTrackingImportHelper);
990 pContext = new ScXMLDeletionsContext(GetScImport(), pChangeTrackingImportHelper);
993 pContext = new ScXMLPreviousContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
1000 void SAL_CALL ScXMLContentChangeContext::endFastElement( sal_Int32 )
1002 pChangeTrackingImportHelper->
SetBigRange(aBigRange);
1006 ScXMLInsertionContext::ScXMLInsertionContext(
ScXMLImport& rImport,
1010 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
1012 sal_uInt32 nActionNumber(0);
1013 sal_uInt32 nRejectingNumber(0);
1014 sal_Int32 nPosition(0);
1016 sal_Int32 nTable(0);
1020 if ( rAttrList.is() )
1022 for (
auto &aIter : *rAttrList)
1024 switch (aIter.getToken())
1035 case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ):
1061 pChangeTrackingImportHelper->
SetPosition(nPosition, nCount, nTable);
1064 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLInsertionContext::createFastChildContext(
1065 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
1074 pContext = new ScXMLChangeInfoContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
1077 pContext = new ScXMLDependingsContext(GetScImport(), pChangeTrackingImportHelper);
1080 pContext = new ScXMLDeletionsContext(GetScImport(), pChangeTrackingImportHelper);
1087 void SAL_CALL ScXMLInsertionContext::endFastElement( sal_Int32 )
1092 ScXMLInsertionCutOffContext::ScXMLInsertionCutOffContext(
ScXMLImport& rImport,
1093 const uno::Reference<xml::sax::XFastAttributeList>& xAttrList,
1098 sal_Int32 nPosition(0);
1101 switch (aIter.getToken())
1107 ::
sax::Converter::convertNumber(nPosition, aIter.toView());
1115 ScXMLMovementCutOffContext::ScXMLMovementCutOffContext(
ScXMLImport& rImport,
1116 const uno::Reference<xml::sax::XFastAttributeList>& xAttrList,
1121 sal_Int32 nPosition(0);
1122 sal_Int32 nStartPosition(0);
1123 sal_Int32 nEndPosition(0);
1124 bool bPosition(
false);
1127 switch (aIter.getToken())
1137 ::
sax::Converter::convertNumber(nStartPosition, aIter.toView());
1140 ::
sax::Converter::convertNumber(nEndPosition, aIter.toView());
1145 nStartPosition = nEndPosition = nPosition;
1146 pChangeTrackingImportHelper->
AddMoveCutOff(nID, nStartPosition, nEndPosition);
1149 ScXMLCutOffsContext::ScXMLCutOffsContext(
ScXMLImport& rImport,
1152 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
1157 css::uno::Reference< css::xml::sax::XFastContextHandler > ScXMLCutOffsContext::createFastChildContext(
1158 sal_Int32 nElement,
const css::uno::Reference< css::xml::sax::XFastAttributeList >& xAttrList )
1163 pContext =
new ScXMLInsertionCutOffContext(GetScImport(), xAttrList, pChangeTrackingImportHelper);
1165 pContext =
new ScXMLMovementCutOffContext(GetScImport(), xAttrList, pChangeTrackingImportHelper);
1170 ScXMLDeletionContext::ScXMLDeletionContext(
ScXMLImport& rImport,
1174 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
1176 sal_uInt32 nActionNumber(0);
1177 sal_uInt32 nRejectingNumber(0);
1178 sal_Int32 nPosition(0);
1179 sal_Int32 nMultiSpanned(0);
1180 sal_Int32 nTable(0);
1184 if ( rAttrList.is() )
1186 for (
auto &aIter : *rAttrList)
1188 sal_Int32 nToken = aIter.getToken();
1200 case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ):
1215 case XML_ELEMENT( TABLE, XML_MULTI_DELETION_SPANNED ):
1216 nMultiSpanned = aIter.
toInt32();
1226 pChangeTrackingImportHelper->
SetPosition(nPosition, 1, nTable);
1227 pChangeTrackingImportHelper->
SetMultiSpanned(static_cast<sal_Int16>(nMultiSpanned));
1230 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLDeletionContext::createFastChildContext(
1231 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
1240 pContext = new ScXMLChangeInfoContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
1243 pContext = new ScXMLDependingsContext(GetScImport(), pChangeTrackingImportHelper);
1246 pContext = new ScXMLDeletionsContext(GetScImport(), pChangeTrackingImportHelper);
1250 pContext = new ScXMLCutOffsContext(GetScImport(), pChangeTrackingImportHelper);
1256 void SAL_CALL ScXMLDeletionContext::endFastElement( sal_Int32 )
1261 ScXMLMovementContext::ScXMLMovementContext(
ScXMLImport& rImport,
1265 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
1267 sal_uInt32 nActionNumber(0);
1268 sal_uInt32 nRejectingNumber(0);
1271 if ( rAttrList.is() )
1273 for (
auto &aIter : *rAttrList)
1275 switch (aIter.getToken())
1286 case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ):
1299 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLMovementContext::createFastChildContext(
1300 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
1309 pContext = new ScXMLChangeInfoContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
1312 pContext = new ScXMLDependingsContext(GetScImport(), pChangeTrackingImportHelper);
1315 pContext = new ScXMLDeletionsContext(GetScImport(), pChangeTrackingImportHelper);
1318 pContext = new ScXMLBigRangeContext(GetScImport(), pAttribList, aSourceRange);
1321 pContext = new ScXMLBigRangeContext(GetScImport(), pAttribList, aTargetRange);
1328 void SAL_CALL ScXMLMovementContext::endFastElement( sal_Int32 )
1330 pChangeTrackingImportHelper->
SetMoveRanges(aSourceRange, aTargetRange);
1334 ScXMLRejectionContext::ScXMLRejectionContext(
ScXMLImport& rImport,
1338 pChangeTrackingImportHelper(pTempChangeTrackingImportHelper)
1340 sal_uInt32 nActionNumber(0);
1341 sal_uInt32 nRejectingNumber(0);
1344 if ( rAttrList.is() )
1346 for (
auto &aIter : *rAttrList)
1348 switch (aIter.getToken())
1359 case XML_ELEMENT( TABLE, XML_REJECTING_CHANGE_ID ):
1372 uno::Reference< xml::sax::XFastContextHandler > SAL_CALL ScXMLRejectionContext::createFastChildContext(
1373 sal_Int32 nElement,
const uno::Reference< xml::sax::XFastAttributeList >& xAttrList )
1382 pContext = new ScXMLChangeInfoContext(GetScImport(), pAttribList, pChangeTrackingImportHelper);
1385 pContext = new ScXMLDependingsContext(GetScImport(), pChangeTrackingImportHelper);
1388 pContext = new ScXMLDeletionsContext(GetScImport(), pChangeTrackingImportHelper);
1395 void SAL_CALL ScXMLRejectionContext::endFastElement( sal_Int32 )
exports com.sun.star.lib. util
void Set(sal_Int32 nCol1, sal_Int32 nRow1, sal_Int32 nTab1, sal_Int32 nCol2, sal_Int32 nRow2, sal_Int32 nTab2)
SharedString intern(const OUString &rStr)
SC_DLLPUBLIC svl::SharedStringPool & GetSharedStringPool()
void StartChangeAction(const ScChangeActionType nActionType)
void SetRejectingNumber(const sal_uInt32 nRejectingNumber)
sal_Int32 toInt32(OUString const &rStr)
bool IsXMLToken(std::u16string_view rString, enum XMLTokenEnum eToken)
FastAttributeList & castToFastAttributeList(const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList)
static bool parseDateTime(css::util::DateTime &rDateTime, std::u16string_view rString)
void SetProtection(const css::uno::Sequence< sal_Int8 > &rProtect)
void AddDeleted(const sal_uInt32 nID)
void SetPreviousChange(const sal_uInt32 nPreviousAction, ScMyCellInfo *pCellInfo)
Store arbitrary cell value of any kind.
#define XMLOFF_WARN_UNKNOWN(area, rIter)
static sal_uInt32 GetIDFromString(std::string_view sID)
void SetBigRange(const ScBigRange &aBigRange)
void AddMoveCutOff(const sal_uInt32 nID, const sal_Int32 nStartPosition, const sal_Int32 nEndPosition)
void SetActionState(const ScChangeActionState nActionState)
void SetPosition(const sal_Int32 nPosition, const sal_Int32 nCount, const sal_Int32 nTable)
This class exists only to provide GetScImport() to its derived classes.
virtual ~ScXMLTrackedChangesContext() override
static void decode(css::uno::Sequence< sal_Int8 > &aPass, const OUString &sBuffer)
void convertDateTime(OUStringBuffer &rBuffer, const double &fDateTime, bool const bAddTimeIf0AM=false)
static void convertDuration(OUStringBuffer &rBuffer, const double fTime)
ScXMLImport & GetScImport()
void SetMultiSpanned(const sal_Int16 nMultiSpanned)
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...
virtual css::uno::Reference< css::xml::sax::XFastContextHandler > SAL_CALL createFastChildContext(sal_Int32 nElement, const css::uno::Reference< css::xml::sax::XFastAttributeList > &xAttrList) override
ScXMLTrackedChangesContext(ScXMLImport &rImport, const rtl::Reference< sax_fastparser::FastAttributeList > &rAttrList, ScXMLChangeTrackingImportHelper *pChangeTrackingImportHelper)
constexpr bool IsTokenInNamespace(sal_Int32 nToken, sal_uInt16 nNamespacePrefix)
ScXMLChangeTrackingImportHelper * pChangeTrackingImportHelper
#define XML_ELEMENT(prefix, name)
const SvXMLUnitConverter & GetMM100UnitConverter() const
#define XMLOFF_WARN_UNKNOWN_ELEMENT(area, token)
void SetActionNumber(const sal_uInt32 nActionNumber)
void AddDependence(const sal_uInt32 nID)
if(!pCandidateA->getEnd().equal(pCandidateB->getStart()))
void SetInsertionCutOff(const sal_uInt32 nID, const sal_Int32 nPosition)
void SetMoveRanges(const ScBigRange &aSourceRange, const ScBigRange &aTargetRange)
OUString toString(OptionInfo const *info)
static bool convertNumber(sal_Int32 &rValue, std::u16string_view aString, sal_Int32 nMin=SAL_MIN_INT32, sal_Int32 nMax=SAL_MAX_INT32)