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-17 13:15:56 +0000 |
commit | 90646b4966c73637ddf592acd05b3091fb3fa41f (patch) | |
tree | 004bca41b53724461d4ead2ca7aba7d03f5561bf /sd | |
parent | bb674aa5503ff40a5619d1fb4c9f310da5f5c983 (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>
Diffstat (limited to 'sd')
-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 b950a516cea2..9f221b97066c 100644 --- a/sd/inc/glob.hrc +++ b/sd/inc/glob.hrc @@ -139,6 +139,9 @@ #define STR_MASTERSLIDE_NAME RID_GLOB_START+230 #define STR_MASTERPAGE_NAME RID_GLOB_START+231 +#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 b926c0dc562f..d7027f9b0830 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> @@ -37,6 +38,7 @@ #include <controller/SlsClipboard.hxx> #include <controller/SlsPageSelector.hxx> #include <undo/undomanager.hxx> +#include <DrawViewShell.hxx> #include <chrono> using namespace ::com::sun::star; @@ -176,17 +178,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); @@ -238,6 +239,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 8e7fe18ddef9..8cb027021be3 100644 --- a/sd/source/core/glob.src +++ b/sd/source/core/glob.src @@ -399,4 +399,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 07bcdc858634..f020d4ee5006 100644 --- a/sd/source/ui/func/futext.cxx +++ b/sd/source/ui/func/futext.cxx @@ -1370,6 +1370,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 ) { @@ -1411,6 +1412,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 a0de364f6e6b..a752df79070e 100644 --- a/sd/source/ui/inc/DrawViewShell.hxx +++ b/sd/source/ui/inc/DrawViewShell.hxx @@ -219,7 +219,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); |