52 #include <section.hxx>
60 , m_bSaveDrawPt(bSvDrwPt)
67 if(!pLegacy || !pLegacy->m_pOld)
73 auto pOld = pLegacy->m_pOld;
80 auto& rChgSet = *
static_cast<const SwAttrSetChg*
>(pOld)->GetChgSet();
95 , m_sFormatName ( rChgFormat.GetName() )
99 , m_nFormatWhich( rChgFormat.Which() )
100 , m_bSaveDrawPt( bSaveDrawPt )
110 , m_sFormatName(rChgFormat.GetName())
111 , m_pOldSet( rChgFormat.GetAttrSet().
Clone( false ) )
113 , m_nFormatWhich( rChgFormat.Which() )
114 , m_bSaveDrawPt( bSaveDrawPt )
137 ->FindTableNode()->GetIndex();
141 }
else if ( dynamic_cast< const SwTableBoxFormat* >( &rFormat ) !=
nullptr ) {
169 bool bAnchorAttrRestored(
false );
172 if ( bAnchorAttrRestored ) {
183 if ( bAnchorAttrRestored )
return;
195 rContext.
SetSelections(static_cast<SwFrameFormat*>(pFormat),
nullptr);
220 return static_cast<SwTableNode*
>(pNd)->GetTable().GetFrameFormat();
224 return static_cast<SwSectionNode*
>(pNd)->GetSection().GetFormat();
227 static_cast<SwStartNode*
>(pNd)->GetStartNodeType()))
304 if (SfxItemState::SET ==
305 pFormat->GetAttrSet().GetItemState(
RES_CNTNT )) {
308 if( aTmpSet.Count() ) {
309 rDoc.SetAttr( aTmpSet, *pFly );
312 rDoc.SetAttr( pFormat->GetAttrSet(), *pFly );
348 Point aPt( static_cast<const SwFrameFormat*>(pFormat)->FindSdrObject()
349 ->GetRelativePos() );
360 sal_Int32 nContent = 0;
362 case RndStdIds::FLY_AS_CHAR:
363 case RndStdIds::FLY_AT_CHAR:
366 case RndStdIds::FLY_AT_PARA:
367 case RndStdIds::FLY_AT_FLY:
390 if (RndStdIds::FLY_AT_PAGE != rAnchor.
GetAnchorId()) {
393 if ( (RndStdIds::FLY_AT_FLY == rAnchor.
GetAnchorId())
395 static_cast<SwStartNode*
>(pNd)->GetStartNodeType()) )
403 if ((RndStdIds::FLY_AS_CHAR == rAnchor.
GetAnchorId()) ||
404 (RndStdIds::FLY_AT_CHAR == rAnchor.
GetAnchorId())) {
412 aNewAnchor.SetAnchor( &aPos );
414 aNewAnchor.SetPageNum( rAnchor.
GetPageNum() );
416 Point aDrawSavePt, aDrawOldPt;
421 aDrawSavePt.setX( rOldSize.
GetWidth() );
422 aDrawSavePt.setY( rOldSize.
GetHeight() );
435 if (RndStdIds::FLY_AS_CHAR == rOldAnch.
GetAnchorId()) {
442 OSL_ENSURE( pTextNode->
HasHints(),
"Missing FlyInCnt-Hint." );
446 assert(pHint &&
"Missing Hint.");
448 "Missing FlyInCnt-Hint." );
450 "Wrong TextFlyCnt-Hint." );
480 if (RndStdIds::FLY_AS_CHAR == aNewAnchor.GetAnchorId()) {
481 const SwPosition* pPos = aNewAnchor.GetContentAnchor();
483 OSL_ENSURE( pTextNd,
"no Text Node at position." );
502 const sal_uInt16 nWhichId )
504 , m_pChangedFormat( &rChangedFormat )
505 , m_nWhichId( nWhichId )
508 if (rChangedFormat.
GetItemState(nWhichId,
false, &pItem ) == SfxItemState::SET && pItem) {
536 , m_nFormatId( nFormatId )
543 , m_nFormatId( nFormatId )
603 if ( static_cast<SwHistorySetTOXMark*>(pHHint)
604 ->IsEqual( *aArr[ --nCnt ] ) ) {
649 , m_AttrSet( rRange.GetDoc().GetAttrPool(), {{rAttr.
Which(), rAttr.
Which()}} )
651 , m_nNodeIndex( ULONG_MAX )
652 , m_nInsertFlags( nFlags )
654 m_AttrSet.Put( rAttr );
662 aValue >>= m_aChrFormatName;
671 , m_nNodeIndex( ULONG_MAX )
672 , m_nInsertFlags( nFlags )
693 ? RedlineType::Insert
694 : RedlineType::Format,
719 aPam.GetPoint()->nContent.Assign( aPam.GetContentNode(),
m_nSttContent );
721 ++aPam.GetPoint()->nContent;
806 sal_Int32 nContent = 0;
809 switch ( pHstHint->
Which() ) {
814 nNode = pHistoryHint->
GetNode();
825 SwTextNode* pTextNd = rNds[ nNode ]->GetTextNode();
847 if ( 1 != rSet.
Count() ) {
868 if ( aTmp.GetUndo() ) {
870 m_pOldSet = std::move(aTmp.GetUndo()->m_pOldSet);
887 const SwPaM& rPam,
bool bFlag,
bool bMod )
928 const SwPaM& rRange,
const OUString& rText,
929 bool const bIsEndNote)
933 , m_bEndNote( bIsEndNote )
1021 , m_nNodeIndex( rPos.nNode.GetIndex() )
1022 , m_nContentIndex( rPos.nContent.GetIndex() )
1034 pDoc->DontExpandFormat( rPos,
false );
1045 pDoc->DontExpandFormat( rPos );
Starts a section of nodes in the document model.
constexpr TypedWhichId< SwGrfFormatColl > RES_GRFFMTCOLL(156)
SwPaM & AddUndoRedoPaM(::sw::UndoRedoContext &, bool const bCorrToContent=false) const
const SwGrfFormatColls * GetGrfFormatColls() const
SwUndoResetAttr(const SwPaM &, sal_uInt16 nFormatId)
tools::Long GetWidth() const
SwNode & GetNode(bool bPoint=true) const
static SwFormat * FindFormatByName(const SwFormatsBase &rFormatArr, std::u16string_view rName)
void SetSelections(SwFrameFormat *const pSelFormat, SdrMarkList *const pMarkList)
sal_uInt16 GetWhich() const
Marks a position in the document model.
constexpr TypedWhichId< SvxTabStopItem > RES_PARATR_TABSTOP(68)
virtual void RedoImpl(::sw::UndoRedoContext &) override
virtual void RedoImpl(::sw::UndoRedoContext &) override
bool IsSectionNode() const
const SwTableBox * GetTableBox(const OUString &rName, const bool bPerformValidCheck=false) const
void SetFootnoteInfo(const SwFootnoteInfo &rInfo)
SwCharFormat * FindCharFormatByName(std::u16string_view rName) const
const OUString & GetText() const
virtual const SwRootFrame * GetCurrentLayout() const =0
sal_uLong GetSttIdx() const
virtual bool SetAttr(const SfxPoolItem &) override
overriding to handle change of certain paragraph attributes
virtual SwPaM & CreateNewShellCursor()=0
virtual AppendResult AppendRedline(SwRangeRedline *pNewRedl, bool bCallDelete)=0
Append a new redline.
const SwFrameFormats * GetTableFrameFormats() const
virtual void SetRedlineFlags_intern(RedlineFlags eMode)=0
Set a new redline mode.
virtual SfxPoolItem * Clone(SfxItemPool *pPool=nullptr) const =0
static bool FillSaveDataForFormat(const SwPaM &, SwRedlineSaveDatas &)
constexpr TypedWhichId< SwFormatFrameSize > RES_FRM_SIZE(89)
virtual void InsertItemSet(const SwPaM &rRg, const SfxItemSet &, const SetAttrMode nFlags=SetAttrMode::DEFAULT, SwRootFrame const *pLayout=nullptr)=0
o3tl::sorted_vector< sal_uInt16 > m_Ids
const std::unique_ptr< SwHistory > m_pHistory
std::vector< SwTOXMark * > SwTOXMarks
virtual Point GetRelativePos() const
bool DontExpandFormat(const SwIndex &rIdx, bool bFlag=true, bool bFormatToTextAttributes=true)
When appropriate set DontExpand-flag at INet or character styles respectively.
const std::unique_ptr< SwHistory > m_pHistory
const sal_uInt16 m_nFormatId
constexpr TypedWhichId< SwFormatFlyCnt > RES_TXTATR_FLYCNT(57)
void SetRedlineFlags(RedlineFlags eMode)
std::unique_ptr< SwRedlineSaveDatas > m_pRedlineSaveData
static void RemoveIdxFromSection(SwDoc &, sal_uLong nSttIdx, const sal_uLong *pEndIdx=nullptr)
IDocumentContentOperations const & getIDocumentContentOperations() const
constexpr TypedWhichId< SwFormatField > RES_TXTATR_ANNOTATION(59)
std::unique_ptr< SvxTabStopItem > m_pTabStop
const SwFrameFormats * GetSpzFrameFormats() const
IShellCursorSupplier & GetCursorSupplier()
SwTextAttr * GetTextAttrForCharAt(const sal_Int32 nIndex, const sal_uInt16 nWhich=RES_TXTATR_END) const
get the text attribute at position nIndex which owns the dummy character CH_TXTATR_* at that position...
const SfxPoolItem * NextItem()
const SetAttrMode m_nInsertFlags
virtual bool QueryValue(css::uno::Any &rVal, sal_uInt8 nMemberId=0) const
const BorderLinePrimitive2D *pCandidateB assert(pCandidateA)
void ResetAttrs(const SwPaM &rRg, bool bTextAttr=true, const o3tl::sorted_vector< sal_uInt16 > &rAttrs=o3tl::sorted_vector< sal_uInt16 >(), const bool bSendDataChangedEvents=true, SwRootFrame const *pLayout=nullptr)
Reset attributes.
const SwTextFormatColl * GetDfltTextFormatColl() const
static bool IsRedlineOn(const RedlineFlags eM)
const SfxPoolItem & GetDefault(sal_uInt16 nFormatHint) const
Get the default attribute in this document.
sal_uLong GetIndex() const
virtual void RedoImpl(::sw::UndoRedoContext &) override
constexpr TypedWhichId< SwAttrSetChg > RES_ATTRSET_CHG(161)
SwTextAttr * InsertItem(SfxPoolItem &rAttr, const sal_Int32 nStart, const sal_Int32 nEnd, const SetAttrMode nMode=SetAttrMode::DEFAULT)
create new text attribute from rAttr and insert it
const SwTable & GetTable() const
constexpr TypedWhichId< SwFormatCharFormat > RES_TXTATR_CHARFMT(52)
SwUndoMoveLeftMargin(const SwPaM &, bool bRight, bool bModulus)
SwUndoEndNoteInfo(const SwEndNoteInfo &rInfo, const SwDoc &rDoc)
constexpr TypedWhichId< SwFormatFootnote > RES_TXTATR_FTN(58)
RedlineFlags GetRedlineFlags() const
constexpr TypedWhichId< SwFrameFormat > RES_FRMFMT(153)
virtual ~SwUndoEndNoteInfo() override
sal_uLong GetNode() const
virtual void UndoImpl(::sw::UndoRedoContext &) override
SwNode & GetEndOfContent() const
Regular ContentSection (i.e. the BodyText).
SwTableSortBoxes & GetTabSortBoxes()
virtual std::size_t GetRedlineAuthor()=0
bool SetCurFootnote(const SwPaM &rPam, const OUString &rNumStr, bool bIsEndNote)
change footnotes in range
PaM is Point and Mark: a selection of the document model.
bool Move(SwMoveFnCollection const &fnMove=fnMoveForward, SwGoInDoc fnGo=GoInContent)
Movement of cursor.
constexpr TypedWhichId< SwFormatField > RES_TXTATR_FIELD(RES_TXTATR_NOEND_BEGIN)
sal_uInt16 ClearItem(sal_uInt16 nWhich=0)
SwUndoDefaultAttr(const SfxItemSet &rOldSet, const SwDoc &rDoc)
SfxItemState GetItemState(sal_uInt16 nWhich, bool bSrchInParent=true, const SfxPoolItem **ppItem=nullptr) const
virtual void RepeatImpl(::sw::RepeatContext &) override
Reference< XAnimationNode > Clone(const Reference< XAnimationNode > &xSourceNode, const SdPage *pSource, const SdPage *pTarget)
OUString m_aChrFormatName
const SwPosition * GetPoint() const
void SaveRedlineData(const SwPaM &rPam, bool bInsContent)
SwIndex & Assign(SwIndexReg *, sal_Int32)
virtual ~SwUndoMoveLeftMargin() override
static void SetSaveData(SwDoc &rDoc, SwRedlineSaveDatas &rSData)
virtual bool DeleteRedline(const SwPaM &rPam, bool bSaveInUndo, RedlineType nDelType)=0
SwContentNode * GetContentNode()
SwNoTextNode * GetNoTextNode()
Marks a character position inside a document model node.
void AddRule(SwUndoArg eWhat, const OUString &rWith)
SwUndoAttr(const SwPaM &, const SfxItemSet &, const SetAttrMode nFlags)
const std::unique_ptr< SwHistory > m_pHistory
Marks a node in the document model.
SwFrameFormat * GetFrameFormat()
std::unique_ptr< SwRedlineData > m_pRedlineData
tools::Long GetHeight() const
virtual void RepeatImpl(::sw::RepeatContext &) override
IDocumentLayoutAccess const & getIDocumentLayoutAccess() const
SwTable is one table in the document model, containing rows (which contain cells).
constexpr TypedWhichId< SwFormatContent > RES_CNTNT(95)
void RstTextAttrs(const SwPaM &rRg, bool bInclRefToxMark=false, bool bExactRange=false, SwRootFrame const *pLayout=nullptr)
constexpr sal_uInt16 POOLATTR_END(RES_UNKNOWNATR_END)
std::unique_ptr< SfxItemSet > m_pOldSet
const SwNodeIndex * GetContentIdx() const
virtual ~SwUndoResetAttr() override
void SetEndNoteInfo(const SwEndNoteInfo &rInfo)
SwTextFormatColl * FindTextFormatCollByName(std::u16string_view rName) const
void SetDefault(const SfxPoolItem &)
Set attribute as new default attribute in current document.
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
SwTextNode is a paragraph in the document model.
void DeleteAttributes(const sal_uInt16 nWhich, const sal_Int32 nStart, const sal_Int32 nEnd=0)
delete all attributes of type nWhich at nStart (opt. end nEnd)
void DeleteTOXMark(const SwTOXMark *pTOXMark)
Delete table of contents Mark.
void MoveLeftMargin(const SwPaM &rPam, bool bRight, bool bModulus, SwRootFrame const *pLayout=nullptr)
Adjust left margin via object bar (similar to adjustment of numerations).
void RemoveIdx(SwDoc &rDoc)
IDocumentRedlineAccess const & getIDocumentRedlineAccess() const
constexpr sal_uInt16 RES_FMT_BEGIN(RES_UNKNOWNATR_END)
virtual void UndoImpl(::sw::UndoRedoContext &) override
virtual bool SetAttr(const SfxPoolItem &)
made virtual
void SetPaM(SwPaM &, bool bCorrToContent=false) const
virtual const SwViewShell * GetCurrentViewShell() const =0
Returns the layout set at the document.
virtual void RedoImpl(::sw::UndoRedoContext &) override
static sal_uInt16 GetCurTOXMark(const SwPosition &rPos, SwTOXMarks &)
Get current table of contents Mark.
std::unique_ptr< SwEndNoteInfo > m_pEndNoteInfo
bool DontExpandFormat(const SwPosition &rPos, bool bFlag=true)
constexpr TypedWhichId< SwTextFormatColl > RES_TXTFMTCOLL(155)
constexpr TypedWhichId< SwCharFormat > RES_CHRFMT(RES_FMT_BEGIN)
sal_Int32 GetIndex() const
virtual bool IsRedlineOn() const =0
Query if redlining is on.
virtual ~SwUndoAttr() override
SwTableBox is one table cell in the document model.
sal_Int32 GetContent() const
virtual void RedoImpl(::sw::UndoRedoContext &) override
HISTORY_HINT Which() const
constexpr TypedWhichId< SwConditionTextFormatColl > RES_CONDTXTFMTCOLL(158)
constexpr TypedWhichId< SwTOXMark > RES_TXTATR_TOXMARK(47)
constexpr TypedWhichId< SwDrawFrameFormat > RES_DRAWFRMFMT(157)
virtual void UndoImpl(::sw::UndoRedoContext &) override
constexpr TypedWhichId< SwFlyFrameFormat > RES_FLYFRMFMT(154)
virtual void CallSwClientNotify(const SfxHint &rHint) const override
SwMoveFnCollection const & fnMoveBackward
SwTableNode * FindTableNode()
Search table node, in which it is.
const sal_uInt16 * GetRanges() const
SwFootnoteIdxs & GetFootnoteIdxs()
virtual RedlineFlags GetRedlineFlags() const =0
Query the currently set redline mode.
virtual void UndoImpl(::sw::UndoRedoContext &) override
SwFormatColl * GetFormatColl() const
void SetAttrs(const o3tl::sorted_vector< sal_uInt16 > &rAttrs)
virtual void SetMark()
Unless this is called, the getter method of Mark will return Point.
constexpr TypedWhichId< SwFormatRefMark > RES_TXTATR_REFMARK(RES_TXTATR_WITHEND_BEGIN)
Frame is variable in Var-direction.
const SwFrameFormats * GetFrameFormats() const
const SfxPoolItem * GetItem(sal_uInt16 nWhich, bool bSearchInParent=true) const
SwSectionFormats & GetSections()
SwFrameFormat * GetFlyFormat() const
If node is in a fly return the respective format.
virtual void UndoImpl(::sw::UndoRedoContext &) override
const SwFootnoteInfo & GetFootnoteInfo() const
const SwEndNoteInfo & GetEndNoteInfo() const
constexpr TypedWhichId< SwPtrMsgPoolItem > RES_OBJECTDYING(RES_MSG_BEGIN)
const SfxPoolItem * GetCurItem() const
constexpr TypedWhichId< SwFormatAnchor > RES_ANCHOR(104)
SwTextNode * GetTextNode()
Inline methods from Node.hxx.
virtual ~SwUndoDefaultAttr() override
virtual void RepeatImpl(::sw::RepeatContext &) override
const SwFormatFlyCnt & GetFlyCnt() const
Base class of the Writer document model elements.