[Libreoffice-commits] core.git: 2 commits - sc/inc sc/qa sc/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Tue Aug 28 08:13:19 UTC 2018
sc/inc/cellsuno.hxx | 2 -
sc/inc/chartarr.hxx | 6 ++--
sc/qa/unit/ucalc.cxx | 34 ++++++++++++------------
sc/qa/unit/ucalc.hxx | 2 -
sc/qa/unit/ucalc_sharedformula.cxx | 2 -
sc/source/core/tool/chartarr.cxx | 10 +++----
sc/source/ui/docshell/dbdocfun.cxx | 26 +++++++++---------
sc/source/ui/docshell/dbdocimp.cxx | 15 ++++------
sc/source/ui/docshell/docfunc.cxx | 52 ++++++++++++++++++-------------------
sc/source/ui/docshell/docsh5.cxx | 4 +-
sc/source/ui/docshell/impex.cxx | 4 +-
sc/source/ui/docshell/olinefun.cxx | 30 ++++++++++-----------
sc/source/ui/inc/undoblk.hxx | 28 +++++++++----------
sc/source/ui/inc/undodat.hxx | 20 +++++++-------
sc/source/ui/undo/undoblk.cxx | 48 +++++++++++++++++-----------------
sc/source/ui/undo/undoblk2.cxx | 4 +-
sc/source/ui/undo/undodat.cxx | 44 +++++++++++++++----------------
sc/source/ui/unoobj/cellsuno.cxx | 14 ++++-----
sc/source/ui/view/dbfunc3.cxx | 12 ++++----
sc/source/ui/view/viewfun3.cxx | 22 +++++++--------
sc/source/ui/view/viewfun4.cxx | 8 ++---
sc/source/ui/view/viewfunc.cxx | 14 ++++-----
22 files changed, 200 insertions(+), 201 deletions(-)
New commits:
commit 6100ef45d8c90f141d68011bba9d9745dd319174
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Mon Aug 27 15:58:54 2018 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Aug 28 10:13:06 2018 +0200
return ScMemChart by std::unique_ptr
Change-Id: I5a5b54872ce6ae351c6550a1ec0b2f7c52c35e13
Reviewed-on: https://gerrit.libreoffice.org/59683
Tested-by: Jenkins
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/inc/cellsuno.hxx b/sc/inc/cellsuno.hxx
index 625818ce5cfb..3bdb5e357fc4 100644
--- a/sc/inc/cellsuno.hxx
+++ b/sc/inc/cellsuno.hxx
@@ -202,7 +202,7 @@ private:
void PaintGridRanges_Impl();
ScRangeListRef GetLimitedChartRanges_Impl( long nDataColumns, long nDataRows ) const;
void ForceChartListener_Impl();
- ScMemChart* CreateMemChart_Impl() const;
+ std::unique_ptr<ScMemChart> CreateMemChart_Impl() const;
const ScPatternAttr* GetCurrentAttrsFlat();
const ScPatternAttr* GetCurrentAttrsDeep();
diff --git a/sc/inc/chartarr.hxx b/sc/inc/chartarr.hxx
index b24745bc7388..b342be84f7ac 100644
--- a/sc/inc/chartarr.hxx
+++ b/sc/inc/chartarr.hxx
@@ -61,8 +61,8 @@ class SC_DLLPUBLIC ScChartArray // only parameter-struct
ScChartPositioner aPositioner;
private:
- ScMemChart* CreateMemChartSingle();
- ScMemChart* CreateMemChartMulti();
+ std::unique_ptr<ScMemChart> CreateMemChartSingle();
+ std::unique_ptr<ScMemChart> CreateMemChartMulti();
public:
ScChartArray( ScDocument* pDoc, const ScRangeListRef& rRangeList );
@@ -73,7 +73,7 @@ public:
bool HasColHeaders() const { return aPositioner.HasColHeaders(); }
bool HasRowHeaders() const { return aPositioner.HasRowHeaders(); }
- ScMemChart* CreateMemChart();
+ std::unique_ptr<ScMemChart> CreateMemChart();
};
#endif
diff --git a/sc/source/core/tool/chartarr.cxx b/sc/source/core/tool/chartarr.cxx
index ba632ba1a386..76fcc2645839 100644
--- a/sc/source/core/tool/chartarr.cxx
+++ b/sc/source/core/tool/chartarr.cxx
@@ -60,7 +60,7 @@ ScChartArray::ScChartArray(
pDocument( pDoc ),
aPositioner(pDoc, rRangeList) {}
-ScMemChart* ScChartArray::CreateMemChart()
+std::unique_ptr<ScMemChart> ScChartArray::CreateMemChart()
{
ScRangeListRef aRangeListRef(GetRangeList());
size_t nCount = aRangeListRef->size();
@@ -112,7 +112,7 @@ double getCellValue( ScDocument& rDoc, const ScAddress& rPos, double fDefault, b
}
-ScMemChart* ScChartArray::CreateMemChartSingle()
+std::unique_ptr<ScMemChart> ScChartArray::CreateMemChartSingle()
{
SCSIZE nCol;
SCSIZE nRow;
@@ -207,7 +207,7 @@ ScMemChart* ScChartArray::CreateMemChartSingle()
}
// Data
- ScMemChart* pMemChart = new ScMemChart( nColCount, nRowCount );
+ std::unique_ptr<ScMemChart> pMemChart(new ScMemChart( nColCount, nRowCount ));
if ( bValidData )
{
@@ -275,7 +275,7 @@ ScMemChart* ScChartArray::CreateMemChartSingle()
return pMemChart;
}
-ScMemChart* ScChartArray::CreateMemChartMulti()
+std::unique_ptr<ScMemChart> ScChartArray::CreateMemChartMulti()
{
SCSIZE nColCount = GetPositionMap()->GetColCount();
SCSIZE nRowCount = GetPositionMap()->GetRowCount();
@@ -300,7 +300,7 @@ ScMemChart* ScChartArray::CreateMemChartMulti()
}
// Data
- ScMemChart* pMemChart = new ScMemChart( nColCount, nRowCount );
+ std::unique_ptr<ScMemChart> pMemChart(new ScMemChart( nColCount, nRowCount ));
SCSIZE nCol = 0;
SCSIZE nRow = 0;
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index e957cb22faef..4d31248c34e9 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -2995,7 +2995,7 @@ void SAL_CALL ScCellRangesBase::incrementIndent()
// XChartData
-ScMemChart* ScCellRangesBase::CreateMemChart_Impl() const
+std::unique_ptr<ScMemChart> ScCellRangesBase::CreateMemChart_Impl() const
{
if ( pDocShell && !aRanges.empty() )
{
commit b7239a1271d5af51163b4fcd93608b72db2616a4
Author: Noel Grandin <noel.grandin at collabora.co.uk>
AuthorDate: Mon Aug 27 10:11:58 2018 +0200
Commit: Noel Grandin <noel.grandin at collabora.co.uk>
CommitDate: Tue Aug 28 10:12:57 2018 +0200
loplugin:useuniqueptr pass ScDocument by unique_ptr in undo code
Change-Id: Ib05638865a42ad37c3382714e1790c7035ed8ebf
Reviewed-on: https://gerrit.libreoffice.org/59638
Reviewed-by: Noel Grandin <noel.grandin at collabora.co.uk>
Tested-by: Noel Grandin <noel.grandin at collabora.co.uk>
diff --git a/sc/qa/unit/ucalc.cxx b/sc/qa/unit/ucalc.cxx
index c35e28623c2c..791b25ab85b2 100644
--- a/sc/qa/unit/ucalc.cxx
+++ b/sc/qa/unit/ucalc.cxx
@@ -3339,9 +3339,9 @@ void Test::testCopyPaste()
copyToClip(m_pDoc, aRange, &aClipDoc);
aRange = ScRange(0,1,1,2,1,1);//target: Sheet2.A2:C2
- ScDocument* pUndoDoc = new ScDocument(SCDOCMODE_UNDO);
+ ScDocumentUniquePtr pUndoDoc(new ScDocument(SCDOCMODE_UNDO));
pUndoDoc->InitUndo(m_pDoc, 1, 1, true, true);
- std::unique_ptr<ScUndoPaste> pUndo(createUndoPaste(getDocShell(), aRange, pUndoDoc));
+ std::unique_ptr<ScUndoPaste> pUndo(createUndoPaste(getDocShell(), aRange, std::move(pUndoDoc)));
ScMarkData aMark;
aMark.SetMarkArea(aRange);
m_pDoc->CopyFromClip(aRange, aMark, InsertDeleteFlags::ALL, nullptr, &aClipDoc);
@@ -3735,21 +3735,21 @@ void Test::testCopyPasteSkipEmpty()
}
// Create undo document.
- ScDocument* pUndoDoc = new ScDocument(SCDOCMODE_UNDO);
+ ScDocumentUniquePtr pUndoDoc(new ScDocument(SCDOCMODE_UNDO));
pUndoDoc->InitUndo(m_pDoc, 0, 0);
m_pDoc->CopyToDocument(aDestRange, InsertDeleteFlags::ALL, false, *pUndoDoc, &aMark);
// Paste clipboard content onto A1:A5 but skip empty cells.
- m_pDoc->CopyFromClip(aDestRange, aMark, InsertDeleteFlags::ALL, pUndoDoc, &aClipDoc, true, false, false, true/*bSkipEmpty*/);
+ m_pDoc->CopyFromClip(aDestRange, aMark, InsertDeleteFlags::ALL, pUndoDoc.get(), &aClipDoc, true, false, false, true/*bSkipEmpty*/);
// Create redo document.
- ScDocument* pRedoDoc = new ScDocument(SCDOCMODE_UNDO);
+ ScDocumentUniquePtr pRedoDoc(new ScDocument(SCDOCMODE_UNDO));
pRedoDoc->InitUndo(m_pDoc, 0, 0);
m_pDoc->CopyToDocument(aDestRange, InsertDeleteFlags::ALL, false, *pRedoDoc, &aMark);
// Create an undo object for this.
ScRefUndoData* pRefUndoData = new ScRefUndoData(m_pDoc);
- ScUndoPaste aUndo(&getDocShell(), aDestRange, aMark, pUndoDoc, pRedoDoc, InsertDeleteFlags::ALL, pRefUndoData);
+ ScUndoPaste aUndo(&getDocShell(), aDestRange, aMark, std::move(pUndoDoc), std::move(pRedoDoc), InsertDeleteFlags::ALL, pRefUndoData);
// Check the content after the paste.
{
@@ -3847,11 +3847,11 @@ void Test::testCutPasteRefUndo()
aClipDoc.SetValue(ScAddress(1,1,0), 12.0);
// Set up undo document for reference update.
- ScDocument* pUndoDoc = new ScDocument(SCDOCMODE_UNDO);
+ ScDocumentUniquePtr pUndoDoc(new ScDocument(SCDOCMODE_UNDO));
pUndoDoc->InitUndo(m_pDoc, 0, 0);
// Do the pasting of 12 into C2. This should update A2 to reference C2.
- m_pDoc->CopyFromClip(ScAddress(2,1,0), aMark, InsertDeleteFlags::CONTENTS, pUndoDoc, &aClipDoc);
+ m_pDoc->CopyFromClip(ScAddress(2,1,0), aMark, InsertDeleteFlags::CONTENTS, pUndoDoc.get(), &aClipDoc);
CPPUNIT_ASSERT_EQUAL(12.0, m_pDoc->GetValue(0,1,0));
ASSERT_FORMULA_EQUAL(*m_pDoc, ScAddress(0,1,0), "C2", "A2 should be referencing C2.");
@@ -3859,7 +3859,7 @@ void Test::testCutPasteRefUndo()
// At this point, the ref undo document should contain a formula cell at A2 that references B2.
ASSERT_FORMULA_EQUAL(*pUndoDoc, ScAddress(0,1,0), "B2", "A2 in the undo document should be referencing B2.");
- ScUndoPaste aUndo(&getDocShell(), ScRange(2,1,0), aMark, pUndoDoc, nullptr, InsertDeleteFlags::CONTENTS, nullptr, false, nullptr);
+ ScUndoPaste aUndo(&getDocShell(), ScRange(2,1,0), aMark, std::move(pUndoDoc), nullptr, InsertDeleteFlags::CONTENTS, nullptr, false, nullptr);
aUndo.Undo();
// Now A2 should be referencing B2 once again.
@@ -3935,7 +3935,7 @@ void Test::testCutPasteGroupRefUndo()
aMark.SetMarkArea(aPasteRange);
ScDocument* pPasteUndoDoc = new ScDocument(SCDOCMODE_UNDO);
pPasteUndoDoc->InitUndoSelected( m_pDoc, aMark);
- std::unique_ptr<ScUndoPaste> pUndoPaste( createUndoPaste( getDocShell(), aPasteRange, pPasteUndoDoc));
+ std::unique_ptr<ScUndoPaste> pUndoPaste( createUndoPaste( getDocShell(), aPasteRange, ScDocumentUniquePtr(pPasteUndoDoc)));
m_pDoc->CopyFromClip( aPasteRange, aMark, InsertDeleteFlags::ALL, pPasteUndoDoc, &aClipDoc);
// Check data after Paste.
@@ -4042,13 +4042,13 @@ void Test::testUndoCut()
aMark.MarkToMulti();
// Set up an undo object for cutting A1:A3.
- ScDocument* pUndoDoc = new ScDocument(SCDOCMODE_UNDO);
+ ScDocumentUniquePtr pUndoDoc(new ScDocument(SCDOCMODE_UNDO));
pUndoDoc->InitUndo(m_pDoc, 0 ,0);
m_pDoc->CopyToDocument(aRange, InsertDeleteFlags::ALL, false, *pUndoDoc);
ASSERT_DOUBLES_EQUAL( 1.0, pUndoDoc->GetValue(ScAddress(0,0,0)));
ASSERT_DOUBLES_EQUAL( 10.0, pUndoDoc->GetValue(ScAddress(0,1,0)));
ASSERT_DOUBLES_EQUAL(100.0, pUndoDoc->GetValue(ScAddress(0,2,0)));
- ScUndoCut aUndo(&getDocShell(), aRange, aRange.aEnd, aMark, pUndoDoc);
+ ScUndoCut aUndo(&getDocShell(), aRange, aRange.aEnd, aMark, std::move(pUndoDoc));
// "Cut" the selection.
m_pDoc->DeleteSelection(InsertDeleteFlags::ALL, aMark);
@@ -6685,10 +6685,10 @@ ScUndoCut* Test::cutToClip(ScDocShell& rDocSh, const ScRange& rRange, ScDocument
pSrcDoc->CopyToClip(aClipParam, pClipDoc, &aMark, false, false);
// Taken from ScViewFunc::CutToClip()
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
if (bCreateUndo)
{
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndoSelected( pSrcDoc, aMark );
// all sheets - CopyToDocument skips those that don't exist in pUndoDoc
ScRange aCopyRange = rRange;
@@ -6704,7 +6704,7 @@ ScUndoCut* Test::cutToClip(ScDocShell& rDocSh, const ScRange& rRange, ScDocument
aMark.MarkToSimple();
if (pUndoDoc)
- return new ScUndoCut( &rDocSh, rRange, rRange.aEnd, aMark, pUndoDoc );
+ return new ScUndoCut( &rDocSh, rRange, rRange.aEnd, aMark, std::move(pUndoDoc) );
return nullptr;
}
@@ -6736,7 +6736,7 @@ void Test::pasteOneCellFromClip(ScDocument* pDestDoc, const ScRange& rDestRange,
rDestRange.aEnd.Col(), rDestRange.aEnd.Row());
}
-ScUndoPaste* Test::createUndoPaste(ScDocShell& rDocSh, const ScRange& rRange, ScDocument* pUndoDoc)
+ScUndoPaste* Test::createUndoPaste(ScDocShell& rDocSh, const ScRange& rRange, ScDocumentUniquePtr pUndoDoc)
{
ScDocument& rDoc = rDocSh.GetDocument();
ScMarkData aMarkData;
@@ -6744,7 +6744,7 @@ ScUndoPaste* Test::createUndoPaste(ScDocShell& rDocSh, const ScRange& rRange, Sc
ScRefUndoData* pRefUndoData = new ScRefUndoData(&rDoc);
return new ScUndoPaste(
- &rDocSh, rRange, aMarkData, pUndoDoc, nullptr, InsertDeleteFlags::ALL, pRefUndoData, false);
+ &rDocSh, rRange, aMarkData, std::move(pUndoDoc), nullptr, InsertDeleteFlags::ALL, pRefUndoData, false);
}
void Test::setExpandRefs(bool bExpand)
diff --git a/sc/qa/unit/ucalc.hxx b/sc/qa/unit/ucalc.hxx
index 1d46b3d50800..25cfe3f6b48d 100644
--- a/sc/qa/unit/ucalc.hxx
+++ b/sc/qa/unit/ucalc.hxx
@@ -50,7 +50,7 @@ public:
static void copyToClip(ScDocument* pSrcDoc, const ScRange& rRange, ScDocument* pClipDoc);
static void pasteFromClip(ScDocument* pDestDoc, const ScRange& rDestRange, ScDocument* pClipDoc);
static void pasteOneCellFromClip(ScDocument* pDestDoc, const ScRange& rDestRange, ScDocument* pClipDoc, InsertDeleteFlags eFlags = InsertDeleteFlags::ALL);
- static ScUndoPaste* createUndoPaste(ScDocShell& rDocSh, const ScRange& rRange, ScDocument* pUndoDoc);
+ static ScUndoPaste* createUndoPaste(ScDocShell& rDocSh, const ScRange& rRange, ScDocumentUniquePtr pUndoDoc);
/**
* Enable or disable expand reference options which controls how
diff --git a/sc/qa/unit/ucalc_sharedformula.cxx b/sc/qa/unit/ucalc_sharedformula.cxx
index ffd00aede191..033f79ca8fdf 100644
--- a/sc/qa/unit/ucalc_sharedformula.cxx
+++ b/sc/qa/unit/ucalc_sharedformula.cxx
@@ -1296,7 +1296,7 @@ void Test::testSharedFormulasCopyPaste()
ScDocument* pUndoDoc = new ScDocument(SCDOCMODE_UNDO);
pUndoDoc->InitUndo(m_pDoc, 0, 0, true, true);
m_pDoc->CopyToDocument(aRange, InsertDeleteFlags::CONTENTS, false, *pUndoDoc);
- std::unique_ptr<ScUndoPaste> pUndo(createUndoPaste(getDocShell(), aRange, pUndoDoc));
+ std::unique_ptr<ScUndoPaste> pUndo(createUndoPaste(getDocShell(), aRange, ScDocumentUniquePtr(pUndoDoc)));
// First, make sure the formula cells are shared in the undo document.
aPos.SetCol(1);
diff --git a/sc/source/ui/docshell/dbdocfun.cxx b/sc/source/ui/docshell/dbdocfun.cxx
index 1157972ee407..5c324bab714a 100644
--- a/sc/source/ui/docshell/dbdocfun.cxx
+++ b/sc/source/ui/docshell/dbdocfun.cxx
@@ -341,7 +341,7 @@ bool ScDBDocFunc::RepeatDB( const OUString& rDBName, bool bApi, bool bIsUnnamed,
//! Undo needed data only ?
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
ScOutlineTable* pUndoTab = nullptr;
ScRangeName* pUndoRange = nullptr;
ScDBCollection* pUndoDB = nullptr;
@@ -349,7 +349,7 @@ bool ScDBDocFunc::RepeatDB( const OUString& rDBName, bool bApi, bool bIsUnnamed,
if (bRecord)
{
SCTAB nTabCount = rDoc.GetTableCount();
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
ScOutlineTable* pTable = rDoc.GetOutlineTable( nTab );
if (pTable)
{
@@ -448,7 +448,7 @@ bool ScDBDocFunc::RepeatDB( const OUString& rDBName, bool bApi, bool bIsUnnamed,
nNewEndRow,
//nCurX, nCurY,
nStartCol, nStartRow,
- pUndoDoc, pUndoTab,
+ std::move(pUndoDoc), pUndoTab,
pUndoRange, pUndoDB,
pOld, pNew ) );
}
@@ -736,13 +736,13 @@ bool ScDBDocFunc::Query( SCTAB nTab, const ScQueryParam& rQueryParam,
bKeepSub = true;
}
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
ScDBCollection* pUndoDB = nullptr;
const ScRange* pOld = nullptr;
if ( bRecord )
{
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
if (bCopy)
{
pUndoDoc->InitUndo( &rDoc, nDestTab, nDestTab, false, true );
@@ -930,7 +930,7 @@ bool ScDBDocFunc::Query( SCTAB nTab, const ScQueryParam& rQueryParam,
{
// create undo action after executing, because of drawing layer undo
rDocShell.GetUndoManager()->AddUndoAction(
- new ScUndoQuery( &rDocShell, nTab, rQueryParam, pUndoDoc, pUndoDB,
+ new ScUndoQuery( &rDocShell, nTab, rQueryParam, std::move(pUndoDoc), pUndoDB,
pOld, bDoSize, pAdvSource ) );
}
@@ -1027,7 +1027,7 @@ void ScDBDocFunc::DoSubTotals( SCTAB nTab, const ScSubTotalParam& rParam,
ScDocShellModificator aModificator( rDocShell );
ScSubTotalParam aNewParam( rParam ); // end of range is being changed
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
std::unique_ptr<ScOutlineTable> pUndoTab;
ScRangeName* pUndoRange = nullptr;
ScDBCollection* pUndoDB = nullptr;
@@ -1037,7 +1037,7 @@ void ScDBDocFunc::DoSubTotals( SCTAB nTab, const ScSubTotalParam& rParam,
bool bOldFilter = bDo && rParam.bDoSort;
SCTAB nTabCount = rDoc.GetTableCount();
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
ScOutlineTable* pTable = rDoc.GetOutlineTable( nTab );
if (pTable)
{
@@ -1110,7 +1110,7 @@ void ScDBDocFunc::DoSubTotals( SCTAB nTab, const ScSubTotalParam& rParam,
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoSubTotals( &rDocShell, nTab,
rParam, aNewParam.nRow2,
- pUndoDoc, std::move(pUndoTab), // pUndoDBData,
+ std::move(pUndoDoc), std::move(pUndoTab), // pUndoDBData,
pUndoRange, pUndoDB ) );
}
@@ -1326,7 +1326,7 @@ bool ScDBDocFunc::DataPilotUpdate( ScDPObject* pOldObj, const ScDPObject* pNewOb
{
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoDataPilot(
- &rDocShell, pOldUndoDoc.release(), pNewUndoDoc.release(), &aUndoDPObj, pOldObj, bAllowMove));
+ &rDocShell, std::move(pOldUndoDoc), std::move(pNewUndoDoc), &aUndoDPObj, pOldObj, bAllowMove));
}
// notify API objects
@@ -1410,7 +1410,7 @@ bool ScDBDocFunc::RemovePivotTable(ScDPObject& rDPObj, bool bRecord, bool bApi)
{
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoDataPilot(
- &rDocShell, pOldUndoDoc.release(), nullptr, pUndoDPObj.get(), nullptr, false));
+ &rDocShell, std::move(pOldUndoDoc), nullptr, pUndoDPObj.get(), nullptr, false));
// pUndoDPObj is copied
}
@@ -1522,7 +1522,7 @@ bool ScDBDocFunc::CreatePivotTable(const ScDPObject& rDPObj, bool bRecord, bool
if (bRecord)
{
rDocShell.GetUndoManager()->AddUndoAction(
- new ScUndoDataPilot(&rDocShell, nullptr, pNewUndoDoc.release(), nullptr, &rDestObj, false));
+ new ScUndoDataPilot(&rDocShell, nullptr, std::move(pNewUndoDoc), nullptr, &rDestObj, false));
}
// notify API objects
@@ -1598,7 +1598,7 @@ bool ScDBDocFunc::UpdatePivotTable(ScDPObject& rDPObj, bool bRecord, bool bApi)
{
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoDataPilot(
- &rDocShell, pOldUndoDoc.release(), pNewUndoDoc.release(), &aUndoDPObj, &rDPObj, false));
+ &rDocShell, std::move(pOldUndoDoc), std::move(pNewUndoDoc), &aUndoDPObj, &rDPObj, false));
}
// notify API objects
diff --git a/sc/source/ui/docshell/dbdocimp.cxx b/sc/source/ui/docshell/dbdocimp.cxx
index 7fa81368ba04..b7362c0966b0 100644
--- a/sc/source/ui/docshell/dbdocimp.cxx
+++ b/sc/source/ui/docshell/dbdocimp.cxx
@@ -181,7 +181,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam,
xResultSet.set((*pDescriptor)[svx::DataAccessDescriptorProperty::Cursor], uno::UNO_QUERY);
// ImportDoc - also used for Redo
- ScDocument* pImportDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pImportDoc(new ScDocument( SCDOCMODE_UNDO ));
pImportDoc->InitUndo( &rDoc, nTab, nTab );
// get data from database into import document
@@ -330,7 +330,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam,
nCol = rParam.nCol1;
for (long i=0; i<nColCount; i++)
{
- ScDatabaseDocUtil::PutData( pImportDoc, nCol, nRow, nTab,
+ ScDatabaseDocUtil::PutData( pImportDoc.get(), nCol, nRow, nTab,
xRow, i+1, pTypeArr[i], pCurrArr[i] );
++nCol;
}
@@ -466,11 +466,11 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam,
SCCOL nUndoEndCol = std::max( nEndCol, rParam.nCol2 ); // rParam = old end
SCROW nUndoEndRow = std::max( nEndRow, rParam.nRow2 );
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
ScDBData* pUndoDBData = nullptr;
if ( bRecord )
{
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nTab, nTab );
pUndoDBData = new ScDBData( *pDBData );
@@ -574,8 +574,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam,
if (bRecord)
{
- ScDocument* pRedoDoc = pImportDoc;
- pImportDoc = nullptr;
+ ScDocumentUniquePtr pRedoDoc = std::move(pImportDoc);
if (nFormulaCols > 0) // include filled formulas for redo
rDoc.CopyToDocument(rParam.nCol1, rParam.nRow1, nTab,
@@ -588,7 +587,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam,
new ScUndoImportData( &rDocShell, nTab,
rParam, nUndoEndCol, nUndoEndRow,
nFormulaCols,
- pUndoDoc, pRedoDoc, pUndoDBData, pRedoDBData ) );
+ std::move(pUndoDoc), std::move(pRedoDoc), pUndoDBData, pRedoDBData ) );
}
sc::SetFormulaDirtyContext aCxt;
@@ -623,7 +622,7 @@ bool ScDBDocFunc::DoImport( SCTAB nTab, const ScImportParam& rParam,
xInfoBox->run();
}
- delete pImportDoc;
+ pImportDoc.reset();
if (bSuccess && pChangeTrack)
pChangeTrack->AppendInsert ( aChangedRange );
diff --git a/sc/source/ui/docshell/docfunc.cxx b/sc/source/ui/docshell/docfunc.cxx
index 94ec954867f8..f995de081037 100644
--- a/sc/source/ui/docshell/docfunc.cxx
+++ b/sc/source/ui/docshell/docfunc.cxx
@@ -732,7 +732,7 @@ bool ScDocFunc::TransliterateText( const ScMarkData& rMark, TransliterationFlags
SCTAB nStartTab = aMarkRange.aStart.Tab();
SCTAB nTabCount = rDoc.GetTableCount();
- ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nStartTab, nStartTab );
ScMarkData::const_iterator itr = rMark.begin(), itrEnd = rMark.end();
for (; itr != itrEnd && *itr < nTabCount; ++itr)
@@ -745,7 +745,7 @@ bool ScDocFunc::TransliterateText( const ScMarkData& rMark, TransliterationFlags
rDoc.CopyToDocument(aCopyRange, InsertDeleteFlags::CONTENTS, true, *pUndoDoc, &aMultiMark);
rDocShell.GetUndoManager()->AddUndoAction(
- new ScUndoTransliterate( &rDocShell, aMultiMark, pUndoDoc, nType ) );
+ new ScUndoTransliterate( &rDocShell, aMultiMark, std::move(pUndoDoc), nType ) );
}
rDoc.TransliterateText( aMultiMark, nType );
@@ -1411,7 +1411,7 @@ bool ScDocFunc::ApplyStyle( const ScMarkData& rMark, const OUString& rStyleName,
if ( bRecord )
{
- ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
SCTAB nStartTab = aMultiRange.aStart.Tab();
SCTAB nTabCount = rDoc.GetTableCount();
pUndoDoc->InitUndo( &rDoc, nStartTab, nStartTab );
@@ -1427,7 +1427,7 @@ bool ScDocFunc::ApplyStyle( const ScMarkData& rMark, const OUString& rStyleName,
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoSelectionStyle(
- &rDocShell, rMark, aMultiRange, rStyleName, pUndoDoc ) );
+ &rDocShell, rMark, aMultiRange, rStyleName, std::move(pUndoDoc) ) );
}
@@ -3530,7 +3530,7 @@ bool ScDocFunc::SetWidthOrHeight(
//! Option "Show formulas" - but where to get them from?
}
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
std::unique_ptr<ScOutlineTable> pUndoTab;
std::vector<sc::ColRowSpan> aUndoRanges;
@@ -3538,7 +3538,7 @@ bool ScDocFunc::SetWidthOrHeight(
{
rDoc.BeginDrawUndo(); // Drawing Updates
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
if (bWidth)
{
pUndoDoc->InitUndo( &rDoc, nTab, nTab, true );
@@ -3656,7 +3656,7 @@ bool ScDocFunc::SetWidthOrHeight(
aMark.SelectOneTable( nTab );
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoWidthOrHeight(
- &rDocShell, aMark, nStart, nTab, nEnd, nTab, pUndoDoc,
+ &rDocShell, aMark, nStart, nTab, nEnd, nTab, std::move(pUndoDoc),
aUndoRanges, std::move(pUndoTab), eMode, nSizeTwips, bWidth));
}
@@ -4026,7 +4026,7 @@ bool ScDocFunc::ChangeIndent( const ScMarkData& rMark, bool bIncrement, bool bAp
SCTAB nStartTab = aMarkRange.aStart.Tab();
SCTAB nTabCount = rDoc.GetTableCount();
- ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nStartTab, nStartTab );
ScMarkData::const_iterator itr = rMark.begin(), itrEnd = rMark.end();
for (; itr != itrEnd && *itr < nTabCount; ++itr)
@@ -4039,7 +4039,7 @@ bool ScDocFunc::ChangeIndent( const ScMarkData& rMark, bool bIncrement, bool bAp
rDoc.CopyToDocument( aCopyRange, InsertDeleteFlags::ATTRIB, true, *pUndoDoc, &rMark );
rDocShell.GetUndoManager()->AddUndoAction(
- new ScUndoIndent( &rDocShell, rMark, pUndoDoc, bIncrement ) );
+ new ScUndoIndent( &rDocShell, rMark, std::move(pUndoDoc), bIncrement ) );
}
rDoc.ChangeSelectionIndent( bIncrement, rMark );
@@ -4206,13 +4206,13 @@ bool ScDocFunc::EnterMatrix( const ScRange& rRange, const ScMarkData* pTabMark,
{
WaitObject aWait( ScDocShell::GetActiveDialogParent() );
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
const bool bUndo(rDoc.IsUndoEnabled());
if (bUndo)
{
//! take selected sheets into account also when undoing
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nStartTab, nEndTab );
rDoc.CopyToDocument( rRange, InsertDeleteFlags::ALL & ~InsertDeleteFlags::NOTE, false, *pUndoDoc );
}
@@ -4248,7 +4248,7 @@ bool ScDocFunc::EnterMatrix( const ScRange& rRange, const ScMarkData* pTabMark,
{
//! take selected sheets into account also when undoing
rDocShell.GetUndoManager()->AddUndoAction(
- new ScUndoEnterMatrix( &rDocShell, rRange, pUndoDoc, rString ) );
+ new ScUndoEnterMatrix( &rDocShell, rRange, std::move(pUndoDoc), rString ) );
}
// Err522 painting of DDE-Formulas will be intercepted during interpreting
@@ -5251,11 +5251,11 @@ bool ScDocFunc::InsertNameList( const ScAddress& rStartPos, bool bApi )
ScEditableTester aTester( &rDoc, nTab, nStartCol,nStartRow, nEndCol,nEndRow );
if (aTester.IsEditable())
{
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
if (bRecord)
{
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nTab, nTab );
rDoc.CopyToDocument(nStartCol,nStartRow,nTab, nEndCol,nEndRow,nTab,
InsertDeleteFlags::ALL, false, *pUndoDoc);
@@ -5301,7 +5301,7 @@ bool ScDocFunc::InsertNameList( const ScAddress& rStartPos, bool bApi )
if (bRecord)
{
- ScDocument* pRedoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pRedoDoc(new ScDocument( SCDOCMODE_UNDO ));
pRedoDoc->InitUndo( &rDoc, nTab, nTab );
rDoc.CopyToDocument(nStartCol,nStartRow,nTab, nEndCol,nEndRow,nTab,
InsertDeleteFlags::ALL, false, *pRedoDoc);
@@ -5309,7 +5309,7 @@ bool ScDocFunc::InsertNameList( const ScAddress& rStartPos, bool bApi )
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoListNames( &rDocShell,
ScRange( nStartCol,nStartRow,nTab, nEndCol,nEndRow,nTab ),
- pUndoDoc, pRedoDoc ) );
+ std::move(pUndoDoc), std::move(pRedoDoc) ) );
}
if (!AdjustRowHeight(ScRange(0,nStartRow,nTab,MAXCOL,nEndRow,nTab)))
@@ -5464,12 +5464,12 @@ void ScDocFunc::ReplaceConditionalFormat( sal_uLong nOldFormat, ScConditionalFor
return;
bool bUndo = rDoc.IsUndoEnabled();
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
ScRange aCombinedRange = rRanges.Combine();
ScRange aCompleteRange;
if(bUndo)
{
- pUndoDoc = new ScDocument(SCDOCMODE_UNDO);
+ pUndoDoc.reset(new ScDocument(SCDOCMODE_UNDO));
pUndoDoc->InitUndo( &rDoc, nTab, nTab );
if(pFormat)
@@ -5516,13 +5516,13 @@ void ScDocFunc::ReplaceConditionalFormat( sal_uLong nOldFormat, ScConditionalFor
if(bUndo)
{
- ScDocument* pRedoDoc = new ScDocument(SCDOCMODE_UNDO);
+ ScDocumentUniquePtr pRedoDoc(new ScDocument(SCDOCMODE_UNDO));
pRedoDoc->InitUndo( &rDoc, nTab, nTab );
rDoc.CopyToDocument(aCompleteRange.aStart.Col(),aCompleteRange.aStart.Row(),nTab,
aCompleteRange.aEnd.Col(),aCompleteRange.aEnd.Row(),nTab,
InsertDeleteFlags::ALL, false, *pRedoDoc);
rDocShell.GetUndoManager()->AddUndoAction(
- new ScUndoConditionalFormat(&rDocShell, pUndoDoc, pRedoDoc, aCompleteRange));
+ new ScUndoConditionalFormat(&rDocShell, std::move(pUndoDoc), std::move(pRedoDoc), aCompleteRange));
}
if(pRepaintRange)
@@ -5540,16 +5540,16 @@ void ScDocFunc::SetConditionalFormatList( ScConditionalFormatList* pList, SCTAB
return;
bool bUndo = rDoc.IsUndoEnabled();
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
if (bUndo)
{
- pUndoDoc = new ScDocument(SCDOCMODE_UNDO);
+ pUndoDoc.reset(new ScDocument(SCDOCMODE_UNDO));
pUndoDoc->InitUndo( &rDoc, nTab, nTab );
ScConditionalFormatList* pOld = rDoc.GetCondFormList(nTab);
if (pOld)
- pUndoDoc->SetCondFormList(new ScConditionalFormatList(pUndoDoc, *pOld), nTab);
+ pUndoDoc->SetCondFormList(new ScConditionalFormatList(pUndoDoc.get(), *pOld), nTab);
else
pUndoDoc->SetCondFormList(nullptr, nTab);
@@ -5567,12 +5567,12 @@ void ScDocFunc::SetConditionalFormatList( ScConditionalFormatList* pList, SCTAB
if(bUndo)
{
- ScDocument* pRedoDoc = new ScDocument(SCDOCMODE_UNDO);
+ ScDocumentUniquePtr pRedoDoc(new ScDocument(SCDOCMODE_UNDO));
pRedoDoc->InitUndo( &rDoc, nTab, nTab );
- pRedoDoc->SetCondFormList(new ScConditionalFormatList(pRedoDoc, *pList), nTab);
+ pRedoDoc->SetCondFormList(new ScConditionalFormatList(pRedoDoc.get(), *pList), nTab);
rDocShell.GetUndoManager()->AddUndoAction(
- new ScUndoConditionalFormatList(&rDocShell, pUndoDoc, pRedoDoc, nTab));
+ new ScUndoConditionalFormatList(&rDocShell, std::move(pUndoDoc), std::move(pRedoDoc), nTab));
}
rDoc.SetStreamValid(nTab, false);
diff --git a/sc/source/ui/docshell/docsh5.cxx b/sc/source/ui/docshell/docsh5.cxx
index 5a7734749b5a..32f842080a0a 100644
--- a/sc/source/ui/docshell/docsh5.cxx
+++ b/sc/source/ui/docshell/docsh5.cxx
@@ -692,7 +692,7 @@ void ScDocShell::UseScenario( SCTAB nTab, const OUString& rName, bool bRecord )
if (bRecord)
{
- ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &m_aDocument, nTab,nEndTab ); // also all scenarios
// shown table:
m_aDocument.CopyToDocument(nStartCol, nStartRow, nTab,
@@ -718,7 +718,7 @@ void ScDocShell::UseScenario( SCTAB nTab, const OUString& rName, bool bRecord )
GetUndoManager()->AddUndoAction(
new ScUndoUseScenario( this, aScenMark,
ScArea( nTab,nStartCol,nStartRow,nEndCol,nEndRow ),
- pUndoDoc, rName ) );
+ std::move(pUndoDoc), rName ) );
}
m_aDocument.CopyScenario( nSrcTab, nTab );
diff --git a/sc/source/ui/docshell/impex.cxx b/sc/source/ui/docshell/impex.cxx
index 9128a93f0195..8a36dded1fe2 100644
--- a/sc/source/ui/docshell/impex.cxx
+++ b/sc/source/ui/docshell/impex.cxx
@@ -256,13 +256,13 @@ void ScImportExport::EndPaste(bool bAutoRowHeight)
if( pUndoDoc && pDoc->IsUndoEnabled() && pDocSh )
{
- ScDocument* pRedoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pRedoDoc(new ScDocument( SCDOCMODE_UNDO ));
pRedoDoc->InitUndo( pDoc, aRange.aStart.Tab(), aRange.aEnd.Tab() );
pDoc->CopyToDocument(aRange, InsertDeleteFlags::ALL | InsertDeleteFlags::NOCAPTIONS, false, *pRedoDoc);
ScMarkData aDestMark;
aDestMark.SetMarkArea(aRange);
pDocSh->GetUndoManager()->AddUndoAction(
- new ScUndoPaste(pDocSh, aRange, aDestMark, pUndoDoc.release(), pRedoDoc, InsertDeleteFlags::ALL, nullptr));
+ new ScUndoPaste(pDocSh, aRange, aDestMark, std::move(pUndoDoc), std::move(pRedoDoc), InsertDeleteFlags::ALL, nullptr));
}
pUndoDoc.reset();
if( pDocSh )
diff --git a/sc/source/ui/docshell/olinefun.cxx b/sc/source/ui/docshell/olinefun.cxx
index d22d5e3a11d8..b63de2cf27a4 100644
--- a/sc/source/ui/docshell/olinefun.cxx
+++ b/sc/source/ui/docshell/olinefun.cxx
@@ -220,7 +220,7 @@ bool ScOutlineDocFunc::RemoveAllOutlines( SCTAB nTab, bool bRecord )
SCCOL nEndCol = static_cast<SCCOL>(nCol2);
SCROW nEndRow = nRow2;
- ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nTab, nTab, true, true );
rDoc.CopyToDocument(nStartCol, 0, nTab, nEndCol, MAXROW, nTab, InsertDeleteFlags::NONE, false, *pUndoDoc);
rDoc.CopyToDocument(0, nStartRow, nTab, MAXCOL, nEndRow, nTab, InsertDeleteFlags::NONE, false, *pUndoDoc);
@@ -231,7 +231,7 @@ bool ScOutlineDocFunc::RemoveAllOutlines( SCTAB nTab, bool bRecord )
new ScUndoRemoveAllOutlines( &rDocShell,
nStartCol, nStartRow, nTab,
nEndCol, nEndRow, nTab,
- pUndoDoc, std::move(pUndoTab) ) );
+ std::move(pUndoDoc), std::move(pUndoTab) ) );
}
SelectLevel( nTab, true, pTable->GetColArray().GetDepth(), false, false );
@@ -266,7 +266,7 @@ void ScOutlineDocFunc::AutoOutline( const ScRange& rRange, bool bRecord )
bRecord = false;
ScOutlineTable* pTable = rDoc.GetOutlineTable( nTab );
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
std::unique_ptr<ScOutlineTable> pUndoTab;
if ( pTable )
@@ -283,7 +283,7 @@ void ScOutlineDocFunc::AutoOutline( const ScRange& rRange, bool bRecord )
SCCOL nOutEndCol = static_cast<SCCOL>(nCol2);
SCROW nOutEndRow = nRow2;
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nTab, nTab, true, true );
rDoc.CopyToDocument(nOutStartCol, 0, nTab, nOutEndCol, MAXROW, nTab, InsertDeleteFlags::NONE, false, *pUndoDoc);
rDoc.CopyToDocument(0, nOutStartRow, nTab, MAXCOL, nOutEndRow, nTab, InsertDeleteFlags::NONE, false, *pUndoDoc);
@@ -303,7 +303,7 @@ void ScOutlineDocFunc::AutoOutline( const ScRange& rRange, bool bRecord )
new ScUndoAutoOutline( &rDocShell,
nStartCol, nStartRow, nTab,
nEndCol, nEndRow, nTab,
- pUndoDoc, std::move(pUndoTab) ) );
+ std::move(pUndoDoc), std::move(pUndoTab) ) );
}
rDoc.SetStreamValid(nTab, false);
@@ -333,7 +333,7 @@ bool ScOutlineDocFunc::SelectLevel( SCTAB nTab, bool bColumns, sal_uInt16 nLevel
if (!comphelper::LibreOfficeKit::isActive() && bRecord )
{
std::unique_ptr<ScOutlineTable> pUndoTab(new ScOutlineTable( *pTable ));
- ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
if (bColumns)
{
pUndoDoc->InitUndo( &rDoc, nTab, nTab, true );
@@ -350,7 +350,7 @@ bool ScOutlineDocFunc::SelectLevel( SCTAB nTab, bool bColumns, sal_uInt16 nLevel
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoOutlineLevel( &rDocShell,
nStart, nEnd, nTab, //! calculate start and end
- pUndoDoc, std::move(pUndoTab),
+ std::move(pUndoDoc), std::move(pUndoTab),
bColumns, nLevel ) );
}
@@ -455,7 +455,7 @@ bool ScOutlineDocFunc::ShowMarkedOutlines( const ScRange& rRange, bool bRecord )
if ( !comphelper::LibreOfficeKit::isActive() && bRecord )
{
std::unique_ptr<ScOutlineTable> pUndoTab(new ScOutlineTable( *pTable ));
- ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nTab, nTab, true, true );
rDoc.CopyToDocument(nStartCol, 0, nTab, nEndCol, MAXROW, nTab, InsertDeleteFlags::NONE, false, *pUndoDoc);
rDoc.CopyToDocument(0, nStartRow, nTab, MAXCOL, nEndRow, nTab, InsertDeleteFlags::NONE, false, *pUndoDoc);
@@ -463,7 +463,7 @@ bool ScOutlineDocFunc::ShowMarkedOutlines( const ScRange& rRange, bool bRecord )
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoOutlineBlock( &rDocShell,
nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab,
- pUndoDoc, std::move(pUndoTab), true ) );
+ std::move(pUndoDoc), std::move(pUndoTab), true ) );
}
// Columns
@@ -581,7 +581,7 @@ bool ScOutlineDocFunc::HideMarkedOutlines( const ScRange& rRange, bool bRecord )
if ( !comphelper::LibreOfficeKit::isActive() && bRecord )
{
std::unique_ptr<ScOutlineTable> pUndoTab(new ScOutlineTable( *pTable ));
- ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nTab, nTab, true, true );
rDoc.CopyToDocument(static_cast<SCCOL>(nEffStartCol), 0, nTab,
static_cast<SCCOL>(nEffEndCol), MAXROW, nTab, InsertDeleteFlags::NONE,
@@ -591,7 +591,7 @@ bool ScOutlineDocFunc::HideMarkedOutlines( const ScRange& rRange, bool bRecord )
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoOutlineBlock( &rDocShell,
nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab,
- pUndoDoc, std::move(pUndoTab), false ) );
+ std::move(pUndoDoc), std::move(pUndoTab), false ) );
}
// Columns
@@ -651,7 +651,7 @@ void ScOutlineDocFunc::ShowOutline( SCTAB nTab, bool bColumns, sal_uInt16 nLevel
// this is a temporarily workaround
if ( !comphelper::LibreOfficeKit::isActive() && bRecord )
{
- ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
if (bColumns)
{
pUndoDoc->InitUndo( &rDoc, nTab, nTab, true );
@@ -667,7 +667,7 @@ void ScOutlineDocFunc::ShowOutline( SCTAB nTab, bool bColumns, sal_uInt16 nLevel
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoDoOutline( &rDocShell,
- nStart, nEnd, nTab, pUndoDoc, //! calc start and end
+ nStart, nEnd, nTab, std::move(pUndoDoc), //! calc start and end
bColumns, nLevel, nEntry, true ) );
}
@@ -743,7 +743,7 @@ bool ScOutlineDocFunc::HideOutline( SCTAB nTab, bool bColumns, sal_uInt16 nLevel
// this is a temporarily workaround
if ( !comphelper::LibreOfficeKit::isActive() && bRecord )
{
- ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
if (bColumns)
{
pUndoDoc->InitUndo( &rDoc, nTab, nTab, true );
@@ -759,7 +759,7 @@ bool ScOutlineDocFunc::HideOutline( SCTAB nTab, bool bColumns, sal_uInt16 nLevel
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoDoOutline( &rDocShell,
- nStart, nEnd, nTab, pUndoDoc,
+ nStart, nEnd, nTab, std::move(pUndoDoc),
bColumns, nLevel, nEntry, false ) );
}
diff --git a/sc/source/ui/inc/undoblk.hxx b/sc/source/ui/inc/undoblk.hxx
index ed47fb2913ee..c0c5963c97d8 100644
--- a/sc/source/ui/inc/undoblk.hxx
+++ b/sc/source/ui/inc/undoblk.hxx
@@ -141,7 +141,7 @@ public:
ScRange aRange, // adjusted for merged cells
const ScAddress& aOldEnd, // end position without adjustment
const ScMarkData& rMark, // selected sheets
- ScDocument* pNewUndoDoc );
+ ScDocumentUniquePtr pNewUndoDoc );
virtual ~ScUndoCut() override;
virtual void Undo() override;
@@ -185,7 +185,7 @@ class ScUndoPaste: public ScMultiBlockUndo
public:
ScUndoPaste(ScDocShell* pNewDocShell, const ScRangeList& rRanges,
const ScMarkData& rMark,
- ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc,
+ ScDocumentUniquePtr pNewUndoDoc, ScDocumentUniquePtr pNewRedoDoc,
InsertDeleteFlags nNewFlags,
ScRefUndoData* pRefData,
bool bRedoIsFilled = true,
@@ -201,8 +201,8 @@ public:
private:
ScMarkData aMarkData;
- std::unique_ptr<ScDocument> pUndoDoc;
- std::unique_ptr<ScDocument> pRedoDoc;
+ ScDocumentUniquePtr pUndoDoc;
+ ScDocumentUniquePtr pRedoDoc;
InsertDeleteFlags nFlags;
std::unique_ptr<ScRefUndoData> pRefUndoData;
std::unique_ptr<ScRefUndoData> pRefRedoData;
@@ -363,7 +363,7 @@ public:
const ScMarkData& rMark,
SCCOLROW nNewStart, SCTAB nNewStartTab,
SCCOLROW nNewEnd, SCTAB nNewEndTab,
- ScDocument* pNewUndoDoc,
+ ScDocumentUniquePtr pNewUndoDoc,
const std::vector<sc::ColRowSpan>& rRanges,
std::unique_ptr<ScOutlineTable> pNewUndoTab,
ScSizeMode eNewMode, sal_uInt16 nNewSizeTwips,
@@ -383,7 +383,7 @@ private:
SCCOLROW nEnd;
SCTAB nStartTab;
SCTAB nEndTab;
- std::unique_ptr<ScDocument> pUndoDoc;
+ ScDocumentUniquePtr pUndoDoc;
std::unique_ptr<ScOutlineTable> pUndoTab;
std::vector<sc::ColRowSpan> maRanges;
sal_uInt16 nNewSize;
@@ -599,7 +599,7 @@ class ScUndoListNames: public ScBlockUndo
public:
ScUndoListNames(ScDocShell* pNewDocShell,
const ScRange& rRange,
- ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc);
+ ScDocumentUniquePtr pNewUndoDoc, ScDocumentUniquePtr pNewRedoDoc);
virtual void Undo() override;
virtual void Redo() override;
@@ -619,7 +619,7 @@ class ScUndoConditionalFormat : public ScSimpleUndo
{
public:
ScUndoConditionalFormat( ScDocShell* pNewDocShell,
- ScDocument* pUndoDoc, ScDocument* pRedoDoc, const ScRange& rRange);
+ ScDocumentUniquePtr pUndoDoc, ScDocumentUniquePtr pRedoDoc, const ScRange& rRange);
virtual ~ScUndoConditionalFormat() override;
virtual void Undo() override;
@@ -640,7 +640,7 @@ class ScUndoConditionalFormatList : public ScSimpleUndo
{
public:
ScUndoConditionalFormatList( ScDocShell* pNewDocShell,
- ScDocument* pUndoDoc, ScDocument* pRedoDoc, SCTAB nTab);
+ ScDocumentUniquePtr pUndoDoc, ScDocumentUniquePtr pRedoDoc, SCTAB nTab);
virtual ~ScUndoConditionalFormatList() override;
virtual void Undo() override;
@@ -662,7 +662,7 @@ class ScUndoUseScenario: public ScSimpleUndo
public:
ScUndoUseScenario( ScDocShell* pNewDocShell,
const ScMarkData& rMark,
- const ScArea& rDestArea, ScDocument* pNewUndoDoc,
+ const ScArea& rDestArea, ScDocumentUniquePtr pNewUndoDoc,
const OUString& rNewName );
virtual ~ScUndoUseScenario() override;
@@ -688,7 +688,7 @@ public:
const ScMarkData& rMark,
const ScRange& rRange,
const OUString& rName,
- ScDocument* pNewUndoDoc );
+ ScDocumentUniquePtr pNewUndoDoc );
virtual ~ScUndoSelectionStyle() override;
virtual void Undo() override;
@@ -731,7 +731,7 @@ class ScUndoEnterMatrix: public ScBlockUndo
public:
ScUndoEnterMatrix( ScDocShell* pNewDocShell,
const ScRange& rArea,
- ScDocument* pNewUndoDoc,
+ ScDocumentUniquePtr pNewUndoDoc,
const OUString& rForm );
virtual ~ScUndoEnterMatrix() override;
@@ -850,7 +850,7 @@ class ScUndoIndent: public ScBlockUndo
{
public:
ScUndoIndent( ScDocShell* pNewDocShell, const ScMarkData& rMark,
- ScDocument* pNewUndoDoc, bool bIncrement );
+ ScDocumentUniquePtr pNewUndoDoc, bool bIncrement );
virtual ~ScUndoIndent() override;
virtual void Undo() override;
@@ -871,7 +871,7 @@ class ScUndoTransliterate: public ScBlockUndo
{
public:
ScUndoTransliterate( ScDocShell* pNewDocShell, const ScMarkData& rMark,
- ScDocument* pNewUndoDoc, TransliterationFlags nType );
+ ScDocumentUniquePtr pNewUndoDoc, TransliterationFlags nType );
virtual ~ScUndoTransliterate() override;
virtual void Undo() override;
diff --git a/sc/source/ui/inc/undodat.hxx b/sc/source/ui/inc/undodat.hxx
index b9155ddbeb8a..77d51e356825 100644
--- a/sc/source/ui/inc/undodat.hxx
+++ b/sc/source/ui/inc/undodat.hxx
@@ -45,7 +45,7 @@ class ScUndoDoOutline: public ScSimpleUndo
public:
ScUndoDoOutline( ScDocShell* pNewDocShell,
SCCOLROW nNewStart, SCCOLROW nNewEnd, SCTAB nNewTab,
- ScDocument* pNewUndoDoc, bool bNewColumns,
+ ScDocumentUniquePtr pNewUndoDoc, bool bNewColumns,
sal_uInt16 nNewLevel, sal_uInt16 nNewEntry, bool bNewShow );
virtual ~ScUndoDoOutline() override;
@@ -99,7 +99,7 @@ class ScUndoOutlineLevel: public ScSimpleUndo
public:
ScUndoOutlineLevel(ScDocShell* pNewDocShell,
SCCOLROW nNewStart, SCCOLROW nNewEnd, SCTAB nNewTab,
- ScDocument* pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab,
+ ScDocumentUniquePtr pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab,
bool bNewColumns, sal_uInt16 nNewLevel);
virtual void Undo() override;
@@ -125,7 +125,7 @@ public:
ScUndoOutlineBlock(ScDocShell* pNewDocShell,
SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
- ScDocument* pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab,
+ ScDocumentUniquePtr pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab,
bool bNewShow);
virtual void Undo() override;
@@ -149,7 +149,7 @@ public:
ScUndoRemoveAllOutlines(ScDocShell* pNewDocShell,
SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
- ScDocument* pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab);
+ ScDocumentUniquePtr pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab);
virtual void Undo() override;
virtual void Redo() override;
@@ -171,7 +171,7 @@ public:
ScUndoAutoOutline(ScDocShell* pNewDocShell,
SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
- ScDocument* pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab);
+ ScDocumentUniquePtr pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab);
virtual void Undo() override;
virtual void Redo() override;
@@ -192,7 +192,7 @@ class ScUndoSubTotals: public ScDBFuncUndo
public:
ScUndoSubTotals(ScDocShell* pNewDocShell, SCTAB nNewTab,
const ScSubTotalParam& rNewParam, SCROW nNewEndY,
- ScDocument* pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab,
+ ScDocumentUniquePtr pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab,
ScRangeName* pNewUndoRange, ScDBCollection* pNewUndoDB);
virtual void Undo() override;
@@ -216,7 +216,7 @@ class ScUndoQuery: public ScDBFuncUndo
{
public:
ScUndoQuery( ScDocShell* pNewDocShell, SCTAB nNewTab,
- const ScQueryParam& rParam, ScDocument* pNewUndoDoc,
+ const ScQueryParam& rParam, ScDocumentUniquePtr pNewUndoDoc,
ScDBCollection* pNewUndoDB, const ScRange* pOld,
bool bSize, const ScRange* pAdvSrc );
virtual ~ScUndoQuery() override;
@@ -288,7 +288,7 @@ public:
ScUndoImportData(ScDocShell* pNewDocShell, SCTAB nNewTab,
const ScImportParam& rParam, SCCOL nNewEndX, SCROW nNewEndY,
SCCOL nNewFormula,
- ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc,
+ ScDocumentUniquePtr pNewUndoDoc, ScDocumentUniquePtr pNewRedoDoc,
ScDBData* pNewUndoData, ScDBData* pNewRedoData);
virtual void Undo() override;
@@ -317,7 +317,7 @@ public:
ScUndoRepeatDB(ScDocShell* pNewDocShell, SCTAB nNewTab,
SCCOL nStartX, SCROW nStartY, SCCOL nEndX, SCROW nEndY,
SCROW nResultEndRow, SCCOL nCurX, SCROW nCurY,
- ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab,
+ ScDocumentUniquePtr pNewUndoDoc, ScOutlineTable* pNewUndoTab,
ScRangeName* pNewUndoRange, ScDBCollection* pNewUndoDB,
const ScRange* pOldQ, const ScRange* pNewQ);
@@ -346,7 +346,7 @@ class ScUndoDataPilot: public ScSimpleUndo
{
public:
ScUndoDataPilot(ScDocShell* pNewDocShell,
- ScDocument* pOldDoc, ScDocument* pNewDoc,
+ ScDocumentUniquePtr pOldDoc, ScDocumentUniquePtr pNewDoc,
const ScDPObject* pOldObj, const ScDPObject* pNewObj,
bool bMove);
diff --git a/sc/source/ui/undo/undoblk.cxx b/sc/source/ui/undo/undoblk.cxx
index df97db382da3..480c04d8e2ea 100644
--- a/sc/source/ui/undo/undoblk.cxx
+++ b/sc/source/ui/undo/undoblk.cxx
@@ -799,10 +799,10 @@ bool ScUndoDeleteMulti::CanRepeat(SfxRepeatTarget& rTarget) const
ScUndoCut::ScUndoCut( ScDocShell* pNewDocShell,
ScRange aRange, const ScAddress& aOldEnd, const ScMarkData& rMark,
- ScDocument* pNewUndoDoc ) :
+ ScDocumentUniquePtr pNewUndoDoc ) :
ScBlockUndo( pNewDocShell, ScRange(aRange.aStart, aOldEnd), SC_UNDO_AUTOHEIGHT ),
aMarkData( rMark ),
- pUndoDoc( pNewUndoDoc ),
+ pUndoDoc( std::move(pNewUndoDoc) ),
aExtendedRange( aRange )
{
SetChangeTrack();
@@ -899,14 +899,14 @@ bool ScUndoCut::CanRepeat(SfxRepeatTarget& rTarget) const
ScUndoPaste::ScUndoPaste( ScDocShell* pNewDocShell, const ScRangeList& rRanges,
const ScMarkData& rMark,
- ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc,
+ ScDocumentUniquePtr pNewUndoDoc, ScDocumentUniquePtr pNewRedoDoc,
InsertDeleteFlags nNewFlags,
ScRefUndoData* pRefData,
bool bRedoIsFilled, const ScUndoPasteOptions* pOptions ) :
ScMultiBlockUndo( pNewDocShell, rRanges ),
aMarkData( rMark ),
- pUndoDoc( pNewUndoDoc ),
- pRedoDoc( pNewRedoDoc ),
+ pUndoDoc( std::move(pNewUndoDoc) ),
+ pRedoDoc( std::move(pNewRedoDoc) ),
nFlags( nNewFlags ),
pRefUndoData( pRefData ),
pRefRedoData( nullptr ),
@@ -1506,10 +1506,10 @@ bool ScUndoDragDrop::CanRepeat(SfxRepeatTarget& /* rTarget */) const
// Insert list containing range names
// (Insert|Name|Insert =>[List])
ScUndoListNames::ScUndoListNames(ScDocShell* pNewDocShell, const ScRange& rRange,
- ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc)
+ ScDocumentUniquePtr pNewUndoDoc, ScDocumentUniquePtr pNewRedoDoc)
: ScBlockUndo(pNewDocShell, rRange, SC_UNDO_AUTOHEIGHT)
- , xUndoDoc(pNewUndoDoc)
- , xRedoDoc(pNewRedoDoc)
+ , xUndoDoc(std::move(pNewUndoDoc))
+ , xRedoDoc(std::move(pNewRedoDoc))
{
}
@@ -1557,10 +1557,10 @@ bool ScUndoListNames::CanRepeat(SfxRepeatTarget& rTarget) const
}
ScUndoConditionalFormat::ScUndoConditionalFormat(ScDocShell* pNewDocShell,
- ScDocument* pUndoDoc, ScDocument* pRedoDoc, const ScRange& rRange):
+ ScDocumentUniquePtr pUndoDoc, ScDocumentUniquePtr pRedoDoc, const ScRange& rRange):
ScSimpleUndo( pNewDocShell ),
- mpUndoDoc(pUndoDoc),
- mpRedoDoc(pRedoDoc),
+ mpUndoDoc(std::move(pUndoDoc)),
+ mpRedoDoc(std::move(pRedoDoc)),
maRange(rRange)
{
}
@@ -1607,10 +1607,10 @@ bool ScUndoConditionalFormat::CanRepeat(SfxRepeatTarget& ) const
}
ScUndoConditionalFormatList::ScUndoConditionalFormatList(ScDocShell* pNewDocShell,
- ScDocument* pUndoDoc, ScDocument* pRedoDoc, SCTAB nTab):
+ ScDocumentUniquePtr pUndoDoc, ScDocumentUniquePtr pRedoDoc, SCTAB nTab):
ScSimpleUndo( pNewDocShell ),
- mpUndoDoc(pUndoDoc),
- mpRedoDoc(pRedoDoc),
+ mpUndoDoc(std::move(pUndoDoc)),
+ mpRedoDoc(std::move(pRedoDoc)),
mnTab(nTab)
{
}
@@ -1669,10 +1669,10 @@ bool ScUndoConditionalFormatList::CanRepeat(SfxRepeatTarget& ) const
ScUndoUseScenario::ScUndoUseScenario( ScDocShell* pNewDocShell,
const ScMarkData& rMark,
/*C*/ const ScArea& rDestArea,
- ScDocument* pNewUndoDoc,
+ ScDocumentUniquePtr pNewUndoDoc,
const OUString& rNewName ) :
ScSimpleUndo( pNewDocShell ),
- pUndoDoc( pNewUndoDoc ),
+ pUndoDoc( std::move(pNewUndoDoc) ),
aMarkData( rMark ),
aName( rNewName )
{
@@ -1789,10 +1789,10 @@ ScUndoSelectionStyle::ScUndoSelectionStyle( ScDocShell* pNewDocShell,
const ScMarkData& rMark,
const ScRange& rRange,
const OUString& rName,
- ScDocument* pNewUndoDoc ) :
+ ScDocumentUniquePtr pNewUndoDoc ) :
ScSimpleUndo( pNewDocShell ),
aMarkData( rMark ),
- pUndoDoc( pNewUndoDoc ),
+ pUndoDoc( std::move(pNewUndoDoc) ),
aStyleName( rName ),
aRange( rRange )
{
@@ -1890,9 +1890,9 @@ bool ScUndoSelectionStyle::CanRepeat(SfxRepeatTarget& rTarget) const
}
ScUndoEnterMatrix::ScUndoEnterMatrix( ScDocShell* pNewDocShell, const ScRange& rArea,
- ScDocument* pNewUndoDoc, const OUString& rForm ) :
+ ScDocumentUniquePtr pNewUndoDoc, const OUString& rForm ) :
ScBlockUndo( pNewDocShell, rArea, SC_UNDO_SIMPLE ),
- pUndoDoc( pNewUndoDoc ),
+ pUndoDoc( std::move(pNewUndoDoc) ),
aFormula( rForm )
{
SetChangeTrack();
@@ -1983,10 +1983,10 @@ static ScRange lcl_GetMultiMarkRange( const ScMarkData& rMark )
}
ScUndoIndent::ScUndoIndent( ScDocShell* pNewDocShell, const ScMarkData& rMark,
- ScDocument* pNewUndoDoc, bool bIncrement ) :
+ ScDocumentUniquePtr pNewUndoDoc, bool bIncrement ) :
ScBlockUndo( pNewDocShell, lcl_GetMultiMarkRange(rMark), SC_UNDO_AUTOHEIGHT ),
aMarkData( rMark ),
- pUndoDoc( pNewUndoDoc ),
+ pUndoDoc( std::move(pNewUndoDoc) ),
bIsIncrement( bIncrement )
{
}
@@ -2039,10 +2039,10 @@ bool ScUndoIndent::CanRepeat(SfxRepeatTarget& rTarget) const
}
ScUndoTransliterate::ScUndoTransliterate( ScDocShell* pNewDocShell, const ScMarkData& rMark,
- ScDocument* pNewUndoDoc, TransliterationFlags nType ) :
+ ScDocumentUniquePtr pNewUndoDoc, TransliterationFlags nType ) :
ScBlockUndo( pNewDocShell, lcl_GetMultiMarkRange(rMark), SC_UNDO_AUTOHEIGHT ),
aMarkData( rMark ),
- pUndoDoc( pNewUndoDoc ),
+ pUndoDoc( std::move(pNewUndoDoc) ),
nTransliterationType( nType )
{
}
diff --git a/sc/source/ui/undo/undoblk2.cxx b/sc/source/ui/undo/undoblk2.cxx
index 78a6d898a8c3..24f1ee9a24c0 100644
--- a/sc/source/ui/undo/undoblk2.cxx
+++ b/sc/source/ui/undo/undoblk2.cxx
@@ -38,7 +38,7 @@
ScUndoWidthOrHeight::ScUndoWidthOrHeight( ScDocShell* pNewDocShell,
const ScMarkData& rMark,
SCCOLROW nNewStart, SCTAB nNewStartTab, SCCOLROW nNewEnd, SCTAB nNewEndTab,
- ScDocument* pNewUndoDoc, const std::vector<sc::ColRowSpan>& rRanges,
+ ScDocumentUniquePtr pNewUndoDoc, const std::vector<sc::ColRowSpan>& rRanges,
std::unique_ptr<ScOutlineTable> pNewUndoTab,
ScSizeMode eNewMode, sal_uInt16 nNewSizeTwips, bool bNewWidth ) :
ScSimpleUndo( pNewDocShell ),
@@ -47,7 +47,7 @@ ScUndoWidthOrHeight::ScUndoWidthOrHeight( ScDocShell* pNewDocShell,
nEnd( nNewEnd ),
nStartTab( nNewStartTab ),
nEndTab( nNewEndTab ),
- pUndoDoc( pNewUndoDoc ),
+ pUndoDoc( std::move(pNewUndoDoc) ),
pUndoTab( std::move(pNewUndoTab) ),
maRanges(rRanges),
nNewSize( nNewSizeTwips ),
diff --git a/sc/source/ui/undo/undodat.cxx b/sc/source/ui/undo/undodat.cxx
index 5bd7e6adf551..d0dec03b7fd8 100644
--- a/sc/source/ui/undo/undodat.cxx
+++ b/sc/source/ui/undo/undodat.cxx
@@ -52,13 +52,13 @@
ScUndoDoOutline::ScUndoDoOutline( ScDocShell* pNewDocShell,
SCCOLROW nNewStart, SCCOLROW nNewEnd, SCTAB nNewTab,
- ScDocument* pNewUndoDoc, bool bNewColumns,
+ ScDocumentUniquePtr pNewUndoDoc, bool bNewColumns,
sal_uInt16 nNewLevel, sal_uInt16 nNewEntry, bool bNewShow ) :
ScSimpleUndo( pNewDocShell ),
nStart( nNewStart ),
nEnd( nNewEnd ),
nTab( nNewTab ),
- pUndoDoc( pNewUndoDoc ),
+ pUndoDoc( std::move(pNewUndoDoc) ),
bColumns( bNewColumns ),
nLevel( nNewLevel ),
nEntry( nNewEntry ),
@@ -226,13 +226,13 @@ bool ScUndoMakeOutline::CanRepeat(SfxRepeatTarget& rTarget) const
ScUndoOutlineLevel::ScUndoOutlineLevel( ScDocShell* pNewDocShell,
SCCOLROW nNewStart, SCCOLROW nNewEnd, SCTAB nNewTab,
- ScDocument* pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab,
+ ScDocumentUniquePtr pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab,
bool bNewColumns, sal_uInt16 nNewLevel )
: ScSimpleUndo(pNewDocShell)
, nStart(nNewStart)
, nEnd(nNewEnd)
, nTab(nNewTab)
- , xUndoDoc(pNewUndoDoc)
+ , xUndoDoc(std::move(pNewUndoDoc))
, xUndoTable(std::move(pNewUndoTab))
, bColumns(bNewColumns)
, nLevel(nNewLevel)
@@ -308,11 +308,11 @@ bool ScUndoOutlineLevel::CanRepeat(SfxRepeatTarget& rTarget) const
ScUndoOutlineBlock::ScUndoOutlineBlock( ScDocShell* pNewDocShell,
SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
- ScDocument* pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab, bool bNewShow ) :
+ ScDocumentUniquePtr pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab, bool bNewShow ) :
ScSimpleUndo( pNewDocShell ),
aBlockStart( nStartX, nStartY, nStartZ ),
aBlockEnd( nEndX, nEndY, nEndZ ),
- xUndoDoc(pNewUndoDoc),
+ xUndoDoc(std::move(pNewUndoDoc)),
xUndoTable(std::move(pNewUndoTab)),
bShow( bNewShow )
{
@@ -408,11 +408,11 @@ bool ScUndoOutlineBlock::CanRepeat(SfxRepeatTarget& rTarget) const
ScUndoRemoveAllOutlines::ScUndoRemoveAllOutlines(ScDocShell* pNewDocShell,
SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
- ScDocument* pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab)
+ ScDocumentUniquePtr pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab)
: ScSimpleUndo(pNewDocShell)
, aBlockStart(nStartX, nStartY, nStartZ)
, aBlockEnd(nEndX, nEndY, nEndZ)
- , xUndoDoc(pNewUndoDoc)
+ , xUndoDoc(std::move(pNewUndoDoc))
, xUndoTable(std::move(pNewUndoTab))
{
}
@@ -489,11 +489,11 @@ bool ScUndoRemoveAllOutlines::CanRepeat(SfxRepeatTarget& rTarget) const
ScUndoAutoOutline::ScUndoAutoOutline(ScDocShell* pNewDocShell,
SCCOL nStartX, SCROW nStartY, SCTAB nStartZ,
SCCOL nEndX, SCROW nEndY, SCTAB nEndZ,
- ScDocument* pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab)
+ ScDocumentUniquePtr pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab)
: ScSimpleUndo(pNewDocShell)
, aBlockStart(nStartX, nStartY, nStartZ)
, aBlockEnd(nEndX, nEndY, nEndZ)
- , xUndoDoc(pNewUndoDoc)
+ , xUndoDoc(std::move(pNewUndoDoc))
, xUndoTable(std::move(pNewUndoTab))
{
}
@@ -585,14 +585,14 @@ bool ScUndoAutoOutline::CanRepeat(SfxRepeatTarget& rTarget) const
ScUndoSubTotals::ScUndoSubTotals(ScDocShell* pNewDocShell, SCTAB nNewTab,
const ScSubTotalParam& rNewParam, SCROW nNewEndY,
- ScDocument* pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab,
+ ScDocumentUniquePtr pNewUndoDoc, std::unique_ptr<ScOutlineTable> pNewUndoTab,
ScRangeName* pNewUndoRange, ScDBCollection* pNewUndoDB)
: ScDBFuncUndo(pNewDocShell, ScRange(rNewParam.nCol1, rNewParam.nRow1, nNewTab,
rNewParam.nCol2, rNewParam.nRow2, nNewTab))
, nTab(nNewTab)
, aParam(rNewParam)
, nNewEndRow(nNewEndY)
- , xUndoDoc(pNewUndoDoc)
+ , xUndoDoc(std::move(pNewUndoDoc))
, xUndoTable(std::move(pNewUndoTab))
, xUndoRange(pNewUndoRange)
, xUndoDB(pNewUndoDB)
@@ -698,14 +698,14 @@ bool ScUndoSubTotals::CanRepeat(SfxRepeatTarget& /* rTarget */) const
}
ScUndoQuery::ScUndoQuery( ScDocShell* pNewDocShell, SCTAB nNewTab, const ScQueryParam& rParam,
- ScDocument* pNewUndoDoc, ScDBCollection* pNewUndoDB,
+ ScDocumentUniquePtr pNewUndoDoc, ScDBCollection* pNewUndoDB,
const ScRange* pOld, bool bSize, const ScRange* pAdvSrc ) :
ScDBFuncUndo( pNewDocShell, ScRange( rParam.nCol1, rParam.nRow1, nNewTab,
rParam.nCol2, rParam.nRow2, nNewTab ) ),
pDrawUndo( nullptr ),
nTab( nNewTab ),
aQueryParam( rParam ),
- xUndoDoc( pNewUndoDoc ),
+ xUndoDoc( std::move(pNewUndoDoc) ),
xUndoDB( pNewUndoDB ),
bIsAdvanced( false ),
bDestArea( false ),
@@ -1019,15 +1019,15 @@ bool ScUndoDBData::CanRepeat(SfxRepeatTarget& /* rTarget */) const
ScUndoImportData::ScUndoImportData( ScDocShell* pNewDocShell, SCTAB nNewTab,
const ScImportParam& rParam, SCCOL nNewEndX, SCROW nNewEndY,
SCCOL nNewFormula,
- ScDocument* pNewUndoDoc, ScDocument* pNewRedoDoc,
+ ScDocumentUniquePtr pNewUndoDoc, ScDocumentUniquePtr pNewRedoDoc,
ScDBData* pNewUndoData, ScDBData* pNewRedoData ) :
ScSimpleUndo( pNewDocShell ),
nTab( nNewTab ),
aImportParam( rParam ),
nEndCol( nNewEndX ),
nEndRow( nNewEndY ),
- xUndoDoc(pNewUndoDoc),
- xRedoDoc(pNewRedoDoc),
+ xUndoDoc(std::move(pNewUndoDoc)),
+ xRedoDoc(std::move(pNewRedoDoc)),
xUndoDBData(pNewUndoData),
xRedoDBData(pNewRedoData),
nFormulaCols( nNewFormula ),
@@ -1223,7 +1223,7 @@ bool ScUndoImportData::CanRepeat(SfxRepeatTarget& rTarget) const
ScUndoRepeatDB::ScUndoRepeatDB( ScDocShell* pNewDocShell, SCTAB nNewTab,
SCCOL nStartX, SCROW nStartY, SCCOL nEndX, SCROW nEndY,
SCROW nResultEndRow, SCCOL nCurX, SCROW nCurY,
- ScDocument* pNewUndoDoc, ScOutlineTable* pNewUndoTab,
+ ScDocumentUniquePtr pNewUndoDoc, ScOutlineTable* pNewUndoTab,
ScRangeName* pNewUndoRange, ScDBCollection* pNewUndoDB,
const ScRange* pOldQ, const ScRange* pNewQ ) :
ScSimpleUndo( pNewDocShell ),
@@ -1231,7 +1231,7 @@ ScUndoRepeatDB::ScUndoRepeatDB( ScDocShell* pNewDocShell, SCTAB nNewTab,
aBlockEnd( nEndX,nEndY,nNewTab ),
nNewEndRow( nResultEndRow ),
aCursorPos( nCurX,nCurY,nNewTab ),
- xUndoDoc(pNewUndoDoc),
+ xUndoDoc(std::move(pNewUndoDoc)),
xUndoTable(pNewUndoTab),
xUndoRange(pNewUndoRange),
xUndoDB(pNewUndoDB),
@@ -1379,11 +1379,11 @@ bool ScUndoRepeatDB::CanRepeat(SfxRepeatTarget& rTarget) const
}
ScUndoDataPilot::ScUndoDataPilot( ScDocShell* pNewDocShell,
- ScDocument* pOldDoc, ScDocument* pNewDoc,
+ ScDocumentUniquePtr pOldDoc, ScDocumentUniquePtr pNewDoc,
const ScDPObject* pOldObj, const ScDPObject* pNewObj, bool bMove )
: ScSimpleUndo(pNewDocShell)
- , xOldUndoDoc(pOldDoc)
- , xNewUndoDoc(pNewDoc)
+ , xOldUndoDoc(std::move(pOldDoc))
+ , xNewUndoDoc(std::move(pNewDoc))
, bAllowMove( bMove)
{
if (pOldObj)
diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx
index 645c6bc4aefd..e957cb22faef 100644
--- a/sc/source/ui/unoobj/cellsuno.cxx
+++ b/sc/source/ui/unoobj/cellsuno.cxx
@@ -1126,10 +1126,10 @@ static bool lcl_PutDataArray( ScDocShell& rDocShell, const ScRange& rRange,
return false;
}
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
if ( bUndo )
{
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nTab, nTab );
rDoc.CopyToDocument(rRange, InsertDeleteFlags::CONTENTS|InsertDeleteFlags::NOCAPTIONS, false, *pUndoDoc);
}
@@ -1224,7 +1224,7 @@ static bool lcl_PutDataArray( ScDocShell& rDocShell, const ScRange& rRange,
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoPaste(
&rDocShell, ScRange(nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab),
- aDestMark, pUndoDoc, nullptr, InsertDeleteFlags::CONTENTS, nullptr, false));
+ aDestMark, std::move(pUndoDoc), nullptr, InsertDeleteFlags::CONTENTS, nullptr, false));
}
if (!bHeight)
@@ -1265,10 +1265,10 @@ static bool lcl_PutFormulaArray( ScDocShell& rDocShell, const ScRange& rRange,
return false;
}
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
if ( bUndo )
{
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nTab, nTab );
rDoc.CopyToDocument(rRange, InsertDeleteFlags::CONTENTS, false, *pUndoDoc);
}
@@ -1325,7 +1325,7 @@ static bool lcl_PutFormulaArray( ScDocShell& rDocShell, const ScRange& rRange,
rDocShell.GetUndoManager()->AddUndoAction(
new ScUndoPaste( &rDocShell,
ScRange(nStartCol, nStartRow, nTab, nEndCol, nEndRow, nTab), aDestMark,
- pUndoDoc, nullptr, InsertDeleteFlags::CONTENTS, nullptr, false));
+ std::move(pUndoDoc), nullptr, InsertDeleteFlags::CONTENTS, nullptr, false));
}
if (!bHeight)
diff --git a/sc/source/ui/view/dbfunc3.cxx b/sc/source/ui/view/dbfunc3.cxx
index b00359412132..57608b8bb091 100644
--- a/sc/source/ui/view/dbfunc3.cxx
+++ b/sc/source/ui/view/dbfunc3.cxx
@@ -437,7 +437,7 @@ void ScDBFunc::DoSubTotals( const ScSubTotalParam& rParam, bool bRecord,
ScDocShellModificator aModificator( *pDocSh );
ScSubTotalParam aNewParam( rParam ); // change end of range
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
std::unique_ptr<ScOutlineTable> pUndoTab;
ScRangeName* pUndoRange = nullptr;
ScDBCollection* pUndoDB = nullptr;
@@ -446,7 +446,7 @@ void ScDBFunc::DoSubTotals( const ScSubTotalParam& rParam, bool bRecord,
{
bool bOldFilter = bDo && rParam.bDoSort;
SCTAB nTabCount = rDoc.GetTableCount();
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
ScOutlineTable* pTable = rDoc.GetOutlineTable( nTab );
if (pTable)
{
@@ -526,7 +526,7 @@ void ScDBFunc::DoSubTotals( const ScSubTotalParam& rParam, bool bRecord,
pDocSh->GetUndoManager()->AddUndoAction(
new ScUndoSubTotals( pDocSh, nTab,
rParam, aNewParam.nRow2,
- pUndoDoc, std::move(pUndoTab), // pUndoDBData,
+ std::move(pUndoDoc), std::move(pUndoTab), // pUndoDBData,
pUndoRange, pUndoDB ) );
}
@@ -2130,7 +2130,7 @@ void ScDBFunc::RepeatDB( bool bRecord )
//! undo only needed data ?
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
ScOutlineTable* pUndoTab = nullptr;
ScRangeName* pUndoRange = nullptr;
ScDBCollection* pUndoDB = nullptr;
@@ -2138,7 +2138,7 @@ void ScDBFunc::RepeatDB( bool bRecord )
if (bRecord)
{
SCTAB nTabCount = pDoc->GetTableCount();
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
ScOutlineTable* pTable = pDoc->GetOutlineTable( nTab );
if (pTable)
{
@@ -2235,7 +2235,7 @@ void ScDBFunc::RepeatDB( bool bRecord )
nStartCol, nStartRow, nEndCol, nEndRow,
nNewEndRow,
nCurX, nCurY,
- pUndoDoc, pUndoTab,
+ std::move(pUndoDoc), pUndoTab,
pUndoRange, pUndoDB,
pOld, pNew ) );
}
diff --git a/sc/source/ui/view/viewfun3.cxx b/sc/source/ui/view/viewfun3.cxx
index d052717e7a57..0453c0c0bd85 100644
--- a/sc/source/ui/view/viewfun3.cxx
+++ b/sc/source/ui/view/viewfun3.cxx
@@ -113,10 +113,10 @@ void ScViewFunc::CutToClip()
ScAddress aOldEnd( aRange.aEnd ); // combined cells in this range?
pDoc->ExtendMerge( aRange, true );
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
if ( bRecord )
{
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndoSelected( pDoc, rMark );
// all sheets - CopyToDocument skips those that don't exist in pUndoDoc
ScRange aCopyRange = aRange;
@@ -139,7 +139,7 @@ void ScViewFunc::CutToClip()
if ( bRecord ) // Draw-Undo now available
pDocSh->GetUndoManager()->AddUndoAction(
- new ScUndoCut( pDocSh, aRange, aOldEnd, rMark, pUndoDoc ) );
+ new ScUndoCut( pDocSh, aRange, aOldEnd, rMark, std::move(pUndoDoc) ) );
aModificator.SetDocumentModified();
pDocSh->UpdateOle(&GetViewData());
@@ -1241,13 +1241,13 @@ bool ScViewFunc::PasteFromClip( InsertDeleteFlags nFlags, ScDocument* pClipDoc,
bool bColInfo = ( nStartRow==0 && nEndRow==MAXROW );
bool bRowInfo = ( nStartCol==0 && nEndCol==MAXCOL );
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
ScDocument* pRefUndoDoc = nullptr;
ScRefUndoData* pUndoData = nullptr;
if ( bRecord )
{
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndoSelected( pDoc, aFilteredMark, bColInfo, bRowInfo );
// all sheets - CopyToDocument skips those that don't exist in pUndoDoc
@@ -1376,20 +1376,20 @@ bool ScViewFunc::PasteFromClip( InsertDeleteFlags nFlags, ScDocument* pClipDoc,
if ( bRecord )
{
- ScDocument* pRedoDoc = nullptr;
+ ScDocumentUniquePtr pRedoDoc;
// copy redo data after appearance of the first undo
// don't create Redo-Doc without RefUndoDoc
if (pRefUndoDoc)
{
- pRedoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pRedoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
pRedoDoc->InitUndo( pDoc, nStartTab, nEndTab, bColInfo, bRowInfo );
// move adapted refs to Redo-Doc
SCTAB nTabCount = pDoc->GetTableCount();
pRedoDoc->AddUndoTab( 0, nTabCount-1 );
- pDoc->CopyUpdated( pRefUndoDoc, pRedoDoc );
+ pDoc->CopyUpdated( pRefUndoDoc, pRedoDoc.get() );
// move old refs to Undo-Doc
@@ -1413,7 +1413,7 @@ bool ScViewFunc::PasteFromClip( InsertDeleteFlags nFlags, ScDocument* pClipDoc,
SfxUndoAction* pUndo = new ScUndoPaste(
pDocSh, ScRange(nStartCol, nStartRow, nStartTab, nUndoEndCol, nUndoEndRow, nEndTab),
- aFilteredMark, pUndoDoc, pRedoDoc, nFlags | nUndoFlags, pUndoData,
+ aFilteredMark, std::move(pUndoDoc), std::move(pRedoDoc), nFlags | nUndoFlags, pUndoData,
false, &aOptions ); // false = Redo data not yet copied
if ( bInsertCells )
@@ -1611,7 +1611,7 @@ bool ScViewFunc::PasteMultiRangesFromClip(
aOptions.eMoveMode = eMoveMode;
ScUndoPaste* pUndo = new ScUndoPaste(pDocSh,
- aMarkedRange, aMark, pUndoDoc.release(), nullptr, nFlags|nUndoFlags, nullptr, false, &aOptions);
+ aMarkedRange, aMark, std::move(pUndoDoc), nullptr, nFlags|nUndoFlags, nullptr, false, &aOptions);
if (bInsertCells)
pUndoMgr->AddUndoAction(new ScUndoWrapper(pUndo), true);
@@ -1776,7 +1776,7 @@ bool ScViewFunc::PasteFromClipToMultiRanges(
aOptions.eMoveMode = eMoveMode;
ScUndoPaste* pUndo = new ScUndoPaste(
- pDocSh, aRanges, aMark, pUndoDoc.release(), nullptr, nFlags|nUndoFlags, nullptr, false, &aOptions);
+ pDocSh, aRanges, aMark, std::move(pUndoDoc), nullptr, nFlags|nUndoFlags, nullptr, false, &aOptions);
pUndoMgr->AddUndoAction(pUndo);
pUndoMgr->LeaveListAction();
diff --git a/sc/source/ui/view/viewfun4.cxx b/sc/source/ui/view/viewfun4.cxx
index dbcf8352622e..df21a4940e50 100644
--- a/sc/source/ui/view/viewfun4.cxx
+++ b/sc/source/ui/view/viewfun4.cxx
@@ -112,10 +112,10 @@ void ScViewFunc::PasteRTF( SCCOL nStartCol, SCROW nStartRow,
if (nEndRow > MAXROW)
nEndRow = MAXROW;
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
if (bRecord)
{
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nTab, nTab );
rDoc.CopyToDocument( nStartCol,nStartRow,nTab, nStartCol,nEndRow,nTab, InsertDeleteFlags::ALL, false, *pUndoDoc );
}
@@ -136,7 +136,7 @@ void ScViewFunc::PasteRTF( SCCOL nStartCol, SCROW nStartRow,
if (bRecord)
{
- ScDocument* pRedoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pRedoDoc(new ScDocument( SCDOCMODE_UNDO ));
pRedoDoc->InitUndo( &rDoc, nTab, nTab );
rDoc.CopyToDocument( nStartCol,nStartRow,nTab, nStartCol,nEndRow,nTab, InsertDeleteFlags::ALL|InsertDeleteFlags::NOCAPTIONS, false, *pRedoDoc );
@@ -145,7 +145,7 @@ void ScViewFunc::PasteRTF( SCCOL nStartCol, SCROW nStartRow,
aDestMark.SetMarkArea( aMarkRange );
pDocSh->GetUndoManager()->AddUndoAction(
new ScUndoPaste( pDocSh, aMarkRange, aDestMark,
- pUndoDoc, pRedoDoc, InsertDeleteFlags::ALL, nullptr));
+ std::move(pUndoDoc), std::move(pRedoDoc), InsertDeleteFlags::ALL, nullptr));
}
}
diff --git a/sc/source/ui/view/viewfunc.cxx b/sc/source/ui/view/viewfunc.cxx
index e433d96fd2ab..7ba426a61828 100644
--- a/sc/source/ui/view/viewfunc.cxx
+++ b/sc/source/ui/view/viewfunc.cxx
@@ -1353,7 +1353,7 @@ void ScViewFunc::SetStyleSheetToMarked( const SfxStyleSheet* pStyleSheet )
if ( bRecord )
{
SCTAB nTab = rViewData.GetTabNo();
- ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nTab, nTab );
ScMarkData::iterator itr = aFuncMark.begin(), itrEnd = aFuncMark.end();
for (; itr != itrEnd; ++itr)
@@ -1368,7 +1368,7 @@ void ScViewFunc::SetStyleSheetToMarked( const SfxStyleSheet* pStyleSheet )
OUString aName = pStyleSheet->GetName();
pDocSh->GetUndoManager()->AddUndoAction(
- new ScUndoSelectionStyle( pDocSh, aFuncMark, aMarkRange, aName, pUndoDoc ) );
+ new ScUndoSelectionStyle( pDocSh, aFuncMark, aMarkRange, aName, std::move(pUndoDoc) ) );
}
rDoc.ApplySelectionStyle( static_cast<const ScStyleSheet&>(*pStyleSheet), aFuncMark );
@@ -1386,7 +1386,7 @@ void ScViewFunc::SetStyleSheetToMarked( const SfxStyleSheet* pStyleSheet )
if ( bRecord )
{
- ScDocument* pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ ScDocumentUniquePtr pUndoDoc(new ScDocument( SCDOCMODE_UNDO ));
pUndoDoc->InitUndo( &rDoc, nTab, nTab );
ScMarkData::iterator itr = aFuncMark.begin(), itrEnd = aFuncMark.end();
for (; itr != itrEnd; ++itr)
@@ -1402,7 +1402,7 @@ void ScViewFunc::SetStyleSheetToMarked( const SfxStyleSheet* pStyleSheet )
OUString aName = pStyleSheet->GetName();
pDocSh->GetUndoManager()->AddUndoAction(
- new ScUndoSelectionStyle( pDocSh, aUndoMark, aMarkRange, aName, pUndoDoc ) );
+ new ScUndoSelectionStyle( pDocSh, aUndoMark, aMarkRange, aName, std::move(pUndoDoc) ) );
}
ScMarkData::iterator itr = aFuncMark.begin(), itrEnd = aFuncMark.end();
@@ -2062,7 +2062,7 @@ void ScViewFunc::SetWidthOrHeight(
bFormula = rOpts.GetOption( VOPT_FORMULAS );
}
- ScDocument* pUndoDoc = nullptr;
+ ScDocumentUniquePtr pUndoDoc;
std::unique_ptr<ScOutlineTable> pUndoTab;
std::vector<sc::ColRowSpan> aUndoRanges;
@@ -2070,7 +2070,7 @@ void ScViewFunc::SetWidthOrHeight(
{
rDoc.BeginDrawUndo(); // Drawing Updates
- pUndoDoc = new ScDocument( SCDOCMODE_UNDO );
+ pUndoDoc.reset(new ScDocument( SCDOCMODE_UNDO ));
itr = aMarkData.begin();
for (; itr != itrEnd; ++itr)
{
@@ -2232,7 +2232,7 @@ void ScViewFunc::SetWidthOrHeight(
pDocSh->GetUndoManager()->AddUndoAction(
new ScUndoWidthOrHeight(
pDocSh, aMarkData, nStart, nCurTab, nEnd, nCurTab,
- pUndoDoc, aUndoRanges, std::move(pUndoTab), eMode, nSizeTwips, bWidth));
+ std::move(pUndoDoc), aUndoRanges, std::move(pUndoTab), eMode, nSizeTwips, bWidth));
}
if (nCurX < 0)
More information about the Libreoffice-commits
mailing list