summaryrefslogtreecommitdiff
path: root/sd
diff options
context:
space:
mode:
authorNoel Grandin <noel.grandin@collabora.co.uk>2016-11-16 13:34:07 +0200
committerMiklos Vajna <vmiklos@collabora.co.uk>2016-11-21 08:54:36 +0000
commitbe2de90a0f32fb6054691cdba4ef533f236a1072 (patch)
treeb82696671916ea057870241a2fbc6aca0804c603 /sd
parent00e4f39b319d45489b73807df37d8918c725b8bb (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
Diffstat (limited to 'sd')
-rw-r--r--sd/inc/glob.hrc3
-rw-r--r--sd/qa/unit/misc-tests.cxx22
-rw-r--r--sd/source/core/glob.src9
-rw-r--r--sd/source/ui/func/futext.cxx2
-rw-r--r--sd/source/ui/inc/DrawViewShell.hxx2
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);