extras/source/templates/presnt/Blueprint_Plans/Pictures/10000000000000580000001F99D2A38C014B254B.png
 |binary
 
extras/source/templates/presnt/Blueprint_Plans/Pictures/100000000000033C0000026D847ACE982C6E20B6.png
 |binary
 
extras/source/templates/presnt/Blueprint_Plans/Pictures/1000020100000500000002D0F25E20EA381A5EBD.png
 |binary
 sw/qa/extras/rtfexport/rtfexport6.cxx                                          
                      |   12 ++++------
 sw/source/filter/ww8/rtfattributeoutput.cxx                                    
                      |    8 +++++-
 sw/source/filter/ww8/wrtw8nds.cxx                                              
                      |    7 +++++
 6 files changed, 18 insertions(+), 9 deletions(-)

New commits:
commit 0be761900d69febd9ccb2a6a88b6183416d09c7b
Author:     Laurent Balland <laurent.ball...@mailo.fr>
AuthorDate: Sun Dec 10 12:01:43 2023 +0100
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Tue Dec 12 09:39:18 2023 +0100

    tdf#158250 Blueprint Plans template: update images
    
    Contribution from Jérôme Bouat
    Replace pictures with grey level and indexed colours
    
    Change-Id: I5e253af65529d45b3c9ed2e30f6e2f018cbe03e7
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160532
    Tested-by: Jenkins
    Reviewed-by: Laurent Balland <laurent.ball...@mailo.fr>
    (cherry picked from commit 7cfd3da36b54301fd51189282b39c71efd6bb894)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160481
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git 
a/extras/source/templates/presnt/Blueprint_Plans/Pictures/10000000000000580000001F99D2A38C014B254B.png
 
b/extras/source/templates/presnt/Blueprint_Plans/Pictures/10000000000000580000001F99D2A38C014B254B.png
index 51f498c0f76f..a7264148dc75 100644
Binary files 
a/extras/source/templates/presnt/Blueprint_Plans/Pictures/10000000000000580000001F99D2A38C014B254B.png
 and 
b/extras/source/templates/presnt/Blueprint_Plans/Pictures/10000000000000580000001F99D2A38C014B254B.png
 differ
diff --git 
a/extras/source/templates/presnt/Blueprint_Plans/Pictures/100000000000033C0000026D847ACE982C6E20B6.png
 
b/extras/source/templates/presnt/Blueprint_Plans/Pictures/100000000000033C0000026D847ACE982C6E20B6.png
index df9e0e0ccd29..084ab4241606 100644
Binary files 
a/extras/source/templates/presnt/Blueprint_Plans/Pictures/100000000000033C0000026D847ACE982C6E20B6.png
 and 
b/extras/source/templates/presnt/Blueprint_Plans/Pictures/100000000000033C0000026D847ACE982C6E20B6.png
 differ
diff --git 
a/extras/source/templates/presnt/Blueprint_Plans/Pictures/1000020100000500000002D0F25E20EA381A5EBD.png
 
b/extras/source/templates/presnt/Blueprint_Plans/Pictures/1000020100000500000002D0F25E20EA381A5EBD.png
index fa93cafdddd0..4dc77fde421f 100644
Binary files 
a/extras/source/templates/presnt/Blueprint_Plans/Pictures/1000020100000500000002D0F25E20EA381A5EBD.png
 and 
b/extras/source/templates/presnt/Blueprint_Plans/Pictures/1000020100000500000002D0F25E20EA381A5EBD.png
 differ
commit ecf9e5b85ae1fae2ee3dc8db2b70aeb8202225f2
Author:     Justin Luth <justin.l...@collabora.com>
AuthorDate: Tue Dec 5 21:43:16 2023 -0500
Commit:     Xisco Fauli <xiscofa...@libreoffice.org>
CommitDate: Tue Dec 12 09:39:05 2023 +0100

    tdf#108505 rtfexport: avoid mis-inheriting field char settings
    
    The field result fully defines its own character properties,
    so it should not inherit any "parent" properties from the field.
    
    My test file didn't show any problems with DOCX or DOC,
    and reading through the code I didn't notice anything
    that looked wrong. Both are very different from RTF syntax,
    and it didn't look like they did anything "special"
    for this situation, so nothing to copy from...
    
    This whole area of field properties looks very hacky,
    but it seems pretty clear that OutputTextNode
    loops through OutAttr's run properties for each of
    start/sep/end for fields. OutAttr picks up all of the
    direct formatting, so nothing should be "missing",
    and therefore a \plain character reset should be appropriate.
    
    The good news is that MS Word 2010 imported both the bad
    and the good export just like we do.
    
    make CppunitTest_sw_rtfexport6 \
        CPPUNIT_TEST_NAME=testTdf108505_fieldCharFormat2
    
    
    Change-Id: I713c071dfcd40117bfff03d152718eb5d847327e
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160375
    Tested-by: Jenkins
    Reviewed-by: Justin Luth <jl...@mail.com>
    Reviewed-by: Miklos Vajna <vmik...@collabora.com>
    (cherry picked from commit 5f888fa920c99cce91dfd18244a5c3869807b970)
    Reviewed-on: https://gerrit.libreoffice.org/c/core/+/160580
    Reviewed-by: Xisco Fauli <xiscofa...@libreoffice.org>

