Script 'mail_helper' called by obssrc
Hello community,

here is the log from the commit of package libreoffice for openSUSE:Factory 
checked in at 2022-04-22 21:53:14
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Comparing /work/SRC/openSUSE:Factory/libreoffice (Old)
 and      /work/SRC/openSUSE:Factory/.libreoffice.new.1538 (New)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Package is "libreoffice"

Fri Apr 22 21:53:14 2022 rev:252 rq:971126 version:7.3.3.1

Changes:
--------
--- /work/SRC/openSUSE:Factory/libreoffice/libreoffice.changes  2022-04-04 
19:26:12.212667217 +0200
+++ /work/SRC/openSUSE:Factory/.libreoffice.new.1538/libreoffice.changes        
2022-04-22 21:53:58.206786569 +0200
@@ -1,0 +2,22 @@
+Tue Apr 19 10:40:59 UTC 2022 - Danilo Spinella <danilo.spine...@suse.com>
+
+- Update to version 7.3.3.1:
+  There is no changelog available
+  * Fixes bsc#1196499
+- Remove upstreamed patches:
+  * bsc1195881.patch
+  * bsc1196212.patch
+
+-------------------------------------------------------------------
+Wed Apr 13 10:50:07 UTC 2022 - Andras Timar <andras.ti...@collabora.com>
+
+- Fix bsc#1192616 - LO-L3: Extraneous/missing lines in table in Impress versus 
PowerPoint
+  * bsc1192616.patch
+
+-------------------------------------------------------------------
+Wed Apr  6 10:09:59 UTC 2022 - Andras Timar <andras.ti...@collabora.com>
+
+- Fix bsc#1195881 - LO-L3: Bullets appear larger and green (instead of black)
+  * bsc1195881.patch
+
+-------------------------------------------------------------------
@@ -14,0 +37,7 @@
+Fri Mar 25 12:13:06 UTC 2022 - Andras Timar <andras.ti...@collabora.com>
+
+- Fix bsc#1196212 - LO-L3: Text with tabs appears quite different in
+  Impress than in PowerPoint
+  * bsc1196212.patch
+
+-------------------------------------------------------------------

Old:
----
  libreoffice-7.3.2.2.tar.xz
  libreoffice-7.3.2.2.tar.xz.asc
  libreoffice-help-7.3.2.2.tar.xz
  libreoffice-help-7.3.2.2.tar.xz.asc
  libreoffice-translations-7.3.2.2.tar.xz
  libreoffice-translations-7.3.2.2.tar.xz.asc

New:
----
  bsc1192616.patch
  libreoffice-7.3.3.1.tar.xz
  libreoffice-7.3.3.1.tar.xz.asc
  libreoffice-help-7.3.3.1.tar.xz
  libreoffice-help-7.3.3.1.tar.xz.asc
  libreoffice-translations-7.3.3.1.tar.xz
  libreoffice-translations-7.3.3.1.tar.xz.asc

++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++

Other differences:
------------------
++++++ libreoffice.spec ++++++
--- /var/tmp/diff_new_pack.ggj9vT/_old  2022-04-22 21:54:04.602793857 +0200
+++ /var/tmp/diff_new_pack.ggj9vT/_new  2022-04-22 21:54:04.606793862 +0200
@@ -47,7 +47,7 @@
 %endif
 %bcond_with firebird
 Name:           libreoffice
-Version:        7.3.2.2
+Version:        7.3.3.1
 Release:        0
 Summary:        A Free Office Suite (Framework)
 License:        LGPL-3.0-or-later AND MPL-2.0+
@@ -105,6 +105,8 @@
 Patch6:         gcc11-fix-error.patch
 Patch9:         fix_math_desktop_file.patch
 Patch10:        fix_gtk_popover_on_3.20.patch
+# Bug 1192616 - LO-L3: Extraneous/missing lines in table in Impress versus 
PowerPoint
+Patch13:        bsc1192616.patch
 # Build with java 8
 Patch101:       0001-Revert-java-9-changes.patch
 # try to save space by using hardlinks
@@ -124,8 +126,9 @@
 BuildRequires:  cups-devel
 # Use bundled curl on SLE-12-SP5
 %if 0%{suse_version} >= 1500
-Source2013:     %{external_url}/curl-7.79.1.tar.xz
 BuildRequires:  curl-devel >= 7.68.0
