oox/source/docprop/ooxmldocpropimport.cxx | 2 oox/source/drawingml/table/tablecell.cxx | 55 ++++++++++++++---------- sd/qa/unit/import-tests.cxx | 12 +++++ sfx2/source/dialog/backingwindow.cxx | 2 sw/source/core/text/EnhancedPDFExportHelper.cxx | 6 ++ 5 files changed, 52 insertions(+), 25 deletions(-)
New commits: commit 23130ed6cfc497836dc710ca866d1e474442e608 Author: Caolán McNamara <caol...@redhat.com> Date: Fri Sep 26 11:16:18 2014 +0100 Resolves: fdo#84261 unexpected exception -> clang builds terminate Change-Id: I545ed112b54fb3d81e67b0f42230811cd48de626 (cherry picked from commit 4652700776666e385946c47235363c1120846d5d) Reviewed-on: https://gerrit.libreoffice.org/11653 Reviewed-by: Michael Stahl <mst...@redhat.com> Tested-by: Michael Stahl <mst...@redhat.com> diff --git a/oox/source/docprop/ooxmldocpropimport.cxx b/oox/source/docprop/ooxmldocpropimport.cxx index 4253498..8b60efa 100644 --- a/oox/source/docprop/ooxmldocpropimport.cxx +++ b/oox/source/docprop/ooxmldocpropimport.cxx @@ -63,7 +63,7 @@ Reference< XInterface > SAL_CALL DocumentPropertiesImport_createInstance( const namespace { -Sequence< InputSource > lclGetRelatedStreams( const Reference< XStorage >& rxStorage, const OUString& rStreamType ) throw (RuntimeException) +Sequence< InputSource > lclGetRelatedStreams( const Reference< XStorage >& rxStorage, const OUString& rStreamType ) throw (RuntimeException, css::io::IOException) { Reference< XRelationshipAccess > xRelation( rxStorage, UNO_QUERY_THROW ); Reference< XHierarchicalStorageAccess > xHierarchy( rxStorage, UNO_QUERY_THROW ); commit cc10596c6830fa21a2e7d4d23e77b8ae80072d8e Author: Matúš Kukan <matus.ku...@collabora.com> Date: Mon Sep 22 11:59:14 2014 +0200 bnc#897769: OOXML import: Import border lines using reference too. Do not ignore 'lnRef' element. Also fix typo to apply 'seCell' properties to the right cell (southeast). Change-Id: Ia45f7016f358b70e6db06a232c569335ce9d7051 (cherry picked from commit 18898e13fda25fe6dc85318dd0711355c7b2cc26) Reviewed-on: https://gerrit.libreoffice.org/11652 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/oox/source/drawingml/table/tablecell.cxx b/oox/source/drawingml/table/tablecell.cxx index 2c1fa3c..1b33659 100644 --- a/oox/source/drawingml/table/tablecell.cxx +++ b/oox/source/drawingml/table/tablecell.cxx @@ -84,15 +84,26 @@ void applyLineAttributes( const ::oox::core::XmlFilterBase& rFilterBase, aPropSet.setProperty( nPropId, aBorderLine ); } -void applyBorder( TableStylePart& rTableStylePart, sal_Int32 nLineType, oox::drawingml::LineProperties& rLineProperties ) +void applyBorder( const ::oox::core::XmlFilterBase& rFilterBase, TableStylePart& rTableStylePart, sal_Int32 nLineType, oox::drawingml::LineProperties& rLineProperties ) { std::map < sal_Int32, ::oox::drawingml::LinePropertiesPtr >& rPartLineBorders( rTableStylePart.getLineBorders() ); + ::oox::drawingml::ShapeStyleRef& rLineStyleRef = rTableStylePart.getStyleRefs()[ nLineType ]; std::map < sal_Int32, ::oox::drawingml::LinePropertiesPtr >::const_iterator aIter( rPartLineBorders.find( nLineType ) ); if ( ( aIter != rPartLineBorders.end() ) && aIter->second.get() ) rLineProperties.assignUsed( *aIter->second ); + else if (rLineStyleRef.mnThemedIdx != 0) + { + if (const Theme* pTheme = rFilterBase.getCurrentTheme()) + { + rLineProperties.assignUsed( *pTheme->getLineStyle(rLineStyleRef.mnThemedIdx) ); + sal_Int32 nPhClr = rLineStyleRef.maPhClr.getColor( rFilterBase.getGraphicHelper() ); + rLineProperties.maLineFill.maFillColor.setSrgbClr( nPhClr ); + } + } } -void applyTableStylePart( oox::drawingml::FillProperties& rFillProperties, +void applyTableStylePart( const ::oox::core::XmlFilterBase& rFilterBase, + oox::drawingml::FillProperties& rFillProperties, TextCharacterProperties& aTextCharProps, oox::drawingml::LineProperties& rLeftBorder, oox::drawingml::LineProperties& rRightBorder, @@ -106,12 +117,12 @@ void applyTableStylePart( oox::drawingml::FillProperties& rFillProperties, if ( rPartFillPropertiesPtr.get() ) rFillProperties.assignUsed( *rPartFillPropertiesPtr ); - applyBorder( rTableStylePart, XML_left, rLeftBorder ); - applyBorder( rTableStylePart, XML_right, rRightBorder ); - applyBorder( rTableStylePart, XML_top, rTopBorder ); - applyBorder( rTableStylePart, XML_bottom, rBottomBorder ); - applyBorder( rTableStylePart, XML_tl2br, rTopLeftToBottomRightBorder ); - applyBorder( rTableStylePart, XML_tr2bl, rBottomLeftToTopRightBorder ); + 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 ); aTextCharProps.maLatinFont = rTableStylePart.getLatinFont(); aTextCharProps.maAsianFont = rTableStylePart.getAsianFont(); @@ -171,7 +182,7 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo oox::drawingml::LineProperties aLinePropertiesTopLeftToBottomRight; oox::drawingml::LineProperties aLinePropertiesBottomLeftToTopRight; - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, @@ -182,7 +193,7 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo if ( rProperties.isFirstRow() && ( nRow == 0 ) ) { - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, @@ -193,7 +204,7 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo } if ( rProperties.isLastRow() && ( nRow == nMaxRow ) ) { - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, @@ -204,7 +215,7 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo } if ( rProperties.isFirstCol() && ( nColumn == 0 ) ) { - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, @@ -215,7 +226,7 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo } if ( rProperties.isLastCol() && ( nColumn == nMaxColumn ) ) { - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, @@ -236,7 +247,7 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo nBand++; if ( nBand & 1 ) { - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, @@ -247,7 +258,7 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo } else { - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, @@ -260,7 +271,7 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo } if ( ( nRow == 0 ) && ( nColumn == 0 ) ) { - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, @@ -271,7 +282,7 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo } if ( ( nRow == nMaxRow ) && ( nColumn == 0 ) ) { - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, @@ -282,7 +293,7 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo } if ( ( nRow == 0 ) && ( nColumn == nMaxColumn ) ) { - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, @@ -291,9 +302,9 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo aLinePropertiesBottomLeftToTopRight, rTable.getNeCell() ); } - if ( ( nRow == nMaxColumn ) && ( nColumn == nMaxColumn ) ) + if ( ( nRow == nMaxRow ) && ( nColumn == nMaxColumn ) ) { - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, @@ -314,7 +325,7 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo nBand++; if ( nBand & 1 ) { - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, @@ -325,7 +336,7 @@ void TableCell::pushToXCell( const ::oox::core::XmlFilterBase& rFilterBase, ::oo } else { - applyTableStylePart( aFillProperties, aTextStyleProps, + applyTableStylePart( rFilterBase, aFillProperties, aTextStyleProps, aLinePropertiesLeft, aLinePropertiesRight, aLinePropertiesTop, diff --git a/sd/qa/unit/import-tests.cxx b/sd/qa/unit/import-tests.cxx index ecd29b9..f9fc0dd 100644 --- a/sd/qa/unit/import-tests.cxx +++ b/sd/qa/unit/import-tests.cxx @@ -49,6 +49,7 @@ #include <com/sun/star/chart2/data/XLabeledDataSequence.hpp> #include <com/sun/star/chart2/data/XDataSequence.hpp> #include <com/sun/star/chart2/data/XNumericalDataSequence.hpp> +#include <com/sun/star/table/BorderLine2.hpp> #include <config_features.h> @@ -1024,6 +1025,7 @@ void SdFiltersTest::testBnc480256() uno::Reference< table::XCellRange > xTable; uno::Reference< beans::XPropertySet > xCell; sal_Int32 nColor; + table::BorderLine2 aBorderLine; pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(0)); CPPUNIT_ASSERT( pTableObj ); @@ -1032,10 +1034,14 @@ void SdFiltersTest::testBnc480256() xCell.set(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW); xCell->getPropertyValue("FillColor") >>= nColor; CPPUNIT_ASSERT_EQUAL(sal_Int32(10208238), nColor); + xCell->getPropertyValue("LeftBorder") >>= aBorderLine; + CPPUNIT_ASSERT_EQUAL(util::Color(5609427), aBorderLine.Color); xCell.set(xTable->getCellByPosition(0, 1), uno::UNO_QUERY_THROW); xCell->getPropertyValue("FillColor") >>= nColor; CPPUNIT_ASSERT_EQUAL(sal_Int32(13032959), nColor); + xCell->getPropertyValue("TopBorder") >>= aBorderLine; + CPPUNIT_ASSERT_EQUAL(util::Color(5609427), aBorderLine.Color); pTableObj = dynamic_cast<sdr::table::SdrTableObj*>(pPage->GetObj(1)); CPPUNIT_ASSERT( pTableObj ); @@ -1044,11 +1050,17 @@ void SdFiltersTest::testBnc480256() xCell.set(xTable->getCellByPosition(0, 0), uno::UNO_QUERY_THROW); xCell->getPropertyValue("FillColor") >>= nColor; CPPUNIT_ASSERT_EQUAL(sal_Int32(7056614), nColor); + xCell->getPropertyValue("LeftBorder") >>= aBorderLine; + CPPUNIT_ASSERT_EQUAL(util::Color(12505062), aBorderLine.Color); xCell.set(xTable->getCellByPosition(0, 1), uno::UNO_QUERY_THROW); xCell->getPropertyValue("FillColor") >>= nColor; CPPUNIT_ASSERT_EQUAL(sal_Int32(4626400), nColor); + xCell.set(xTable->getCellByPosition(1, 0), uno::UNO_QUERY_THROW); + xCell->getPropertyValue("BottomBorder") >>= aBorderLine; + CPPUNIT_ASSERT_EQUAL(util::Color(0), aBorderLine.Color); + xDocShRef->DoClose(); } commit 4c7fa8cc74304a584a434b2fa37635fd3178bcc6 Author: Yousuf Philips <philip...@hotmail.com> Date: Fri Sep 26 08:20:39 2014 +0400 fdo#82043: Instead of the bold font, use a higher multiplifier (4.3 backport) Change-Id: I835e5c645ef52f23254178c782f2d484c5c0d20f Reviewed-on: https://gerrit.libreoffice.org/11651 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> diff --git a/sfx2/source/dialog/backingwindow.cxx b/sfx2/source/dialog/backingwindow.cxx index 764337a..d2b52bd 100644 --- a/sfx2/source/dialog/backingwindow.cxx +++ b/sfx2/source/dialog/backingwindow.cxx @@ -60,7 +60,7 @@ const char TEMPLATE_URL[] = "slot:5500"; const char OPEN_URL[] = ".uno:Open"; const char SERVICENAME_CFGREADACCESS[] = "com.sun.star.configuration.ConfigurationAccess"; -float fMultiplier = 1.2; +float fMultiplier = 1.4; const Color aButtonsBackground(114, 168, 84); // TDF green const Color aButtonsText(COL_WHITE); commit fccf9174fde033135a54a5972e37da8f9ba366b2 Author: Julien Nabet <serval2...@yahoo.fr> Date: Wed Sep 24 21:26:59 2014 +0200 Resolves fdo#84283: Export to PDF with footnotes in tables crash Don't crash when there's no rectangles Change-Id: I7e713025cacd449f708176254e05d40c0929577f Reviewed-on: https://gerrit.libreoffice.org/11634 Reviewed-by: Caolán McNamara <caol...@redhat.com> Tested-by: Caolán McNamara <caol...@redhat.com> Reviewed-on: https://gerrit.libreoffice.org/11645 diff --git a/sw/source/core/text/EnhancedPDFExportHelper.cxx b/sw/source/core/text/EnhancedPDFExportHelper.cxx index 6afa51d..0704b91 100644 --- a/sw/source/core/text/EnhancedPDFExportHelper.cxx +++ b/sw/source/core/text/EnhancedPDFExportHelper.cxx @@ -1933,11 +1933,15 @@ void SwEnhancedPDFExportHelper::EnhancedPDFExport() SwRects aTmp; aTmp.insert( aTmp.begin(), mrSh.SwCrsrShell::_GetCrsr()->begin(), mrSh.SwCrsrShell::_GetCrsr()->end() ); OSL_ENSURE( !aTmp.empty(), "Enhanced pdf export - rectangles are missing" ); - const SwRect aLinkRect( aTmp[ 0 ] ); mrSh._GetCrsr()->RestoreSavePos(); mrSh.SwCrsrShell::ClearMark(); + if (aTmp.empty()) + continue; + + const SwRect aLinkRect( aTmp[ 0 ] ); + // Goto footnote text: if ( mrSh.GotoFtnTxt() ) {
_______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits