summaryrefslogtreecommitdiff
path: root/xmloff
diff options
context:
space:
mode:
authorVladimir Glazounov <vg@openoffice.org>2009-07-06 21:00:37 +0000
committerVladimir Glazounov <vg@openoffice.org>2009-07-06 21:00:37 +0000
commit28da1d1acd7ac7784e758d0960a088cb8c84ee28 (patch)
tree713c46f0c609d665dcdf36c11fe3938ba32000b2 /xmloff
parentbd4bb9c7b8b7494ddf532a0296c415036d8e1fea (diff)
CWS-TOOLING: integrate CWS impress173_DEV300
2009-06-16 15:50:22 +0200 sj r273022 : #i101545# fixed crash - bracketing of graphic links has been done twice leading to a broken graphic state stack 2009-06-05 10:37:58 +0200 cl r272669 : #i102298# prevent export of multiple writing-mode attributes for cell styles 2009-06-05 10:29:42 +0200 cl r272667 : #i98403# fixed editing of motion path
Diffstat (limited to 'xmloff')
-rw-r--r--xmloff/inc/xmloff/table/XMLTableExport.hxx2
-rw-r--r--xmloff/inc/xmloff/txtprmap.hxx2
-rw-r--r--xmloff/source/draw/sdpropls.cxx29
-rw-r--r--xmloff/source/draw/sdpropls.hxx2
-rw-r--r--xmloff/source/draw/shapeexport.cxx3
-rw-r--r--xmloff/source/table/XMLTableExport.cxx4
-rw-r--r--xmloff/source/text/txtprmap.cxx2
7 files changed, 36 insertions, 8 deletions
diff --git a/xmloff/inc/xmloff/table/XMLTableExport.hxx b/xmloff/inc/xmloff/table/XMLTableExport.hxx
index 9d42ffc109..041c96d194 100644
--- a/xmloff/inc/xmloff/table/XMLTableExport.hxx
+++ b/xmloff/inc/xmloff/table/XMLTableExport.hxx
@@ -75,7 +75,7 @@ typedef ::std::map< const ::com::sun::star::uno::Reference< com::sun::star::tabl
class XMLOFF_DLLPUBLIC XMLTableExport : public UniRefBase
{
public:
- XMLTableExport(SvXMLExport& rExp, const rtl::Reference< XMLPropertySetMapper >& xCellPropertySetMapper, const rtl::Reference< XMLPropertyHandlerFactory >& xFactoryRef );
+ XMLTableExport(SvXMLExport& rExp, const rtl::Reference< SvXMLExportPropertyMapper >& xCellExportPropertySetMapper, const rtl::Reference< XMLPropertyHandlerFactory >& xFactoryRef );
virtual ~XMLTableExport();
// This method collects all automatic styles for the given table
diff --git a/xmloff/inc/xmloff/txtprmap.hxx b/xmloff/inc/xmloff/txtprmap.hxx
index 3cbdeaa98e..c1dbb2bba1 100644
--- a/xmloff/inc/xmloff/txtprmap.hxx
+++ b/xmloff/inc/xmloff/txtprmap.hxx
@@ -71,7 +71,7 @@
#define CTF_FONTFAMILY (XML_TEXT_CTF_START + 36)
#define CTF_FONTPITCH (XML_TEXT_CTF_START + 37)
#define CTF_FONTCHARSET (XML_TEXT_CTF_START + 38)
-// (XML_TEXT_CTF_START + 39)
+#define CTF_TEXTWRITINGMODE (XML_TEXT_CTF_START + 39)
#define CTF_SYNCHEIGHT_MIN (XML_TEXT_CTF_START + 40)
#define CTF_FRAMEHEIGHT_ABS (XML_TEXT_CTF_START + 41)
#define CTF_FRAMEHEIGHT_REL (XML_TEXT_CTF_START + 42)
diff --git a/xmloff/source/draw/sdpropls.cxx b/xmloff/source/draw/sdpropls.cxx
index 42d3ab356b..fb440dc11e 100644
--- a/xmloff/source/draw/sdpropls.cxx
+++ b/xmloff/source/draw/sdpropls.cxx
@@ -268,7 +268,7 @@ const XMLPropertyMapEntry aXMLSDProperties[] =
GMAP( "ControlDataStyle", XML_NAMESPACE_STYLE,XML_DATA_STYLE_NAME, XML_TYPE_STRING|MID_FLAG_NO_PROPERTY_EXPORT|MID_FLAG_SPECIAL_ITEM, CTF_SD_CONTROL_SHAPE_DATA_STYLE ),
GMAP( "ControlTextEmphasis", XML_NAMESPACE_STYLE,XML_TEXT_EMPHASIZE, XML_TYPE_CONTROL_TEXT_EMPHASIZE, 0 ),
GMAP( "ImageScaleMode", XML_NAMESPACE_STYLE,XML_REPEAT, XML_SD_TYPE_IMAGE_SCALE_MODE|MID_FLAG_MULTI_PROPERTY, 0 ),
- GMAP( "ControlWritingMode", XML_NAMESPACE_STYLE,XML_WRITING_MODE, XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT|MID_FLAG_MULTI_PROPERTY, 0 ),
+ GMAP( "ControlWritingMode", XML_NAMESPACE_STYLE,XML_WRITING_MODE, XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT|MID_FLAG_MULTI_PROPERTY, CTF_CONTROLWRITINGMODE ),
// special entries for floating frames
GMAP( "FrameIsAutoScroll", XML_NAMESPACE_DRAW, XML_FRAME_DISPLAY_SCROLLBAR, XML_TYPE_BOOL|MID_FLAG_MULTI_PROPERTY, CTF_FRAME_DISPLAY_SCROLLBAR ),
@@ -1230,6 +1230,10 @@ void XMLShapeExportPropertyMapper::ContextFilter(
XMLPropertyState* pClip11State = NULL;
XMLPropertyState* pClipState = NULL;
+ XMLPropertyState* pShapeWritingMode = NULL;
+ XMLPropertyState* pTextWritingMode = NULL;
+ XMLPropertyState* pControlWritingMode = NULL;
+
// filter properties
for( std::vector< XMLPropertyState >::iterator aIter = rProperties.begin();
aIter != rProperties.end();
@@ -1261,14 +1265,24 @@ void XMLShapeExportPropertyMapper::ContextFilter(
break;
case CTF_WRITINGMODE:
{
+ pShapeWritingMode = property;
text::WritingMode eWritingMode;
if( property->maValue >>= eWritingMode )
{
if( text::WritingMode_LR_TB == eWritingMode )
+ {
property->mnIndex = -1;
+ pShapeWritingMode = 0;
+ }
}
}
break;
+ case CTF_CONTROLWRITINGMODE:
+ pControlWritingMode = property;
+ break;
+ case CTF_TEXTWRITINGMODE:
+ pTextWritingMode = property;
+ break;
case CTF_REPEAT_OFFSET_X:
pRepeatOffsetX = property;
break;
@@ -1353,6 +1367,19 @@ void XMLShapeExportPropertyMapper::ContextFilter(
}
}
+ // check for duplicate writing mode
+ if( pShapeWritingMode && (pTextWritingMode || pControlWritingMode) )
+ {
+ if( pTextWritingMode )
+ pTextWritingMode->mnIndex = -1;
+ if( pControlWritingMode )
+ pControlWritingMode->mnIndex = -1;
+ }
+ else if( pTextWritingMode && pControlWritingMode )
+ {
+ pControlWritingMode->mnIndex = -1;
+ }
+
// do not export visual area for internal ole objects
if( pOLEIsInternal )
{
diff --git a/xmloff/source/draw/sdpropls.hxx b/xmloff/source/draw/sdpropls.hxx
index 9664f4b6a6..569340c8c3 100644
--- a/xmloff/source/draw/sdpropls.hxx
+++ b/xmloff/source/draw/sdpropls.hxx
@@ -142,7 +142,7 @@ extern const XMLPropertyMapEntry aXMLSDPresPageProps_onlyHeadersFooter[];
//////////////////////////////////////////////////////////////////////////////
#define CTF_NUMBERINGRULES 1000
-//#define CTF_NUMBERINGRULES_NAME 1001
+#define CTF_CONTROLWRITINGMODE 1001
#define CTF_WRITINGMODE 1002
#define CTF_REPEAT_OFFSET_X 1003
#define CTF_REPEAT_OFFSET_Y 1004
diff --git a/xmloff/source/draw/shapeexport.cxx b/xmloff/source/draw/shapeexport.cxx
index 2c0a3072ba..b39d29e664 100644
--- a/xmloff/source/draw/shapeexport.cxx
+++ b/xmloff/source/draw/shapeexport.cxx
@@ -1213,7 +1213,8 @@ const rtl::Reference< XMLTableExport >& XMLShapeExport::GetShapeTableExport()
if( !mxShapeTableExport.is() )
{
rtl::Reference< XMLPropertyHandlerFactory > xFactory( new XMLSdPropHdlFactory( mrExport.GetModel(), mrExport ) );
- rtl::Reference< XMLPropertySetMapper > xPropertySetMapper( new XMLShapePropertySetMapper( xFactory.get() ) );
+ UniReference < XMLPropertySetMapper > xMapper( new XMLShapePropertySetMapper( xFactory.get() ) );
+ rtl::Reference< SvXMLExportPropertyMapper > xPropertySetMapper( new XMLShapeExportPropertyMapper( xMapper, (XMLTextListAutoStylePool*)&mrExport.GetTextParagraphExport()->GetListAutoStylePool(), mrExport ) );
mxShapeTableExport = new XMLTableExport( mrExport, xPropertySetMapper, xFactory );
}
diff --git a/xmloff/source/table/XMLTableExport.cxx b/xmloff/source/table/XMLTableExport.cxx
index e7d0915b72..7c8d3c5c2a 100644
--- a/xmloff/source/table/XMLTableExport.cxx
+++ b/xmloff/source/table/XMLTableExport.cxx
@@ -150,7 +150,7 @@ sal_Int32 StringStatisticHelper::getModeString( OUString& rStyleName )
// class XMLTableExport
// --------------------------------------------------------------------
-XMLTableExport::XMLTableExport(SvXMLExport& rExp, const rtl::Reference< XMLPropertySetMapper >& xCellPropertySetMapper, const rtl::Reference< XMLPropertyHandlerFactory >& xFactoryRef )
+XMLTableExport::XMLTableExport(SvXMLExport& rExp, const rtl::Reference< SvXMLExportPropertyMapper >& xExportPropertyMapper, const rtl::Reference< XMLPropertyHandlerFactory >& xFactoryRef )
: mrExport( rExp )
, mbExportTables( false )
{
@@ -174,7 +174,7 @@ XMLTableExport::XMLTableExport(SvXMLExport& rExp, const rtl::Reference< XMLPrope
(void)e;
}
- mxCellExportPropertySetMapper = new SvXMLExportPropertyMapper( xCellPropertySetMapper.get() );
+ mxCellExportPropertySetMapper = xExportPropertyMapper;
mxCellExportPropertySetMapper->ChainExportMapper(XMLTextParagraphExport::CreateParaExtPropMapper(rExp));
mxRowExportPropertySetMapper = new SvXMLExportPropertyMapper( new XMLPropertySetMapper( getRowPropertiesMap(), xFactoryRef.get() ) );
diff --git a/xmloff/source/text/txtprmap.cxx b/xmloff/source/text/txtprmap.cxx
index 1a7b3631e5..e68469f561 100644
--- a/xmloff/source/text/txtprmap.cxx
+++ b/xmloff/source/text/txtprmap.cxx
@@ -372,7 +372,7 @@ XMLPropertyMapEntry aXMLParaPropMap[] =
// RES_PARATR_SNAPTOGRID
MP_E( "SnapToGrid", STYLE, SNAP_TO_LAYOUT_GRID, XML_TYPE_BOOL, 0 ),
- MP_ED( "WritingMode", STYLE, WRITING_MODE, XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT, 0 ),
+ MP_ED( "WritingMode", STYLE, WRITING_MODE, XML_TYPE_TEXT_WRITING_MODE_WITH_DEFAULT, CTF_TEXTWRITINGMODE ),
MP_E( "ParaIsConnectBorder", STYLE, JOIN_BORDER, XML_TYPE_BOOL, 0 ),