+%else
+Source2013:     %{external_url}/curl-7.79.1.tar.xz
 %endif
 # Needed for tests
 BuildRequires:  dejavu-fonts
@@ -1014,6 +1017,7 @@
 %patch3
 %patch6 -p1
 %patch9 -p1
+%patch13 -p1
 %if 0%{?suse_version} < 1500
 %patch10 -p1
 %patch101 -p1







++++++ bsc1192616.patch ++++++
>From d2a2d16b4836bf62db7c32faffa0c5b6d0d30a5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?G=C3=BCl=C5=9Fah=20K=C3=B6se?= <gulsah.k...@collabora.com>
Date: Mon, 11 Apr 2022 18:33:30 +0300
Subject: [PATCH] Revert "Revert "tdf#135843 Implement inside horizontal
 vertical borders.""
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

This reverts commit ea5a3e0247b1230c1fe7e2cb0afc597e56d0b4c2.

Change-Id: Ibd333c1e7b1530a2b6d9b8c5efbf4d9c822fa058
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132885
Tested-by: Jenkins
Reviewed-by: G??l??ah K??se <gulsah.k...@collabora.com>
---
 oox/inc/drawingml/table/tablecell.hxx         |   2 +
 oox/source/drawingml/table/tablecell.cxx      | 112 ++++++++++++++++--
 .../drawingml/table/tableproperties.cxx       |  16 ++-
 sd/qa/unit/data/pptx/bnc480256-2.pptx         | Bin 0 -> 23387 bytes
 sd/qa/unit/data/pptx/tdf135843_insideH.pptx   | Bin 0 -> 33449 bytes
 sd/qa/unit/import-tests.cxx                   |   2 +-
 sd/qa/unit/layout-tests.cxx                   |  38 ++++++
 7 files changed, 158 insertions(+), 12 deletions(-)
 create mode 100644 sd/qa/unit/data/pptx/bnc480256-2.pptx
 create mode 100644 sd/qa/unit/data/pptx/tdf135843_insideH.pptx

diff --git a/oox/inc/drawingml/table/tablecell.hxx 
b/oox/inc/drawingml/table/tablecell.hxx
index d6e91da042f7..988b0d057a13 100644
--- a/oox/inc/drawingml/table/tablecell.hxx
+++ b/oox/inc/drawingml/table/tablecell.hxx
@@ -82,6 +82,8 @@ private:
     oox::drawingml::LineProperties  maLinePropertiesRight;
     oox::drawingml::LineProperties  maLinePropertiesTop;
     oox::drawingml::LineProperties  maLinePropertiesBottom;
+    oox::drawingml::LineProperties  maLinePropertiesInsideH;
+    oox::drawingml::LineProperties  maLinePropertiesInsideV;
     oox::drawingml::LineProperties  maLinePropertiesTopLeftToBottomRight;
     oox::drawingml::LineProperties  maLinePropertiesBottomLeftToTopRight;

diff --git a/oox/source/drawingml/table/tablecell.cxx 
b/oox/source/drawingml/table/tablecell.cxx
index e5ab3372d42e..15ab06303e3b 100644
--- a/oox/source/drawingml/table/tablecell.cxx
+++ b/oox/source/drawingml/table/tablecell.cxx
@@ -81,6 +81,14 @@ static void applyLineAttributes( const 
::oox::core::XmlFilterBase& rFilterBase,
         aBorderLine.LineWidth = static_cast< sal_Int16 >( GetCoordinate( 
rLineProperties.moLineWidth.get( 0 ) ) / 2 );
         aBorderLine.LineDistance = 0;
     }
