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) )
438 for(
size_t n = 0;
n < rFrameFormatTable.
size(); ++
n )
444 ((RndStdIds::FLY_AT_CHAR == pAnchor->
GetAnchorId()) ||
445 (RndStdIds::FLY_AT_PARA == pAnchor->
GetAnchorId())) &&
446 nTableStt <= pAnchorNode->GetIndex() &&
447 pAnchorNode->
GetIndex() < nTableEnd )
498 std::unique_ptr<SwDDETable> pDDETable(
new SwDDETable( pTableNd->
GetTable(), pNewType ) );
499 pTableNd->
SetNewTable( std::move(pDDETable),
false );
506 for (
size_t nBoxes = rBxs.
size(); nBoxes; )
551 for(
n = pTableNd->
GetIndex() + 1;
n < nTmpEnd; ++
n )
553 if( ( pNd = (*
this)[
n ] )->IsContentNode() )
567 for(
size_t n = rSavedData.size();
n; )
578 OSL_ENSURE( pTextNd,
"Where is my TextNode?" );
586 if (!pContentStore->Empty())
588 pContentStore->Restore(*pNewNode, pSave->m_nContent, pSave->m_nContent + 1, eMode);
596 pContentStore->Clear();
616 sal_uInt16 nTmpEnd = pSave->
m_pHstry->GetTmpEnd();
618 pSave->
m_pHstry->SetTmpEnd( nTmpEnd );
664 OSL_ENSURE( pTableNd,
"Could not find any TableNode" );
673 if( !pCNd &&
nullptr == ( pCNd = rDoc.
GetNodes().
GoNext( &aSaveIdx ) ) &&
676 OSL_FAIL(
"Where is the TextNode now?" );
709 m_vBoxSaves.push_back(std::make_unique<SwTableToTextSave>(rDoc, nNdIdx, nEndIdx, nContentIdx));
717 m_pHistory( nullptr ), m_cSeparator( cCh ), m_nAdjust( nAdj )
743 OSL_ENSURE( pTNd,
"Could not find a TableNode" );
765 OSL_ENSURE(
false,
"Where is my box?" );
844 m_nOldHeadline( nOldHdl ),
845 m_nNewHeadline( nNewHdl )
849 OSL_ENSURE( pSttNd,
"Box without content" );
858 OSL_ENSURE( pTNd,
"could not find any TableNode" );
868 OSL_ENSURE( pTNd,
"could not find any TableNode" );
884 : m_aTableSet(*rTable.GetFrameFormat()->GetAttrSet().GetPool(),
aTableSetRange),
885 m_pSwTable(&rTable), m_nLineCount(nLnCnt), m_bSaveFormula(bSaveFormula)
893 if( USHRT_MAX == nLnCnt )
895 for( sal_uInt16
n = 1;
n < nLnCnt; ++
n )
905 if( SIZE_MAX == nRet )
931 return o3tl::narrowing<sal_uInt16>(nRet);
938 FndBox_ aTmpBox(
nullptr,
nullptr );
953 bool bHiddenTable =
true;
959 if( pLast->GetTable() == &rTable )
961 pLast->InvalidateAll();
962 pLast->SetCompletePaint();
963 bHiddenTable =
false;
977 for (
size_t n = 0;
n < nLnCnt; ++
n, pLn = pLn->m_pNext)
981 OSL_ENSURE(
false,
"Number of lines changed" );
1008 m_pLine->SaveContentAttrs(pDoc);
1012 bool bRestoreChart )
1014 FndBox_ aTmpBox(
nullptr,
nullptr );
1034 m_pLine->CreateNew(rTable, aParent, *
this);
1055 const size_t nBoxes = rBoxes.size();
1056 for (
size_t k = 0; k < nBoxes; ++k)
1073 for (
size_t k1 = 0; k1 < nOldLines -
n; ++k1)
1076 const size_t nBoxes = rBoxes.
size();
1077 for (
size_t k2 = 0; k2 < nBoxes; ++k2)
1117 pFormat->Add(
const_cast<SwTableLine*
>(&rTableLn));
1118 KillEmptyFrameFormat(*pOldFormat);
1128 KillEmptyFrameFormat(*pOldFormat);
1135 pPrev->m_pNext =
this;
1145SaveLine::~SaveLine()
1155 SaveBox* pBx = m_pBox;
1160 OSL_ENSURE(
false,
"Number of boxes changed" );
1163 pBx->RestoreAttr( *rLine.
GetTabBoxes()[ n ], rSTable );
1167void SaveLine::SaveContentAttrs(
SwDoc* pDoc )
1169 m_pBox->SaveContentAttrs(pDoc);
1171 m_pNext->SaveContentAttrs(pDoc);
1189 m_pBox->CreateNew(rTable, *pNew, rSTable);
1192 m_pNext->CreateNew(rTable, rParent, rSTable);
1200 m_Ptrs.pLine =
nullptr;
1203 pPrev->m_pNext =
this;
1225 delete m_Ptrs.pLine;
1227 delete m_Ptrs.pContentAttrs;
1239 OSL_ENSURE(
false,
"Number of lines changed" );
1243 SaveLine* pLn = m_Ptrs.pLine;
1248 OSL_ENSURE(
false,
"Number of lines changed" );
1252 pLn->RestoreAttr( *rBox.
GetTabLines()[ n ], rSTable );
1258 if (m_Ptrs.pContentAttrs)
1261 sal_uInt16 nSet = 0;
1268 std::shared_ptr<SfxItemSet> pSet((*m_Ptrs.pContentAttrs)[nSet++]);
1272 pCNd->
ResetAttr( rPair.first, rPair.second );
1283 OSL_ENSURE(
false,
"Box not anymore at the same node" );
1287void SaveBox::SaveContentAttrs(
SwDoc* pDoc )
1292 m_Ptrs.pLine->SaveContentAttrs(pDoc);
1303 std::shared_ptr<SfxItemSet> pSet;
1306 pSet = std::make_shared<SfxItemSet>( pDoc->
GetAttrPool(),
1311 m_Ptrs.pContentAttrs->push_back(pSet);
1316 m_pNext->SaveContentAttrs(pDoc);
1335 m_Ptrs.pLine->CreateNew(rTable, *pNew, rSTable);
1345 if( !pOld->HasWriterListeners() )
1351 pTBoxes->erase( std::find( pTBoxes->begin(), pTBoxes->end(), pBox ) );
1355 pTBoxes->push_back( pBox );
1360 m_pNext->CreateNew(rTable, rParent, rSTable);
1366 m_nStartNode( rTableNd.GetIndex() )
1380 OSL_ENSURE( pTableNd,
"no TableNode" );
1404 , m_TableStyleName(rTableNd.GetTable().GetTableStyleName())
1405 , m_nStartNode( rTableNd.GetIndex() )
1406 , m_bSaveContentAttr( false )
1407 , m_nRepeatHeading(rTableNd.GetTable().GetRowsToRepeat())
1426 m_Undos.push_back(std::make_shared<SwUndoTableNumFormat>(rBox));
1434 OSL_ENSURE( pTableNd,
"no TableNode" );
1439 OUString
const temp(table.GetTableStyleName());
1453 m_Undos.at(
n-1)->UndoImpl(rContext);
1477 sal_uInt16 nCnt,
bool bFlg,
bool bSmHght )
1478 :
SwUndo( nAction, &rTableNd.GetDoc() ),
1479 m_nMin( nMn ), m_nMax( nMx ),
1480 m_nSttNode( rTableNd.GetIndex() ),
1483 m_bSameHeight( bSmHght )
1497 for (
size_t n = 0;
n < rBoxes.
size(); ++
n)
1499 m_Boxes.insert( rBoxes[
n]->GetSttIdx() );
1514 OSL_ENSURE( !
IsDelBox(),
"wrong Action" );
1518 for (
size_t n = 0;
n < rOld.
size(); ++
i)
1520 if( rOld[
n ] == rTableBoxes[
i ] )
1527 for( ;
i < rTableBoxes.
size(); ++
i )
1541 sal_uInt16 nLineNo = rTableLines.
GetPos( pLine );
1542 pRet = rTableLines[nLineNo - 1];
1561 const std::vector<SwNodeOffset> &rNodeCnts )
1566 OSL_ENSURE( !
IsDelBox(),
"wrong Action" );
1570 "unexpected boxes" );
1571 OSL_ENSURE( rOld.
size() <= rTableBoxes.
size(),
"more unexpected boxes" );
1572 for (
size_t n = 0,
i = 0;
i < rTableBoxes.
size(); ++
i)
1574 if( (
n < rOld.
size() ) &&
1575 ( rOld[
n ] == rTableBoxes[
i ] ) )
1593 sal_uInt16 nLineNo = 0;
1594 for (
size_t j = 0; j < rBoxes.
size(); ++j)
1596 pCheckBox = rBoxes[j];
1601 GetPos( pCheckLine );
1602 if( ( !pSourceBox || nCheckLine > nLineNo ) && nCheckLine < nLineDiff )
1604 nLineNo = nCheckLine;
1605 pSourceBox = pCheckBox;
1612 nLineDiff = nLineDiff - nLineNo;
1613 OSL_ENSURE( pSourceBox,
"Split source box not found!" );
1617 while( rBoxes[ nNdsPos ] != pSourceBox )
1630 bool bNodesMoved = pSourceBox &&
1641 OSL_ENSURE(
IsDelBox(),
"wrong Action" );
1646 std::unique_ptr<SwUndoSaveSection, o3tl::default_delete<SwUndoSaveSection>> pSave(
new SwUndoSaveSection);
1659 OSL_ENSURE( pTableNd,
"no TableNode" );
1667 FndBox_ aTmpBox(
nullptr,
nullptr );
1672 std::vector< std::pair<SwTableBox *, SwNodeOffset> > aDelNodes;
1689 rLnBoxes.push_back( pBox );
1700 for (
size_t n = aTmp.size();
n > 0 ; )
1706 OSL_ENSURE( pBox,
"Where is my TableBox?" );
1716 if( aTmp[
n].hasMoved )
1728 while(
i && aTmp[ --
i ].
index > nSttIdx )
1729 aTmp[
i ].index += nNdCnt;
1738 aDelNodes.emplace_back(pBox, nIdx);
1745 std::set<BoxMove>::reverse_iterator it;
1750 OSL_ENSURE( pBox,
"Where's my table box?" );
1755 aDelNodes.emplace_back(pBox, nIdx);
1765 for (
const std::pair<SwTableBox *, SwNodeOffset> & rDelNode : aDelNodes)
1769 rDelNode.first->RemoveFromTable();
1774 for(
size_t n = 0;
n < aDelBoxes.
size(); ++
n )
1778 pTBoxes->erase( std::find( pTBoxes->begin(), pTBoxes->end(), pCurrBox ) );
1798 OSL_ENSURE( pTableNd,
"no TableNode" );
1802 for (
const auto& rBox :
m_Boxes)
1805 aSelBoxes.
insert( pBox );
1832 rTable.
DeleteSel( &rDoc, aSelBoxes,
nullptr,
this,
true,
true );
1847 OSL_ENSURE( pTableNd,
"Where is the TableNode?" );
1865 OSL_ENSURE( pTableNd,
"no TableNode" );
1884 for (
const auto& rBox :
m_Boxes)
1891 rLnBoxes.push_back( pBox );
1893 aSelBoxes.
insert( pBox );
1910 OSL_ENSURE( pBox,
"Where is my TableBox?" );
1920 sal_Int32 nDelPos = 0;
1938 pCNd->MoveTo( *pMove );
1964 pTBoxes->erase( std::find(pTBoxes->begin(), pTBoxes->end(), pBox ) );
2010 std::unique_ptr<SwUndoMove> pUndo(
new SwUndoMove( rDoc, rRg, rPos ));
2017 pUndo->SetDestRange( aTmp2.
GetNode(), rPos, aTmp );
2019 m_vMoves.push_back(std::move(pUndo));
2025 for (
size_t n = 0;
n < rBoxes.
size(); ++
n)
2027 m_Boxes.insert(rBoxes[
n]->GetSttIdx());
2035 if( !rBoxes.
empty() )
2036 m_nTableNode = rBoxes[ 0 ]->GetSttNd()->FindTableNode()->GetIndex();
2058 , m_nNewFormatIdx(0)
2061 , m_bNewFormat(false)
2062 , m_bNewFormula(false)
2063 , m_bNewValue(false)
2079 pTNd->
GetText().getLength(),
true );
2129 OSL_ENSURE(
m_pBoxSet,
"Where's the stored item set?" );
2134 OSL_ENSURE( pSttNd,
"without StartNode no TableBox" );
2137 OSL_ENSURE( pBox,
"found no TableBox" );
2172 sal_uInt16 nTmpEnd =
m_pHistory->GetTmpEnd();
2189class RedlineFlagsInternGuard
2195 RedlineFlagsInternGuard(
2200 ~RedlineFlagsInternGuard();
2205RedlineFlagsInternGuard::RedlineFlagsInternGuard(
2210 meOldRedlineFlags( rDoc.getIDocumentRedlineAccess().GetRedlineFlags() )
2212 mrDoc.getIDocumentRedlineAccess().SetRedlineFlags_intern( ( meOldRedlineFlags & ~eRedlineFlagsMask ) |
2213 ( eNewRedlineFlags & eRedlineFlagsMask ) );
2216RedlineFlagsInternGuard::~RedlineFlagsInternGuard()
2218 mrDoc.getIDocumentRedlineAccess().SetRedlineFlags_intern( meOldRedlineFlags );
2235 assert(pSttNd &&
"without StartNode no TableBox");
2238 OSL_ENSURE( pBox,
"found no TableBox" );
2247 pBoxFormat->LockModify();
2261 pBoxFormat->UnlockModify();
2278 pBoxFormat->LockModify();
2280 pBoxFormat->UnlockModify();
2316 : nBoxIdx( rBox.GetSttIdx() ), nOffset( 0 ),
2323 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"UndoTableCpyTable_Entry"));
2325 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"nBoxIdx"));
2326 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"value"),
2327 BAD_CAST(OString::number(sal_Int32(
nBoxIdx)).getStr()));
2328 (void)xmlTextWriterEndElement(pWriter);
2330 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"nOffset"));
2331 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"value"),
2332 BAD_CAST(OString::number(sal_Int32(
nOffset)).getStr()));
2333 (void)xmlTextWriterEndElement(pWriter);
2337 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"pBoxNumAttr"));
2339 (void)xmlTextWriterEndElement(pWriter);
2344 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"pUndo"));
2345 pUndo->dumpAsXml(pWriter);
2346 (void)xmlTextWriterEndElement(pWriter);
2349 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"bJoin"));
2350 (void)xmlTextWriterWriteAttribute(pWriter, BAD_CAST(
"value"),
2351 BAD_CAST(OString::boolean(
bJoin).getStr()));
2352 (void)xmlTextWriterEndElement(pWriter);
2354 (void)xmlTextWriterEndElement(pWriter);
2374 for (
size_t n =
m_vArr.size();
n; )
2386 "SwUndoTableCpyTable::UndoImpl: invalid start node index for table box");
2398 std::unique_ptr<SwUndoDelete> pUndo;
2402 bool bDeleteCompleteParagraph =
false;
2403 bool bShiftPam =
false;
2411 assert(pUndoDelete || pUndoRedlineDelete);
2412 if (pUndoRedlineDelete)
2415 bDeleteCompleteParagraph = !pEntry->
bJoin;
2418 pUndoRedlineDelete->
NodeDiff()-1 );
2435 bDeleteCompleteParagraph =
true;
2444 pEntry->
pUndo->UndoImpl(rContext);
2445 pEntry->
pUndo.reset();
2460 pEntry->
pUndo->UndoImpl(rContext);
2461 pEntry->
pUndo.reset();
2464 pEntry->
pUndo = std::move(pUndo);
2474 if( aTmpSet.Count() )
2487 if( aTmpSet.Count() )
2516 for (
size_t n = 0;
n <
m_vArr.size(); ++
n)
2536 pEntry->
pUndo->UndoImpl(rContext);
2548 pEntry->
bJoin,
true );
2556 pEntry->
pUndo.reset();
2558 pEntry->
pUndo = std::move(pUndo);
2568 if( aTmpSet.Count() )
2580 if( aTmpSet.Count() )
2595 if (!
m_vArr.empty() && !bDelContent)
2599 m_vArr.push_back(std::unique_ptr<UndoTableCpyTable_Entry>(pEntry));
2656 std::unique_ptr<SwUndo> pUndo;
2690 SwPosition aDeleteStart( rJoin ? aInsertEnd : rPos );
2701 if( aDeleteStart != aCellEnd )
2703 SwPaM aDeletePam( aDeleteStart, aCellEnd );
2704 pUndo = std::make_unique<SwUndoRedlineDelete>( aDeletePam,
SwUndoId::DELETE );
2710 SwPaM aTmpPam( aDeleteStart, aCellEnd );
2717 if( aCellStart != aInsertEnd )
2719 SwPaM aTmpPam( aCellStart, aInsertEnd );
2731 GetSttNd()->FindTableNode());
2734 0, 0, nCnt,
true,
false ) );
2749 (void)xmlTextWriterStartElement(pWriter, BAD_CAST(
"SwUndoTableCpyTable"));
2751 for (
const auto& pEntry :
m_vArr)
2753 pEntry->dumpAsXml(pWriter);
2761 (void)xmlTextWriterEndElement(pWriter);
2811 m_nTableNode( rTableNd.GetIndex() ), m_nOffset( 0 ), mpSaveRowSpan(
std::move(pRowSp) ),
2812 m_nMode(
eMode ), m_nFormulaEnd( 0 ), m_bCalcNewSize( bNewSize )
2884 FndBox_ aTmpBox(
nullptr,
nullptr );
2887 rTable.
DeleteSel( pDoc, aSelBoxes,
nullptr,
nullptr,
false,
false );
2943 m_bWithPrev( bWithPrv )
2982 FndBox_ aFndBox(
nullptr,
nullptr );
3062 size_t nO = rArr.size();
3069 const size_t nM = nU + ( nO - nU ) / 2;
3070 if ( rArr[nM] == nIdx )
3072 OSL_FAIL(
"Index already exists. This should never happen." );
3075 if( rArr[nM] < nIdx )
3083 rArr.insert( rArr.begin() + nU, nIdx );
3086#if OSL_DEBUG_LEVEL > 0
3091 for (
size_t n = 0;
n < rSrtArr.
size(); ++
n)
3095 OSL_ENSURE( rNds[ pBox->
GetSttIdx() ] == pNd,
"Box with wrong StartNode" );
3135 m_pAutoFormat(
std::move(pAutoFormat)),
3136 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 SwFieldType * InsertFieldType(const SwFieldType &)=0
virtual void UpdateTableFields(SfxPoolItem *pHt)=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)
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)
Insert new table at position.
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 SwFrameFormat * GetDfltFrameFormat() const
const SwFrameFormats * GetSpzFrameFormats() const
void SetRowsToRepeat(SwTable &rTable, sal_uInt16 nSet)
SwDocShell * GetDocShell()
SwTableAutoFormat * MakeTableStyle(const OUString &rName, bool bBroadcast=false)
Ends a section of nodes in the document model.
bool UpdateTableStyleFormatting(SwTableNode *pTableNode=nullptr, bool bResetDirect=false, OUString const *pStyleName=nullptr)
Update the direct formatting according to the current table style.
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)
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< SvxFormatBreakItem > RES_BREAK(94)
constexpr TypedWhichId< SvxCrossedOutItem > RES_CHRATR_CROSSEDOUT(5)
constexpr TypedWhichId< SvxFontHeightItem > RES_CHRATR_FONTSIZE(8)
constexpr TypedWhichId< SvxWeightItem > RES_CHRATR_WEIGHT(15)
constexpr TypedWhichId< SvxShadowedItem > RES_CHRATR_SHADOWED(13)
constexpr TypedWhichId< SwTableBoxValue > RES_BOXATR_VALUE(152)
constexpr TypedWhichId< SwFormatPageDesc > RES_PAGEDESC(93)
constexpr TypedWhichId< SvxAdjustItem > RES_PARATR_ADJUST(64)
constexpr TypedWhichId< SwTableBoxFormula > RES_BOXATR_FORMULA(151)
constexpr TypedWhichId< SvxPostureItem > RES_CHRATR_POSTURE(11)
constexpr TypedWhichId< SwAttrSetChg > RES_ATTRSET_CHG(163)
constexpr TypedWhichId< SwTableBoxNumFormat > RES_BOXATR_FORMAT(RES_BOXATR_BEGIN)
constexpr TypedWhichId< SvxFontItem > RES_CHRATR_FONT(7)
constexpr TypedWhichId< SwFormatVertOrient > RES_VERT_ORIENT(102)
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_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