Kaydet (Commit) 9aa36a1a authored tarafından Kohei Yoshida's avatar Kohei Yoshida

Move this one to a common place too.

Change-Id: I7f4e007cfc861dc323b42be353c6ba11091e8fa1
üst 7adef94b
......@@ -637,11 +637,9 @@ bool ScDocFunc::DeleteContents( const ScMarkData& rMark, InsertDeleteFlags nFlag
// add undo action after drawing undo is complete (objects and note captions)
if( bRecord )
{
ScUndoDeleteContents* pUndo =
new ScUndoDeleteContents(
&rDocShell, aMultiMark, aExtendedRange, pUndoDoc, bMulti, nFlags, bDrawUndo);
rDocShell.GetUndoManager()->AddUndoAction(pUndo);
pUndo->SetDataSpans(pDataSpans);
sc::DocFuncUtil::addDeleteContentsUndo(
rDocShell.GetUndoManager(), &rDocShell, aMultiMark, aExtendedRange,
pUndoDoc, nFlags, pDataSpans, bMulti, bDrawUndo);
}
if (!AdjustRowHeight( aExtendedRange ))
......
......@@ -22,6 +22,7 @@
#include <markdata.hxx>
#include <undobase.hxx>
#include <global.hxx>
#include <undoblk.hxx>
#include <memory>
......@@ -70,6 +71,20 @@ ScDocument* DocFuncUtil::createDeleteContentsUndoDoc(
return pUndoDoc.release();
}
void DocFuncUtil::addDeleteContentsUndo(
svl::IUndoManager* pUndoMgr, ScDocShell* pDocSh, const ScMarkData& rMark,
const ScRange& rRange, ScDocument* pUndoDoc, InsertDeleteFlags nFlags,
const boost::shared_ptr<ScSimpleUndo::DataSpansType>& pSpans,
bool bMulti, bool bDrawUndo )
{
std::unique_ptr<ScUndoDeleteContents> pUndo(
new ScUndoDeleteContents(
pDocSh, rMark, rRange, pUndoDoc, bMulti, nFlags, bDrawUndo));
pUndo->SetDataSpans(pSpans);
pUndoMgr->AddUndoAction(pUndo.release());
}
ScSimpleUndo::DataSpansType* DocFuncUtil::getNonEmptyCellSpans(
const ScDocument& rDoc, const ScMarkData& rMark, const ScRange& rRange )
{
......
......@@ -10,6 +10,8 @@
#include <undobase.hxx>
#include <boost/shared_ptr.hpp>
class ScDocument;
class ScMarkData;
class ScRange;
......@@ -27,6 +29,12 @@ public:
ScDocument& rDoc, const ScMarkData& rMark, const ScRange& rRange,
InsertDeleteFlags nFlags, bool bOnlyMarked );
static void addDeleteContentsUndo(
svl::IUndoManager* pUndoMgr, ScDocShell* pDocSh, const ScMarkData& rMark,
const ScRange& rRange, ScDocument* pUndoDoc, InsertDeleteFlags nFlags,
const boost::shared_ptr<ScSimpleUndo::DataSpansType>& pSpans,
bool bMulti, bool bDrawUndo );
static ScSimpleUndo::DataSpansType* getNonEmptyCellSpans(
const ScDocument& rDoc, const ScMarkData& rMark, const ScRange& rRange );
};
......
......@@ -1850,12 +1850,9 @@ void ScViewFunc::DeleteContents( InsertDeleteFlags nFlags, bool bRecord )
if ( bRecord )
{
ScUndoDeleteContents* pUndo =
new ScUndoDeleteContents(
pDocSh, aFuncMark, aExtendedRange, pUndoDoc, bMulti, nFlags, bDrawUndo);
pUndo->SetDataSpans(pDataSpans);
pDocSh->GetUndoManager()->AddUndoAction(pUndo);
sc::DocFuncUtil::addDeleteContentsUndo(
pDocSh->GetUndoManager(), pDocSh, aFuncMark, aExtendedRange, pUndoDoc,
nFlags, pDataSpans, bMulti, bDrawUndo);
}
if (!AdjustRowHeight( aExtendedRange.aStart.Row(), aExtendedRange.aEnd.Row() ))
......
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