oox/source/export/chartexport.cxx | 56 ++++++++++++++++++++++++++++++++++++-- 1 file changed, 54 insertions(+), 2 deletions(-)
New commits: commit d54aa149bd6e07c646383b761901aa047a3d3ea2 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Apr 30 21:12:51 2013 +0200 better to use no overlay for now We have no way to determine whether the lengend touches the chart area so let us use no overlay for now. That should be much more in line of the most use cases. Change-Id: Idecb0113e47a3f7c925ff8c45238152406ce8954 diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 3a806b8..660455d 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -890,6 +890,9 @@ void ChartExport::exportLegend( Reference< ::com::sun::star::chart::XChartDocume pFS->singleElement( FSNS( XML_c, XML_legendPos ), XML_val, strPos, FSEND ); + pFS->singleElement( FSNS( XML_c, XML_overlay ), + XML_val, "0", + FSEND ); } // shape properties commit 0c58dc8655017523be8c610ebea2200e472fdd8f Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Apr 30 20:16:06 2013 +0200 only export c:SymbolSize if attribute is there Change-Id: I4f167d1ec6998b27025450e9339d14d94c06e3c1 diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index cab8536..3a806b8 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2464,7 +2464,6 @@ void ChartExport::exportMarker() pFS->startElement( FSNS( XML_c, XML_marker ), FSEND ); Reference< XPropertySet > xPropSet( mxDiagram , uno::UNO_QUERY ); - awt::Size aSymbolSize; sal_Int32 nSymbolType = ::com::sun::star::chart::ChartSymbolType::NONE; if( GetProperty( xPropSet, "SymbolType" ) ) mAny >>= nSymbolType; @@ -2511,15 +2510,18 @@ void ChartExport::exportMarker() } if( nSymbolType != cssc::ChartSymbolType::NONE ) { + awt::Size aSymbolSize; if( GetProperty( xPropSet, "SymbolSize" ) ) + { mAny >>= aSymbolSize;; - sal_Int32 nSize = std::max( aSymbolSize.Width, aSymbolSize.Height ); + sal_Int32 nSize = std::max( aSymbolSize.Width, aSymbolSize.Height ); - nSize = nSize/250.0*7.0; // just guessed based on some test cases - nSize = std::min<sal_Int32>( 72, std::max<sal_Int32>( 2, nSize ) ); - pFS->singleElement( FSNS( XML_c, XML_size), - XML_val, I32S(nSize), - FSEND ); + nSize = nSize/250.0*7.0; // just guessed based on some test cases + nSize = std::min<sal_Int32>( 72, std::max<sal_Int32>( 2, nSize ) ); + pFS->singleElement( FSNS( XML_c, XML_size), + XML_val, I32S(nSize), + FSEND ); + } } pFS->endElement( FSNS( XML_c, XML_marker ) ); } commit bb7dec2fa080b9d0ee89ff780db65bc1f97e0d61 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Apr 30 20:14:13 2013 +0200 also export point size The current formula size/250*7 is just a guess based on some test docs. If someone has an idea how to translate them please tell me. Change-Id: Ibdd27d52d545ac96882c128485c48a3116eb4467 diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 68880cd..cab8536 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2464,9 +2464,11 @@ void ChartExport::exportMarker() pFS->startElement( FSNS( XML_c, XML_marker ), FSEND ); Reference< XPropertySet > xPropSet( mxDiagram , uno::UNO_QUERY ); + awt::Size aSymbolSize; sal_Int32 nSymbolType = ::com::sun::star::chart::ChartSymbolType::NONE; if( GetProperty( xPropSet, "SymbolType" ) ) mAny >>= nSymbolType; + // TODO: more properties support for marker const char* pSymbolType = NULL; switch( nSymbolType ) @@ -2500,12 +2502,25 @@ void ChartExport::exportMarker() default: SAL_WARN("oox", "unknown data series symbol"); } + if( pSymbolType ) { pFS->singleElement( FSNS( XML_c, XML_symbol ), XML_val, pSymbolType, FSEND ); } + if( nSymbolType != cssc::ChartSymbolType::NONE ) + { + if( GetProperty( xPropSet, "SymbolSize" ) ) + mAny >>= aSymbolSize;; + sal_Int32 nSize = std::max( aSymbolSize.Width, aSymbolSize.Height ); + + nSize = nSize/250.0*7.0; // just guessed based on some test cases + nSize = std::min<sal_Int32>( 72, std::max<sal_Int32>( 2, nSize ) ); + pFS->singleElement( FSNS( XML_c, XML_size), + XML_val, I32S(nSize), + FSEND ); + } pFS->endElement( FSNS( XML_c, XML_marker ) ); } commit 2af36506592908e19b02bdfe00359dfe71eb3322 Author: Markus Mohrhard <markus.mohrh...@googlemail.com> Date: Tue Apr 30 18:04:52 2013 +0200 export markers to OOXML Change-Id: I0c2cabc8636b0988bdd779f002c1e7dc1e34b65b diff --git a/oox/source/export/chartexport.cxx b/oox/source/export/chartexport.cxx index 48e2e60..68880cd 100644 --- a/oox/source/export/chartexport.cxx +++ b/oox/source/export/chartexport.cxx @@ -2468,10 +2468,42 @@ void ChartExport::exportMarker() if( GetProperty( xPropSet, "SymbolType" ) ) mAny >>= nSymbolType; // TODO: more properties support for marker - if( nSymbolType == ::com::sun::star::chart::ChartSymbolType::NONE ) + const char* pSymbolType = NULL; + switch( nSymbolType ) + { + case cssc::ChartSymbolType::NONE: + pSymbolType = "none"; + break; + case cssc::ChartSymbolType::SYMBOL0: + pSymbolType = "square"; + break; + case cssc::ChartSymbolType::SYMBOL1: + pSymbolType = "diamond"; + break; + // map all triangle variants to the OOXML version + case cssc::ChartSymbolType::SYMBOL2: + case cssc::ChartSymbolType::SYMBOL3: + case cssc::ChartSymbolType::SYMBOL4: + case cssc::ChartSymbolType::SYMBOL5: + pSymbolType = "triangle"; + break; + case cssc::ChartSymbolType::SYMBOL6: + pSymbolType = "plus"; + break; + case cssc::ChartSymbolType::SYMBOL7: + pSymbolType = "plus"; + break; + case cssc::ChartSymbolType::AUTO: + break; + case cssc::ChartSymbolType::BITMAPURL: + break; + default: + SAL_WARN("oox", "unknown data series symbol"); + } + if( pSymbolType ) { pFS->singleElement( FSNS( XML_c, XML_symbol ), - XML_val, "none", + XML_val, pSymbolType, FSEND ); } pFS->endElement( FSNS( XML_c, XML_marker ) ); _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits