summaryrefslogtreecommitdiff
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-17 13:15:56 +0000
commit90646b4966c73637ddf592acd05b3091fb3fa41f (patch)
tree004bca41b53724461d4ead2ca7aba7d03f5561bf
parentbb674aa5503ff40a5619d1fb4c9f310da5f5c983 (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>
-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 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);