+    else
+    {
+        aBorderLine.Color = sal_Int32( COL_AUTO );
+        aBorderLine.OuterLineWidth = static_cast< sal_Int16 >( GetCoordinate( 
rLineProperties.moLineWidth.get( 0 ) ) / 4 );
+        aBorderLine.InnerLineWidth = static_cast< sal_Int16 >( GetCoordinate( 
rLineProperties.moLineWidth.get( 0 ) ) / 4 );
+        aBorderLine.LineWidth = 12700;
+        aBorderLine.LineDistance = 0;
+    }

     if ( rLineProperties.moPresetDash.has() )
     {
@@ -150,9 +158,16 @@ static void applyTableStylePart( const 
::oox::core::XmlFilterBase& rFilterBase,
                           oox::drawingml::LineProperties& rRightBorder,
                           oox::drawingml::LineProperties& rTopBorder,
                           oox::drawingml::LineProperties& rBottomBorder,
+                          oox::drawingml::LineProperties& rInsideHBorder,
+                          oox::drawingml::LineProperties& rInsideVBorder,
                           oox::drawingml::LineProperties& 
rTopLeftToBottomRightBorder,
                           oox::drawingml::LineProperties& 
rBottomLeftToTopRightBorder,
-                          TableStylePart& rTableStylePart )
+                          TableStylePart& rTableStylePart,
+                          bool bIsWholeTable = false,
+                          sal_Int32 nCol = 0,
+                          sal_Int32 nMaxCol = 0,
+                          sal_Int32 nRow = 0,
+                          sal_Int32 nMaxRow = 0)
 {
     ::oox::drawingml::FillPropertiesPtr& rPartFillPropertiesPtr( 
rTableStylePart.getFillProperties() );
     if ( rPartFillPropertiesPtr )
@@ -169,12 +184,35 @@ static void applyTableStylePart( const 
::oox::core::XmlFilterBase& rFilterBase,
         }
     }

-    applyBorder( rFilterBase, rTableStylePart, XML_left, rLeftBorder );
-    applyBorder( rFilterBase, rTableStylePart, XML_right, rRightBorder );
-    applyBorder( rFilterBase, rTableStylePart, XML_top, rTopBorder );
-    applyBorder( rFilterBase, rTableStylePart, XML_bottom, rBottomBorder );
-    applyBorder( rFilterBase, rTableStylePart, XML_tl2br, 
rTopLeftToBottomRightBorder );
-    applyBorder( rFilterBase, rTableStylePart, XML_tr2bl, 
rBottomLeftToTopRightBorder );
+    // Left, right, top and bottom side of the whole table should be mean 
outer frame of the whole table.
+    // Without this check it means left top right and bottom of whole cells of 
whole table.
+    if (bIsWholeTable)
+    {
+        if (nCol == 0)
+            applyBorder( rFilterBase, rTableStylePart, XML_left, rLeftBorder );
+        if (nCol == nMaxCol)
+            applyBorder( rFilterBase, rTableStylePart, XML_right, rRightBorder 
);
+        if (nRow == 0)
+            applyBorder( rFilterBase, rTableStylePart, XML_top, rTopBorder );
+        if (nRow == nMaxRow)
+            applyBorder( rFilterBase, rTableStylePart, XML_bottom, 
rBottomBorder );
+
+        applyBorder( rFilterBase, rTableStylePart, XML_insideH, rInsideHBorder 
);
+        applyBorder( rFilterBase, rTableStylePart, XML_insideV, rInsideVBorder 
);
+        applyBorder( rFilterBase, rTableStylePart, XML_tl2br, 
rTopLeftToBottomRightBorder );
+        applyBorder( rFilterBase, rTableStylePart, XML_tr2bl, 
rBottomLeftToTopRightBorder );
+    }
+    else
+    {
+        applyBorder( rFilterBase, rTableStylePart, XML_left, rLeftBorder );
+        applyBorder( rFilterBase, rTableStylePart, XML_right, rRightBorder );
+        applyBorder( rFilterBase, rTableStylePart, XML_top, rTopBorder );
+        applyBorder( rFilterBase, rTableStylePart, XML_bottom, rBottomBorder );
+        applyBorder( rFilterBase, rTableStylePart, XML_tl2br, 
rTopLeftToBottomRightBorder );
+        applyBorder( rFilterBase, rTableStylePart, XML_tr2bl, 
rBottomLeftToTopRightBorder );
+        applyBorder( rFilterBase, rTableStylePart, XML_insideH, rInsideHBorder 
);
+        applyBorder( rFilterBase, rTableStylePart, XML_insideV, rInsideVBorder 
);
+    }

     aTextCharProps.maLatinFont = rTableStylePart.getLatinFont();
     aTextCharProps.maAsianFont = rTableStylePart.getAsianFont();
@@ -233,6 +271,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
     oox::drawingml::LineProperties aLinePropertiesRight;
     oox::drawingml::LineProperties aLinePropertiesTop;
     oox::drawingml::LineProperties aLinePropertiesBottom;
