diff options
author | Noel Grandin <noel.grandin@collabora.co.uk> | 2016-11-16 13:34:07 +0200 |
---|---|---|
committer | Miklos Vajna <vmiklos@collabora.co.uk> | 2016-11-21 08:54:36 +0000 |
commit | be2de90a0f32fb6054691cdba4ef533f236a1072 (patch) | |
tree | b82696671916ea057870241a2fbc6aca0804c603 | |
parent | 00e4f39b319d45489b73807df37d8918c725b8bb (diff) |
tdf#103950 Undo does not revert bundled font size changes for table cells
Change-Id: Id41b7777739bfa93610f955e6c31f8bb979b8e2c
Reviewed-on: https://gerrit.libreoffice.org/30902
Tested-by: Jenkins <ci@libreoffice.org>
Reviewed-by: Miklos Vajna <vmiklos@collabora.co.uk>
(cherry picked from commit 90646b4966c73637ddf592acd05b3091fb3fa41f)
Reviewed-on: https://gerrit.libreoffice.org/30956
-rw-r--r-- | sd/inc/glob.hrc | 3 | ||||
-rw-r--r-- | sd/qa/unit/misc-tests.cxx | 22 | ||||
-rw-r--r-- | sd/source/core/glob.src | 9 | ||||
-rw-r--r-- | sd/source/ui/func/futext.cxx | 2 | ||||
-rw-r--r-- | sd/source/ui/inc/DrawViewShell.hxx | 2 |
5 files changed, 33 insertions, 5 deletions
diff --git a/sd/inc/glob.hrc b/sd/inc/glob.hrc index bec03c2b9ab9..0ec289c7ab0e 100644 --- a/sd/inc/glob.hrc +++ b/sd/inc/glob.hrc @@ -137,6 +137,9 @@ #define RID_SLIDESORTER_ICONS RID_GLOB_START+227 #define STR_DEAUTHORISE_CLIENT RID_GLOB_START+229 +#define STR_SHRINK_FONT_SIZE RID_GLOB_START+232 +#define STR_GROW_FONT_SIZE RID_GLOB_START+233 + #endif /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/qa/unit/misc-tests.cxx b/sd/qa/unit/misc-tests.cxx index bc73b5f33a21..0a436e7bdbe6 100644 --- a/sd/qa/unit/misc-tests.cxx +++ b/sd/qa/unit/misc-tests.cxx @@ -16,6 +16,7 @@ #include <com/sun/star/beans/PropertyValue.hpp> #include <comphelper/processfactory.hxx> +#include <comphelper/dispatchcommand.hxx> #include <com/sun/star/frame/Desktop.hpp> #include <com/sun/star/frame/XModel2.hpp> @@ -38,6 +39,7 @@ #include <controller/SlsClipboard.hxx> #include <controller/SlsPageSelector.hxx> #include <undo/undomanager.hxx> +#include <DrawViewShell.hxx> #include <chrono> using namespace ::com::sun::star; @@ -177,17 +179,16 @@ void SdMiscTest::testTdf99396TextEdit() sd::DrawDocShellRef xDocSh = Load(m_directories.getURLFromSrc("/sd/qa/unit/data/tdf99396.odp"), ODP); sd::ViewShell* pViewShell = xDocSh->GetViewShell(); SdPage* pPage = pViewShell->GetActualPage(); - SdrObject* pObject = pPage->GetObj(0); - auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pObject); + auto pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0)); CPPUNIT_ASSERT(pTableObject); SdrView* pView = pViewShell->GetView(); - pView->MarkObj(pObject, pView->GetSdrPageView()); + pView->MarkObj(pTableObject, pView->GetSdrPageView()); // Make sure that the undo stack is empty. CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(0), xDocSh->GetDoc()->GetUndoManager()->GetUndoActionCount()); // Set horizontal and vertical adjustment during text edit. - pView->SdrBeginTextEdit(pObject); + pView->SdrBeginTextEdit(pTableObject); CPPUNIT_ASSERT(pView->GetTextEditObject()); { SfxRequest aRequest(pViewShell->GetViewFrame(), SID_ATTR_PARA_ADJUST_RIGHT); @@ -239,6 +240,19 @@ void SdMiscTest::testTdf99396TextEdit() CPPUNIT_ASSERT_EQUAL(SVX_ADJUST_CENTER, pAdjust->GetAdjust()); } + + /* + * now test tdf#103950 - Undo does not revert bundled font size changes for table cells + */ + pTableObject = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0)); + pView->MarkObj(pTableObject, pView->GetSdrPageView()); // select table + { + SfxRequest aRequest(pViewShell->GetViewFrame(), SID_GROW_FONT_SIZE); + static_cast<sd::DrawViewShell*>(pViewShell)->ExecChar(aRequest); + } + CPPUNIT_ASSERT_EQUAL(static_cast<size_t>(2), xDocSh->GetDoc()->GetUndoManager()->GetUndoActionCount()); + + xDocSh->DoClose(); } diff --git a/sd/source/core/glob.src b/sd/source/core/glob.src index d3b3a71fffdc..d158cccf0414 100644 --- a/sd/source/core/glob.src +++ b/sd/source/core/glob.src @@ -391,4 +391,13 @@ String STR_DEAUTHORISE_CLIENT Text [ en-US ] = "Remove client authorisation"; }; +String STR_SHRINK_FONT_SIZE +{ + Text [ en-US ] = "Shrink font size"; +}; +String STR_GROW_FONT_SIZE +{ + Text [ en-US ] = "Grow font size"; +}; + /* vim:set shiftwidth=4 softtabstop=4 expandtab: */ diff --git a/sd/source/ui/func/futext.cxx b/sd/source/ui/func/futext.cxx index b2af1c8808f4..3498c40462d9 100644 --- a/sd/source/ui/func/futext.cxx +++ b/sd/source/ui/func/futext.cxx @@ -1375,6 +1375,7 @@ void FuText::ChangeFontSize( bool bGrow, OutlinerView* pOLV, const FontList* pFo else { + pView->BegUndo(SD_RESSTR(bGrow ? STR_GROW_FONT_SIZE : STR_SHRINK_FONT_SIZE)); const SdrMarkList& rMarkList = pView->GetMarkedObjectList(); for( size_t nMark = 0; nMark < rMarkList.GetMarkCount(); ++nMark ) { @@ -1416,6 +1417,7 @@ void FuText::ChangeFontSize( bool bGrow, OutlinerView* pOLV, const FontList* pFo } } } + pView->EndUndo(); } } diff --git a/sd/source/ui/inc/DrawViewShell.hxx b/sd/source/ui/inc/DrawViewShell.hxx index b96a0e2bfd6f..2f5acc47f7f2 100644 --- a/sd/source/ui/inc/DrawViewShell.hxx +++ b/sd/source/ui/inc/DrawViewShell.hxx @@ -220,7 +220,7 @@ public: void ExecGoToLastPage (SfxRequest& rReq); void GetStateGoToLastPage (SfxItemSet& rSet); - void ExecChar(SfxRequest& rReq); + SD_DLLPUBLIC void ExecChar(SfxRequest& rReq); void ExecuteAnnotation (SfxRequest& rRequest); void GetAnnotationState (SfxItemSet& rItemSet); |