summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2022-09-05 12:42:28 +0200
committerNoel Grandin <noel.grandin@collabora.co.uk>2022-09-05 14:06:02 +0200
commitee003ca99f94c9a5517ebba67ed02abb2a60dae8 (patch)
treee7776cdd854896e32b38aee460ee76d989b35651
parenta740176009411d21e20d7c11097af1d8812d251d (diff)
add InsertText and EraseText overloads that take SwPosition
part of the process of hiding the internals of SwPosition Change-Id: I7affb1ee002869ea3ed8c7da0c79b1a3750e5c97 Reviewed-on: https://gerrit.libreoffice.org/c/core/+/139411 Tested-by: Jenkins Reviewed-by: Noel Grandin <noel.grandin@collabora.co.uk>
-rw-r--r--sw/inc/ndtxt.hxx5
-rw-r--r--sw/source/core/doc/DocumentContentOperationsManager.cxx6
-rw-r--r--sw/source/core/docnode/ndtbl.cxx2
-rw-r--r--sw/source/core/txtnode/ndtxt.cxx12
-rw-r--r--sw/source/core/undo/undel.cxx6
-rw-r--r--sw/source/core/undo/unins.cxx4
-rw-r--r--sw/source/core/undo/unovwr.cxx5
7 files changed, 28 insertions, 12 deletions
diff --git a/sw/inc/ndtxt.hxx b/sw/inc/ndtxt.hxx
index 8715f0e7e98e..ecd24ca55ba0 100644
--- a/sw/inc/ndtxt.hxx
+++ b/sw/inc/ndtxt.hxx
@@ -253,6 +253,9 @@ public:
OUString InsertText( const OUString & rStr, const SwContentIndex & rIdx,
const SwInsertFlags nMode
= SwInsertFlags::DEFAULT );
+ OUString InsertText( const OUString & rStr, const SwPosition & rIdx,
+ const SwInsertFlags nMode
+ = SwInsertFlags::DEFAULT );
/** delete text content
ATTENTION: must not be called with a range that overlaps the start of
@@ -260,6 +263,8 @@ public:
*/
void EraseText ( const SwContentIndex &rIdx, const sal_Int32 nCount = SAL_MAX_INT32,
const SwInsertFlags nMode = SwInsertFlags::DEFAULT );
+ void EraseText ( const SwPosition& rIdx, const sal_Int32 nCount = SAL_MAX_INT32,
+ const SwInsertFlags nMode = SwInsertFlags::DEFAULT );
/** delete all attributes.
If neither pSet nor nWhich is given, delete all attributes (except
diff --git a/sw/source/core/doc/DocumentContentOperationsManager.cxx b/sw/source/core/doc/DocumentContentOperationsManager.cxx
index 7aa04a808eaa..c642cde1c8c7 100644
--- a/sw/source/core/doc/DocumentContentOperationsManager.cxx
+++ b/sw/source/core/doc/DocumentContentOperationsManager.cxx
@@ -2849,7 +2849,7 @@ bool DocumentContentOperationsManager::InsertString( const SwPaM &rRg, const OUS
if (!bDoesUndo || !m_rDoc.GetIDocumentUndoRedo().DoesGroupUndo())
{
- OUString const ins(pNode->InsertText(rStr, rPos.nContent, nInsertMode));
+ OUString const ins(pNode->InsertText(rStr, rPos, nInsertMode));
if (bDoesUndo)
{
m_rDoc.GetIDocumentUndoRedo().AppendUndo(
@@ -2883,7 +2883,7 @@ bool DocumentContentOperationsManager::InsertString( const SwPaM &rRg, const OUS
m_rDoc.GetIDocumentUndoRedo().AppendUndo( std::unique_ptr<SwUndo>(pUndo) );
}
- OUString const ins(pNode->InsertText(rStr, rPos.nContent, nInsertMode));
+ OUString const ins(pNode->InsertText(rStr, rPos, nInsertMode));
for (sal_Int32 i = 0; i < ins.getLength(); ++i)
{
@@ -4371,7 +4371,7 @@ bool DocumentContentOperationsManager::DeleteRangeImplImpl(SwPaM & rPam, SwDelet
// Don't call again, if already empty
if( nLen )
{
- pStartTextNode->EraseText( pStt->nContent, nLen );
+ pStartTextNode->EraseText( *pStt, nLen );
if( !pStartTextNode->Len() )
{
diff --git a/sw/source/core/docnode/ndtbl.cxx b/sw/source/core/docnode/ndtbl.cxx
index 9efdf5628bb0..fc96ff692bc4 100644
--- a/sw/source/core/docnode/ndtbl.cxx
+++ b/sw/source/core/docnode/ndtbl.cxx
@@ -1078,7 +1078,7 @@ SwTableNode* SwNodes::TextToTable( const SwNodeRange& rRange, sal_Unicode cCh,
pTextNd->SplitContentNode(aCntPos, &restoreFunc);
// Delete separator and correct search string
- pTextNd->EraseText( aCntPos.nContent, 1 );
+ pTextNd->EraseText( aCntPos, 1 );
nChPos = 0;
// Set the TableNode as StartNode for all TextNodes in the Table
diff --git a/sw/source/core/txtnode/ndtxt.cxx b/sw/source/core/txtnode/ndtxt.cxx
index 27053fe2b99a..73804928508c 100644
--- a/sw/source/core/txtnode/ndtxt.cxx
+++ b/sw/source/core/txtnode/ndtxt.cxx
@@ -2313,6 +2313,12 @@ void SwTextNode::CopyText( SwTextNode *const pDest,
CHECK_SWPHINTS(pDest);
}
+OUString SwTextNode::InsertText( const OUString & rStr, const SwPosition & rIdx,
+ const SwInsertFlags nMode )
+{
+ return InsertText(rStr, rIdx.nContent, nMode);
+}
+
OUString SwTextNode::InsertText( const OUString & rStr, const SwContentIndex & rIdx,
const SwInsertFlags nMode )
{
@@ -2709,6 +2715,12 @@ void SwTextNode::CutImpl( SwTextNode * const pDest, const SwContentIndex & rDest
TryDeleteSwpHints();
}
+void SwTextNode::EraseText(const SwPosition &rIdx, const sal_Int32 nCount,
+ const SwInsertFlags nMode )
+{
+ EraseText(rIdx.nContent, nCount, nMode);
+}
+
void SwTextNode::EraseText(const SwContentIndex &rIdx, const sal_Int32 nCount,
const SwInsertFlags nMode )
{
diff --git a/sw/source/core/undo/undel.cxx b/sw/source/core/undo/undel.cxx
index fab3bb4bc323..0d62ed72a603 100644
--- a/sw/source/core/undo/undel.cxx
+++ b/sw/source/core/undo/undel.cxx
@@ -465,7 +465,7 @@ bool SwUndoDelete::SaveContent( const SwPosition* pStt, const SwPosition* pEnd,
// delete now also the text (all attribute changes are added to
// UNDO history)
m_aSttStr = pSttTextNd->GetText().copy(m_nSttContent, nLen);
- pSttTextNd->EraseText( pStt->nContent, nLen );
+ pSttTextNd->EraseText( *pStt, nLen );
if( pSttTextNd->GetpSwpHints() )
pSttTextNd->GetpSwpHints()->DeRegister();
@@ -594,7 +594,7 @@ bool SwUndoDelete::CanGrouping( SwDoc& rDoc, const SwPaM& rDelPam )
nUChrPos++;
}
m_aSttStr = m_aSttStr->replaceAt( nUChrPos, 0, rtl::OUStringChar(cDelChar) );
- pDelTextNd->EraseText( pStt->nContent, 1 );
+ pDelTextNd->EraseText( *pStt, 1 );
m_bGroup = true;
return true;
@@ -1018,7 +1018,7 @@ void SwUndoDelete::UndoImpl(::sw::UndoRedoContext & rContext)
// -> in StartNode is still the rest of the Join => delete
aPos.nContent.Assign( pTextNd, m_nSttContent );
pTextNd->SetInSwUndo(true);
- OUString const ins( pTextNd->InsertText(*m_aSttStr, aPos.nContent,
+ OUString const ins( pTextNd->InsertText(*m_aSttStr, aPos,
SwInsertFlags::NOHINTEXPAND) );
pTextNd->SetInSwUndo(false);
assert(ins.getLength() == m_aSttStr->getLength()); // must succeed
diff --git a/sw/source/core/undo/unins.cxx b/sw/source/core/undo/unins.cxx
index eef08382f53e..579d67883e4e 100644
--- a/sw/source/core/undo/unins.cxx
+++ b/sw/source/core/undo/unins.cxx
@@ -254,7 +254,7 @@ void SwUndoInsert::UndoImpl(::sw::UndoRedoContext & rContext)
}
RemoveIdxFromRange( aPaM, false );
maText = pTextNode->GetText().copy(m_nContent-m_nLen, m_nLen);
- pTextNode->EraseText( aPaM.GetPoint()->nContent, m_nLen );
+ pTextNode->EraseText( *aPaM.GetPoint(), m_nLen );
}
else // otherwise Graphics/OLE/Text/...
{
@@ -329,7 +329,7 @@ void SwUndoInsert::RedoImpl(::sw::UndoRedoContext & rContext)
SwTextNode *const pTextNode = pCNd->GetTextNode();
OSL_ENSURE( pTextNode, "where is my textnode ?" );
OUString const ins(
- pTextNode->InsertText( *maText, pPam->GetMark()->nContent,
+ pTextNode->InsertText( *maText, *pPam->GetMark(),
m_nInsertFlags) );
assert(ins.getLength() == maText->getLength()); // must succeed
maText.reset();
diff --git a/sw/source/core/undo/unovwr.cxx b/sw/source/core/undo/unovwr.cxx
index 64421faed72f..3f072fda262d 100644
--- a/sw/source/core/undo/unovwr.cxx
+++ b/sw/source/core/undo/unovwr.cxx
@@ -83,8 +83,7 @@ SwUndoOverwrite::SwUndoOverwrite( SwDoc& rDoc, SwPosition& rPos,
bool bOldExpFlg = pTextNd->IsIgnoreDontExpand();
pTextNd->SetIgnoreDontExpand( true );
- pTextNd->InsertText( OUString(cIns), rPos.nContent,
- SwInsertFlags::EMPTYEXPAND );
+ pTextNd->InsertText( OUString(cIns), rPos, SwInsertFlags::EMPTYEXPAND );
m_aInsStr += OUStringChar( cIns );
if( !m_bInsChar )
@@ -160,7 +159,7 @@ bool SwUndoOverwrite::CanGrouping( SwDoc& rDoc, SwPosition& rPos,
bool bOldExpFlg = pDelTextNd->IsIgnoreDontExpand();
pDelTextNd->SetIgnoreDontExpand( true );
- OUString const ins( pDelTextNd->InsertText(OUString(cIns), rPos.nContent,
+ OUString const ins( pDelTextNd->InsertText(OUString(cIns), rPos,
SwInsertFlags::EMPTYEXPAND) );
assert(ins.getLength() == 1); // check in SwDoc::Overwrite => cannot fail
(void) ins;