editeng/inc/editdoc.hxx | 7 +++++-- editeng/source/editeng/editdoc.cxx | 18 +++++++++--------- editeng/source/editeng/impedit2.cxx | 6 +++--- editeng/source/editeng/impedit3.cxx | 2 +- 4 files changed, 18 insertions(+), 15 deletions(-)
New commits: commit 417d1d56b39453b5ae8396a8286d8291061f049b Author: Tomaž Vajngerl <[email protected]> AuthorDate: Sat Dec 30 11:25:34 2023 +0900 Commit: Tomaž Vajngerl <[email protected]> CommitDate: Mon Jan 1 09:21:14 2024 +0100 editeng: make it clear EditDoc is responsible for ContentNodes Change-Id: I38b9b1a5ba48d73438865f5a040f2483f6814c40 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/161479 Tested-by: Jenkins Reviewed-by: Tomaž Vajngerl <[email protected]> diff --git a/editeng/inc/editdoc.hxx b/editeng/inc/editdoc.hxx index 7fc29556957c..e9016989e840 100644 --- a/editeng/inc/editdoc.hxx +++ b/editeng/inc/editdoc.hxx @@ -100,7 +100,10 @@ public: }; - +/** Edit document + * + * Holder, responsible for the content nodes and the manipulation of those. + */ class EditDoc { private: @@ -204,7 +207,7 @@ public: sal_Int32 Count() const; const ContentNode* operator[](sal_Int32 nPos) const; ContentNode* operator[](sal_Int32 nPos); - void Insert(sal_Int32 nPos, ContentNode* p); + void Insert(sal_Int32 nPos, std::unique_ptr<ContentNode> p); /// deletes void Remove(sal_Int32 nPos); /// does not delete diff --git a/editeng/source/editeng/editdoc.cxx b/editeng/source/editeng/editdoc.cxx index 0afcc9cdd81c..c44c0b5a123c 100644 --- a/editeng/source/editeng/editdoc.cxx +++ b/editeng/source/editeng/editdoc.cxx @@ -943,14 +943,14 @@ ContentNode* EditDoc::operator[](sal_Int32 nPos) return GetObject(nPos); } -void EditDoc::Insert(sal_Int32 nPos, ContentNode* p) +void EditDoc::Insert(sal_Int32 nPos, std::unique_ptr<ContentNode> pNode) { if (nPos < 0 || nPos == SAL_MAX_INT32) { SAL_WARN( "editeng", "EditDoc::Insert - overflow pos " << nPos); return; } - maContents.insert(maContents.begin()+nPos, std::unique_ptr<ContentNode>(p)); + maContents.insert(maContents.begin()+nPos, std::move(pNode)); } void EditDoc::Remove(sal_Int32 nPos) @@ -1057,8 +1057,8 @@ EditPaM EditDoc::Clear() { maContents.clear(); - ContentNode* pNode = new ContentNode( GetItemPool() ); - Insert(0, pNode); + ContentNode* pNode = new ContentNode(GetItemPool()); + Insert(0, std::unique_ptr<ContentNode>(pNode)); CreateDefFont(false); @@ -1100,8 +1100,8 @@ EditPaM EditDoc::RemoveText() maContents.clear(); - ContentNode* pNode = new ContentNode( GetItemPool() ); - Insert(0, pNode); + ContentNode* pNode = new ContentNode(GetItemPool()); + Insert(0, std::unique_ptr<ContentNode>(pNode)); pNode->SetStyleSheet(pPrevStyle, false); pNode->GetContentAttribs().GetItems().Set( aPrevSet ); @@ -1109,7 +1109,7 @@ EditPaM EditDoc::RemoveText() SetModified(true); - return EditPaM( pNode, 0 ); + return EditPaM(pNode, 0); } EditPaM EditDoc::InsertText( EditPaM aPaM, std::u16string_view rStr ) @@ -1143,7 +1143,7 @@ EditPaM EditDoc::InsertParaBreak( EditPaM aPaM, bool bKeepEndingAttribs ) aContentAttribs.GetItems().Put( SfxBoolItem( EE_PARA_BULLETSTATE, true) ); // ContentNode constructor copies also the paragraph attributes - ContentNode* pNode = new ContentNode( aStr, std::move(aContentAttribs) ); + ContentNode* pNode = new ContentNode(aStr, std::move(aContentAttribs)); // Copy the Default Font pNode->GetCharAttribs().GetDefFont() = aPaM.GetNode()->GetCharAttribs().GetDefFont(); @@ -1161,7 +1161,7 @@ EditPaM EditDoc::InsertParaBreak( EditPaM aPaM, bool bKeepEndingAttribs ) // Character attributes may need to be copied or trimmed: pNode->CopyAndCutAttribs( aPaM.GetNode(), GetItemPool(), bKeepEndingAttribs ); - Insert(nPos+1, pNode); + Insert(nPos+1, std::unique_ptr<ContentNode>(pNode)); SetModified(true); diff --git a/editeng/source/editeng/impedit2.cxx b/editeng/source/editeng/impedit2.cxx index d3a62cb2b9de..b7a1aca97e2f 100644 --- a/editeng/source/editeng/impedit2.cxx +++ b/editeng/source/editeng/impedit2.cxx @@ -2218,8 +2218,8 @@ EditSelection ImpEditEngine::ImpMoveParagraphs( Range aOldPositions, sal_Int32 n aSelection.Max().SetNode( pTmpPortion->GetNode() ); aSelection.Max().SetIndex( pTmpPortion->GetNode()->Len() ); - ContentNode* pN = pTmpPortion->GetNode(); - maEditDoc.Insert(nRealNewPos+i, pN); + ContentNode* pNode = pTmpPortion->GetNode(); + maEditDoc.Insert(nRealNewPos+i, std::unique_ptr<ContentNode>(pNode)); GetParaPortions().Insert(nRealNewPos+i, std::move(pTmpPortion)); ++i; @@ -2998,7 +2998,7 @@ EditPaM ImpEditEngine::ImpFastInsertParagraph( sal_Int32 nPara ) if ( GetStatus().DoOnlineSpelling() ) pNode->CreateWrongList(); - maEditDoc.Insert(nPara, pNode); + maEditDoc.Insert(nPara, std::unique_ptr<ContentNode>(pNode)); GetParaPortions().Insert(nPara, std::make_unique<ParaPortion>( pNode )); if ( IsCallParaInsertedOrDeleted() ) diff --git a/editeng/source/editeng/impedit3.cxx b/editeng/source/editeng/impedit3.cxx index 73a051e457fe..67598d46db20 100644 --- a/editeng/source/editeng/impedit3.cxx +++ b/editeng/source/editeng/impedit3.cxx @@ -4124,7 +4124,7 @@ void ImpEditEngine::InsertContent( ContentNode* pNode, sal_Int32 nPos ) DBG_ASSERT( pNode, "NULL-Pointer in InsertContent! " ); DBG_ASSERT( IsInUndo(), "InsertContent only for Undo()!" ); GetParaPortions().Insert(nPos, std::make_unique<ParaPortion>( pNode )); - maEditDoc.Insert(nPos, pNode); + maEditDoc.Insert(nPos, std::unique_ptr<ContentNode>(pNode)); if ( IsCallParaInsertedOrDeleted() ) GetEditEnginePtr()->ParagraphInserted( nPos ); }
