From be2de90a0f32fb6054691cdba4ef533f236a1072 Mon Sep 17 00:00:00 2001 From: Noel Grandin Date: Wed, 16 Nov 2016 13:34:07 +0200 Subject: 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 Reviewed-by: Miklos Vajna (cherry picked from commit 90646b4966c73637ddf592acd05b3091fb3fa41f) Reviewed-on: https://gerrit.libreoffice.org/30956 --- sd/inc/glob.hrc | 3 +++ sd/qa/unit/misc-tests.cxx | 22 ++++++++++++++++++---- sd/source/core/glob.src | 9 +++++++++ sd/source/ui/func/futext.cxx | 2 ++ 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 #include +#include #include #include @@ -38,6 +39,7 @@ #include #include #include +#include #include 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(pObject); + auto pTableObject = dynamic_cast(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(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(pPage->GetObj(0)); + pView->MarkObj(pTableObject, pView->GetSdrPageView()); // select table + { + SfxRequest aRequest(pViewShell->GetViewFrame(), SID_GROW_FONT_SIZE); + static_cast(pViewShell)->ExecChar(aRequest); + } + CPPUNIT_ASSERT_EQUAL(static_cast(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); -- cgit v1.2.3