diff options
author | Armin Le Grand <alg@apache.org> | 2012-08-10 13:27:36 +0000 |
---|---|---|
committer | Caolán McNamara <caolanm@redhat.com> | 2013-05-28 15:55:24 +0100 |
commit | c726a1b12c9fdc91f32e6bed4d6dbd1edf73f9f8 (patch) | |
tree | 2ea6710a8e923a4f39608634cb58faba9b77b983 /sc | |
parent | 71e37a5c3886ff35d7240a9fb6b30aceec057782 (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.cxx | 7 | ||||
-rw-r--r-- | sc/source/ui/inc/drawview.hxx | 4 | ||||
-rw-r--r-- | sc/source/ui/view/drawview.cxx | 8 |
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: */ |