20#include <libxml/xmlwriter.h>
65#include <osl/diagnose.h>
73#define CHECK_TABLE(t) (t).CheckConsistency();
79 #define DEBUG_REDLINE( pDoc ) sw_DebugRedline( pDoc );
81 #define DEBUG_REDLINE( pDoc )
107 if(!rFormat.HasWriterListeners())
133 bool bSaveFormula =
true );
142 bool bRestoreChart =
true );
151 friend class SaveBox;
155 sal_uInt16 m_nItemSet;
157 SaveLine(
const SaveLine&) =
delete;
158 SaveLine& operator=(
const SaveLine&) =
delete;
165 void SaveContentAttrs(
SwDoc* pDoc );
172 friend class SaveLine;
176 sal_Int32 m_nRowSpan;
177 sal_uInt16 m_nItemSet;
189 void SaveContentAttrs(
SwDoc* pDoc );
196#if OSL_DEBUG_LEVEL > 0
198#define CHECKTABLE(t) CheckTable( t );
237 const std::vector<sal_uInt16> *pColArr,
238 const OUString & rName)
240 m_aInsTableOptions( rInsTableOpts ),
241 m_nStartNode( rPos.GetNodeIndex() ), m_nRows( nRw ), m_nColumns( nCl ), m_nAdjust( nAdj )
275 OSL_ENSURE( pTableNd,
"no TableNode" );
316 OSL_ENSURE(pEditShell,
"SwUndoInsTable::RedoImpl needs a SwEditShell!");
319 throw uno::RuntimeException();
335 std::unique_ptr<SwDDETable> pDDETable(
new SwDDETable( pTableNode->
GetTable(), pNewType ));
379 : m_nSttNd( nNd ), m_nEndNd( nEndIdx), m_nContent( nCnt )
391 pNd->
GetText().getLength(),
false );
408 if ( nEndIdx - 1 > nNd )
422 m_nStartNode( 0 ), m_nEndNode( 0 ),
423 m_cSeparator( cCh ), m_nHeadlineRepeat( rTable.GetRowsToRepeat() )
428 if(
auto pDDETable =
dynamic_cast<const SwDDETable *
>(&rTable) )
442 ((RndStdIds::FLY_AT_CHAR == pAnchor->
GetAnchorId()) ||
443 (RndStdIds::FLY_AT_PARA == pAnchor->
GetAnchorId())) &&
444 nTableStt <= pAnchorNode->GetIndex() &&
445 pAnchorNode->
GetIndex() < nTableEnd )
496 std::unique_ptr<SwDDETable> pDDETable(
new SwDDETable( pTableNd->
GetTable(), pNewType ) );
497 pTableNd->
SetNewTable( std::move(pDDETable),
false );
504 for (
size_t nBoxes = rBxs.
size(); nBoxes; )
549 for(
n = pTableNd->
GetIndex() + 1;
n < nTmpEnd; ++
n )
551 if( ( pNd = (*
this)[
n ] )->IsContentNode() )
565 for(
size_t n = rSavedData.size();
n; )
576 OSL_ENSURE( pTextNd,
"Where is my TextNode?" );
584 if (!pContentStore->Empty())
586 pContentStore->Restore(*pNewNode, pSave->m_nContent, pSave->m_nContent + 1, eMode);
594 pContentStore->Clear();
614 sal_uInt16 nTmpEnd = pSave->
m_pHstry->GetTmpEnd();
616 pSave->
m_pHstry->SetTmpEnd( nTmpEnd );
662 OSL_ENSURE( pTableNd,
"Could not find any TableNode" );
671 if( !pCNd &&
nullptr == ( pCNd = rDoc.
GetNodes().
GoNext( &aSaveIdx ) ) &&
674 OSL_FAIL(
"Where is the TextNode now?" );
707 m_vBoxSaves.push_back(std::make_unique<SwTableToTextSave>(rDoc, nNdIdx, nEndIdx, nContentIdx));
715 m_pHistory( nullptr ), m_cSeparator( cCh ), m_nAdjust( nAdj )
741 OSL_ENSURE( pTNd,
"Could not find a TableNode" );
763 OSL_ENSURE(
false,
"Where is my box?" );
842 m_nOldHeadline( nOldHdl ),
843 m_nNewHeadline( nNewHdl )
847 OSL_ENSURE( pSttNd,
"Box without content" );
856 OSL_ENSURE( pTNd,
"could not find any TableNode" );
866 OSL_ENSURE( pTNd,
"could not find any TableNode" );
882 : m_aTableSet(*rTable.GetFrameFormat()->GetAttrSet().GetPool(),
aTableSetRange),
883 m_pSwTable(&rTable), m_nLineCount(nLnCnt), m_bSaveFormula(bSaveFormula)
891 if( USHRT_MAX == nLnCnt )
893 for( sal_uInt16
n = 1;
n < nLnCnt; ++
n )
903 if( SIZE_MAX == nRet )
928 return o3tl::narrowing<sal_uInt16>(nRet);
935 FndBox_ aTmpBox(
nullptr,
nullptr );
950 bool bHiddenTable =
true;
956 if( pLast->GetTable() == &rTable )
958 pLast->InvalidateAll();
959 pLast->SetCompletePaint();
960 bHiddenTable =
false;
974 for (
size_t n = 0;
n < nLnCnt; ++
n, pLn = pLn->m_pNext)
978 OSL_ENSURE(
false,
"Number of lines changed" );
1005 m_pLine->SaveContentAttrs(pDoc);
1009 bool bRestoreChart )
1011 FndBox_ aTmpBox(
nullptr,
nullptr );
1031 m_pLine->CreateNew(rTable, aParent, *
this);
1052 const size_t nBoxes = rBoxes.size();
1053 for (
size_t k = 0; k < nBoxes; ++k)
1070 for (
size_t k1 = 0; k1 < nOldLines -
n; ++k1)
1073 const size_t nBoxes = rBoxes.
size();
1074 for (
size_t k2 = 0; k2 < nBoxes; ++k2)
1114 pFormat->Add(
const_cast<SwTableLine*
>(&rTableLn));
1115 KillEmptyFrameFormat(*pOldFormat);
1125 KillEmptyFrameFormat(*pOldFormat);
1132 pPrev->m_pNext =
this;
1142SaveLine::~SaveLine()
1152 SaveBox* pBx = m_pBox;
1157 OSL_ENSURE(
false,
"Number of boxes changed" );
1160 pBx->RestoreAttr( *rLine.
GetTabBoxes()[ n ], rSTable );
1164void SaveLine::SaveContentAttrs(
SwDoc* pDoc )
1166 m_pBox->SaveContentAttrs(pDoc);
1168 m_pNext->SaveContentAttrs(pDoc);
1186 m_pBox->CreateNew(rTable, *pNew, rSTable);
1189 m_pNext->CreateNew(rTable, rParent, rSTable);
1197 m_Ptrs.pLine =
nullptr;
1200 pPrev->m_pNext =
this;
1222 delete m_Ptrs.pLine;
1224 delete m_Ptrs.pContentAttrs;
1236 OSL_ENSURE(
false,
"Number of lines changed" );
1240 SaveLine* pLn = m_Ptrs.pLine;
1245 OSL_ENSURE(
false,
"Number of lines changed" );
1249 pLn->RestoreAttr( *rBox.
GetTabLines()[ n ], rSTable );
1255 if (m_Ptrs.pContentAttrs)
1258 sal_uInt16 nSet = 0;
1265 std::shared_ptr<SfxItemSet> pSet((*m_Ptrs.pContentAttrs)[nSet++]);
1269 pCNd->
ResetAttr( rPair.first, rPair.second );
1280 OSL_ENSURE(
false,
"Box not anymore at the same node" );
1284void SaveBox::SaveContentAttrs(
SwDoc* pDoc )
1289 m_Ptrs.pLine->SaveContentAttrs(pDoc);
1300 std::shared_ptr<SfxItemSet> pSet;
1303 pSet = std::make_shared<SfxItemSet>( pDoc->
GetAttrPool(),
1308 m_Ptrs.pContentAttrs->push_back(pSet);
1313 m_pNext->SaveContentAttrs(pDoc);
1332 m_Ptrs.pLine->CreateNew(rTable, *pNew, rSTable);
1342 if( !pOld->HasWriterListeners() )
1348 pTBoxes->erase( std::find( pTBoxes->begin(), pTBoxes->end(), pBox ) );
1352 pTBoxes->push_back( pBox );
1357 m_pNext->CreateNew(rTable, rParent, rSTable);
1363 m_nStartNode( rTableNd.GetIndex() )
1377 OSL_ENSURE( pTableNd,
"no TableNode" );
1401 , m_TableStyleName(rTableNd.GetTable().GetTableStyleName())
1402 , m_nStartNode( rTableNd.GetIndex() )
1403 , m_bSaveContentAttr( false )
1404 , m_nRepeatHeading(rTableNd.GetTable().GetRowsToRepeat())
1423 m_Undos.push_back(std::make_shared<SwUndoTableNumFormat>(rBox));
1431 OSL_ENSURE( pTableNd,
"no TableNode" );
1436 OUString
const temp(table.GetTableStyleName());
1450 m_Undos.at(
n-1)->UndoImpl(rContext);
1474 sal_uInt16 nCnt,
bool bFlg,
bool bSmHght )
1475 :
SwUndo( nAction, &rTableNd.GetDoc() ),
1476 m_nMin( nMn ), m_nMax( nMx ),
1477 m_nSttNode( rTableNd.GetIndex() ),
1480 m_bSameHeight( bSmHght )
1494 for (
size_t n = 0;
n < rBoxes.
size(); ++
n)
1496 m_Boxes.insert( rBoxes[
n]->GetSttIdx() );
1511 OSL_ENSURE( !
IsDelBox(),
"wrong Action" );
1515 for (
size_t n = 0;
n < rOld.
size(); ++
i)
1517 if( rOld[
n ] == rTableBoxes[
i ] )
1524 for( ;
i < rTableBoxes.
size(); ++
i )
1538 sal_uInt16 nLineNo = rTableLines.
GetPos( pLine );
1539 pRet = rTableLines[nLineNo - 1];
1558 const std::vector<SwNodeOffset> &rNodeCnts )
1563 OSL_ENSURE( !
IsDelBox(),
"wrong Action" );
1567 "unexpected boxes" );
1568 OSL_ENSURE( rOld.
size() <= rTableBoxes.
size(),
"more unexpected boxes" );
1569 for (
size_t n = 0,
i = 0;
i < rTableBoxes.
size(); ++
i)
1571 if( (
n < rOld.
size() ) &&
1572 ( rOld[
n ] == rTableBoxes[
i ] ) )
1590 sal_uInt16 nLineNo = 0;
1591 for (
size_t j = 0; j < rBoxes.
size(); ++j)
1593 pCheckBox = rBoxes[j];
1598 GetPos( pCheckLine );
1599 if( ( !pSourceBox || nCheckLine > nLineNo ) && nCheckLine < nLineDiff )
1601 nLineNo = nCheckLine;
1602 pSourceBox = pCheckBox;
1609 nLineDiff = nLineDiff - nLineNo;
1610 OSL_ENSURE( pSourceBox,
"Split source box not found!" );
1614 while( rBoxes[ nNdsPos ] != pSourceBox )
1627 bool bNodesMoved = pSourceBox &&
1638 OSL_ENSURE(
IsDelBox(),
"wrong Action" );
1643 std::unique_ptr<SwUndoSaveSection, o3tl::default_delete<SwUndoSaveSection>> pSave(
new SwUndoSaveSection);
1656 OSL_ENSURE( pTableNd,
"no TableNode" );
1661 FndBox_ aTmpBox(
nullptr,
nullptr );
1666 std::vector< std::pair<SwTableBox *, SwNodeOffset> > aDelNodes;
1683 rLnBoxes.push_back( pBox );
1694 for (
size_t n = aTmp.size();
n > 0 ; )
1700 OSL_ENSURE( pBox,
"Where is my TableBox?" );
1710 if( aTmp[
n].hasMoved )
1722 while(
i && aTmp[ --
i ].
index > nSttIdx )
1723 aTmp[
i ].index += nNdCnt;
1732 aDelNodes.emplace_back(pBox, nIdx);
1739 std::set<BoxMove>::reverse_iterator it;
1744 OSL_ENSURE( pBox,
"Where's my table box?" );
1749 aDelNodes.emplace_back(pBox, nIdx);
1759 for (
const std::pair<SwTableBox *, SwNodeOffset> & rDelNode : aDelNodes)
1763 rDelNode.first->RemoveFromTable();
1768 for(
size_t n = 0;
n < aDelBoxes.
size(); ++
n )
1772 pTBoxes->erase( std::find( pTBoxes->begin(), pTBoxes->end(), pCurrBox ) );
1781 pFEShell->UpdateTableStyleFormatting(pTableNd);
1793 OSL_ENSURE( pTableNd,
"no TableNode" );
1797 for (
const auto& rBox :
m_Boxes)
1800 aSelBoxes.
insert( pBox );
1825 rTable.
DeleteSel( &rDoc, aSelBoxes,
nullptr,
this,
true,
true );
1840 OSL_ENSURE( pTableNd,
"Where is the TableNode?" );
1858 OSL_ENSURE( pTableNd,
"no TableNode" );
1875 for (
const auto& rBox :
m_Boxes)
1882 rLnBoxes.push_back( pBox );
1884 aSelBoxes.
insert( pBox );
1901 OSL_ENSURE( pBox,
"Where is my TableBox?" );
1911 sal_Int32 nDelPos = 0;
1929 pCNd->MoveTo( *pMove );
1955 pTBoxes->erase( std::find(pTBoxes->begin(), pTBoxes->end(), pBox ) );
2001 std::unique_ptr<SwUndoMove> pUndo(
new SwUndoMove( rDoc, rRg, rPos ));
2008 pUndo->SetDestRange( aTmp2.
GetNode(), rPos, aTmp );
2010 m_vMoves.push_back(std::move(pUndo));
2016 for (
size_t n = 0;
n < rBoxes.
size(); ++
n)
2018 m_Boxes.insert(rBoxes[
n]->GetSttIdx());
2026 if( !rBoxes.
empty() )
2027 m_nTableNode = rBoxes[ 0 ]->GetSttNd()->FindTableNode()->GetIndex();
2049 , m_nNewFormatIdx(0)
2052 , m_bNewFormat(false)
2053 , m_bNewFormula(false)
2054 , m_bNewValue(false)
2070 pTNd->
GetText().getLength(),
true );
2120 OSL_ENSURE(
m_pBoxSet,
"Where's the stored item set?" );
2125 OSL_ENSURE( pSttNd,
"without StartNode no TableBox" );
2128 OSL_ENSURE( pBox,
"found no TableBox" );
2163 sal_uInt16 nTmpEnd =
m_pHistory->GetTmpEnd();
2180class RedlineFlagsInternGuard
2186 RedlineFlagsInternGuard(
2191 ~RedlineFlagsInternGuard();
2196RedlineFlagsInternGuard::RedlineFlagsInternGuard(
2201 meOldRedlineFlags( rDoc.getIDocumentRedlineAccess().GetRedlineFlags() )
2203 mrDoc.getIDocumentRedlineAccess().SetRedlineFlags_intern( ( meOldRedlineFlags & ~eRedlineFlagsMask ) |
2204 ( eNewRedlineFlags & eRedlineFlagsMask ) );
2207RedlineFlagsInternGuard::~RedlineFlagsInternGuard()
2209 mrDoc.getIDocumentRedlineAccess().SetRedlineFlags_intern( meOldRedlineFlags );
2226 assert(pSttNd &&
"without StartNode no TableBox");
2229 OSL_ENSURE( pBox,
"found no TableBox" );
2238 pBoxFormat->LockModify();
2252 pBoxFormat->UnlockModify();
2269 pBoxFormat->LockModify();
2271 pBoxFormat->UnlockModify();
2306 : nBoxIdx( rBox.GetSttIdx() ), nOffset( 0 ),
2313 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"UndoTableCpyTable_Entry"));
2315 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"nBoxIdx"));
2316 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"value"),
2317 BAD_CAST(OString::number(sal_Int32(
nBoxIdx)).getStr()));
2318 (void)xmlTextWriterEndElement(pWriter);
2320 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"nOffset"));
2321 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"value"),
2322 BAD_CAST(OString::number(sal_Int32(
nOffset)).getStr()));
2323 (void)xmlTextWriterEndElement(pWriter);
2327 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"pBoxNumAttr"));
2329 (void)xmlTextWriterEndElement(pWriter);
2334 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"pUndo"));
2335 pUndo->dumpAsXml(pWriter);
2336 (void)xmlTextWriterEndElement(pWriter);
2339 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"bJoin"));
2340 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"value"),
2341 BAD_CAST(OString::boolean(
bJoin).getStr()));
2342 (void)xmlTextWriterEndElement(pWriter);
2344 (void)xmlTextWriterEndElement(pWriter);
2364 for (
size_t n =
m_vArr.size();
n; )
2376 "SwUndoTableCpyTable::UndoImpl: invalid start node index for table box");
2388 std::unique_ptr<SwUndoDelete> pUndo;
2392 bool bDeleteCompleteParagraph =
false;
2393 bool bShiftPam =
false;
2401 assert(pUndoDelete || pUndoRedlineDelete);
2402 if (pUndoRedlineDelete)
2405 bDeleteCompleteParagraph = !pEntry->
bJoin;
2408 pUndoRedlineDelete->
NodeDiff()-1 );
2425 bDeleteCompleteParagraph =
true;
2434 pEntry->
pUndo->UndoImpl(rContext);
2435 pEntry->
pUndo.reset();
2450 pEntry->
pUndo->UndoImpl(rContext);
2451 pEntry->
pUndo.reset();
2454 pEntry->
pUndo = std::move(pUndo);
2464 if( aTmpSet.Count() )
2477 if( aTmpSet.Count() )
2506 for (
size_t n = 0;
n <
m_vArr.size(); ++
n)
2526 pEntry->
pUndo->UndoImpl(rContext);
2538 pEntry->
bJoin,
true );
2546 pEntry->
pUndo.reset();
2548 pEntry->
pUndo = std::move(pUndo);
2558 if( aTmpSet.Count() )
2570 if( aTmpSet.Count() )
2585 if (!
m_vArr.empty() && !bDelContent)
2589 m_vArr.push_back(std::unique_ptr<UndoTableCpyTable_Entry>(pEntry));
2646 std::unique_ptr<SwUndo> pUndo;
2680 SwPosition aDeleteStart( rJoin ? aInsertEnd : rPos );
2691 if( aDeleteStart != aCellEnd )
2693 SwPaM aDeletePam( aDeleteStart, aCellEnd );
2694 pUndo = std::make_unique<SwUndoRedlineDelete>( aDeletePam,
SwUndoId::DELETE );
2700 SwPaM aTmpPam( aDeleteStart, aCellEnd );
2707 if( aCellStart != aInsertEnd )
2709 SwPaM aTmpPam( aCellStart, aInsertEnd );
2721 GetSttNd()->FindTableNode());
2724 0, 0, nCnt,
true,
false ) );
2739 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"SwUndoTableCpyTable"));
2741 for (
const auto& pEntry :
m_vArr)
2743 pEntry->dumpAsXml(pWriter);
2751 (void)xmlTextWriterEndElement(pWriter);
2801 m_nTableNode( rTableNd.GetIndex() ), m_nOffset( 0 ), mpSaveRowSpan(
std::move(pRowSp) ),
2802 m_nMode(
eMode ), m_nFormulaEnd( 0 ), m_bCalcNewSize( bNewSize )
2871 FndBox_ aTmpBox(
nullptr,
nullptr );
2874 rTable.
DeleteSel( pDoc, aSelBoxes,
nullptr,
nullptr,
false,
false );
2930 m_bWithPrev( bWithPrv )
2966 FndBox_ aFndBox(
nullptr,
nullptr );
3046 size_t nO = rArr.size();
3053 const size_t nM = nU + ( nO - nU ) / 2;
3054 if ( rArr[nM] == nIdx )
3056 OSL_FAIL(
"Index already exists. This should never happen." );
3059 if( rArr[nM] < nIdx )
3067 rArr.insert( rArr.begin() + nU, nIdx );
3070#if OSL_DEBUG_LEVEL > 0
3075 for (
size_t n = 0;
n < rSrtArr.
size(); ++
n)
3079 OSL_ENSURE( rNds[ pBox->
GetSttIdx() ] == pNd,
"Box with wrong StartNode" );
3119 m_pAutoFormat(
std::move(pAutoFormat)),
3120 m_rAffectedTables(
std::move(rAffectedTables))
std::vector< std::unique_ptr< SwUndoSaveSection, o3tl::default_delete< SwUndoSaveSection > > > SwUndoSaveSections
constexpr sal_uInt32 getSwDefaultTextFormat()
The number formatter's default locale's @ Text format.
void SetTableLines(const SwSelBoxes &rBoxes, const SwTable &rTable)
void MakeFrames(SwTable &rTable)
void DelFrames(SwTable &rTable)
virtual SwChartDataProvider * GetChartDataProvider(bool bCreate=false) const =0
returns or creates the data-provider for chart
virtual void DeleteSection(SwNode *pNode)=0
Delete section containing the node.
virtual bool MoveNodeRange(SwNodeRange &, SwNode &, SwMoveFlags)=0
virtual void UpdateTableFields(const SwTable *pTable)=0
virtual SwFieldType * InsertFieldType(const SwFieldType &)=0
virtual const SwRootFrame * GetCurrentLayout() const =0
virtual bool IsRedlineOn() const =0
Query if redlining is on.
virtual bool DeleteRedline(const SwPaM &rPam, bool bSaveInUndo, RedlineType nDelType)=0
static bool IsRedlineOn(const RedlineFlags eM)
virtual std::size_t GetRedlineAuthor()=0
virtual bool SplitRedline(const SwPaM &rPam)=0
virtual void SetRedlineFlags_intern(RedlineFlags eMode)=0
Set a new redline mode.
virtual const SwRedlineTable & GetRedlineTable() const =0
virtual AppendResult AppendRedline(SwRangeRedline *pNewRedl, bool bCallDelete)=0
Append a new redline.
virtual RedlineFlags GetRedlineFlags() const =0
Query the currently set redline mode.
virtual SwTextFormatColl * GetTextCollFromPool(sal_uInt16 nId, bool bRegardLanguage=true)=0
Return "Auto-Collection with ID.
SwFrameFormat & CreateNewFormat(SwFrameFormat &rFormat, sal_uInt16 nFormatPos)
void CreateNew(SwTable &rTable, bool bCreateFrames=true, bool bRestoreChart=true)
SwFrameFormatsV m_aFrameFormats
SaveTable(const SaveTable &)=delete
SaveTable & operator=(const SaveTable &)=delete
void RestoreAttr(SwTable &rTable, bool bModifyBox=false)
std::unique_ptr< SaveLine > m_pLine
void NewFrameFormatForBox(const SwTableBox &, sal_uInt16 nFormatPos, SwFrameFormat *pOldFormat)
void SaveContentAttrs(SwDoc *pDoc)
void NewFrameFormatForLine(const SwTableLine &, sal_uInt16 nFormatPos, SwFrameFormat *pOldFormat)
sal_uInt16 AddFormat(SwFrameFormat *pFormat, bool bIsLine)
const SwTable * m_pSwTable
const T * GetItemIfSet(TypedWhichId< T > nWhich, bool bSrchInParent=true) const
sal_uInt16 ClearItem(sal_uInt16 nWhich=0)
const SfxPoolItem * Put(const SfxPoolItem &rItem, sal_uInt16 nWhich)
SwAttrPool * GetPool() const
void DeleteBox(const SwTable *pTable, const SwTableBox &rBox)
Marks a character position inside a document model content node (SwContentNode)
SwContentIndex & Assign(const SwContentNode *, sal_Int32)
SwFormatColl * GetFormatColl() const
bool HasSwAttrSet() const
bool CanJoinNext(SwNodeIndex *pIdx=nullptr) const
Is it possible to join two nodes? In pIdx the second position can be returned.
virtual SwContentNode * JoinNext()
virtual bool SetAttr(const SfxPoolItem &)
made virtual
virtual sal_Int32 Len() const
const SwAttrSet * GetpSwAttrSet() const
virtual bool ResetAttr(sal_uInt16 nWhich1, sal_uInt16 nWhich2=0)
virtual sal_uInt16 ResetAllAttr()
bool MoveTable(SwWhichTable, SwMoveFnCollection const &)
SwFEShell * GetFEShell()
For Core - it knows the DocShell but not the WrtShell!
const SwTable * TextToTable(const SwInsertTableOptions &rInsTableOpts, const SwPaM &rRange, sal_Unicode cCh, sal_Int16 eAdjust, const SwTableAutoFormat *)
Text to Table.
SwTableBoxFormat * MakeTableBoxFormat()
void ChgTableStyle(const OUString &rName, const SwTableAutoFormat &rNewFormat)
void InsertCol(const SwCursor &rCursor, sal_uInt16 nCnt=1, bool bBehind=true)
Inserting Columns/Rows.
void UpdateCharts(const OUString &rName) const
IDocumentChartDataProviderAccess const & getIDocumentChartDataProviderAccess() const
TableMergeErr MergeTable(SwPaM &rPam)
void CorrAbs(const SwNode &rOldNode, const SwPosition &rNewPos, const sal_Int32 nOffset=0, bool bMoveCursor=false)
SwTableLineFormat * MakeTableLineFormat()
SwTableFormat * MakeTableFrameFormat(const OUString &rFormatName, SwFrameFormat *pDerivedFrom)
void ChkBoxNumFormat(SwTableBox &rCurrentBox, bool bCallUpdate)
IDocumentContentOperations const & getIDocumentContentOperations() const
IDocumentUndoRedo & GetIDocumentUndoRedo()
IDocumentFieldsAccess const & getIDocumentFieldsAccess() const
IDocumentRedlineAccess const & getIDocumentRedlineAccess() const
void DelNumRules(const SwPaM &, SwRootFrame const *pLayout=nullptr)
SwEditShell const * GetEditShell() const
bool TableToText(const SwTableNode *pTableNd, sal_Unicode cCh)
Table to Text.
IDocumentLayoutAccess const & getIDocumentLayoutAccess() const
void InsertRow(const SwCursor &rCursor, sal_uInt16 nCnt=1, bool bBehind=true)
std::unique_ptr< SwTableAutoFormat > DelTableStyle(const OUString &rName, bool bBroadcast=false)
IDocumentStylePoolAccess const & getIDocumentStylePoolAccess() const
const SwTextFormatColl * GetDfltTextFormatColl() const
bool SplitTable(const SwSelBoxes &rBoxes, bool bVert, sal_uInt16 nCnt, bool bSameHeight=false)
Split up/merge Boxes in the Table.
bool IsInsTableFormatNum() const
const SwAttrPool & GetAttrPool() const
const SwTable * InsertTable(const SwInsertTableOptions &rInsTableOpts, const SwPosition &rPos, sal_uInt16 nRows, sal_uInt16 nCols, sal_Int16 eAdjust, const SwTableAutoFormat *pTAFormat=nullptr, const std::vector< sal_uInt16 > *pColArr=nullptr, bool bCalledFromShell=false, bool bNewModel=true, const OUString &rTableName={})
Insert new table at position.
const SwFrameFormat * GetDfltFrameFormat() const
void SetRowsToRepeat(SwTable &rTable, sal_uInt16 nSet)
const sw::FrameFormats< sw::SpzFrameFormat * > * GetSpzFrameFormats() const
SwDocShell * GetDocShell()
SwTableAutoFormat * MakeTableStyle(const OUString &rName, bool bBroadcast=false)
Ends a section of nodes in the document model.
Pagedescriptor Client of SwPageDesc that is "described" by the attribute.
sal_uInt16 SetTmpEnd(sal_uInt16 nTmpEnd)
bool TmpRollback(SwDoc *pDoc, sal_uInt16 nStart, bool ToFirst=true)
bool Rollback(SwDoc *pDoc, sal_uInt16 nStart=0)
void RestoreUpperFrames(SwNodes &rNds, SwNodeOffset nStt, SwNodeOffset nEnd)
Marks a node in the document model.
const SwNodes & GetNodes() const
SwNodeOffset GetIndex() const
Base class of the Writer document model elements.
SwTextNode * GetTextNode()
Inline methods from Node.hxx.
SwNodeOffset GetIndex() const
SwStartNode * m_pStartOfSection
bool IsContentNode() const
SwNodeOffset StartOfSectionIndex() const
SwTableNode * FindTableNode()
Search table node, in which it is.
SwStartNode * FindSttNodeByType(SwStartNodeType eTyp)
const SwStartNode * StartOfSectionNode() const
SwNodeOffset EndOfSectionIndex() const
SwContentNode * GetContentNode()
SwTableNode * GetTableNode()
SwNodeType GetNodeType() const
const SwEndNode * EndOfSectionNode() const
SwTextNode * MakeTextNode(SwNode &rWhere, SwTextFormatColl *pColl, bool bNewFrames=true)
Implementations of "Make...Node" are in the given .cxx-files.
SwNode & GetEndOfContent() const
Regular ContentSection (i.e. the BodyText).
bool MoveNodes(const SwNodeRange &, SwNodes &rNodes, SwNode &rPos, bool bNewFrames=true)
move the node pointer
void Delete(const SwNodeIndex &rPos, SwNodeOffset nNodes=SwNodeOffset(1))
static SwContentNode * GoPrevious(SwNodeIndex *)
SwStartNode * MakeTextSection(const SwNode &rWhere, SwStartNodeType eSttNdTyp, SwTextFormatColl *pColl)
SwTableNode * SplitTable(SwNode &rPos, bool bAfter=true, bool bCalcNewSize=false)
Splits a table at the base-line which contains the index.
SwContentNode * GoNext(SwNodeIndex *) const
SwTableNode * UndoTableToText(SwNodeOffset nStt, SwNodeOffset nEnd, const SwTableToTextSaves &rSavedData)
Is in untbl.cxx and may called only by Undo-object.
bool MergeTable(SwNode &rPos, bool bWithPrev=true)
Two Tables that are following one another are merged.
SwDoc & GetDoc()
Which Doc contains the nodes-array?
PaM is Point and Mark: a selection of the document model.
SwNode & GetPointNode() const
virtual void SetMark()
Unless this is called, the getter method of Mark will return Point.
bool Move(SwMoveFnCollection const &fnMove=fnMoveForward, SwGoInDoc fnGo=GoInContent)
Movement of cursor.
const SwPosition * End() const
const SwPosition * GetPoint() const
void AddRule(SwUndoArg eWhat, const OUString &rWith)
bool IsHideRedlines() const
Replacement for sw::DocumentRedlineManager::GetRedlineFlags() (this is layout-level redline hiding).
Starts a section of nodes in the document model.
SwTabFrame is one table in the document layout, containing rows (which contain cells).
SwTableBox is one table cell in the document model.
void SetUpper(SwTableLine *pNew)
SwNodeOffset IsValidNumTextNd(bool bCheckAttr=true) const
sal_Int32 getRowSpan() const
SwNodeOffset GetSttIdx() const
void setRowSpan(sal_Int32 nNewRowSpan)
SwFrameFormat * GetFrameFormat()
SwTableLines & GetTabLines()
const SwStartNode * GetSttNd() const
void RegisterToFormat(SwFormat &rFormat)
void ChgFrameFormat(SwTableBoxFormat *pNewFormat, bool bNeedToReregister=true)
SwFrameFormat * ClaimFrameFormat()
SwTableLine is one table row in the document model.
SwFrameFormat * GetFrameFormat()
SwTableBoxes & GetTabBoxes()
void SetUpper(SwTableBox *pNew)
std::vector< SwTableLine * >::const_iterator const_iterator
iterator erase(iterator aIt)
void push_back(SwTableLine *pLine)
iterator insert(iterator aIt, SwTableLine *pLine)
sal_uInt16 GetPos(const SwTableLine *pBox) const
void SetNewTable(std::unique_ptr< SwTable >, bool bNewFrames=true)
const SwTable & GetTable() const
void MakeOwnFrames(SwPosition *pIdxBehind=nullptr)
Creates the frms for the table node (i.e.
void DelFrames(SwRootFrame const *pLayout=nullptr)
Method deletes all views of document for the node.
SwTable is one table in the document model, containing rows (which contain cells).
SwTableNode * GetTableNode() const
void SetTableModel(bool bNew)
void SetRowsToRepeat(sal_uInt16 nNumOfRows)
SwTableLines & GetTabLines()
SwTableFormat * GetFrameFormat()
bool DeleteSel(SwDoc *, const SwSelBoxes &rBoxes, const SwSelBoxes *pMerged, SwUndo *pUndo, const bool bDelMakeFrames, const bool bCorrBorder)
void RegisterToFormat(SwFormat &rFormat)
void SwitchFormulasToInternalRepresentation()
bool InsertRow(SwDoc *, const SwSelBoxes &rBoxes, sal_uInt16 nCnt, bool bBehind)
SwTable::InsertRow(..) inserts one or more rows before or behind the selected boxes.
const SwTableBox * GetTableBox(const OUString &rName, const bool bPerformValidCheck=false) const
SwTableSortBoxes & GetTabSortBoxes()
void RestoreRowSpan(const SwSaveRowSpan &)
void PrepareDeleteCol(tools::Long nMin, tools::Long nMax)
SwTable::PrepareDeleteCol(..) adjusts the widths of the neighbour cells of a cell selection for an up...
static SwSelBoxes & SelLineFromBox(const SwTableBox *pBox, SwSelBoxes &rBoxes, bool bToTop=true)
Represents the style of a paragraph.
SwTextNode is a paragraph in the document model.
void RstTextAttr(const sal_Int32 nContentStart, const sal_Int32 nLen, const sal_uInt16 nWhich=0, const SfxItemSet *pSet=nullptr, const bool bInclRefToxMark=false, const bool bExactRange=false)
delete all attributes.
virtual SwContentNode * JoinNext() override
void ClearSwpHintsArr(bool bDelFields)
void EraseText(const SwContentIndex &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...
OUString InsertText(const OUString &rStr, const SwContentIndex &rIdx, const SwInsertFlags nMode=SwInsertFlags::DEFAULT)
insert text content
SwTextNode * SplitContentNode(const SwPosition &, std::function< void(SwTextNode *, sw::mark::RestoreMode, bool AtStart)> const *pContentIndexRestore)
SwpHints * GetpSwpHints()
const OUString & GetText() const
SwTextFormatColl * GetTextColl() const
virtual sal_uInt16 ResetAllAttr() override
SwPaM & AddUndoRedoPaM(::sw::UndoRedoContext &, bool const bCorrToContent=false) const
void SetPaM(SwPaM &, bool bCorrToContent=false) const
SwNodeOffset m_nStartNode
virtual void RedoImpl(::sw::UndoRedoContext &) override
SwUndoAttrTable(const SwTableNode &rTableNd, bool bClearTabCols=false)
std::unique_ptr< SaveTable > m_pSaveTable
virtual ~SwUndoAttrTable() override
virtual void UndoImpl(::sw::UndoRedoContext &) override
SwNodeOffset m_nTableNode
virtual void UndoImpl(::sw::UndoRedoContext &) override
virtual ~SwUndoCpyTable() override
SwUndoCpyTable(const SwDoc &rDoc)
virtual void RedoImpl(::sw::UndoRedoContext &) override
std::unique_ptr< SwUndoDelete > m_pDelete
bool IsDelFullPara() const
std::optional< std::vector< sal_uInt16 > > m_oColumnWidth
virtual ~SwUndoInsTable() override
SwNodeOffset m_nStartNode
SwUndoInsTable(const SwPosition &, sal_uInt16 nCols, sal_uInt16 nRows, sal_uInt16 eAdjust, const SwInsertTableOptions &rInsTableOpts, const SwTableAutoFormat *pTAFormat, const std::vector< sal_uInt16 > *pColArr, const OUString &rName)
virtual SwRewriter GetRewriter() const override
Returns the rewriter for this object.
std::unique_ptr< SwTableAutoFormat > m_pAutoFormat
virtual void RedoImpl(::sw::UndoRedoContext &) override
virtual void UndoImpl(::sw::UndoRedoContext &) override
std::unique_ptr< SwRedlineData > m_pRedlineData
virtual void RepeatImpl(::sw::RepeatContext &) override
sal_uInt16 const m_nAdjust
std::unique_ptr< SwDDEFieldType > m_pDDEFieldType
SwInsertTableOptions m_aInsTableOptions
SwNodeOffset m_nTableNode
std::unique_ptr< SaveTable > m_pSaveHdl
SwUndoMergeTable(const SwTableNode &rTableNd, const SwTableNode &rDelTableNd, bool bWithPrev)
void SaveFormula(SwHistory &rHistory)
virtual void RepeatImpl(::sw::RepeatContext &) override
virtual void UndoImpl(::sw::UndoRedoContext &) override
virtual ~SwUndoMergeTable() override
std::unique_ptr< SaveTable > m_pSaveTable
std::unique_ptr< SwHistory > m_pHistory
virtual void RedoImpl(::sw::UndoRedoContext &) override
sal_Int32 GetDestSttContent() const
SwNodeOffset GetDestSttNode() const
SwNodeOffset GetEndNode() const
virtual void UndoImpl(::sw::UndoRedoContext &) override
SwNodeOffset NodeDiff() const
sal_Int32 ContentStart() const
const SwHistory * GetHistory() const
void RestoreSection(SwDoc *pDoc, SwNodeIndex *pIdx, sal_uInt16 nSectType)
std::unique_ptr< SwSaveRowSpan > mpSaveRowSpan
std::unique_ptr< SwHistory > m_pHistory
SplitTable_HeadlineOption const m_nMode
void SaveFormula(SwHistory &rHistory)
virtual void UndoImpl(::sw::UndoRedoContext &) override
virtual ~SwUndoSplitTable() override
virtual void RepeatImpl(::sw::RepeatContext &) override
virtual void RedoImpl(::sw::UndoRedoContext &) override
std::unique_ptr< SaveTable > m_pSavedTable
SwNodeOffset m_nTableNode
SwUndoSplitTable(const SwTableNode &rTableNd, std::unique_ptr< SwSaveRowSpan > pRowSp, SplitTable_HeadlineOption nMode, bool bCalcNewSize)
std::vector< std::unique_ptr< UndoTableCpyTable_Entry > > m_vArr
virtual void RedoImpl(::sw::UndoRedoContext &) override
void AddBoxAfter(const SwTableBox &rBox, const SwNodeIndex &rIdx, bool bDelContent)
static std::unique_ptr< SwUndo > PrepareRedline(SwDoc *pDoc, const SwTableBox &rBox, SwPosition &rPos, bool &rJoin, bool bRedo)
virtual ~SwUndoTableCpyTable() override
SwUndoTableCpyTable(const SwDoc &rDoc)
virtual void UndoImpl(::sw::UndoRedoContext &) override
std::unique_ptr< SwUndoTableNdsChg > m_pInsRowUndo
bool InsertRow(SwTable &rTable, const SwSelBoxes &rBoxes, sal_uInt16 nCnt)
void dumpAsXml(xmlTextWriterPtr pWriter) const override
void AddBoxBefore(const SwTableBox &rBox, bool bDelContent)
SwUndoTableHeadline(const SwTable &, sal_uInt16 nOldHdl, sal_uInt16 nNewHdl)
virtual void RedoImpl(::sw::UndoRedoContext &) override
SwNodeOffset m_nTableNode
virtual void RepeatImpl(::sw::RepeatContext &) override
virtual void UndoImpl(::sw::UndoRedoContext &) override
sal_uInt16 m_nOldHeadline
sal_uInt16 m_nNewHeadline
virtual ~SwUndoTableMerge() override
std::unique_ptr< SaveTable > m_pSaveTable
virtual void RedoImpl(::sw::UndoRedoContext &) override
std::set< SwNodeOffset > m_Boxes
void SetSelBoxes(const SwSelBoxes &rBoxes)
std::vector< SwNodeOffset > m_aNewStartNodes
SwNodeOffset m_nTableNode
void MoveBoxContent(SwDoc &rDoc, SwNodeRange &rRg, SwNode &rPos)
SwUndoTableMerge(const SwPaM &rTableSel)
std::vector< std::unique_ptr< SwUndoMove > > m_vMoves
void SaveCollection(const SwTableBox &rBox)
virtual void UndoImpl(::sw::UndoRedoContext &) override
std::unique_ptr< SwHistory > m_pHistory
std::optional< std::set< BoxMove > > m_xNewSttNds
void ReNewBoxes(const SwSelBoxes &rBoxes)
virtual ~SwUndoTableNdsChg() override
std::unique_ptr< SwUndoSaveSections > m_pDelSects
std::set< SwNodeOffset > m_Boxes
virtual void RedoImpl(::sw::UndoRedoContext &) override
void SaveSection(SwStartNode *pSttNd)
virtual void UndoImpl(::sw::UndoRedoContext &) override
SwUndoTableNdsChg(SwUndoTableNdsChg const &)=delete
std::unique_ptr< SaveTable > m_pSaveTable
void SaveNewBoxes(const SwTableNode &rTableNd, const SwTableSortBoxes &rOld)
virtual void UndoImpl(::sw::UndoRedoContext &) override
std::unique_ptr< SwTableAutoFormat > m_pAutoFormat
virtual ~SwUndoTableStyleDelete() override
std::vector< SwTable * > m_rAffectedTables
SwUndoTableStyleDelete(std::unique_ptr< SwTableAutoFormat > pAutoFormat, std::vector< SwTable * > &&rAffectedTables, const SwDoc &rDoc)
virtual void RedoImpl(::sw::UndoRedoContext &) override
virtual SwRewriter GetRewriter() const override
Returns the rewriter for this object.
virtual SwRewriter GetRewriter() const override
Returns the rewriter for this object.
SwUndoTableStyleMake(OUString aName, const SwDoc &rDoc)
virtual void RedoImpl(::sw::UndoRedoContext &) override
virtual void UndoImpl(::sw::UndoRedoContext &) override
virtual ~SwUndoTableStyleMake() override
std::unique_ptr< SwTableAutoFormat > m_pAutoFormat
virtual void RedoImpl(::sw::UndoRedoContext &) override
SwUndoTableStyleUpdate(const SwTableAutoFormat &rNewFormat, const SwTableAutoFormat &rOldFormat, const SwDoc &rDoc)
std::unique_ptr< SwTableAutoFormat > m_pNewFormat
std::unique_ptr< SwTableAutoFormat > m_pOldFormat
virtual void UndoImpl(::sw::UndoRedoContext &) override
virtual SwRewriter GetRewriter() const override
Returns the rewriter for this object.
virtual ~SwUndoTableStyleUpdate() override
std::unique_ptr< SwHistory > m_pHistory
virtual void RepeatImpl(::sw::RepeatContext &) override
std::unique_ptr< SwDDEFieldType > m_pDDEFieldType
void AddBoxPos(SwDoc &rDoc, SwNodeOffset nNdIdx, SwNodeOffset nEndIdx, sal_Int32 nContentIdx=SAL_MAX_INT32)
virtual ~SwUndoTableToText() override
SwNodeOffset m_nStartNode
std::unique_ptr< SaveTable > m_pTableSave
SwTableToTextSaves m_vBoxSaves
SwUndoTableToText(const SwTable &rTable, sal_Unicode cCh)
void SetRange(const SwNodeRange &)
virtual void UndoImpl(::sw::UndoRedoContext &) override
sal_uInt16 m_nHeadlineRepeat
virtual void RedoImpl(::sw::UndoRedoContext &) override
void AddFillBox(const SwTableBox &rBox)
virtual void UndoImpl(::sw::UndoRedoContext &) override
std::vector< SwNodeOffset > mvDelBoxes
SwUndoTextToTable(const SwPaM &, const SwInsertTableOptions &, sal_Unicode, sal_uInt16, const SwTableAutoFormat *pAFormat)
std::unique_ptr< SwTableAutoFormat > m_pAutoFormat
virtual void RepeatImpl(::sw::RepeatContext &) override
SwInsertTableOptions m_aInsertTableOpts
virtual ~SwUndoTextToTable() override
virtual void RedoImpl(::sw::UndoRedoContext &) override
void SetRedlineFlags(RedlineFlags eMode)
RedlineFlags GetRedlineFlags() const
static void RemoveIdxRel(SwNodeOffset, const SwPosition &)
static void RemoveIdxFromRange(SwPaM &rPam, bool bMoveNext)
static void RemoveIdxFromSection(SwDoc &, SwNodeOffset nSttIdx, const SwNodeOffset *pEndIdx=nullptr)
iterator insert(iterator aIt, Value const &rVal)
void push_back(Value const &rVal)
void DeRegister()
deregister the currently registered History
std::pair< const_iterator, bool > insert(Value &&x)
void InvalidateInSwCache(const sal_uInt16)
virtual SwCursor & GetCurrentShellCursor()=0
virtual SwCursor & CreateNewShellCursor()=0
IShellCursorSupplier & GetCursorSupplier()
static std::shared_ptr< ContentIdxStore > Create()
struct _xmlTextWriter * xmlTextWriterPtr
virtual OUString GetName() const override
void PaMCorrAbs(const SwPaM &rRange, const SwPosition &rNewPos)
Function declarations so that everything below the CursorShell can move the Cursor once in a while.
void ClearFEShellTabCols(SwDoc &rDoc, SwTabFrame const *const pFrame)
constexpr TypedWhichId< SvxCrossedOutItem > RES_CHRATR_CROSSEDOUT(5)
constexpr TypedWhichId< SvxFontHeightItem > RES_CHRATR_FONTSIZE(8)
constexpr TypedWhichId< SwTableBoxValue > RES_BOXATR_VALUE(158)
constexpr TypedWhichId< SvxWeightItem > RES_CHRATR_WEIGHT(15)
constexpr TypedWhichId< SvxShadowedItem > RES_CHRATR_SHADOWED(13)
constexpr TypedWhichId< SwFormatVertOrient > RES_VERT_ORIENT(108)
constexpr TypedWhichId< SwFormatPageDesc > RES_PAGEDESC(99)
constexpr TypedWhichId< SvxAdjustItem > RES_PARATR_ADJUST(64)
constexpr TypedWhichId< SwTableBoxFormula > RES_BOXATR_FORMULA(157)
constexpr TypedWhichId< SwAttrSetChg > RES_ATTRSET_CHG(169)
constexpr TypedWhichId< SvxPostureItem > RES_CHRATR_POSTURE(11)
constexpr TypedWhichId< SwTableBoxNumFormat > RES_BOXATR_FORMAT(RES_BOXATR_BEGIN)
constexpr TypedWhichId< SvxFormatBreakItem > RES_BREAK(100)
constexpr TypedWhichId< SvxFontItem > RES_CHRATR_FONT(7)
constexpr TypedWhichId< SvxColorItem > RES_CHRATR_COLOR(3)
const SfxPoolItem * GetDfltAttr(sal_uInt16 nWhich)
Get the default attribute from corresponding default attribute table.
WhichRangesContainer const aTableSetRange(svl::Items< RES_FILL_ORDER, RES_FRM_SIZE, RES_LR_SPACE, RES_BREAK, RES_HORI_ORIENT, RES_HORI_ORIENT, RES_BACKGROUND, RES_SHADOW, RES_KEEP, RES_KEEP, RES_LAYOUT_SPLIT, RES_LAYOUT_SPLIT, RES_FRAMEDIR, RES_FRAMEDIR, RES_COLLAPSING_BORDERS, RES_COLLAPSING_BORDERS, RES_FRMATR_GRABBAG, RES_FRMATR_GRABBAG, RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1 >)
WhichRangesContainer const aTableLineSetRange(svl::Items< RES_FILL_ORDER, RES_FRM_SIZE, RES_LR_SPACE, RES_UL_SPACE, RES_PRINT, RES_PRINT, RES_PROTECT, RES_PROTECT, RES_VERT_ORIENT, RES_VERT_ORIENT, RES_BACKGROUND, RES_SHADOW, RES_ROW_SPLIT, RES_ROW_SPLIT, RES_FRMATR_GRABBAG, RES_FRMATR_GRABBAG, RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1 >)
WhichRangesContainer const aTableBoxSetRange(svl::Items< RES_FILL_ORDER, RES_FRM_SIZE, RES_LR_SPACE, RES_UL_SPACE, RES_PRINT, RES_PRINT, RES_PROTECT, RES_PROTECT, RES_VERT_ORIENT, RES_VERT_ORIENT, RES_BACKGROUND, RES_SHADOW, RES_FRAMEDIR, RES_FRAMEDIR, RES_FRMATR_GRABBAG, RES_FRMATR_GRABBAG, RES_BOXATR_BEGIN, RES_BOXATR_END-1, RES_UNKNOWNATR_BEGIN, RES_UNKNOWNATR_END-1 >)
#define SAL_WARN(area, stream)
static constexpr auto Items
void NotifyTableCollapsedParagraph(const SwContentNode *const pNode, SwCursorShell *const pShell)
An empty paragraph inside a table with a nested table preceding it should be hidden,...
std::vector< std::unique_ptr< SwTableToTextSave > > SwTableToTextSaves
o3tl::strong_int< sal_Int32, struct Tag_SwNodeOffset > SwNodeOffset
constexpr SwNodeOffset NODE_OFFSET_MAX(SAL_MAX_INT32)
bool GoInContent(SwPaM &rPam, SwMoveFnCollection const &fnMove)
SwMoveFnCollection const & fnTableStart
SwMoveFnCollection const & fnMoveBackward
SwMoveFnCollection const & fnMoveForward
SwPam::Move()/Find() default argument.
@ RES_POOLCOLL_STANDARD
Standard.
Marks a position in the document model.
void Adjust(SwNodeOffset nDelta)
Adjust node position, and resets content position to zero.
void Assign(const SwNode &rNd, SwNodeOffset nDelta, sal_Int32 nContentOffset=0)
These all set both nNode and nContent.
void SetContent(sal_Int32 nContentIndex)
Set content index, only valid to call this if the position points to a SwContentNode subclass.
SwNodeOffset GetNodeIndex() const
sal_Int32 GetContentIndex() const
std::unique_ptr< SwHistory > m_pHstry
std::shared_ptr< ::sfx2::MetadatableUndo > m_pMetadataUndoEnd
std::shared_ptr< ::sfx2::MetadatableUndo > m_pMetadataUndoStart
SwTableToTextSave & operator=(const SwTableToTextSave &)=delete
SwTableToTextSave(SwDoc &rDoc, SwNodeOffset nNd, SwNodeOffset nEndIdx, sal_Int32 nContent)
SwTableToTextSave(const SwTableToTextSave &)=delete
UndoTableCpyTable_Entry(const SwTableBox &rBox)
std::unique_ptr< SwUndo > pUndo
std::unique_ptr< SfxItemSet > pBoxNumAttr
void dumpAsXml(xmlTextWriterPtr pWriter) const
OUString SwResId(TranslateId aId)
std::vector< SwTableBox * > SwTableBoxes
SplitTable_HeadlineOption
void DeleteBox_(SwTable &rTable, SwTableBox *pBox, SwUndo *pUndo, bool bCalcNewSize, const bool bCorrBorder, SwShareBoxFormats *pShareFormats)
bool GotoPrevTable(SwPaM &rCurrentCursor, SwMoveFnCollection const &fnPosTable, bool bInReadOnly)
static void CheckTable(const SwTable &)
static SwTableLine * lcl_FindTableLine(const SwTable &rTable, const SwTableBox &rBox)
WhichRangesContainer const aSave_BoxContentSet(svl::Items< RES_CHRATR_COLOR, RES_CHRATR_CROSSEDOUT, RES_CHRATR_FONT, RES_CHRATR_FONTSIZE, RES_CHRATR_POSTURE, RES_CHRATR_POSTURE, RES_CHRATR_SHADOWED, RES_CHRATR_WEIGHT, RES_PARATR_ADJUST, RES_PARATR_ADJUST >)
#define DEBUG_REDLINE(pDoc)
void InsertSort(std::vector< sal_uInt16 > &rArr, sal_uInt16 nIdx)
std::vector< std::shared_ptr< SfxItemSet > > SfxItemSets
static const SwTableLines & lcl_FindParentLines(const SwTable &rTable, const SwTableBox &rBox)
std::pair< sal_uInt16, sal_uInt16 > WhichPair