+    oox::drawingml::LineProperties aLinePropertiesInsideH;
+    oox::drawingml::LineProperties aLinePropertiesInsideV;
     oox::drawingml::LineProperties aLinePropertiesTopLeftToBottomRight;
     oox::drawingml::LineProperties aLinePropertiesBottomLeftToTopRight;

@@ -241,9 +281,16 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
         aLinePropertiesRight,
         aLinePropertiesTop,
         aLinePropertiesBottom,
+        aLinePropertiesInsideH,
+        aLinePropertiesInsideV,
         aLinePropertiesTopLeftToBottomRight,
         aLinePropertiesBottomLeftToTopRight,
-        rTable.getWholeTbl() );
+        rTable.getWholeTbl(),
+        true,
+        nColumn,
+        nMaxColumn,
+        nRow,
+        nMaxRow );

     if ( rProperties.isFirstRow() && ( nRow == 0 ) )
     {
@@ -252,6 +299,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
             aLinePropertiesRight,
             aLinePropertiesTop,
             aLinePropertiesBottom,
+            aLinePropertiesInsideH,
+            aLinePropertiesInsideV,
             aLinePropertiesTopLeftToBottomRight,
             aLinePropertiesBottomLeftToTopRight,
             rTable.getFirstRow() );
@@ -263,6 +312,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
             aLinePropertiesRight,
             aLinePropertiesTop,
             aLinePropertiesBottom,
+            aLinePropertiesInsideH,
+            aLinePropertiesInsideV,
             aLinePropertiesTopLeftToBottomRight,
             aLinePropertiesBottomLeftToTopRight,
             rTable.getLastRow() );
@@ -274,6 +325,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
             aLinePropertiesRight,
             aLinePropertiesTop,
             aLinePropertiesBottom,
+            aLinePropertiesInsideH,
+            aLinePropertiesInsideV,
             aLinePropertiesTopLeftToBottomRight,
             aLinePropertiesBottomLeftToTopRight,
             rTable.getFirstCol() );
@@ -285,6 +338,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
             aLinePropertiesRight,
             aLinePropertiesTop,
             aLinePropertiesBottom,
+            aLinePropertiesInsideH,
+            aLinePropertiesInsideV,
             aLinePropertiesTopLeftToBottomRight,
             aLinePropertiesBottomLeftToTopRight,
             rTable.getLastCol() );
@@ -306,6 +361,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
                     aLinePropertiesRight,
                     aLinePropertiesTop,
                     aLinePropertiesBottom,
+                    aLinePropertiesInsideH,
+                    aLinePropertiesInsideV,
                     aLinePropertiesTopLeftToBottomRight,
                     aLinePropertiesBottomLeftToTopRight,
                     rTable.getBand2H() );
@@ -317,6 +374,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
                     aLinePropertiesRight,
                     aLinePropertiesTop,
                     aLinePropertiesBottom,
+                    aLinePropertiesInsideH,
+                    aLinePropertiesInsideV,
                     aLinePropertiesTopLeftToBottomRight,
                     aLinePropertiesBottomLeftToTopRight,
                     rTable.getBand1H() );
@@ -330,6 +389,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
             aLinePropertiesRight,
             aLinePropertiesTop,
             aLinePropertiesBottom,
+            aLinePropertiesInsideH,
+            aLinePropertiesInsideV,
             aLinePropertiesTopLeftToBottomRight,
             aLinePropertiesBottomLeftToTopRight,
             rTable.getNwCell() );
@@ -341,6 +402,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
             aLinePropertiesRight,
             aLinePropertiesTop,
             aLinePropertiesBottom,
+            aLinePropertiesInsideH,
+            aLinePropertiesInsideV,
             aLinePropertiesTopLeftToBottomRight,
             aLinePropertiesBottomLeftToTopRight,
             rTable.getSwCell() );
@@ -352,6 +415,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
             aLinePropertiesRight,
             aLinePropertiesTop,
             aLinePropertiesBottom,
+            aLinePropertiesInsideH,
+            aLinePropertiesInsideV,
             aLinePropertiesTopLeftToBottomRight,
             aLinePropertiesBottomLeftToTopRight,
             rTable.getNeCell() );
@@ -363,6 +428,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
             aLinePropertiesRight,
             aLinePropertiesTop,
             aLinePropertiesBottom,
+            aLinePropertiesInsideH,
+            aLinePropertiesInsideV,
             aLinePropertiesTopLeftToBottomRight,
             aLinePropertiesBottomLeftToTopRight,
             rTable.getSeCell() );
@@ -384,6 +451,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
                     aLinePropertiesRight,
                     aLinePropertiesTop,
                     aLinePropertiesBottom,
+                    aLinePropertiesInsideH,
+                    aLinePropertiesInsideV,
                     aLinePropertiesTopLeftToBottomRight,
                     aLinePropertiesBottomLeftToTopRight,
                     rTable.getBand2V() );
@@ -395,6 +464,8 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
                     aLinePropertiesRight,
                     aLinePropertiesTop,
                     aLinePropertiesBottom,
+                    aLinePropertiesInsideH,
+                    aLinePropertiesInsideV,
                     aLinePropertiesTopLeftToBottomRight,
                     aLinePropertiesBottomLeftToTopRight,
                     rTable.getBand1V() );
@@ -405,8 +476,11 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
     aLinePropertiesRight.assignUsed( maLinePropertiesRight );
     aLinePropertiesTop.assignUsed( maLinePropertiesTop );
     aLinePropertiesBottom.assignUsed( maLinePropertiesBottom );
+    aLinePropertiesInsideH.assignUsed( maLinePropertiesInsideH );
+    aLinePropertiesInsideV.assignUsed( maLinePropertiesInsideV );
     aLinePropertiesTopLeftToBottomRight.assignUsed( 
maLinePropertiesTopLeftToBottomRight );
     aLinePropertiesBottomLeftToTopRight.assignUsed( 
maLinePropertiesBottomLeftToTopRight );
+
     applyLineAttributes( rFilterBase, xPropSet, aLinePropertiesLeft, 
PROP_LeftBorder );
     applyLineAttributes( rFilterBase, xPropSet, aLinePropertiesRight, 
PROP_RightBorder );
     applyLineAttributes( rFilterBase, xPropSet, aLinePropertiesTop, 
PROP_TopBorder );
@@ -414,6 +488,28 @@ void TableCell::pushToXCell( const 
::oox::core::XmlFilterBase& rFilterBase, cons
     applyLineAttributes( rFilterBase, xPropSet, 
aLinePropertiesTopLeftToBottomRight, PROP_DiagonalTLBR );
     applyLineAttributes( rFilterBase, xPropSet, 
aLinePropertiesBottomLeftToTopRight, PROP_DiagonalBLTR );

+    // Convert insideH to Top and Bottom, InsideV to Left and Right. Exclude 
the outer borders.
+    if(nRow != 0)
+    {
+        aLinePropertiesInsideH.assignUsed( aLinePropertiesTop );
+        applyLineAttributes( rFilterBase, xPropSet, aLinePropertiesInsideH, 
PROP_TopBorder );
+    }
+    if(nRow != nMaxRow)
+    {
+        aLinePropertiesInsideH.assignUsed( aLinePropertiesBottom );
+        applyLineAttributes( rFilterBase, xPropSet, aLinePropertiesInsideH, 
PROP_BottomBorder );
+    }
+    if(nColumn != 0)
+    {
+        aLinePropertiesInsideV.assignUsed( aLinePropertiesLeft );
+        applyLineAttributes( rFilterBase, xPropSet, aLinePropertiesInsideV, 
PROP_LeftBorder );
+    }
+    if(nColumn != nMaxColumn)
+    {
+        aLinePropertiesInsideV.assignUsed( aLinePropertiesRight );
+        applyLineAttributes( rFilterBase, xPropSet, aLinePropertiesInsideV, 
PROP_RightBorder );
+    }
+
     if (rProperties.getBgColor().isUsed() && 
!maFillProperties.maFillColor.isUsed() && maFillProperties.moFillType.get() == 
XML_noFill)
     {
         maFillProperties.moFillType = XML_solidFill;
diff --git a/oox/source/drawingml/table/tableproperties.cxx 
b/oox/source/drawingml/table/tableproperties.cxx
index 1622b8fc22ca..2c45004b3357 100644
--- a/oox/source/drawingml/table/tableproperties.cxx
+++ b/oox/source/drawingml/table/tableproperties.cxx
@@ -143,7 +143,8 @@ void TableProperties::pushToPropSet(const 
::oox::core::XmlFilterBase& rFilterBas
     {
         sal_Int32 nColumn = 0;
         sal_Int32 nColumnSize = tableRow.getTableCells().size();
-        sal_Int32 nRemovedColumn = 0; //
+        sal_Int32 nRemovedColumn = 0;
+        sal_Int32 nRemovedRow = 0;

         for (sal_Int32 nColIndex = 0; nColIndex < nColumnSize; nColIndex++)
         {
@@ -169,6 +170,9 @@ void TableProperties::pushToPropSet(const 
::oox::core::XmlFilterBase& rFilterBas
                         // props with pushToXCell.
                         bMerged = true;
                     }
+
+                    if (rTableCell.getRowSpan() > 1)
+                        nRemovedRow = (rTableCell.getRowSpan() - 1);
                 }

                 Reference<XCellRange> xCellRange(xTable, UNO_QUERY_THROW);
@@ -190,11 +194,17 @@ void TableProperties::pushToPropSet(const 
::oox::core::XmlFilterBase& rFilterBas
                 else
                     xCell = xCellRange->getCellByPosition(nColumn, nRow);

+
+                sal_Int32 nMaxCol = tableRow.getTableCells().size() - 
nRemovedColumn - 1;
+                sal_Int32 nMaxRow =  mvTableRows.size() - nRemovedRow - 1;
+
                 rTableCell.pushToXCell(rFilterBase, pMasterTextListStyle, 
xCell, *this, rTableStyle,
-                                       nColumn, 
tableRow.getTableCells().size() - 1, nRow,
-                                       mvTableRows.size() - 1);
+                                       nColumn, nMaxCol, nRow, nMaxRow);
+
                 if (bMerged)
                     nColumn += nRemovedColumn;
+
+                nRemovedRow = 0;
             }
             ++nColumn;
         }
--
2.34.1

>From 6bf805ffb62a13f2f44a26f47f732f05c954ef49 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?G=C3=BCl=C5=9Fah=20K=C3=B6se?= <gulsah.k...@collabora.com>
Date: Mon, 14 Mar 2022 14:52:59 +0300
Subject: [PATCH] tdf#147766 Export empty lines as line with noFill
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit

We have a case that 0 width line but has auto color. If that case
exported there is no line over there, LO handles normally but MSO draws
back borders as default. To prevent this we have to export them as line
with noFill.

testTableBorderLineStyle change reverts a workaround for
3faf005a367cbd28077403bf93810bbaf4805851

testBnc480256 Cell(1,0) still invisible. We are just checking
this with another way.

Change-Id: If5f6d2dbdba5c295d58307fcfe3b37629ede8a8e
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/131532
Tested-by: Jenkins
Reviewed-by: Justin Luth <jl...@mail.com>
Reviewed-by: G??l??ah K??se <gulsah.k...@collabora.com>
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/132886
---
 oox/source/drawingml/table/tablecell.cxx | 10 +---------
 oox/source/export/shapes.cxx             |  6 ++++++
 sd/qa/unit/export-tests.cxx              |  3 ++-
 sd/qa/unit/import-tests.cxx              |  2 +-
 4 files changed, 10 insertions(+), 11 deletions(-)

diff --git a/oox/source/drawingml/table/tablecell.cxx 
b/oox/source/drawingml/table/tablecell.cxx
index 15ab06303e3b..fdf7950dcf2c 100644
--- a/oox/source/drawingml/table/tablecell.cxx
+++ b/oox/source/drawingml/table/tablecell.cxx
@@ -73,20 +73,12 @@ static void applyLineAttributes( const 
::oox::core::XmlFilterBase& rFilterBase,
         aBorderLine.LineWidth = static_cast< sal_Int16 >( GetCoordinate( 
rLineProperties.moLineWidth.get( 0 ) ) / 2 );
         aBorderLine.LineDistance = 0;
     }
-    else if ( rLineProperties.moLineWidth.get(0)!=0 )
-    {
-        aBorderLine.Color = sal_Int32( COL_AUTO );
-        aBorderLine.OuterLineWidth = static_cast< sal_Int16 >( GetCoordinate( 
rLineProperties.moLineWidth.get( 0 ) ) / 4 );
-        aBorderLine.InnerLineWidth = static_cast< sal_Int16 >( GetCoordinate( 
rLineProperties.moLineWidth.get( 0 ) ) / 4 );
-        aBorderLine.LineWidth = static_cast< sal_Int16 >( GetCoordinate( 
rLineProperties.moLineWidth.get( 0 ) ) / 2 );
-        aBorderLine.LineDistance = 0;
-    }
     else
     {
         aBorderLine.Color = sal_Int32( COL_AUTO );
         aBorderLine.OuterLineWidth = static_cast< sal_Int16 >( GetCoordinate( 
rLineProperties.moLineWidth.get( 0 ) ) / 4 );
         aBorderLine.InnerLineWidth = static_cast< sal_Int16 >( GetCoordinate( 
rLineProperties.moLineWidth.get( 0 ) ) / 4 );
-        aBorderLine.LineWidth = 12700;
+        aBorderLine.LineWidth = static_cast< sal_Int16 >( GetCoordinate( 
rLineProperties.moLineWidth.get( 0 ) ) / 2 );
         aBorderLine.LineDistance = 0;
     }

diff --git a/oox/source/export/shapes.cxx b/oox/source/export/shapes.cxx
index 138106938ee2..97d09ca1be2e 100644
--- a/oox/source/export/shapes.cxx
+++ b/oox/source/export/shapes.cxx
@@ -1975,6 +1975,12 @@ void ShapeExport::WriteBorderLine(const sal_Int32 
XML_line, const BorderLine2& r
             DrawingML::WriteSolidFill( ::Color(ColorTransparency, 
rBorderLine.Color) );
         mpFS->endElementNS( XML_a, XML_line );
     }
+    else if( nBorderWidth == 0)
+    {
+        mpFS->startElementNS(XML_a, XML_line);
+        mpFS->singleElementNS(XML_a, XML_noFill);
+        mpFS->endElementNS( XML_a, XML_line );
+    }
 }

 void ShapeExport::WriteTableCellBorders(const Reference< XPropertySet>& 
xCellPropSet)
diff --git a/sd/qa/unit/export-tests.cxx b/sd/qa/unit/export-tests.cxx
index f1d0281aab0d..729d9f154b12 100644
--- a/sd/qa/unit/export-tests.cxx
+++ b/sd/qa/unit/export-tests.cxx
@@ -602,9 +602,10 @@ void SdExportTest::testBnc480256()
     xCell->getPropertyValue("FillColor") >>= nColor;
     CPPUNIT_ASSERT_EQUAL(Color(0x4697e0), nColor);

+    // This border should be invisible.
     xCell.set(xTable->getCellByPosition(1, 0), uno::UNO_QUERY_THROW);
     xCell->getPropertyValue("BottomBorder") >>= aBorderLine;
-    CPPUNIT_ASSERT_EQUAL(COL_AUTO, Color(ColorTransparency, 
aBorderLine.Color));
+    CPPUNIT_ASSERT_EQUAL(sal_Int32(0), sal_Int32(aBorderLine.LineWidth));

     xDocShRef->DoClose();
 }
--
2.34.1



++++++ libreoffice-7.3.2.2.tar.xz -> libreoffice-7.3.3.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/libreoffice/libreoffice-7.3.2.2.tar.xz 
/work/SRC/openSUSE:Factory/.libreoffice.new.1538/libreoffice-7.3.3.1.tar.xz 
differ: char 27, line 1

++++++ libreoffice-help-7.3.2.2.tar.xz -> libreoffice-help-7.3.3.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/libreoffice/libreoffice-help-7.3.2.2.tar.xz 
/work/SRC/openSUSE:Factory/.libreoffice.new.1538/libreoffice-help-7.3.3.1.tar.xz
 differ: char 26, line 1

++++++ libreoffice-translations-7.3.2.2.tar.xz -> 
libreoffice-translations-7.3.3.1.tar.xz ++++++
/work/SRC/openSUSE:Factory/libreoffice/libreoffice-translations-7.3.2.2.tar.xz 
/work/SRC/openSUSE:Factory/.libreoffice.new.1538/libreoffice-translations-7.3.3.1.tar.xz
 differ: char 27, line 1

Reply via email to