Kaydet (Commit) dcfef092 authored tarafından Noel Grandin's avatar Noel Grandin

loplugin:useuniqueptr in SwUndoTableCpyTable

Change-Id: I819c96ed7aec51f546cdc8442154dbba7110d961
Reviewed-on: https://gerrit.libreoffice.org/57693
Tested-by: Jenkins
Reviewed-by: 's avatarNoel Grandin <noel.grandin@collabora.co.uk>
üst 3d786062
...@@ -278,12 +278,11 @@ public: ...@@ -278,12 +278,11 @@ public:
}; };
struct UndoTableCpyTable_Entry; struct UndoTableCpyTable_Entry;
using SwUndoTableCpyTable_Entries = std::vector<std::unique_ptr<UndoTableCpyTable_Entry>>;
class SwUndoTableCpyTable : public SwUndo class SwUndoTableCpyTable : public SwUndo
{ {
SwUndoTableCpyTable_Entries* m_pArr; std::vector<std::unique_ptr<UndoTableCpyTable_Entry>> m_vArr;
SwUndoTableNdsChg* pInsRowUndo; std::unique_ptr<SwUndoTableNdsChg> pInsRowUndo;
//b6341295: When redlining is active, PrepareRedline has to create the //b6341295: When redlining is active, PrepareRedline has to create the
//redlining attributes for the new and the old table cell content //redlining attributes for the new and the old table cell content
......
...@@ -2396,15 +2396,13 @@ UndoTableCpyTable_Entry::UndoTableCpyTable_Entry( const SwTableBox& rBox ) ...@@ -2396,15 +2396,13 @@ UndoTableCpyTable_Entry::UndoTableCpyTable_Entry( const SwTableBox& rBox )
SwUndoTableCpyTable::SwUndoTableCpyTable(const SwDoc* pDoc) SwUndoTableCpyTable::SwUndoTableCpyTable(const SwDoc* pDoc)
: SwUndo( SwUndoId::TBLCPYTBL, pDoc ) : SwUndo( SwUndoId::TBLCPYTBL, pDoc )
, m_pArr(new SwUndoTableCpyTable_Entries)
, pInsRowUndo(nullptr)
{ {
} }
SwUndoTableCpyTable::~SwUndoTableCpyTable() SwUndoTableCpyTable::~SwUndoTableCpyTable()
{ {
delete m_pArr; m_vArr.clear();
delete pInsRowUndo; pInsRowUndo.reset();
} }
void SwUndoTableCpyTable::UndoImpl(::sw::UndoRedoContext & rContext) void SwUndoTableCpyTable::UndoImpl(::sw::UndoRedoContext & rContext)
...@@ -2413,9 +2411,9 @@ void SwUndoTableCpyTable::UndoImpl(::sw::UndoRedoContext & rContext) ...@@ -2413,9 +2411,9 @@ void SwUndoTableCpyTable::UndoImpl(::sw::UndoRedoContext & rContext)
DEBUG_REDLINE( &rDoc ) DEBUG_REDLINE( &rDoc )
SwTableNode* pTableNd = nullptr; SwTableNode* pTableNd = nullptr;
for (size_t n = m_pArr->size(); n; ) for (size_t n = m_vArr.size(); n; )
{ {
UndoTableCpyTable_Entry *const pEntry = (*m_pArr)[ --n ].get(); UndoTableCpyTable_Entry *const pEntry = m_vArr[ --n ].get();
sal_uLong nSttPos = pEntry->nBoxIdx + pEntry->nOffset; sal_uLong nSttPos = pEntry->nBoxIdx + pEntry->nOffset;
SwStartNode* pSNd = rDoc.GetNodes()[ nSttPos ]->StartOfSectionNode(); SwStartNode* pSNd = rDoc.GetNodes()[ nSttPos ]->StartOfSectionNode();
if( !pTableNd ) if( !pTableNd )
...@@ -2567,9 +2565,9 @@ void SwUndoTableCpyTable::RedoImpl(::sw::UndoRedoContext & rContext) ...@@ -2567,9 +2565,9 @@ void SwUndoTableCpyTable::RedoImpl(::sw::UndoRedoContext & rContext)
} }
SwTableNode* pTableNd = nullptr; SwTableNode* pTableNd = nullptr;
for (size_t n = 0; n < m_pArr->size(); ++n) for (size_t n = 0; n < m_vArr.size(); ++n)
{ {
UndoTableCpyTable_Entry *const pEntry = (*m_pArr)[ n ].get(); UndoTableCpyTable_Entry *const pEntry = m_vArr[ n ].get();
sal_uLong nSttPos = pEntry->nBoxIdx + pEntry->nOffset; sal_uLong nSttPos = pEntry->nBoxIdx + pEntry->nOffset;
SwStartNode* pSNd = rDoc.GetNodes()[ nSttPos ]->StartOfSectionNode(); SwStartNode* pSNd = rDoc.GetNodes()[ nSttPos ]->StartOfSectionNode();
if( !pTableNd ) if( !pTableNd )
...@@ -2648,11 +2646,11 @@ void SwUndoTableCpyTable::RedoImpl(::sw::UndoRedoContext & rContext) ...@@ -2648,11 +2646,11 @@ void SwUndoTableCpyTable::RedoImpl(::sw::UndoRedoContext & rContext)
void SwUndoTableCpyTable::AddBoxBefore( const SwTableBox& rBox, bool bDelContent ) void SwUndoTableCpyTable::AddBoxBefore( const SwTableBox& rBox, bool bDelContent )
{ {
if (!m_pArr->empty() && !bDelContent) if (!m_vArr.empty() && !bDelContent)
return; return;
UndoTableCpyTable_Entry* pEntry = new UndoTableCpyTable_Entry( rBox ); UndoTableCpyTable_Entry* pEntry = new UndoTableCpyTable_Entry( rBox );
m_pArr->push_back(std::unique_ptr<UndoTableCpyTable_Entry>(pEntry)); m_vArr.push_back(std::unique_ptr<UndoTableCpyTable_Entry>(pEntry));
SwDoc* pDoc = rBox.GetFrameFormat()->GetDoc(); SwDoc* pDoc = rBox.GetFrameFormat()->GetDoc();
DEBUG_REDLINE( pDoc ) DEBUG_REDLINE( pDoc )
...@@ -2681,7 +2679,7 @@ void SwUndoTableCpyTable::AddBoxBefore( const SwTableBox& rBox, bool bDelContent ...@@ -2681,7 +2679,7 @@ void SwUndoTableCpyTable::AddBoxBefore( const SwTableBox& rBox, bool bDelContent
void SwUndoTableCpyTable::AddBoxAfter( const SwTableBox& rBox, const SwNodeIndex& rIdx, bool bDelContent ) void SwUndoTableCpyTable::AddBoxAfter( const SwTableBox& rBox, const SwNodeIndex& rIdx, bool bDelContent )
{ {
UndoTableCpyTable_Entry *const pEntry = (*m_pArr).back().get(); UndoTableCpyTable_Entry *const pEntry = m_vArr.back().get();
// If the content was deleted than remove also the temporarily created node // If the content was deleted than remove also the temporarily created node
if( bDelContent ) if( bDelContent )
...@@ -2785,8 +2783,8 @@ bool SwUndoTableCpyTable::InsertRow( SwTable& rTable, const SwSelBoxes& rBoxes, ...@@ -2785,8 +2783,8 @@ bool SwUndoTableCpyTable::InsertRow( SwTable& rTable, const SwSelBoxes& rBoxes,
SwTableNode* pTableNd = const_cast<SwTableNode*>(rTable.GetTabSortBoxes()[0]-> SwTableNode* pTableNd = const_cast<SwTableNode*>(rTable.GetTabSortBoxes()[0]->
GetSttNd()->FindTableNode()); GetSttNd()->FindTableNode());
pInsRowUndo = new SwUndoTableNdsChg( SwUndoId::TABLE_INSROW, rBoxes, *pTableNd, pInsRowUndo.reset( new SwUndoTableNdsChg( SwUndoId::TABLE_INSROW, rBoxes, *pTableNd,
0, 0, nCnt, true, false ); 0, 0, nCnt, true, false ) );
SwTableSortBoxes aTmpLst( rTable.GetTabSortBoxes() ); SwTableSortBoxes aTmpLst( rTable.GetTabSortBoxes() );
bool bRet = rTable.InsertRow( rTable.GetFrameFormat()->GetDoc(), rBoxes, nCnt, /*bBehind*/true ); bool bRet = rTable.InsertRow( rTable.GetFrameFormat()->GetDoc(), rBoxes, nCnt, /*bBehind*/true );
...@@ -2794,15 +2792,14 @@ bool SwUndoTableCpyTable::InsertRow( SwTable& rTable, const SwSelBoxes& rBoxes, ...@@ -2794,15 +2792,14 @@ bool SwUndoTableCpyTable::InsertRow( SwTable& rTable, const SwSelBoxes& rBoxes,
pInsRowUndo->SaveNewBoxes( *pTableNd, aTmpLst ); pInsRowUndo->SaveNewBoxes( *pTableNd, aTmpLst );
else else
{ {
delete pInsRowUndo; pInsRowUndo.reset();
pInsRowUndo = nullptr;
} }
return bRet; return bRet;
} }
bool SwUndoTableCpyTable::IsEmpty() const bool SwUndoTableCpyTable::IsEmpty() const
{ {
return !pInsRowUndo && m_pArr->empty(); return !pInsRowUndo && m_vArr.empty();
} }
SwUndoCpyTable::SwUndoCpyTable(const SwDoc* pDoc) SwUndoCpyTable::SwUndoCpyTable(const SwDoc* pDoc)
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment