summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorArmin Le Grand <alg@apache.org>2012-08-10 13:27:36 +0000
committerCaolán McNamara <caolanm@redhat.com>2013-05-28 15:55:24 +0100
commitc726a1b12c9fdc91f32e6bed4d6dbd1edf73f9f8 (patch)
tree2ea6710a8e923a4f39608634cb58faba9b77b983 /sc
parent71e37a5c3886ff35d7240a9fb6b30aceec057782 (diff)
Related: #i120515# Implemented and finetuned the enhanced Undo feature
(see #i120498#) for sc (cherry picked from commit 472c175d1bb809db1dc997d9712d6ecb3fbe731c) Conflicts: sc/source/core/data/document.cxx sc/source/ui/view/drawview.cxx Change-Id: I4ae171807b80e3f6c9f44028bd04dfac9338e627
Diffstat (limited to 'sc')
-rw-r--r--sc/source/core/data/document.cxx7
-rw-r--r--sc/source/ui/inc/drawview.hxx4
-rw-r--r--sc/source/ui/view/drawview.cxx8
3 files changed, 18 insertions, 1 deletions
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index 34ae049efc3e..9a9201c56fbe 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -25,6 +25,7 @@
#include "editeng/editobj.hxx"
#include <svx/pageitem.hxx>
#include <editeng/editeng.hxx>
+#include <svx/sdrundomanager.hxx>
#include <svx/svditer.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdocapt.hxx>
@@ -5869,7 +5870,11 @@ bool ScDocument::NeedPageResetAfterTab( SCTAB nTab ) const
SfxUndoManager* ScDocument::GetUndoManager()
{
if (!mpUndoManager)
- mpUndoManager = new SfxUndoManager;
+ {
+ // to support enhanced text edit for draw objects, use an SdrUndoManager
+ mpUndoManager = new SdrUndoManager;
+ }
+
return mpUndoManager;
}
diff --git a/sc/source/ui/inc/drawview.hxx b/sc/source/ui/inc/drawview.hxx
index f5de693af6c4..ab6f9c6b4568 100644
--- a/sc/source/ui/inc/drawview.hxx
+++ b/sc/source/ui/inc/drawview.hxx
@@ -29,6 +29,7 @@ namespace com { namespace sun { namespace star { namespace datatransfer { class
class ScDocument;
class ScViewData;
class ScDrawObjData;
+class SdrUndoManager;
class ScDrawView: public FmFormView
{
@@ -53,6 +54,9 @@ protected:
void ImplClearCalcDropMarker();
+ // support enhanced text edit for draw objects
+ virtual SdrUndoManager* getSdrUndoManagerForEnhancedTextEdit() const;
+
public:
ScDrawView( OutputDevice* pOut, ScViewData* pData );
virtual ~ScDrawView();
diff --git a/sc/source/ui/view/drawview.cxx b/sc/source/ui/view/drawview.cxx
index a51c66a910bc..88395f402f71 100644
--- a/sc/source/ui/view/drawview.cxx
+++ b/sc/source/ui/view/drawview.cxx
@@ -33,6 +33,7 @@
#include <svx/sdrpaintwindow.hxx>
#include <sfx2/bindings.hxx>
#include <sfx2/viewfrm.hxx>
+#include <svx/sdrundomanager.hxx>
#include "drawview.hxx"
#include "global.hxx"
@@ -849,4 +850,11 @@ void ScDrawView::SyncForGrid( SdrObject* pObj )
pObj->SetGridOffset( aGridOff );
}
}
+
+// support enhanced text edit for draw objects
+SdrUndoManager* ScDrawView::getSdrUndoManagerForEnhancedTextEdit() const
+{
+ return pDoc ? dynamic_cast< SdrUndoManager* >(pDoc->GetUndoManager()) : 0;
+}
+
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */