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