35 #include <strings.hrc>
48 sal_Int32
const nTextNdLen = pTextNd->
GetText().getLength();
133 const bool bSaved =
FillSaveData( aPam, aTmpSav,
false );
163 assert(ins.getLength() == 1);
187 SwIndex& rIdx = rCurrentPam.GetPoint()->nContent;
216 OUString
const ins( pTextNd->
InsertText(aTmpStr, rIdx) );
217 assert(ins.getLength() == 1);
236 rCurrentPam.SetMark();
269 SwIndex& rIdx = rCurrentPam.GetPoint()->nContent;
275 rCurrentPam.GetMark()->nContent +=
m_aDelStr.getLength();
277 rCurrentPam.DeleteMark();
290 assert(ins.getLength() == 1);
296 rIdx += n+1 <
m_aDelStr.getLength() ? 2 : 1;
306 rCurrentPam.SetMark();
315 OUString aString =
SwResId(STR_START_QUOTE) +
334 nNdIdx( nNd ), nStart( nStt ), nLen( nStrLen )
383 sal_Int32 nStart, sal_Int32 nLen,
384 uno::Sequence <sal_Int32>
const & rOffsets )
388 rTNd.
GetIndex(), nStart,
static_cast<sal_Int32
>(nOffsLen),
389 rTNd.
GetText().copy(nStart, nLen));
391 m_aChanges.push_back( std::unique_ptr<UndoTransliterate_Data>(pNew) );
393 const sal_Int32* pOffsets = rOffsets.getConstArray();
395 const sal_Int32*
p = pOffsets;
397 if( *p != ( nStart +
n ))
400 pNew->
pOffsets.reset(
new Sequence <sal_Int32> ( nLen ) );
401 sal_Int32* pIdx = pNew->
pOffsets->getArray();
404 for(
n = 0, nMyOff = nStart;
n < nOffsLen; ++p, ++
n, ++nMyOff )
410 *(pIdx-1) = nNewVal++;
412 else if( *p > nMyOff )
414 for( ; *p > nMyOff; ++nMyOff )
459 sal_Int32*
p = aOffsets.getArray();
460 for( sal_Int32
n = 0;
n <
nLen; ++
n, ++p )
469 pHistory->TmpRollback( &rDoc, 0,
false );
void SetChangeAtNode(SwDoc &rDoc)
SwPaM & AddUndoRedoPaM(::sw::UndoRedoContext &, bool const bCorrToContent=false) const
sal_uLong GetIndex() const
SwAutoCorrExceptWord * GetAutoCorrExceptWord()
Marks a position in the document model.
std::unique_ptr< SwHistory > m_pHistory
virtual ~SwUndoOverwrite() override
const OUString & GetText() const
bool getType(BSTR name, Type &type)
SwpHints * GetpSwpHints()
virtual SwPaM & CreateNewShellCursor()=0
SwUndoTransliterate(const SwPaM &rPam, const utl::TransliterationWrapper &rTrans)
std::vector< std::unique_ptr< UndoTransliterate_Data > > m_aChanges
bool CanGrouping(SwDoc &, SwPosition &, sal_Unicode cIns)
SwUndoOverwrite(SwDoc &, SwPosition &, sal_Unicode cIns)
IDocumentUndoRedo & GetIDocumentUndoRedo()
IDocumentContentOperations const & getIDocumentContentOperations() const
virtual void TransliterateText(const SwPaM &rPaM, utl::TransliterationWrapper &)=0
change text to Upper/Lower/Hiragana/Katakana/...
void DoTransliterate(SwDoc &rDoc, SwPaM const &rPam)
IShellCursorSupplier & GetCursorSupplier()
#define CH_TXTATR_BREAKWORD
bool isLetterNumeric(const OUString &rStr, sal_Int32 nPos) const
virtual void RepeatImpl(::sw::RepeatContext &) override
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
sal_uLong GetIndex() const
virtual void RedoImpl(::sw::UndoRedoContext &) override
static bool CanRedlineGroup(SwRedlineSaveDatas &rCurr, const SwRedlineSaveDatas &rCheck, bool bCurrIsEnd)
virtual SwRewriter GetRewriter() const override
Returns the rewriter of this undo object.
virtual void RepeatImpl(::sw::RepeatContext &) override
std::unique_ptr< Sequence< sal_Int32 > > pOffsets
virtual void UndoImpl(::sw::UndoRedoContext &) override
void SetIgnoreDontExpand(bool bNew)
PaM is Point and Mark: a selection of the document model.
virtual bool Overwrite(const SwPaM &rRg, const OUString &rStr)=0
Overwrite string in an existing text node.
TransliterationFlags m_nType
SwIndex & Assign(SwIndexReg *, sal_Int32)
static void SetSaveData(SwDoc &rDoc, SwRedlineSaveDatas &rSData)
virtual bool DeleteRedline(const SwPaM &rPam, bool bSaveInUndo, RedlineType nDelType)=0
bool HasMark() const
A PaM marks a selection if Point and Mark are distinct positions.
std::unique_ptr< SwHistory > pHistory
Marks a character position inside a document model node.
void AddRule(SwUndoArg eWhat, const OUString &rWith)
bool IsIgnoreDontExpand() const
OUString SwResId(const char *pId)
void CheckChar(const SwPosition &rPos, sal_Unicode cChar)
sal_Int32 m_nStartContent
virtual ~SwUndoTransliterate() override
void SetMark(const sw::mark::IMark *pMark)
virtual bool IsIgnoreRedline() const =0
void ReplaceTextOnly(sal_Int32 nPos, sal_Int32 nLen, const OUString &rText, const css::uno::Sequence< sal_Int32 > &rOffsets)
void EraseText(const SwIndex &rIdx, const sal_Int32 nCount=SAL_MAX_INT32, const SwInsertFlags nMode=SwInsertFlags::DEFAULT)
delete text content ATTENTION: must not be called with a range that overlaps the start of an attribut...
virtual void RedoImpl(::sw::UndoRedoContext &) override
OUString InsertText(const OUString &rStr, const SwIndex &rIdx, const SwInsertFlags nMode=SwInsertFlags::DEFAULT)
insert text content
void SetAutoCorrExceptWord(std::unique_ptr< SwAutoCorrExceptWord > pNew)
void ClearSwpHintsArr(bool bDelFields)
SwTextNode is a paragraph in the document model.
IDocumentRedlineAccess const & getIDocumentRedlineAccess() const
virtual void UndoImpl(::sw::UndoRedoContext &) override
OUString ShortenString(const OUString &rStr, sal_Int32 nLength, const OUString &rFillStr)
Shortens a string to a maximum length.
sal_Int32 GetIndex() const
Reference< XComponentContext > getProcessComponentContext()
std::unique_ptr< SwRedlineSaveDatas > m_pRedlSaveData
UndoTransliterate_Data(sal_uLong nNd, sal_Int32 nStt, sal_Int32 nStrLen, const OUString &rText)
static bool FillSaveData(const SwPaM &rRange, SwRedlineSaveDatas &rSData, bool bDelRange=true, bool bCopyNext=true)
virtual const SwRedlineTable & GetRedlineTable() const =0
CharClass & GetAppCharClass()
const int nUndoStringLength
SwTextNode * GetTextNode()
Inline methods from Node.hxx.
void AddChanges(SwTextNode &rTNd, sal_Int32 nStart, sal_Int32 nLen, css::uno::Sequence< sal_Int32 > const &rOffsets)