Accepting request 982419 from home:dspinella:branches:LibreOffice:Factory

- Update to version 7.3.4.2:
  You can find the complete release notes here:
  https://wiki.documentfoundation.org/Releases/7.3.4/RC2
  https://wiki.documentfoundation.org/Releases/7.3.4/RC1
- Remove upstreamed patches:
  * bsc1192616.patch
  * bsc1197497.patch
- Updated bundled dependencies:
  * curl-7.79.1.tar.xz -> curl-7.83.1.tar.xz

OBS-URL: https://build.opensuse.org/request/show/982419
OBS-URL: https://build.opensuse.org/package/show/LibreOffice:Factory/libreoffice?expand=0&rev=1025
This commit is contained in:
Danilo Spinella 2022-06-13 12:48:30 +00:00 committed by Git OBS Bridge
parent 649e066f68
commit 5fc38aa835
18 changed files with 75 additions and 790 deletions

View File

@ -1,436 +0,0 @@
From d2a2d16b4836bf62db7c32faffa0c5b6d0d30a5e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?G=C3=BCl=C5=9Fah=20K=C3=B6se?= <gulsah.kose@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.kose@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.kose@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 <jluth@mail.com>
Reviewed-by: Gülşah Köse <gulsah.kose@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

View File

@ -1,286 +0,0 @@
From 8dfa3f0fcd057b402ebde0a4ad102956275f717e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lunak@collabora.com>
Date: Mon, 4 Apr 2022 16:30:58 +0200
Subject: [PATCH] limit Interpret() for dirty cells only to the given row range
(bsc#1197497)
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
ScColumn::InterpretDirtyCells() already takes a row range, and Interpret()
can take a range inside a formula group, so don't lose the information
in DirtyCellInterpreter, otherwise a whole large formula could be
interpreted when just a subset would be enough.
Change-Id: I93e5a7a212976be6fd588de6f68204cd1a271348
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133305
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
(cherry picked from commit c315a2f7b99fc1dfbc3fc834590d22fbe41ea70f)
---
sc/source/core/data/column3.cxx | 37 +++++++++++++++++++++++++++++++--
1 file changed, 35 insertions(+), 2 deletions(-)
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index 74b2e1ac7fad..7e133d565558 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -102,13 +102,46 @@ void ScColumn::BroadcastRows( SCROW nStartRow, SCROW nEndRow, SfxHintId nHint )
namespace {
-struct DirtyCellInterpreter
+class DirtyCellInterpreter
{
+public:
void operator() (size_t, ScFormulaCell* p)
{
- if (p->GetDirty())
+ if(!p->GetDirty())
+ return;
+ // Interpret() takes a range in a formula group, so group those together.
+ if( firstCell != nullptr && p->GetCellGroup() == p->GetCellGroup()
+ && p->aPos.Row() == lastPos.Row() + 1 )
+ {
+ assert( p->aPos.Tab() == lastPos.Tab() && p->aPos.Col() == lastPos.Col());
+ lastPos = p->aPos; // Extend range.
+ return;
+ }
+ flushPending();
+ if( !p->GetCellGroup())
+ {
p->Interpret();
+ return;
+ }
+ firstCell = p;
+ lastPos = p->aPos;
+
+ }
+ ~DirtyCellInterpreter()
+ {
+ flushPending();
+ }
+private:
+ void flushPending()
+ {
+ if(firstCell == nullptr)
+ return;
+ SCROW firstRow = firstCell->GetCellGroup()->mpTopCell->aPos.Row();
+ firstCell->Interpret(firstCell->aPos.Row() - firstRow, lastPos.Row() - firstRow);
+ firstCell = nullptr;
}
+ ScFormulaCell* firstCell = nullptr;
+ ScAddress lastPos;
};
}
--
2.35.3
From 7d66afaf709154c1af9b83994f7c87afb4be254e Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Lubo=C5=A1=20Lu=C5=88=C3=A1k?= <l.lunak@collabora.com>
Date: Mon, 4 Apr 2022 17:52:04 +0200
Subject: [PATCH] try to limit cell interpreting to only visible cells when
drawing
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
If there's a document with a huge formula group, InterpretDirtyCells()
on load will only interpret the range needed for drawing. But then
scrolling just a bit could result in e.g. IsValue() call on a cell,
and that could result in unrestricted Interpret() on the whole
huge formula group, which could be slow. So explicitly interpret
just the drawn cells in the hope that it'll avoid any further
Interpret() calls.
Change-Id: I01c9f95cf8a1cf240b798feef27d21010957030c
Reviewed-on: https://gerrit.libreoffice.org/c/core/+/133306
Tested-by: Jenkins
Reviewed-by: Luboš Luňák <l.lunak@collabora.com>
(cherry picked from commit 64cb1d10fffccebbc825c858083f13eb717b0553)
---
sc/inc/column.hxx | 1 +
sc/inc/document.hxx | 2 ++
sc/inc/table.hxx | 1 +
sc/source/core/data/column3.cxx | 39 +++++++++++++++++++++++++++-----
sc/source/core/data/document.cxx | 17 ++++++++++++++
sc/source/core/data/table1.cxx | 7 ++++++
sc/source/ui/view/output2.cxx | 5 ++++
7 files changed, 66 insertions(+), 6 deletions(-)
diff --git a/sc/inc/column.hxx b/sc/inc/column.hxx
index 01e58fb9d055..b8e348d00e70 100644
--- a/sc/inc/column.hxx
+++ b/sc/inc/column.hxx
@@ -651,6 +651,7 @@ public:
bool IsDrawObjectsEmptyBlock(SCROW nStartRow, SCROW nEndRow) const;
void InterpretDirtyCells( SCROW nRow1, SCROW nRow2 );
+ void InterpretCellsIfNeeded( SCROW nRow1, SCROW nRow2 );
static void JoinNewFormulaCell( const sc::CellStoreType::position_type& aPos, ScFormulaCell& rCell );
diff --git a/sc/inc/document.hxx b/sc/inc/document.hxx
index 029a339f94a7..89ca4dee068a 100644
--- a/sc/inc/document.hxx
+++ b/sc/inc/document.hxx
@@ -1318,6 +1318,8 @@ public:
void SetDirty( const ScRange&, bool bIncludeEmptyCells );
void SetTableOpDirty( const ScRange& ); // for Interpreter TableOp
void InterpretDirtyCells( const ScRangeList& rRanges );
+ // Interprets cells that have NeedsInterpret(), i.e. the same like calling MaybeInterpret() on them.
+ void InterpretCellsIfNeeded( const ScRangeList& rRanges );
SC_DLLPUBLIC void CalcAll();
SC_DLLPUBLIC void CalcAfterLoad( bool bStartListening = true );
void CompileAll();
diff --git a/sc/inc/table.hxx b/sc/inc/table.hxx
index 5602d6dcacfe..27a1fcf67fd8 100644
--- a/sc/inc/table.hxx
+++ b/sc/inc/table.hxx
@@ -1031,6 +1031,7 @@ public:
void FillMatrix( ScMatrix& rMat, SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2, svl::SharedStringPool* pPool ) const;
void InterpretDirtyCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
+ void InterpretCellsIfNeeded( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 );
void SetFormulaResults( SCCOL nCol, SCROW nRow, const double* pResults, size_t nLen );
diff --git a/sc/source/core/data/column3.cxx b/sc/source/core/data/column3.cxx
index 7e133d565558..d3c17d1da6d7 100644
--- a/sc/source/core/data/column3.cxx
+++ b/sc/source/core/data/column3.cxx
@@ -102,13 +102,11 @@ void ScColumn::BroadcastRows( SCROW nStartRow, SCROW nEndRow, SfxHintId nHint )
namespace {
-class DirtyCellInterpreter
+class CellInterpreterBase
{
-public:
- void operator() (size_t, ScFormulaCell* p)
+protected:
+ void Interpret(ScFormulaCell* p)
{
- if(!p->GetDirty())
- return;
// Interpret() takes a range in a formula group, so group those together.
if( firstCell != nullptr && p->GetCellGroup() == p->GetCellGroup()
&& p->aPos.Row() == lastPos.Row() + 1 )
@@ -127,7 +125,7 @@ public:
lastPos = p->aPos;
}
- ~DirtyCellInterpreter()
+ ~CellInterpreterBase()
{
flushPending();
}
@@ -144,6 +142,26 @@ private:
ScAddress lastPos;
};
+class DirtyCellInterpreter : public CellInterpreterBase
+{
+public:
+ void operator() (size_t, ScFormulaCell* p)
+ {
+ if(p->GetDirty())
+ Interpret(p);
+ }
+};
+
+class NeedsInterpretCellInterpreter : public CellInterpreterBase
+{
+public:
+ void operator() (size_t, ScFormulaCell* p)
+ {
+ if(p->NeedsInterpret())
+ Interpret(p);
+ }
+};
+
}
void ScColumn::InterpretDirtyCells( SCROW nRow1, SCROW nRow2 )
@@ -155,6 +173,15 @@ void ScColumn::InterpretDirtyCells( SCROW nRow1, SCROW nRow2 )
sc::ProcessFormula(maCells.begin(), maCells, nRow1, nRow2, aFunc);
}
+void ScColumn::InterpretCellsIfNeeded( SCROW nRow1, SCROW nRow2 )
+{
+ if (!GetDoc().ValidRow(nRow1) || !GetDoc().ValidRow(nRow2) || nRow1 > nRow2)
+ return;
+
+ NeedsInterpretCellInterpreter aFunc;
+ sc::ProcessFormula(maCells.begin(), maCells, nRow1, nRow2, aFunc);
+}
+
void ScColumn::DeleteContent( SCROW nRow, bool bBroadcast )
{
sc::CellStoreType::position_type aPos = maCells.position(nRow);
diff --git a/sc/source/core/data/document.cxx b/sc/source/core/data/document.cxx
index b62407916300..dbf6233efa6b 100644
--- a/sc/source/core/data/document.cxx
+++ b/sc/source/core/data/document.cxx
@@ -3923,6 +3923,23 @@ void ScDocument::InterpretDirtyCells( const ScRangeList& rRanges )
mpFormulaGroupCxt.reset();
}
+void ScDocument::InterpretCellsIfNeeded( const ScRangeList& rRanges )
+{
+ for (size_t nPos=0, nRangeCount = rRanges.size(); nPos < nRangeCount; nPos++)
+ {
+ const ScRange& rRange = rRanges[nPos];
+ for (SCTAB nTab = rRange.aStart.Tab(); nTab <= rRange.aEnd.Tab(); ++nTab)
+ {
+ ScTable* pTab = FetchTable(nTab);
+ if (!pTab)
+ return;
+
+ pTab->InterpretCellsIfNeeded(
+ rRange.aStart.Col(), rRange.aStart.Row(), rRange.aEnd.Col(), rRange.aEnd.Row());
+ }
+ }
+}
+
void ScDocument::AddTableOpFormulaCell( ScFormulaCell* pCell )
{
if (m_TableOpList.empty())
diff --git a/sc/source/core/data/table1.cxx b/sc/source/core/data/table1.cxx
index d613ec905575..a03ab678e7d0 100644
--- a/sc/source/core/data/table1.cxx
+++ b/sc/source/core/data/table1.cxx
@@ -2536,6 +2536,13 @@ void ScTable::InterpretDirtyCells( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW
aCol[nCol].InterpretDirtyCells(nRow1, nRow2);
}
+void ScTable::InterpretCellsIfNeeded( SCCOL nCol1, SCROW nRow1, SCCOL nCol2, SCROW nRow2 )
+{
+ nCol2 = ClampToAllocatedColumns(nCol2);
+ for (SCCOL nCol = nCol1; nCol <= nCol2; ++nCol)
+ aCol[nCol].InterpretCellsIfNeeded(nRow1, nRow2);
+}
+
void ScTable::SetFormulaResults( SCCOL nCol, SCROW nRow, const double* pResults, size_t nLen )
{
if (!ValidCol(nCol))
diff --git a/sc/source/ui/view/output2.cxx b/sc/source/ui/view/output2.cxx
index ba4a1b13a795..53ee54fad4c3 100644
--- a/sc/source/ui/view/output2.cxx
+++ b/sc/source/ui/view/output2.cxx
@@ -1552,6 +1552,11 @@ tools::Rectangle ScOutputData::LayoutStrings(bool bPixelToLogic, bool bPaint, co
const SfxItemSet* pOldCondSet = nullptr;
SvtScriptType nOldScript = SvtScriptType::NONE;
+ // Try to limit interpreting to only visible cells. Calling e.g. IsValue()
+ // on a formula cell that needs interpreting would call Interpret()
+ // for the entire formula group, which could be large.
+ mpDoc->InterpretCellsIfNeeded( ScRange( nX1, nY1, nTab, nX2, nY2, nTab ));
+
// alternative pattern instances in case we need to modify the pattern
// before processing the cell value.
std::vector<std::unique_ptr<ScPatternAttr> > aAltPatterns;
--
2.35.3

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:0606f74b1182ab732a17c11613cbbaf7084f2e6cca432642d0e3ad7c224c3689
size 2465212

3
curl-7.83.1.tar.xz Normal file
View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:2cb9c2356e7263a1272fd1435ef7cdebf2cd21400ec287b068396deb705c22c4
size 2474940

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:ee12bdbe1621c20e2744bc5b6c5967810f25a5760b98ac5812d550ab00968685
size 256036064

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmJpLnYACgkQ9DSh76/u
rqOqRBAAiaPazVr5Oq/dSG+DeJqV6ASym+Yrsi0xIxIXS3ZoTILEen93V2cldo6H
XKZ3urKpvFh0wN2K8177fTI+wfIR8lkehAIofyaRp5CH7KKdWR50I1Bt/NrycBck
2eGPTf+W5PWqkWjfjSKRIBgp3VVqTs8rzHLixMuH+1Efv7CtaymiQwgKjkYm+iGB
4y1OEfjbmEuIKnx4wkew+tk12GOxQfo0CumdlXO1N1p7JY+VW15gM2A3t8vBIbyA
KR/c9lIo20U2lAliXmuskImc+Hi1p67oP7quoXCE0tcMtmy6o9qKM1JK+RnsUmib
YJ9LZW95FN7mzVJn17Djbg/sIWEayCqtPyaWKkGDa3VKpghT/mKF1um/XU+lsNwX
NwuHXvYziCoWn3Je8Fw3GaxIj7rzgAzQ82U1iNwEWbltL6gay8QYAHnwJ7a/Y/X5
lpRTuVQ3yvLc+Uo1CxnSkTCDHJp0sq1hbimml1I7EiCJ+MPjyJ0Ty4OY0z7n5Qi8
w72pmTP/aP/T80A4lcjQW91dTFiQ7l9GHX9OrCMp+zcK6OHXqL6bob6FrMU7vMjB
H/hawJKjYQL4ikFQ/ZPnTU3oEnSbu30bl/uUNJYpXecOe+JbGrVEwc76QT310g/s
dbzywpPJhkkP2RPCFFqOgLf3nOQeiUVl/oKtsOrLocv906R4P4Q=
=JhoT
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:48309056aa797eb2ae3aa3ef1b1bc49bd435fd4f2ad5770c45f4aa56fe6f0ff6
size 256373724

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmKX2fcACgkQ9DSh76/u
rqMvDRAAz3STt8tRWpbnR3/kc3/Cw1rwjxsZxlGjWLq24bnIcQwqUcEFghNmr+wy
WNAmHtnzXS9Wpk3kZYIKmMsNdeY6nu/8uW41Z6fPbt4a9/+xju+xeFg0Xfx85xOG
4nRoCA/ZKEyPexq51l8fqfg3F8pdmhVaBzMA7iTDTCaj83tM0YcmoGOriLqk1bms
tb2Ddhf/yDfdO03K6XRz4VcaIdbIdeJ2KOuiL4PLyL78UmulGtnF42HmaGd3sMgj
8bXa7jBMFmarBpigu4Hu6ASpqJbBb2Hn9OzrfmRpOfgKv7eZgqGbb2EwqE0DXwHb
DGhQJHZobj2X9cS3qdKmxCMYppQ82krICBaI1uP0qgrS6czpJrEnrsfqLg4Tvqz8
4ED72doRVu+7iHGmMapTeqgT9cKTNKlOU+bhV/2hXzdzJiijy37anHhRHIWs70pe
c6X1jXShY5NRarCYpX9eV71CG4OhqBvp0u1kNIQdat21wX17gFNB980tnOi4Swq3
LNSLiuJvjaPV1xEE8MmNfD7B1stvBmuwxEaJb58Mr3m+mYBgJ0Umysiu2Vm7ySE5
5DermMXJaj9pMOHiDb8PhzGULRIWzmeqGz6ZH9ya9ZnYTGB+U9AYdESSds49OS7l
RHgMcnFCvaHu458Wj0qjRzbGHeo3fXg0oE9Sk+ibprYFuKfQqjg=
=SP5t
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:688634eccb802c156496124b394c0ec5e21059a9b6cd0095930f9e76f9eefe9b
size 112209704

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmJpLnwACgkQ9DSh76/u
rqNAyA/6AuXTPd6PyaDkVL8M3/UV4+Ybyn1SYNDA0VSoHAuaLI529dg4HOY3Jwdz
+OqBSrsZn72308sWeePSNcr3vTe0TdhpsoDZa5m+e5PRTPmlykwOUVOGMjaaD+1I
HAeDdtwMyt6NOh9rgsyi2ZIW51RMT7R5XRq4WAOtNU/406QDrEOvdgX5UfIieZTv
aI5vpPdZoFOkIN8CS7MU+igFOsOZZ6Qp0y1WOL0BJ00BXGsE+pcJ47PtiaWSkJfR
jaJaH9Q6HLCVu+zFYp1yQ5W7JltYs98i0qHPWCVO4ol+EeCLRBBQv7Qn6lFJwFon
tOk2lIwPTNBemdLCT29SoiCJEDiNslDgJo1X/AYSHtt/p9CuDYgbDM9FiYiHkpC2
OBKcAJ37XAbh0CcWSdVuWJucUbOZj2LbaFekn4YYcInyRLO7wNgNDGQGCvcmxiMU
gKs1osajXV9qNHh9odkUd/K0wI30OC2yBBZS5wSs3CNiRyZ7PPF61epRZRmMNahK
TY7TV7c6bSwZjbDkwTnH0VwrA4FrzfVLDpnA/xCdAoPWpMHnMiupdxg3KTdBw54x
AsW+yuZKfCGLkRjxa0PSEP+0zPEdI+aLzML+4fwACD4Qjn+447m4F1PMqSUfUSpr
6ilXWQTLUdBkOxDGO+N2foLO+BfyXmIR2UZBWJkI1SVmQ18Gy3U=
=yGtf
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:eef1324f1796196718973cd110c5579fa142cd4ac947d7b1b1fea87c12aa42ad
size 112208564

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmKX2f0ACgkQ9DSh76/u
rqM3NBAAzdD6z2ua/NjFTKlhbgMaP/Q9s7QhfFQno99hXn87WF/B+rFjBm9SzBcT
SPz+nrnPnk4z1SyW735Ek3lWzzqZjPvH3uZpRVcHqH5k83E779pzQUq1kbgDxbNl
vb+BIxVd4b36H/JeQTnJew+PUXfXRVLIeO77A2enmMak9AJHsu9konavSCFN/jFH
AAfdRpd2Q5gx6JAsc7CRjFBfD4TDWY9AmFoolqFzujuz+MEFy9rVxjtp5bPLMEZY
QIxbUr8b6UQTzjGbNxzHmV/2afIUBou0hUIMVvbgUKemFguyD8T2K7LqRYC2UJr1
8iQv1TlT6aUIrBERMeoI5e+TDdVFCWy2RCwUlGgfsoH8CbYNAOK2SckrESvD1uy2
eaL9t+ezRd1E3AYUyzV6VNBlXN6K4CyGwlotMly6IpyoHLlgNDCkFBtQKFvmVIz6
YQBqJOO0vpTJ1ohatDmZ2i1cwn2rqjXxP6t8j0ZBXmSSQYK4A689lZ8P4l0IEnix
pFdpLYzDfg6Qlh5NH4eiZquv6y8pfHXn4wh1y+CkBWeNmBrIZBuXDA+0U8jHs9rl
tH0Z4ndXguCIgjm4IcpVYiiKObsjfffI1bKptbuOnE6XtzinsYsGaVCTQljeAvbF
4TNLOl38FrTOKIECroAFAK3uKWmtZa+2Y72tikkM0UhH0oQp2ss=
=ZLkM
-----END PGP SIGNATURE-----

View File

@ -1,3 +0,0 @@
version https://git-lfs.github.com/spec/v1
oid sha256:b91b0a482fa42d59e1605f39a3917166e7ff76bfa8e9b62d6eef0a9b04b3351c
size 196316184

View File

@ -1,16 +0,0 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmJpLn0ACgkQ9DSh76/u
rqMRzw//cTK7matWpmz3ymeDnyKp+m4NW9fqIQBkKHLM23wC+5GFLH9JqAzRfGUe
48NW2wF6FLzqJ4NDFPf0XJ6YMOjXXzK/iAYvD7O0p07pOx9QFWBaU34JqzBd2wc+
tydYU2NECSxuNEgXvGBFKR5tdurSYJG3IuQB4cBKfcSLn7CVwfxl1wz+cV9PQovc
8NkChQytCshB3KteErflway5hiGweQfhSARy0nFb9gHdX+KoaasoBzy8zGtflpSP
GHJCy3um5bhfqrEd1LqxqMHBdECrUtIniCjDTccl+yiUdhVkOJFpavhfbVfx6n5o
iYFg1NfJyxtoX4J9197G3J1sNOR26daSr2M0u3+uhiD7JYcVeBnfvNrumnaW8gen
VtQufdJEUgA9rRBBwppZulT6wMNYWB6HWF+uSnKw8sCqsTttAL9mRgxlbCNs5O5I
FUjQUqybawPbEy69DAfmYKRoGWBxpuyzRf3B4gZDeigyUU8ec6DpYsHiS5kA1+Pb
Ci/GRhlYmN62I8oGg61U08qfRntfslGMax4bMBnOa/LKaATkuS+e2ODDK2upqfJd
YX2vcVMPMtckmrbmeHL+3H5vovcuWYNONIU42QpZhQxi4SNecyLq4tdLWqiBKjZQ
z6FC9/i8Ov/VNrc++B6xqAqzwbz6WjpL7TLfIU/WoqvA/rthIIQ=
=q7b6
-----END PGP SIGNATURE-----

View File

@ -0,0 +1,3 @@
version https://git-lfs.github.com/spec/v1
oid sha256:9ebc0c2f666d3677d28a01d69f247a8f9fa2dd64fe3d1092058a20cfee615379
size 196429092

View File

@ -0,0 +1,16 @@
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEwoOeytlAj76VMcPp9DSh76/urqMFAmKX2f4ACgkQ9DSh76/u
rqNxBRAAwMfmJPu/0qcmK4EWS3i585r4jHibQFWR8HzuHs49rs3SPkkfWle7VUYa
/O6eGnMnhLigRKqj+e+0ukwAIzb4GKLyItNKkMKWcWxJd5mzWSfTeG0mmuUJhST8
Lv6Nq2O4lq1CuMaqaOmORlSvY0102LFb4Vzhb1T5wCLU+kTe1FixBXDGg/OkXIYY
oS6l5JcbgAbl/BSfG8tmcl/8f0H4XCbcTOiojw7naEzVuB3nCF075ffZVp4nKrpk
wrOy1qVrhzUmoGEYml0dhW/cXKjqQGfAUyFgIf2Qh/6s90NObTGO45+YoXmcx5eG
Q8DfEdIwv42bwm/tH5bMH8moD+Hr2G3lf3v0e33d4IYRdugkbIBvLN5V63Dl9jEG
lWGmxjXywdOaYrylE5R8QeRkm3gkkWK4LZQg9yW56xdePSdPme5nSfLhaV7aRzqF
vKan1R34fWoNq0crQ482DE3DnD52fC8UnxVVgKALx7LkZ8Rp+H1LjyRvB5mBwLc1
SfDbejWQvFEl14+nyUTXlaX/Y+HLdfxIDjDFiWF6zmNI+c2iGQtKaxjWihnuTgiO
ZPBO6GCLh5nK4sC2t3MEgP62o7kZSAfjr5WTQ2h2XhGhkoh2FrSO+VVnHUmC4dmN
rrb4CQkkDknTB0kaE8PNKf7WbTZ14EbH2xhQRUS750kERdLcI8Q=
=hqcU
-----END PGP SIGNATURE-----

View File

@ -1,3 +1,16 @@
-------------------------------------------------------------------
Fri Jun 10 14:00:00 UTC 2022 - Danilo Spinella <danilo.spinella@suse.com>
- Update to version 7.3.4.2:
You can find the complete release notes here:
https://wiki.documentfoundation.org/Releases/7.3.4/RC2
https://wiki.documentfoundation.org/Releases/7.3.4/RC1
- Remove upstreamed patches:
* bsc1192616.patch
* bsc1197497.patch
- Updated bundled dependencies:
* curl-7.79.1.tar.xz -> curl-7.83.1.tar.xz
------------------------------------------------------------------- -------------------------------------------------------------------
Fri Jun 10 13:03:44 UTC 2022 - Andras Timar <andras.timar@collabora.com> Fri Jun 10 13:03:44 UTC 2022 - Andras Timar <andras.timar@collabora.com>

View File

@ -49,7 +49,7 @@
%endif %endif
%bcond_with firebird %bcond_with firebird
Name: libreoffice Name: libreoffice
Version: 7.3.3.2 Version: 7.3.4.2
Release: 0 Release: 0
Summary: A Free Office Suite (Framework) Summary: A Free Office Suite (Framework)
License: LGPL-3.0-or-later AND MPL-2.0+ License: LGPL-3.0-or-later AND MPL-2.0+
@ -107,10 +107,6 @@ Patch3: mediawiki-no-broken-help.diff
Patch6: gcc11-fix-error.patch Patch6: gcc11-fix-error.patch
Patch9: fix_math_desktop_file.patch Patch9: fix_math_desktop_file.patch
Patch10: fix_gtk_popover_on_3.20.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
# Bug 1197497 - LO-L3: Loading XLSX with 1M rows is ultra slow (or crashes Calc)
Patch14: bsc1197497.patch
# Bug 1198665 - LO-L3: PPTX: text on top of circular object misplaced # Bug 1198665 - LO-L3: PPTX: text on top of circular object misplaced
Patch15: bsc1198665.patch Patch15: bsc1198665.patch
# Build with java 8 # Build with java 8
@ -135,7 +131,7 @@ BuildRequires: cups-devel
%if %{with system_curl} %if %{with system_curl}
BuildRequires: curl-devel >= 7.68.0 BuildRequires: curl-devel >= 7.68.0
%else %else
Source2013: %{external_url}/curl-7.79.1.tar.xz Source2013: %{external_url}/curl-7.83.1.tar.xz
%endif %endif
# Needed for tests # Needed for tests
BuildRequires: dejavu-fonts BuildRequires: dejavu-fonts
@ -1024,8 +1020,6 @@ Provides %{langname} translations and additional resources (help files, etc.) fo
%patch3 %patch3
%patch6 -p1 %patch6 -p1
%patch9 -p1 %patch9 -p1
%patch13 -p1
%patch14 -p1
%patch15 -p1 %patch15 -p1
%if 0%{?suse_version} < 1500 %if 0%{?suse_version} < 1500
%patch10 -p1 %patch10 -p1