xmloff/inc/xmloff/xmlaustp.hxx | 12 ++ xmloff/source/chart/SchXMLExport.cxx | 151 +++++++++++---------------------- xmloff/source/draw/sdxmlexp.cxx | 3 xmloff/source/forms/layerexport.cxx | 14 --- xmloff/source/style/XMLPageExport.cxx | 16 --- xmloff/source/style/impastp4.cxx | 27 +++++ xmloff/source/table/XMLTableExport.cxx | 56 ++++-------- 7 files changed, 116 insertions(+), 163 deletions(-)
New commits: commit a7af1d075fe3e5b46345c5191998b0103298057f Author: Michael Meeks <[email protected]> Date: Fri Mar 15 17:36:17 2013 +0000 cleanup automatic style creation helper to further shrink code. Change-Id: I30804115e397ef02977f1d5629df3924dcc5b962 diff --git a/xmloff/inc/xmloff/xmlaustp.hxx b/xmloff/inc/xmloff/xmlaustp.hxx index dfdcc23..dbd61ec 100644 --- a/xmloff/inc/xmloff/xmlaustp.hxx +++ b/xmloff/inc/xmloff/xmlaustp.hxx @@ -56,8 +56,16 @@ class XMLOFF_DLLPUBLIC SvXMLAutoFilteredSet /// return the relevant family's property mapper const UniReference < SvXMLExportPropertyMapper > & getMapper(); /// filter properties - SvXMLAutoFilteredSet &filter( const ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > &xPropSet ); + void filter( const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet > &xPropSet ); + /// filter properties - query for XPropertySet with no throw on failure + void filter( const ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XInterface > &xInterface, + ::com::sun::star::uno::UnoReference_Query ); + /// filter properties - query for XPropertySet with exception on failure + void filter( const ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XInterface > &xInterface, + ::com::sun::star::uno::UnoReference_QueryThrow ); /// discard all content void clear(); /// do we have any valid properties ie. some were not filtered ? diff --git a/xmloff/source/chart/SchXMLExport.cxx b/xmloff/source/chart/SchXMLExport.cxx index 3bc3937..d24c97d 100644 --- a/xmloff/source/chart/SchXMLExport.cxx +++ b/xmloff/source/chart/SchXMLExport.cxx @@ -1241,11 +1241,7 @@ void SchXMLExportHelper_Impl::parseDocument( Reference< chart::XChartDocument >& SvXMLElementExport* pElChart = 0; // get property states for autostyles - { - Reference< beans::XPropertySet > xPropSet( rChartDoc->getArea(), uno::UNO_QUERY ); - if( xPropSet.is()) - aPropertyStates.filter( xPropSet ); - } + aPropertyStates.filter( rChartDoc->getArea(), uno::UNO_QUERY ); if( bExportContent ) { @@ -1325,11 +1321,7 @@ void SchXMLExportHelper_Impl::parseDocument( Reference< chart::XChartDocument >& if( bHasMainTitle ) { // get property states for autostyles - { - Reference< beans::XPropertySet > xPropSet( rChartDoc->getTitle(), uno::UNO_QUERY ); - if( xPropSet.is()) - aPropertyStates.filter( xPropSet ); - } + aPropertyStates.filter( rChartDoc->getTitle(), uno::UNO_QUERY ); if( bExportContent ) { @@ -1368,11 +1360,7 @@ void SchXMLExportHelper_Impl::parseDocument( Reference< chart::XChartDocument >& if( bHasSubTitle ) { // get property states for autostyles - { - Reference< beans::XPropertySet > xPropSet( rChartDoc->getSubTitle(), uno::UNO_QUERY ); - if( xPropSet.is()) - aPropertyStates.filter( xPropSet ); - } + aPropertyStates.filter( rChartDoc->getSubTitle(), uno::UNO_QUERY ); if( bExportContent ) { @@ -1410,9 +1398,7 @@ void SchXMLExportHelper_Impl::parseDocument( Reference< chart::XChartDocument >& if( bHasLegend ) { // get property states for autostyles - Reference< beans::XPropertySet > xPropSet( rChartDoc->getLegend(), uno::UNO_QUERY ); - if( xPropSet.is()) - aPropertyStates.filter( xPropSet ); + aPropertyStates.filter( rChartDoc->getLegend(), uno::UNO_QUERY ); if( bExportContent ) { @@ -2061,66 +2047,49 @@ void SchXMLExportHelper_Impl::exportPlotArea( if( xStockPropProvider.is()) { // stock-gain-marker - Reference< beans::XPropertySet > xStockPropSet = xStockPropProvider->getUpBar(); - if( xStockPropSet.is()) + aPropertyStates.filter( xStockPropProvider->getUpBar() ); + if( !aPropertyStates.empty() ) { - aPropertyStates.clear(); - aPropertyStates.filter( xStockPropSet ); - - if( !aPropertyStates.empty() ) + if( bExportContent ) { - if( bExportContent ) - { - AddAutoStyleAttribute( aPropertyStates ); - - SvXMLElementExport aGain( mrExport, XML_NAMESPACE_CHART, XML_STOCK_GAIN_MARKER, sal_True, sal_True ); - } - else - { - CollectAutoStyle( aPropertyStates ); - } + AddAutoStyleAttribute( aPropertyStates ); + SvXMLElementExport aGain( mrExport, XML_NAMESPACE_CHART, XML_STOCK_GAIN_MARKER, sal_True, sal_True ); + } + else + { + CollectAutoStyle( aPropertyStates ); } } // stock-loss-marker - xStockPropSet = xStockPropProvider->getDownBar(); - if( xStockPropSet.is()) + aPropertyStates.filter( xStockPropProvider->getDownBar() ); + if( !aPropertyStates.empty() ) { - aPropertyStates.filter( xStockPropSet ); - - if( !aPropertyStates.empty() ) + if( bExportContent ) { - if( bExportContent ) - { - AddAutoStyleAttribute( aPropertyStates ); + AddAutoStyleAttribute( aPropertyStates ); - SvXMLElementExport aGain( mrExport, XML_NAMESPACE_CHART, XML_STOCK_LOSS_MARKER, sal_True, sal_True ); - } - else - { - CollectAutoStyle( aPropertyStates ); - } + SvXMLElementExport aGain( mrExport, XML_NAMESPACE_CHART, XML_STOCK_LOSS_MARKER, sal_True, sal_True ); + } + else + { + CollectAutoStyle( aPropertyStates ); } } // stock-range-line - xStockPropSet = xStockPropProvider->getMinMaxLine(); - if( xStockPropSet.is()) + aPropertyStates.filter( xStockPropProvider->getMinMaxLine() ); + if( !aPropertyStates.empty() ) { - aPropertyStates.filter( xStockPropSet ); - - if( !aPropertyStates.empty() ) + if( bExportContent ) { - if( bExportContent ) - { - AddAutoStyleAttribute( aPropertyStates ); + AddAutoStyleAttribute( aPropertyStates ); - SvXMLElementExport aGain( mrExport, XML_NAMESPACE_CHART, XML_STOCK_RANGE_LINE, sal_True, sal_True ); - } - else - { - CollectAutoStyle( aPropertyStates ); - } + SvXMLElementExport aGain( mrExport, XML_NAMESPACE_CHART, XML_STOCK_RANGE_LINE, sal_True, sal_True ); + } + else + { + CollectAutoStyle( aPropertyStates ); } } } @@ -2133,54 +2102,40 @@ void SchXMLExportHelper_Impl::exportPlotArea( if( mxExpPropMapper.is() && xWallFloorSupplier.is()) { - // remove property states for autostyles - aPropertyStates.clear(); - - Reference< beans::XPropertySet > xWallPropSet( xWallFloorSupplier->getWall(), uno::UNO_QUERY ); - if( xWallPropSet.is()) + aPropertyStates.filter( xWallFloorSupplier->getWall(), uno::UNO_QUERY ); + if( !aPropertyStates.empty() ) { - aPropertyStates.filter( xWallPropSet ); - if( !aPropertyStates.empty() ) + // write element + if( bExportContent ) { - // write element - if( bExportContent ) - { - // add style name attribute - AddAutoStyleAttribute( aPropertyStates ); + // add style name attribute + AddAutoStyleAttribute( aPropertyStates ); - SvXMLElementExport aWall( mrExport, XML_NAMESPACE_CHART, XML_WALL, sal_True, sal_True ); - } - else // autostyles - { - CollectAutoStyle( aPropertyStates ); - } + SvXMLElementExport aWall( mrExport, XML_NAMESPACE_CHART, XML_WALL, sal_True, sal_True ); + } + else // autostyles + { + CollectAutoStyle( aPropertyStates ); } } // floor element // ------------- - // remove property states for autostyles - aPropertyStates.clear(); - - Reference< beans::XPropertySet > xFloorPropSet( xWallFloorSupplier->getFloor(), uno::UNO_QUERY ); - if( xFloorPropSet.is()) + aPropertyStates.filter( xWallFloorSupplier->getFloor(), uno::UNO_QUERY ); + if( !aPropertyStates.empty() ) { - aPropertyStates.filter( xFloorPropSet ); - if( !aPropertyStates.empty() ) + // write element + if( bExportContent ) { - // write element - if( bExportContent ) - { - // add style name attribute - AddAutoStyleAttribute( aPropertyStates ); + // add style name attribute + AddAutoStyleAttribute( aPropertyStates ); - SvXMLElementExport aFloor( mrExport, XML_NAMESPACE_CHART, XML_FLOOR, sal_True, sal_True ); - } - else // autostyles - { - CollectAutoStyle( aPropertyStates ); - } + SvXMLElementExport aFloor( mrExport, XML_NAMESPACE_CHART, XML_FLOOR, sal_True, sal_True ); + } + else // autostyles + { + CollectAutoStyle( aPropertyStates ); } } } diff --git a/xmloff/source/draw/sdxmlexp.cxx b/xmloff/source/draw/sdxmlexp.cxx index 8c714ee..5365c87 100644 --- a/xmloff/source/draw/sdxmlexp.cxx +++ b/xmloff/source/draw/sdxmlexp.cxx @@ -1692,7 +1692,8 @@ OUString SdXMLExport::ImpCreatePresPageStyleName( Reference<XDrawPage> xDrawPage SvXMLAutoFilteredSet aFilterSet( GetAutoStylePool(), XML_STYLE_FAMILY_SD_DRAWINGPAGE_ID ); - sStyleName = aFilterSet.filter( xPropSet ).add( "" ); + aFilterSet.filter( xPropSet ); + sStyleName = aFilterSet.add( "" ); } return sStyleName; diff --git a/xmloff/source/style/impastp4.cxx b/xmloff/source/style/impastp4.cxx index 581fb17..2457cc8 100644 --- a/xmloff/source/style/impastp4.cxx +++ b/xmloff/source/style/impastp4.cxx @@ -495,11 +495,32 @@ SvXMLAutoFilteredSet::~SvXMLAutoFilteredSet() { } -SvXMLAutoFilteredSet &SvXMLAutoFilteredSet::filter( const ::com::sun::star::uno::Reference< - ::com::sun::star::beans::XPropertySet > &xPropSet ) +void SvXMLAutoFilteredSet::filter( const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet > &xPropSet ) { maProperties = mpFamily->mxMapper->Filter( xPropSet ); - return *this; +} + +void SvXMLAutoFilteredSet::filter( const ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XInterface > &xInterface, + ::com::sun::star::uno::UnoReference_Query ) +{ + uno::Reference< beans::XPropertySet > xPropSet( xInterface, uno::UNO_QUERY ); + if( xPropSet.is() ) + maProperties = mpFamily->mxMapper->Filter( xPropSet ); + else + maProperties.clear(); +} + +void SvXMLAutoFilteredSet::filter( const ::com::sun::star::uno::Reference< + ::com::sun::star::uno::XInterface > &xInterface, + ::com::sun::star::uno::UnoReference_QueryThrow ) +{ + uno::Reference< beans::XPropertySet > xPropSet( xInterface, uno::UNO_QUERY_THROW ); + if( xPropSet.is() ) + maProperties = mpFamily->mxMapper->Filter( xPropSet ); + else + maProperties.clear(); } bool SvXMLAutoFilteredSet::hasValidContent() commit 4b75e6ffbfc3ba2e836ebe7ce021e916fcdd11cf Author: Michael Meeks <[email protected]> Date: Fri Mar 15 17:16:43 2013 +0000 use new automatic style creation helper for rest of xmloff. Change-Id: Id177e51dd09ff1812cfd13afc47031af2ecd23c9 diff --git a/xmloff/source/forms/layerexport.cxx b/xmloff/source/forms/layerexport.cxx index 13e0ed3..da2745b 100644 --- a/xmloff/source/forms/layerexport.cxx +++ b/xmloff/source/forms/layerexport.cxx @@ -626,7 +626,8 @@ namespace xmloff // determine a number style, if needed xColumnPropertiesMeta = xColumnProperties->getPropertySetInfo(); // get the styles of the column - ::std::vector< XMLPropertyState > aPropertyStates = m_xStyleExportMapper->Filter( xColumnProperties ); + SvXMLAutoFilteredSet aPropertyStates( m_rContext.GetAutoStylePool(), XML_STYLE_FAMILY_CONTROL_ID ); + aPropertyStates.filter( xColumnProperties ); // care for the number format, additionally ::rtl::OUString sColumnNumberStyle; @@ -643,20 +644,11 @@ namespace xmloff aPropertyStates.push_back( aNumberStyleState ); } -#if OSL_DEBUG_LEVEL > 0 - ::std::vector< XMLPropertyState >::const_iterator aHaveALook = aPropertyStates.begin(); - for ( ; aHaveALook != aPropertyStates.end(); ++aHaveALook ) - { - (void)aHaveALook; - } -#endif - // ---------------------------------- // determine the column style - if ( !aPropertyStates.empty() ) { // add to the style pool - ::rtl::OUString sColumnStyleName = m_rContext.GetAutoStylePool()->Add( XML_STYLE_FAMILY_CONTROL_ID, aPropertyStates ); + ::rtl::OUString sColumnStyleName = aPropertyStates.add( "" ); OSL_ENSURE( m_aGridColumnStyles.end() == m_aGridColumnStyles.find( xColumnProperties ), "OFormLayerXMLExport_Impl::collectGridColumnStylesAndIds: already have a style for this column!" ); diff --git a/xmloff/source/style/XMLPageExport.cxx b/xmloff/source/style/XMLPageExport.cxx index 371bf42..797bb3f 100644 --- a/xmloff/source/style/XMLPageExport.cxx +++ b/xmloff/source/style/XMLPageExport.cxx @@ -64,18 +64,10 @@ void XMLPageExport::collectPageMasterAutoStyle( const Reference < XPropertySet > & rPropSet, OUString& rPageMasterName ) { - DBG_ASSERT( xPageMasterPropSetMapper.is(), "page master family/XMLPageMasterPropSetMapper not found" ); - if( xPageMasterPropSetMapper.is() ) - { - ::std::vector<XMLPropertyState> xPropStates = xPageMasterExportPropMapper->Filter( rPropSet ); - if( !xPropStates.empty()) - { - OUString sParent; - rPageMasterName = rExport.GetAutoStylePool()->Find( XML_STYLE_FAMILY_PAGE_MASTER, sParent, xPropStates ); - if (rPageMasterName.isEmpty()) - rPageMasterName = rExport.GetAutoStylePool()->Add(XML_STYLE_FAMILY_PAGE_MASTER, sParent, xPropStates); - } - } + SvXMLAutoFilteredSet xPropStates( rExport.GetAutoStylePool(), XML_STYLE_FAMILY_PAGE_MASTER ); + xPropStates.filter( rPropSet ); + if( !xPropStates.empty()) + rPageMasterName = xPropStates.add( "" ); } void XMLPageExport::exportMasterPageContent( diff --git a/xmloff/source/table/XMLTableExport.cxx b/xmloff/source/table/XMLTableExport.cxx index b06df84..9222da6 100644 --- a/xmloff/source/table/XMLTableExport.cxx +++ b/xmloff/source/table/XMLTableExport.cxx @@ -187,24 +187,6 @@ XMLTableExport::~XMLTableExport () // -------------------------------------------------------------------- -static bool has_states( const std::vector< XMLPropertyState >& xPropStates ) -{ - if( !xPropStates.empty() ) - { - std::vector< XMLPropertyState >::const_iterator aIter( xPropStates.begin() ); - std::vector< XMLPropertyState >::const_iterator aEnd( xPropStates.end() ); - while( aIter != aEnd ) - { - if( aIter->mnIndex != -1 ) - return true; - ++aIter; - } - } - return false; -} - -// -------------------------------------------------------------------- - void XMLTableExport::collectTableAutoStyles(const Reference < XColumnRowRange >& xColumnRowRange) { if( !mbExportTables ) @@ -217,17 +199,17 @@ static bool has_states( const std::vector< XMLPropertyState >& xPropStates ) { Reference< XIndexAccess > xIndexAccessCols( xColumnRowRange->getColumns(), UNO_QUERY_THROW ); const sal_Int32 nColumnCount = xIndexAccessCols->getCount(); - for( sal_Int32 nColumn = 0; nColumn < nColumnCount; ++nColumn ) try + for( sal_Int32 nColumn = 0; nColumn < nColumnCount; ++nColumn ) try { Reference< XPropertySet > xPropSet( xIndexAccessCols->getByIndex(nColumn) , UNO_QUERY_THROW ); - std::vector< XMLPropertyState > xPropStates( mxColumnExportPropertySetMapper->Filter( xPropSet ) ); - - if( has_states( xPropStates ) ) - { - const OUString sStyleName( mrExport.GetAutoStylePool()->Add(XML_STYLE_FAMILY_TABLE_COLUMN, xPropStates) ); - Reference< XInterface > xKey( xPropSet, UNO_QUERY ); - pTableInfo->maColumnStyleMap[xKey] = sStyleName; - } + SvXMLAutoFilteredSet xPropStates( mrExport.GetAutoStylePool(), XML_STYLE_FAMILY_TABLE_COLUMN ); + xPropStates.filter( xPropSet ); + + if( xPropStates.hasValidContent() ) + { + Reference< XInterface > xKey( xPropSet, UNO_QUERY ); + pTableInfo->maColumnStyleMap[xKey] = xPropStates.add( "" ); + } } catch(const Exception&) { @@ -240,16 +222,16 @@ static bool has_states( const std::vector< XMLPropertyState >& xPropStates ) StringStatisticHelper aStringStatistic; - for( sal_Int32 nRow = 0; nRow < nRowCount; ++nRow ) try + for( sal_Int32 nRow = 0; nRow < nRowCount; ++nRow ) try { - Reference< XPropertySet > xPropSet( xIndexAccessRows->getByIndex(nRow) , UNO_QUERY_THROW ); - std::vector< XMLPropertyState > xRowPropStates( mxRowExportPropertySetMapper->Filter( xPropSet ) ); + Reference< XPropertySet > xPropSet( xIndexAccessRows->getByIndex(nRow) , UNO_QUERY_THROW ); + SvXMLAutoFilteredSet xPropStates( mrExport.GetAutoStylePool(), XML_STYLE_FAMILY_TABLE_ROW ); + xPropStates.filter( xPropSet ); - if( has_states( xRowPropStates ) ) + if( xPropStates.hasValidContent() ) { - const OUString sStyleName( mrExport.GetAutoStylePool()->Add(XML_STYLE_FAMILY_TABLE_ROW, xRowPropStates) ); Reference< XInterface > xKey( xPropSet, UNO_QUERY ); - pTableInfo->maRowStyleMap[xKey] = sStyleName; + pTableInfo->maRowStyleMap[xKey] = xPropStates.add( "" ); } // get the current row @@ -271,9 +253,11 @@ static bool has_states( const std::vector< XMLPropertyState >& xPropStates ) // create auto style, if needed OUString sStyleName; - std::vector< XMLPropertyState > xCellPropStates( mxCellExportPropertySetMapper->Filter( xCellSet ) ); - if( has_states( xCellPropStates ) ) - sStyleName = mrExport.GetAutoStylePool()->Add(XML_STYLE_FAMILY_TABLE_CELL, xCellPropStates); + SvXMLAutoFilteredSet xCellPropStates( mrExport.GetAutoStylePool(), XML_STYLE_FAMILY_TABLE_CELL ); + xCellPropStates.filter( xCellSet ); + + if( xCellPropStates.hasValidContent() ) + sStyleName = xCellPropStates.add( "" ); else sStyleName = sParentStyleName; _______________________________________________ Libreoffice-commits mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits
