diff options
author | Ivo Hinkelmann <ihi@openoffice.org> | 2009-04-23 10:42:05 +0000 |
---|---|---|
committer | Ivo Hinkelmann <ihi@openoffice.org> | 2009-04-23 10:42:05 +0000 |
commit | 439698c480717d01fafd07463d9994a31795cdb0 (patch) | |
tree | 0c47393472e293b5de26b8dc9fd7f67ba2289afa /xmloff | |
parent | 1a37f7adbea03f72d0892df63d0398730fabee65 (diff) |
CWS-TOOLING: integrate CWS dbaperf1
2009-04-02 09:12:25 +0200 oj r270372 : CWS-TOOLING: rebase CWS dbaperf1 to trunk@270033 (milestone: DEV300:m45)
2009-03-17 10:20:34 +0100 oj r269577 : add parameter
2009-03-17 10:20:05 +0100 oj r269576 : add parameter
2009-03-12 12:32:24 +0100 oj r269387 : add missing ++
2009-03-11 12:53:35 +0100 oj r269315 : compile error
2009-03-06 08:52:11 +0100 oj r268968 : #i99264# remove duplicate code
2009-03-06 08:20:08 +0100 oj r268966 : add missingheader
2009-03-06 08:17:41 +0100 oj r268965 : add header
2009-03-06 08:15:07 +0100 oj r268964 : #i99708# remove duplicate code
2009-03-06 07:24:11 +0100 oj r268963 : #i99708# remove duplicate code
2009-03-06 07:22:24 +0100 oj r268962 : #i99708# use tenary operator
2009-03-06 07:19:21 +0100 oj r268961 : remove unused rtl_logs
2009-03-06 07:15:55 +0100 oj r268960 : #i99708# extract getLength from for loop
2009-03-06 07:15:35 +0100 oj r268959 : #i99708# extract getLength from for loop
2009-03-06 07:14:57 +0100 oj r268958 : remove unused rtl_logs
2009-03-06 07:13:01 +0100 oj r268957 : insert DBG_ helper
2009-03-06 07:12:17 +0100 oj r268956 : remove unused rtl_logs
2009-03-06 07:10:26 +0100 oj r268955 : remove unused rtl_logs
2009-03-06 07:04:51 +0100 oj r268954 : #i99708# use tenary operator
2009-03-05 12:04:46 +0100 oj r268895 : comment RTL_LOG out
2009-03-05 09:05:07 +0100 oj r268874 : add rtl logfile
2009-03-04 14:21:18 +0100 oj r268828 : #i99708# make static inplace and some method calls in for loop removed
2009-03-04 14:20:34 +0100 oj r268827 : #i99708# impl double check pattern for getInfohelper
2009-03-02 09:31:42 +0100 oj r268636 : add rtl logfile
2009-03-02 08:18:37 +0100 oj r268633 : add rtl logfile
2009-02-27 11:22:16 +0100 oj r268570 : #i99709# change algorithm for marking objects
2009-02-27 11:17:04 +0100 oj r268568 : #i99708# some improvements to load forms, controls faster and replacement of size() call with !empty() which is much faster
2009-02-24 10:09:35 +0100 sb r268383 : #i99290# no longer care to set a sensible context class loader for native threads attached to the VM
2009-02-23 13:44:04 +0100 oj r268354 : #i76606# seekrow changes
2009-02-23 12:27:30 +0100 oj r268349 : deleted
2009-02-20 15:14:23 +0100 oj r268325 : #i76606# some code changes
2009-02-19 14:15:25 +0100 oj r268284 : #i76606# use of simple prep stmt instead of full blown rowset, when source and dest connection are the same use insert into ... ( select ... )
2009-02-19 11:27:55 +0100 oj r268265 : #i76606# insert some RTL_LOG and setObject impl
2009-02-18 14:45:37 +0100 oj r268222 : #i99363# insert RTL_LOG
2009-02-18 14:45:18 +0100 oj r268221 : #i99363# insert RTL_LOG
2009-02-18 11:14:54 +0100 oj r268207 : #i99363# call some impl_ methods to avoid duplicate cechCache calls
2009-02-18 11:10:47 +0100 oj r268206 : #i99363# make isCount inline
2009-02-18 10:33:22 +0100 oj r268203 : #i99363# use bookmarkable if available and inserted some RTL_LOG
2009-02-18 10:32:57 +0100 oj r268202 : #i99363# use bookmarkable if available and inserted some RTL_LOG
2009-02-17 07:29:05 +0100 oj r267843 : #i96897# remove some dll public
2009-02-16 15:01:04 +0100 oj r267816 : #i96897# remove some dll public
2009-02-16 14:25:53 +0100 oj r267810 : #i99264# remove duplicate code
2009-02-16 14:25:33 +0100 oj r267809 : #i99264# remove duplicate code
2009-02-16 14:24:59 +0100 oj r267808 : #i99264# remove duplicate code
2009-02-13 10:56:17 +0100 oj r267703 : #i99191# comment the contextclassloader
2009-02-13 10:32:40 +0100 oj r267700 : reduce call to resultset meta data
2009-02-13 10:27:31 +0100 oj r267699 : reduce call to resultset meta data
2009-02-13 10:27:08 +0100 oj r267698 : reduce call to resultset meta data
Diffstat (limited to 'xmloff')
50 files changed, 2443 insertions, 2458 deletions
diff --git a/xmloff/inc/xexptran.hxx b/xmloff/inc/xexptran.hxx index c36f303c97..f795ff9b8c 100644 --- a/xmloff/inc/xexptran.hxx +++ b/xmloff/inc/xexptran.hxx @@ -83,7 +83,7 @@ public: void AddSkewY(double fNew); void AddMatrix(const ::basegfx::B2DHomMatrix& rNew); - bool NeedsAction() const { return 0L != maList.size(); } + bool NeedsAction() const { return !maList.empty(); } void GetFullTransform(::basegfx::B2DHomMatrix& rFullTrans); const rtl::OUString& GetExportString(const SvXMLUnitConverter& rConv); void SetString(const rtl::OUString& rNew, const SvXMLUnitConverter& rConv); @@ -111,7 +111,7 @@ public: void AddMatrix(const ::basegfx::B3DHomMatrix& rNew); void AddHomogenMatrix(const com::sun::star::drawing::HomogenMatrix& xHomMat); - bool NeedsAction() const { return 0L != maList.size(); } + bool NeedsAction() const { return !maList.empty(); } void GetFullTransform(::basegfx::B3DHomMatrix& rFullTrans); bool GetFullHomogenTransform(com::sun::star::drawing::HomogenMatrix& xHomMat); const rtl::OUString& GetExportString(const SvXMLUnitConverter& rConv); diff --git a/xmloff/inc/xmloff/controlpropertyhdl.hxx b/xmloff/inc/xmloff/controlpropertyhdl.hxx index 7574932a81..971d25090f 100644 --- a/xmloff/inc/xmloff/controlpropertyhdl.hxx +++ b/xmloff/inc/xmloff/controlpropertyhdl.hxx @@ -47,7 +47,7 @@ namespace xmloff //......................................................................... class IFormsExportContext; - class IFormsImportContext; + class OFormLayerXMLImport_Impl; //===================================================================== //= ORotationAngleHandler diff --git a/xmloff/source/chart/SchXMLExport.cxx b/xmloff/source/chart/SchXMLExport.cxx index a503feb205..9576fc4f91 100644 --- a/xmloff/source/chart/SchXMLExport.cxx +++ b/xmloff/source/chart/SchXMLExport.cxx @@ -1662,7 +1662,7 @@ void SchXMLExportHelper::exportPlotArea( aPropertyStates.clear(); aPropertyStates = mxExpPropMapper->Filter( xStockPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { if( bExportContent ) { @@ -1684,7 +1684,7 @@ void SchXMLExportHelper::exportPlotArea( aPropertyStates.clear(); aPropertyStates = mxExpPropMapper->Filter( xStockPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { if( bExportContent ) { @@ -1706,7 +1706,7 @@ void SchXMLExportHelper::exportPlotArea( aPropertyStates.clear(); aPropertyStates = mxExpPropMapper->Filter( xStockPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { if( bExportContent ) { @@ -1738,7 +1738,7 @@ void SchXMLExportHelper::exportPlotArea( { aPropertyStates = mxExpPropMapper->Filter( xWallPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { // write element if( bExportContent ) @@ -1766,7 +1766,7 @@ void SchXMLExportHelper::exportPlotArea( { aPropertyStates = mxExpPropMapper->Filter( xFloorPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { // write element if( bExportContent ) @@ -2674,7 +2674,7 @@ void SchXMLExportHelper::exportSeries( { aPropertyStates = mxExpPropMapper->Filter( xStatProp ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { // write element if( bExportContent ) @@ -2735,7 +2735,7 @@ void SchXMLExportHelper::exportSeries( aPropertyStates = mxExpPropMapper->Filter( xStatProp ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { // write element if( bExportContent ) @@ -3090,7 +3090,7 @@ void SchXMLExportHelper::exportDataPoints( } aPropertyStates = mxExpPropMapper->Filter( xPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { if( bExportContent ) { @@ -3154,7 +3154,7 @@ void SchXMLExportHelper::exportDataPoints( } aPropertyStates = mxExpPropMapper->Filter( xPropSet ); - if( aPropertyStates.size() > 0 ) + if( !aPropertyStates.empty() ) { if( bExportContent ) { @@ -3324,13 +3324,13 @@ void SchXMLExportHelper::swapDataArray( Sequence< Sequence< double > >& rSequenc void SchXMLExportHelper::CollectAutoStyle( const std::vector< XMLPropertyState >& aStates ) { - if( aStates.size()) + if( !aStates.empty() ) maAutoStyleNameQueue.push( GetAutoStylePoolP().Add( XML_STYLE_FAMILY_SCH_CHART_ID, aStates )); } void SchXMLExportHelper::AddAutoStyleAttribute( const std::vector< XMLPropertyState >& aStates ) { - if( aStates.size()) + if( !aStates.empty() ) { DBG_ASSERT( ! maAutoStyleNameQueue.empty(), "Autostyle queue empty!" ); diff --git a/xmloff/source/chart/SchXMLImport.cxx b/xmloff/source/chart/SchXMLImport.cxx index e45d332302..1576bd263c 100644 --- a/xmloff/source/chart/SchXMLImport.cxx +++ b/xmloff/source/chart/SchXMLImport.cxx @@ -117,155 +117,23 @@ private: // element maps // ---------------------------------------- -static __FAR_DATA SvXMLTokenMapEntry aDocElemTokenMap[] = -{ - { XML_NAMESPACE_OFFICE, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES }, - { XML_NAMESPACE_OFFICE, XML_STYLES, XML_TOK_DOC_STYLES }, - { XML_NAMESPACE_OFFICE, XML_META, XML_TOK_DOC_META }, - { XML_NAMESPACE_OFFICE, XML_BODY, XML_TOK_DOC_BODY }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aTableElemTokenMap[] = -{ - { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_COLUMNS, XML_TOK_TABLE_HEADER_COLS }, - { XML_NAMESPACE_TABLE, XML_TABLE_COLUMNS, XML_TOK_TABLE_COLUMNS }, - { XML_NAMESPACE_TABLE, XML_TABLE_COLUMN, XML_TOK_TABLE_COLUMN }, - { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_ROWS, XML_TOK_TABLE_HEADER_ROWS }, - { XML_NAMESPACE_TABLE, XML_TABLE_ROWS, XML_TOK_TABLE_ROWS }, - { XML_NAMESPACE_TABLE, XML_TABLE_ROW, XML_TOK_TABLE_ROW }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aChartElemTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_PLOT_AREA, XML_TOK_CHART_PLOT_AREA }, - { XML_NAMESPACE_CHART, XML_TITLE, XML_TOK_CHART_TITLE }, - { XML_NAMESPACE_CHART, XML_SUBTITLE, XML_TOK_CHART_SUBTITLE }, - { XML_NAMESPACE_CHART, XML_LEGEND, XML_TOK_CHART_LEGEND }, - { XML_NAMESPACE_TABLE, XML_TABLE, XML_TOK_CHART_TABLE }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aPlotAreaElemTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_AXIS, XML_TOK_PA_AXIS }, - { XML_NAMESPACE_CHART, XML_SERIES, XML_TOK_PA_SERIES }, - { XML_NAMESPACE_CHART, XML_WALL, XML_TOK_PA_WALL }, - { XML_NAMESPACE_CHART, XML_FLOOR, XML_TOK_PA_FLOOR }, - { XML_NAMESPACE_DR3D, XML_LIGHT, XML_TOK_PA_LIGHT_SOURCE }, - { XML_NAMESPACE_CHART, XML_STOCK_GAIN_MARKER, XML_TOK_PA_STOCK_GAIN }, - { XML_NAMESPACE_CHART, XML_STOCK_LOSS_MARKER, XML_TOK_PA_STOCK_LOSS }, - { XML_NAMESPACE_CHART, XML_STOCK_RANGE_LINE, XML_TOK_PA_STOCK_RANGE }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aSeriesElemTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_DATA_POINT, XML_TOK_SERIES_DATA_POINT }, - { XML_NAMESPACE_CHART, XML_DOMAIN, XML_TOK_SERIES_DOMAIN }, - { XML_NAMESPACE_CHART, XML_MEAN_VALUE, XML_TOK_SERIES_MEAN_VALUE_LINE }, - { XML_NAMESPACE_CHART, XML_REGRESSION_CURVE, XML_TOK_SERIES_REGRESSION_CURVE }, - { XML_NAMESPACE_CHART, XML_ERROR_INDICATOR, XML_TOK_SERIES_ERROR_INDICATOR }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aAxisElemTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_TITLE, XML_TOK_AXIS_TITLE }, - { XML_NAMESPACE_CHART, XML_CATEGORIES, XML_TOK_AXIS_CATEGORIES }, - { XML_NAMESPACE_CHART, XML_GRID, XML_TOK_AXIS_GRID }, - XML_TOKEN_MAP_END -}; // ---------------------------------------- // attribute maps // ---------------------------------------- -static __FAR_DATA SvXMLTokenMapEntry aChartAttrTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_CLASS, XML_TOK_CHART_CLASS }, - { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_CHART_WIDTH }, - { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_CHART_HEIGHT }, - { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_CHART_STYLE_NAME }, - { XML_NAMESPACE_CHART, XML_COLUMN_MAPPING, XML_TOK_CHART_COL_MAPPING }, - { XML_NAMESPACE_CHART, XML_ROW_MAPPING, XML_TOK_CHART_ROW_MAPPING }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aPlotAreaAttrTokenMap[] = -{ - { XML_NAMESPACE_SVG, XML_X, XML_TOK_PA_X }, - { XML_NAMESPACE_SVG, XML_Y, XML_TOK_PA_Y }, - { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_PA_WIDTH }, - { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_PA_HEIGHT }, - { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_PA_STYLE_NAME }, - { XML_NAMESPACE_TABLE, XML_CELL_RANGE_ADDRESS, XML_TOK_PA_CHART_ADDRESS }, - { XML_NAMESPACE_CHART, XML_DATA_SOURCE_HAS_LABELS, XML_TOK_PA_DS_HAS_LABELS }, - { XML_NAMESPACE_DR3D, XML_TRANSFORM, XML_TOK_PA_TRANSFORM }, - { XML_NAMESPACE_DR3D, XML_VRP, XML_TOK_PA_VRP }, - { XML_NAMESPACE_DR3D, XML_VPN, XML_TOK_PA_VPN }, - { XML_NAMESPACE_DR3D, XML_VUP, XML_TOK_PA_VUP }, - { XML_NAMESPACE_DR3D, XML_PROJECTION, XML_TOK_PA_PROJECTION }, - { XML_NAMESPACE_DR3D, XML_DISTANCE, XML_TOK_PA_DISTANCE }, - { XML_NAMESPACE_DR3D, XML_FOCAL_LENGTH, XML_TOK_PA_FOCAL_LENGTH }, - { XML_NAMESPACE_DR3D, XML_SHADOW_SLANT, XML_TOK_PA_SHADOW_SLANT }, - { XML_NAMESPACE_DR3D, XML_SHADE_MODE, XML_TOK_PA_SHADE_MODE }, - { XML_NAMESPACE_DR3D, XML_AMBIENT_COLOR, XML_TOK_PA_AMBIENT_COLOR }, - { XML_NAMESPACE_DR3D, XML_LIGHTING_MODE, XML_TOK_PA_LIGHTING_MODE }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aAxisAttrTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_DIMENSION, XML_TOK_AXIS_DIMENSION }, - { XML_NAMESPACE_CHART, XML_NAME, XML_TOK_AXIS_NAME }, - { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_AXIS_STYLE_NAME }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aLegendAttrTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_LEGEND_POSITION, XML_TOK_LEGEND_POSITION }, - { XML_NAMESPACE_SVG, XML_X, XML_TOK_LEGEND_X }, - { XML_NAMESPACE_SVG, XML_Y, XML_TOK_LEGEND_Y }, - { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_LEGEND_STYLE_NAME }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aAutoStyleAttrTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_FAMILY, XML_TOK_AS_FAMILY }, - { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_AS_NAME }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aCellAttrTokenMap[] = -{ - { XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_TOK_CELL_VAL_TYPE }, - { XML_NAMESPACE_OFFICE, XML_VALUE, XML_TOK_CELL_VALUE }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aSeriesAttrTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_VALUES_CELL_RANGE_ADDRESS, XML_TOK_SERIES_CELL_RANGE }, - { XML_NAMESPACE_CHART, XML_LABEL_CELL_ADDRESS, XML_TOK_SERIES_LABEL_ADDRESS }, - { XML_NAMESPACE_CHART, XML_ATTACHED_AXIS, XML_TOK_SERIES_ATTACHED_AXIS }, - { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_SERIES_STYLE_NAME }, - { XML_NAMESPACE_CHART, XML_CLASS, XML_TOK_SERIES_CHART_CLASS }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aRegressionEquationAttrTokenMap[] = -{ - { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_REGEQ_STYLE_NAME }, - { XML_NAMESPACE_CHART, XML_DISPLAY_EQUATION, XML_TOK_REGEQ_DISPLAY_EQUATION }, - { XML_NAMESPACE_CHART, XML_DISPLAY_R_SQUARE, XML_TOK_REGEQ_DISPLAY_R_SQUARE }, - { XML_NAMESPACE_SVG, XML_X, XML_TOK_REGEQ_POS_X }, - { XML_NAMESPACE_SVG, XML_Y, XML_TOK_REGEQ_POS_Y }, - XML_TOKEN_MAP_END -}; // ======================================== @@ -352,42 +220,121 @@ SvXMLImportContext* SchXMLImportHelper::CreateChartContext( const SvXMLTokenMap& SchXMLImportHelper::GetDocElemTokenMap() { if( ! mpChartDocElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aDocElemTokenMap[] = + { + { XML_NAMESPACE_OFFICE, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES }, + { XML_NAMESPACE_OFFICE, XML_STYLES, XML_TOK_DOC_STYLES }, + { XML_NAMESPACE_OFFICE, XML_META, XML_TOK_DOC_META }, + { XML_NAMESPACE_OFFICE, XML_BODY, XML_TOK_DOC_BODY }, + XML_TOKEN_MAP_END + }; + mpChartDocElemTokenMap = new SvXMLTokenMap( aDocElemTokenMap ); + } // if( ! mpChartDocElemTokenMap ) + return *mpChartDocElemTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetTableElemTokenMap() { if( ! mpTableElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aTableElemTokenMap[] = + { + { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_COLUMNS, XML_TOK_TABLE_HEADER_COLS }, + { XML_NAMESPACE_TABLE, XML_TABLE_COLUMNS, XML_TOK_TABLE_COLUMNS }, + { XML_NAMESPACE_TABLE, XML_TABLE_COLUMN, XML_TOK_TABLE_COLUMN }, + { XML_NAMESPACE_TABLE, XML_TABLE_HEADER_ROWS, XML_TOK_TABLE_HEADER_ROWS }, + { XML_NAMESPACE_TABLE, XML_TABLE_ROWS, XML_TOK_TABLE_ROWS }, + { XML_NAMESPACE_TABLE, XML_TABLE_ROW, XML_TOK_TABLE_ROW }, + XML_TOKEN_MAP_END + }; + mpTableElemTokenMap = new SvXMLTokenMap( aTableElemTokenMap ); + } // if( ! mpTableElemTokenMap ) + return *mpTableElemTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetChartElemTokenMap() { if( ! mpChartElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aChartElemTokenMap[] = + { + { XML_NAMESPACE_CHART, XML_PLOT_AREA, XML_TOK_CHART_PLOT_AREA }, + { XML_NAMESPACE_CHART, XML_TITLE, XML_TOK_CHART_TITLE }, + { XML_NAMESPACE_CHART, XML_SUBTITLE, XML_TOK_CHART_SUBTITLE }, + { XML_NAMESPACE_CHART, XML_LEGEND, XML_TOK_CHART_LEGEND }, + { XML_NAMESPACE_TABLE, XML_TABLE, XML_TOK_CHART_TABLE }, + XML_TOKEN_MAP_END + }; + mpChartElemTokenMap = new SvXMLTokenMap( aChartElemTokenMap ); + } // if( ! mpChartElemTokenMap ) + return *mpChartElemTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetPlotAreaElemTokenMap() { if( ! mpPlotAreaElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aPlotAreaElemTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_AXIS, XML_TOK_PA_AXIS }, + { XML_NAMESPACE_CHART, XML_SERIES, XML_TOK_PA_SERIES }, + { XML_NAMESPACE_CHART, XML_WALL, XML_TOK_PA_WALL }, + { XML_NAMESPACE_CHART, XML_FLOOR, XML_TOK_PA_FLOOR }, + { XML_NAMESPACE_DR3D, XML_LIGHT, XML_TOK_PA_LIGHT_SOURCE }, + { XML_NAMESPACE_CHART, XML_STOCK_GAIN_MARKER, XML_TOK_PA_STOCK_GAIN }, + { XML_NAMESPACE_CHART, XML_STOCK_LOSS_MARKER, XML_TOK_PA_STOCK_LOSS }, + { XML_NAMESPACE_CHART, XML_STOCK_RANGE_LINE, XML_TOK_PA_STOCK_RANGE }, + XML_TOKEN_MAP_END +}; + mpPlotAreaElemTokenMap = new SvXMLTokenMap( aPlotAreaElemTokenMap ); + } // if( ! mpPlotAreaElemTokenMap ) + return *mpPlotAreaElemTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetSeriesElemTokenMap() { if( ! mpSeriesElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aSeriesElemTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_DATA_POINT, XML_TOK_SERIES_DATA_POINT }, + { XML_NAMESPACE_CHART, XML_DOMAIN, XML_TOK_SERIES_DOMAIN }, + { XML_NAMESPACE_CHART, XML_MEAN_VALUE, XML_TOK_SERIES_MEAN_VALUE_LINE }, + { XML_NAMESPACE_CHART, XML_REGRESSION_CURVE, XML_TOK_SERIES_REGRESSION_CURVE }, + { XML_NAMESPACE_CHART, XML_ERROR_INDICATOR, XML_TOK_SERIES_ERROR_INDICATOR }, + XML_TOKEN_MAP_END +}; + mpSeriesElemTokenMap = new SvXMLTokenMap( aSeriesElemTokenMap ); + } // if( ! mpSeriesElemTokenMap ) + return *mpSeriesElemTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetAxisElemTokenMap() { if( ! mpAxisElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aAxisElemTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_TITLE, XML_TOK_AXIS_TITLE }, + { XML_NAMESPACE_CHART, XML_CATEGORIES, XML_TOK_AXIS_CATEGORIES }, + { XML_NAMESPACE_CHART, XML_GRID, XML_TOK_AXIS_GRID }, + XML_TOKEN_MAP_END +}; + mpAxisElemTokenMap = new SvXMLTokenMap( aAxisElemTokenMap ); + } // if( ! mpAxisElemTokenMap ) + return *mpAxisElemTokenMap; } @@ -396,56 +343,165 @@ const SvXMLTokenMap& SchXMLImportHelper::GetAxisElemTokenMap() const SvXMLTokenMap& SchXMLImportHelper::GetChartAttrTokenMap() { if( ! mpChartAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aChartAttrTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_CLASS, XML_TOK_CHART_CLASS }, + { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_CHART_WIDTH }, + { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_CHART_HEIGHT }, + { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_CHART_STYLE_NAME }, + { XML_NAMESPACE_CHART, XML_COLUMN_MAPPING, XML_TOK_CHART_COL_MAPPING }, + { XML_NAMESPACE_CHART, XML_ROW_MAPPING, XML_TOK_CHART_ROW_MAPPING }, + XML_TOKEN_MAP_END +}; + mpChartAttrTokenMap = new SvXMLTokenMap( aChartAttrTokenMap ); + } // if( ! mpChartAttrTokenMap ) + return *mpChartAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetPlotAreaAttrTokenMap() { if( ! mpPlotAreaAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aPlotAreaAttrTokenMap[] = +{ + { XML_NAMESPACE_SVG, XML_X, XML_TOK_PA_X }, + { XML_NAMESPACE_SVG, XML_Y, XML_TOK_PA_Y }, + { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_PA_WIDTH }, + { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_PA_HEIGHT }, + { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_PA_STYLE_NAME }, + { XML_NAMESPACE_TABLE, XML_CELL_RANGE_ADDRESS, XML_TOK_PA_CHART_ADDRESS }, + { XML_NAMESPACE_CHART, XML_DATA_SOURCE_HAS_LABELS, XML_TOK_PA_DS_HAS_LABELS }, + { XML_NAMESPACE_DR3D, XML_TRANSFORM, XML_TOK_PA_TRANSFORM }, + { XML_NAMESPACE_DR3D, XML_VRP, XML_TOK_PA_VRP }, + { XML_NAMESPACE_DR3D, XML_VPN, XML_TOK_PA_VPN }, + { XML_NAMESPACE_DR3D, XML_VUP, XML_TOK_PA_VUP }, + { XML_NAMESPACE_DR3D, XML_PROJECTION, XML_TOK_PA_PROJECTION }, + { XML_NAMESPACE_DR3D, XML_DISTANCE, XML_TOK_PA_DISTANCE }, + { XML_NAMESPACE_DR3D, XML_FOCAL_LENGTH, XML_TOK_PA_FOCAL_LENGTH }, + { XML_NAMESPACE_DR3D, XML_SHADOW_SLANT, XML_TOK_PA_SHADOW_SLANT }, + { XML_NAMESPACE_DR3D, XML_SHADE_MODE, XML_TOK_PA_SHADE_MODE }, + { XML_NAMESPACE_DR3D, XML_AMBIENT_COLOR, XML_TOK_PA_AMBIENT_COLOR }, + { XML_NAMESPACE_DR3D, XML_LIGHTING_MODE, XML_TOK_PA_LIGHTING_MODE }, + XML_TOKEN_MAP_END +}; + mpPlotAreaAttrTokenMap = new SvXMLTokenMap( aPlotAreaAttrTokenMap ); + } // if( ! mpPlotAreaAttrTokenMap ) + return *mpPlotAreaAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetAxisAttrTokenMap() { if( ! mpAxisAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aAxisAttrTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_DIMENSION, XML_TOK_AXIS_DIMENSION }, + { XML_NAMESPACE_CHART, XML_NAME, XML_TOK_AXIS_NAME }, + { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_AXIS_STYLE_NAME }, + XML_TOKEN_MAP_END +}; + mpAxisAttrTokenMap = new SvXMLTokenMap( aAxisAttrTokenMap ); + } // if( ! mpAxisAttrTokenMap ) + return *mpAxisAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetLegendAttrTokenMap() { if( ! mpLegendAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aLegendAttrTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_LEGEND_POSITION, XML_TOK_LEGEND_POSITION }, + { XML_NAMESPACE_SVG, XML_X, XML_TOK_LEGEND_X }, + { XML_NAMESPACE_SVG, XML_Y, XML_TOK_LEGEND_Y }, + { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_LEGEND_STYLE_NAME }, + XML_TOKEN_MAP_END +}; + mpLegendAttrTokenMap = new SvXMLTokenMap( aLegendAttrTokenMap ); + } // if( ! mpLegendAttrTokenMap ) + return *mpLegendAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetAutoStyleAttrTokenMap() { if( ! mpAutoStyleAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aAutoStyleAttrTokenMap[] = +{ + { XML_NAMESPACE_STYLE, XML_FAMILY, XML_TOK_AS_FAMILY }, + { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_AS_NAME }, + XML_TOKEN_MAP_END +}; + mpAutoStyleAttrTokenMap = new SvXMLTokenMap( aAutoStyleAttrTokenMap ); + } // if( ! mpAutoStyleAttrTokenMap ) + return *mpAutoStyleAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetCellAttrTokenMap() { if( ! mpCellAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aCellAttrTokenMap[] = +{ + { XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_TOK_CELL_VAL_TYPE }, + { XML_NAMESPACE_OFFICE, XML_VALUE, XML_TOK_CELL_VALUE }, + XML_TOKEN_MAP_END +}; + mpCellAttrTokenMap = new SvXMLTokenMap( aCellAttrTokenMap ); + } // if( ! mpCellAttrTokenMap ) + return *mpCellAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetSeriesAttrTokenMap() { if( ! mpSeriesAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aSeriesAttrTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_VALUES_CELL_RANGE_ADDRESS, XML_TOK_SERIES_CELL_RANGE }, + { XML_NAMESPACE_CHART, XML_LABEL_CELL_ADDRESS, XML_TOK_SERIES_LABEL_ADDRESS }, + { XML_NAMESPACE_CHART, XML_ATTACHED_AXIS, XML_TOK_SERIES_ATTACHED_AXIS }, + { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_SERIES_STYLE_NAME }, + { XML_NAMESPACE_CHART, XML_CLASS, XML_TOK_SERIES_CHART_CLASS }, + XML_TOKEN_MAP_END +}; + mpSeriesAttrTokenMap = new SvXMLTokenMap( aSeriesAttrTokenMap ); + } // if( ! mpSeriesAttrTokenMap ) + return *mpSeriesAttrTokenMap; } const SvXMLTokenMap& SchXMLImportHelper::GetRegEquationAttrTokenMap() { if( ! mpRegEquationAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aRegressionEquationAttrTokenMap[] = +{ + { XML_NAMESPACE_CHART, XML_STYLE_NAME, XML_TOK_REGEQ_STYLE_NAME }, + { XML_NAMESPACE_CHART, XML_DISPLAY_EQUATION, XML_TOK_REGEQ_DISPLAY_EQUATION }, + { XML_NAMESPACE_CHART, XML_DISPLAY_R_SQUARE, XML_TOK_REGEQ_DISPLAY_R_SQUARE }, + { XML_NAMESPACE_SVG, XML_X, XML_TOK_REGEQ_POS_X }, + { XML_NAMESPACE_SVG, XML_Y, XML_TOK_REGEQ_POS_Y }, + XML_TOKEN_MAP_END +}; + mpRegEquationAttrTokenMap = new SvXMLTokenMap( aRegressionEquationAttrTokenMap ); + } // if( ! mpRegEquationAttrTokenMap ) + return *mpRegEquationAttrTokenMap; } diff --git a/xmloff/source/chart/SchXMLSeries2Context.cxx b/xmloff/source/chart/SchXMLSeries2Context.cxx index 6ab7988251..42dacf4920 100644 --- a/xmloff/source/chart/SchXMLSeries2Context.cxx +++ b/xmloff/source/chart/SchXMLSeries2Context.cxx @@ -533,7 +533,7 @@ void SchXMLSeries2Context::EndElement() maSeriesChartTypeName.equalsAsciiL( RTL_CONSTASCII_STRINGPARAM("com.sun.star.chart2.ScatterChartType")) ) { bCreateXValues = true; - if( maDomainAddresses.size() > 0 ) + if( !maDomainAddresses.empty() ) { aXValuesRange = maDomainAddresses.front(); bHasOwnDomains = true; diff --git a/xmloff/source/core/attrlist.cxx b/xmloff/source/core/attrlist.cxx index 67ba0455de..86de77e4e9 100644 --- a/xmloff/source/core/attrlist.cxx +++ b/xmloff/source/core/attrlist.cxx @@ -120,11 +120,7 @@ SvXMLAttributeList::SvXMLAttributeList( const uno::Reference< OUString SAL_CALL SvXMLAttributeList::getNameByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException ) { - if( static_cast< SvXMLAttributeList_Impl::size_type >( i ) - < m_pImpl->vecAttribute.size() ) { - return m_pImpl->vecAttribute[i].sName; - } - return OUString(); + return ( static_cast< SvXMLAttributeList_Impl::size_type >( i ) < m_pImpl->vecAttribute.size() ) ? m_pImpl->vecAttribute[i].sName : OUString(); } @@ -135,12 +131,7 @@ OUString SAL_CALL SvXMLAttributeList::getTypeByIndex(sal_Int16) throw( ::com::su OUString SAL_CALL SvXMLAttributeList::getValueByIndex(sal_Int16 i) throw( ::com::sun::star::uno::RuntimeException ) { - if( static_cast< SvXMLAttributeList_Impl::size_type >( i ) - < m_pImpl->vecAttribute.size() ) { - return m_pImpl->vecAttribute[i].sValue; - } - return OUString(); - + return ( static_cast< SvXMLAttributeList_Impl::size_type >( i ) < m_pImpl->vecAttribute.size() ) ? m_pImpl->vecAttribute[i].sValue : OUString(); } OUString SAL_CALL SvXMLAttributeList::getTypeByName( const OUString& ) throw( ::com::sun::star::uno::RuntimeException ) diff --git a/xmloff/source/core/xmlexp.cxx b/xmloff/source/core/xmlexp.cxx index 1aee3bfa02..8068012230 100644 --- a/xmloff/source/core/xmlexp.cxx +++ b/xmloff/source/core/xmlexp.cxx @@ -1046,19 +1046,20 @@ void SvXMLExport::ImplExportStyles( sal_Bool ) } // transfer style names (+ families) TO other components (if appropriate) - OUString sStyleNames( RTL_CONSTASCII_USTRINGPARAM("StyleNames") ); - OUString sStyleFamilies( RTL_CONSTASCII_USTRINGPARAM("StyleFamilies") ); - if( ( ( mnExportFlags & EXPORT_CONTENT ) == 0 ) - && mxExportInfo.is() - && mxExportInfo->getPropertySetInfo()->hasPropertyByName( sStyleNames ) - && mxExportInfo->getPropertySetInfo()->hasPropertyByName( sStyleFamilies ) ) + if( ( ( mnExportFlags & EXPORT_CONTENT ) == 0 ) && mxExportInfo.is() ) { - Sequence<sal_Int32> aStyleFamilies; - Sequence<OUString> aStyleNames; - mxAutoStylePool->GetRegisteredNames( aStyleFamilies, aStyleNames ); - mxExportInfo->setPropertyValue( sStyleNames, makeAny( aStyleNames ) ); - mxExportInfo->setPropertyValue( sStyleFamilies, - makeAny( aStyleFamilies ) ); + static OUString sStyleNames( RTL_CONSTASCII_USTRINGPARAM("StyleNames") ); + static OUString sStyleFamilies( RTL_CONSTASCII_USTRINGPARAM("StyleFamilies") ); + uno::Reference< beans::XPropertySetInfo > xPropertySetInfo = mxExportInfo->getPropertySetInfo(); + if ( xPropertySetInfo->hasPropertyByName( sStyleNames ) && xPropertySetInfo->hasPropertyByName( sStyleFamilies ) ) + { + Sequence<sal_Int32> aStyleFamilies; + Sequence<OUString> aStyleNames; + mxAutoStylePool->GetRegisteredNames( aStyleFamilies, aStyleNames ); + mxExportInfo->setPropertyValue( sStyleNames, makeAny( aStyleNames ) ); + mxExportInfo->setPropertyValue( sStyleFamilies, + makeAny( aStyleFamilies ) ); + } } } diff --git a/xmloff/source/core/xmlictxt.cxx b/xmloff/source/core/xmlictxt.cxx index 82e3fcf809..d7fe067fe8 100644 --- a/xmloff/source/core/xmlictxt.cxx +++ b/xmloff/source/core/xmlictxt.cxx @@ -39,14 +39,15 @@ #include <xmloff/nmspmap.hxx> #include <xmloff/xmlimp.hxx> #include <xmloff/xmlictxt.hxx> +#include <tools/debug.hxx> using ::rtl::OUString; using ::rtl::OUStringBuffer; using namespace ::com::sun::star; +DBG_NAME(SvXMLImportContext) TYPEINIT0( SvXMLImportContext ); - SvXMLImportContext::SvXMLImportContext( SvXMLImport& rImp, USHORT nPrfx, const OUString& rLName ) : mrImport( rImp ), @@ -54,10 +55,14 @@ SvXMLImportContext::SvXMLImportContext( SvXMLImport& rImp, USHORT nPrfx, maLocalName( rLName ), mpRewindMap( 0 ) { + DBG_CTOR(SvXMLImportContext,NULL); + } SvXMLImportContext::~SvXMLImportContext() { + + DBG_DTOR(SvXMLImportContext,NULL); } SvXMLImportContext *SvXMLImportContext::CreateChildContext( USHORT nPrefix, diff --git a/xmloff/source/core/xmluconv.cxx b/xmloff/source/core/xmluconv.cxx index 910b4fd4eb..968cf5c6d2 100644 --- a/xmloff/source/core/xmluconv.cxx +++ b/xmloff/source/core/xmluconv.cxx @@ -40,6 +40,7 @@ #include <xmloff/xmluconv.hxx> #include <xmloff/xmltoken.hxx> #include <rtl/math.hxx> +#include <rtl/logfile.hxx> #ifndef _TOOLS_DATE_HXX #include <tools/date.hxx> @@ -203,7 +204,7 @@ sal_Bool SvXMLUnitConverter::convertMeasure( sal_Int32& rValue, double nVal = 0; sal_Int32 nPos = 0L; - sal_Int32 nLen = rString.getLength(); + const sal_Int32 nLen = rString.getLength(); // skip white space while( (nPos < nLen) && (rString[nPos] <= sal_Unicode(' ')) ) @@ -212,7 +213,7 @@ sal_Bool SvXMLUnitConverter::convertMeasure( sal_Int32& rValue, if( nPos < nLen && sal_Unicode('-') == rString[nPos] ) { bNeg = sal_True; - nPos++; + ++nPos; } // get number @@ -223,12 +224,12 @@ sal_Bool SvXMLUnitConverter::convertMeasure( sal_Int32& rValue, // TODO: check overflow! nVal *= 10; nVal += (rString[nPos] - sal_Unicode('0')); - nPos++; + ++nPos; } double nDiv = 1.; if( nPos < nLen && sal_Unicode('.') == rString[nPos] ) { - nPos++; + ++nPos; while( nPos < nLen && sal_Unicode('0') <= rString[nPos] && @@ -237,13 +238,13 @@ sal_Bool SvXMLUnitConverter::convertMeasure( sal_Int32& rValue, // TODO: check overflow! nDiv *= 10; nVal += ( ((double)(rString[nPos] - sal_Unicode('0'))) / nDiv ); - nPos++; + ++nPos; } } // skip white space while( (nPos < nLen) && (rString[nPos] <= sal_Unicode(' ')) ) - nPos++; + ++nPos; if( nPos < nLen ) { @@ -375,7 +376,7 @@ sal_Bool SvXMLUnitConverter::convertMeasure( sal_Int32& rValue, return sal_False; double nScale = 0.; - for( sal_uInt16 i= 0; i < 2; i++ ) + for( sal_uInt16 i= 0; i < 2; ++i ) { const sal_Char *pL = aCmpsL[i]; if( pL ) @@ -386,9 +387,9 @@ sal_Bool SvXMLUnitConverter::convertMeasure( sal_Int32& rValue, sal_Unicode c = rString[nPos]; if( c != *pL && c != *pU ) break; - pL++; - pU++; - nPos++; + ++pL; + ++pU; + ++nPos; } if( !*pL && (nPos == nLen || ' ' == rString[nPos]) ) { @@ -503,7 +504,7 @@ sal_Bool SvXMLUnitConverter::convertEnum( sal_uInt16& rEnum, rEnum = pMap->nValue; return sal_True; } - pMap++; + ++pMap; } return sal_False; @@ -523,7 +524,7 @@ sal_Bool SvXMLUnitConverter::convertEnum( rEnum = pMap->nValue; return sal_True; } - pMap++; + ++pMap; } return sal_False; } @@ -547,7 +548,7 @@ sal_Bool SvXMLUnitConverter::convertEnum( OUStringBuffer& rBuffer, pStr = pMap->pName; break; } - pMap++; + ++pMap; } if( NULL == pStr ) @@ -578,7 +579,7 @@ sal_Bool SvXMLUnitConverter::convertEnum( eTok = pMap->eToken; break; } - pMap++; + ++pMap; } // the map may have contained XML_TOKEN_INVALID @@ -658,37 +659,12 @@ sal_Bool SvXMLUnitConverter::convertNumber( sal_Int32& rValue, const OUString& rString, sal_Int32 nMin, sal_Int32 nMax ) { - sal_Bool bNeg = sal_False; rValue = 0; - - sal_Int32 nPos = 0L; - sal_Int32 nLen = rString.getLength(); - - // skip white space - while( (nPos < nLen) && (rString[nPos] <= sal_Unicode(' ')) ) - nPos++; - - if( nPos < nLen && sal_Unicode('-') == rString[nPos] ) - { - bNeg = sal_True; - nPos++; - } - - // get number - while( nPos < nLen && - sal_Unicode('0') <= rString[nPos] && - sal_Unicode('9') >= rString[nPos] ) - { - // TODO: check overflow! - rValue *= 10; - rValue += (rString[nPos] - sal_Unicode('0')); - nPos++; - } - - if( bNeg ) - rValue *= -1; - - return ( nPos == nLen && rValue >= nMin && rValue <= nMax ); + sal_Int64 nNumber = 0; + sal_Bool bRet = convertNumber64(nNumber,rString,nMin,nMax); + if ( bRet ) + rValue = static_cast<sal_Int32>(nNumber); + return bRet; } /** convert 64-bit number to string */ @@ -707,16 +683,16 @@ sal_Bool SvXMLUnitConverter::convertNumber64( sal_Int64& rValue, rValue = 0; sal_Int32 nPos = 0L; - sal_Int32 nLen = rString.getLength(); + const sal_Int32 nLen = rString.getLength(); // skip white space while( (nPos < nLen) && (rString[nPos] <= sal_Unicode(' ')) ) - nPos++; + ++nPos; if( nPos < nLen && sal_Unicode('-') == rString[nPos] ) { bNeg = sal_True; - nPos++; + ++nPos; } // get number @@ -727,7 +703,7 @@ sal_Bool SvXMLUnitConverter::convertNumber64( sal_Int64& rValue, // TODO: check overflow! rValue *= 10; rValue += (rString[nPos] - sal_Unicode('0')); - nPos++; + ++nPos; } if( bNeg ) @@ -800,7 +776,7 @@ sal_Bool SvXMLUnitConverter::convertDouble(double& rValue, if(eStatus == rtl_math_ConversionStatus_Ok) { OUStringBuffer sUnit; - double fFactor = SvXMLExportHelper::GetConversionFactor(sUnit, eCoreUnit, eSrcUnit); + const double fFactor = SvXMLExportHelper::GetConversionFactor(sUnit, eCoreUnit, eSrcUnit); if(fFactor != 1.0 && fFactor != 0.0) rValue /= fFactor; } @@ -822,15 +798,8 @@ sal_Bool SvXMLUnitConverter::setNullDate(const com::sun::star::uno::Reference <c com::sun::star::uno::Reference <com::sun::star::util::XNumberFormatsSupplier> xNumberFormatsSupplier (xModel, com::sun::star::uno::UNO_QUERY); if (xNumberFormatsSupplier.is()) { - com::sun::star::uno::Reference <com::sun::star::beans::XPropertySet> xPropertySet = xNumberFormatsSupplier->getNumberFormatSettings(); - if (xPropertySet.is() ) - { - com::sun::star::uno::Any aAnyNullDate = xPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(XML_NULLDATE))); - if (aAnyNullDate >>= aNullDate) - { - return sal_True; - } - } + const com::sun::star::uno::Reference <com::sun::star::beans::XPropertySet> xPropertySet = xNumberFormatsSupplier->getNumberFormatSettings(); + return xPropertySet.is() && (xPropertySet->getPropertyValue(rtl::OUString(RTL_CONSTASCII_USTRINGPARAM(XML_NULLDATE))) >>= aNullDate); } return sal_False; } @@ -1194,104 +1163,24 @@ void SvXMLUnitConverter::convertDateTime( ::rtl::OUStringBuffer& rBuffer, sal_Bool SvXMLUnitConverter::convertDateTime( double& fDateTime, const ::rtl::OUString& rString, const com::sun::star::util::Date& aTempNullDate) { - sal_Bool bSuccess = sal_True; - - rtl::OUString aDateStr, aTimeStr, sDoubleStr; - sal_Int32 nPos = rString.indexOf( (sal_Unicode) 'T' ); - sal_Int32 nPos2 = rString.indexOf( (sal_Unicode) ',' ); - if (nPos2 < 0) - nPos2 = rString.indexOf( (sal_Unicode) '.' ); - if ( nPos >= 0 ) - { - aDateStr = rString.copy( 0, nPos ); - if ( nPos2 >= 0 ) - { - aTimeStr = rString.copy( nPos + 1, nPos2 - nPos - 1 ); - sDoubleStr = OUString(RTL_CONSTASCII_USTRINGPARAM("0.")); - sDoubleStr += rString.copy( nPos2 + 1 ); - } - else - { - aTimeStr = rString.copy(nPos + 1); - sDoubleStr = OUString(RTL_CONSTASCII_USTRINGPARAM("0.0")); - } - } - else - aDateStr = rString; // no separator: only date part - - sal_Int32 nYear = 1899; - sal_Int32 nMonth = 12; - sal_Int32 nDay = 30; - sal_Int32 nHour = 0; - sal_Int32 nMin = 0; - sal_Int32 nSec = 0; - - const sal_Unicode* pStr = aDateStr.getStr(); - sal_Int32 nDateTokens = 1; - while ( *pStr ) - { - if ( *pStr == '-' ) - nDateTokens++; - pStr++; - } - if ( nDateTokens > 3 || aDateStr.getLength() == 0 ) - bSuccess = sal_False; - else - { - sal_Int32 n = 0; - if ( !convertNumber( nYear, aDateStr.getToken( 0, '-', n ), 0, 9999 ) ) - bSuccess = sal_False; - if ( nDateTokens >= 2 ) - if ( !convertNumber( nMonth, aDateStr.getToken( 0, '-', n ), 0, 12 ) ) - bSuccess = sal_False; - if ( nDateTokens >= 3 ) - if ( !convertNumber( nDay, aDateStr.getToken( 0, '-', n ), 0, 31 ) ) - bSuccess = sal_False; - } - - if ( aTimeStr.getLength() > 0 ) // time is optional - { - pStr = aTimeStr.getStr(); - sal_Int32 nTimeTokens = 1; - while ( *pStr ) - { - if ( *pStr == ':' ) - nTimeTokens++; - pStr++; - } - if ( nTimeTokens > 3 ) - bSuccess = sal_False; - else - { - sal_Int32 n = 0; - if ( !convertNumber( nHour, aTimeStr.getToken( 0, ':', n ), 0, 23 ) ) - bSuccess = sal_False; - if ( nTimeTokens >= 2 ) - if ( !convertNumber( nMin, aTimeStr.getToken( 0, ':', n ), 0, 59 ) ) - bSuccess = sal_False; - if ( nTimeTokens >= 3 ) - if ( !convertNumber( nSec, aTimeStr.getToken( 0, ':', n ), 0, 59 ) ) - bSuccess = sal_False; - } - } + com::sun::star::util::DateTime aDateTime; + sal_Bool bSuccess = convertDateTime(aDateTime,rString); if (bSuccess) { double fTempDateTime = 0.0; - Date aTmpNullDate(aTempNullDate.Day, aTempNullDate.Month, aTempNullDate.Year); - Date aTempDate((sal_uInt16)nDay, (sal_uInt16)nMonth, (sal_uInt16)nYear); - sal_Int32 nTage = aTempDate - aTmpNullDate; + const Date aTmpNullDate(aTempNullDate.Day, aTempNullDate.Month, aTempNullDate.Year); + const Date aTempDate((sal_uInt16)aDateTime.Day, (sal_uInt16)aDateTime.Month, (sal_uInt16)aDateTime.Year); + const sal_Int32 nTage = aTempDate - aTmpNullDate; fTempDateTime = nTage; - double Hour = nHour; - double Min = nMin; - double Sec = nSec; - double Sec100 = 0.0; - double fFraction = sDoubleStr.toDouble(); + double Hour = aDateTime.Hours; + double Min = aDateTime.Minutes; + double Sec = aDateTime.Seconds; + double Sec100 = aDateTime.HundredthSeconds; fTempDateTime += Hour / 24; fTempDateTime += Min / (24 * 60); fTempDateTime += Sec / (24 * 60 * 60); - fTempDateTime += Sec100 / (24 * 60 * 60 * 60); - fTempDateTime += fFraction / (24 * 60 * 60); + fTempDateTime += Sec100 / (24 * 60 * 60 * 100); fDateTime = fTempDateTime; } return bSuccess; @@ -1510,36 +1399,43 @@ sal_Bool SvXMLTokenEnumerator::getNextToken( OUString& rToken ) } // --- - -/** convert string to ::basegfx::B3DVector */ -sal_Bool SvXMLUnitConverter::convertB3DVector( ::basegfx::B3DVector& rVector, const OUString& rValue ) +bool lcl_getPositions(const OUString& _sValue,OUString& _rContentX,OUString& _rContentY,OUString& _rContentZ) { - if(!rValue.getLength() || rValue[0] != '(') - return sal_False; + if(!_sValue.getLength() || _sValue[0] != '(') + return false; sal_Int32 nPos(1L); - sal_Int32 nFound = rValue.indexOf(sal_Unicode(' '), nPos); + sal_Int32 nFound = _sValue.indexOf(sal_Unicode(' '), nPos); if(nFound == -1 || nFound <= nPos) - return sal_False; + return false; - OUString aContentX = rValue.copy(nPos, nFound - nPos); + _rContentX = _sValue.copy(nPos, nFound - nPos); nPos = nFound + 1; - nFound = rValue.indexOf(sal_Unicode(' '), nPos); + nFound = _sValue.indexOf(sal_Unicode(' '), nPos); if(nFound == -1 || nFound <= nPos) - return sal_False; + return false; - OUString aContentY = rValue.copy(nPos, nFound - nPos); + _rContentY = _sValue.copy(nPos, nFound - nPos); nPos = nFound + 1; - nFound = rValue.indexOf(sal_Unicode(')'), nPos); + nFound = _sValue.indexOf(sal_Unicode(')'), nPos); if(nFound == -1 || nFound <= nPos) - return sal_False; + return false; - OUString aContentZ = rValue.copy(nPos, nFound - nPos); + _rContentZ = _sValue.copy(nPos, nFound - nPos); + return true; + +} +/** convert string to ::basegfx::B3DVector */ +sal_Bool SvXMLUnitConverter::convertB3DVector( ::basegfx::B3DVector& rVector, const OUString& rValue ) +{ + OUString aContentX,aContentY,aContentZ; + if ( !lcl_getPositions(rValue,aContentX,aContentY,aContentZ) ) + return sal_False; rtl_math_ConversionStatus eStatus; @@ -1578,33 +1474,10 @@ void SvXMLUnitConverter::convertB3DVector( OUStringBuffer &rBuffer, const ::base sal_Bool SvXMLUnitConverter::convertPosition3D( drawing::Position3D& rPosition, const OUString& rValue ) { - if(!rValue.getLength() || rValue[0] != '(') + OUString aContentX,aContentY,aContentZ; + if ( !lcl_getPositions(rValue,aContentX,aContentY,aContentZ) ) return sal_False; - sal_Int32 nPos(1L); - sal_Int32 nFound = rValue.indexOf(sal_Unicode(' '), nPos); - - if(nFound == -1 || nFound <= nPos) - return sal_False; - - OUString aContentX = rValue.copy(nPos, nFound - nPos); - - nPos = nFound + 1; - nFound = rValue.indexOf(sal_Unicode(' '), nPos); - - if(nFound == -1 || nFound <= nPos) - return sal_False; - - OUString aContentY = rValue.copy(nPos, nFound - nPos); - - nPos = nFound + 1; - nFound = rValue.indexOf(sal_Unicode(')'), nPos); - - if(nFound == -1 || nFound <= nPos) - return sal_False; - - OUString aContentZ = rValue.copy(nPos, nFound - nPos); - if ( !convertDouble( rPosition.PositionX, aContentX, sal_True ) ) return sal_False; if ( !convertDouble( rPosition.PositionY, aContentY, sal_True ) ) @@ -1937,18 +1810,15 @@ void SvXMLUnitConverter::convertPropertySet(uno::Sequence<beans::PropertyValue>& if (xPropertySetInfo.is()) { uno::Sequence< beans::Property > aProps = xPropertySetInfo->getProperties(); - sal_Int32 nCount(aProps.getLength()); + const sal_Int32 nCount(aProps.getLength()); if (nCount) { rProps.realloc(nCount); beans::PropertyValue* pProps = rProps.getArray(); - if (pProps) + for (sal_Int32 i = 0; i < nCount; i++, ++pProps) { - for (sal_Int32 i = 0; i < nCount; i++, pProps++) - { - pProps->Name = aProps[i].Name; - pProps->Value = aProperties->getPropertyValue(aProps[i].Name); - } + pProps->Name = aProps[i].Name; + pProps->Value = aProperties->getPropertyValue(aProps[i].Name); } } } diff --git a/xmloff/source/draw/sdxmlimp.cxx b/xmloff/source/draw/sdxmlimp.cxx index 463c7d9c97..538dd65384 100644 --- a/xmloff/source/draw/sdxmlimp.cxx +++ b/xmloff/source/draw/sdxmlimp.cxx @@ -71,109 +71,15 @@ using namespace ::xmloff::token; ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aDocElemTokenMap[] = -{ - { XML_NAMESPACE_OFFICE, XML_FONT_FACE_DECLS, XML_TOK_DOC_FONTDECLS }, - { XML_NAMESPACE_OFFICE, XML_STYLES, XML_TOK_DOC_STYLES }, - { XML_NAMESPACE_OFFICE, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES }, - { XML_NAMESPACE_OFFICE, XML_MASTER_STYLES, XML_TOK_DOC_MASTERSTYLES }, - { XML_NAMESPACE_OFFICE, XML_META, XML_TOK_DOC_META }, - { XML_NAMESPACE_OFFICE, XML_SCRIPTS, XML_TOK_DOC_SCRIPT }, - { XML_NAMESPACE_OFFICE, XML_BODY, XML_TOK_DOC_BODY }, - { XML_NAMESPACE_OFFICE, XML_SETTINGS, XML_TOK_DOC_SETTINGS }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aBodyElemTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_PAGE, XML_TOK_BODY_PAGE }, - { XML_NAMESPACE_PRESENTATION, XML_SETTINGS, XML_TOK_BODY_SETTINGS }, - { XML_NAMESPACE_PRESENTATION, XML_HEADER_DECL, XML_TOK_BODY_HEADER_DECL }, - { XML_NAMESPACE_PRESENTATION, XML_FOOTER_DECL, XML_TOK_BODY_FOOTER_DECL }, - { XML_NAMESPACE_PRESENTATION, XML_DATE_TIME_DECL,XML_TOK_BODY_DATE_TIME_DECL }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aStylesElemTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT, XML_TOK_STYLES_PAGE_MASTER }, - { XML_NAMESPACE_STYLE, XML_PRESENTATION_PAGE_LAYOUT, XML_TOK_STYLES_PRESENTATION_PAGE_LAYOUT }, - { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_STYLES_STYLE }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aMasterPageElemTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_MASTERPAGE_STYLE }, - { XML_NAMESPACE_PRESENTATION, XML_NOTES, XML_TOK_MASTERPAGE_NOTES }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aMasterPageAttrTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_MASTERPAGE_NAME }, - { XML_NAMESPACE_STYLE, XML_DISPLAY_NAME, XML_TOK_MASTERPAGE_DISPLAY_NAME }, - { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT_NAME, XML_TOK_MASTERPAGE_PAGE_MASTER_NAME }, - { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_MASTERPAGE_STYLE_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_PRESENTATION_PAGE_LAYOUT_NAME, XML_TOK_MASTERPAGE_PAGE_LAYOUT_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_HEADER_NAME, XML_TOK_MASTERPAGE_USE_HEADER_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_FOOTER_NAME, XML_TOK_MASTERPAGE_USE_FOOTER_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_DATE_TIME_NAME, XML_TOK_MASTERPAGE_USE_DATE_TIME_NAME }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aPageMasterAttrTokenMap[] = -{ - { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_PAGEMASTER_NAME }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aPageMasterStyleAttrTokenMap[] = -{ - { XML_NAMESPACE_FO, XML_MARGIN_TOP, XML_TOK_PAGEMASTERSTYLE_MARGIN_TOP }, - { XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_TOK_PAGEMASTERSTYLE_MARGIN_BOTTOM }, - { XML_NAMESPACE_FO, XML_MARGIN_LEFT, XML_TOK_PAGEMASTERSTYLE_MARGIN_LEFT }, - { XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_TOK_PAGEMASTERSTYLE_MARGIN_RIGHT }, - { XML_NAMESPACE_FO, XML_PAGE_WIDTH, XML_TOK_PAGEMASTERSTYLE_PAGE_WIDTH }, - { XML_NAMESPACE_FO, XML_PAGE_HEIGHT, XML_TOK_PAGEMASTERSTYLE_PAGE_HEIGHT }, - { XML_NAMESPACE_STYLE, XML_PRINT_ORIENTATION, XML_TOK_PAGEMASTERSTYLE_PAGE_ORIENTATION }, - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aDrawPageAttrTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_DRAWPAGE_NAME }, - { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_DRAWPAGE_STYLE_NAME }, - { XML_NAMESPACE_DRAW, XML_MASTER_PAGE_NAME, XML_TOK_DRAWPAGE_MASTER_PAGE_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_PRESENTATION_PAGE_LAYOUT_NAME, XML_TOK_DRAWPAGE_PAGE_LAYOUT_NAME }, - { XML_NAMESPACE_DRAW, XML_ID, XML_TOK_DRAWPAGE_ID }, - { XML_NAMESPACE_XML, XML_ID, XML_TOK_DRAWPAGE_ID }, - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_DRAWPAGE_HREF }, - { XML_NAMESPACE_PRESENTATION, XML_USE_HEADER_NAME, XML_TOK_DRAWPAGE_USE_HEADER_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_FOOTER_NAME, XML_TOK_DRAWPAGE_USE_FOOTER_NAME }, - { XML_NAMESPACE_PRESENTATION, XML_USE_DATE_TIME_NAME, XML_TOK_DRAWPAGE_USE_DATE_TIME_NAME }, - - XML_TOKEN_MAP_END -}; -static __FAR_DATA SvXMLTokenMapEntry aDrawPageElemTokenMap[] = -{ - { XML_NAMESPACE_PRESENTATION, XML_NOTES, XML_TOK_DRAWPAGE_NOTES }, - { XML_NAMESPACE_ANIMATION, XML_PAR, XML_TOK_DRAWPAGE_PAR }, - { XML_NAMESPACE_ANIMATION, XML_SEQ, XML_TOK_DRAWPAGE_SEQ }, - XML_TOKEN_MAP_END -}; - -static __FAR_DATA SvXMLTokenMapEntry aPresentationPlaceholderAttrTokenMap[] = -{ - { XML_NAMESPACE_PRESENTATION, XML_OBJECT, XML_TOK_PRESENTATIONPLACEHOLDER_OBJECTNAME }, - { XML_NAMESPACE_SVG, XML_X, XML_TOK_PRESENTATIONPLACEHOLDER_X }, - { XML_NAMESPACE_SVG, XML_Y, XML_TOK_PRESENTATIONPLACEHOLDER_Y }, - { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_PRESENTATIONPLACEHOLDER_WIDTH }, - { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_PRESENTATIONPLACEHOLDER_HEIGHT }, - XML_TOKEN_MAP_END -}; ////////////////////////////////////////////////////////////////////////////// @@ -601,7 +507,23 @@ void SdXMLImport::SetProgress(sal_Int32 nProg) const SvXMLTokenMap& SdXMLImport::GetDocElemTokenMap() { if(!mpDocElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aDocElemTokenMap[] = +{ + { XML_NAMESPACE_OFFICE, XML_FONT_FACE_DECLS, XML_TOK_DOC_FONTDECLS }, + { XML_NAMESPACE_OFFICE, XML_STYLES, XML_TOK_DOC_STYLES }, + { XML_NAMESPACE_OFFICE, XML_AUTOMATIC_STYLES, XML_TOK_DOC_AUTOSTYLES }, + { XML_NAMESPACE_OFFICE, XML_MASTER_STYLES, XML_TOK_DOC_MASTERSTYLES }, + { XML_NAMESPACE_OFFICE, XML_META, XML_TOK_DOC_META }, + { XML_NAMESPACE_OFFICE, XML_SCRIPTS, XML_TOK_DOC_SCRIPT }, + { XML_NAMESPACE_OFFICE, XML_BODY, XML_TOK_DOC_BODY }, + { XML_NAMESPACE_OFFICE, XML_SETTINGS, XML_TOK_DOC_SETTINGS }, + XML_TOKEN_MAP_END +}; + mpDocElemTokenMap = new SvXMLTokenMap(aDocElemTokenMap); + } // if(!mpDocElemTokenMap) + return *mpDocElemTokenMap; } @@ -610,7 +532,21 @@ const SvXMLTokenMap& SdXMLImport::GetDocElemTokenMap() const SvXMLTokenMap& SdXMLImport::GetBodyElemTokenMap() { if(!mpBodyElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aBodyElemTokenMap[] = +{ + { XML_NAMESPACE_DRAW, XML_PAGE, XML_TOK_BODY_PAGE }, + { XML_NAMESPACE_PRESENTATION, XML_SETTINGS, XML_TOK_BODY_SETTINGS }, + { XML_NAMESPACE_PRESENTATION, XML_HEADER_DECL, XML_TOK_BODY_HEADER_DECL }, + { XML_NAMESPACE_PRESENTATION, XML_FOOTER_DECL, XML_TOK_BODY_FOOTER_DECL }, + { XML_NAMESPACE_PRESENTATION, XML_DATE_TIME_DECL,XML_TOK_BODY_DATE_TIME_DECL }, + + XML_TOKEN_MAP_END +}; + mpBodyElemTokenMap = new SvXMLTokenMap(aBodyElemTokenMap); + } // if(!mpBodyElemTokenMap) + return *mpBodyElemTokenMap; } @@ -619,7 +555,18 @@ const SvXMLTokenMap& SdXMLImport::GetBodyElemTokenMap() const SvXMLTokenMap& SdXMLImport::GetStylesElemTokenMap() { if(!mpStylesElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aStylesElemTokenMap[] = +{ + { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT, XML_TOK_STYLES_PAGE_MASTER }, + { XML_NAMESPACE_STYLE, XML_PRESENTATION_PAGE_LAYOUT, XML_TOK_STYLES_PRESENTATION_PAGE_LAYOUT }, + { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_STYLES_STYLE }, + XML_TOKEN_MAP_END +}; + mpStylesElemTokenMap = new SvXMLTokenMap(aStylesElemTokenMap); + } // if(!mpStylesElemTokenMap) + return *mpStylesElemTokenMap; } @@ -628,7 +575,17 @@ const SvXMLTokenMap& SdXMLImport::GetStylesElemTokenMap() const SvXMLTokenMap& SdXMLImport::GetMasterPageElemTokenMap() { if(!mpMasterPageElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aMasterPageElemTokenMap[] = +{ + { XML_NAMESPACE_STYLE, XML_STYLE, XML_TOK_MASTERPAGE_STYLE }, + { XML_NAMESPACE_PRESENTATION, XML_NOTES, XML_TOK_MASTERPAGE_NOTES }, + XML_TOKEN_MAP_END +}; + mpMasterPageElemTokenMap = new SvXMLTokenMap(aMasterPageElemTokenMap); + } // if(!mpMasterPageElemTokenMap) + return *mpMasterPageElemTokenMap; } @@ -637,7 +594,23 @@ const SvXMLTokenMap& SdXMLImport::GetMasterPageElemTokenMap() const SvXMLTokenMap& SdXMLImport::GetMasterPageAttrTokenMap() { if(!mpMasterPageAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aMasterPageAttrTokenMap[] = +{ + { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_MASTERPAGE_NAME }, + { XML_NAMESPACE_STYLE, XML_DISPLAY_NAME, XML_TOK_MASTERPAGE_DISPLAY_NAME }, + { XML_NAMESPACE_STYLE, XML_PAGE_LAYOUT_NAME, XML_TOK_MASTERPAGE_PAGE_MASTER_NAME }, + { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_MASTERPAGE_STYLE_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_PRESENTATION_PAGE_LAYOUT_NAME, XML_TOK_MASTERPAGE_PAGE_LAYOUT_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_HEADER_NAME, XML_TOK_MASTERPAGE_USE_HEADER_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_FOOTER_NAME, XML_TOK_MASTERPAGE_USE_FOOTER_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_DATE_TIME_NAME, XML_TOK_MASTERPAGE_USE_DATE_TIME_NAME }, + XML_TOKEN_MAP_END +}; + mpMasterPageAttrTokenMap = new SvXMLTokenMap(aMasterPageAttrTokenMap); + } // if(!mpMasterPageAttrTokenMap) + return *mpMasterPageAttrTokenMap; } @@ -646,7 +619,16 @@ const SvXMLTokenMap& SdXMLImport::GetMasterPageAttrTokenMap() const SvXMLTokenMap& SdXMLImport::GetPageMasterAttrTokenMap() { if(!mpPageMasterAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aPageMasterAttrTokenMap[] = +{ + { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_PAGEMASTER_NAME }, + XML_TOKEN_MAP_END +}; + mpPageMasterAttrTokenMap = new SvXMLTokenMap(aPageMasterAttrTokenMap); + } // if(!mpPageMasterAttrTokenMap) + return *mpPageMasterAttrTokenMap; } @@ -655,7 +637,22 @@ const SvXMLTokenMap& SdXMLImport::GetPageMasterAttrTokenMap() const SvXMLTokenMap& SdXMLImport::GetPageMasterStyleAttrTokenMap() { if(!mpPageMasterStyleAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aPageMasterStyleAttrTokenMap[] = +{ + { XML_NAMESPACE_FO, XML_MARGIN_TOP, XML_TOK_PAGEMASTERSTYLE_MARGIN_TOP }, + { XML_NAMESPACE_FO, XML_MARGIN_BOTTOM, XML_TOK_PAGEMASTERSTYLE_MARGIN_BOTTOM }, + { XML_NAMESPACE_FO, XML_MARGIN_LEFT, XML_TOK_PAGEMASTERSTYLE_MARGIN_LEFT }, + { XML_NAMESPACE_FO, XML_MARGIN_RIGHT, XML_TOK_PAGEMASTERSTYLE_MARGIN_RIGHT }, + { XML_NAMESPACE_FO, XML_PAGE_WIDTH, XML_TOK_PAGEMASTERSTYLE_PAGE_WIDTH }, + { XML_NAMESPACE_FO, XML_PAGE_HEIGHT, XML_TOK_PAGEMASTERSTYLE_PAGE_HEIGHT }, + { XML_NAMESPACE_STYLE, XML_PRINT_ORIENTATION, XML_TOK_PAGEMASTERSTYLE_PAGE_ORIENTATION }, + XML_TOKEN_MAP_END +}; + mpPageMasterStyleAttrTokenMap = new SvXMLTokenMap(aPageMasterStyleAttrTokenMap); + } // if(!mpPageMasterStyleAttrTokenMap) + return *mpPageMasterStyleAttrTokenMap; } @@ -664,7 +661,26 @@ const SvXMLTokenMap& SdXMLImport::GetPageMasterStyleAttrTokenMap() const SvXMLTokenMap& SdXMLImport::GetDrawPageAttrTokenMap() { if(!mpDrawPageAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aDrawPageAttrTokenMap[] = +{ + { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_DRAWPAGE_NAME }, + { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_DRAWPAGE_STYLE_NAME }, + { XML_NAMESPACE_DRAW, XML_MASTER_PAGE_NAME, XML_TOK_DRAWPAGE_MASTER_PAGE_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_PRESENTATION_PAGE_LAYOUT_NAME, XML_TOK_DRAWPAGE_PAGE_LAYOUT_NAME }, + { XML_NAMESPACE_DRAW, XML_ID, XML_TOK_DRAWPAGE_ID }, + { XML_NAMESPACE_XML, XML_ID, XML_TOK_DRAWPAGE_ID }, + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_DRAWPAGE_HREF }, + { XML_NAMESPACE_PRESENTATION, XML_USE_HEADER_NAME, XML_TOK_DRAWPAGE_USE_HEADER_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_FOOTER_NAME, XML_TOK_DRAWPAGE_USE_FOOTER_NAME }, + { XML_NAMESPACE_PRESENTATION, XML_USE_DATE_TIME_NAME, XML_TOK_DRAWPAGE_USE_DATE_TIME_NAME }, + + XML_TOKEN_MAP_END +}; + mpDrawPageAttrTokenMap = new SvXMLTokenMap(aDrawPageAttrTokenMap); + } // if(!mpDrawPageAttrTokenMap) + return *mpDrawPageAttrTokenMap; } @@ -673,7 +689,18 @@ const SvXMLTokenMap& SdXMLImport::GetDrawPageAttrTokenMap() const SvXMLTokenMap& SdXMLImport::GetDrawPageElemTokenMap() { if(!mpDrawPageElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aDrawPageElemTokenMap[] = +{ + { XML_NAMESPACE_PRESENTATION, XML_NOTES, XML_TOK_DRAWPAGE_NOTES }, + { XML_NAMESPACE_ANIMATION, XML_PAR, XML_TOK_DRAWPAGE_PAR }, + { XML_NAMESPACE_ANIMATION, XML_SEQ, XML_TOK_DRAWPAGE_SEQ }, + XML_TOKEN_MAP_END +}; + mpDrawPageElemTokenMap = new SvXMLTokenMap(aDrawPageElemTokenMap); + } // if(!mpDrawPageElemTokenMap) + return *mpDrawPageElemTokenMap; } @@ -682,7 +709,20 @@ const SvXMLTokenMap& SdXMLImport::GetDrawPageElemTokenMap() const SvXMLTokenMap& SdXMLImport::GetPresentationPlaceholderAttrTokenMap() { if(!mpPresentationPlaceholderAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aPresentationPlaceholderAttrTokenMap[] = +{ + { XML_NAMESPACE_PRESENTATION, XML_OBJECT, XML_TOK_PRESENTATIONPLACEHOLDER_OBJECTNAME }, + { XML_NAMESPACE_SVG, XML_X, XML_TOK_PRESENTATIONPLACEHOLDER_X }, + { XML_NAMESPACE_SVG, XML_Y, XML_TOK_PRESENTATIONPLACEHOLDER_Y }, + { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_PRESENTATIONPLACEHOLDER_WIDTH }, + { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_PRESENTATIONPLACEHOLDER_HEIGHT }, + XML_TOKEN_MAP_END +}; + mpPresentationPlaceholderAttrTokenMap = new SvXMLTokenMap(aPresentationPlaceholderAttrTokenMap); + } // if(!mpPresentationPlaceholderAttrTokenMap) + return *mpPresentationPlaceholderAttrTokenMap; } diff --git a/xmloff/source/draw/shapeimport.cxx b/xmloff/source/draw/shapeimport.cxx index b4e3787a77..e30a96065b 100644 --- a/xmloff/source/draw/shapeimport.cxx +++ b/xmloff/source/draw/shapeimport.cxx @@ -273,7 +273,13 @@ XMLShapeImportHelper::~XMLShapeImportHelper() ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aGroupShapeElemTokenMap[] = + + +const SvXMLTokenMap& XMLShapeImportHelper::GetGroupShapeElemTokenMap() +{ + if(!mpGroupShapeElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aGroupShapeElemTokenMap[] = { { XML_NAMESPACE_DRAW, XML_G, XML_TOK_GROUP_GROUP }, { XML_NAMESPACE_DRAW, XML_RECT, XML_TOK_GROUP_RECT }, @@ -303,7 +309,17 @@ static __FAR_DATA SvXMLTokenMapEntry aGroupShapeElemTokenMap[] = XML_TOKEN_MAP_END }; -static __FAR_DATA SvXMLTokenMapEntry aFrameShapeElemTokenMap[] = + mpGroupShapeElemTokenMap = new SvXMLTokenMap(aGroupShapeElemTokenMap); + } // if(!mpGroupShapeElemTokenMap) + + return *mpGroupShapeElemTokenMap; +} + +const SvXMLTokenMap& XMLShapeImportHelper::GetFrameShapeElemTokenMap() +{ + if(!mpFrameShapeElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aFrameShapeElemTokenMap[] = { { XML_NAMESPACE_DRAW, XML_TEXT_BOX, XML_TOK_FRAME_TEXT_BOX }, { XML_NAMESPACE_DRAW, XML_IMAGE, XML_TOK_FRAME_IMAGE }, @@ -316,23 +332,20 @@ static __FAR_DATA SvXMLTokenMapEntry aFrameShapeElemTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetGroupShapeElemTokenMap() -{ - if(!mpGroupShapeElemTokenMap) - mpGroupShapeElemTokenMap = new SvXMLTokenMap(aGroupShapeElemTokenMap); - return *mpGroupShapeElemTokenMap; -} - -const SvXMLTokenMap& XMLShapeImportHelper::GetFrameShapeElemTokenMap() -{ - if(!mpFrameShapeElemTokenMap) mpFrameShapeElemTokenMap = new SvXMLTokenMap(aFrameShapeElemTokenMap); + } // if(!mpFrameShapeElemTokenMap) + return *mpFrameShapeElemTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DSceneShapeElemTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DSceneShapeElemTokenMap() +{ + if(!mp3DSceneShapeElemTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DSceneShapeElemTokenMap[] = { { XML_NAMESPACE_DR3D, XML_SCENE, XML_TOK_3DSCENE_3DSCENE }, { XML_NAMESPACE_DR3D, XML_CUBE, XML_TOK_3DSCENE_3DCUBE }, @@ -342,16 +355,20 @@ static __FAR_DATA SvXMLTokenMapEntry a3DSceneShapeElemTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DSceneShapeElemTokenMap() -{ - if(!mp3DSceneShapeElemTokenMap) mp3DSceneShapeElemTokenMap = new SvXMLTokenMap(a3DSceneShapeElemTokenMap); + } // if(!mp3DSceneShapeElemTokenMap) + return *mp3DSceneShapeElemTokenMap; } ////////////////////////////////////////////////////////////////////////////// /* -static __FAR_DATA SvXMLTokenMapEntry aShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetShapeAttrTokenMap() +{ + if(!mpShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aShapeAttrTokenMap[] = { { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_SHAPE_NAME }, { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_SHAPE_DRAWSTYLE_NAME_GRAPHICS }, @@ -363,80 +380,100 @@ static __FAR_DATA SvXMLTokenMapEntry aShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetShapeAttrTokenMap() -{ - if(!mpShapeAttrTokenMap) mpShapeAttrTokenMap = new SvXMLTokenMap(aShapeAttrTokenMap); + } + return *mpShapeAttrTokenMap; } */ ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DObjectAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DObjectAttrTokenMap() +{ + if(!mp3DObjectAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DObjectAttrTokenMap[] = { { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_3DOBJECT_DRAWSTYLE_NAME }, { XML_NAMESPACE_DR3D, XML_TRANSFORM, XML_TOK_3DOBJECT_TRANSFORM }, XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DObjectAttrTokenMap() -{ - if(!mp3DObjectAttrTokenMap) mp3DObjectAttrTokenMap = new SvXMLTokenMap(a3DObjectAttrTokenMap); + } // if(!mp3DObjectAttrTokenMap) + return *mp3DObjectAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DPolygonBasedAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DPolygonBasedAttrTokenMap() +{ + if(!mp3DPolygonBasedAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DPolygonBasedAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_VIEWBOX, XML_TOK_3DPOLYGONBASED_VIEWBOX }, { XML_NAMESPACE_SVG, XML_D, XML_TOK_3DPOLYGONBASED_D }, XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DPolygonBasedAttrTokenMap() -{ - if(!mp3DPolygonBasedAttrTokenMap) mp3DPolygonBasedAttrTokenMap = new SvXMLTokenMap(a3DPolygonBasedAttrTokenMap); + } // if(!mp3DPolygonBasedAttrTokenMap) + return *mp3DPolygonBasedAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DCubeObjectAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DCubeObjectAttrTokenMap() +{ + if(!mp3DCubeObjectAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DCubeObjectAttrTokenMap[] = { { XML_NAMESPACE_DR3D, XML_MIN_EDGE, XML_TOK_3DCUBEOBJ_MINEDGE }, { XML_NAMESPACE_DR3D, XML_MAX_EDGE, XML_TOK_3DCUBEOBJ_MAXEDGE }, XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DCubeObjectAttrTokenMap() -{ - if(!mp3DCubeObjectAttrTokenMap) mp3DCubeObjectAttrTokenMap = new SvXMLTokenMap(a3DCubeObjectAttrTokenMap); + } // if(!mp3DCubeObjectAttrTokenMap) + return *mp3DCubeObjectAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DSphereObjectAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DSphereObjectAttrTokenMap() +{ + if(!mp3DSphereObjectAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DSphereObjectAttrTokenMap[] = { { XML_NAMESPACE_DR3D, XML_CENTER, XML_TOK_3DSPHEREOBJ_CENTER }, { XML_NAMESPACE_DR3D, XML_SIZE, XML_TOK_3DSPHEREOBJ_SIZE }, XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DSphereObjectAttrTokenMap() -{ - if(!mp3DSphereObjectAttrTokenMap) mp3DSphereObjectAttrTokenMap = new SvXMLTokenMap(a3DSphereObjectAttrTokenMap); + } // if(!mp3DSphereObjectAttrTokenMap) + return *mp3DSphereObjectAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// /* -static __FAR_DATA SvXMLTokenMapEntry aRectShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetRectShapeAttrTokenMap() +{ + if(!mpRectShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aRectShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_X, XML_TOK_RECTSHAPE_X }, { XML_NAMESPACE_SVG, XML_Y, XML_TOK_RECTSHAPE_Y }, @@ -446,16 +483,20 @@ static __FAR_DATA SvXMLTokenMapEntry aRectShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetRectShapeAttrTokenMap() -{ - if(!mpRectShapeAttrTokenMap) mpRectShapeAttrTokenMap = new SvXMLTokenMap(aRectShapeAttrTokenMap); + } + return *mpRectShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aLineShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetLineShapeAttrTokenMap() +{ + if(!mpLineShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aLineShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_X1, XML_TOK_LINESHAPE_X1 }, { XML_NAMESPACE_SVG, XML_Y1, XML_TOK_LINESHAPE_Y1 }, @@ -464,16 +505,20 @@ static __FAR_DATA SvXMLTokenMapEntry aLineShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetLineShapeAttrTokenMap() -{ - if(!mpLineShapeAttrTokenMap) mpLineShapeAttrTokenMap = new SvXMLTokenMap(aLineShapeAttrTokenMap); + } + return *mpLineShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aEllipseShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetEllipseShapeAttrTokenMap() +{ + if(!mpEllipseShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aEllipseShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_RX, XML_TOK_ELLIPSESHAPE_RX }, { XML_NAMESPACE_SVG, XML_RY, XML_TOK_ELLIPSESHAPE_RY }, @@ -483,48 +528,60 @@ static __FAR_DATA SvXMLTokenMapEntry aEllipseShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetEllipseShapeAttrTokenMap() -{ - if(!mpEllipseShapeAttrTokenMap) mpEllipseShapeAttrTokenMap = new SvXMLTokenMap(aEllipseShapeAttrTokenMap); + } + return *mpEllipseShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// */ -static __FAR_DATA SvXMLTokenMapEntry aPolygonShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetPolygonShapeAttrTokenMap() +{ + if(!mpPolygonShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aPolygonShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_VIEWBOX, XML_TOK_POLYGONSHAPE_VIEWBOX }, { XML_NAMESPACE_DRAW, XML_POINTS, XML_TOK_POLYGONSHAPE_POINTS }, XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetPolygonShapeAttrTokenMap() -{ - if(!mpPolygonShapeAttrTokenMap) mpPolygonShapeAttrTokenMap = new SvXMLTokenMap(aPolygonShapeAttrTokenMap); + } // if(!mpPolygonShapeAttrTokenMap) + return *mpPolygonShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aPathShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetPathShapeAttrTokenMap() +{ + if(!mpPathShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aPathShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_VIEWBOX, XML_TOK_PATHSHAPE_VIEWBOX }, { XML_NAMESPACE_SVG, XML_D, XML_TOK_PATHSHAPE_D }, XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetPathShapeAttrTokenMap() -{ - if(!mpPathShapeAttrTokenMap) mpPathShapeAttrTokenMap = new SvXMLTokenMap(aPathShapeAttrTokenMap); + } // if(!mpPathShapeAttrTokenMap) + return *mpPathShapeAttrTokenMap; } /* ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aTextBoxShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetTextBoxShapeAttrTokenMap() +{ + if(!mpTextBoxShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aTextBoxShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_X, XML_TOK_TEXTBOXSHAPE_X }, { XML_NAMESPACE_SVG, XML_Y, XML_TOK_TEXTBOXSHAPE_Y }, @@ -533,16 +590,20 @@ static __FAR_DATA SvXMLTokenMapEntry aTextBoxShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetTextBoxShapeAttrTokenMap() -{ - if(!mpTextBoxShapeAttrTokenMap) mpTextBoxShapeAttrTokenMap = new SvXMLTokenMap(aTextBoxShapeAttrTokenMap); + } + return *mpTextBoxShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aControlShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetControlShapeAttrTokenMap() +{ + if(!mpControlShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aControlShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_X, XML_TOK_CONTROLSHAPE_X }, { XML_NAMESPACE_SVG, XML_Y, XML_TOK_CONTROLSHAPE_Y }, @@ -551,16 +612,20 @@ static __FAR_DATA SvXMLTokenMapEntry aControlShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetControlShapeAttrTokenMap() -{ - if(!mpControlShapeAttrTokenMap) mpControlShapeAttrTokenMap = new SvXMLTokenMap(aControlShapeAttrTokenMap); + } + return *mpControlShapeAttrTokenMap; } */ ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DSceneShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DSceneShapeAttrTokenMap() +{ + if(!mp3DSceneShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DSceneShapeAttrTokenMap[] = { { XML_NAMESPACE_DR3D, XML_TRANSFORM, XML_TOK_3DSCENESHAPE_TRANSFORM }, { XML_NAMESPACE_DR3D, XML_VRP, XML_TOK_3DSCENESHAPE_VRP }, @@ -576,16 +641,20 @@ static __FAR_DATA SvXMLTokenMapEntry a3DSceneShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DSceneShapeAttrTokenMap() -{ - if(!mp3DSceneShapeAttrTokenMap) mp3DSceneShapeAttrTokenMap = new SvXMLTokenMap(a3DSceneShapeAttrTokenMap); + } // if(!mp3DSceneShapeAttrTokenMap) + return *mp3DSceneShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry a3DLightAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::Get3DLightAttrTokenMap() +{ + if(!mp3DLightAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry a3DLightAttrTokenMap[] = { { XML_NAMESPACE_DR3D, XML_DIFFUSE_COLOR, XML_TOK_3DLIGHT_DIFFUSE_COLOR }, { XML_NAMESPACE_DR3D, XML_DIRECTION, XML_TOK_3DLIGHT_DIRECTION }, @@ -594,16 +663,20 @@ static __FAR_DATA SvXMLTokenMapEntry a3DLightAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::Get3DLightAttrTokenMap() -{ - if(!mp3DLightAttrTokenMap) mp3DLightAttrTokenMap = new SvXMLTokenMap(a3DLightAttrTokenMap); + } // if(!mp3DLightAttrTokenMap) + return *mp3DLightAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// /* -static __FAR_DATA SvXMLTokenMapEntry aPageShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetPageShapeAttrTokenMap() +{ + if(!mpPageShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aPageShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_X, XML_TOK_PAGESHAPE_X }, { XML_NAMESPACE_SVG, XML_Y, XML_TOK_PAGESHAPE_Y }, @@ -612,16 +685,20 @@ static __FAR_DATA SvXMLTokenMapEntry aPageShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetPageShapeAttrTokenMap() -{ - if(!mpPageShapeAttrTokenMap) mpPageShapeAttrTokenMap = new SvXMLTokenMap(aPageShapeAttrTokenMap); + } + return *mpPageShapeAttrTokenMap; } ////////////////////////////////////////////////////////////////////////////// -static __FAR_DATA SvXMLTokenMapEntry aGraphicObjectShapeAttrTokenMap[] = + +const SvXMLTokenMap& XMLShapeImportHelper::GetGraphicObjectShapeAttrTokenMap() +{ + if(!mpGraphicObjectShapeAttrTokenMap) + { + static __FAR_DATA SvXMLTokenMapEntry aGraphicObjectShapeAttrTokenMap[] = { { XML_NAMESPACE_SVG, XML_X, XML_TOK_GOSHAPE_X }, { XML_NAMESPACE_SVG, XML_Y, XML_TOK_GOSHAPE_Y }, @@ -631,10 +708,9 @@ static __FAR_DATA SvXMLTokenMapEntry aGraphicObjectShapeAttrTokenMap[] = XML_TOKEN_MAP_END }; -const SvXMLTokenMap& XMLShapeImportHelper::GetGraphicObjectShapeAttrTokenMap() -{ - if(!mpGraphicObjectShapeAttrTokenMap) mpGraphicObjectShapeAttrTokenMap = new SvXMLTokenMap(aGraphicObjectShapeAttrTokenMap); + } + return *mpGraphicObjectShapeAttrTokenMap; } */ diff --git a/xmloff/source/draw/xexptran.cxx b/xmloff/source/draw/xexptran.cxx index aaa98311d6..67fb651b5b 100644 --- a/xmloff/source/draw/xexptran.cxx +++ b/xmloff/source/draw/xexptran.cxx @@ -324,7 +324,8 @@ struct ImpSdXMLExpTransObj2DMatrix : public ImpSdXMLExpTransObj2DBase void SdXMLImExTransform2D::EmptyList() { - for(sal_uInt32 a(0L); a < maList.size(); a++) + const sal_uInt32 nCount = maList.size(); + for(sal_uInt32 a(0L); a < nCount; a++) { ImpSdXMLExpTransObj2DBase* pObj = maList[a]; @@ -418,7 +419,8 @@ const OUString& SdXMLImExTransform2D::GetExportString(const SvXMLUnitConverter& OUString aClosingBrace(sal_Unicode(')')); OUString aEmptySpace(sal_Unicode(' ')); - for(sal_uInt32 a(0UL); a < maList.size(); a++) + const sal_uInt32 nCount = maList.size(); + for(sal_uInt32 a(0L); a < nCount; a++) { ImpSdXMLExpTransObj2DBase* pObj = maList[a]; switch(pObj->mnType) @@ -658,7 +660,8 @@ void SdXMLImExTransform2D::GetFullTransform(::basegfx::B2DHomMatrix& rFullTrans) { rFullTrans.identity(); - for(sal_uInt32 a(0L); a < maList.size(); a++) + const sal_uInt32 nCount = maList.size(); + for(sal_uInt32 a(0L); a < nCount; a++) { ImpSdXMLExpTransObj2DBase* pObj = maList[a]; switch(pObj->mnType) @@ -777,7 +780,8 @@ struct ImpSdXMLExpTransObj3DMatrix : public ImpSdXMLExpTransObj3DBase void SdXMLImExTransform3D::EmptyList() { - for(sal_uInt32 a(0L); a< maList.size(); a++) + const sal_uInt32 nCount = maList.size(); + for(sal_uInt32 a(0L); a < nCount; a++) { ImpSdXMLExpTransObj3DBase* pObj = maList[a]; @@ -891,7 +895,8 @@ const OUString& SdXMLImExTransform3D::GetExportString(const SvXMLUnitConverter& OUString aClosingBrace(sal_Unicode(')')); OUString aEmptySpace(sal_Unicode(' ')); - for(sal_uInt32 a(0UL); a < maList.size(); a++) + const sal_uInt32 nCount = maList.size(); + for(sal_uInt32 a(0L); a < nCount; a++) { ImpSdXMLExpTransObj3DBase* pObj = maList[a]; switch(pObj->mnType) @@ -1225,7 +1230,8 @@ void SdXMLImExTransform3D::GetFullTransform(::basegfx::B3DHomMatrix& rFullTrans) { rFullTrans.identity(); - for(sal_uInt32 a(0L); a < maList.size(); a++) + const sal_uInt32 nCount = maList.size(); + for(sal_uInt32 a(0L); a < nCount; a++) { ImpSdXMLExpTransObj3DBase* pObj = maList[a]; switch(pObj->mnType) diff --git a/xmloff/source/draw/ximpcustomshape.cxx b/xmloff/source/draw/ximpcustomshape.cxx index 0a91d6c493..d491b1bab6 100644 --- a/xmloff/source/draw/ximpcustomshape.cxx +++ b/xmloff/source/draw/ximpcustomshape.cxx @@ -454,7 +454,7 @@ void GetDoubleSequence( std::vector< com::sun::star::beans::PropertyValue >& rDe } while ( nIndex >= 0 ); - if ( vDirection.size() ) + if ( !vDirection.empty() ) { uno::Sequence< double > aDirectionsSeq( vDirection.size() ); std::vector< double >::const_iterator aIter = vDirection.begin(); @@ -512,7 +512,7 @@ sal_Int32 GetEnhancedParameterPairSequence( std::vector< com::sun::star::beans:: { vParameter.push_back( aParameter ); } - if ( vParameter.size() ) + if ( !vParameter.empty() ) { uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeParameterPair > aParameterSeq( vParameter.size() ); std::vector< com::sun::star::drawing::EnhancedCustomShapeParameterPair >::const_iterator aIter = vParameter.begin(); @@ -545,7 +545,7 @@ void GetEnhancedRectangleSequence( std::vector< com::sun::star::beans::PropertyV { vTextFrame.push_back( aParameter ); } - if ( vTextFrame.size() ) + if ( !vTextFrame.empty() ) { uno::Sequence< com::sun::star::drawing::EnhancedCustomShapeTextFrame > aTextFrameSeq( vTextFrame.size() ); std::vector< com::sun::star::drawing::EnhancedCustomShapeTextFrame >::const_iterator aIter = vTextFrame.begin(); @@ -739,7 +739,7 @@ void GetEnhancedPath( std::vector< com::sun::star::beans::PropertyValue >& rDest { // check if the last command is identical, // if so, we just need to increment the count - if ( vSegments.size() && ( vSegments[ vSegments.size() - 1 ].Command == nLatestSegmentCommand ) ) + if ( !vSegments.empty() && ( vSegments[ vSegments.size() - 1 ].Command == nLatestSegmentCommand ) ) vSegments[ vSegments.size() -1 ].Count++; else { @@ -1075,7 +1075,7 @@ void SdXMLCustomShapePropertyMerge( std::vector< com::sun::star::beans::Property const std::vector< beans::PropertyValues >& rElement, const rtl::OUString& rElementName ) { - if ( rElement.size() ) + if ( !rElement.empty() ) { uno::Sequence< beans::PropertyValues > aPropSeq( rElement.size() ); std::vector< beans::PropertyValues >::const_iterator aIter = rElement.begin(); @@ -1096,7 +1096,7 @@ void SdXMLCustomShapePropertyMerge( std::vector< com::sun::star::beans::Property const std::vector< rtl::OUString >& rElement, const rtl::OUString& rElementName ) { - if ( rElement.size() ) + if ( !rElement.empty() ) { uno::Sequence< rtl::OUString > aPropSeq( rElement.size() ); std::vector< rtl::OUString >::const_iterator aIter = rElement.begin(); @@ -1117,7 +1117,7 @@ void SdXMLCustomShapePropertyMerge( std::vector< com::sun::star::beans::Property const std::vector< com::sun::star::beans::PropertyValue >& rElement, const rtl::OUString& rElementName ) { - if ( rElement.size() ) + if ( !rElement.empty() ) { uno::Sequence< beans::PropertyValue > aPropSeq( rElement.size() ); std::vector< beans::PropertyValue >::const_iterator aIter = rElement.begin(); @@ -1157,7 +1157,7 @@ void CheckAndResolveEquationParameter( com::sun::star::drawing::EnhancedCustomSh void XMLEnhancedCustomShapeContext::EndElement() { // resolve properties that are indexing a Equation - if ( maEquations.size() ) + if ( !maEquations.empty() ) { // creating hash map containing the name and index of each equation EquationHashMap* pH = new EquationHashMap; @@ -1283,7 +1283,7 @@ void XMLEnhancedCustomShapeContext::EndElement() SdXMLCustomShapePropertyMerge( mrCustomShapeGeometry, maPath, EASGet( EAS_Path ) ); SdXMLCustomShapePropertyMerge( mrCustomShapeGeometry, maTextPath, EASGet( EAS_TextPath ) ); SdXMLCustomShapePropertyMerge( mrCustomShapeGeometry, maEquations, EASGet( EAS_Equations ) ); - if ( maHandles.size() ) + if ( !maHandles.empty() ) SdXMLCustomShapePropertyMerge( mrCustomShapeGeometry, maHandles, EASGet( EAS_Handles ) ); } @@ -1326,7 +1326,8 @@ SvXMLImportContext* XMLEnhancedCustomShapeContext::CreateChildContext( USHORT nP else if ( aTokenEnum == EAS_handle ) { std::vector< com::sun::star::beans::PropertyValue > aHandle; - for( sal_Int16 nAttr = 0; nAttr < xAttrList->getLength(); nAttr++ ) + const sal_Int16 nLength = xAttrList->getLength(); + for( sal_Int16 nAttr = 0; nAttr < nLength; nAttr++ ) { rtl::OUString aLocalName; const rtl::OUString& rValue = xAttrList->getValueByIndex( nAttr ); diff --git a/xmloff/source/draw/ximpshap.cxx b/xmloff/source/draw/ximpshap.cxx index 86625bdb5c..f826488864 100644 --- a/xmloff/source/draw/ximpshap.cxx +++ b/xmloff/source/draw/ximpshap.cxx @@ -3444,7 +3444,7 @@ void SdXMLCustomShapeContext::StartElement( const uno::Reference< xml::sax::XAtt void SdXMLCustomShapeContext::EndElement() { - if ( maCustomShapeGeometry.size() ) + if ( !maCustomShapeGeometry.empty() ) { const rtl::OUString sCustomShapeGeometry ( RTL_CONSTASCII_USTRINGPARAM( "CustomShapeGeometry" ) ); diff --git a/xmloff/source/forms/callbacks.hxx b/xmloff/source/forms/callbacks.hxx index d980c3356a..5fa8b853c0 100644 --- a/xmloff/source/forms/callbacks.hxx +++ b/xmloff/source/forms/callbacks.hxx @@ -68,92 +68,6 @@ namespace xmloff }; //===================================================================== - //= IControlIdMap - //===================================================================== - class IControlIdMap - { - public: - /** register a control id - */ - virtual void registerControlId( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControl, - const ::rtl::OUString& _rId) = 0; - - /** register references to a control. - - <p>In the XML representation, the control which is refered by others stores the ids of these other - controls, but in "real life" :) the referring controls store the referred one as property.</p> - - <p>This method allows a referred control to announce to ids of the referring ones.</p> - - @param _rxControl - the referred control - @param _rReferringControls - a (comma separated) list of control ids of referring controls - */ - virtual void registerControlReferences( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControl, - const ::rtl::OUString& _rReferringControls) = 0; - }; - - //===================================================================== - //= IFormsImportContext - //===================================================================== - class IFormsImportContext - { - public: - virtual IControlIdMap& getControlIdMap() = 0; - virtual OAttribute2Property& getAttributeMap() = 0; - virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > - getServiceFactory() = 0; - virtual SvXMLImport& getGlobalContext() = 0; - - virtual const SvXMLStyleContext* getStyleElement(const ::rtl::OUString& _rStyleName) const = 0; - - virtual void enterEventContext() = 0; - virtual void leaveEventContext() = 0; - - /** applies the given number style to the given object - */ - virtual void applyControlNumberStyle( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rControlNumerStyleName - ) = 0; - - /** registers a control model for later binding to a spreadsheet cell value - */ - virtual void registerCellValueBinding( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rCellAddress - ) = 0; - - /** registers a list-like control model for later binding to a spreadsheet cell range as list source - */ - virtual void registerCellRangeListSource( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rCellRangeAddress - ) = 0; - - /** registers a control model for later binding to an XForms binding */ - virtual void registerXFormsValueBinding( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rBindingID - ) = 0; - - /** registers a control model for later binding an XForms list binding */ - virtual void registerXFormsListBinding( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rBindingID - ) = 0; - - /** registers a control model for later binding to an XForms submission */ - virtual void registerXFormsSubmission( - const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rBindingID - ) = 0; - }; - - //===================================================================== //= IEventAttacherManager //===================================================================== class IEventAttacherManager diff --git a/xmloff/source/forms/elementexport.cxx b/xmloff/source/forms/elementexport.cxx index 546bd6802a..d695be34cc 100644 --- a/xmloff/source/forms/elementexport.cxx +++ b/xmloff/source/forms/elementexport.cxx @@ -1292,14 +1292,14 @@ namespace xmloff // one or both of the selected flags. // 21.05.2001 - 85388 - frank.schoenheit@germany.sun.com - if (aSelection.size() || aDefaultSelection.size()) + if ( !aSelection.empty() || !aDefaultSelection.empty() ) { sal_Int16 nLastSelected = -1; - if (aSelection.size()) + if ( !aSelection.empty() ) nLastSelected = *(--aSelection.end()); sal_Int16 nLastDefaultSelected = -1; - if (aDefaultSelection.size()) + if ( !aDefaultSelection.empty() ) nLastDefaultSelected = *(--aDefaultSelection.end()); // the maximum element in both sets diff --git a/xmloff/source/forms/elementimport.cxx b/xmloff/source/forms/elementimport.cxx index 524f0b5f84..a3dbcaabc9 100644 --- a/xmloff/source/forms/elementimport.cxx +++ b/xmloff/source/forms/elementimport.cxx @@ -59,6 +59,7 @@ /** === end UNO includes === **/ #include <tools/urlobj.hxx> #include <tools/time.hxx> +#include <rtl/logfile.hxx> #include <algorithm> #include <functional> @@ -136,7 +137,7 @@ namespace xmloff //--------------------------------------------------------------------- OControlElement::ElementType OElementNameMap::getElementType(const ::rtl::OUString& _rName) { - if (0 == s_sElementTranslations.size()) + if ( s_sElementTranslations.empty() ) { // initialize for (ElementType eType=(ElementType)0; eType<UNKNOWN; ++eType) s_sElementTranslations[::rtl::OUString::createFromAscii(getElementName(eType))] = eType; @@ -152,7 +153,7 @@ namespace xmloff //= OElementImport //===================================================================== //--------------------------------------------------------------------- - OElementImport::OElementImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OElementImport::OElementImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer) :OPropertyImport(_rImport, _nPrefix, _rName) ,m_rFormImport(_rImport) @@ -178,6 +179,8 @@ namespace xmloff // create the element m_xElement = createElement(); + if ( !m_xInfo.is() && m_xElement.is() ) + m_xInfo = m_xElement->getPropertySetInfo(); } //--------------------------------------------------------------------- @@ -201,15 +204,15 @@ namespace xmloff #if OSL_DEBUG_LEVEL > 0 // check if the object has all the properties // (We do this in the non-pro version only. Doing it all the time would be much to expensive) - Reference< XPropertySetInfo > xPropInfo = m_xElement->getPropertySetInfo(); - if (xPropInfo.is()) + if ( m_xInfo.is() ) { + PropertyValueArray::iterator aEnd = m_aValues.end(); for ( PropertyValueArray::iterator aCheck = m_aValues.begin(); - aCheck != m_aValues.end(); + aCheck != aEnd; ++aCheck ) { - OSL_ENSURE(xPropInfo->hasPropertyByName(aCheck->Name), + OSL_ENSURE(m_xInfo->hasPropertyByName(aCheck->Name), ::rtl::OString("OElementImport::EndElement: read a property (") += ::rtl::OString(aCheck->Name.getStr(), aCheck->Name.getLength(), RTL_TEXTENCODING_ASCII_US) += ::rtl::OString(") which does not exist on the element!")); @@ -219,7 +222,7 @@ namespace xmloff OSL_ENSURE(!m_aValues.empty(), "OElementImport::EndElement: no properties read!"); // set the properties - Reference< XMultiPropertySet > xMultiProps(m_xElement, UNO_QUERY); + const Reference< XMultiPropertySet > xMultiProps(m_xElement, UNO_QUERY); sal_Bool bSuccess = sal_False; if (xMultiProps.is()) { @@ -236,8 +239,9 @@ namespace xmloff Any* pValues = aValues.getArray(); // copy + PropertyValueArray::iterator aEnd = m_aValues.end(); for ( PropertyValueArray::iterator aPropValues = m_aValues.begin(); - aPropValues != m_aValues.end(); + aPropValues != aEnd; ++aPropValues, ++pNames, ++pValues ) { @@ -258,8 +262,9 @@ namespace xmloff if (!bSuccess) { // no XMultiPropertySet or setting all properties at once failed + PropertyValueArray::iterator aEnd = m_aValues.end(); for ( PropertyValueArray::iterator aPropValues = m_aValues.begin(); - aPropValues != m_aValues.end(); + aPropValues != aEnd; ++aPropValues ) { @@ -289,7 +294,7 @@ namespace xmloff new OGridColumnPropertyTranslator( Reference< XMultiPropertySet >( m_xElement, UNO_QUERY ) ); const_cast< XMLTextStyleContext* >( m_pStyleElement )->FillPropertySet( xPropTranslation ); - ::rtl::OUString sNumberStyleName = const_cast< XMLTextStyleContext* >( m_pStyleElement )->GetDataStyleName( ); + const ::rtl::OUString sNumberStyleName = const_cast< XMLTextStyleContext* >( m_pStyleElement )->GetDataStyleName( ); if ( sNumberStyleName.getLength() ) // the style also has a number (sub) style m_rContext.applyControlNumberStyle( m_xElement, sNumberStyleName ); @@ -312,12 +317,12 @@ namespace xmloff if ( m_aGenericValues.empty() ) return; - Reference< XPropertySetInfo > xPropSetInfo = m_xElement->getPropertySetInfo(); Reference< XPropertyContainer > xDynamicProperties( m_xElement, UNO_QUERY ); + PropertyValueArray::iterator aEnd = m_aGenericValues.end(); for ( PropertyValueArray::iterator aPropValues = m_aGenericValues.begin(); - aPropValues != m_aGenericValues.end(); + aPropValues != aEnd; ++aPropValues ) { @@ -326,7 +331,7 @@ namespace xmloff try { // if such a property does not yet exist at the element, create it if necessary - bool bExistentProperty = xPropSetInfo->hasPropertyByName( aPropValues->Name ); + const bool bExistentProperty = m_xInfo->hasPropertyByName( aPropValues->Name ); if ( !bExistentProperty ) { if ( !xDynamicProperties.is() ) @@ -347,12 +352,12 @@ namespace xmloff ); // re-fetch the PropertySetInfo - xPropSetInfo = m_xElement->getPropertySetInfo(); + m_xInfo = m_xElement->getPropertySetInfo(); } // determine the type of the value (source forthe following conversion) TypeClass eValueTypeClass = aPropValues->Value.getValueTypeClass(); - sal_Bool bValueIsSequence = TypeClass_SEQUENCE == eValueTypeClass; + const sal_Bool bValueIsSequence = TypeClass_SEQUENCE == eValueTypeClass; if ( bValueIsSequence ) { uno::Type aSimpleType( getSequenceElementType( aPropValues->Value.getValueType() ) ); @@ -360,9 +365,9 @@ namespace xmloff } // determine the type of the property (target forthe following conversion) - Property aProperty( xPropSetInfo->getPropertyByName( aPropValues->Name ) ); + const Property aProperty( m_xInfo->getPropertyByName( aPropValues->Name ) ); TypeClass ePropTypeClass = aProperty.Type.getTypeClass(); - sal_Bool bPropIsSequence = TypeClass_SEQUENCE == ePropTypeClass; + const sal_Bool bPropIsSequence = TypeClass_SEQUENCE == ePropTypeClass; if( bPropIsSequence ) { uno::Type aSimpleType( ::comphelper::getSequenceElementType( aProperty.Type ) ); @@ -484,15 +489,12 @@ namespace xmloff //--------------------------------------------------------------------- void OElementImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue) { - static const ::rtl::OUString s_sServiceNameAttribute = ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_SERVICE_NAME)); - static const ::rtl::OUString s_sNameAttribute = ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_NAME)); - if (!m_sServiceName.getLength() && token::IsXMLToken( _rLocalName, token::XML_CONTROL_IMPLEMENTATION)) { // it's the service name ::rtl::OUString sImplName; - sal_uInt16 nImplPrefix = + const sal_uInt16 nImplPrefix = GetImport().GetNamespaceMap().GetKeyByAttrName( _rValue, &sImplName ); m_sServiceName = XML_NAMESPACE_OOO==nImplPrefix ? sImplName @@ -525,7 +527,7 @@ namespace xmloff Reference< XPropertySet > xReturn; if (m_sServiceName.getLength()) { - Reference< XInterface > xPure = m_rFormImport.getServiceFactory()->createInstance(m_sServiceName); + Reference< XInterface > xPure = m_rFormImport.getGlobalContext().getServiceFactory()->createInstance(m_sServiceName); OSL_ENSURE(xPure.is(), ::rtl::OString("OElementImport::createElement: service factory gave me no object (service name: ") += ::rtl::OString(m_sServiceName.getStr(), m_sServiceName.getLength(), RTL_TEXTENCODING_ASCII_US) @@ -548,13 +550,9 @@ namespace xmloff //--------------------------------------------------------------------- void OElementImport::simulateDefaultedAttribute(const sal_Char* _pAttributeName, const ::rtl::OUString& _rPropertyName, const sal_Char* _pAttributeDefault) { - Reference< XPropertySetInfo > xPropsInfo; - if ( m_xElement.is()) { - xPropsInfo=m_xElement->getPropertySetInfo(); - } - OSL_ENSURE( xPropsInfo.is(), "OPropertyImport::simulateDefaultedAttribute: the component should be more gossipy about it's properties!" ); + OSL_ENSURE( m_xInfo.is(), "OPropertyImport::simulateDefaultedAttribute: the component should be more gossipy about it's properties!" ); - if ( !xPropsInfo.is() || xPropsInfo->hasPropertyByName( _rPropertyName ) ) + if ( !m_xInfo.is() || m_xInfo->hasPropertyByName( _rPropertyName ) ) { ::rtl::OUString sLocalAttrName = ::rtl::OUString::createFromAscii(_pAttributeName); if ( !encounteredAttribute( sLocalAttrName ) ) @@ -566,7 +564,7 @@ namespace xmloff //= OControlImport //===================================================================== //--------------------------------------------------------------------- - OControlImport::OControlImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OControlImport::OControlImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer) :OElementImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer) ,m_eElementType(OControlElement::UNKNOWN) @@ -574,7 +572,7 @@ namespace xmloff } //--------------------------------------------------------------------- - OControlImport::OControlImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OControlImport::OControlImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OElementImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer) ,m_eElementType(_eType) @@ -591,11 +589,14 @@ namespace xmloff //--------------------------------------------------------------------- void OControlImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue) { - if ( !m_sControlId.getLength() && _rLocalName.equalsAscii( OAttributeMetaData::getCommonControlAttributeName( CCA_CONTROL_ID ) ) ) + static const sal_Char* pControlIdAttributeName = OAttributeMetaData::getCommonControlAttributeName(CCA_CONTROL_ID); + static const sal_Char* pLinkedCellAttributeName = OAttributeMetaData::getBindingAttributeName(BA_LINKED_CELL); + + if ( !m_sControlId.getLength() && _rLocalName.equalsAscii( pControlIdAttributeName ) ) { // it's the control id m_sControlId = _rValue; } - else if ( _rLocalName.equalsAscii( OAttributeMetaData::getBindingAttributeName( BA_LINKED_CELL ) ) ) + else if ( _rLocalName.equalsAscii( pLinkedCellAttributeName ) ) { // it's the address of a spreadsheet cell m_sBoundCellAddress = _rValue; } @@ -614,14 +615,20 @@ namespace xmloff } else { + static const sal_Char* pValueAttributeName = OAttributeMetaData::getSpecialAttributeName(CCA_VALUE); + static const sal_Char* pCurrentValueAttributeName = OAttributeMetaData::getSpecialAttributeName(CCA_CURRENT_VALUE); + static const sal_Char* pMinValueAttributeName = OAttributeMetaData::getSpecialAttributeName(SCA_MIN_VALUE); + static const sal_Char* pMaxValueAttributeName = OAttributeMetaData::getSpecialAttributeName(SCA_MAX_VALUE); + static const sal_Char* pRepeatDelayAttributeName = OAttributeMetaData::getSpecialAttributeName( SCA_REPEAT_DELAY ); + sal_Int32 nHandle = -1; - if ( _rLocalName.equalsAscii( OAttributeMetaData::getCommonControlAttributeName( CCA_VALUE ) ) ) + if ( _rLocalName.equalsAscii( pValueAttributeName ) ) nHandle = PROPID_VALUE; - else if ( _rLocalName.equalsAscii( OAttributeMetaData::getCommonControlAttributeName( CCA_CURRENT_VALUE ) ) ) + else if ( _rLocalName.equalsAscii( pCurrentValueAttributeName ) ) nHandle = PROPID_CURRENT_VALUE; - else if ( _rLocalName.equalsAscii( OAttributeMetaData::getSpecialAttributeName( SCA_MIN_VALUE ) ) ) + else if ( _rLocalName.equalsAscii( pMinValueAttributeName ) ) nHandle = PROPID_MIN_VALUE; - else if ( _rLocalName.equalsAscii( OAttributeMetaData::getSpecialAttributeName( SCA_MAX_VALUE ) ) ) + else if ( _rLocalName.equalsAscii( pMaxValueAttributeName ) ) nHandle = PROPID_MAX_VALUE; if ( nHandle != -1 ) { @@ -632,7 +639,7 @@ namespace xmloff aProp.Value <<= _rValue; m_aValueProperties.push_back(aProp); } - else if ( _rLocalName.equalsAscii( OAttributeMetaData::getSpecialAttributeName( SCA_REPEAT_DELAY ) ) ) + else if ( _rLocalName.equalsAscii( pRepeatDelayAttributeName ) ) { ::Time aTime; sal_Int32 nFractions = 0; @@ -672,11 +679,10 @@ namespace xmloff // let the base class handle all the attributes OElementImport::StartElement(xAttributes); - if (m_aValueProperties.size() && m_xElement.is()) + if ( !m_aValueProperties.empty() && m_xElement.is()) { // get the property set info - Reference< XPropertySetInfo > xPropsInfo = m_xElement->getPropertySetInfo(); - if (!xPropsInfo.is()) + if (!m_xInfo.is()) { OSL_ENSURE(sal_False, "OControlImport::StartElement: no PropertySetInfo!"); return; @@ -695,8 +701,9 @@ namespace xmloff m_xElement->getPropertyValue(PROPERTY_CLASSID) >>= nClassId; // translate the value properties we collected in handleAttributes + PropertyValueArray::iterator aEnd = m_aValueProperties.end(); for ( PropertyValueArray::iterator aValueProps = m_aValueProperties.begin(); - aValueProps != m_aValueProperties.end(); + aValueProps != aEnd; ++aValueProps ) { @@ -747,7 +754,7 @@ namespace xmloff } // translate the value - implTranslateValueProperty(xPropsInfo, *aValueProps); + implTranslateValueProperty(m_xInfo, *aValueProps); // add the property to the base class' array implPushBackPropertyValue(*aValueProps); } @@ -800,7 +807,7 @@ namespace xmloff // register our control with it's id if (m_sControlId.getLength()) - m_rFormImport.getControlIdMap().registerControlId(m_xElement, m_sControlId); + m_rFormImport.registerControlId(m_xElement, m_sControlId); // it's allowed to have no control id. In this case we're importing a column // one more pre-work to do: @@ -835,8 +842,9 @@ namespace xmloff // is the "value property" part of the sequence? // look up this property in our sequence + PropertyValueArray::iterator aEnd = m_aValues.end(); for ( PropertyValueArray::iterator aCheck = m_aValues.begin(); - ( aCheck != m_aValues.end() ); + ( aCheck != aEnd ); ++aCheck ) { @@ -938,11 +946,11 @@ namespace xmloff //added by BerryJia for fixing bug102407 2002-11-5 Reference< XPropertySet > OControlImport::createElement() { - Reference<XPropertySet> xPropSet = OElementImport::createElement(); - if(xPropSet.is()) + const Reference<XPropertySet> xPropSet = OElementImport::createElement(); + if ( xPropSet.is() ) { - Reference<XPropertySetInfo> xInfo(xPropSet->getPropertySetInfo()); - if(xInfo.is() && xInfo->hasPropertyByName(PROPERTY_ALIGN)) + m_xInfo = xPropSet->getPropertySetInfo(); + if ( m_xInfo.is() && m_xInfo->hasPropertyByName(PROPERTY_ALIGN) ) { Any aValue; xPropSet->setPropertyValue(PROPERTY_ALIGN,aValue); @@ -955,7 +963,7 @@ namespace xmloff //= OImagePositionImport //===================================================================== //--------------------------------------------------------------------- - OImagePositionImport::OImagePositionImport( IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, + OImagePositionImport::OImagePositionImport( OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ) :OControlImport( _rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType ) @@ -1015,7 +1023,7 @@ namespace xmloff //===================================================================== //--------------------------------------------------------------------- OReferredControlImport::OReferredControlImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType ) :OControlImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer) @@ -1028,8 +1036,8 @@ namespace xmloff OControlImport::StartElement(_rxAttrList); // the base class should have created the control, so we can register it - if (m_sReferringControls.getLength()) - m_rFormImport.getControlIdMap().registerControlReferences(m_xElement, m_sReferringControls); + if ( m_sReferringControls.getLength() ) + m_rFormImport.registerControlReferences(m_xElement, m_sReferringControls); } //--------------------------------------------------------------------- @@ -1047,7 +1055,7 @@ namespace xmloff //= OPasswordImport //===================================================================== //--------------------------------------------------------------------- - OPasswordImport::OPasswordImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OPasswordImport::OPasswordImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OControlImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType) { @@ -1078,7 +1086,7 @@ namespace xmloff //= ORadioImport //===================================================================== //--------------------------------------------------------------------- - ORadioImport::ORadioImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + ORadioImport::ORadioImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OImagePositionImport( _rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType ) { @@ -1089,15 +1097,17 @@ namespace xmloff { // need special handling for the State & CurrentState properties: // they're stored as booleans, but expected to be int16 properties - if ( _rLocalName.equalsAscii( OAttributeMetaData::getCommonControlAttributeName( CCA_CURRENT_SELECTED ) ) - || _rLocalName.equalsAscii( OAttributeMetaData::getCommonControlAttributeName( CCA_SELECTED ) ) + static const sal_Char* pCurrentSelectedAttributeName = OAttributeMetaData::getCommonControlAttributeName(CCA_CURRENT_SELECTED); + static const sal_Char* pSelectedAttributeName = OAttributeMetaData::getCommonControlAttributeName(CCA_SELECTED); + if ( _rLocalName.equalsAscii( pCurrentSelectedAttributeName ) + || _rLocalName.equalsAscii( pSelectedAttributeName ) ) { const OAttribute2Property::AttributeAssignment* pProperty = m_rContext.getAttributeMap().getAttributeTranslation(_rLocalName); OSL_ENSURE(pProperty, "ORadioImport::handleAttribute: invalid property map!"); if (pProperty) { - Any aBooleanValue = PropertyConversion::convertString(m_rContext.getGlobalContext(), pProperty->aPropertyType, _rValue, pProperty->pEnumMap); + const Any aBooleanValue( PropertyConversion::convertString(m_rContext.getGlobalContext(), pProperty->aPropertyType, _rValue, pProperty->pEnumMap) ); // create and store a new PropertyValue PropertyValue aNewValue; @@ -1114,7 +1124,7 @@ namespace xmloff //===================================================================== //= OURLReferenceImport //===================================================================== - OURLReferenceImport::OURLReferenceImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OURLReferenceImport::OURLReferenceImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OImagePositionImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType) @@ -1159,7 +1169,7 @@ namespace xmloff //= OButtonImport //===================================================================== //--------------------------------------------------------------------- - OButtonImport::OButtonImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OButtonImport::OButtonImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OURLReferenceImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType) @@ -1180,11 +1190,12 @@ namespace xmloff //= OValueRangeImport //===================================================================== //--------------------------------------------------------------------- - OValueRangeImport::OValueRangeImport( IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OValueRangeImport::OValueRangeImport( OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ) :OControlImport( _rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType ) ,m_nStepSizeValue( 1 ) { + } //--------------------------------------------------------------------- @@ -1203,14 +1214,11 @@ namespace xmloff { OControlImport::StartElement( _rxAttrList ); - Reference< XPropertySetInfo > xPropInfo; - if ( m_xElement.is() ) - xPropInfo = m_xElement->getPropertySetInfo(); - if ( xPropInfo.is() ) + if ( m_xInfo.is() ) { - if ( xPropInfo->hasPropertyByName( PROPERTY_SPIN_INCREMENT ) ) + if ( m_xInfo->hasPropertyByName( PROPERTY_SPIN_INCREMENT ) ) m_xElement->setPropertyValue( PROPERTY_SPIN_INCREMENT, makeAny( m_nStepSizeValue ) ); - else if ( xPropInfo->hasPropertyByName( PROPERTY_LINE_INCREMENT ) ) + else if ( m_xInfo->hasPropertyByName( PROPERTY_LINE_INCREMENT ) ) m_xElement->setPropertyValue( PROPERTY_LINE_INCREMENT, makeAny( m_nStepSizeValue ) ); } } @@ -1219,7 +1227,7 @@ namespace xmloff //= OTextLikeImport //===================================================================== //--------------------------------------------------------------------- - OTextLikeImport::OTextLikeImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OTextLikeImport::OTextLikeImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OControlImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType) @@ -1232,7 +1240,7 @@ namespace xmloff SvXMLImportContext* OTextLikeImport::CreateChildContext( sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, const Reference< sax::XAttributeList >& _rxAttrList ) { - if ( _rLocalName.equalsIgnoreAsciiCaseAscii( "p" ) && ( XML_NAMESPACE_TEXT == _nPrefix ) ) + if ( ( XML_NAMESPACE_TEXT == _nPrefix ) && _rLocalName.equalsIgnoreAsciiCaseAscii( "p" ) ) { OSL_ENSURE( m_eElementType == OControlElement::TEXT_AREA, "OTextLikeImport::CreateChildContext: text paragraphs in a non-text-area?" ); @@ -1275,32 +1283,22 @@ namespace xmloff OControlImport::StartElement(_rxAttrList); // handle the convert-empty-to-null attribute, whose default is different from the property default - sal_Bool bHaveEmptyIsNull = sal_False; // unfortunately, different classes are imported by this class ('cause they're represented by the // same XML element), though not all of them know this property. // So we have to do a check ... - if (m_xElement.is()) - { - Reference< XPropertySetInfo > xProps = m_xElement->getPropertySetInfo(); - if (xProps.is()) - bHaveEmptyIsNull = xProps->hasPropertyByName(PROPERTY_EMPTY_IS_NULL); - } - - if (bHaveEmptyIsNull) + if (m_xElement.is() && m_xInfo.is() && m_xInfo->hasPropertyByName(PROPERTY_EMPTY_IS_NULL) ) simulateDefaultedAttribute(OAttributeMetaData::getDatabaseAttributeName(DA_CONVERT_EMPTY), PROPERTY_EMPTY_IS_NULL, "false"); } //--------------------------------------------------------------------- struct EqualHandle : public ::std::unary_function< PropertyValue, bool > { - sal_Int32 m_nHandle; + const sal_Int32 m_nHandle; EqualHandle( sal_Int32 _nHandle ) : m_nHandle( _nHandle ) { } inline bool operator()( const PropertyValue& _rProp ) { - if ( _rProp.Handle == m_nHandle ) - return true; - return false; + return _rProp.Handle == m_nHandle; } }; @@ -1337,11 +1335,8 @@ namespace xmloff // additionally, we need to set the "RichText" property of our element to TRUE // (the presence of the text:p is used as indicator for the value of the RichText property) sal_Bool bHasRichTextProperty = sal_False; - Reference< XPropertySetInfo > xPropInfo; - if ( m_xElement.is() ) - xPropInfo = m_xElement->getPropertySetInfo(); - if ( xPropInfo.is() ) - bHasRichTextProperty = xPropInfo->hasPropertyByName( PROPERTY_RICH_TEXT ); + if ( m_xInfo.is() ) + bHasRichTextProperty = m_xInfo->hasPropertyByName( PROPERTY_RICH_TEXT ); OSL_ENSURE( bHasRichTextProperty, "OTextLikeImport::EndElement: text:p, but no rich text control?" ); if ( bHasRichTextProperty ) m_xElement->setPropertyValue( PROPERTY_RICH_TEXT, makeAny( (sal_Bool)sal_True ) ); @@ -1353,14 +1348,12 @@ namespace xmloff //--------------------------------------------------------------------- struct EqualName : public ::std::unary_function< PropertyValue, bool > { - ::rtl::OUString m_sName; + const ::rtl::OUString m_sName; EqualName( const ::rtl::OUString& _rName ) : m_sName( _rName ) { } inline bool operator()( const PropertyValue& _rProp ) { - if ( _rProp.Name == m_sName ) - return true; - return false; + return _rProp.Name == m_sName; } }; @@ -1425,7 +1418,7 @@ namespace xmloff //= OListAndComboImport //===================================================================== //--------------------------------------------------------------------- - OListAndComboImport::OListAndComboImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OListAndComboImport::OListAndComboImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OControlImport(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType) @@ -1538,8 +1531,8 @@ namespace xmloff //--------------------------------------------------------------------- void OListAndComboImport::handleAttribute(sal_uInt16 _nNamespaceKey, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue) { - static const ::rtl::OUString s_sListSourceAttributeName = ::rtl::OUString::createFromAscii(OAttributeMetaData::getDatabaseAttributeName(DA_LIST_SOURCE)); - if (s_sListSourceAttributeName == _rLocalName) + static const sal_Char* pListSourceAttributeName = OAttributeMetaData::getDatabaseAttributeName(DA_LIST_SOURCE); + if ( _rLocalName.equalsAscii(pListSourceAttributeName) ) { PropertyValue aListSource; aListSource.Name = PROPERTY_LISTSOURCE; @@ -1653,9 +1646,10 @@ namespace xmloff void OListOptionImport::StartElement(const Reference< sax::XAttributeList >& _rxAttrList) { // the label and the value - const ::rtl::OUString sLabelAttribute = GetImport().GetNamespaceMap().GetQNameByKey( + const SvXMLNamespaceMap& rMap = GetImport().GetNamespaceMap(); + const ::rtl::OUString sLabelAttribute = rMap.GetQNameByKey( GetPrefix(), ::rtl::OUString::createFromAscii("label")); - const ::rtl::OUString sValueAttribute = GetImport().GetNamespaceMap().GetQNameByKey( + const ::rtl::OUString sValueAttribute = rMap.GetQNameByKey( GetPrefix(), ::rtl::OUString::createFromAscii("value")); // ------------------- @@ -1687,9 +1681,9 @@ namespace xmloff m_xListBoxImport->implPushBackValue( sValue ); // the current-selected and selected - const ::rtl::OUString sSelectedAttribute = GetImport().GetNamespaceMap().GetQNameByKey( + const ::rtl::OUString sSelectedAttribute = rMap.GetQNameByKey( GetPrefix(), ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_CURRENT_SELECTED))); - const ::rtl::OUString sDefaultSelectedAttribute = GetImport().GetNamespaceMap().GetQNameByKey( + const ::rtl::OUString sDefaultSelectedAttribute = rMap.GetQNameByKey( GetPrefix(), ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_SELECTED))); // propagate the selected flag @@ -1733,7 +1727,7 @@ namespace xmloff //= OColumnWrapperImport //===================================================================== //--------------------------------------------------------------------- - OColumnWrapperImport::OColumnWrapperImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OColumnWrapperImport::OColumnWrapperImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer) :SvXMLImportContext(_rImport.getGlobalContext(), _nPrefix, _rName) ,m_xParentContainer(_rxParentContainer) @@ -1802,7 +1796,7 @@ namespace xmloff //= OGridImport //===================================================================== //--------------------------------------------------------------------- - OGridImport::OGridImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OGridImport::OGridImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :OGridImport_Base(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, "column") @@ -1820,7 +1814,7 @@ namespace xmloff //= OFormImport //===================================================================== //--------------------------------------------------------------------- - OFormImport::OFormImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormImport::OFormImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const Reference< XNameContainer >& _rxParentContainer) :OFormImport_Base(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, "control") { diff --git a/xmloff/source/forms/elementimport.hxx b/xmloff/source/forms/elementimport.hxx index b71acfd6d5..ce6540cd69 100644 --- a/xmloff/source/forms/elementimport.hxx +++ b/xmloff/source/forms/elementimport.hxx @@ -53,7 +53,7 @@ namespace xmloff //......................................................................... class IControlIdMap; - class IFormsImportContext; + class OFormLayerXMLImport_Impl; //===================================================================== //= OElementNameMap @@ -88,7 +88,7 @@ namespace xmloff protected: ::rtl::OUString m_sServiceName; // the service name as extracted from the service-name attribute ::rtl::OUString m_sName; // the name of the object (redundant, already contained in the base class' array) - IFormsImportContext& m_rFormImport; // the form import context + OFormLayerXMLImport_Impl& m_rFormImport; // the form import context IEventAttacherManager& m_rEventManager; // the event attacher manager const XMLTextStyleContext* m_pStyleElement; // the XML element which describes the style we encountered @@ -98,6 +98,8 @@ namespace xmloff m_xParentContainer; // the parent container to insert the new element into + ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySetInfo > + m_xInfo; ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet > m_xElement; // the element we're creating. Valid after StartElement @@ -117,7 +119,7 @@ namespace xmloff the container in which the new element should be inserted */ OElementImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer ); @@ -207,14 +209,14 @@ namespace xmloff protected: // for use by derived classes only OControlImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer ); public: OControlImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType @@ -285,7 +287,7 @@ namespace xmloff public: OImagePositionImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -312,7 +314,7 @@ namespace xmloff public: OReferredControlImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -334,7 +336,7 @@ namespace xmloff { public: OPasswordImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -352,7 +354,7 @@ namespace xmloff { public: ORadioImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -374,7 +376,7 @@ namespace xmloff { public: OURLReferenceImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -396,7 +398,7 @@ namespace xmloff { public: OButtonImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -420,7 +422,7 @@ namespace xmloff public: OValueRangeImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -451,7 +453,7 @@ namespace xmloff public: OTextLikeImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -503,7 +505,7 @@ namespace xmloff public: OListAndComboImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType ); @@ -589,7 +591,7 @@ namespace xmloff ::rtl::OUString m_sWrapperElementName; protected: - OContainerImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OContainerImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, const sal_Char* _pWrapperElementName) :BASE(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer) @@ -629,7 +631,7 @@ namespace xmloff m_xColumnFactory; public: - OColumnImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OColumnImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType); @@ -649,11 +651,11 @@ namespace xmloff m_xOwnAttributes; ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer > m_xParentContainer; - IFormsImportContext& m_rFormImport; + OFormLayerXMLImport_Impl& m_rFormImport; IEventAttacherManager& m_rEventManager; public: - OColumnWrapperImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OColumnWrapperImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer); // SvXMLImportContext overridables @@ -678,7 +680,7 @@ namespace xmloff { public: OGridImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType); @@ -698,7 +700,7 @@ namespace xmloff { public: OFormImport( - IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer ); diff --git a/xmloff/source/forms/elementimport_impl.hxx b/xmloff/source/forms/elementimport_impl.hxx index 1988c475d2..49bd8d8f7f 100644 --- a/xmloff/source/forms/elementimport_impl.hxx +++ b/xmloff/source/forms/elementimport_impl.hxx @@ -99,7 +99,7 @@ inline void OContainerImport< BASE >::EndElement() //========================================================================= //------------------------------------------------------------------------- template <class BASE> -OColumnImport< BASE >::OColumnImport(IFormsImportContext& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, +OColumnImport< BASE >::OColumnImport(OFormLayerXMLImport_Impl& _rImport, IEventAttacherManager& _rEventManager, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, const ::com::sun::star::uno::Reference< ::com::sun::star::container::XNameContainer >& _rxParentContainer, OControlElement::ElementType _eType) :BASE(_rImport, _rEventManager, _nPrefix, _rName, _rxParentContainer, _eType) diff --git a/xmloff/source/forms/eventexport.cxx b/xmloff/source/forms/eventexport.cxx index 2e44b96019..45a679bd40 100644 --- a/xmloff/source/forms/eventexport.cxx +++ b/xmloff/source/forms/eventexport.cxx @@ -154,7 +154,7 @@ namespace xmloff //--------------------------------------------------------------------- sal_Bool SAL_CALL OEventDescriptorMapper::hasElements( ) throw(RuntimeException) { - return 0 != m_aMappedEvents.size(); + return !m_aMappedEvents.empty(); } //......................................................................... diff --git a/xmloff/source/forms/formattributes.cxx b/xmloff/source/forms/formattributes.cxx index 9cb70d95dd..a082c0a897 100644 --- a/xmloff/source/forms/formattributes.cxx +++ b/xmloff/source/forms/formattributes.cxx @@ -34,7 +34,7 @@ #include "xmlnmspe.hxx" #include <xmloff/xmluconv.hxx> #include <rtl/ustrbuf.hxx> - +#include <rtl/logfile.hxx> //......................................................................... namespace xmloff { diff --git a/xmloff/source/forms/formcellbinding.cxx b/xmloff/source/forms/formcellbinding.cxx index 98433eb1ae..0f3e657e16 100644 --- a/xmloff/source/forms/formcellbinding.cxx +++ b/xmloff/source/forms/formcellbinding.cxx @@ -46,6 +46,7 @@ #include <com/sun/star/beans/NamedValue.hpp> #include "strings.hxx" #include <osl/diagnose.h> +#include <rtl/logfile.hxx> #include <functional> #include <algorithm> @@ -66,427 +67,427 @@ namespace xmloff using namespace ::com::sun::star::lang; using namespace ::com::sun::star::form::binding; - namespace +namespace +{ + using ::com::sun::star::uno::Reference; + using ::com::sun::star::uno::XInterface; + using ::com::sun::star::container::XChild; + using ::com::sun::star::frame::XModel; + using ::com::sun::star::uno::UNO_QUERY; + + //.................................................................... + template< class TYPE > + Reference< TYPE > getTypedModelNode( const Reference< XInterface >& _rxModelNode ) { - using ::com::sun::star::uno::Reference; - using ::com::sun::star::uno::XInterface; - using ::com::sun::star::container::XChild; - using ::com::sun::star::frame::XModel; - using ::com::sun::star::uno::UNO_QUERY; - - //.................................................................... - template< class TYPE > - Reference< TYPE > getTypedModelNode( const Reference< XInterface >& _rxModelNode ) + Reference< TYPE > xTypedNode( _rxModelNode, UNO_QUERY ); + if ( xTypedNode.is() ) + return xTypedNode; + else { - Reference< TYPE > xTypedNode( _rxModelNode, UNO_QUERY ); - if ( xTypedNode.is() ) - return xTypedNode; + Reference< XChild > xChild( _rxModelNode, UNO_QUERY ); + if ( xChild.is() ) + return getTypedModelNode< TYPE >( xChild->getParent() ); else - { - Reference< XChild > xChild( _rxModelNode, UNO_QUERY ); - if ( xChild.is() ) - return getTypedModelNode< TYPE >( xChild->getParent() ); - else - return NULL; - } + return NULL; } - - //.................................................................... - Reference< XModel > getDocument( const Reference< XInterface >& _rxModelNode ) - { - return getTypedModelNode< XModel >( _rxModelNode ); - } - - //.................................................................... - struct StringCompare : public ::std::unary_function< ::rtl::OUString, bool > - { - private: - ::rtl::OUString m_sReference; - - public: - StringCompare( const ::rtl::OUString& _rReference ) : m_sReference( _rReference ) { } - - inline bool operator()( const ::rtl::OUString& _rCompare ) - { - return ( _rCompare == m_sReference ) ? true : false; - } - }; } - //======================================================================== - //= FormCellBindingHelper - //======================================================================== - //------------------------------------------------------------------------ - FormCellBindingHelper::FormCellBindingHelper( const Reference< XPropertySet >& _rxControlModel, const Reference< XModel >& _rxDocument ) - :m_xControlModel( _rxControlModel ) - ,m_xDocument( _rxDocument, UNO_QUERY ) + //.................................................................... + Reference< XModel > getDocument( const Reference< XInterface >& _rxModelNode ) { - OSL_ENSURE( m_xControlModel.is(), "FormCellBindingHelper::FormCellBindingHelper: invalid control model!" ); - - if ( !m_xDocument.is() ) - m_xDocument = m_xDocument.query( getDocument( m_xControlModel ) ); - OSL_ENSURE( m_xDocument.is(), "FormCellBindingHelper::FormCellBindingHelper: Did not find the spreadsheet document!" ); + return getTypedModelNode< XModel >( _rxModelNode ); } - //------------------------------------------------------------------------ - sal_Bool FormCellBindingHelper::livesInSpreadsheetDocument( const Reference< XPropertySet >& _rxControlModel ) + //.................................................................... + struct StringCompare : public ::std::unary_function< ::rtl::OUString, bool > { - Reference< XSpreadsheetDocument > xDocument( getDocument( _rxControlModel ), UNO_QUERY ); - return xDocument.is(); - } + private: + const ::rtl::OUString m_sReference; - //------------------------------------------------------------------------ - bool FormCellBindingHelper::convertStringAddress( const ::rtl::OUString& _rAddressDescription, CellAddress& /* [out] */ _rAddress, sal_Int16 /*_nAssumeSheet*/ ) const - { - Any aAddress; - return doConvertAddressRepresentations( - PROPERTY_FILE_REPRESENTATION, - makeAny( _rAddressDescription ), - PROPERTY_ADDRESS, - aAddress, - false - ) - && ( aAddress >>= _rAddress ); - } + public: + StringCompare( const ::rtl::OUString& _rReference ) : m_sReference( _rReference ) { } - //------------------------------------------------------------------------ - bool FormCellBindingHelper::convertStringAddress( const ::rtl::OUString& _rAddressDescription, - CellRangeAddress& /* [out] */ _rAddress ) const - { - Any aAddress; - return doConvertAddressRepresentations( - PROPERTY_FILE_REPRESENTATION, - makeAny( _rAddressDescription ), - PROPERTY_ADDRESS, - aAddress, - true - ) - && ( aAddress >>= _rAddress ); - } + inline bool operator()( const ::rtl::OUString& _rCompare ) + { + return ( _rCompare == m_sReference ); + } + }; +} + +//======================================================================== +//= FormCellBindingHelper +//======================================================================== +//------------------------------------------------------------------------ +FormCellBindingHelper::FormCellBindingHelper( const Reference< XPropertySet >& _rxControlModel, const Reference< XModel >& _rxDocument ) + :m_xControlModel( _rxControlModel ) + ,m_xDocument( _rxDocument, UNO_QUERY ) +{ + OSL_ENSURE( m_xControlModel.is(), "FormCellBindingHelper::FormCellBindingHelper: invalid control model!" ); - //------------------------------------------------------------------------ - Reference< XValueBinding > FormCellBindingHelper::createCellBindingFromStringAddress( const ::rtl::OUString& _rAddress, bool _bUseIntegerBinding ) const - { - Reference< XValueBinding > xBinding; - if ( !m_xDocument.is() ) - // very bad ... - return xBinding; - - // get the UNO representation of the address - CellAddress aAddress; - if ( !_rAddress.getLength() || !convertStringAddress( _rAddress, aAddress ) ) - return xBinding; - - xBinding = xBinding.query( createDocumentDependentInstance( - _bUseIntegerBinding ? SERVICE_LISTINDEXCELLBINDING : SERVICE_CELLVALUEBINDING, - PROPERTY_BOUND_CELL, - makeAny( aAddress ) - ) ); + if ( !m_xDocument.is() ) + m_xDocument = m_xDocument.query( getDocument( m_xControlModel ) ); + OSL_ENSURE( m_xDocument.is(), "FormCellBindingHelper::FormCellBindingHelper: Did not find the spreadsheet document!" ); +} + +//------------------------------------------------------------------------ +sal_Bool FormCellBindingHelper::livesInSpreadsheetDocument( const Reference< XPropertySet >& _rxControlModel ) +{ + Reference< XSpreadsheetDocument > xDocument( getDocument( _rxControlModel ), UNO_QUERY ); + return xDocument.is(); +} + +//------------------------------------------------------------------------ +bool FormCellBindingHelper::convertStringAddress( const ::rtl::OUString& _rAddressDescription, CellAddress& /* [out] */ _rAddress, sal_Int16 /*_nAssumeSheet*/ ) const +{ + Any aAddress; + return doConvertAddressRepresentations( + PROPERTY_FILE_REPRESENTATION, + makeAny( _rAddressDescription ), + PROPERTY_ADDRESS, + aAddress, + false + ) + && ( aAddress >>= _rAddress ); +} + +//------------------------------------------------------------------------ +bool FormCellBindingHelper::convertStringAddress( const ::rtl::OUString& _rAddressDescription, + CellRangeAddress& /* [out] */ _rAddress ) const +{ + Any aAddress; + return doConvertAddressRepresentations( + PROPERTY_FILE_REPRESENTATION, + makeAny( _rAddressDescription ), + PROPERTY_ADDRESS, + aAddress, + true + ) + && ( aAddress >>= _rAddress ); +} + +//------------------------------------------------------------------------ +Reference< XValueBinding > FormCellBindingHelper::createCellBindingFromStringAddress( const ::rtl::OUString& _rAddress, bool _bUseIntegerBinding ) const +{ + Reference< XValueBinding > xBinding; + if ( !m_xDocument.is() ) + // very bad ... + return xBinding; + // get the UNO representation of the address + CellAddress aAddress; + if ( !_rAddress.getLength() || !convertStringAddress( _rAddress, aAddress ) ) return xBinding; - } - //------------------------------------------------------------------------ - Reference< XListEntrySource > FormCellBindingHelper::createCellListSourceFromStringAddress( const ::rtl::OUString& _rAddress ) const - { - Reference< XListEntrySource > xSource; + xBinding = xBinding.query( createDocumentDependentInstance( + _bUseIntegerBinding ? SERVICE_LISTINDEXCELLBINDING : SERVICE_CELLVALUEBINDING, + PROPERTY_BOUND_CELL, + makeAny( aAddress ) + ) ); - CellRangeAddress aRangeAddress; - if ( !convertStringAddress( _rAddress, aRangeAddress ) ) - return xSource; + return xBinding; +} - // create a range object for this address - xSource = xSource.query( createDocumentDependentInstance( - SERVICE_CELLRANGELISTSOURCE, - PROPERTY_LIST_CELL_RANGE, - makeAny( aRangeAddress ) - ) ); +//------------------------------------------------------------------------ +Reference< XListEntrySource > FormCellBindingHelper::createCellListSourceFromStringAddress( const ::rtl::OUString& _rAddress ) const +{ + Reference< XListEntrySource > xSource; + CellRangeAddress aRangeAddress; + if ( !convertStringAddress( _rAddress, aRangeAddress ) ) return xSource; - } - //------------------------------------------------------------------------ - ::rtl::OUString FormCellBindingHelper::getStringAddressFromCellBinding( const Reference< XValueBinding >& _rxBinding ) const - { - OSL_PRECOND( !_rxBinding.is() || isCellBinding( _rxBinding ), "FormCellBindingHelper::getStringAddressFromCellBinding: this is no cell binding!" ); + // create a range object for this address + xSource = xSource.query( createDocumentDependentInstance( + SERVICE_CELLRANGELISTSOURCE, + PROPERTY_LIST_CELL_RANGE, + makeAny( aRangeAddress ) + ) ); - ::rtl::OUString sAddress; - try - { - Reference< XPropertySet > xBindingProps( _rxBinding, UNO_QUERY ); - OSL_ENSURE( xBindingProps.is() || !_rxBinding.is(), "FormCellBindingHelper::getStringAddressFromCellBinding: no property set for the binding!" ); - if ( xBindingProps.is() ) - { - CellAddress aAddress; - xBindingProps->getPropertyValue( PROPERTY_BOUND_CELL ) >>= aAddress; + return xSource; +} - Any aStringAddress; - doConvertAddressRepresentations( PROPERTY_ADDRESS, makeAny( aAddress ), - PROPERTY_FILE_REPRESENTATION, aStringAddress, false ); +//------------------------------------------------------------------------ +::rtl::OUString FormCellBindingHelper::getStringAddressFromCellBinding( const Reference< XValueBinding >& _rxBinding ) const +{ + OSL_PRECOND( !_rxBinding.is() || isCellBinding( _rxBinding ), "FormCellBindingHelper::getStringAddressFromCellBinding: this is no cell binding!" ); - aStringAddress >>= sAddress; - } - } - catch( const Exception& ) + ::rtl::OUString sAddress; + try + { + Reference< XPropertySet > xBindingProps( _rxBinding, UNO_QUERY ); + OSL_ENSURE( xBindingProps.is() || !_rxBinding.is(), "FormCellBindingHelper::getStringAddressFromCellBinding: no property set for the binding!" ); + if ( xBindingProps.is() ) { - OSL_ENSURE( sal_False, "FormCellBindingHelper::getStringAddressFromCellBinding: caught an exception!" ); - } + CellAddress aAddress; + xBindingProps->getPropertyValue( PROPERTY_BOUND_CELL ) >>= aAddress; - return sAddress; - } + Any aStringAddress; + doConvertAddressRepresentations( PROPERTY_ADDRESS, makeAny( aAddress ), + PROPERTY_FILE_REPRESENTATION, aStringAddress, false ); - //------------------------------------------------------------------------ - ::rtl::OUString FormCellBindingHelper::getStringAddressFromCellListSource( const Reference< XListEntrySource >& _rxSource ) const + aStringAddress >>= sAddress; + } + } + catch( const Exception& ) { - OSL_PRECOND( !_rxSource.is() || isCellRangeListSource( _rxSource ), "FormCellBindingHelper::getStringAddressFromCellListSource: this is no cell list source!" ); - - ::rtl::OUString sAddress; - try - { - Reference< XPropertySet > xSourceProps( _rxSource, UNO_QUERY ); - OSL_ENSURE( xSourceProps.is() || !_rxSource.is(), "FormCellBindingHelper::getStringAddressFromCellListSource: no property set for the list source!" ); - if ( xSourceProps.is() ) - { - CellRangeAddress aRangeAddress; - xSourceProps->getPropertyValue( PROPERTY_LIST_CELL_RANGE ) >>= aRangeAddress; + OSL_ENSURE( sal_False, "FormCellBindingHelper::getStringAddressFromCellBinding: caught an exception!" ); + } - Any aStringAddress; - doConvertAddressRepresentations( PROPERTY_ADDRESS, makeAny( aRangeAddress ), - PROPERTY_FILE_REPRESENTATION, aStringAddress, true ); - aStringAddress >>= sAddress; - } - } - catch( const Exception& ) - { - OSL_ENSURE( sal_False, "FormCellBindingHelper::getStringAddressFromCellListSource: caught an exception!" ); - } + return sAddress; +} - return sAddress; - } +//------------------------------------------------------------------------ +::rtl::OUString FormCellBindingHelper::getStringAddressFromCellListSource( const Reference< XListEntrySource >& _rxSource ) const +{ + OSL_PRECOND( !_rxSource.is() || isCellRangeListSource( _rxSource ), "FormCellBindingHelper::getStringAddressFromCellListSource: this is no cell list source!" ); - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies( const Reference< XSpreadsheetDocument >& _rxDocument, const ::rtl::OUString& _rService ) SAL_THROW(()) + ::rtl::OUString sAddress; + try { - bool bYesItIs = false; - - try - { - Reference< XServiceInfo > xSI( _rxDocument, UNO_QUERY ); - if ( xSI.is() && xSI->supportsService( SERVICE_SPREADSHEET_DOCUMENT ) ) - { - Reference< XMultiServiceFactory > xDocumentFactory( _rxDocument, UNO_QUERY ); - OSL_ENSURE( xDocumentFactory.is(), "FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies: spreadsheet document, but no factory?" ); - - Sequence< ::rtl::OUString > aAvailableServices; - if ( xDocumentFactory.is() ) - aAvailableServices = xDocumentFactory->getAvailableServiceNames( ); - - const ::rtl::OUString* pFound = ::std::find_if( - aAvailableServices.getConstArray(), - aAvailableServices.getConstArray() + aAvailableServices.getLength(), - StringCompare( _rService ) - ); - if ( pFound - aAvailableServices.getConstArray() < aAvailableServices.getLength() ) - { - bYesItIs = true; - } - } - } - catch( const Exception& ) + Reference< XPropertySet > xSourceProps( _rxSource, UNO_QUERY ); + OSL_ENSURE( xSourceProps.is() || !_rxSource.is(), "FormCellBindingHelper::getStringAddressFromCellListSource: no property set for the list source!" ); + if ( xSourceProps.is() ) { - OSL_ENSURE( sal_False, "FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies: caught an exception!" ); - } + CellRangeAddress aRangeAddress; + xSourceProps->getPropertyValue( PROPERTY_LIST_CELL_RANGE ) >>= aRangeAddress; - return bYesItIs; + Any aStringAddress; + doConvertAddressRepresentations( PROPERTY_ADDRESS, makeAny( aRangeAddress ), + PROPERTY_FILE_REPRESENTATION, aStringAddress, true ); + aStringAddress >>= sAddress; + } } - - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies( const ::rtl::OUString& _rService ) const SAL_THROW(()) + catch( const Exception& ) { - return isSpreadsheetDocumentWhichSupplies( m_xDocument, _rService ); + OSL_ENSURE( sal_False, "FormCellBindingHelper::getStringAddressFromCellListSource: caught an exception!" ); } - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isListCellRangeAllowed( const Reference< XModel >& _rxDocument ) - { - return isSpreadsheetDocumentWhichSupplies( - Reference< XSpreadsheetDocument >( _rxDocument, UNO_QUERY ), - SERVICE_CELLRANGELISTSOURCE - ); - } + return sAddress; +} - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isListCellRangeAllowed( ) const - { - bool bAllow( false ); +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies( const Reference< XSpreadsheetDocument >& _rxDocument, const ::rtl::OUString& _rService ) SAL_THROW(()) +{ + bool bYesItIs = false; - Reference< XListEntrySink > xSink( m_xControlModel, UNO_QUERY ); - if ( xSink.is() ) + try + { + Reference< XServiceInfo > xSI( _rxDocument, UNO_QUERY ); + if ( xSI.is() && xSI->supportsService( SERVICE_SPREADSHEET_DOCUMENT ) ) { - bAllow = isSpreadsheetDocumentWhichSupplies( SERVICE_CELLRANGELISTSOURCE ); + Reference< XMultiServiceFactory > xDocumentFactory( _rxDocument, UNO_QUERY ); + OSL_ENSURE( xDocumentFactory.is(), "FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies: spreadsheet document, but no factory?" ); + + Sequence< ::rtl::OUString > aAvailableServices; + if ( xDocumentFactory.is() ) + aAvailableServices = xDocumentFactory->getAvailableServiceNames( ); + + const ::rtl::OUString* pFound = ::std::find_if( + aAvailableServices.getConstArray(), + aAvailableServices.getConstArray() + aAvailableServices.getLength(), + StringCompare( _rService ) + ); + if ( pFound - aAvailableServices.getConstArray() < aAvailableServices.getLength() ) + { + bYesItIs = true; + } } - - return bAllow; } - - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isCellBindingAllowed( ) const + catch( const Exception& ) { - bool bAllow( false ); + OSL_ENSURE( sal_False, "FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies: caught an exception!" ); + } - Reference< XBindableValue > xBindable( m_xControlModel, UNO_QUERY ); - if ( xBindable.is() ) - { - // the control can potentially be bound to an external value - // Does it live within a Calc document, and is able to supply CellBindings? - bAllow = isSpreadsheetDocumentWhichSupplies( SERVICE_CELLVALUEBINDING ); - } + return bYesItIs; +} - return bAllow; - } +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isSpreadsheetDocumentWhichSupplies( const ::rtl::OUString& _rService ) const SAL_THROW(()) +{ + return isSpreadsheetDocumentWhichSupplies( m_xDocument, _rService ); +} - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isCellBindingAllowed( const Reference< XModel >& _rxDocument ) - { - return isSpreadsheetDocumentWhichSupplies( - Reference< XSpreadsheetDocument >( _rxDocument, UNO_QUERY ), - SERVICE_CELLVALUEBINDING - ); - } +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isListCellRangeAllowed( const Reference< XModel >& _rxDocument ) +{ + return isSpreadsheetDocumentWhichSupplies( + Reference< XSpreadsheetDocument >( _rxDocument, UNO_QUERY ), + SERVICE_CELLRANGELISTSOURCE + ); +} + +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isListCellRangeAllowed( ) const +{ + bool bAllow( false ); - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isCellBinding( const Reference< XValueBinding >& _rxBinding ) const + Reference< XListEntrySink > xSink( m_xControlModel, UNO_QUERY ); + if ( xSink.is() ) { - return doesComponentSupport( _rxBinding.get(), SERVICE_CELLVALUEBINDING ); + bAllow = isSpreadsheetDocumentWhichSupplies( SERVICE_CELLRANGELISTSOURCE ); } - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isCellIntegerBinding( const Reference< XValueBinding >& _rxBinding ) const - { - return doesComponentSupport( _rxBinding.get(), SERVICE_LISTINDEXCELLBINDING ); - } + return bAllow; +} - //------------------------------------------------------------------------ - bool FormCellBindingHelper::isCellRangeListSource( const Reference< XListEntrySource >& _rxSource ) const - { - return doesComponentSupport( _rxSource.get(), SERVICE_CELLRANGELISTSOURCE ); - } +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isCellBindingAllowed( ) const +{ + bool bAllow( false ); - //------------------------------------------------------------------------ - bool FormCellBindingHelper::doesComponentSupport( const Reference< XInterface >& _rxComponent, const ::rtl::OUString& _rService ) const + Reference< XBindableValue > xBindable( m_xControlModel, UNO_QUERY ); + if ( xBindable.is() ) { - bool bDoes = false; - Reference< XServiceInfo > xSI( _rxComponent, UNO_QUERY ); - bDoes = xSI.is() && xSI->supportsService( _rService ); - return bDoes; + // the control can potentially be bound to an external value + // Does it live within a Calc document, and is able to supply CellBindings? + bAllow = isSpreadsheetDocumentWhichSupplies( SERVICE_CELLVALUEBINDING ); } - //------------------------------------------------------------------------ - Reference< XValueBinding > FormCellBindingHelper::getCurrentBinding( ) const - { - Reference< XValueBinding > xBinding; - Reference< XBindableValue > xBindable( m_xControlModel, UNO_QUERY ); - if ( xBindable.is() ) - xBinding = xBindable->getValueBinding(); - return xBinding; - } + return bAllow; +} - //------------------------------------------------------------------------ - Reference< XListEntrySource > FormCellBindingHelper::getCurrentListSource( ) const - { - Reference< XListEntrySource > xSource; - Reference< XListEntrySink > xSink( m_xControlModel, UNO_QUERY ); - if ( xSink.is() ) - xSource = xSink->getListEntrySource(); - return xSource; - } +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isCellBindingAllowed( const Reference< XModel >& _rxDocument ) +{ + return isSpreadsheetDocumentWhichSupplies( + Reference< XSpreadsheetDocument >( _rxDocument, UNO_QUERY ), + SERVICE_CELLVALUEBINDING + ); +} + +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isCellBinding( const Reference< XValueBinding >& _rxBinding ) const +{ + return doesComponentSupport( _rxBinding.get(), SERVICE_CELLVALUEBINDING ); +} - //------------------------------------------------------------------------ - void FormCellBindingHelper::setBinding( const Reference< XValueBinding >& _rxBinding ) - { - Reference< XBindableValue > xBindable( m_xControlModel, UNO_QUERY ); - OSL_PRECOND( xBindable.is(), "FormCellBindingHelper::setBinding: the object is not bindable!" ); - if ( xBindable.is() ) - xBindable->setValueBinding( _rxBinding ); - } +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isCellIntegerBinding( const Reference< XValueBinding >& _rxBinding ) const +{ + return doesComponentSupport( _rxBinding.get(), SERVICE_LISTINDEXCELLBINDING ); +} - //------------------------------------------------------------------------ - void FormCellBindingHelper::setListSource( const Reference< XListEntrySource >& _rxSource ) - { - Reference< XListEntrySink > xSink( m_xControlModel, UNO_QUERY ); - OSL_PRECOND( xSink.is(), "FormCellBindingHelper::setListSource: the object is no list entry sink!" ); - if ( xSink.is() ) - xSink->setListEntrySource( _rxSource ); - } +//------------------------------------------------------------------------ +bool FormCellBindingHelper::isCellRangeListSource( const Reference< XListEntrySource >& _rxSource ) const +{ + return doesComponentSupport( _rxSource.get(), SERVICE_CELLRANGELISTSOURCE ); +} - //------------------------------------------------------------------------ - Reference< XInterface > FormCellBindingHelper::createDocumentDependentInstance( const ::rtl::OUString& _rService, const ::rtl::OUString& _rArgumentName, - const Any& _rArgumentValue ) const - { - Reference< XInterface > xReturn; +//------------------------------------------------------------------------ +bool FormCellBindingHelper::doesComponentSupport( const Reference< XInterface >& _rxComponent, const ::rtl::OUString& _rService ) const +{ + bool bDoes = false; + Reference< XServiceInfo > xSI( _rxComponent, UNO_QUERY ); + bDoes = xSI.is() && xSI->supportsService( _rService ); + return bDoes; +} + +//------------------------------------------------------------------------ +Reference< XValueBinding > FormCellBindingHelper::getCurrentBinding( ) const +{ + Reference< XValueBinding > xBinding; + Reference< XBindableValue > xBindable( m_xControlModel, UNO_QUERY ); + if ( xBindable.is() ) + xBinding = xBindable->getValueBinding(); + return xBinding; +} + +//------------------------------------------------------------------------ +Reference< XListEntrySource > FormCellBindingHelper::getCurrentListSource( ) const +{ + Reference< XListEntrySource > xSource; + Reference< XListEntrySink > xSink( m_xControlModel, UNO_QUERY ); + if ( xSink.is() ) + xSource = xSink->getListEntrySource(); + return xSource; +} + +//------------------------------------------------------------------------ +void FormCellBindingHelper::setBinding( const Reference< XValueBinding >& _rxBinding ) +{ + Reference< XBindableValue > xBindable( m_xControlModel, UNO_QUERY ); + OSL_PRECOND( xBindable.is(), "FormCellBindingHelper::setBinding: the object is not bindable!" ); + if ( xBindable.is() ) + xBindable->setValueBinding( _rxBinding ); +} + +//------------------------------------------------------------------------ +void FormCellBindingHelper::setListSource( const Reference< XListEntrySource >& _rxSource ) +{ + Reference< XListEntrySink > xSink( m_xControlModel, UNO_QUERY ); + OSL_PRECOND( xSink.is(), "FormCellBindingHelper::setListSource: the object is no list entry sink!" ); + if ( xSink.is() ) + xSink->setListEntrySource( _rxSource ); +} + +//------------------------------------------------------------------------ +Reference< XInterface > FormCellBindingHelper::createDocumentDependentInstance( const ::rtl::OUString& _rService, const ::rtl::OUString& _rArgumentName, + const Any& _rArgumentValue ) const +{ + Reference< XInterface > xReturn; - Reference< XMultiServiceFactory > xDocumentFactory( m_xDocument, UNO_QUERY ); - OSL_ENSURE( xDocumentFactory.is(), "FormCellBindingHelper::createDocumentDependentInstance: no document service factory!" ); - if ( xDocumentFactory.is() ) + Reference< XMultiServiceFactory > xDocumentFactory( m_xDocument, UNO_QUERY ); + OSL_ENSURE( xDocumentFactory.is(), "FormCellBindingHelper::createDocumentDependentInstance: no document service factory!" ); + if ( xDocumentFactory.is() ) + { + try { - try + if ( _rArgumentName.getLength() ) { - if ( _rArgumentName.getLength() ) - { - NamedValue aArg; - aArg.Name = _rArgumentName; - aArg.Value = _rArgumentValue; - - Sequence< Any > aArgs( 1 ); - aArgs[ 0 ] <<= aArg; - - xReturn = xDocumentFactory->createInstanceWithArguments( _rService, aArgs ); - } - else - { - xReturn = xDocumentFactory->createInstance( _rService ); - } + NamedValue aArg; + aArg.Name = _rArgumentName; + aArg.Value = _rArgumentValue; + + Sequence< Any > aArgs( 1 ); + aArgs[ 0 ] <<= aArg; + + xReturn = xDocumentFactory->createInstanceWithArguments( _rService, aArgs ); } - catch ( const Exception& ) + else { - OSL_ENSURE( sal_False, "FormCellBindingHelper::createDocumentDependentInstance: could not create the binding at the document!" ); + xReturn = xDocumentFactory->createInstance( _rService ); } } - return xReturn; + catch ( const Exception& ) + { + OSL_ENSURE( sal_False, "FormCellBindingHelper::createDocumentDependentInstance: could not create the binding at the document!" ); + } } + return xReturn; +} - //------------------------------------------------------------------------ - bool FormCellBindingHelper::doConvertAddressRepresentations( const ::rtl::OUString& _rInputProperty, const Any& _rInputValue, - const ::rtl::OUString& _rOutputProperty, Any& _rOutputValue, bool _bIsRange ) const SAL_THROW(()) +//------------------------------------------------------------------------ +bool FormCellBindingHelper::doConvertAddressRepresentations( const ::rtl::OUString& _rInputProperty, const Any& _rInputValue, + const ::rtl::OUString& _rOutputProperty, Any& _rOutputValue, bool _bIsRange ) const SAL_THROW(()) +{ + bool bSuccess = false; + + Reference< XPropertySet > xConverter( + createDocumentDependentInstance( + _bIsRange ? SERVICE_RANGEADDRESS_CONVERSION : SERVICE_ADDRESS_CONVERSION, + ::rtl::OUString(), + Any() + ), + UNO_QUERY + ); + OSL_ENSURE( xConverter.is(), "FormCellBindingHelper::doConvertAddressRepresentations: could not get a converter service!" ); + if ( xConverter.is() ) { - bool bSuccess = false; - - Reference< XPropertySet > xConverter( - createDocumentDependentInstance( - _bIsRange ? SERVICE_RANGEADDRESS_CONVERSION : SERVICE_ADDRESS_CONVERSION, - ::rtl::OUString(), - Any() - ), - UNO_QUERY - ); - OSL_ENSURE( xConverter.is(), "FormCellBindingHelper::doConvertAddressRepresentations: could not get a converter service!" ); - if ( xConverter.is() ) + try { - try - { - xConverter->setPropertyValue( _rInputProperty, _rInputValue ); - _rOutputValue = xConverter->getPropertyValue( _rOutputProperty ); - bSuccess = true; - } - catch( const Exception& ) - { - OSL_ENSURE( sal_False, "FormCellBindingHelper::doConvertAddressRepresentations: caught an exception!" ); - } + xConverter->setPropertyValue( _rInputProperty, _rInputValue ); + _rOutputValue = xConverter->getPropertyValue( _rOutputProperty ); + bSuccess = true; + } + catch( const Exception& ) + { + OSL_ENSURE( sal_False, "FormCellBindingHelper::doConvertAddressRepresentations: caught an exception!" ); } - - return bSuccess; } + return bSuccess; +} + //............................................................................ } // namespace xmloff //............................................................................ diff --git a/xmloff/source/forms/layerexport.cxx b/xmloff/source/forms/layerexport.cxx index 29641727f5..eb8c56b610 100644 --- a/xmloff/source/forms/layerexport.cxx +++ b/xmloff/source/forms/layerexport.cxx @@ -361,7 +361,7 @@ namespace xmloff else { bKnownPage = sal_True; - if (_bClear && m_aCurrentPageIds->second.size()) + if (_bClear && !m_aCurrentPageIds->second.empty() ) m_aCurrentPageIds->second.clear(); } @@ -375,7 +375,7 @@ namespace xmloff else { bKnownPage = sal_True; - if (_bClear && m_aCurrentPageReferring->second.size()) + if (_bClear && !m_aCurrentPageReferring->second.empty() ) m_aCurrentPageReferring->second.clear(); } return bKnownPage; @@ -488,7 +488,7 @@ namespace xmloff else { // step up - while ((nChildPos >= xLoop->getCount()) && aContainerHistory.size()) + while ((nChildPos >= xLoop->getCount()) && !aContainerHistory.empty() ) { xLoop = aContainerHistory.top(); aContainerHistory.pop(); @@ -669,7 +669,7 @@ namespace xmloff // ---------------------------------- // determine the column style - if ( aPropertyStates.size() ) + if ( !aPropertyStates.empty() ) { // add to the style pool ::rtl::OUString sColumnStyleName = m_rContext.GetAutoStylePool()->Add( XML_STYLE_FAMILY_CONTROL_ID, aPropertyStates ); diff --git a/xmloff/source/forms/layerimport.cxx b/xmloff/source/forms/layerimport.cxx index bb152eb8ad..7c8a7152f7 100644 --- a/xmloff/source/forms/layerimport.cxx +++ b/xmloff/source/forms/layerimport.cxx @@ -64,6 +64,7 @@ #include "xformsimport.hxx" #include <xmloff/xmltoken.hxx> #include "xmlnmspe.hxx" +#include <rtl/logfile.hxx> #include <algorithm> SV_IMPL_REF( SvXMLStylesContext ); @@ -73,609 +74,586 @@ namespace xmloff { //......................................................................... - using namespace ::com::sun::star::uno; - using namespace ::com::sun::star::awt; - using namespace ::com::sun::star::lang; - using namespace ::com::sun::star::beans; - using namespace ::com::sun::star::container; - using namespace ::com::sun::star::drawing; - using namespace ::com::sun::star::xml; - using namespace ::com::sun::star::util; - using namespace ::com::sun::star::form; - using namespace ::com::sun::star::sdb; - - //===================================================================== - //= OFormLayerXMLImport_Impl - //===================================================================== - //--------------------------------------------------------------------- - OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl(SvXMLImport& _rImporter) - :m_rImporter(_rImporter) - ,m_pAutoStyles(NULL) - { - // build the attribute2property map - // string properties which are exported as attributes - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_NAME), PROPERTY_NAME); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_IMAGE_DATA), PROPERTY_IMAGEURL); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_LABEL), PROPERTY_LABEL); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_TARGET_LOCATION), PROPERTY_TARGETURL); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_TITLE), PROPERTY_TITLE); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_TARGET_FRAME), PROPERTY_TARGETFRAME, "_blank"); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getDatabaseAttributeName(DA_DATA_FIELD), PROPERTY_DATAFIELD); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getFormAttributeName(faCommand), PROPERTY_COMMAND); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getFormAttributeName(faDatasource), PROPERTY_DATASOURCENAME); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getFormAttributeName(faFilter), PROPERTY_FILTER); - m_aAttributeMetaData.addStringProperty( - OAttributeMetaData::getFormAttributeName(faOrder), PROPERTY_ORDER); - - // properties not added because they're already present in another form - OSL_ENSURE( - 0 == ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_TARGET_LOCATION)).compareToAscii( - OAttributeMetaData::getFormAttributeName(faAction)), - "OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl: invalid attribute names (1)!"); - // if this fails, we would have to add a translation from faAction->PROPERTY_TARGETURL - // We did not because we already have one CCA_TARGET_LOCATION->PROPERTY_TARGETURL, - // and CCA_TARGET_LOCATION and faAction should be represented by the same attribute - - OSL_ENSURE( - 0 == ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_NAME)).compareToAscii( - OAttributeMetaData::getFormAttributeName(faName)), - "OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl: invalid attribute names (2)!"); - // the same for faName, CCA_NAME and PROPERTY_NAME - - // boolean properties which are exported as attributes - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_CURRENT_SELECTED), PROPERTY_STATE, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_DISABLED), PROPERTY_ENABLED, sal_False, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_DROPDOWN), PROPERTY_DROPDOWN, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_PRINTABLE), PROPERTY_PRINTABLE, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_READONLY), PROPERTY_READONLY, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_SELECTED), PROPERTY_DEFAULT_STATE, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_TAB_STOP), PROPERTY_TABSTOP, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getDatabaseAttributeName(DA_CONVERT_EMPTY), PROPERTY_EMPTY_IS_NULL, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_VALIDATION), PROPERTY_STRICTFORMAT, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_MULTI_LINE), PROPERTY_MULTILINE, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_AUTOMATIC_COMPLETION), PROPERTY_AUTOCOMPLETE, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_MULTIPLE), PROPERTY_MULTISELECTION, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_DEFAULT_BUTTON), PROPERTY_DEFAULTBUTTON, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_IS_TRISTATE), PROPERTY_TRISTATE, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getFormAttributeName(faAllowDeletes), PROPERTY_ALLOWDELETES, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getFormAttributeName(faAllowInserts), PROPERTY_ALLOWINSERTS, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getFormAttributeName(faAllowUpdates), PROPERTY_ALLOWUPDATES, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getFormAttributeName(faApplyFilter), PROPERTY_APPLYFILTER, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getFormAttributeName(faEscapeProcessing), PROPERTY_ESCAPEPROCESSING, sal_True); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getFormAttributeName(faIgnoreResult), PROPERTY_IGNORERESULT, sal_False); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName( SCA_TOGGLE ), PROPERTY_TOGGLE, sal_False ); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getSpecialAttributeName( SCA_FOCUS_ON_CLICK ), PROPERTY_FOCUS_ON_CLICK, sal_True ); - m_aAttributeMetaData.addBooleanProperty( - OAttributeMetaData::getDatabaseAttributeName( DA_INPUT_REQUIRED ), PROPERTY_INPUT_REQUIRED, sal_False ); - - // the int16 attributes - m_aAttributeMetaData.addInt16Property( - OAttributeMetaData::getCommonControlAttributeName(CCA_MAX_LENGTH), PROPERTY_MAXTEXTLENGTH, 0); - m_aAttributeMetaData.addInt16Property( - OAttributeMetaData::getCommonControlAttributeName(CCA_SIZE), PROPERTY_LINECOUNT, 5); - m_aAttributeMetaData.addInt16Property( - OAttributeMetaData::getCommonControlAttributeName(CCA_TAB_INDEX), PROPERTY_TABINDEX, 0); - m_aAttributeMetaData.addInt16Property( - OAttributeMetaData::getDatabaseAttributeName(DA_BOUND_COLUMN), PROPERTY_BOUNDCOLUMN, 0); - - // the int32 attributes - m_aAttributeMetaData.addInt32Property( - OAttributeMetaData::getSpecialAttributeName( SCA_PAGE_STEP_SIZE ), PROPERTY_BLOCK_INCREMENT, 10 ); - - // the enum attributes - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getCommonControlAttributeName( CCA_VISUAL_EFFECT ), PROPERTY_VISUAL_EFFECT, - VisualEffect::LOOK3D, OEnumMapper::getEnumMap( OEnumMapper::epVisualEffect ), - &::getCppuType( static_cast< sal_Int16* >( NULL ) ) ); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getCommonControlAttributeName( CCA_ORIENTATION ), PROPERTY_ORIENTATION, - ScrollBarOrientation::HORIZONTAL, OEnumMapper::getEnumMap( OEnumMapper::epOrientation ), - &::getCppuType( static_cast< sal_Int32* >( NULL ) ) ); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getCommonControlAttributeName(CCA_BUTTON_TYPE), PROPERTY_BUTTONTYPE, - FormButtonType_PUSH, OEnumMapper::getEnumMap(OEnumMapper::epButtonType), - &::getCppuType( static_cast<FormButtonType*>(NULL) )); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getDatabaseAttributeName(DA_LIST_SOURCE_TYPE), PROPERTY_LISTSOURCETYPE, - ListSourceType_VALUELIST, OEnumMapper::getEnumMap(OEnumMapper::epListSourceType), - &::getCppuType( static_cast<ListSourceType*>(NULL) )); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_STATE), PROPERTY_DEFAULT_STATE, STATE_NOCHECK, - OEnumMapper::getEnumMap(OEnumMapper::epCheckState), - &::getCppuType( static_cast< sal_Int16* >(NULL))); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getSpecialAttributeName(SCA_CURRENT_STATE), PROPERTY_STATE, STATE_NOCHECK, - OEnumMapper::getEnumMap(OEnumMapper::epCheckState), - &::getCppuType( static_cast< sal_Int16* >(NULL))); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getFormAttributeName(faEnctype), PROPERTY_SUBMIT_ENCODING, - FormSubmitEncoding_URL, OEnumMapper::getEnumMap(OEnumMapper::epSubmitEncoding), - &::getCppuType( static_cast<FormSubmitEncoding*>(NULL) )); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getFormAttributeName(faMethod), PROPERTY_SUBMIT_METHOD, - FormSubmitMethod_GET, OEnumMapper::getEnumMap(OEnumMapper::epSubmitMethod), - &::getCppuType( static_cast<FormSubmitMethod*>(NULL) )); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getFormAttributeName(faCommandType), PROPERTY_COMMAND_TYPE, - CommandType::COMMAND, OEnumMapper::getEnumMap(OEnumMapper::epCommandType)); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getFormAttributeName(faNavigationMode), PROPERTY_NAVIGATION, - NavigationBarMode_NONE, OEnumMapper::getEnumMap(OEnumMapper::epNavigationType), - &::getCppuType( static_cast<NavigationBarMode*>(NULL) )); - m_aAttributeMetaData.addEnumProperty( - OAttributeMetaData::getFormAttributeName(faTabbingCycle), PROPERTY_CYCLE, - TabulatorCycle_RECORDS, OEnumMapper::getEnumMap(OEnumMapper::epTabCyle), - &::getCppuType( static_cast<TabulatorCycle*>(NULL) )); - - // initialize our style map - m_xPropertyHandlerFactory = new OControlPropertyHandlerFactory(); - ::vos::ORef< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper(getControlStylePropertyMap(), m_xPropertyHandlerFactory.getBodyPtr()); - m_xImportMapper = new SvXMLImportPropertyMapper(xStylePropertiesMapper.getBodyPtr(), _rImporter); - - // 'initialize' - m_aCurrentPageIds = m_aControlIds.end(); - } +using namespace ::com::sun::star::uno; +using namespace ::com::sun::star::awt; +using namespace ::com::sun::star::lang; +using namespace ::com::sun::star::beans; +using namespace ::com::sun::star::container; +using namespace ::com::sun::star::drawing; +using namespace ::com::sun::star::xml; +using namespace ::com::sun::star::util; +using namespace ::com::sun::star::form; +using namespace ::com::sun::star::sdb; + +//===================================================================== +//= OFormLayerXMLImport_Impl +//===================================================================== +//--------------------------------------------------------------------- +OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl(SvXMLImport& _rImporter) + :m_rImporter(_rImporter) + ,m_pAutoStyles(NULL) +{ + // build the attribute2property map + // string properties which are exported as attributes + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_NAME), PROPERTY_NAME); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_IMAGE_DATA), PROPERTY_IMAGEURL); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_LABEL), PROPERTY_LABEL); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_TARGET_LOCATION), PROPERTY_TARGETURL); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_TITLE), PROPERTY_TITLE); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_TARGET_FRAME), PROPERTY_TARGETFRAME, "_blank"); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getDatabaseAttributeName(DA_DATA_FIELD), PROPERTY_DATAFIELD); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getFormAttributeName(faCommand), PROPERTY_COMMAND); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getFormAttributeName(faDatasource), PROPERTY_DATASOURCENAME); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getFormAttributeName(faFilter), PROPERTY_FILTER); + m_aAttributeMetaData.addStringProperty( + OAttributeMetaData::getFormAttributeName(faOrder), PROPERTY_ORDER); + + // properties not added because they're already present in another form + OSL_ENSURE( + 0 == ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_TARGET_LOCATION)).compareToAscii( + OAttributeMetaData::getFormAttributeName(faAction)), + "OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl: invalid attribute names (1)!"); + // if this fails, we would have to add a translation from faAction->PROPERTY_TARGETURL + // We did not because we already have one CCA_TARGET_LOCATION->PROPERTY_TARGETURL, + // and CCA_TARGET_LOCATION and faAction should be represented by the same attribute + + OSL_ENSURE( + 0 == ::rtl::OUString::createFromAscii(OAttributeMetaData::getCommonControlAttributeName(CCA_NAME)).compareToAscii( + OAttributeMetaData::getFormAttributeName(faName)), + "OFormLayerXMLImport_Impl::OFormLayerXMLImport_Impl: invalid attribute names (2)!"); + // the same for faName, CCA_NAME and PROPERTY_NAME + + // boolean properties which are exported as attributes + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_CURRENT_SELECTED), PROPERTY_STATE, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_DISABLED), PROPERTY_ENABLED, sal_False, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_DROPDOWN), PROPERTY_DROPDOWN, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_PRINTABLE), PROPERTY_PRINTABLE, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_READONLY), PROPERTY_READONLY, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_SELECTED), PROPERTY_DEFAULT_STATE, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_TAB_STOP), PROPERTY_TABSTOP, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getDatabaseAttributeName(DA_CONVERT_EMPTY), PROPERTY_EMPTY_IS_NULL, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_VALIDATION), PROPERTY_STRICTFORMAT, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_MULTI_LINE), PROPERTY_MULTILINE, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_AUTOMATIC_COMPLETION), PROPERTY_AUTOCOMPLETE, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_MULTIPLE), PROPERTY_MULTISELECTION, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_DEFAULT_BUTTON), PROPERTY_DEFAULTBUTTON, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_IS_TRISTATE), PROPERTY_TRISTATE, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getFormAttributeName(faAllowDeletes), PROPERTY_ALLOWDELETES, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getFormAttributeName(faAllowInserts), PROPERTY_ALLOWINSERTS, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getFormAttributeName(faAllowUpdates), PROPERTY_ALLOWUPDATES, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getFormAttributeName(faApplyFilter), PROPERTY_APPLYFILTER, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getFormAttributeName(faEscapeProcessing), PROPERTY_ESCAPEPROCESSING, sal_True); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getFormAttributeName(faIgnoreResult), PROPERTY_IGNORERESULT, sal_False); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName( SCA_TOGGLE ), PROPERTY_TOGGLE, sal_False ); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getSpecialAttributeName( SCA_FOCUS_ON_CLICK ), PROPERTY_FOCUS_ON_CLICK, sal_True ); + m_aAttributeMetaData.addBooleanProperty( + OAttributeMetaData::getDatabaseAttributeName( DA_INPUT_REQUIRED ), PROPERTY_INPUT_REQUIRED, sal_False ); + + // the int16 attributes + m_aAttributeMetaData.addInt16Property( + OAttributeMetaData::getCommonControlAttributeName(CCA_MAX_LENGTH), PROPERTY_MAXTEXTLENGTH, 0); + m_aAttributeMetaData.addInt16Property( + OAttributeMetaData::getCommonControlAttributeName(CCA_SIZE), PROPERTY_LINECOUNT, 5); + m_aAttributeMetaData.addInt16Property( + OAttributeMetaData::getCommonControlAttributeName(CCA_TAB_INDEX), PROPERTY_TABINDEX, 0); + m_aAttributeMetaData.addInt16Property( + OAttributeMetaData::getDatabaseAttributeName(DA_BOUND_COLUMN), PROPERTY_BOUNDCOLUMN, 0); + + // the int32 attributes + m_aAttributeMetaData.addInt32Property( + OAttributeMetaData::getSpecialAttributeName( SCA_PAGE_STEP_SIZE ), PROPERTY_BLOCK_INCREMENT, 10 ); + + // the enum attributes + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getCommonControlAttributeName( CCA_VISUAL_EFFECT ), PROPERTY_VISUAL_EFFECT, + VisualEffect::LOOK3D, OEnumMapper::getEnumMap( OEnumMapper::epVisualEffect ), + &::getCppuType( static_cast< sal_Int16* >( NULL ) ) ); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getCommonControlAttributeName( CCA_ORIENTATION ), PROPERTY_ORIENTATION, + ScrollBarOrientation::HORIZONTAL, OEnumMapper::getEnumMap( OEnumMapper::epOrientation ), + &::getCppuType( static_cast< sal_Int32* >( NULL ) ) ); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getCommonControlAttributeName(CCA_BUTTON_TYPE), PROPERTY_BUTTONTYPE, + FormButtonType_PUSH, OEnumMapper::getEnumMap(OEnumMapper::epButtonType), + &::getCppuType( static_cast<FormButtonType*>(NULL) )); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getDatabaseAttributeName(DA_LIST_SOURCE_TYPE), PROPERTY_LISTSOURCETYPE, + ListSourceType_VALUELIST, OEnumMapper::getEnumMap(OEnumMapper::epListSourceType), + &::getCppuType( static_cast<ListSourceType*>(NULL) )); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_STATE), PROPERTY_DEFAULT_STATE, STATE_NOCHECK, + OEnumMapper::getEnumMap(OEnumMapper::epCheckState), + &::getCppuType( static_cast< sal_Int16* >(NULL))); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getSpecialAttributeName(SCA_CURRENT_STATE), PROPERTY_STATE, STATE_NOCHECK, + OEnumMapper::getEnumMap(OEnumMapper::epCheckState), + &::getCppuType( static_cast< sal_Int16* >(NULL))); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getFormAttributeName(faEnctype), PROPERTY_SUBMIT_ENCODING, + FormSubmitEncoding_URL, OEnumMapper::getEnumMap(OEnumMapper::epSubmitEncoding), + &::getCppuType( static_cast<FormSubmitEncoding*>(NULL) )); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getFormAttributeName(faMethod), PROPERTY_SUBMIT_METHOD, + FormSubmitMethod_GET, OEnumMapper::getEnumMap(OEnumMapper::epSubmitMethod), + &::getCppuType( static_cast<FormSubmitMethod*>(NULL) )); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getFormAttributeName(faCommandType), PROPERTY_COMMAND_TYPE, + CommandType::COMMAND, OEnumMapper::getEnumMap(OEnumMapper::epCommandType)); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getFormAttributeName(faNavigationMode), PROPERTY_NAVIGATION, + NavigationBarMode_NONE, OEnumMapper::getEnumMap(OEnumMapper::epNavigationType), + &::getCppuType( static_cast<NavigationBarMode*>(NULL) )); + m_aAttributeMetaData.addEnumProperty( + OAttributeMetaData::getFormAttributeName(faTabbingCycle), PROPERTY_CYCLE, + TabulatorCycle_RECORDS, OEnumMapper::getEnumMap(OEnumMapper::epTabCyle), + &::getCppuType( static_cast<TabulatorCycle*>(NULL) )); + + // initialize our style map + m_xPropertyHandlerFactory = new OControlPropertyHandlerFactory(); + ::vos::ORef< XMLPropertySetMapper > xStylePropertiesMapper = new XMLPropertySetMapper(getControlStylePropertyMap(), m_xPropertyHandlerFactory.getBodyPtr()); + m_xImportMapper = new SvXMLImportPropertyMapper(xStylePropertiesMapper.getBodyPtr(), _rImporter); + + // 'initialize' + m_aCurrentPageIds = m_aControlIds.end(); +} + +//--------------------------------------------------------------------- +OFormLayerXMLImport_Impl::~OFormLayerXMLImport_Impl() +{ + // outlined to allow forward declaration of OAttribute2Property in the header - //--------------------------------------------------------------------- - OFormLayerXMLImport_Impl::~OFormLayerXMLImport_Impl() - { - // outlined to allow forward declaration of OAttribute2Property in the header + if (m_pAutoStyles) + m_pAutoStyles->ReleaseRef(); +} - if (m_pAutoStyles) - m_pAutoStyles->ReleaseRef(); - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::setAutoStyleContext(SvXMLStylesContext* _pNewContext) +{ + OSL_ENSURE(!m_pAutoStyles, "OFormLayerXMLImport_Impl::setAutoStyleContext: not to be called twice!"); + m_pAutoStyles = _pNewContext; + if (m_pAutoStyles) + m_pAutoStyles->AddRef(); +} + +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::applyControlNumberStyle(const Reference< XPropertySet >& _rxControlModel, const ::rtl::OUString& _rControlNumerStyleName) +{ + OSL_ENSURE(_rxControlModel.is() && (0 != _rControlNumerStyleName.getLength()), + "OFormLayerXMLImport_Impl::applyControlNumberStyle: invalid arguments (this will crash)!"); - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::setAutoStyleContext(SvXMLStylesContext* _pNewContext) + OSL_ENSURE(m_pAutoStyles, "OFormLayerXMLImport_Impl::applyControlNumberStyle: have no auto style context!"); + if (!m_pAutoStyles) { - OSL_ENSURE(!m_pAutoStyles, "OFormLayerXMLImport_Impl::setAutoStyleContext: not to be called twice!"); - m_pAutoStyles = _pNewContext; + m_pAutoStyles = m_rImporter.GetShapeImport()->GetAutoStylesContext(); if (m_pAutoStyles) m_pAutoStyles->AddRef(); } - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::applyControlNumberStyle(const Reference< XPropertySet >& _rxControlModel, const ::rtl::OUString& _rControlNumerStyleName) + if (m_pAutoStyles) { - OSL_ENSURE(_rxControlModel.is() && (0 != _rControlNumerStyleName.getLength()), - "OFormLayerXMLImport_Impl::applyControlNumberStyle: invalid arguments (this will crash)!"); - - OSL_ENSURE(m_pAutoStyles, "OFormLayerXMLImport_Impl::applyControlNumberStyle: have no auto style context!"); - if (!m_pAutoStyles) + const SvXMLStyleContext* pStyle = m_pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_DATA_STYLE, _rControlNumerStyleName); + if (pStyle) { - m_pAutoStyles = m_rImporter.GetShapeImport()->GetAutoStylesContext(); - if (m_pAutoStyles) - m_pAutoStyles->AddRef(); - } + const SvXMLNumFormatContext* pDataStyle = static_cast<const SvXMLNumFormatContext*>(pStyle); - if (m_pAutoStyles) - { - const SvXMLStyleContext* pStyle = m_pAutoStyles->FindStyleChildContext(XML_STYLE_FAMILY_DATA_STYLE, _rControlNumerStyleName); - if (pStyle) + // set this format at the control model + try { - const SvXMLNumFormatContext* pDataStyle = static_cast<const SvXMLNumFormatContext*>(pStyle); - - // set this format at the control model - try + // the models number format supplier and formats + Reference< XNumberFormatsSupplier > xFormatsSupplier; + _rxControlModel->getPropertyValue(PROPERTY_FORMATSSUPPLIER) >>= xFormatsSupplier; + Reference< XNumberFormats > xFormats; + if (xFormatsSupplier.is()) + xFormats = xFormatsSupplier->getNumberFormats(); + OSL_ENSURE(xFormats.is(), "OFormLayerXMLImport_Impl::applyControlNumberStyle: could not obtain the controls number formats!"); + + // obtain a key + if (xFormats.is()) { - // the models number format supplier and formats - Reference< XNumberFormatsSupplier > xFormatsSupplier; - _rxControlModel->getPropertyValue(PROPERTY_FORMATSSUPPLIER) >>= xFormatsSupplier; - Reference< XNumberFormats > xFormats; - if (xFormatsSupplier.is()) - xFormats = xFormatsSupplier->getNumberFormats(); - OSL_ENSURE(xFormats.is(), "OFormLayerXMLImport_Impl::applyControlNumberStyle: could not obtain the controls number formats!"); - - // obtain a key - if (xFormats.is()) - { - sal_Int32 nFormatKey = const_cast<SvXMLNumFormatContext*>(pDataStyle)->CreateAndInsert( xFormatsSupplier ); - OSL_ENSURE(-1 != nFormatKey, "OFormLayerXMLImport_Impl::applyControlNumberStyle: could not obtain a format key!"); + sal_Int32 nFormatKey = const_cast<SvXMLNumFormatContext*>(pDataStyle)->CreateAndInsert( xFormatsSupplier ); + OSL_ENSURE(-1 != nFormatKey, "OFormLayerXMLImport_Impl::applyControlNumberStyle: could not obtain a format key!"); - // set the format on the control model - _rxControlModel->setPropertyValue(PROPERTY_FORMATKEY, makeAny(nFormatKey)); - } - } - catch(const Exception&) - { - OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::applyControlNumberStyle: couldn't set the format!"); + // set the format on the control model + _rxControlModel->setPropertyValue(PROPERTY_FORMATKEY, makeAny(nFormatKey)); } } - else - OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::applyControlNumberStyle: did not find the style with the given name!"); + catch(const Exception&) + { + OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::applyControlNumberStyle: couldn't set the format!"); + } } + else + OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::applyControlNumberStyle: did not find the style with the given name!"); } +} - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerCellValueBinding( const Reference< XPropertySet >& _rxControlModel, const ::rtl::OUString& _rCellAddress ) - { - OSL_ENSURE( _rxControlModel.is() && _rCellAddress.getLength(), - "OFormLayerXMLImport_Impl::registerCellValueBinding: invalid arguments!" ); - m_aCellValueBindings.push_back( ModelStringPair( _rxControlModel, _rCellAddress ) ); - } - - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerXFormsValueBinding( - const Reference< XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rBindingID ) - { - // TODO: is an empty binding name allowed? - OSL_ENSURE( _rxControlModel.is(), "need model" ); - - m_aXFormsValueBindings.push_back( - ModelStringPair( _rxControlModel, _rBindingID ) ); - } - - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerXFormsListBinding( - const Reference< XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rBindingID ) - { - // TODO: is an empty binding name allowed? - OSL_ENSURE( _rxControlModel.is(), "need model" ); - - m_aXFormsListBindings.push_back( - ModelStringPair( _rxControlModel, _rBindingID ) ); - } - - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerXFormsSubmission( - const Reference< XPropertySet >& _rxControlModel, - const ::rtl::OUString& _rSubmissionID ) - { - // TODO: is an empty binding name allowed? - OSL_ENSURE( _rxControlModel.is(), "need model" ); - - m_aXFormsSubmissions.push_back( - ModelStringPair( _rxControlModel, _rSubmissionID ) ); - } - - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerCellRangeListSource( const Reference< XPropertySet >& _rxControlModel, const ::rtl::OUString& _rCellRangeAddress ) - { - OSL_ENSURE( _rxControlModel.is() && _rCellRangeAddress.getLength(), - "OFormLayerXMLImport_Impl::registerCellRangeListSource: invalid arguments!" ); - m_aCellRangeListSources.push_back( ModelStringPair( _rxControlModel, _rCellRangeAddress ) ); - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerCellValueBinding( const Reference< XPropertySet >& _rxControlModel, const ::rtl::OUString& _rCellAddress ) +{ + OSL_ENSURE( _rxControlModel.is() && _rCellAddress.getLength(), + "OFormLayerXMLImport_Impl::registerCellValueBinding: invalid arguments!" ); + m_aCellValueBindings.push_back( ModelStringPair( _rxControlModel, _rCellAddress ) ); +} + +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerXFormsValueBinding( + const Reference< XPropertySet >& _rxControlModel, + const ::rtl::OUString& _rBindingID ) +{ + // TODO: is an empty binding name allowed? + OSL_ENSURE( _rxControlModel.is(), "need model" ); - //--------------------------------------------------------------------- - IControlIdMap& OFormLayerXMLImport_Impl::getControlIdMap() - { - return *this; - } + m_aXFormsValueBindings.push_back( + ModelStringPair( _rxControlModel, _rBindingID ) ); +} - //--------------------------------------------------------------------- - OAttribute2Property& OFormLayerXMLImport_Impl::getAttributeMap() - { - return m_aAttributeMetaData; - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerXFormsListBinding( + const Reference< XPropertySet >& _rxControlModel, + const ::rtl::OUString& _rBindingID ) +{ + // TODO: is an empty binding name allowed? + OSL_ENSURE( _rxControlModel.is(), "need model" ); - //--------------------------------------------------------------------- - Reference< XMultiServiceFactory > OFormLayerXMLImport_Impl::getServiceFactory() - { - // #110680# - // return ::comphelper::getProcessServiceFactory(); - return m_rImporter.getServiceFactory(); - } + m_aXFormsListBindings.push_back( + ModelStringPair( _rxControlModel, _rBindingID ) ); +} - //--------------------------------------------------------------------- - SvXMLImport& OFormLayerXMLImport_Impl::getGlobalContext() - { - return m_rImporter; - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerXFormsSubmission( + const Reference< XPropertySet >& _rxControlModel, + const ::rtl::OUString& _rSubmissionID ) +{ + // TODO: is an empty binding name allowed? + OSL_ENSURE( _rxControlModel.is(), "need model" ); - //--------------------------------------------------------------------- - const SvXMLStyleContext* OFormLayerXMLImport_Impl::getStyleElement(const ::rtl::OUString& _rStyleName) const - { - OSL_ENSURE( m_pAutoStyles, "OFormLayerXMLImport_Impl::getStyleElement: have no auto style context!" ); - // did you use setAutoStyleContext? - - const SvXMLStyleContext* pControlStyle = - m_pAutoStyles ? m_pAutoStyles->FindStyleChildContext( XML_STYLE_FAMILY_TEXT_PARAGRAPH, _rStyleName ) : NULL; - OSL_ENSURE( pControlStyle || !m_pAutoStyles, - ::rtl::OString( "OFormLayerXMLImport_Impl::getStyleElement: did not find the style named \"" ) - += ::rtl::OString( _rStyleName.getStr(), _rStyleName.getLength(), RTL_TEXTENCODING_ASCII_US ) - += ::rtl::OString( "\"!" ) ); - return pControlStyle; - } + m_aXFormsSubmissions.push_back( + ModelStringPair( _rxControlModel, _rSubmissionID ) ); +} - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::enterEventContext() - { - // install our own translation table. We need to disable the other tables because of name conflicts. - m_rImporter.GetEventImport().PushTranslationTable(); - m_rImporter.GetEventImport().AddTranslationTable(g_pFormsEventTranslation); - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerCellRangeListSource( const Reference< XPropertySet >& _rxControlModel, const ::rtl::OUString& _rCellRangeAddress ) +{ + OSL_ENSURE( _rxControlModel.is() && _rCellRangeAddress.getLength(), + "OFormLayerXMLImport_Impl::registerCellRangeListSource: invalid arguments!" ); + m_aCellRangeListSources.push_back( ModelStringPair( _rxControlModel, _rCellRangeAddress ) ); +} +//--------------------------------------------------------------------- +const SvXMLStyleContext* OFormLayerXMLImport_Impl::getStyleElement(const ::rtl::OUString& _rStyleName) const +{ + OSL_ENSURE( m_pAutoStyles, "OFormLayerXMLImport_Impl::getStyleElement: have no auto style context!" ); + // did you use setAutoStyleContext? + + const SvXMLStyleContext* pControlStyle = + m_pAutoStyles ? m_pAutoStyles->FindStyleChildContext( XML_STYLE_FAMILY_TEXT_PARAGRAPH, _rStyleName ) : NULL; + OSL_ENSURE( pControlStyle || !m_pAutoStyles, + ::rtl::OString( "OFormLayerXMLImport_Impl::getStyleElement: did not find the style named \"" ) + += ::rtl::OString( _rStyleName.getStr(), _rStyleName.getLength(), RTL_TEXTENCODING_ASCII_US ) + += ::rtl::OString( "\"!" ) ); + return pControlStyle; +} + +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::enterEventContext() +{ + // install our own translation table. We need to disable the other tables because of name conflicts. + m_rImporter.GetEventImport().PushTranslationTable(); + m_rImporter.GetEventImport().AddTranslationTable(g_pFormsEventTranslation); +} - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::leaveEventContext() - { - // install the original event tables. - m_rImporter.GetEventImport().PopTranslationTable(); - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::leaveEventContext() +{ + // install the original event tables. + m_rImporter.GetEventImport().PopTranslationTable(); +} - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerControlId(const Reference< XPropertySet >& _rxControl, const ::rtl::OUString& _rId) - { - OSL_ENSURE(m_aCurrentPageIds != m_aControlIds.end(), "OFormLayerXMLImport_Impl::registerControlId: no current page!"); - OSL_ENSURE(_rId.getLength(), "OFormLayerXMLImport_Impl::registerControlId: invalid (empty) control id!"); +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerControlId(const Reference< XPropertySet >& _rxControl, const ::rtl::OUString& _rId) +{ + OSL_ENSURE(m_aCurrentPageIds != m_aControlIds.end(), "OFormLayerXMLImport_Impl::registerControlId: no current page!"); + OSL_ENSURE(_rId.getLength(), "OFormLayerXMLImport_Impl::registerControlId: invalid (empty) control id!"); - OSL_ENSURE(m_aCurrentPageIds->second.end() == m_aCurrentPageIds->second.find(_rId), "OFormLayerXMLImport_Impl::registerControlId: control id already used!"); - m_aCurrentPageIds->second[_rId] = _rxControl; - } + OSL_ENSURE(m_aCurrentPageIds->second.end() == m_aCurrentPageIds->second.find(_rId), "OFormLayerXMLImport_Impl::registerControlId: control id already used!"); + m_aCurrentPageIds->second[_rId] = _rxControl; +} - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::registerControlReferences(const Reference< XPropertySet >& _rxControl, const ::rtl::OUString& _rReferringControls) - { - OSL_ENSURE(_rReferringControls.getLength(), "OFormLayerXMLImport_Impl::registerControlReferences: invalid (empty) control id list!"); - OSL_ENSURE(_rxControl.is(), "OFormLayerXMLImport_Impl::registerControlReferences: invalid (NULL) control!"); - m_aControlReferences.push_back( ModelStringPair( _rxControl, _rReferringControls ) ); - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::registerControlReferences(const Reference< XPropertySet >& _rxControl, const ::rtl::OUString& _rReferringControls) +{ + OSL_ENSURE(_rReferringControls.getLength(), "OFormLayerXMLImport_Impl::registerControlReferences: invalid (empty) control id list!"); + OSL_ENSURE(_rxControl.is(), "OFormLayerXMLImport_Impl::registerControlReferences: invalid (NULL) control!"); + m_aControlReferences.push_back( ModelStringPair( _rxControl, _rReferringControls ) ); +} - //--------------------------------------------------------------------- - ::vos::ORef< SvXMLImportPropertyMapper > OFormLayerXMLImport_Impl::getStylePropertyMapper() const - { - return m_xImportMapper; - } +//--------------------------------------------------------------------- +::vos::ORef< SvXMLImportPropertyMapper > OFormLayerXMLImport_Impl::getStylePropertyMapper() const +{ + return m_xImportMapper; +} - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::startPage(const Reference< XDrawPage >& _rxDrawPage) - { - m_xCurrentPageFormsSupp.clear(); - - OSL_ENSURE(_rxDrawPage.is(), "OFormLayerXMLImport_Impl::startPage: NULL page!"); - m_xCurrentPageFormsSupp = m_xCurrentPageFormsSupp.query( _rxDrawPage ); - OSL_ENSURE( m_xCurrentPageFormsSupp.is(), "OFormLayerXMLImport_Impl::startPage: invalid draw page (no XFormsSupplier)!" ); - if ( !m_xCurrentPageFormsSupp.is() ) - return; - - // add a new entry to our page map - ::std::pair< MapDrawPage2MapIterator, bool > aPagePosition; - aPagePosition = - m_aControlIds.insert(MapDrawPage2Map::value_type(_rxDrawPage, MapString2PropertySet())); - OSL_ENSURE(aPagePosition.second, "OFormLayerXMLImport_Impl::startPage: already imported this page!"); - m_aCurrentPageIds = aPagePosition.first; - } +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::startPage(const Reference< XDrawPage >& _rxDrawPage) +{ + m_xCurrentPageFormsSupp.clear(); + + OSL_ENSURE(_rxDrawPage.is(), "OFormLayerXMLImport_Impl::startPage: NULL page!"); + m_xCurrentPageFormsSupp = m_xCurrentPageFormsSupp.query( _rxDrawPage ); + OSL_ENSURE( m_xCurrentPageFormsSupp.is(), "OFormLayerXMLImport_Impl::startPage: invalid draw page (no XFormsSupplier)!" ); + if ( !m_xCurrentPageFormsSupp.is() ) + return; + + // add a new entry to our page map + ::std::pair< MapDrawPage2MapIterator, bool > aPagePosition; + aPagePosition = + m_aControlIds.insert(MapDrawPage2Map::value_type(_rxDrawPage, MapString2PropertySet())); + OSL_ENSURE(aPagePosition.second, "OFormLayerXMLImport_Impl::startPage: already imported this page!"); + m_aCurrentPageIds = aPagePosition.first; +} + +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::endPage() +{ + OSL_ENSURE( m_xCurrentPageFormsSupp.is(), "OFormLayerXMLImport_Impl::endPage: sure you called startPage before?" ); - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::endPage() + // do some knittings for the controls which are referring to each other + try { - OSL_ENSURE( m_xCurrentPageFormsSupp.is(), "OFormLayerXMLImport_Impl::endPage: sure you called startPage before?" ); - - // do some knittings for the controls which are referring to each other - try + static const sal_Unicode s_nSeparator = ','; + ::rtl::OUString sReferring; + ::rtl::OUString sCurrentReferring; + ::rtl::OUString sSeparator(&s_nSeparator, 1); + Reference< XPropertySet > xCurrentReferring; + sal_Int32 nSeparator, nPrevSep; + ::std::vector< ModelStringPair >::const_iterator aEnd = m_aControlReferences.end(); + for ( ::std::vector< ModelStringPair >::const_iterator aReferences = m_aControlReferences.begin(); + aReferences != aEnd; + ++aReferences + ) { - static const sal_Unicode s_nSeparator = ','; - ::rtl::OUString sReferring; - ::rtl::OUString sCurrentReferring; - ::rtl::OUString sSeparator(&s_nSeparator, 1); - Reference< XPropertySet > xCurrentReferring; - sal_Int32 nSeparator, nPrevSep; - for ( ::std::vector< ModelStringPair >::const_iterator aReferences = m_aControlReferences.begin(); - aReferences != m_aControlReferences.end(); - ++aReferences - ) - { - // the list of control ids is comma separated + // the list of control ids is comma separated - // in a list of n ids there are only n-1 separators ... have to catch this last id - // -> normalize the list - sReferring = aReferences->second; - sReferring += sSeparator; + // in a list of n ids there are only n-1 separators ... have to catch this last id + // -> normalize the list + sReferring = aReferences->second; + sReferring += sSeparator; - nPrevSep = -1; - while (-1 != (nSeparator = sReferring.indexOf(s_nSeparator, nPrevSep + 1))) - { - sCurrentReferring = sReferring.copy(nPrevSep + 1, nSeparator - nPrevSep - 1); - xCurrentReferring = lookupControlId(sCurrentReferring); - if (xCurrentReferring.is()) - // if this condition fails, this is an error, but lookupControlId should have asserted this ... - xCurrentReferring->setPropertyValue( PROPERTY_CONTROLLABEL, makeAny( aReferences->first ) ); + nPrevSep = -1; + while (-1 != (nSeparator = sReferring.indexOf(s_nSeparator, nPrevSep + 1))) + { + sCurrentReferring = sReferring.copy(nPrevSep + 1, nSeparator - nPrevSep - 1); + xCurrentReferring = lookupControlId(sCurrentReferring); + if (xCurrentReferring.is()) + // if this condition fails, this is an error, but lookupControlId should have asserted this ... + xCurrentReferring->setPropertyValue( PROPERTY_CONTROLLABEL, makeAny( aReferences->first ) ); - nPrevSep = nSeparator; - } + nPrevSep = nSeparator; } } - catch(Exception&) - { - OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::endPage: unable to knit the control references (caught an exception)!"); - } + } + catch(Exception&) + { + OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::endPage: unable to knit the control references (caught an exception)!"); + } - // now that we have all children of the forms collection, attach the events - Reference< XIndexAccess > xIndexContainer; - if ( m_xCurrentPageFormsSupp.is() && m_xCurrentPageFormsSupp->hasForms() ) - xIndexContainer = xIndexContainer.query( m_xCurrentPageFormsSupp->getForms() ); - if ( xIndexContainer.is() ) - ODefaultEventAttacherManager::setEvents( xIndexContainer ); + // now that we have all children of the forms collection, attach the events + Reference< XIndexAccess > xIndexContainer; + if ( m_xCurrentPageFormsSupp.is() && m_xCurrentPageFormsSupp->hasForms() ) + xIndexContainer = xIndexContainer.query( m_xCurrentPageFormsSupp->getForms() ); + if ( xIndexContainer.is() ) + ODefaultEventAttacherManager::setEvents( xIndexContainer ); - // clear the structures for the control references. - m_aControlReferences.clear(); + // clear the structures for the control references. + m_aControlReferences.clear(); - // and no we have no current page anymore - m_aCurrentPageIds = m_aControlIds.end(); - } + // and no we have no current page anymore + m_aCurrentPageIds = m_aControlIds.end(); +} - //--------------------------------------------------------------------- - Reference< XPropertySet > OFormLayerXMLImport_Impl::lookupControlId(const ::rtl::OUString& _rControlId) +//--------------------------------------------------------------------- +Reference< XPropertySet > OFormLayerXMLImport_Impl::lookupControlId(const ::rtl::OUString& _rControlId) +{ + OSL_ENSURE(m_aCurrentPageIds != m_aControlIds.end(), "OFormLayerXMLImport_Impl::lookupControlId: no current page!"); + Reference< XPropertySet > xReturn; + if (m_aCurrentPageIds != m_aControlIds.end()) { - OSL_ENSURE(m_aCurrentPageIds != m_aControlIds.end(), "OFormLayerXMLImport_Impl::lookupControlId: no current page!"); - Reference< XPropertySet > xReturn; - if (m_aCurrentPageIds != m_aControlIds.end()) - { - ConstMapString2PropertySetIterator aPos = m_aCurrentPageIds->second.find(_rControlId); - if (m_aCurrentPageIds->second.end() != aPos) - xReturn = aPos->second; - else - OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::lookupControlId: invalid control id (did not find it)!"); - } - return xReturn; + ConstMapString2PropertySetIterator aPos = m_aCurrentPageIds->second.find(_rControlId); + if (m_aCurrentPageIds->second.end() != aPos) + xReturn = aPos->second; + else + OSL_ENSURE(sal_False, "OFormLayerXMLImport_Impl::lookupControlId: invalid control id (did not find it)!"); } + return xReturn; +} + +//--------------------------------------------------------------------- +SvXMLImportContext* OFormLayerXMLImport_Impl::createOfficeFormsContext( + SvXMLImport& _rImport, + sal_uInt16 _nPrefix, + const rtl::OUString& _rLocalName) +{ + return new OFormsRootImport( _rImport, _nPrefix, _rLocalName ); +} - //--------------------------------------------------------------------- - SvXMLImportContext* OFormLayerXMLImport_Impl::createOfficeFormsContext( - SvXMLImport& _rImport, - sal_uInt16 _nPrefix, - const rtl::OUString& _rLocalName) +//--------------------------------------------------------------------- +SvXMLImportContext* OFormLayerXMLImport_Impl::createContext(const sal_uInt16 _nPrefix, const rtl::OUString& _rLocalName, + const Reference< sax::XAttributeList >&) +{ + SvXMLImportContext* pContext = NULL; + if ( 0 == _rLocalName.compareToAscii( "form" ) ) { - return new OFormsRootImport( _rImport, _nPrefix, _rLocalName ); + if ( m_xCurrentPageFormsSupp.is() ) + pContext = new OFormImport(*this, *this, _nPrefix, _rLocalName, m_xCurrentPageFormsSupp->getForms() ); } - - //--------------------------------------------------------------------- - SvXMLImportContext* OFormLayerXMLImport_Impl::createContext(const sal_uInt16 _nPrefix, const rtl::OUString& _rLocalName, - const Reference< sax::XAttributeList >&) + else if ( ( _nPrefix == XML_NAMESPACE_XFORMS + && ( xmloff::token::IsXMLToken( _rLocalName, xmloff::token::XML_MODEL ) ) ) + ) { - SvXMLImportContext* pContext = NULL; - if ( 0 == _rLocalName.compareToAscii( "form" ) ) - { - if ( m_xCurrentPageFormsSupp.is() ) - pContext = new OFormImport(*this, *this, _nPrefix, _rLocalName, m_xCurrentPageFormsSupp->getForms() ); - } - else if ( ( _nPrefix == XML_NAMESPACE_XFORMS - && ( xmloff::token::IsXMLToken( _rLocalName, xmloff::token::XML_MODEL ) ) ) - ) - { - pContext = createXFormsModelContext( m_rImporter, _nPrefix, _rLocalName ); - } - - if ( !pContext ) - { - OSL_ENSURE( false, "unknown element" ); - pContext = - new SvXMLImportContext(m_rImporter, _nPrefix, _rLocalName); - } - - return pContext; + pContext = createXFormsModelContext( m_rImporter, _nPrefix, _rLocalName ); } - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::seekPage(const Reference< XDrawPage >& _rxDrawPage) + if ( !pContext ) { - OSL_ENSURE(m_aCurrentPageIds == m_aControlIds.end(), "OFormLayerXMLImport_Impl::seekPage: importing another page currently! This will smash your import!"); - m_aCurrentPageIds = m_aControlIds.find(_rxDrawPage); - OSL_ENSURE(m_aCurrentPageIds != m_aControlIds.end(), "OFormLayerXMLImport_Impl::seekPage: did not find the given page (perhaps it has not been imported, yet?)!"); + OSL_ENSURE( false, "unknown element" ); + pContext = + new SvXMLImportContext(m_rImporter, _nPrefix, _rLocalName); } - //--------------------------------------------------------------------- - void OFormLayerXMLImport_Impl::documentDone( ) - { - if ( ( getGlobalContext().getImportFlags() & IMPORT_CONTENT ) == 0 ) - return; + return pContext; +} + +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::seekPage(const Reference< XDrawPage >& _rxDrawPage) +{ + OSL_ENSURE(m_aCurrentPageIds == m_aControlIds.end(), "OFormLayerXMLImport_Impl::seekPage: importing another page currently! This will smash your import!"); + m_aCurrentPageIds = m_aControlIds.find(_rxDrawPage); + OSL_ENSURE(m_aCurrentPageIds != m_aControlIds.end(), "OFormLayerXMLImport_Impl::seekPage: did not find the given page (perhaps it has not been imported, yet?)!"); +} - // create (and bind) the spreadsheet cell bindings - if ( !m_aCellValueBindings.empty() - && FormCellBindingHelper::isCellBindingAllowed( getGlobalContext().GetModel() ) +//--------------------------------------------------------------------- +void OFormLayerXMLImport_Impl::documentDone( ) +{ + SvXMLImport& rImport = getGlobalContext(); + if ( ( rImport.getImportFlags() & IMPORT_CONTENT ) == 0 ) + return; + + // create (and bind) the spreadsheet cell bindings + if ( !m_aCellValueBindings.empty() + && FormCellBindingHelper::isCellBindingAllowed( rImport.GetModel() ) + ) + { + static ::rtl::OUString s_sIndex( RTL_CONSTASCII_USTRINGPARAM( ":index" ) ); + ::std::vector< ModelStringPair >::const_iterator aEnd = m_aCellValueBindings.end(); + for ( ::std::vector< ModelStringPair >::const_iterator aCellBindings = m_aCellValueBindings.begin(); + aCellBindings != aEnd; + ++aCellBindings ) { - for ( ::std::vector< ModelStringPair >::const_iterator aCellBindings = m_aCellValueBindings.begin(); - aCellBindings != m_aCellValueBindings.end(); - ++aCellBindings - ) + try { - try + FormCellBindingHelper aHelper( aCellBindings->first, rImport.GetModel() ); + OSL_ENSURE( aHelper.isCellBindingAllowed(), "OFormLayerXMLImport_Impl::documentDone: can't bind this control model!" ); + if ( aHelper.isCellBindingAllowed() ) { - FormCellBindingHelper aHelper( aCellBindings->first, getGlobalContext().GetModel() ); - OSL_ENSURE( aHelper.isCellBindingAllowed(), "OFormLayerXMLImport_Impl::documentDone: can't bind this control model!" ); - if ( aHelper.isCellBindingAllowed() ) + // There are special bindings for listboxes. See + // OListAndComboImport::doRegisterCellValueBinding for a comment on this HACK. + ::rtl::OUString sBoundCellAddress( aCellBindings->second ); + sal_Int32 nIndicator = sBoundCellAddress.lastIndexOf( s_sIndex ); + + bool bUseIndexBinding = false; + if ( nIndicator != -1 ) { - // There are special bindings for listboxes. See - // OListAndComboImport::doRegisterCellValueBinding for a comment on this HACK. - ::rtl::OUString sBoundCellAddress( aCellBindings->second ); - sal_Int32 nIndicator = sBoundCellAddress.lastIndexOf( ::rtl::OUString( RTL_CONSTASCII_USTRINGPARAM( ":index" ) ) ); - - bool bUseIndexBinding = false; - if ( nIndicator != -1 ) - { - sBoundCellAddress = sBoundCellAddress.copy( 0, nIndicator ); - bUseIndexBinding = true; - } - - aHelper.setBinding( aHelper.createCellBindingFromStringAddress( sBoundCellAddress, bUseIndexBinding ) ); + sBoundCellAddress = sBoundCellAddress.copy( 0, nIndicator ); + bUseIndexBinding = true; } + + aHelper.setBinding( aHelper.createCellBindingFromStringAddress( sBoundCellAddress, bUseIndexBinding ) ); } - catch( const Exception& ) - { - OSL_ENSURE( sal_False, "OFormLayerXMLImport_Impl::documentDone: caught an exception while binding to a cell!" ); - } } - m_aCellValueBindings.clear(); + catch( const Exception& ) + { + OSL_ENSURE( sal_False, "OFormLayerXMLImport_Impl::documentDone: caught an exception while binding to a cell!" ); + } } + m_aCellValueBindings.clear(); + } - // the same for the spreadsheet cell range list sources - if ( !m_aCellRangeListSources.empty() - && FormCellBindingHelper::isListCellRangeAllowed( getGlobalContext().GetModel() ) + // the same for the spreadsheet cell range list sources + if ( !m_aCellRangeListSources.empty() + && FormCellBindingHelper::isListCellRangeAllowed( rImport.GetModel() ) + ) + { + for ( ::std::vector< ModelStringPair >::const_iterator aRangeBindings = m_aCellRangeListSources.begin(); + aRangeBindings != m_aCellRangeListSources.end(); + ++aRangeBindings ) { - for ( ::std::vector< ModelStringPair >::const_iterator aRangeBindings = m_aCellRangeListSources.begin(); - aRangeBindings != m_aCellRangeListSources.end(); - ++aRangeBindings - ) + try { - try + FormCellBindingHelper aHelper( aRangeBindings->first, rImport.GetModel() ); + OSL_ENSURE( aHelper.isListCellRangeAllowed(), "OFormLayerXMLImport_Impl::documentDone: can't bind this control model!" ); + if ( aHelper.isListCellRangeAllowed() ) { - FormCellBindingHelper aHelper( aRangeBindings->first, getGlobalContext().GetModel() ); - OSL_ENSURE( aHelper.isListCellRangeAllowed(), "OFormLayerXMLImport_Impl::documentDone: can't bind this control model!" ); - if ( aHelper.isListCellRangeAllowed() ) - { - aHelper.setListSource( aHelper.createCellListSourceFromStringAddress( aRangeBindings->second ) ); - } - } - catch( const Exception& ) - { - OSL_ENSURE( sal_False, "OFormLayerXMLImport_Impl::documentDone: caught an exception while binding to a cell range!" ); + aHelper.setListSource( aHelper.createCellListSourceFromStringAddress( aRangeBindings->second ) ); } } - m_aCellRangeListSources.clear(); + catch( const Exception& ) + { + OSL_ENSURE( sal_False, "OFormLayerXMLImport_Impl::documentDone: caught an exception while binding to a cell range!" ); + } } - - // process XForms-bindings; call registerXFormsValueBinding for each - std::for_each( m_aXFormsValueBindings.begin(), - m_aXFormsValueBindings.end(), - bind1st( ptr_fun( bindXFormsValueBinding ), - getGlobalContext().GetModel() ) ); - // same for list bindings - std::for_each( m_aXFormsListBindings.begin(), - m_aXFormsListBindings.end(), - bind1st( ptr_fun( bindXFormsListBinding ), - getGlobalContext().GetModel() ) ); - // same for submissions - std::for_each( m_aXFormsSubmissions.begin(), - m_aXFormsSubmissions.end(), - bind1st( ptr_fun( bindXFormsSubmission ), - getGlobalContext().GetModel() ) ); + m_aCellRangeListSources.clear(); } + // process XForms-bindings; call registerXFormsValueBinding for each + std::for_each( m_aXFormsValueBindings.begin(), + m_aXFormsValueBindings.end(), + bind1st( ptr_fun( bindXFormsValueBinding ), + rImport.GetModel() ) ); + // same for list bindings + std::for_each( m_aXFormsListBindings.begin(), + m_aXFormsListBindings.end(), + bind1st( ptr_fun( bindXFormsListBinding ), + rImport.GetModel() ) ); + // same for submissions + std::for_each( m_aXFormsSubmissions.begin(), + m_aXFormsSubmissions.end(), + bind1st( ptr_fun( bindXFormsSubmission ), + rImport.GetModel() ) ); +} + //......................................................................... } // namespace xmloff //......................................................................... diff --git a/xmloff/source/forms/layerimport.hxx b/xmloff/source/forms/layerimport.hxx index 59872a1ec7..ad11880beb 100644 --- a/xmloff/source/forms/layerimport.hxx +++ b/xmloff/source/forms/layerimport.hxx @@ -81,9 +81,7 @@ namespace xmloff //= OFormLayerXMLImport_Impl //===================================================================== class OFormLayerXMLImport_Impl - :public IControlIdMap - ,public IFormsImportContext - ,public ODefaultEventAttacherManager + : public ODefaultEventAttacherManager { friend class OFormLayerXMLImport; @@ -127,54 +125,51 @@ namespace xmloff public: // IControlIdMap - virtual void registerControlId( + void registerControlId( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControl, const ::rtl::OUString& _rId); - virtual void registerControlReferences( + void registerControlReferences( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControl, const ::rtl::OUString& _rReferringControls); - // IFormsImportContext - virtual IControlIdMap& getControlIdMap(); - virtual OAttribute2Property& getAttributeMap(); - virtual ::com::sun::star::uno::Reference< ::com::sun::star::lang::XMultiServiceFactory > - getServiceFactory(); - virtual SvXMLImport& getGlobalContext(); + // OFormLayerXMLImport_Impl + inline OAttribute2Property& getAttributeMap() { return m_aAttributeMetaData; } + inline SvXMLImport& getGlobalContext() { return m_rImporter; } const SvXMLStyleContext* getStyleElement(const ::rtl::OUString& _rStyleName) const; - virtual void enterEventContext(); - virtual void leaveEventContext(); + void enterEventContext(); + void leaveEventContext(); void applyControlNumberStyle( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, const ::rtl::OUString& _rControlNumerStyleName ); - virtual void registerCellValueBinding( + void registerCellValueBinding( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, const ::rtl::OUString& _rCellAddress ); - virtual void registerCellRangeListSource( + void registerCellRangeListSource( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, const ::rtl::OUString& _rCellRangeAddress ); - virtual void registerXFormsValueBinding( + void registerXFormsValueBinding( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, const ::rtl::OUString& _rBindingID ); - virtual void registerXFormsListBinding( + void registerXFormsListBinding( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, const ::rtl::OUString& _rBindingID ); - virtual void registerXFormsSubmission( + void registerXFormsSubmission( const ::com::sun::star::uno::Reference< ::com::sun::star::beans::XPropertySet >& _rxControlModel, const ::rtl::OUString& _rSubmissionID ); protected: OFormLayerXMLImport_Impl(SvXMLImport& _rImporter); - ~OFormLayerXMLImport_Impl(); + virtual ~OFormLayerXMLImport_Impl(); /** retrieves the property mapper form form related auto styles. */ diff --git a/xmloff/source/forms/propertyimport.cxx b/xmloff/source/forms/propertyimport.cxx index ec109ad2aa..3d88b29271 100644 --- a/xmloff/source/forms/propertyimport.cxx +++ b/xmloff/source/forms/propertyimport.cxx @@ -45,6 +45,7 @@ #include <com/sun/star/util/Time.hpp> #include <com/sun/star/util/DateTime.hpp> #include <unotools/datetime.hxx> +#include <rtl/logfile.hxx> #if OSL_DEBUG_LEVEL > 0 #ifndef _OSL_THREAD_H_ @@ -68,107 +69,135 @@ namespace xmloff #define TYPE_TIME 2 #define TYPE_DATETIME 3 - //===================================================================== - //= PropertyConversion - //===================================================================== - namespace +//===================================================================== +//= PropertyConversion +//===================================================================== +namespace +{ + //--------------------------------------------------------------------- + ::com::sun::star::util::Time lcl_getTime(double _nValue) { - //--------------------------------------------------------------------- - ::com::sun::star::util::Time lcl_getTime(double _nValue) - { - ::com::sun::star::util::Time aTime; - sal_uInt32 nIntValue = sal_Int32(_nValue * 8640000); - nIntValue *= 8640000; - aTime.HundredthSeconds = (sal_uInt16)( nIntValue % 100 ); - nIntValue /= 100; - aTime.Seconds = (sal_uInt16)( nIntValue % 60 ); - nIntValue /= 60; - aTime.Minutes = (sal_uInt16)( nIntValue % 60 ); - nIntValue /= 60; - OSL_ENSURE(nIntValue < 24, "lcl_getTime: more than a day?"); - aTime.Hours = static_cast< sal_uInt16 >( nIntValue ); - - return aTime; - } - - //--------------------------------------------------------------------- - static ::com::sun::star::util::Date lcl_getDate( double _nValue ) - { - Date aToolsDate((sal_uInt32)_nValue); - ::com::sun::star::util::Date aDate; - ::utl::typeConvert(aToolsDate, aDate); - return aDate; - } + ::com::sun::star::util::Time aTime; + sal_uInt32 nIntValue = sal_Int32(_nValue * 8640000); + nIntValue *= 8640000; + aTime.HundredthSeconds = (sal_uInt16)( nIntValue % 100 ); + nIntValue /= 100; + aTime.Seconds = (sal_uInt16)( nIntValue % 60 ); + nIntValue /= 60; + aTime.Minutes = (sal_uInt16)( nIntValue % 60 ); + nIntValue /= 60; + OSL_ENSURE(nIntValue < 24, "lcl_getTime: more than a day?"); + aTime.Hours = static_cast< sal_uInt16 >( nIntValue ); + + return aTime; } //--------------------------------------------------------------------- - Any PropertyConversion::convertString( SvXMLImport& _rImporter, const ::com::sun::star::uno::Type& _rExpectedType, - const ::rtl::OUString& _rReadCharacters, const SvXMLEnumMapEntry* _pEnumMap, const sal_Bool _bInvertBoolean ) + static ::com::sun::star::util::Date lcl_getDate( double _nValue ) { - Any aReturn; - sal_Bool bEnumAsInt = sal_False; - switch (_rExpectedType.getTypeClass()) + Date aToolsDate((sal_uInt32)_nValue); + ::com::sun::star::util::Date aDate; + ::utl::typeConvert(aToolsDate, aDate); + return aDate; + } +} + +//--------------------------------------------------------------------- +Any PropertyConversion::convertString( SvXMLImport& _rImporter, const ::com::sun::star::uno::Type& _rExpectedType, + const ::rtl::OUString& _rReadCharacters, const SvXMLEnumMapEntry* _pEnumMap, const sal_Bool _bInvertBoolean ) +{ + Any aReturn; + sal_Bool bEnumAsInt = sal_False; + switch (_rExpectedType.getTypeClass()) + { + case TypeClass_BOOLEAN: // sal_Bool { - case TypeClass_BOOLEAN: // sal_Bool - { - sal_Bool bValue; - #if OSL_DEBUG_LEVEL > 0 + sal_Bool bValue; + #if OSL_DEBUG_LEVEL > 0 + sal_Bool bSuccess = + #endif + _rImporter.GetMM100UnitConverter().convertBool(bValue, _rReadCharacters); + OSL_ENSURE(bSuccess, + ::rtl::OString("PropertyConversion::convertString: could not convert \"") + += ::rtl::OString(_rReadCharacters.getStr(), _rReadCharacters.getLength(), RTL_TEXTENCODING_ASCII_US) + += ::rtl::OString("\" into a boolean!")); + aReturn = ::cppu::bool2any(_bInvertBoolean ? !bValue : bValue); + } + break; + case TypeClass_SHORT: // sal_Int16 + case TypeClass_LONG: // sal_Int32 + if (!_pEnumMap) + { // it's a real int32/16 property + sal_Int32 nValue(0); + #if OSL_DEBUG_LEVEL > 0 sal_Bool bSuccess = - #endif - _rImporter.GetMM100UnitConverter().convertBool(bValue, _rReadCharacters); + #endif + _rImporter.GetMM100UnitConverter().convertNumber(nValue, _rReadCharacters); OSL_ENSURE(bSuccess, ::rtl::OString("PropertyConversion::convertString: could not convert \"") += ::rtl::OString(_rReadCharacters.getStr(), _rReadCharacters.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString("\" into a boolean!")); - aReturn = ::cppu::bool2any(_bInvertBoolean ? !bValue : bValue); - } - break; - case TypeClass_SHORT: // sal_Int16 - case TypeClass_LONG: // sal_Int32 - if (!_pEnumMap) - { // it's a real int32/16 property - sal_Int32 nValue(0); - #if OSL_DEBUG_LEVEL > 0 - sal_Bool bSuccess = - #endif - _rImporter.GetMM100UnitConverter().convertNumber(nValue, _rReadCharacters); - OSL_ENSURE(bSuccess, - ::rtl::OString("PropertyConversion::convertString: could not convert \"") - += ::rtl::OString(_rReadCharacters.getStr(), _rReadCharacters.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString("\" into an integer!")); - if (TypeClass_SHORT == _rExpectedType.getTypeClass()) - aReturn <<= (sal_Int16)nValue; - else - aReturn <<= (sal_Int32)nValue; - break; - } - bEnumAsInt = sal_True; - // NO BREAK! handle it as enum - case TypeClass_ENUM: - { - sal_uInt16 nEnumValue(0); - #if OSL_DEBUG_LEVEL > 0 - sal_Bool bSuccess = - #endif - _rImporter.GetMM100UnitConverter().convertEnum(nEnumValue, _rReadCharacters, _pEnumMap); - OSL_ENSURE(bSuccess, "PropertyConversion::convertString: could not convert to an enum value!"); - if (bEnumAsInt) - if (TypeClass_SHORT == _rExpectedType.getTypeClass()) - aReturn <<= (sal_Int16)nEnumValue; - else - aReturn <<= (sal_Int32)nEnumValue; + += ::rtl::OString("\" into an integer!")); + if (TypeClass_SHORT == _rExpectedType.getTypeClass()) + aReturn <<= (sal_Int16)nValue; else - aReturn = ::cppu::int2enum((sal_Int32)nEnumValue, _rExpectedType); - } - break; - case TypeClass_HYPER: - { - OSL_ENSURE(sal_False, "PropertyConversion::convertString: 64-bit integers not implemented yet!"); + aReturn <<= (sal_Int32)nValue; + break; } + bEnumAsInt = sal_True; + // NO BREAK! handle it as enum + case TypeClass_ENUM: + { + sal_uInt16 nEnumValue(0); + #if OSL_DEBUG_LEVEL > 0 + sal_Bool bSuccess = + #endif + _rImporter.GetMM100UnitConverter().convertEnum(nEnumValue, _rReadCharacters, _pEnumMap); + OSL_ENSURE(bSuccess, "PropertyConversion::convertString: could not convert to an enum value!"); + if (bEnumAsInt) + if (TypeClass_SHORT == _rExpectedType.getTypeClass()) + aReturn <<= (sal_Int16)nEnumValue; + else + aReturn <<= (sal_Int32)nEnumValue; + else + aReturn = ::cppu::int2enum((sal_Int32)nEnumValue, _rExpectedType); + } + break; + case TypeClass_HYPER: + { + OSL_ENSURE(sal_False, "PropertyConversion::convertString: 64-bit integers not implemented yet!"); + } + break; + case TypeClass_DOUBLE: + { + double nValue; + #if OSL_DEBUG_LEVEL > 0 + sal_Bool bSuccess = + #endif + _rImporter.GetMM100UnitConverter().convertDouble(nValue, _rReadCharacters); + OSL_ENSURE(bSuccess, + ::rtl::OString("PropertyConversion::convertString: could not convert \"") + += ::rtl::OString(_rReadCharacters.getStr(), _rReadCharacters.getLength(), RTL_TEXTENCODING_ASCII_US) + += ::rtl::OString("\" into a double!")); + aReturn <<= (double)nValue; + } + break; + case TypeClass_STRING: + aReturn <<= _rReadCharacters; break; - case TypeClass_DOUBLE: + case TypeClass_STRUCT: + { + sal_Int32 nType = 0; + if ( _rExpectedType.equals( ::cppu::UnoType< ::com::sun::star::util::Date >::get() ) ) + nType = TYPE_DATE; + else if ( _rExpectedType.equals( ::cppu::UnoType< ::com::sun::star::util::Time >::get() ) ) + nType = TYPE_TIME; + else if ( _rExpectedType.equals( ::cppu::UnoType< ::com::sun::star::util::DateTime >::get() ) ) + nType = TYPE_DATETIME; + + if ( nType ) { - double nValue; + // first extract the double + double nValue = 0; #if OSL_DEBUG_LEVEL > 0 sal_Bool bSuccess = #endif @@ -177,237 +206,210 @@ namespace xmloff ::rtl::OString("PropertyConversion::convertString: could not convert \"") += ::rtl::OString(_rReadCharacters.getStr(), _rReadCharacters.getLength(), RTL_TEXTENCODING_ASCII_US) += ::rtl::OString("\" into a double!")); - aReturn <<= (double)nValue; - } - break; - case TypeClass_STRING: - aReturn <<= _rReadCharacters; - break; - case TypeClass_STRUCT: - { - sal_Int32 nType = 0; - if ( _rExpectedType.equals( ::cppu::UnoType< ::com::sun::star::util::Date >::get() ) ) - nType = TYPE_DATE; - else if ( _rExpectedType.equals( ::cppu::UnoType< ::com::sun::star::util::Time >::get() ) ) - nType = TYPE_TIME; - else if ( _rExpectedType.equals( ::cppu::UnoType< ::com::sun::star::util::DateTime >::get() ) ) - nType = TYPE_DATETIME; - - if ( nType ) + + // then convert it into the target type + switch (nType) { - // first extract the double - double nValue = 0; - #if OSL_DEBUG_LEVEL > 0 - sal_Bool bSuccess = - #endif - _rImporter.GetMM100UnitConverter().convertDouble(nValue, _rReadCharacters); - OSL_ENSURE(bSuccess, - ::rtl::OString("PropertyConversion::convertString: could not convert \"") - += ::rtl::OString(_rReadCharacters.getStr(), _rReadCharacters.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString("\" into a double!")); - - // then convert it into the target type - switch (nType) + case TYPE_DATE: + { + OSL_ENSURE(((sal_uInt32)nValue) - nValue == 0, + "PropertyConversion::convertString: a Date value with a fractional part?"); + aReturn <<= lcl_getDate(nValue); + } + break; + case TYPE_TIME: + { + OSL_ENSURE(((sal_uInt32)nValue) == 0, + "PropertyConversion::convertString: a Time value with more than a fractional part?"); + aReturn <<= lcl_getTime(nValue); + } + break; + case TYPE_DATETIME: { - case TYPE_DATE: - { - OSL_ENSURE(((sal_uInt32)nValue) - nValue == 0, - "PropertyConversion::convertString: a Date value with a fractional part?"); - aReturn <<= lcl_getDate(nValue); - } - break; - case TYPE_TIME: - { - OSL_ENSURE(((sal_uInt32)nValue) == 0, - "PropertyConversion::convertString: a Time value with more than a fractional part?"); - aReturn <<= lcl_getTime(nValue); - } - break; - case TYPE_DATETIME: - { - ::com::sun::star::util::Time aTime = lcl_getTime(nValue); - ::com::sun::star::util::Date aDate = lcl_getDate(nValue); - - ::com::sun::star::util::DateTime aDateTime; - aDateTime.HundredthSeconds = aTime.HundredthSeconds; - aDateTime.Seconds = aTime.Seconds; - aDateTime.Minutes = aTime.Minutes; - aDateTime.Hours = aTime.Hours; - aDateTime.Day = aDate.Day; - aDateTime.Month = aDate.Month; - aDateTime.Year = aDate.Year; - aReturn <<= aDateTime; - } - break; + ::com::sun::star::util::Time aTime = lcl_getTime(nValue); + ::com::sun::star::util::Date aDate = lcl_getDate(nValue); + + ::com::sun::star::util::DateTime aDateTime; + aDateTime.HundredthSeconds = aTime.HundredthSeconds; + aDateTime.Seconds = aTime.Seconds; + aDateTime.Minutes = aTime.Minutes; + aDateTime.Hours = aTime.Hours; + aDateTime.Day = aDate.Day; + aDateTime.Month = aDate.Month; + aDateTime.Year = aDate.Year; + aReturn <<= aDateTime; } + break; } - else - OSL_ENSURE(sal_False, "PropertyConversion::convertString: unsupported property type!"); } - break; - default: - OSL_ENSURE(sal_False, "PropertyConversion::convertString: invalid type class!"); + else + OSL_ENSURE(sal_False, "PropertyConversion::convertString: unsupported property type!"); } - - return aReturn; + break; + default: + OSL_ENSURE(sal_False, "PropertyConversion::convertString: invalid type class!"); } - //--------------------------------------------------------------------- - Type PropertyConversion::xmlTypeToUnoType( const ::rtl::OUString& _rType ) - { - Type aUnoType( ::getVoidCppuType() ); + return aReturn; +} - DECLARE_STL_USTRINGACCESS_MAP( ::com::sun::star::uno::Type, MapString2Type ); - static MapString2Type s_aTypeNameMap; - if ( s_aTypeNameMap.empty() ) - { - s_aTypeNameMap[ token::GetXMLToken( token::XML_BOOLEAN ) ] = ::getBooleanCppuType(); - s_aTypeNameMap[ token::GetXMLToken( token::XML_FLOAT ) ] = ::getCppuType( static_cast< double* >(NULL) ); - s_aTypeNameMap[ token::GetXMLToken( token::XML_STRING ) ] = ::getCppuType( static_cast< ::rtl::OUString* >(NULL) ); - s_aTypeNameMap[ token::GetXMLToken( token::XML_VOID ) ] = ::getVoidCppuType(); - } - - const ConstMapString2TypeIterator aTypePos = s_aTypeNameMap.find( _rType ); - OSL_ENSURE( s_aTypeNameMap.end() != aTypePos, "PropertyConversion::xmlTypeToUnoType: invalid property name!" ); - if ( s_aTypeNameMap.end() != aTypePos ) - aUnoType = aTypePos->second; +//--------------------------------------------------------------------- +Type PropertyConversion::xmlTypeToUnoType( const ::rtl::OUString& _rType ) +{ + Type aUnoType( ::getVoidCppuType() ); - return aUnoType; + DECLARE_STL_USTRINGACCESS_MAP( ::com::sun::star::uno::Type, MapString2Type ); + static MapString2Type s_aTypeNameMap; + if ( s_aTypeNameMap.empty() ) + { + s_aTypeNameMap[ token::GetXMLToken( token::XML_BOOLEAN ) ] = ::getBooleanCppuType(); + s_aTypeNameMap[ token::GetXMLToken( token::XML_FLOAT ) ] = ::getCppuType( static_cast< double* >(NULL) ); + s_aTypeNameMap[ token::GetXMLToken( token::XML_STRING ) ] = ::getCppuType( static_cast< ::rtl::OUString* >(NULL) ); + s_aTypeNameMap[ token::GetXMLToken( token::XML_VOID ) ] = ::getVoidCppuType(); } - //===================================================================== - //= OPropertyImport - //===================================================================== - //--------------------------------------------------------------------- - OPropertyImport::OPropertyImport(IFormsImportContext& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName) - :SvXMLImportContext(_rImport.getGlobalContext(), _nPrefix, _rName) - ,m_rContext(_rImport) - ,m_bTrackAttributes(sal_False) + const ConstMapString2TypeIterator aTypePos = s_aTypeNameMap.find( _rType ); + OSL_ENSURE( s_aTypeNameMap.end() != aTypePos, "PropertyConversion::xmlTypeToUnoType: invalid property name!" ); + if ( s_aTypeNameMap.end() != aTypePos ) + aUnoType = aTypePos->second; + + return aUnoType; +} + +//===================================================================== +//= OPropertyImport +//===================================================================== +//--------------------------------------------------------------------- +OPropertyImport::OPropertyImport(OFormLayerXMLImport_Impl& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName) + :SvXMLImportContext(_rImport.getGlobalContext(), _nPrefix, _rName) + ,m_rContext(_rImport) + ,m_bTrackAttributes(sal_False) +{ +} + +//--------------------------------------------------------------------- +SvXMLImportContext* OPropertyImport::CreateChildContext(sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, + const Reference< sax::XAttributeList >& _rxAttrList) +{ + if( token::IsXMLToken( _rLocalName, token::XML_PROPERTIES) ) { + return new OPropertyElementsContext( m_rContext.getGlobalContext(), + _nPrefix, _rLocalName, this); } - - //--------------------------------------------------------------------- - SvXMLImportContext* OPropertyImport::CreateChildContext(sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, - const Reference< sax::XAttributeList >& _rxAttrList) + else { - if( token::IsXMLToken( _rLocalName, token::XML_PROPERTIES) ) - { - return new OPropertyElementsContext( m_rContext.getGlobalContext(), - _nPrefix, _rLocalName, this); - } - else - { - OSL_ENSURE(sal_False, - ::rtl::OString("OPropertyImport::CreateChildContext: unknown sub element (only \"properties\" is recognized, but it is ") - += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString(")!")); - return SvXMLImportContext::CreateChildContext(_nPrefix, _rLocalName, _rxAttrList); - } + OSL_ENSURE(sal_False, + ::rtl::OString("OPropertyImport::CreateChildContext: unknown sub element (only \"properties\" is recognized, but it is ") + += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) + += ::rtl::OString(")!")); + return SvXMLImportContext::CreateChildContext(_nPrefix, _rLocalName, _rxAttrList); } +} - //--------------------------------------------------------------------- - void OPropertyImport::StartElement(const Reference< sax::XAttributeList >& _rxAttrList) +//--------------------------------------------------------------------- +void OPropertyImport::StartElement(const Reference< sax::XAttributeList >& _rxAttrList) +{ + OSL_ENSURE(_rxAttrList.is(), "OPropertyImport::StartElement: invalid attribute list!"); + const sal_Int32 nAttributeCount = _rxAttrList->getLength(); + + // assume the 'worst' case: all attributes describe properties. This should save our property array + // some reallocs + m_aValues.reserve(nAttributeCount); + + const SvXMLNamespaceMap& rMap = m_rContext.getGlobalContext().GetNamespaceMap(); + sal_uInt16 nNamespace; + ::rtl::OUString sLocalName; + for (sal_Int16 i=0; i<nAttributeCount; ++i) { - OSL_ENSURE(_rxAttrList.is(), "OPropertyImport::StartElement: invalid attribute list!"); - sal_Int32 nAttributeCount = _rxAttrList->getLength(); + nNamespace = rMap.GetKeyByAttrName(_rxAttrList->getNameByIndex(i), &sLocalName); + handleAttribute(nNamespace, sLocalName, _rxAttrList->getValueByIndex(i)); - // assume the 'worst' case: all attributes describe properties. This should save our property array - // some reallocs - m_aValues.reserve(nAttributeCount); + if (m_bTrackAttributes) + m_aEncounteredAttributes.insert(sLocalName); + } - sal_uInt16 nNamespace; - ::rtl::OUString sLocalName; - for (sal_Int16 i=0; i<nAttributeCount; ++i) - { - nNamespace = m_rContext.getGlobalContext().GetNamespaceMap().GetKeyByAttrName(_rxAttrList->getNameByIndex(i), &sLocalName); - handleAttribute(nNamespace, sLocalName, _rxAttrList->getValueByIndex(i)); + // TODO: create PropertyValues for all the attributes which were not present, because they were implied + // this is necessary as soon as we have properties where the XML default is different from the property + // default +} - if (m_bTrackAttributes) - m_aEncounteredAttributes.insert(sLocalName); - } +//--------------------------------------------------------------------- +sal_Bool OPropertyImport::encounteredAttribute(const ::rtl::OUString& _rAttributeName) const +{ + OSL_ENSURE(m_bTrackAttributes, "OPropertyImport::encounteredAttribute: attribute tracking not enabled!"); + return m_aEncounteredAttributes.end() != m_aEncounteredAttributes.find(_rAttributeName); +} - // TODO: create PropertyValues for all the attributes which were not present, because they were implied - // this is necessary as soon as we have properties where the XML default is different from the property - // default - } +//--------------------------------------------------------------------- +void OPropertyImport::Characters(const ::rtl::OUString& +#if OSL_DEBUG_LEVEL > 0 +_rChars +#endif +) +{ + // ignore them (should be whitespaces only) + OSL_ENSURE(0 == _rChars.trim().getLength(), "OPropertyImport::Characters: non-whitespace characters!"); +} - //--------------------------------------------------------------------- - sal_Bool OPropertyImport::encounteredAttribute(const ::rtl::OUString& _rAttributeName) const +//--------------------------------------------------------------------- +void OPropertyImport::handleAttribute(sal_uInt16 /*_nNamespaceKey*/, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue) +{ + const OAttribute2Property::AttributeAssignment* pProperty = m_rContext.getAttributeMap().getAttributeTranslation(_rLocalName); + if (pProperty) { - OSL_ENSURE(m_bTrackAttributes, "OPropertyImport::encounteredAttribute: attribute tracking not enabled!"); - return m_aEncounteredAttributes.end() != m_aEncounteredAttributes.find(_rAttributeName); - } + // create and store a new PropertyValue + PropertyValue aNewValue; + aNewValue.Name = pProperty->sPropertyName; - //--------------------------------------------------------------------- - void OPropertyImport::Characters(const ::rtl::OUString& - #if OSL_DEBUG_LEVEL > 0 - _rChars - #endif - ) + // convert the value string into the target type + aNewValue.Value = PropertyConversion::convertString(m_rContext.getGlobalContext(), pProperty->aPropertyType, _rValue, pProperty->pEnumMap, pProperty->bInverseSemantics); + implPushBackPropertyValue( aNewValue ); + } +#if OSL_DEBUG_LEVEL > 0 + else { - // ignore them (should be whitespaces only) - OSL_ENSURE(0 == _rChars.trim().getLength(), "OPropertyImport::Characters: non-whitespace characters!"); + ::rtl::OString sMessage( "OPropertyImport::handleAttribute: Can't handle the following:\n" ); + sMessage += ::rtl::OString( " Attribute name: " ); + sMessage += ::rtl::OString( _rLocalName.getStr(), _rLocalName.getLength(), osl_getThreadTextEncoding() ); + sMessage += ::rtl::OString( "\n value: " ); + sMessage += ::rtl::OString( _rValue.getStr(), _rValue.getLength(), osl_getThreadTextEncoding() ); + OSL_ENSURE( sal_False, sMessage.getStr() ); } +#endif +} + +//===================================================================== +//= OPropertyElementsContext +//===================================================================== +//--------------------------------------------------------------------- +OPropertyElementsContext::OPropertyElementsContext(SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + const OPropertyImportRef& _rPropertyImporter) + :SvXMLImportContext(_rImport, _nPrefix, _rName) + ,m_xPropertyImporter(_rPropertyImporter) +{ +} - //--------------------------------------------------------------------- - void OPropertyImport::handleAttribute(sal_uInt16 /*_nNamespaceKey*/, const ::rtl::OUString& _rLocalName, const ::rtl::OUString& _rValue) +//--------------------------------------------------------------------- +SvXMLImportContext* OPropertyElementsContext::CreateChildContext(sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, + const Reference< sax::XAttributeList >&) +{ + if( token::IsXMLToken( _rLocalName, token::XML_PROPERTY ) ) { - const OAttribute2Property::AttributeAssignment* pProperty = m_rContext.getAttributeMap().getAttributeTranslation(_rLocalName); - if (pProperty) - { - // create and store a new PropertyValue - PropertyValue aNewValue; - aNewValue.Name = pProperty->sPropertyName; - - // convert the value string into the target type - aNewValue.Value = PropertyConversion::convertString(m_rContext.getGlobalContext(), pProperty->aPropertyType, _rValue, pProperty->pEnumMap, pProperty->bInverseSemantics); - implPushBackPropertyValue( aNewValue ); - } -#if OSL_DEBUG_LEVEL > 0 - else - { - ::rtl::OString sMessage( "OPropertyImport::handleAttribute: Can't handle the following:\n" ); - sMessage += ::rtl::OString( " Attribute name: " ); - sMessage += ::rtl::OString( _rLocalName.getStr(), _rLocalName.getLength(), osl_getThreadTextEncoding() ); - sMessage += ::rtl::OString( "\n value: " ); - sMessage += ::rtl::OString( _rValue.getStr(), _rValue.getLength(), osl_getThreadTextEncoding() ); - OSL_ENSURE( sal_False, sMessage.getStr() ); - } -#endif + return new OSinglePropertyContext(GetImport(), _nPrefix, _rLocalName, m_xPropertyImporter); } - - //===================================================================== - //= OPropertyElementsContext - //===================================================================== - //--------------------------------------------------------------------- - OPropertyElementsContext::OPropertyElementsContext(SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, - const OPropertyImportRef& _rPropertyImporter) - :SvXMLImportContext(_rImport, _nPrefix, _rName) - ,m_xPropertyImporter(_rPropertyImporter) + else if( token::IsXMLToken( _rLocalName, token::XML_LIST_PROPERTY ) ) { + return new OListPropertyContext( GetImport(), _nPrefix, _rLocalName, m_xPropertyImporter ); } - - //--------------------------------------------------------------------- - SvXMLImportContext* OPropertyElementsContext::CreateChildContext(sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, - const Reference< sax::XAttributeList >&) + else { - if( token::IsXMLToken( _rLocalName, token::XML_PROPERTY ) ) - { - return new OSinglePropertyContext(GetImport(), _nPrefix, _rLocalName, m_xPropertyImporter); - } - else if( token::IsXMLToken( _rLocalName, token::XML_LIST_PROPERTY ) ) - { - return new OListPropertyContext( GetImport(), _nPrefix, _rLocalName, m_xPropertyImporter ); - } - else - { - OSL_ENSURE(sal_False, - ::rtl::OString("OPropertyElementsContext::CreateChildContext: unknown child element (\"") - += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString("\")!")); - return new SvXMLImportContext(GetImport(), _nPrefix, _rLocalName); - } + OSL_ENSURE(sal_False, + ::rtl::OString("OPropertyElementsContext::CreateChildContext: unknown child element (\"") + += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) + += ::rtl::OString("\")!")); + return new SvXMLImportContext(GetImport(), _nPrefix, _rLocalName); } +} #if OSL_DEBUG_LEVEL > 0 //--------------------------------------------------------------------- @@ -426,212 +428,215 @@ namespace xmloff #endif - //===================================================================== - //= OSinglePropertyContext - //===================================================================== - //--------------------------------------------------------------------- - OSinglePropertyContext::OSinglePropertyContext(SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, - const OPropertyImportRef& _rPropertyImporter) - :SvXMLImportContext(_rImport, _nPrefix, _rName) - ,m_xPropertyImporter(_rPropertyImporter) - { - } +//===================================================================== +//= OSinglePropertyContext +//===================================================================== +//--------------------------------------------------------------------- +OSinglePropertyContext::OSinglePropertyContext(SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + const OPropertyImportRef& _rPropertyImporter) + :SvXMLImportContext(_rImport, _nPrefix, _rName) + ,m_xPropertyImporter(_rPropertyImporter) +{ +} - //--------------------------------------------------------------------- - SvXMLImportContext* OSinglePropertyContext::CreateChildContext(sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, - const Reference< sax::XAttributeList >&) - { - OSL_ENSURE(sal_False, - ::rtl::OString("OSinglePropertyContext::CreateChildContext: unknown child element (\"") - += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString("\")!")); - return new SvXMLImportContext(GetImport(), _nPrefix, _rLocalName); - } +//--------------------------------------------------------------------- +SvXMLImportContext* OSinglePropertyContext::CreateChildContext(sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, + const Reference< sax::XAttributeList >&) +{ + OSL_ENSURE(sal_False, + ::rtl::OString("OSinglePropertyContext::CreateChildContext: unknown child element (\"") + += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) + += ::rtl::OString("\")!")); + return new SvXMLImportContext(GetImport(), _nPrefix, _rLocalName); +} + +//--------------------------------------------------------------------- +void OSinglePropertyContext::StartElement(const Reference< sax::XAttributeList >& _rxAttrList) +{ + ::com::sun::star::beans::PropertyValue aPropValue; // the property the instance imports currently + ::com::sun::star::uno::Type aPropType; // the type of the property the instance imports currently - //--------------------------------------------------------------------- - void OSinglePropertyContext::StartElement(const Reference< sax::XAttributeList >& _rxAttrList) + ::rtl::OUString sType, sValue; + const SvXMLNamespaceMap& rMap = GetImport().GetNamespaceMap(); + const sal_Int16 nAttrCount = _rxAttrList.is() ? _rxAttrList->getLength() : 0; + for( sal_Int16 i=0; i < nAttrCount; i++ ) { - ::com::sun::star::beans::PropertyValue aPropValue; // the property the instance imports currently - ::com::sun::star::uno::Type aPropType; // the type of the property the instance imports currently - - ::rtl::OUString sType, sValue; - sal_Int16 nAttrCount = _rxAttrList.is() ? _rxAttrList->getLength() : 0; - for( sal_Int16 i=0; i < nAttrCount; i++ ) + const ::rtl::OUString& rAttrName = _rxAttrList->getNameByIndex( i ); + //const ::rtl::OUString& rValue = _rxAttrList->getValueByIndex( i ); + + ::rtl::OUString aLocalName; + sal_uInt16 nPrefix = + rMap.GetKeyByAttrName( rAttrName, + &aLocalName ); + if( XML_NAMESPACE_FORM == nPrefix ) { - const ::rtl::OUString& rAttrName = _rxAttrList->getNameByIndex( i ); - const ::rtl::OUString& rValue = _rxAttrList->getValueByIndex( i ); - - ::rtl::OUString aLocalName; - sal_uInt16 nPrefix = - GetImport().GetNamespaceMap().GetKeyByAttrName( rAttrName, - &aLocalName ); - if( XML_NAMESPACE_FORM == nPrefix ) - { - if( token::IsXMLToken( aLocalName, token::XML_PROPERTY_NAME ) ) - aPropValue.Name = rValue; + if( token::IsXMLToken( aLocalName, token::XML_PROPERTY_NAME ) ) + aPropValue.Name = _rxAttrList->getValueByIndex( i ); - } - else if( XML_NAMESPACE_OFFICE == nPrefix ) - { - if( token::IsXMLToken( aLocalName, token::XML_VALUE_TYPE ) ) - sType = rValue; - else if( token::IsXMLToken( aLocalName, - token::XML_VALUE ) || - token::IsXMLToken( aLocalName, - token::XML_BOOLEAN_VALUE ) || - token::IsXMLToken( aLocalName, - token::XML_STRING_VALUE ) ) - sValue = rValue; - } - } - - // the name of the property - OSL_ENSURE(aPropValue.Name.getLength(), "OSinglePropertyContext::StartElement: invalid property name!"); - - // needs to be translated into a ::com::sun::star::uno::Type - aPropType = PropertyConversion::xmlTypeToUnoType( sType ); - if( TypeClass_VOID == aPropType.getTypeClass() ) - { - aPropValue.Value = Any(); } - else + else if( XML_NAMESPACE_OFFICE == nPrefix ) { - aPropValue.Value = - PropertyConversion::convertString(GetImport(), aPropType, - sValue); + if( token::IsXMLToken( aLocalName, token::XML_VALUE_TYPE ) ) + sType = _rxAttrList->getValueByIndex( i ); + else if( token::IsXMLToken( aLocalName, + token::XML_VALUE ) || + token::IsXMLToken( aLocalName, + token::XML_BOOLEAN_VALUE ) || + token::IsXMLToken( aLocalName, + token::XML_STRING_VALUE ) ) + sValue = _rxAttrList->getValueByIndex( i ); } - - // now that we finally have our property value, add it to our parent object - if( aPropValue.Name.getLength() ) - m_xPropertyImporter->implPushBackGenericPropertyValue(aPropValue); } - //===================================================================== - //= OListPropertyContext - //===================================================================== - //--------------------------------------------------------------------- - OListPropertyContext::OListPropertyContext( SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, - const OPropertyImportRef& _rPropertyImporter ) - :SvXMLImportContext( _rImport, _nPrefix, _rName ) - ,m_xPropertyImporter( _rPropertyImporter ) + // the name of the property + OSL_ENSURE(aPropValue.Name.getLength(), "OSinglePropertyContext::StartElement: invalid property name!"); + + // needs to be translated into a ::com::sun::star::uno::Type + aPropType = PropertyConversion::xmlTypeToUnoType( sType ); + if( TypeClass_VOID == aPropType.getTypeClass() ) { + aPropValue.Value = Any(); } - - //--------------------------------------------------------------------- - void OListPropertyContext::StartElement( const Reference< sax::XAttributeList >& _rxAttrList ) + else { - sal_Int32 nAttributeCount = _rxAttrList->getLength(); - - sal_uInt16 nNamespace; - ::rtl::OUString sAttributeName; - for ( sal_Int16 i = 0; i < nAttributeCount; ++i ) - { - nNamespace = GetImport().GetNamespaceMap().GetKeyByAttrName( _rxAttrList->getNameByIndex( i ), &sAttributeName ); - if ( ( XML_NAMESPACE_FORM == nNamespace ) - && ( token::IsXMLToken( sAttributeName, token::XML_PROPERTY_NAME ) ) - ) - { - m_sPropertyName = _rxAttrList->getValueByIndex( i ); - } - else if ( ( XML_NAMESPACE_OFFICE == nNamespace ) - && ( token::IsXMLToken( sAttributeName, token::XML_VALUE_TYPE ) ) - ) - { - m_sPropertyType = _rxAttrList->getValueByIndex( i ); - } - else - { - OSL_ENSURE( false, - ::rtl::OString( "OListPropertyContext::StartElement: unknown child element (\"") - += ::rtl::OString( sAttributeName.getStr(), sAttributeName.getLength(), RTL_TEXTENCODING_ASCII_US ) - += ::rtl::OString( "\")!" ) ); - } - } + aPropValue.Value = + PropertyConversion::convertString(GetImport(), aPropType, + sValue); } - //--------------------------------------------------------------------- - void OListPropertyContext::EndElement() + // now that we finally have our property value, add it to our parent object + if( aPropValue.Name.getLength() ) + m_xPropertyImporter->implPushBackGenericPropertyValue(aPropValue); +} + +//===================================================================== +//= OListPropertyContext +//===================================================================== +//--------------------------------------------------------------------- +OListPropertyContext::OListPropertyContext( SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, + const OPropertyImportRef& _rPropertyImporter ) + :SvXMLImportContext( _rImport, _nPrefix, _rName ) + ,m_xPropertyImporter( _rPropertyImporter ) +{ +} + +//--------------------------------------------------------------------- +void OListPropertyContext::StartElement( const Reference< sax::XAttributeList >& _rxAttrList ) +{ + sal_Int32 nAttributeCount = _rxAttrList->getLength(); + + sal_uInt16 nNamespace; + ::rtl::OUString sAttributeName; + const SvXMLNamespaceMap& rMap = GetImport().GetNamespaceMap(); + for ( sal_Int16 i = 0; i < nAttributeCount; ++i ) { - OSL_ENSURE( m_sPropertyName.getLength() && m_sPropertyType.getLength(), - "OListPropertyContext::EndElement: no property name or type!" ); - - if ( !m_sPropertyName.getLength() || !m_sPropertyType.getLength() ) - return; - - Sequence< Any > aListElements( m_aListValues.size() ); - Any* pListElement = aListElements.getArray(); - com::sun::star::uno::Type aType = PropertyConversion::xmlTypeToUnoType( m_sPropertyType ); - for ( ::std::vector< ::rtl::OUString >::const_iterator values = m_aListValues.begin(); - values != m_aListValues.end(); - ++values, ++pListElement + nNamespace = rMap.GetKeyByAttrName( _rxAttrList->getNameByIndex( i ), &sAttributeName ); + if ( ( XML_NAMESPACE_FORM == nNamespace ) + && ( token::IsXMLToken( sAttributeName, token::XML_PROPERTY_NAME ) ) ) { - *pListElement = PropertyConversion::convertString( GetImport(), aType, *values ); + m_sPropertyName = _rxAttrList->getValueByIndex( i ); } - - PropertyValue aSequenceValue; - aSequenceValue.Name = m_sPropertyName; - aSequenceValue.Value <<= aListElements; - - m_xPropertyImporter->implPushBackGenericPropertyValue( aSequenceValue ); - } - - //--------------------------------------------------------------------- - SvXMLImportContext* OListPropertyContext::CreateChildContext( sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, const Reference< sax::XAttributeList >& /*_rxAttrList*/ ) - { - if ( token::IsXMLToken( _rLocalName, token::XML_LIST_VALUE ) ) + else if ( ( XML_NAMESPACE_OFFICE == nNamespace ) + && ( token::IsXMLToken( sAttributeName, token::XML_VALUE_TYPE ) ) + ) { - m_aListValues.resize( m_aListValues.size() + 1 ); - return new OListValueContext( GetImport(), _nPrefix, _rLocalName, *m_aListValues.rbegin() ); + m_sPropertyType = _rxAttrList->getValueByIndex( i ); } else { - OSL_ENSURE( sal_False, - ::rtl::OString("OListPropertyContext::CreateChildContext: unknown child element (\"") - += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) - += ::rtl::OString("\")!")); - return new SvXMLImportContext( GetImport(), _nPrefix, _rLocalName ); + OSL_ENSURE( false, + ::rtl::OString( "OListPropertyContext::StartElement: unknown child element (\"") + += ::rtl::OString( sAttributeName.getStr(), sAttributeName.getLength(), RTL_TEXTENCODING_ASCII_US ) + += ::rtl::OString( "\")!" ) ); } } +} - //===================================================================== - //= OListValueContext - //===================================================================== - //--------------------------------------------------------------------- - OListValueContext::OListValueContext( SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, ::rtl::OUString& _rListValueHolder ) - :SvXMLImportContext( _rImport, _nPrefix, _rName ) - ,m_rListValueHolder( _rListValueHolder ) +//--------------------------------------------------------------------- +void OListPropertyContext::EndElement() +{ + OSL_ENSURE( m_sPropertyName.getLength() && m_sPropertyType.getLength(), + "OListPropertyContext::EndElement: no property name or type!" ); + + if ( !m_sPropertyName.getLength() || !m_sPropertyType.getLength() ) + return; + + Sequence< Any > aListElements( m_aListValues.size() ); + Any* pListElement = aListElements.getArray(); + com::sun::star::uno::Type aType = PropertyConversion::xmlTypeToUnoType( m_sPropertyType ); + for ( ::std::vector< ::rtl::OUString >::const_iterator values = m_aListValues.begin(); + values != m_aListValues.end(); + ++values, ++pListElement + ) { + *pListElement = PropertyConversion::convertString( GetImport(), aType, *values ); } - //--------------------------------------------------------------------- - void OListValueContext::StartElement( const Reference< sax::XAttributeList >& _rxAttrList ) + PropertyValue aSequenceValue; + aSequenceValue.Name = m_sPropertyName; + aSequenceValue.Value <<= aListElements; + + m_xPropertyImporter->implPushBackGenericPropertyValue( aSequenceValue ); +} + +//--------------------------------------------------------------------- +SvXMLImportContext* OListPropertyContext::CreateChildContext( sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, const Reference< sax::XAttributeList >& /*_rxAttrList*/ ) +{ + if ( token::IsXMLToken( _rLocalName, token::XML_LIST_VALUE ) ) + { + m_aListValues.resize( m_aListValues.size() + 1 ); + return new OListValueContext( GetImport(), _nPrefix, _rLocalName, *m_aListValues.rbegin() ); + } + else { - sal_Int32 nAttributeCount = _rxAttrList->getLength(); + OSL_ENSURE( sal_False, + ::rtl::OString("OListPropertyContext::CreateChildContext: unknown child element (\"") + += ::rtl::OString(_rLocalName.getStr(), _rLocalName.getLength(), RTL_TEXTENCODING_ASCII_US) + += ::rtl::OString("\")!")); + return new SvXMLImportContext( GetImport(), _nPrefix, _rLocalName ); + } +} + +//===================================================================== +//= OListValueContext +//===================================================================== +//--------------------------------------------------------------------- +OListValueContext::OListValueContext( SvXMLImport& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName, ::rtl::OUString& _rListValueHolder ) + :SvXMLImportContext( _rImport, _nPrefix, _rName ) + ,m_rListValueHolder( _rListValueHolder ) +{ +} + +//--------------------------------------------------------------------- +void OListValueContext::StartElement( const Reference< sax::XAttributeList >& _rxAttrList ) +{ + const sal_Int32 nAttributeCount = _rxAttrList->getLength(); - sal_uInt16 nNamespace; - ::rtl::OUString sAttributeName; - for ( sal_Int16 i = 0; i < nAttributeCount; ++i ) + sal_uInt16 nNamespace; + ::rtl::OUString sAttributeName; + const SvXMLNamespaceMap& rMap = GetImport().GetNamespaceMap(); + for ( sal_Int16 i = 0; i < nAttributeCount; ++i ) + { + nNamespace = rMap.GetKeyByAttrName( _rxAttrList->getNameByIndex( i ), &sAttributeName ); + if ( XML_NAMESPACE_OFFICE == nNamespace ) { - nNamespace = GetImport().GetNamespaceMap().GetKeyByAttrName( _rxAttrList->getNameByIndex( i ), &sAttributeName ); - if ( XML_NAMESPACE_OFFICE == nNamespace ) + if ( token::IsXMLToken( sAttributeName, token::XML_VALUE ) + || token::IsXMLToken( sAttributeName, token::XML_STRING_VALUE ) + || token::IsXMLToken( sAttributeName, token::XML_BOOLEAN_VALUE ) + ) { - if ( token::IsXMLToken( sAttributeName, token::XML_VALUE ) - || token::IsXMLToken( sAttributeName, token::XML_STRING_VALUE ) - || token::IsXMLToken( sAttributeName, token::XML_BOOLEAN_VALUE ) - ) - { - m_rListValueHolder = _rxAttrList->getValueByIndex( i ); - continue; - } + m_rListValueHolder = _rxAttrList->getValueByIndex( i ); + continue; } - - OSL_ENSURE( false, - ::rtl::OString( "OListValueContext::StartElement: unknown child element (\"") - += ::rtl::OString( sAttributeName.getStr(), sAttributeName.getLength(), RTL_TEXTENCODING_ASCII_US ) - += ::rtl::OString( "\")!" ) ); } + + OSL_ENSURE( false, + ::rtl::OString( "OListValueContext::StartElement: unknown child element (\"") + += ::rtl::OString( sAttributeName.getStr(), sAttributeName.getLength(), RTL_TEXTENCODING_ASCII_US ) + += ::rtl::OString( "\")!" ) ); } +} //......................................................................... } // namespace xmloff diff --git a/xmloff/source/forms/propertyimport.hxx b/xmloff/source/forms/propertyimport.hxx index 01741dfdfa..2306bd80bd 100644 --- a/xmloff/source/forms/propertyimport.hxx +++ b/xmloff/source/forms/propertyimport.hxx @@ -36,6 +36,7 @@ #include <vos/ref.hxx> #include <comphelper/stl_types.hxx> #include <com/sun/star/beans/PropertyValue.hpp> +#include "layerimport.hxx" namespace com { namespace sun { namespace star { namespace util { struct Time; @@ -64,7 +65,7 @@ namespace xmloff static ::com::sun::star::uno::Type xmlTypeToUnoType( const ::rtl::OUString& _rType ); }; - class IFormsImportContext; + class OFormLayerXMLImport_Impl; //===================================================================== //= OPropertyImport //===================================================================== @@ -87,7 +88,7 @@ namespace xmloff DECLARE_STL_STDKEY_SET( ::rtl::OUString, StringSet ); StringSet m_aEncounteredAttributes; - IFormsImportContext& m_rContext; + OFormLayerXMLImport_Impl& m_rContext; sal_Bool m_bTrackAttributes; @@ -96,7 +97,7 @@ namespace xmloff // style properties) can be done in our own EndElement instead of letting derived classes do this. public: - OPropertyImport(IFormsImportContext& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName); + OPropertyImport(OFormLayerXMLImport_Impl& _rImport, sal_uInt16 _nPrefix, const ::rtl::OUString& _rName); virtual SvXMLImportContext* CreateChildContext( sal_uInt16 _nPrefix, const ::rtl::OUString& _rLocalName, diff --git a/xmloff/source/forms/strings.hxx b/xmloff/source/forms/strings.hxx index 870f2285e5..4db1c3a066 100644 --- a/xmloff/source/forms/strings.hxx +++ b/xmloff/source/forms/strings.hxx @@ -47,6 +47,7 @@ namespace xmloff const sal_Char* ascii; sal_Int32 length; + inline operator const ConstAsciiString* () const { return this; } inline const ::rtl::OUString* operator& () const; inline operator const ::rtl::OUString& () const { return *(&(*this)); } inline operator const sal_Char* () const { return ascii; } diff --git a/xmloff/source/meta/MetaExportComponent.cxx b/xmloff/source/meta/MetaExportComponent.cxx index 157358ba6c..add1e47305 100644 --- a/xmloff/source/meta/MetaExportComponent.cxx +++ b/xmloff/source/meta/MetaExportComponent.cxx @@ -158,10 +158,11 @@ sal_uInt32 XMLMetaExportComponent::exportDoc( enum XMLTokenEnum ) GetNamespaceMap().GetAttrNameByKey( XML_NAMESPACE_OFFICE ), GetNamespaceMap().GetNameByKey( XML_NAMESPACE_OFFICE ) ); #else - sal_uInt16 nPos = GetNamespaceMap().GetFirstKey(); + const SvXMLNamespaceMap& rMap = GetNamespaceMap(); + sal_uInt16 nPos = rMap.GetFirstKey(); while( USHRT_MAX != nPos ) { - GetAttrList().AddAttribute( GetNamespaceMap().GetAttrNameByKey( nPos ), GetNamespaceMap().GetNameByKey( nPos ) ); + GetAttrList().AddAttribute( rMap.GetAttrNameByKey( nPos ), rMap.GetNameByKey( nPos ) ); nPos = GetNamespaceMap().GetNextKey( nPos ); } #endif diff --git a/xmloff/source/meta/xmlmetae.cxx b/xmloff/source/meta/xmlmetae.cxx index a1a5e498e5..fb2893201f 100644 --- a/xmloff/source/meta/xmlmetae.cxx +++ b/xmloff/source/meta/xmlmetae.cxx @@ -410,7 +410,8 @@ SvXMLMetaExport::startElement(const ::rtl::OUString & i_rName, if (m_level == 0) { // namepace decls: default ones have been written at the root element // non-default ones must be preserved here - for (sal_Int16 i = 0; i < i_xAttribs->getLength(); ++i) { + const sal_Int16 nCount = i_xAttribs->getLength(); + for (sal_Int16 i = 0; i < nCount; ++i) { const ::rtl::OUString name(i_xAttribs->getNameByIndex(i)); if (name.matchAsciiL(s_xmlns, strlen(s_xmlns))) { bool found(false); @@ -440,7 +441,8 @@ SvXMLMetaExport::startElement(const ::rtl::OUString & i_rName, const ::rtl::OUString ns(iter->First); bool found(false); // but only if it is not already there - for (sal_Int16 i = 0; i < i_xAttribs->getLength(); ++i) { + const sal_Int16 nCount = i_xAttribs->getLength(); + for (sal_Int16 i = 0; i < nCount; ++i) { const ::rtl::OUString name(i_xAttribs->getNameByIndex(i)); if (ns.equals(name)) { found = true; @@ -457,7 +459,8 @@ SvXMLMetaExport::startElement(const ::rtl::OUString & i_rName, if (i_rName.matchAsciiL(s_meta, strlen(s_meta))) { // special handling for all elements that may have // xlink:href attributes; these must be made relative - for (sal_Int16 i = 0; i < i_xAttribs->getLength(); ++i) { + const sal_Int16 nLength = i_xAttribs->getLength(); + for (sal_Int16 i = 0; i < nLength; ++i) { const ::rtl::OUString name (i_xAttribs->getNameByIndex (i)); ::rtl::OUString value(i_xAttribs->getValueByIndex(i)); if (name.matchAsciiL(s_href, strlen(s_href))) { @@ -466,7 +469,8 @@ SvXMLMetaExport::startElement(const ::rtl::OUString & i_rName, mrExport.AddAttribute(name, value); } } else { - for (sal_Int16 i = 0; i < i_xAttribs->getLength(); ++i) { + const sal_Int16 nLength = i_xAttribs->getLength(); + for (sal_Int16 i = 0; i < nLength; ++i) { const ::rtl::OUString name (i_xAttribs->getNameByIndex(i)); const ::rtl::OUString value (i_xAttribs->getValueByIndex(i)); mrExport.AddAttribute(name, value); diff --git a/xmloff/source/script/XMLEventImportHelper.cxx b/xmloff/source/script/XMLEventImportHelper.cxx index 32ce276a8b..d1697d92a9 100644 --- a/xmloff/source/script/XMLEventImportHelper.cxx +++ b/xmloff/source/script/XMLEventImportHelper.cxx @@ -115,7 +115,7 @@ void XMLEventImportHelper::PopTranslationTable() { DBG_ASSERT(aEventNameMapList.size() > 0, "no translation tables left to pop"); - if (aEventNameMapList.size() > 0) + if ( !aEventNameMapList.empty() ) { // delete current and install old map delete pEventNameMap; diff --git a/xmloff/source/style/GradientStyle.cxx b/xmloff/source/style/GradientStyle.cxx index 96f46a766c..5652946d04 100644 --- a/xmloff/source/style/GradientStyle.cxx +++ b/xmloff/source/style/GradientStyle.cxx @@ -68,21 +68,6 @@ enum SvXMLTokenMapAttrs XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aGradientAttrTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_GRADIENT_NAME }, - { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_GRADIENT_DISPLAY_NAME }, - { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_GRADIENT_STYLE }, - { XML_NAMESPACE_DRAW, XML_CX, XML_TOK_GRADIENT_CX }, - { XML_NAMESPACE_DRAW, XML_CY, XML_TOK_GRADIENT_CY }, - { XML_NAMESPACE_DRAW, XML_START_COLOR, XML_TOK_GRADIENT_STARTCOLOR }, - { XML_NAMESPACE_DRAW, XML_END_COLOR, XML_TOK_GRADIENT_ENDCOLOR }, - { XML_NAMESPACE_DRAW, XML_START_INTENSITY, XML_TOK_GRADIENT_STARTINT }, - { XML_NAMESPACE_DRAW, XML_END_INTENSITY, XML_TOK_GRADIENT_ENDINT }, - { XML_NAMESPACE_DRAW, XML_GRADIENT_ANGLE, XML_TOK_GRADIENT_ANGLE }, - { XML_NAMESPACE_DRAW, XML_GRADIENT_BORDER, XML_TOK_GRADIENT_BORDER }, - XML_TOKEN_MAP_END -}; SvXMLEnumMapEntry __READONLY_DATA pXML_GradientStyle_Enum[] = { @@ -128,6 +113,23 @@ sal_Bool XMLGradientStyleImport::importXML( aGradient.Angle = 0; aGradient.Border = 0; + { + static __FAR_DATA SvXMLTokenMapEntry aGradientAttrTokenMap[] = +{ + { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_GRADIENT_NAME }, + { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_GRADIENT_DISPLAY_NAME }, + { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_GRADIENT_STYLE }, + { XML_NAMESPACE_DRAW, XML_CX, XML_TOK_GRADIENT_CX }, + { XML_NAMESPACE_DRAW, XML_CY, XML_TOK_GRADIENT_CY }, + { XML_NAMESPACE_DRAW, XML_START_COLOR, XML_TOK_GRADIENT_STARTCOLOR }, + { XML_NAMESPACE_DRAW, XML_END_COLOR, XML_TOK_GRADIENT_ENDCOLOR }, + { XML_NAMESPACE_DRAW, XML_START_INTENSITY, XML_TOK_GRADIENT_STARTINT }, + { XML_NAMESPACE_DRAW, XML_END_INTENSITY, XML_TOK_GRADIENT_ENDINT }, + { XML_NAMESPACE_DRAW, XML_GRADIENT_ANGLE, XML_TOK_GRADIENT_ANGLE }, + { XML_NAMESPACE_DRAW, XML_GRADIENT_BORDER, XML_TOK_GRADIENT_BORDER }, + XML_TOKEN_MAP_END +}; + SvXMLTokenMap aTokenMap( aGradientAttrTokenMap ); SvXMLNamespaceMap& rNamespaceMap = rImport.GetNamespaceMap(); @@ -225,6 +227,8 @@ sal_Bool XMLGradientStyleImport::importXML( bRet = bHasName && bHasStyle && bHasStartColor && bHasEndColor; + } + return bRet; } diff --git a/xmloff/source/style/HatchStyle.cxx b/xmloff/source/style/HatchStyle.cxx index bc6b4847b2..f0893b8077 100644 --- a/xmloff/source/style/HatchStyle.cxx +++ b/xmloff/source/style/HatchStyle.cxx @@ -60,16 +60,6 @@ enum SvXMLTokenMapAttrs XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aHatchAttrTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_HATCH_NAME }, - { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_HATCH_DISPLAY_NAME }, - { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_HATCH_STYLE }, - { XML_NAMESPACE_DRAW, XML_COLOR, XML_TOK_HATCH_COLOR }, - { XML_NAMESPACE_DRAW, XML_HATCH_DISTANCE, XML_TOK_HATCH_DISTANCE }, - { XML_NAMESPACE_DRAW, XML_ROTATION, XML_TOK_HATCH_ROTATION }, - XML_TOKEN_MAP_END -}; SvXMLEnumMapEntry __READONLY_DATA pXML_HatchStyle_Enum[] = { @@ -112,6 +102,18 @@ sal_Bool XMLHatchStyleImport::importXML( aHatch.Distance = 0; aHatch.Angle = 0; + { + static __FAR_DATA SvXMLTokenMapEntry aHatchAttrTokenMap[] = +{ + { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_HATCH_NAME }, + { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_HATCH_DISPLAY_NAME }, + { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_HATCH_STYLE }, + { XML_NAMESPACE_DRAW, XML_COLOR, XML_TOK_HATCH_COLOR }, + { XML_NAMESPACE_DRAW, XML_HATCH_DISTANCE, XML_TOK_HATCH_DISTANCE }, + { XML_NAMESPACE_DRAW, XML_ROTATION, XML_TOK_HATCH_ROTATION }, + XML_TOKEN_MAP_END +}; + SvXMLTokenMap aTokenMap( aHatchAttrTokenMap ); SvXMLNamespaceMap rNamespaceMap = rImport.GetNamespaceMap(); SvXMLUnitConverter& rUnitConverter = rImport.GetMM100UnitConverter(); @@ -179,6 +181,8 @@ sal_Bool XMLHatchStyleImport::importXML( bRet = bHasName && bHasStyle && bHasColor && bHasDist; + } + return bRet; } diff --git a/xmloff/source/style/ImageStyle.cxx b/xmloff/source/style/ImageStyle.cxx index ce8ddec58a..c53ce82061 100644 --- a/xmloff/source/style/ImageStyle.cxx +++ b/xmloff/source/style/ImageStyle.cxx @@ -63,18 +63,6 @@ enum SvXMLTokenMapAttrs XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aHatchAttrTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_IMAGE_NAME }, - { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_IMAGE_DISPLAY_NAME }, - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL }, - { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_IMAGE_TYPE }, - { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_IMAGE_SHOW }, - { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_IMAGE_ACTUATE }, - /*{ XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL }, - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL },*/ - XML_TOKEN_MAP_END -}; XMLImageStyle::XMLImageStyle() { @@ -165,6 +153,20 @@ sal_Bool XMLImageStyle::ImpImportXML( const uno::Reference< xml::sax::XAttribute OUString aStrURL; OUString aDisplayName; + { + static __FAR_DATA SvXMLTokenMapEntry aHatchAttrTokenMap[] = +{ + { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_IMAGE_NAME }, + { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_IMAGE_DISPLAY_NAME }, + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL }, + { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_IMAGE_TYPE }, + { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_IMAGE_SHOW }, + { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_IMAGE_ACTUATE }, + /*{ XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL }, + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_IMAGE_URL },*/ + XML_TOKEN_MAP_END +}; + SvXMLTokenMap aTokenMap( aHatchAttrTokenMap ); sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; @@ -220,5 +222,7 @@ sal_Bool XMLImageStyle::ImpImportXML( const uno::Reference< xml::sax::XAttribute bRet = bHasName && bHasHRef; + } + return bRet; } diff --git a/xmloff/source/style/TransGradientStyle.cxx b/xmloff/source/style/TransGradientStyle.cxx index 4fdd6ffbcb..65381d4d3f 100644 --- a/xmloff/source/style/TransGradientStyle.cxx +++ b/xmloff/source/style/TransGradientStyle.cxx @@ -64,19 +64,6 @@ enum SvXMLTokenMapAttrs XML_TOK_TABSTOP_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aTrGradientAttrTokenMap[] = -{ - { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_GRADIENT_NAME }, - { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_GRADIENT_DISPLAY_NAME }, - { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_GRADIENT_STYLE }, - { XML_NAMESPACE_DRAW, XML_CX, XML_TOK_GRADIENT_CX }, - { XML_NAMESPACE_DRAW, XML_CY, XML_TOK_GRADIENT_CY }, - { XML_NAMESPACE_DRAW, XML_START, XML_TOK_GRADIENT_START }, - { XML_NAMESPACE_DRAW, XML_END, XML_TOK_GRADIENT_END }, - { XML_NAMESPACE_DRAW, XML_GRADIENT_ANGLE, XML_TOK_GRADIENT_ANGLE }, - { XML_NAMESPACE_DRAW, XML_GRADIENT_BORDER, XML_TOK_GRADIENT_BORDER }, - XML_TOKEN_MAP_END -}; SvXMLEnumMapEntry __READONLY_DATA pXML_GradientStyle_Enum[] = { @@ -121,6 +108,21 @@ sal_Bool XMLTransGradientStyleImport::importXML( aGradient.Angle = 0; aGradient.Border = 0; + { + static __FAR_DATA SvXMLTokenMapEntry aTrGradientAttrTokenMap[] = +{ + { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_GRADIENT_NAME }, + { XML_NAMESPACE_DRAW, XML_DISPLAY_NAME, XML_TOK_GRADIENT_DISPLAY_NAME }, + { XML_NAMESPACE_DRAW, XML_STYLE, XML_TOK_GRADIENT_STYLE }, + { XML_NAMESPACE_DRAW, XML_CX, XML_TOK_GRADIENT_CX }, + { XML_NAMESPACE_DRAW, XML_CY, XML_TOK_GRADIENT_CY }, + { XML_NAMESPACE_DRAW, XML_START, XML_TOK_GRADIENT_START }, + { XML_NAMESPACE_DRAW, XML_END, XML_TOK_GRADIENT_END }, + { XML_NAMESPACE_DRAW, XML_GRADIENT_ANGLE, XML_TOK_GRADIENT_ANGLE }, + { XML_NAMESPACE_DRAW, XML_GRADIENT_BORDER, XML_TOK_GRADIENT_BORDER }, + XML_TOKEN_MAP_END +}; + SvXMLTokenMap aTokenMap( aTrGradientAttrTokenMap ); SvXMLNamespaceMap& rNamespaceMap = rImport.GetNamespaceMap(); @@ -218,6 +220,8 @@ sal_Bool XMLTransGradientStyleImport::importXML( bRet = bHasName && bHasStyle; + } + return bRet; } diff --git a/xmloff/source/style/XMLBackgroundImageContext.cxx b/xmloff/source/style/XMLBackgroundImageContext.cxx index 5229b5be1c..5e7e5534c2 100644 --- a/xmloff/source/style/XMLBackgroundImageContext.cxx +++ b/xmloff/source/style/XMLBackgroundImageContext.cxx @@ -62,27 +62,24 @@ enum SvXMLTokenMapAttrs XML_TOK_BGIMG_OPACITY, XML_TOK_NGIMG_END=XML_TOK_UNKNOWN }; - -static __FAR_DATA SvXMLTokenMapEntry aBGImgAttributesAttrTokenMap[] = +const SvXMLTokenMapEntry* lcl_getBGImgAttributesAttrTokenMap() { - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_BGIMG_HREF }, - { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_BGIMG_TYPE }, - { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_BGIMG_ACTUATE }, - { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_BGIMG_SHOW }, - { XML_NAMESPACE_STYLE, XML_POSITION, XML_TOK_BGIMG_POSITION }, - { XML_NAMESPACE_STYLE, XML_REPEAT, XML_TOK_BGIMG_REPEAT }, - { XML_NAMESPACE_STYLE, XML_FILTER_NAME, XML_TOK_BGIMG_FILTER }, - { XML_NAMESPACE_DRAW, XML_OPACITY, XML_TOK_BGIMG_OPACITY }, - XML_TOKEN_MAP_END -}; + static __FAR_DATA SvXMLTokenMapEntry aBGImgAttributesAttrTokenMap[] = + { + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_BGIMG_HREF }, + { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_BGIMG_TYPE }, + { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_BGIMG_ACTUATE }, + { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_BGIMG_SHOW }, + { XML_NAMESPACE_STYLE, XML_POSITION, XML_TOK_BGIMG_POSITION }, + { XML_NAMESPACE_STYLE, XML_REPEAT, XML_TOK_BGIMG_REPEAT }, + { XML_NAMESPACE_STYLE, XML_FILTER_NAME, XML_TOK_BGIMG_FILTER }, + { XML_NAMESPACE_DRAW, XML_OPACITY, XML_TOK_BGIMG_OPACITY }, + XML_TOKEN_MAP_END + }; + return aBGImgAttributesAttrTokenMap; +} + -SvXMLEnumMapEntry psXML_BrushRepeat[] = -{ - { XML_BACKGROUND_REPEAT, GraphicLocation_TILED }, - { XML_BACKGROUND_NO_REPEAT, GraphicLocation_MIDDLE_MIDDLE }, - { XML_BACKGROUND_STRETCH, GraphicLocation_AREA }, - { XML_TOKEN_INVALID, 0 } -}; SvXMLEnumMapEntry psXML_BrushHoriPos[] = { @@ -184,7 +181,7 @@ TYPEINIT1( XMLBackgroundImageContext, XMLElementPropertyContext ); void XMLBackgroundImageContext::ProcessAttrs( const Reference< xml::sax::XAttributeList >& xAttrList ) { - SvXMLTokenMap aTokenMap( aBGImgAttributesAttrTokenMap ); + SvXMLTokenMap aTokenMap( lcl_getBGImgAttributesAttrTokenMap() ); ePos = GraphicLocation_NONE; @@ -301,6 +298,13 @@ void XMLBackgroundImageContext::ProcessAttrs( case XML_TOK_BGIMG_REPEAT: { sal_uInt16 nPos = GraphicLocation_NONE; + static SvXMLEnumMapEntry psXML_BrushRepeat[] = + { + { XML_BACKGROUND_REPEAT, GraphicLocation_TILED }, + { XML_BACKGROUND_NO_REPEAT, GraphicLocation_MIDDLE_MIDDLE }, + { XML_BACKGROUND_STRETCH, GraphicLocation_AREA }, + { XML_TOKEN_INVALID, 0 } + }; if( SvXMLUnitConverter::convertEnum( nPos, rValue, psXML_BrushRepeat ) ) { diff --git a/xmloff/source/style/XMLFontStylesContext.cxx b/xmloff/source/style/XMLFontStylesContext.cxx index c16968e0d3..3bb6d98785 100644 --- a/xmloff/source/style/XMLFontStylesContext.cxx +++ b/xmloff/source/style/XMLFontStylesContext.cxx @@ -49,7 +49,7 @@ #ifndef _XMLOFF_XMLFONTSTYLESCONTEXT_HXX #include <xmloff/XMLFontStylesContext.hxx> #endif - +#include <rtl/logfile.hxx> using ::rtl::OUString; using ::rtl::OUStringBuffer; @@ -76,21 +76,25 @@ enum XMLFontStyleAttrTokens XML_TOK_FONT_STYLE_ATTR_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aFontStyleAttrTokenMap[] = +const SvXMLTokenMapEntry* lcl_getFontStyleAttrTokenMap() { - { XML_NAMESPACE_SVG, XML_FONT_FAMILY, - XML_TOK_FONT_STYLE_ATTR_FAMILY }, - { XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC, - XML_TOK_FONT_STYLE_ATTR_FAMILY_GENERIC }, - { XML_NAMESPACE_STYLE, XML_FONT_ADORNMENTS, - XML_TOK_FONT_STYLE_ATTR_STYLENAME }, - { XML_NAMESPACE_STYLE, XML_FONT_PITCH, - XML_TOK_FONT_STYLE_ATTR_PITCH }, - { XML_NAMESPACE_STYLE, XML_FONT_CHARSET, - XML_TOK_FONT_STYLE_ATTR_CHARSET }, - - XML_TOKEN_MAP_END -}; + static __FAR_DATA SvXMLTokenMapEntry aFontStyleAttrTokenMap[] = + { + { XML_NAMESPACE_SVG, XML_FONT_FAMILY, + XML_TOK_FONT_STYLE_ATTR_FAMILY }, + { XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC, + XML_TOK_FONT_STYLE_ATTR_FAMILY_GENERIC }, + { XML_NAMESPACE_STYLE, XML_FONT_ADORNMENTS, + XML_TOK_FONT_STYLE_ATTR_STYLENAME }, + { XML_NAMESPACE_STYLE, XML_FONT_PITCH, + XML_TOK_FONT_STYLE_ATTR_PITCH }, + { XML_NAMESPACE_STYLE, XML_FONT_CHARSET, + XML_TOK_FONT_STYLE_ATTR_CHARSET }, + + XML_TOKEN_MAP_END + }; + return aFontStyleAttrTokenMap; +} class XMLFontStyleContext_Impl : public SvXMLStyleContext { @@ -258,7 +262,7 @@ XMLFontStylesContext::XMLFontStylesContext( SvXMLImport& rImport, pFamilyHdl( new XMLFontFamilyPropHdl ), pPitchHdl( new XMLFontPitchPropHdl ), pEncHdl( new XMLFontEncodingPropHdl ), - pFontStyleAttrTokenMap( new SvXMLTokenMap(aFontStyleAttrTokenMap) ), + pFontStyleAttrTokenMap( new SvXMLTokenMap(lcl_getFontStyleAttrTokenMap()) ), eDfltEncoding( eDfltEnc ) { } diff --git a/xmloff/source/style/XMLFootnoteSeparatorExport.cxx b/xmloff/source/style/XMLFootnoteSeparatorExport.cxx index 659977ff7e..2f44af15ca 100644 --- a/xmloff/source/style/XMLFootnoteSeparatorExport.cxx +++ b/xmloff/source/style/XMLFootnoteSeparatorExport.cxx @@ -60,14 +60,6 @@ XMLFootnoteSeparatorExport::~XMLFootnoteSeparatorExport() } -static const SvXMLEnumMapEntry aXML_HorizontalAdjust_Enum[] = -{ - { XML_LEFT, text::HorizontalAdjust_LEFT }, - { XML_CENTER, text::HorizontalAdjust_CENTER }, - { XML_RIGHT, text::HorizontalAdjust_RIGHT }, - { XML_TOKEN_INVALID, 0 } -}; - void XMLFootnoteSeparatorExport::exportXML( const vector<XMLPropertyState> * pProperties, sal_uInt32 @@ -148,6 +140,14 @@ void XMLFootnoteSeparatorExport::exportXML( } // adjustment + static const SvXMLEnumMapEntry aXML_HorizontalAdjust_Enum[] = + { + { XML_LEFT, text::HorizontalAdjust_LEFT }, + { XML_CENTER, text::HorizontalAdjust_CENTER }, + { XML_RIGHT, text::HorizontalAdjust_RIGHT }, + { XML_TOKEN_INVALID, 0 } + }; + if (rExport.GetMM100UnitConverter().convertEnum( sBuf, eLineAdjust, aXML_HorizontalAdjust_Enum)) { diff --git a/xmloff/source/style/XMLFootnoteSeparatorImport.cxx b/xmloff/source/style/XMLFootnoteSeparatorImport.cxx index bfada994d6..cd07088eb1 100644 --- a/xmloff/source/style/XMLFootnoteSeparatorImport.cxx +++ b/xmloff/source/style/XMLFootnoteSeparatorImport.cxx @@ -86,15 +86,6 @@ XMLFootnoteSeparatorImport::~XMLFootnoteSeparatorImport() { } - -static const SvXMLEnumMapEntry aXML_HorizontalAdjust_Enum[] = -{ - { XML_LEFT, text::HorizontalAdjust_LEFT }, - { XML_CENTER, text::HorizontalAdjust_CENTER }, - { XML_RIGHT, text::HorizontalAdjust_RIGHT }, - { XML_TOKEN_INVALID, 0 } -}; - void XMLFootnoteSeparatorImport::StartElement( const Reference<XAttributeList> & xAttrList) { @@ -114,12 +105,11 @@ void XMLFootnoteSeparatorImport::StartElement( sal_uInt16 nPrefix = GetImport().GetNamespaceMap(). GetKeyByAttrName( xAttrList->getNameByIndex(nAttr), &sLocalName ); - OUString sAttrValue = xAttrList->getValueByIndex(nAttr); - - sal_Int32 nTmp; if (XML_NAMESPACE_STYLE == nPrefix) { + OUString sAttrValue = xAttrList->getValueByIndex(nAttr); + sal_Int32 nTmp; if (IsXMLToken( sLocalName, XML_WIDTH )) { if (GetImport().GetMM100UnitConverter().convertMeasure( @@ -143,6 +133,14 @@ void XMLFootnoteSeparatorImport::StartElement( else if (IsXMLToken( sLocalName, XML_ADJUSTMENT )) { sal_uInt16 nTmpU; + static const SvXMLEnumMapEntry aXML_HorizontalAdjust_Enum[] = + { + { XML_LEFT, text::HorizontalAdjust_LEFT }, + { XML_CENTER, text::HorizontalAdjust_CENTER }, + { XML_RIGHT, text::HorizontalAdjust_RIGHT }, + { XML_TOKEN_INVALID, 0 } + }; + if (SvXMLUnitConverter::convertEnum( nTmpU, sAttrValue, aXML_HorizontalAdjust_Enum)) eLineAdjust = (sal_Int16)nTmpU; diff --git a/xmloff/source/style/fonthdl.cxx b/xmloff/source/style/fonthdl.cxx index 0a8ae76666..5ad8d761ae 100644 --- a/xmloff/source/style/fonthdl.cxx +++ b/xmloff/source/style/fonthdl.cxx @@ -51,17 +51,21 @@ using ::rtl::OUStringBuffer; using namespace ::com::sun::star; using namespace ::xmloff::token; -static SvXMLEnumMapEntry __READONLY_DATA aFontFamilyGenericMapping[] = +const SvXMLEnumMapEntry* lcl_getFontFamilyGenericMapping() { - { XML_DECORATIVE, FAMILY_DECORATIVE }, - - { XML_MODERN, FAMILY_MODERN }, - { XML_ROMAN, FAMILY_ROMAN }, - { XML_SCRIPT, FAMILY_SCRIPT }, - { XML_SWISS, FAMILY_SWISS }, - { XML_SYSTEM, FAMILY_SYSTEM }, - { XML_TOKEN_INVALID, 0 } -}; + static SvXMLEnumMapEntry __READONLY_DATA aFontFamilyGenericMapping[] = + { + { XML_DECORATIVE, FAMILY_DECORATIVE }, + + { XML_MODERN, FAMILY_MODERN }, + { XML_ROMAN, FAMILY_ROMAN }, + { XML_SCRIPT, FAMILY_SCRIPT }, + { XML_SWISS, FAMILY_SWISS }, + { XML_SYSTEM, FAMILY_SYSTEM }, + { XML_TOKEN_INVALID, 0 } + }; + return aFontFamilyGenericMapping; +} static SvXMLEnumMapEntry __READONLY_DATA aFontPitchMapping[] = { @@ -219,7 +223,7 @@ XMLFontFamilyPropHdl::~XMLFontFamilyPropHdl() sal_Bool XMLFontFamilyPropHdl::importXML( const OUString& rStrImpValue, uno::Any& rValue, const SvXMLUnitConverter& ) const { sal_uInt16 eNewFamily; - sal_Bool bRet = SvXMLUnitConverter::convertEnum( eNewFamily, rStrImpValue, aFontFamilyGenericMapping ); + sal_Bool bRet = SvXMLUnitConverter::convertEnum( eNewFamily, rStrImpValue, lcl_getFontFamilyGenericMapping() ); if( bRet ) rValue <<= (sal_Int16)eNewFamily; @@ -236,7 +240,7 @@ sal_Bool XMLFontFamilyPropHdl::exportXML( OUString& rStrExpValue, const uno::Any { FontFamily eFamily = (FontFamily)nFamily; if( eFamily != FAMILY_DONTKNOW ) - bRet = SvXMLUnitConverter::convertEnum( aOut, eFamily, aFontFamilyGenericMapping ); + bRet = SvXMLUnitConverter::convertEnum( aOut, eFamily, lcl_getFontFamilyGenericMapping() ); } rStrExpValue = aOut.makeStringAndClear(); diff --git a/xmloff/source/style/xmlexppr.cxx b/xmloff/source/style/xmlexppr.cxx index 0b465de9dc..eac3d834cc 100644 --- a/xmloff/source/style/xmlexppr.cxx +++ b/xmloff/source/style/xmlexppr.cxx @@ -725,7 +725,7 @@ vector< XMLPropertyState > SvXMLExportPropertyMapper::_Filter( } // Call centext-filter - if( aPropStateArray.size() > 0 ) + if( !aPropStateArray.empty() ) ContextFilter( aPropStateArray, xPropSet ); // Have to do if we change from a vector to a list or something like that diff --git a/xmloff/source/style/xmlnumfi.cxx b/xmloff/source/style/xmlnumfi.cxx index 55471a59f2..c61e7a87ca 100644 --- a/xmloff/source/style/xmlnumfi.cxx +++ b/xmloff/source/style/xmlnumfi.cxx @@ -334,82 +334,6 @@ static ColorData aNumFmtStdColors[XML_NUMF_COLORCOUNT] = // token maps // -static __FAR_DATA SvXMLTokenMapEntry aStylesElemMap[] = -{ - // style elements - { XML_NAMESPACE_NUMBER, XML_NUMBER_STYLE, XML_TOK_STYLES_NUMBER_STYLE }, - { XML_NAMESPACE_NUMBER, XML_CURRENCY_STYLE, XML_TOK_STYLES_CURRENCY_STYLE }, - { XML_NAMESPACE_NUMBER, XML_PERCENTAGE_STYLE, XML_TOK_STYLES_PERCENTAGE_STYLE }, - { XML_NAMESPACE_NUMBER, XML_DATE_STYLE, XML_TOK_STYLES_DATE_STYLE }, - { XML_NAMESPACE_NUMBER, XML_TIME_STYLE, XML_TOK_STYLES_TIME_STYLE }, - { XML_NAMESPACE_NUMBER, XML_BOOLEAN_STYLE, XML_TOK_STYLES_BOOLEAN_STYLE }, - { XML_NAMESPACE_NUMBER, XML_TEXT_STYLE, XML_TOK_STYLES_TEXT_STYLE }, - XML_TOKEN_MAP_END -}; - -static __FAR_DATA SvXMLTokenMapEntry aStyleElemMap[] = -{ - // elements in a style - { XML_NAMESPACE_NUMBER, XML_TEXT, XML_TOK_STYLE_TEXT }, - { XML_NAMESPACE_NUMBER, XML_NUMBER, XML_TOK_STYLE_NUMBER }, - { XML_NAMESPACE_NUMBER, XML_SCIENTIFIC_NUMBER, XML_TOK_STYLE_SCIENTIFIC_NUMBER }, - { XML_NAMESPACE_NUMBER, XML_FRACTION, XML_TOK_STYLE_FRACTION }, - { XML_NAMESPACE_NUMBER, XML_CURRENCY_SYMBOL, XML_TOK_STYLE_CURRENCY_SYMBOL }, - { XML_NAMESPACE_NUMBER, XML_DAY, XML_TOK_STYLE_DAY }, - { XML_NAMESPACE_NUMBER, XML_MONTH, XML_TOK_STYLE_MONTH }, - { XML_NAMESPACE_NUMBER, XML_YEAR, XML_TOK_STYLE_YEAR }, - { XML_NAMESPACE_NUMBER, XML_ERA, XML_TOK_STYLE_ERA }, - { XML_NAMESPACE_NUMBER, XML_DAY_OF_WEEK, XML_TOK_STYLE_DAY_OF_WEEK }, - { XML_NAMESPACE_NUMBER, XML_WEEK_OF_YEAR, XML_TOK_STYLE_WEEK_OF_YEAR }, - { XML_NAMESPACE_NUMBER, XML_QUARTER, XML_TOK_STYLE_QUARTER }, - { XML_NAMESPACE_NUMBER, XML_HOURS, XML_TOK_STYLE_HOURS }, - { XML_NAMESPACE_NUMBER, XML_AM_PM, XML_TOK_STYLE_AM_PM }, - { XML_NAMESPACE_NUMBER, XML_MINUTES, XML_TOK_STYLE_MINUTES }, - { XML_NAMESPACE_NUMBER, XML_SECONDS, XML_TOK_STYLE_SECONDS }, - { XML_NAMESPACE_NUMBER, XML_BOOLEAN, XML_TOK_STYLE_BOOLEAN }, - { XML_NAMESPACE_NUMBER, XML_TEXT_CONTENT, XML_TOK_STYLE_TEXT_CONTENT }, - { XML_NAMESPACE_STYLE, XML_TEXT_PROPERTIES, XML_TOK_STYLE_PROPERTIES }, - { XML_NAMESPACE_STYLE, XML_MAP, XML_TOK_STYLE_MAP }, - XML_TOKEN_MAP_END -}; - -static __FAR_DATA SvXMLTokenMapEntry aStyleAttrMap[] = -{ - // attributes for a style - { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_STYLE_ATTR_NAME }, - { XML_NAMESPACE_NUMBER, XML_LANGUAGE, XML_TOK_STYLE_ATTR_LANGUAGE }, - { XML_NAMESPACE_NUMBER, XML_COUNTRY, XML_TOK_STYLE_ATTR_COUNTRY }, - { XML_NAMESPACE_NUMBER, XML_TITLE, XML_TOK_STYLE_ATTR_TITLE }, - { XML_NAMESPACE_NUMBER, XML_AUTOMATIC_ORDER, XML_TOK_STYLE_ATTR_AUTOMATIC_ORDER }, - { XML_NAMESPACE_NUMBER, XML_FORMAT_SOURCE, XML_TOK_STYLE_ATTR_FORMAT_SOURCE }, - { XML_NAMESPACE_NUMBER, XML_TRUNCATE_ON_OVERFLOW, XML_TOK_STYLE_ATTR_TRUNCATE_ON_OVERFLOW }, - { XML_NAMESPACE_STYLE, XML_VOLATILE, XML_TOK_STYLE_ATTR_VOLATILE }, - { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_FORMAT, XML_TOK_STYLE_ATTR_TRANSL_FORMAT }, - { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_LANGUAGE, XML_TOK_STYLE_ATTR_TRANSL_LANGUAGE }, - { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_COUNTRY, XML_TOK_STYLE_ATTR_TRANSL_COUNTRY }, - { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_STYLE, XML_TOK_STYLE_ATTR_TRANSL_STYLE }, - XML_TOKEN_MAP_END -}; - -static __FAR_DATA SvXMLTokenMapEntry aStyleElemAttrMap[] = -{ - // attributes for an element within a style - { XML_NAMESPACE_NUMBER, XML_DECIMAL_PLACES, XML_TOK_ELEM_ATTR_DECIMAL_PLACES }, - { XML_NAMESPACE_NUMBER, XML_MIN_INTEGER_DIGITS, XML_TOK_ELEM_ATTR_MIN_INTEGER_DIGITS }, - { XML_NAMESPACE_NUMBER, XML_GROUPING, XML_TOK_ELEM_ATTR_GROUPING }, - { XML_NAMESPACE_NUMBER, XML_DISPLAY_FACTOR, XML_TOK_ELEM_ATTR_DISPLAY_FACTOR }, - { XML_NAMESPACE_NUMBER, XML_DECIMAL_REPLACEMENT, XML_TOK_ELEM_ATTR_DECIMAL_REPLACEMENT }, - { XML_NAMESPACE_NUMBER, XML_MIN_EXPONENT_DIGITS, XML_TOK_ELEM_ATTR_MIN_EXPONENT_DIGITS }, - { XML_NAMESPACE_NUMBER, XML_MIN_NUMERATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_NUMERATOR_DIGITS }, - { XML_NAMESPACE_NUMBER, XML_MIN_DENOMINATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_DENOMINATOR_DIGITS }, - { XML_NAMESPACE_NUMBER, XML_LANGUAGE, XML_TOK_ELEM_ATTR_LANGUAGE }, - { XML_NAMESPACE_NUMBER, XML_COUNTRY, XML_TOK_ELEM_ATTR_COUNTRY }, - { XML_NAMESPACE_NUMBER, XML_STYLE, XML_TOK_ELEM_ATTR_STYLE }, - { XML_NAMESPACE_NUMBER, XML_TEXTUAL, XML_TOK_ELEM_ATTR_TEXTUAL }, - { XML_NAMESPACE_NUMBER, XML_CALENDAR, XML_TOK_ELEM_ATTR_CALENDAR }, - XML_TOKEN_MAP_END -}; - // maps for SvXMLUnitConverter::convertEnum static __FAR_DATA SvXMLEnumMapEntry aStyleValueMap[] = @@ -581,28 +505,112 @@ void SvXMLNumImpData::RemoveVolatileFormats() const SvXMLTokenMap& SvXMLNumImpData::GetStylesElemTokenMap() { if( !pStylesElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aStylesElemMap[] = + { + // style elements + { XML_NAMESPACE_NUMBER, XML_NUMBER_STYLE, XML_TOK_STYLES_NUMBER_STYLE }, + { XML_NAMESPACE_NUMBER, XML_CURRENCY_STYLE, XML_TOK_STYLES_CURRENCY_STYLE }, + { XML_NAMESPACE_NUMBER, XML_PERCENTAGE_STYLE, XML_TOK_STYLES_PERCENTAGE_STYLE }, + { XML_NAMESPACE_NUMBER, XML_DATE_STYLE, XML_TOK_STYLES_DATE_STYLE }, + { XML_NAMESPACE_NUMBER, XML_TIME_STYLE, XML_TOK_STYLES_TIME_STYLE }, + { XML_NAMESPACE_NUMBER, XML_BOOLEAN_STYLE, XML_TOK_STYLES_BOOLEAN_STYLE }, + { XML_NAMESPACE_NUMBER, XML_TEXT_STYLE, XML_TOK_STYLES_TEXT_STYLE }, + XML_TOKEN_MAP_END + }; + pStylesElemTokenMap = new SvXMLTokenMap( aStylesElemMap ); + } return *pStylesElemTokenMap; } const SvXMLTokenMap& SvXMLNumImpData::GetStyleElemTokenMap() { if( !pStyleElemTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aStyleElemMap[] = + { + // elements in a style + { XML_NAMESPACE_NUMBER, XML_TEXT, XML_TOK_STYLE_TEXT }, + { XML_NAMESPACE_NUMBER, XML_NUMBER, XML_TOK_STYLE_NUMBER }, + { XML_NAMESPACE_NUMBER, XML_SCIENTIFIC_NUMBER, XML_TOK_STYLE_SCIENTIFIC_NUMBER }, + { XML_NAMESPACE_NUMBER, XML_FRACTION, XML_TOK_STYLE_FRACTION }, + { XML_NAMESPACE_NUMBER, XML_CURRENCY_SYMBOL, XML_TOK_STYLE_CURRENCY_SYMBOL }, + { XML_NAMESPACE_NUMBER, XML_DAY, XML_TOK_STYLE_DAY }, + { XML_NAMESPACE_NUMBER, XML_MONTH, XML_TOK_STYLE_MONTH }, + { XML_NAMESPACE_NUMBER, XML_YEAR, XML_TOK_STYLE_YEAR }, + { XML_NAMESPACE_NUMBER, XML_ERA, XML_TOK_STYLE_ERA }, + { XML_NAMESPACE_NUMBER, XML_DAY_OF_WEEK, XML_TOK_STYLE_DAY_OF_WEEK }, + { XML_NAMESPACE_NUMBER, XML_WEEK_OF_YEAR, XML_TOK_STYLE_WEEK_OF_YEAR }, + { XML_NAMESPACE_NUMBER, XML_QUARTER, XML_TOK_STYLE_QUARTER }, + { XML_NAMESPACE_NUMBER, XML_HOURS, XML_TOK_STYLE_HOURS }, + { XML_NAMESPACE_NUMBER, XML_AM_PM, XML_TOK_STYLE_AM_PM }, + { XML_NAMESPACE_NUMBER, XML_MINUTES, XML_TOK_STYLE_MINUTES }, + { XML_NAMESPACE_NUMBER, XML_SECONDS, XML_TOK_STYLE_SECONDS }, + { XML_NAMESPACE_NUMBER, XML_BOOLEAN, XML_TOK_STYLE_BOOLEAN }, + { XML_NAMESPACE_NUMBER, XML_TEXT_CONTENT, XML_TOK_STYLE_TEXT_CONTENT }, + { XML_NAMESPACE_STYLE, XML_TEXT_PROPERTIES, XML_TOK_STYLE_PROPERTIES }, + { XML_NAMESPACE_STYLE, XML_MAP, XML_TOK_STYLE_MAP }, + XML_TOKEN_MAP_END + }; + pStyleElemTokenMap = new SvXMLTokenMap( aStyleElemMap ); + } return *pStyleElemTokenMap; } const SvXMLTokenMap& SvXMLNumImpData::GetStyleAttrTokenMap() { if( !pStyleAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aStyleAttrMap[] = + { + // attributes for a style + { XML_NAMESPACE_STYLE, XML_NAME, XML_TOK_STYLE_ATTR_NAME }, + { XML_NAMESPACE_NUMBER, XML_LANGUAGE, XML_TOK_STYLE_ATTR_LANGUAGE }, + { XML_NAMESPACE_NUMBER, XML_COUNTRY, XML_TOK_STYLE_ATTR_COUNTRY }, + { XML_NAMESPACE_NUMBER, XML_TITLE, XML_TOK_STYLE_ATTR_TITLE }, + { XML_NAMESPACE_NUMBER, XML_AUTOMATIC_ORDER, XML_TOK_STYLE_ATTR_AUTOMATIC_ORDER }, + { XML_NAMESPACE_NUMBER, XML_FORMAT_SOURCE, XML_TOK_STYLE_ATTR_FORMAT_SOURCE }, + { XML_NAMESPACE_NUMBER, XML_TRUNCATE_ON_OVERFLOW, XML_TOK_STYLE_ATTR_TRUNCATE_ON_OVERFLOW }, + { XML_NAMESPACE_STYLE, XML_VOLATILE, XML_TOK_STYLE_ATTR_VOLATILE }, + { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_FORMAT, XML_TOK_STYLE_ATTR_TRANSL_FORMAT }, + { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_LANGUAGE, XML_TOK_STYLE_ATTR_TRANSL_LANGUAGE }, + { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_COUNTRY, XML_TOK_STYLE_ATTR_TRANSL_COUNTRY }, + { XML_NAMESPACE_NUMBER, XML_TRANSLITERATION_STYLE, XML_TOK_STYLE_ATTR_TRANSL_STYLE }, + XML_TOKEN_MAP_END + }; + pStyleAttrTokenMap = new SvXMLTokenMap( aStyleAttrMap ); + } return *pStyleAttrTokenMap; } const SvXMLTokenMap& SvXMLNumImpData::GetStyleElemAttrTokenMap() { if( !pStyleElemAttrTokenMap ) + { + static __FAR_DATA SvXMLTokenMapEntry aStyleElemAttrMap[] = + { + // attributes for an element within a style + { XML_NAMESPACE_NUMBER, XML_DECIMAL_PLACES, XML_TOK_ELEM_ATTR_DECIMAL_PLACES }, + { XML_NAMESPACE_NUMBER, XML_MIN_INTEGER_DIGITS, XML_TOK_ELEM_ATTR_MIN_INTEGER_DIGITS }, + { XML_NAMESPACE_NUMBER, XML_GROUPING, XML_TOK_ELEM_ATTR_GROUPING }, + { XML_NAMESPACE_NUMBER, XML_DISPLAY_FACTOR, XML_TOK_ELEM_ATTR_DISPLAY_FACTOR }, + { XML_NAMESPACE_NUMBER, XML_DECIMAL_REPLACEMENT, XML_TOK_ELEM_ATTR_DECIMAL_REPLACEMENT }, + { XML_NAMESPACE_NUMBER, XML_MIN_EXPONENT_DIGITS, XML_TOK_ELEM_ATTR_MIN_EXPONENT_DIGITS }, + { XML_NAMESPACE_NUMBER, XML_MIN_NUMERATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_NUMERATOR_DIGITS }, + { XML_NAMESPACE_NUMBER, XML_MIN_DENOMINATOR_DIGITS, XML_TOK_ELEM_ATTR_MIN_DENOMINATOR_DIGITS }, + { XML_NAMESPACE_NUMBER, XML_LANGUAGE, XML_TOK_ELEM_ATTR_LANGUAGE }, + { XML_NAMESPACE_NUMBER, XML_COUNTRY, XML_TOK_ELEM_ATTR_COUNTRY }, + { XML_NAMESPACE_NUMBER, XML_STYLE, XML_TOK_ELEM_ATTR_STYLE }, + { XML_NAMESPACE_NUMBER, XML_TEXTUAL, XML_TOK_ELEM_ATTR_TEXTUAL }, + { XML_NAMESPACE_NUMBER, XML_CALENDAR, XML_TOK_ELEM_ATTR_CALENDAR }, + XML_TOKEN_MAP_END + }; + pStyleElemAttrTokenMap = new SvXMLTokenMap( aStyleElemAttrMap ); + } return *pStyleElemAttrTokenMap; } diff --git a/xmloff/source/style/xmlnumi.cxx b/xmloff/source/style/xmlnumi.cxx index abe3564564..b96c7e9bb8 100644 --- a/xmloff/source/style/xmlnumi.cxx +++ b/xmloff/source/style/xmlnumi.cxx @@ -182,25 +182,29 @@ enum SvxXMLTextListLevelStyleAttrTokens XML_TOK_TEXT_LEVEL_ATTR_END=XML_TOK_UNKNOWN }; -static __FAR_DATA SvXMLTokenMapEntry aLevelAttrTokenMap[] = +const SvXMLTokenMapEntry* lcl_getLevelAttrTokenMap() { - { XML_NAMESPACE_TEXT, XML_LEVEL, XML_TOK_TEXT_LEVEL_ATTR_LEVEL }, - { XML_NAMESPACE_TEXT, XML_STYLE_NAME, XML_TOK_TEXT_LEVEL_ATTR_STYLE_NAME }, - { XML_NAMESPACE_TEXT, XML_BULLET_CHAR, XML_TOK_TEXT_LEVEL_ATTR_BULLET_CHAR }, - { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_TEXT_LEVEL_ATTR_HREF }, - { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_TEXT_LEVEL_ATTR_TYPE }, - { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_TEXT_LEVEL_ATTR_SHOW }, - { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_TEXT_LEVEL_ATTR_ACTUATE }, - - { XML_NAMESPACE_STYLE, XML_NUM_FORMAT, XML_TOK_TEXT_LEVEL_ATTR_NUM_FORMAT }, - { XML_NAMESPACE_STYLE, XML_NUM_PREFIX, XML_TOK_TEXT_LEVEL_ATTR_NUM_PREFIX }, - { XML_NAMESPACE_STYLE, XML_NUM_SUFFIX, XML_TOK_TEXT_LEVEL_ATTR_NUM_SUFFIX }, - { XML_NAMESPACE_STYLE, XML_NUM_LETTER_SYNC, XML_TOK_TEXT_LEVEL_ATTR_NUM_LETTER_SYNC }, - { XML_NAMESPACE_TEXT, XML_START_VALUE, XML_TOK_TEXT_LEVEL_ATTR_START_VALUE }, - { XML_NAMESPACE_TEXT, XML_DISPLAY_LEVELS, XML_TOK_TEXT_LEVEL_ATTR_DISPLAY_LEVELS }, - - XML_TOKEN_MAP_END -}; + static __FAR_DATA SvXMLTokenMapEntry aLevelAttrTokenMap[] = + { + { XML_NAMESPACE_TEXT, XML_LEVEL, XML_TOK_TEXT_LEVEL_ATTR_LEVEL }, + { XML_NAMESPACE_TEXT, XML_STYLE_NAME, XML_TOK_TEXT_LEVEL_ATTR_STYLE_NAME }, + { XML_NAMESPACE_TEXT, XML_BULLET_CHAR, XML_TOK_TEXT_LEVEL_ATTR_BULLET_CHAR }, + { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_TEXT_LEVEL_ATTR_HREF }, + { XML_NAMESPACE_XLINK, XML_TYPE, XML_TOK_TEXT_LEVEL_ATTR_TYPE }, + { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_TEXT_LEVEL_ATTR_SHOW }, + { XML_NAMESPACE_XLINK, XML_ACTUATE, XML_TOK_TEXT_LEVEL_ATTR_ACTUATE }, + + { XML_NAMESPACE_STYLE, XML_NUM_FORMAT, XML_TOK_TEXT_LEVEL_ATTR_NUM_FORMAT }, + { XML_NAMESPACE_STYLE, XML_NUM_PREFIX, XML_TOK_TEXT_LEVEL_ATTR_NUM_PREFIX }, + { XML_NAMESPACE_STYLE, XML_NUM_SUFFIX, XML_TOK_TEXT_LEVEL_ATTR_NUM_SUFFIX }, + { XML_NAMESPACE_STYLE, XML_NUM_LETTER_SYNC, XML_TOK_TEXT_LEVEL_ATTR_NUM_LETTER_SYNC }, + { XML_NAMESPACE_TEXT, XML_START_VALUE, XML_TOK_TEXT_LEVEL_ATTR_START_VALUE }, + { XML_NAMESPACE_TEXT, XML_DISPLAY_LEVELS, XML_TOK_TEXT_LEVEL_ATTR_DISPLAY_LEVELS }, + + XML_TOKEN_MAP_END + }; + return aLevelAttrTokenMap; +} class SvxXMLListLevelStyleContext_Impl : public SvXMLImportContext { @@ -357,7 +361,7 @@ SvxXMLListLevelStyleContext_Impl::SvxXMLListLevelStyleContext_Impl( else if( IsXMLToken( rLName, XML_LIST_LEVEL_STYLE_IMAGE ) ) bImage = sal_True; - SvXMLTokenMap aTokenMap( aLevelAttrTokenMap ); + SvXMLTokenMap aTokenMap( lcl_getLevelAttrTokenMap() ); sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; for( sal_Int16 i=0; i < nAttrCount; i++ ) { @@ -693,50 +697,53 @@ enum SvxXMLStyleAttributesAttrTokens XML_TOK_STYLE_ATTRIBUTES_ATTR_END=XML_TOK_UNKNOWN }; - -static __FAR_DATA SvXMLTokenMapEntry aStyleAttributesAttrTokenMap[] = +const SvXMLTokenMapEntry* lcl_getStyleAttributesAttrTokenMap() { - { XML_NAMESPACE_TEXT, XML_SPACE_BEFORE, - XML_TOK_STYLE_ATTRIBUTES_ATTR_SPACE_BEFORE }, - { XML_NAMESPACE_TEXT, XML_MIN_LABEL_WIDTH, - XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_WIDTH }, - { XML_NAMESPACE_TEXT, XML_MIN_LABEL_DISTANCE, - XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_DIST }, - { XML_NAMESPACE_FO, XML_TEXT_ALIGN, - XML_TOK_STYLE_ATTRIBUTES_ATTR_TEXT_ALIGN }, - { XML_NAMESPACE_STYLE, XML_FONT_NAME, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_NAME }, - { XML_NAMESPACE_FO, XML_FONT_FAMILY, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY }, - { XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY_GENERIC }, - { XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_STYLENAME }, - { XML_NAMESPACE_STYLE, XML_FONT_PITCH, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_PITCH }, - { XML_NAMESPACE_STYLE, XML_FONT_CHARSET, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_CHARSET }, - { XML_NAMESPACE_STYLE, XML_VERTICAL_POS, - XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_POS }, - { XML_NAMESPACE_STYLE, XML_VERTICAL_REL, - XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_REL }, - { XML_NAMESPACE_FO, XML_WIDTH, - XML_TOK_STYLE_ATTRIBUTES_ATTR_WIDTH }, - { XML_NAMESPACE_FO, XML_HEIGHT, - XML_TOK_STYLE_ATTRIBUTES_ATTR_HEIGHT }, - { XML_NAMESPACE_FO, XML_COLOR, - XML_TOK_STYLE_ATTRIBUTES_ATTR_COLOR }, - { XML_NAMESPACE_STYLE, XML_USE_WINDOW_FONT_COLOR, - XML_TOK_STYLE_ATTRIBUTES_ATTR_WINDOW_FONT_COLOR }, - { XML_NAMESPACE_FO, XML_FONT_SIZE, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_SIZE }, - // --> OD 2008-01-16 #newlistlevelattrs# - { XML_NAMESPACE_TEXT, XML_LIST_LEVEL_POSITION_AND_SPACE_MODE, - XML_TOK_STYLE_ATTRIBUTES_ATTR_POSITION_AND_SPACE_MODE }, - // <-- + static __FAR_DATA SvXMLTokenMapEntry aStyleAttributesAttrTokenMap[] = + { + { XML_NAMESPACE_TEXT, XML_SPACE_BEFORE, + XML_TOK_STYLE_ATTRIBUTES_ATTR_SPACE_BEFORE }, + { XML_NAMESPACE_TEXT, XML_MIN_LABEL_WIDTH, + XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_WIDTH }, + { XML_NAMESPACE_TEXT, XML_MIN_LABEL_DISTANCE, + XML_TOK_STYLE_ATTRIBUTES_ATTR_MIN_LABEL_DIST }, + { XML_NAMESPACE_FO, XML_TEXT_ALIGN, + XML_TOK_STYLE_ATTRIBUTES_ATTR_TEXT_ALIGN }, + { XML_NAMESPACE_STYLE, XML_FONT_NAME, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_NAME }, + { XML_NAMESPACE_FO, XML_FONT_FAMILY, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY }, + { XML_NAMESPACE_STYLE, XML_FONT_FAMILY_GENERIC, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_FAMILY_GENERIC }, + { XML_NAMESPACE_STYLE, XML_FONT_STYLE_NAME, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_STYLENAME }, + { XML_NAMESPACE_STYLE, XML_FONT_PITCH, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_PITCH }, + { XML_NAMESPACE_STYLE, XML_FONT_CHARSET, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_CHARSET }, + { XML_NAMESPACE_STYLE, XML_VERTICAL_POS, + XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_POS }, + { XML_NAMESPACE_STYLE, XML_VERTICAL_REL, + XML_TOK_STYLE_ATTRIBUTES_ATTR_VERTICAL_REL }, + { XML_NAMESPACE_FO, XML_WIDTH, + XML_TOK_STYLE_ATTRIBUTES_ATTR_WIDTH }, + { XML_NAMESPACE_FO, XML_HEIGHT, + XML_TOK_STYLE_ATTRIBUTES_ATTR_HEIGHT }, + { XML_NAMESPACE_FO, XML_COLOR, + XML_TOK_STYLE_ATTRIBUTES_ATTR_COLOR }, + { XML_NAMESPACE_STYLE, XML_USE_WINDOW_FONT_COLOR, + XML_TOK_STYLE_ATTRIBUTES_ATTR_WINDOW_FONT_COLOR }, + { XML_NAMESPACE_FO, XML_FONT_SIZE, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FONT_SIZE }, + // --> OD 2008-01-16 #newlistlevelattrs# + { XML_NAMESPACE_TEXT, XML_LIST_LEVEL_POSITION_AND_SPACE_MODE, + XML_TOK_STYLE_ATTRIBUTES_ATTR_POSITION_AND_SPACE_MODE }, + // <-- - XML_TOKEN_MAP_END -}; + XML_TOKEN_MAP_END + }; + return aStyleAttributesAttrTokenMap; +} SvxXMLListLevelStyleAttrContext_Impl::SvxXMLListLevelStyleAttrContext_Impl( SvXMLImport& rImport, sal_uInt16 nPrfx, const OUString& rLName, @@ -745,7 +752,7 @@ SvxXMLListLevelStyleAttrContext_Impl::SvxXMLListLevelStyleAttrContext_Impl( SvXMLImportContext( rImport, nPrfx, rLName ), rListLevel( rLLevel ) { - SvXMLTokenMap aTokenMap( aStyleAttributesAttrTokenMap ); + SvXMLTokenMap aTokenMap( lcl_getStyleAttributesAttrTokenMap() ); SvXMLUnitConverter& rUnitConv = GetImport().GetMM100UnitConverter(); OUString sFontName, sFontFamily, sFontStyleName, sFontFamilyGeneric, @@ -1020,20 +1027,23 @@ enum SvxXMLStyleAttributesLabelAlignmentAttrTokens XML_TOK_STYLE_ATTRIBUTES_LABEL_ALIGNMENT_ATTR_END=XML_TOK_UNKNOWN }; - -static __FAR_DATA SvXMLTokenMapEntry aStyleAlignmentAttributesAttrTokenMap[] = +const SvXMLTokenMapEntry* lcl_getStyleAlignmentAttributesAttrTokenMap() { - { XML_NAMESPACE_TEXT, XML_LABEL_FOLLOWED_BY, - XML_TOK_STYLE_ATTRIBUTES_ATTR_LABEL_FOLLOWED_BY }, - { XML_NAMESPACE_TEXT, XML_LIST_TAB_STOP_POSITION, - XML_TOK_STYLE_ATTRIBUTES_ATTR_LISTTAB_STOP_POSITION }, - { XML_NAMESPACE_FO, XML_TEXT_INDENT, - XML_TOK_STYLE_ATTRIBUTES_ATTR_FIRST_LINE_INDENT }, - { XML_NAMESPACE_FO, XML_MARGIN_LEFT, - XML_TOK_STYLE_ATTRIBUTES_ATTR_INDENT_AT }, - - XML_TOKEN_MAP_END -}; + static __FAR_DATA SvXMLTokenMapEntry aStyleAlignmentAttributesAttrTokenMap[] = + { + { XML_NAMESPACE_TEXT, XML_LABEL_FOLLOWED_BY, + XML_TOK_STYLE_ATTRIBUTES_ATTR_LABEL_FOLLOWED_BY }, + { XML_NAMESPACE_TEXT, XML_LIST_TAB_STOP_POSITION, + XML_TOK_STYLE_ATTRIBUTES_ATTR_LISTTAB_STOP_POSITION }, + { XML_NAMESPACE_FO, XML_TEXT_INDENT, + XML_TOK_STYLE_ATTRIBUTES_ATTR_FIRST_LINE_INDENT }, + { XML_NAMESPACE_FO, XML_MARGIN_LEFT, + XML_TOK_STYLE_ATTRIBUTES_ATTR_INDENT_AT }, + + XML_TOKEN_MAP_END + }; + return aStyleAlignmentAttributesAttrTokenMap; +} SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl::SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl( SvXMLImport& rImport, sal_uInt16 nPrfx, const OUString& rLName, @@ -1042,7 +1052,7 @@ SvxXMLListLevelStyleLabelAlignmentAttrContext_Impl::SvxXMLListLevelStyleLabelAli SvXMLImportContext( rImport, nPrfx, rLName ), rListLevel( rLLevel ) { - SvXMLTokenMap aTokenMap( aStyleAlignmentAttributesAttrTokenMap ); + SvXMLTokenMap aTokenMap( lcl_getStyleAlignmentAttributesAttrTokenMap() ); SvXMLUnitConverter& rUnitConv = GetImport().GetMM100UnitConverter(); sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; diff --git a/xmloff/source/text/XMLIndexTOCStylesContext.cxx b/xmloff/source/text/XMLIndexTOCStylesContext.cxx index 2ec7e23c1e..ae43e705fb 100644 --- a/xmloff/source/text/XMLIndexTOCStylesContext.cxx +++ b/xmloff/source/text/XMLIndexTOCStylesContext.cxx @@ -111,7 +111,7 @@ void XMLIndexTOCStylesContext::EndElement() if (nOutlineLevel >= 0) { // copy vector into sequence - sal_Int32 nCount = aStyleNames.size(); + const sal_Int32 nCount = aStyleNames.size(); Sequence<OUString> aStyleNamesSequence(nCount); for(sal_Int32 i = 0; i < nCount; i++) { diff --git a/xmloff/source/text/XMLIndexTemplateContext.cxx b/xmloff/source/text/XMLIndexTemplateContext.cxx index 2123f3e67d..5376a4ed9e 100644 --- a/xmloff/source/text/XMLIndexTemplateContext.cxx +++ b/xmloff/source/text/XMLIndexTemplateContext.cxx @@ -196,7 +196,7 @@ void XMLIndexTemplateContext::EndElement() { if (bOutlineLevelOK) { - sal_Int32 nCount = aValueVector.size(); + const sal_Int32 nCount = aValueVector.size(); Sequence<PropertyValues> aValueSequence(nCount); for(sal_Int32 i = 0; i<nCount; i++) { diff --git a/xmloff/source/text/XMLLineNumberingImportContext.cxx b/xmloff/source/text/XMLLineNumberingImportContext.cxx index 4ab3ccfa87..139e123f4f 100644 --- a/xmloff/source/text/XMLLineNumberingImportContext.cxx +++ b/xmloff/source/text/XMLLineNumberingImportContext.cxx @@ -91,47 +91,36 @@ XMLLineNumberingImportContext::~XMLLineNumberingImportContext() { } - - -static const SvXMLEnumMapEntry aLineNumberPositionMap[] = -{ - { XML_LEFT, style::LineNumberPosition::LEFT }, - { XML_RIGHT, style::LineNumberPosition::RIGHT }, - { XML_INSIDE, style::LineNumberPosition::INSIDE }, - { XML_OUTSIDE, style::LineNumberPosition::OUTSIDE }, - { XML_TOKEN_INVALID, 0 } -}; - -static SvXMLTokenMapEntry aLineNumberingTokenMap[] = -{ - { XML_NAMESPACE_TEXT, XML_STYLE_NAME, XML_TOK_LINENUMBERING_STYLE_NAME }, - { XML_NAMESPACE_TEXT, XML_NUMBER_LINES, - XML_TOK_LINENUMBERING_NUMBER_LINES }, - { XML_NAMESPACE_TEXT, XML_COUNT_EMPTY_LINES, - XML_TOK_LINENUMBERING_COUNT_EMPTY_LINES }, - { XML_NAMESPACE_TEXT, XML_COUNT_IN_TEXT_BOXES, - XML_TOK_LINENUMBERING_COUNT_IN_TEXT_BOXES }, - { XML_NAMESPACE_TEXT, XML_RESTART_ON_PAGE, - XML_TOK_LINENUMBERING_RESTART_NUMBERING }, - { XML_NAMESPACE_TEXT, XML_OFFSET, XML_TOK_LINENUMBERING_OFFSET }, - { XML_NAMESPACE_STYLE, XML_NUM_FORMAT, XML_TOK_LINENUMBERING_NUM_FORMAT }, - { XML_NAMESPACE_STYLE, XML_NUM_LETTER_SYNC, - XML_TOK_LINENUMBERING_NUM_LETTER_SYNC }, - { XML_NAMESPACE_TEXT, XML_NUMBER_POSITION, - XML_TOK_LINENUMBERING_NUMBER_POSITION }, - { XML_NAMESPACE_TEXT, XML_INCREMENT, XML_TOK_LINENUMBERING_INCREMENT }, -// { XML_NAMESPACE_TEXT, XML_LINENUMBERING_CONFIGURATION, -// XML_TOK_LINENUMBERING_LINENUMBERING_CONFIGURATION }, -// { XML_NAMESPACE_TEXT, XML_INCREMENT, XML_TOK_LINENUMBERING_INCREMENT }, -// { XML_NAMESPACE_TEXT, XML_LINENUMBERING_SEPARATOR, -// XML_TOK_LINENUMBERING_LINENUMBERING_SEPARATOR }, - - XML_TOKEN_MAP_END -}; - void XMLLineNumberingImportContext::StartElement( const Reference<XAttributeList> & xAttrList) { + static SvXMLTokenMapEntry aLineNumberingTokenMap[] = + { + { XML_NAMESPACE_TEXT, XML_STYLE_NAME, XML_TOK_LINENUMBERING_STYLE_NAME }, + { XML_NAMESPACE_TEXT, XML_NUMBER_LINES, + XML_TOK_LINENUMBERING_NUMBER_LINES }, + { XML_NAMESPACE_TEXT, XML_COUNT_EMPTY_LINES, + XML_TOK_LINENUMBERING_COUNT_EMPTY_LINES }, + { XML_NAMESPACE_TEXT, XML_COUNT_IN_TEXT_BOXES, + XML_TOK_LINENUMBERING_COUNT_IN_TEXT_BOXES }, + { XML_NAMESPACE_TEXT, XML_RESTART_ON_PAGE, + XML_TOK_LINENUMBERING_RESTART_NUMBERING }, + { XML_NAMESPACE_TEXT, XML_OFFSET, XML_TOK_LINENUMBERING_OFFSET }, + { XML_NAMESPACE_STYLE, XML_NUM_FORMAT, XML_TOK_LINENUMBERING_NUM_FORMAT }, + { XML_NAMESPACE_STYLE, XML_NUM_LETTER_SYNC, + XML_TOK_LINENUMBERING_NUM_LETTER_SYNC }, + { XML_NAMESPACE_TEXT, XML_NUMBER_POSITION, + XML_TOK_LINENUMBERING_NUMBER_POSITION }, + { XML_NAMESPACE_TEXT, XML_INCREMENT, XML_TOK_LINENUMBERING_INCREMENT }, + // { XML_NAMESPACE_TEXT, XML_LINENUMBERING_CONFIGURATION, + // XML_TOK_LINENUMBERING_LINENUMBERING_CONFIGURATION }, + // { XML_NAMESPACE_TEXT, XML_INCREMENT, XML_TOK_LINENUMBERING_INCREMENT }, + // { XML_NAMESPACE_TEXT, XML_LINENUMBERING_SEPARATOR, + // XML_TOK_LINENUMBERING_LINENUMBERING_SEPARATOR }, + + XML_TOKEN_MAP_END + }; + SvXMLTokenMap aTokenMap(aLineNumberingTokenMap); // process attributes @@ -207,6 +196,15 @@ void XMLLineNumberingImportContext::ProcessAttribute( case XML_TOK_LINENUMBERING_NUMBER_POSITION: { + static const SvXMLEnumMapEntry aLineNumberPositionMap[] = + { + { XML_LEFT, style::LineNumberPosition::LEFT }, + { XML_RIGHT, style::LineNumberPosition::RIGHT }, + { XML_INSIDE, style::LineNumberPosition::INSIDE }, + { XML_OUTSIDE, style::LineNumberPosition::OUTSIDE }, + { XML_TOKEN_INVALID, 0 } + }; + sal_uInt16 nTmp16; if (SvXMLUnitConverter::convertEnum(nTmp16, sValue, aLineNumberPositionMap)) diff --git a/xmloff/source/text/txtflde.cxx b/xmloff/source/text/txtflde.cxx index 56de401f0b..37f44a5f5e 100644 --- a/xmloff/source/text/txtflde.cxx +++ b/xmloff/source/text/txtflde.cxx @@ -1931,7 +1931,7 @@ void XMLTextFieldExport::ExportFieldDeclarations( // now process fields: // variable field masters: - if (aVarName.size() > 0) + if ( !aVarName.empty() ) { SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT, @@ -1990,7 +1990,7 @@ void XMLTextFieldExport::ExportFieldDeclarations( // else: no declarations element // sequence field masters: - if (aSeqName.size() > 0) + if ( !aSeqName.empty() ) { SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT, @@ -2032,7 +2032,7 @@ void XMLTextFieldExport::ExportFieldDeclarations( // else: no declarations element // user field field masters: - if (aUserName.size() > 0) + if ( !aUserName.empty() ) { SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT, @@ -2083,7 +2083,7 @@ void XMLTextFieldExport::ExportFieldDeclarations( // else: no declarations element // DDE field field masters: - if (aDdeName.size() > 0) + if ( !aDdeName.empty() ) { SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_TEXT, diff --git a/xmloff/source/text/txtimp.cxx b/xmloff/source/text/txtimp.cxx index 52d0c0f1d2..533e93bb53 100644 --- a/xmloff/source/text/txtimp.cxx +++ b/xmloff/source/text/txtimp.cxx @@ -1367,7 +1367,7 @@ void XMLTextImportHelper::FindOutlineStyleName( ::rtl::OUString& rStyleName, mpOutlineStylesCandidates = new ::std::vector<OUString>[xChapterNumbering->getCount()]; } - if ( mpOutlineStylesCandidates[nOutlineLevel].size() == 0 ) + if ( mpOutlineStylesCandidates[nOutlineLevel].empty() ) { // no other name used previously? Then use default @@ -1592,13 +1592,13 @@ void XMLTextImportHelper::SetOutlineStyles( sal_Bool bSetEmptyLevels ) { if ( bSetEmptyLevels || ( mpOutlineStylesCandidates && - mpOutlineStylesCandidates[i].size() > 0 ) ) + !mpOutlineStylesCandidates[i].empty() ) ) { // determine, which candidate is one to be assigned to the list // level of the outline style OUString sChoosenStyle( sEmpty ); if ( mpOutlineStylesCandidates && - mpOutlineStylesCandidates[i].size() > 0 ) + !mpOutlineStylesCandidates[i].empty() ) { // --> OD 2007-12-19 #152540# if ( bChooseLastOne ) @@ -2197,7 +2197,7 @@ sal_Bool XMLTextImportHelper::FindAndRemoveBookmarkStartRange( ::rtl::OUString XMLTextImportHelper::FindActiveBookmarkName() { - if (aBookmarkVector.size()>0) { + if ( !aBookmarkVector.empty() ) { return aBookmarkVector.back(); } else return ::rtl::OUString(); // return the empty string on error... } diff --git a/xmloff/source/text/txtlists.cxx b/xmloff/source/text/txtlists.cxx index 90906a8e1e..47345fddef 100644 --- a/xmloff/source/text/txtlists.cxx +++ b/xmloff/source/text/txtlists.cxx @@ -111,7 +111,8 @@ void XMLTextListsHelper::PopListContext() OSL_ENSURE(mListStack.size(), "internal error: PopListContext: mListStack empty"); // fprintf(stderr, "PopListContext\n"); - if (mListStack.size()) mListStack.pop(); + if ( !mListStack.empty()) + mListStack.pop(); } void XMLTextListsHelper::ListContextTop( @@ -119,7 +120,7 @@ void XMLTextListsHelper::ListContextTop( XMLTextListItemContext*& o_pListItemContext, XMLNumberedParaContext*& o_pNumberedParagraphContext ) { - if (mListStack.size()) { + if ( !mListStack.empty() ) { o_pListBlockContext = static_cast<XMLTextListBlockContext*>(&mListStack.top().get<0>()); o_pListItemContext = @@ -140,7 +141,7 @@ void XMLTextListsHelper::SetListItem( XMLTextListItemContext *i_pListItem ) OSL_ENSURE(!mListStack.top().get<1>(), "error: SetListItem: list item already exists"); } - if (mListStack.size()) { + if ( !mListStack.empty() ) { mListStack.top().get<1>() = i_pListItem; } } @@ -397,7 +398,7 @@ XMLTextListsHelper::EnsureNumberedParagraph( OSL_ENSURE(io_rLevel >= 0, "inavlid Level"); NumParaList_t & rNPList( mNPLists[i_ListId] ); const ::rtl::OUString none; // default - if (!rNPList.size() && (0 != io_rLevel)) { + if ( rNPList.empty() && (0 != io_rLevel)) { // create default list style for top level sal_Int16 lev(0); rNPList.push_back(::std::make_pair(none, @@ -405,7 +406,7 @@ XMLTextListsHelper::EnsureNumberedParagraph( } // create num rule first because this might clamp the level... uno::Reference<container::XIndexReplace> xNumRules; - if ((0 == io_rLevel) || !rNPList.size() || i_StyleName.getLength()) { + if ((0 == io_rLevel) || rNPList.empty() || i_StyleName.getLength()) { // no parent to inherit from, or explicit style given => new numrules! // index of parent: level - 1, but maybe that does not exist const size_t parent( std::min(static_cast<size_t>(io_rLevel), diff --git a/xmloff/source/text/txtparae.cxx b/xmloff/source/text/txtparae.cxx index ed001cb4da..3bd72cfef6 100644 --- a/xmloff/source/text/txtparae.cxx +++ b/xmloff/source/text/txtparae.cxx @@ -258,7 +258,7 @@ void XMLTextParagraphExport::Add( sal_uInt16 nFamily, } } - if( xPropStates.size() > 0L ) + if( !xPropStates.empty() ) { Reference< XPropertySetInfo > xPropSetInfo(rPropSet->getPropertySetInfo()); OUString sParent, sCondParent; @@ -432,7 +432,7 @@ void XMLTextParagraphExport::Add( sal_uInt16 nFamily, } } - if( xPropStates.size() > 0L ) + if( !xPropStates.empty() ) { OUString sParent, sCondParent; switch( nFamily ) @@ -3810,7 +3810,7 @@ void XMLTextParagraphExport::PopTextListsHelper() delete mpTextListsHelper; mpTextListsHelper = 0; maTextListsHelperStack.pop_back(); - if ( maTextListsHelperStack.size() > 0 ) + if ( !maTextListsHelperStack.empty() ) { mpTextListsHelper = maTextListsHelperStack.back(); } |