sc/source/filter/xml/xmlstyli.cxx | 5 +++-- sc/source/ui/unoobj/cellsuno.cxx | 4 ++-- 2 files changed, 5 insertions(+), 4 deletions(-)
New commits: commit 34315e7ec4062f9521cd19951b5f7f6ad9ce0d2e Author: Eike Rathke <er...@redhat.com> Date: Thu Jan 26 14:03:13 2012 +0100 resolved fdo#38595 border width lost in ODF import diff --git a/sc/source/filter/xml/xmlstyli.cxx b/sc/source/filter/xml/xmlstyli.cxx index 7691c4b..72155e6 100644 --- a/sc/source/filter/xml/xmlstyli.cxx +++ b/sc/source/filter/xml/xmlstyli.cxx @@ -170,12 +170,14 @@ void ScXMLCellImportPropertyMapper::finished(::std::vector< XMLPropertyState >& pBorders[i]->maValue >>= aBorderLine; if( pBorderWidths[i] ) { + // Merge style:border-line-width values to fo:border values. Do + // not override fo:border line width or line style with an + // empty value! table::BorderLine2 aBorderLineWidth; pBorderWidths[i]->maValue >>= aBorderLineWidth; aBorderLine.OuterLineWidth = aBorderLineWidth.OuterLineWidth; aBorderLine.InnerLineWidth = aBorderLineWidth.InnerLineWidth; aBorderLine.LineDistance = aBorderLineWidth.LineDistance; - aBorderLine.LineWidth = aBorderLineWidth.LineWidth; pBorders[i]->maValue <<= aBorderLine; } } @@ -194,7 +196,6 @@ void ScXMLCellImportPropertyMapper::finished(::std::vector< XMLPropertyState >& aBorderLine.OuterLineWidth = aBorderLineWidth.OuterLineWidth; aBorderLine.InnerLineWidth = aBorderLineWidth.InnerLineWidth; aBorderLine.LineDistance = aBorderLineWidth.LineDistance; - aBorderLine.LineWidth = aBorderLineWidth.LineWidth; pDiagBorders[i]->maValue <<= aBorderLine; if (pDiagBorderWidths[i]) pDiagBorderWidths[i]->mnIndex = -1; commit 97c66b3b13528cc50f271217663718b3d6681bd9 Author: Eike Rathke <er...@redhat.com> Date: Thu Jan 26 14:03:12 2012 +0100 cast from BorderLine to BorderLine2 is not valid Don't access a css::table::BorderLine struct as if it was a css::table::BorderLine2 struct, which it isn't. A proper implementation would need to pass BorderLine2 structs around for which it would need a css::table::TableBorder2 struct that holds BorderLine2 instead of BorderLine, and adapt various places for API compatibility to support both. For now use the default table::BorderLineStyle::SOLID to set the line style at ::editeng::SvxBorderLine diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx index 73419fc..075421c 100644 --- a/sc/source/ui/unoobj/cellsuno.cxx +++ b/sc/source/ui/unoobj/cellsuno.cxx @@ -59,6 +59,7 @@ #include <com/sun/star/table/ShadowFormat.hpp> #include <com/sun/star/table/TableBorder.hpp> #include <com/sun/star/table/BorderLine2.hpp> +#include <com/sun/star/table/BorderLineStyle.hpp> #include <com/sun/star/sheet/CellFlags.hpp> #include <com/sun/star/sheet/FormulaResult.hpp> #include <com/sun/star/beans/PropertyAttribute.hpp> @@ -952,8 +953,7 @@ ScSubTotalFunc lcl_SummaryToSubTotal( sheet::GeneralFunction eSummary ) const ::editeng::SvxBorderLine* ScHelperFunctions::GetBorderLine( ::editeng::SvxBorderLine& rLine, const table::BorderLine& rStruct ) { // Calc needs Twips, and there are 1/100mm in the Uno structure - const table::BorderLine2& rBorder2 = static_cast< const table::BorderLine2& >( rStruct ); - rLine.SetStyle( ::editeng::SvxBorderStyle( rBorder2.LineStyle ) ); + rLine.SetStyle( ::editeng::SvxBorderStyle( table::BorderLineStyle::SOLID ) ); rLine.GuessLinesWidths( rLine.GetStyle(), (sal_uInt16)HMMToTwips( rStruct.OuterLineWidth ), (sal_uInt16)HMMToTwips( rStruct.InnerLineWidth ), _______________________________________________ Libreoffice-commits mailing list Libreoffice-commits@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits