[Libreoffice-commits] core.git: Branch 'libreoffice-4-3' - 2 commits - include/oox oox/source sd/qa sd/sdi
Zolnai Tamás
tamas.zolnai at collabora.com
Fri May 30 06:03:39 PDT 2014
include/oox/drawingml/textbodyproperties.hxx | 6 ++++--
oox/source/drawingml/textbodyproperties.cxx | 6 ++++--
oox/source/drawingml/transform2dcontext.cxx | 21 +++++++++++++++++++--
sd/qa/unit/data/pptx/bnc870237.pptx |binary
sd/qa/unit/import-tests.cxx | 22 ++++++++++++++++++++++
sd/sdi/drviewsh.sdi | 5 +++++
sd/sdi/outlnvsh.sdi | 5 +++++
7 files changed, 59 insertions(+), 6 deletions(-)
New commits:
commit cf8517379e9fb2676b7fddcacd9bf8a0f07d32b8
Author: Zolnai Tamás <tamas.zolnai at collabora.com>
Date: Fri May 30 13:56:10 2014 +0200
fdo#76953: cannot start show at selected slide
It was worked only in slide sorter view properly.
It seems it leads undefined behaviour when a menu item
is in the menubar.xml but has no definition in *.sdi file.
I experienced that on windows menu item was disabled
on linux it was enabled.
Change-Id: Iba4dd1cbac60a3b3350604d64d60d10d050a4e2b
(cherry picked from commit e20876b37d203642b5aa81a2d6c93979600376ed)
Reviewed-on: https://gerrit.libreoffice.org/9572
Reviewed-by: Zolnai Tamás <zolnaitamas2000 at gmail.com>
Tested-by: Zolnai Tamás <zolnaitamas2000 at gmail.com>
diff --git a/sd/sdi/drviewsh.sdi b/sd/sdi/drviewsh.sdi
index 5f58cb8..f56f7a8 100644
--- a/sd/sdi/drviewsh.sdi
+++ b/sd/sdi/drviewsh.sdi
@@ -65,6 +65,11 @@ interface ImpressEditView : DrawView
ExecMethod = FuSupport ;
StateMethod = GetMenuState ;
]
+ SID_PRESENTATION_CURRENT_SLIDE // ole : no, status : ?
+ [
+ ExecMethod = FuSupport ;
+ StateMethod = GetMenuState ;
+ ]
SID_PRESENTATION_END // ole : no, status : ?
[
ExecMethod = FuSupport ;
diff --git a/sd/sdi/outlnvsh.sdi b/sd/sdi/outlnvsh.sdi
index dae93d6..c78b93d 100644
--- a/sd/sdi/outlnvsh.sdi
+++ b/sd/sdi/outlnvsh.sdi
@@ -217,6 +217,11 @@ interface OutlineView
ExecMethod = FuTemporary ;
StateMethod = GetMenuState ;
]
+ SID_PRESENTATION_CURRENT_SLIDE // ole : no, status : ?
+ [
+ ExecMethod = FuTemporary ;
+ StateMethod = GetMenuState ;
+ ]
SID_EDIT_OUTLINER // ole : no, status : ?
[
ExecMethod = FuPermanent ;
commit 5d3211ce2a84c31334bea370ddae654aee6b0380
Author: Zolnai Tamás <tamas.zolnai at collabora.com>
Date: Fri May 30 13:45:36 2014 +0200
bnc#870237: wrong text position in grouped list
In grouped list text area does not cover the whole
shape but just a part of it at the top.
To get the same visual effect modify text distance
attribute.
Change-Id: I32f30d0afbc1975f940c4562ec65f46596e97060
(cherry picked from commit 53c376d35b7223d53e8c9403390afe53d1f69089)
Reviewed-on: https://gerrit.libreoffice.org/9571
Tested-by: Zolnai Tamás <zolnaitamas2000 at gmail.com>
Reviewed-by: Zolnai Tamás <zolnaitamas2000 at gmail.com>
diff --git a/include/oox/drawingml/textbodyproperties.hxx b/include/oox/drawingml/textbodyproperties.hxx
index e6f23d7..e6ed0fc 100644
--- a/include/oox/drawingml/textbodyproperties.hxx
+++ b/include/oox/drawingml/textbodyproperties.hxx
@@ -37,8 +37,10 @@ struct TextBodyProperties
bool mbAnchorCtr;
OptValue< sal_Int32 > moVert;
boost::optional< sal_Int32 > moInsets[4];
- boost::optional< sal_Int32 > moTextOffX;
- boost::optional< sal_Int32 > moTextOffY;
+ boost::optional< sal_Int32 > moTextOffUpper;
+ boost::optional< sal_Int32 > moTextOffLeft;
+ boost::optional< sal_Int32 > moTextOffLower;
+ boost::optional< sal_Int32 > moTextOffRight;
::com::sun::star::drawing::TextVerticalAdjust meVA;
explicit TextBodyProperties();
diff --git a/oox/source/drawingml/textbodyproperties.cxx b/oox/source/drawingml/textbodyproperties.cxx
index 850092c..9899fbb 100644
--- a/oox/source/drawingml/textbodyproperties.cxx
+++ b/oox/source/drawingml/textbodyproperties.cxx
@@ -81,8 +81,10 @@ void TextBodyProperties::pushRotationAdjustments( sal_Int32 nRotation )
// Hack for n#760986
// TODO: Preferred method would be to have a textbox on top
// of the shape and the place it according to the (off,ext)
- if( nOff == 0 && moTextOffX && mbAnchorCtr ) nVal = *moTextOffX;
- if( nOff == 1 && moTextOffY && mbAnchorCtr ) nVal = *moTextOffY;
+ if( nOff == 0 && moTextOffLeft && mbAnchorCtr ) nVal = *moTextOffLeft;
+ if( nOff == 1 && moTextOffUpper ) nVal = *moTextOffLeft;
+ if( nOff == 2 && moTextOffRight && mbAnchorCtr ) nVal = *moTextOffRight;
+ if( nOff == 3 && moTextOffLower ) nVal = *moTextOffLower;
if( nVal < 0 ) nVal = 0;
if( moInsets[i] )
diff --git a/oox/source/drawingml/transform2dcontext.cxx b/oox/source/drawingml/transform2dcontext.cxx
index 0a1bb59..c036b50 100644
--- a/oox/source/drawingml/transform2dcontext.cxx
+++ b/oox/source/drawingml/transform2dcontext.cxx
@@ -62,12 +62,29 @@ ContextHandlerRef Transform2DContext::onCreateContext( sal_Int32 aElementToken,
OUString sXValue = rAttribs.getString( XML_x ).get();
OUString sYValue = rAttribs.getString( XML_y ).get();
if( !sXValue.isEmpty() )
- mrShape.getTextBody()->getTextProperties().moTextOffX = GetCoordinate( sXValue.toInt32() - mrShape.getPosition().X );
+ mrShape.getTextBody()->getTextProperties().moTextOffUpper = GetCoordinate( sXValue.toInt32() - mrShape.getPosition().X );
if( !sYValue.isEmpty() )
- mrShape.getTextBody()->getTextProperties().moTextOffY = GetCoordinate( sYValue.toInt32() - mrShape.getPosition().Y );
+ mrShape.getTextBody()->getTextProperties().moTextOffLeft = GetCoordinate( sYValue.toInt32() - mrShape.getPosition().Y );
}
break;
case A_TOKEN( ext ):
+ {
+ const OUString sXValue = rAttribs.getString( XML_cx ).get();
+ const OUString sYValue = rAttribs.getString( XML_cy ).get();
+ if( !sXValue.isEmpty() )
+ {
+ mrShape.getTextBody()->getTextProperties().moTextOffRight = GetCoordinate(mrShape.getSize().Width - sXValue.toInt32());
+ if( mrShape.getTextBody()->getTextProperties().moTextOffLeft )
+ *mrShape.getTextBody()->getTextProperties().moTextOffRight -= *mrShape.getTextBody()->getTextProperties().moTextOffLeft;
+ }
+ if( !sYValue.isEmpty() )
+ {
+ mrShape.getTextBody()->getTextProperties().moTextOffLower = GetCoordinate(mrShape.getSize().Height - sYValue.toInt32());
+ if( mrShape.getTextBody()->getTextProperties().moTextOffUpper )
+ *mrShape.getTextBody()->getTextProperties().moTextOffLower -= *mrShape.getTextBody()->getTextProperties().moTextOffUpper;
+
+ }
+ }
break;
}
return 0;
diff --git a/sd/qa/unit/data/pptx/bnc870237.pptx b/sd/qa/unit/data/pptx/bnc870237.pptx
new file mode 100644
index 0000000..245ef51
Binary files /dev/null and b/sd/qa/unit/data/pptx/bnc870237.pptx differ
diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx
index 640c51f..ae5cdaf 100644
--- a/sd/qa/unit/import-tests.cxx
+++ b/sd/qa/unit/import-tests.cxx
@@ -73,6 +73,7 @@ public:
void testN862510_4();
void testFdo71961();
void testMediaEmbedding();
+ void testBnc870237();
CPPUNIT_TEST_SUITE(SdFiltersTest);
CPPUNIT_TEST(testDocumentLayout);
@@ -97,6 +98,7 @@ public:
CPPUNIT_TEST(testN862510_4);
CPPUNIT_TEST(testFdo71961);
CPPUNIT_TEST(testMediaEmbedding);
+ CPPUNIT_TEST(testBnc870237);
CPPUNIT_TEST_SUITE_END();
};
@@ -738,6 +740,26 @@ void SdFiltersTest::testMediaEmbedding()
CPPUNIT_ASSERT_EQUAL( OUString( "application/vnd.sun.star.media" ), pMediaObj->getMediaProperties().getMimeType());
}
+void SdFiltersTest::testBnc870237()
+{
+ ::sd::DrawDocShellRef xDocShRef = loadURL(getURLFromSrc("/sd/qa/unit/data/pptx/bnc870237.pptx"));
+
+ SdDrawDocument *pDoc = xDocShRef->GetDoc();
+ CPPUNIT_ASSERT_MESSAGE( "no document", pDoc != NULL );
+ const SdrPage *pPage = pDoc->GetPage (1);
+ CPPUNIT_ASSERT_MESSAGE( "no page", pPage != NULL );
+
+ // Simulate a:ext inside dsp:txXfrm with changing the lower distance
+ const SdrObjGroup* pObj = dynamic_cast<SdrObjGroup*>( pPage->GetObj( 1 ) );
+ CPPUNIT_ASSERT_MESSAGE( "no object", pObj != NULL);
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0), (static_cast< const SdrTextUpperDistItem& >(pObj->GetMergedItem(SDRATTR_TEXT_UPPERDIST))).GetValue());
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(9919), (static_cast< const SdrTextLowerDistItem& >(pObj->GetMergedItem(SDRATTR_TEXT_LOWERDIST))).GetValue());
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0), (static_cast< const SdrTextRightDistItem& >(pObj->GetMergedItem(SDRATTR_TEXT_RIGHTDIST))).GetValue());
+ CPPUNIT_ASSERT_EQUAL( sal_Int32(0), (static_cast< const SdrTextLeftDistItem& >(pObj->GetMergedItem(SDRATTR_TEXT_LEFTDIST))).GetValue());
+
+ xDocShRef->DoClose();
+}
+
CPPUNIT_TEST_SUITE_REGISTRATION(SdFiltersTest);
CPPUNIT_PLUGIN_IMPLEMENT();
More information about the Libreoffice-commits
mailing list