[Libreoffice-commits] core.git: sw/CppunitTest_sw_uiwriter.mk sw/qa sw/source
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Tue Mar 19 18:23:33 UTC 2019
sw/CppunitTest_sw_uiwriter.mk | 1
sw/qa/extras/uiwriter/uiwriter2.cxx | 39 ++++++++++++++++++++++++++++++++++++
sw/source/filter/ww8/wrtw8sty.cxx | 6 -----
3 files changed, 41 insertions(+), 5 deletions(-)
New commits:
commit daa4aef1512eb7a6b615720725a5a682b0030f8e
Author: Justin Luth <justin_luth at sil.org>
AuthorDate: Mon Feb 25 22:19:18 2019 +0300
Commit: Justin Luth <justin_luth at sil.org>
CommitDate: Tue Mar 19 19:23:10 2019 +0100
try2 tdf#116404 filter\ww8: use bidi for default style in RTL locale
This reverts commit 06742182e5306d6d06e3253981723a69a3c978ab
and implements the same thing without altering the original document.
Thanks Miklos for pointing out that shortcoming.
Change-Id: I0eca9a730853f97251bc2a1cb1ee4128acf31c1f
Reviewed-on: https://gerrit.libreoffice.org/68358
Tested-by: Jenkins
Reviewed-by: Justin Luth <justin_luth at sil.org>
diff --git a/sw/CppunitTest_sw_uiwriter.mk b/sw/CppunitTest_sw_uiwriter.mk
index 3ca0a664d52e..eaf0b0d15a17 100644
--- a/sw/CppunitTest_sw_uiwriter.mk
+++ b/sw/CppunitTest_sw_uiwriter.mk
@@ -23,6 +23,7 @@ $(eval $(call gb_CppunitTest_use_libraries,sw_uiwriter, \
cppu \
cppuhelper \
editeng \
+ i18nlangtag \
msword \
sal \
sfx \
diff --git a/sw/qa/extras/uiwriter/uiwriter2.cxx b/sw/qa/extras/uiwriter/uiwriter2.cxx
index 70d002897c9b..28217c7a3281 100644
--- a/sw/qa/extras/uiwriter/uiwriter2.cxx
+++ b/sw/qa/extras/uiwriter/uiwriter2.cxx
@@ -13,6 +13,7 @@
#include <com/sun/star/style/LineSpacing.hpp>
#include <comphelper/propertysequence.hxx>
#include <LibreOfficeKit/LibreOfficeKitEnums.h>
+#include <i18nlangtag/languagetag.hxx>
#include <svx/svdpage.hxx>
#include <svx/svdview.hxx>
#include <vcl/scheduler.hxx>
@@ -57,6 +58,7 @@ public:
void testUnfloatButton();
void testUnfloatButtonReadOnlyMode();
void testUnfloating();
+ void testRTLparaStyle_LocaleArabic();
void testTdf122893();
void testTdf122901();
void testTdf122942();
@@ -84,6 +86,7 @@ public:
CPPUNIT_TEST(testUnfloatButton);
CPPUNIT_TEST(testUnfloatButtonReadOnlyMode);
CPPUNIT_TEST(testUnfloating);
+ CPPUNIT_TEST(testRTLparaStyle_LocaleArabic);
CPPUNIT_TEST(testTdf122893);
CPPUNIT_TEST(testTdf122901);
CPPUNIT_TEST(testTdf122942);
@@ -96,6 +99,24 @@ public:
CPPUNIT_TEST(testMixedFormFieldInsertion);
CPPUNIT_TEST_SUITE_END();
+ virtual std::unique_ptr<Resetter> preTest(const char* filename) override
+ {
+ m_aSavedSettings = Application::GetSettings();
+ if (OString(filename).indexOf("LocaleArabic") != -1)
+ {
+ std::unique_ptr<Resetter> pResetter(
+ new Resetter([this]() { Application::SetSettings(this->m_aSavedSettings); }));
+ AllSettings aSettings(m_aSavedSettings);
+ aSettings.SetLanguageTag(LanguageTag("ar"));
+ Application::SetSettings(aSettings);
+ return pResetter;
+ }
+ return nullptr;
+ }
+
+protected:
+ AllSettings m_aSavedSettings;
+
private:
SwDoc* createDoc(const char* pName = nullptr);
};
@@ -727,6 +748,24 @@ void SwUiWriterTest2::testUnfloating()
}
}
+void SwUiWriterTest2::testRTLparaStyle_LocaleArabic()
+{
+ // New documents, created in RTL locales, were not round-tripping the paragraph style as RTL.
+ // Set the locale to "ar" for this test - see preTest() at the top of this file.
+ std::unique_ptr<Resetter> const pChanges(preTest("LocaleArabic"));
+
+ createDoc(); // new, empty doc - everything defaults to RTL with Arabic locale
+
+ // Save it and load it back.
+ reload("Office Open XML Text", "tdf116404_paraStyleFrameDir.docx");
+
+ uno::Reference<beans::XPropertySet> xPageStyle(
+ getStyles("ParagraphStyles")->getByName("Default Style"), uno::UNO_QUERY_THROW);
+ // Test the text Direction value for the -none- based paragraph styles
+ CPPUNIT_ASSERT_EQUAL_MESSAGE("RTL Writing Mode", sal_Int32(1),
+ getProperty<sal_Int32>(xPageStyle, "WritingMode"));
+}
+
void SwUiWriterTest2::testTdf122893()
{
load(DATA_DIRECTORY, "tdf105413.fodt");
diff --git a/sw/source/filter/ww8/wrtw8sty.cxx b/sw/source/filter/ww8/wrtw8sty.cxx
index 7a3afc42ebd5..eb0cd1dc664d 100644
--- a/sw/source/filter/ww8/wrtw8sty.cxx
+++ b/sw/source/filter/ww8/wrtw8sty.cxx
@@ -43,7 +43,6 @@
#include <ndtxt.hxx>
#include <ftninfo.hxx>
#include <fmthdft.hxx>
-#include <frmatr.hxx>
#include <section.hxx>
#include <fmtcntnt.hxx>
#include <fmtftn.hxx>
@@ -469,6 +468,7 @@ void MSWordStyles::SetStyleDefaults( const SwFormat& rFormat, bool bPap )
{
aFlags[ static_cast< sal_uInt16 >(RES_PARATR_WIDOWS) - RES_CHRATR_BEGIN ] = true;
aFlags[ static_cast< sal_uInt16 >(RES_PARATR_HYPHENZONE) - RES_CHRATR_BEGIN ] = true;
+ aFlags[ static_cast< sal_uInt16 >(RES_FRAMEDIR) - RES_CHRATR_BEGIN ] = true;
}
else
{
@@ -598,10 +598,6 @@ void MSWordStyles::OutputStyle( SwFormat* pFormat, sal_uInt16 nPos )
{
assert( pFormat->GetPoolFormatId() == RES_POOLCOLL_STANDARD );
aName = "Normal";
-
- // force bidi property to be SET, so that it exports an appropriate locale value
- if ( SfxItemState::SET != pFormat->GetItemState(RES_FRAMEDIR, false) )
- pFormat->SetFormatAttr(pFormat->GetFrameDir());
}
else if (aName.equalsIgnoreAsciiCase("Normal"))
{
More information about the Libreoffice-commits
mailing list