diff --git a/sw/qa/extras/rtfexport/rtfexport6.cxx 
b/sw/qa/extras/rtfexport/rtfexport6.cxx
index 275d2593d2df..ff331caa7307 100644
--- a/sw/qa/extras/rtfexport/rtfexport6.cxx
+++ b/sw/qa/extras/rtfexport/rtfexport6.cxx
@@ -178,21 +178,19 @@ DECLARE_RTFEXPORT_TEST(testTdf108505_fieldCharFormat, 
"tdf108505_fieldCharFormat
 
 DECLARE_RTFEXPORT_TEST(testTdf108505_fieldCharFormat2, 
"tdf108505_fieldCharFormat2.rtf")
 {
-    // not exported properly. Currently xyz exports as run 6, red, italic.
-    if (isExported())
-        return;
-
     uno::Reference<text::XTextTable> xTable(getParagraphOrTable(1), 
uno::UNO_QUERY);
     uno::Reference<text::XTextRange> xCell(xTable->getCellByName("C1"), 
uno::UNO_QUERY);
     uno::Reference<text::XTextRange> xPara = getParagraphOfText(1, 
xCell->getText());
 
-    // Preemptive test: nothing found wrong/fixed by the accompanying patch
+    const sal_Int32 nRun = isExported() ? 6 : 5;
+    const Color aColor = isExported() ? COL_BLACK : COL_AUTO;
+
     // Character formatting should only be defined by the \fldrslt, and not by 
prior formatting.
     // Prior formatting is italic, red, 20pt.
-    uno::Reference<text::XTextRange> xRun = getRun(xPara, 5, u"xyz"_ustr);
+    uno::Reference<text::XTextRange> xRun = getRun(xPara, nRun, u"xyz"_ustr);
     CPPUNIT_ASSERT_EQUAL(awt::FontWeight::BOLD, getProperty<float>(xRun, 
"CharWeight"));
     CPPUNIT_ASSERT_EQUAL(awt::FontSlant_NONE, 
getProperty<awt::FontSlant>(xRun, "CharPosture"));
-    CPPUNIT_ASSERT_EQUAL(COL_AUTO, getProperty<Color>(xRun, "CharColor"));
+    CPPUNIT_ASSERT_EQUAL(aColor, getProperty<Color>(xRun, "CharColor"));
 }
 
 /** Make sure that the document variable "Unused", which is not referenced in 
the document,
diff --git a/sw/source/filter/ww8/rtfattributeoutput.cxx 
b/sw/source/filter/ww8/rtfattributeoutput.cxx
index 1ca7c61fba4d..2d68556e8a23 100644
--- a/sw/source/filter/ww8/rtfattributeoutput.cxx
+++ b/sw/source/filter/ww8/rtfattributeoutput.cxx
@@ -1858,7 +1858,13 @@ void RtfAttributeOutput::WriteField_Impl(const SwField* 
const pField, ww::eField
                 msfilter::rtfutil::OutString(rFieldCmd, 
m_rExport.GetCurrentEncoding()));
         if (nMode & FieldFlags::CmdEnd)
         {
-            m_aRunText->append("}}{" OOO_STRING_SVTOOLS_RTF_FLDRSLT " {");
+            m_aRunText->append("}}{" OOO_STRING_SVTOOLS_RTF_FLDRSLT);
+            // The fldrslt contains its own full copy of character formatting,
+            // but if the result is empty (nMode & FieldFlags::End) or field 
export is condensed
+            // in any way (multiple flags) then avoid spamming an unnecessary 
plain character reset.
+            if (nMode == FieldFlags::CmdEnd)
+                m_aRunText->append(OOO_STRING_SVTOOLS_RTF_PLAIN);
+            m_aRunText->append(" {");
         }
         if (nMode & FieldFlags::Close)
         {
diff --git a/sw/source/filter/ww8/wrtw8nds.cxx 
b/sw/source/filter/ww8/wrtw8nds.cxx
index 5b1d62b4b12b..74e53d2fec0b 100644
--- a/sw/source/filter/ww8/wrtw8nds.cxx
+++ b/sw/source/filter/ww8/wrtw8nds.cxx
@@ -2517,7 +2517,12 @@ void MSWordExportBase::OutputTextNode( SwTextNode& rNode 
)
                     // DateFieldmark / ODF_FORMDATE is not a field...
                     if (pFieldmark->GetFieldname() != ODF_FORMDATE)
                     {
-                        OutputField( nullptr, lcl_getFieldId( pFieldmark ), 
OUString(), FieldFlags::CmdEnd );
+                        FieldFlags nFlags = FieldFlags::CmdEnd;
+                        // send hint that fldrslt is empty, to avoid spamming 
RTF CharProp reset.
+                        // ::End does nothing when sending 
rFieldCmd=OUString(), so safe to do.
+                        if (pFieldmark->GetContent().isEmpty())
+                            nFlags |= FieldFlags::End;
+                        OutputField(nullptr, lcl_getFieldId(pFieldmark), 
OUString(), nFlags);
 
                         if (pFieldmark->GetFieldname() == ODF_UNHANDLED)
                         {

Reply via email to