summaryrefslogtreecommitdiff
path: root/sc/source/filter/xml/xmlstyle.cxx
diff options
context:
space:
mode:
authorNoel Power <noel.power@suse.com>2013-01-11 09:52:39 +0000
committerNoel Power <noel.power@suse.com>2013-01-11 10:31:56 +0000
commit066bdb31f7ff801b7a36c79c43ecbd527ffb2a88 (patch)
treeeb28b23de349a9b251fd38315c1b37830ed80ff3 /sc/source/filter/xml/xmlstyle.cxx
parentfd5a921a00f034817f67e7e00bd61f0a3f851441 (diff)
support saving/loading hyperlink cell attribute in extended odf
style:table-cell-properties has new child element style:hyperlink which will store the hyperlink info in attributes xlink:href & xlink:type Change-Id: I184310d124c4242cd62fdabb45f9773094cfc229
Diffstat (limited to 'sc/source/filter/xml/xmlstyle.cxx')
-rw-r--r--sc/source/filter/xml/xmlstyle.cxx24
1 files changed, 23 insertions, 1 deletions
diff --git a/sc/source/filter/xml/xmlstyle.cxx b/sc/source/filter/xml/xmlstyle.cxx
index a40e833e4031..e81a1737a6dd 100644
--- a/sc/source/filter/xml/xmlstyle.cxx
+++ b/sc/source/filter/xml/xmlstyle.cxx
@@ -79,6 +79,7 @@ const XMLPropertyMapEntry aXMLScCellStylesProperties[] =
MAP( "HoriJustify", XML_NAMESPACE_FO, XML_TEXT_ALIGN, XML_TYPE_PROP_PARAGRAPH|XML_SC_TYPE_HORIJUSTIFY|MID_FLAG_MERGE_PROPERTY, 0 ),
MAP( "HoriJustify", XML_NAMESPACE_STYLE, XML_TEXT_ALIGN_SOURCE, XML_TYPE_PROP_TABLE_CELL|XML_SC_TYPE_HORIJUSTIFYSOURCE|MID_FLAG_MERGE_PROPERTY, 0 ),
MAP( "HoriJustify", XML_NAMESPACE_STYLE, XML_REPEAT_CONTENT, XML_TYPE_PROP_TABLE_CELL|XML_SC_TYPE_HORIJUSTIFYREPEAT|MID_FLAG_MERGE_PROPERTY, 0 ),
+ MAP_EXT( SC_UNONAME_HYPERLINK, XML_NAMESPACE_STYLE, XML_HYPERLINK, XML_TYPE_PROP_TABLE_CELL | XML_TYPE_STRING | MID_FLAG_ELEMENT_ITEM, CTF_SC_HYPERLINK ),
MAP_EXT( SC_UNONAME_CELLHJUS_METHOD, XML_NAMESPACE_CSS3TEXT, XML_TEXT_JUSTIFY, XML_TYPE_PROP_PARAGRAPH|XML_SC_TYPE_HORIJUSTIFY_METHOD, 0 ),
MAP( "IsCellBackgroundTransparent", XML_NAMESPACE_FO, XML_BACKGROUND_COLOR, XML_TYPE_PROP_TABLE_CELL|XML_TYPE_ISTRANSPARENT|MID_FLAG_MULTI_PROPERTY|MID_FLAG_MERGE_ATTRIBUTE, 0 ),
MAP( "IsTextWrapped", XML_NAMESPACE_FO, XML_WRAP_OPTION, XML_TYPE_PROP_TABLE_CELL|XML_SC_ISTEXTWRAPPED, 0 ),
@@ -107,7 +108,6 @@ const XMLPropertyMapEntry aXMLScCellStylesProperties[] =
MAP( "ValidationXML", XML_NAMESPACE_TABLE, XML_CONTENT_VALIDATION, XML_TYPE_PROP_TABLE_CELL|XML_TYPE_BUILDIN_CMP_ONLY, CTF_SC_VALIDATION ),
MAP( "VertJustify", XML_NAMESPACE_STYLE, XML_VERTICAL_ALIGN, XML_TYPE_PROP_TABLE_CELL|XML_SC_TYPE_VERTJUSTIFY, 0),
MAP_EXT( SC_UNONAME_CELLVJUS_METHOD, XML_NAMESPACE_STYLE, XML_VERTICAL_JUSTIFY, XML_TYPE_PROP_TABLE_CELL|XML_SC_TYPE_VERTJUSTIFY_METHOD, 0 ),
-
MAP_END()
};
@@ -520,6 +520,28 @@ void ScXMLCellExportPropertyMapper::handleSpecialItem(
// the SpecialItem ConditionlaFormat must not be handled by this method
// the SpecialItem CharBackColor must not be handled by this method
}
+void ScXMLCellExportPropertyMapper::handleElementItem(
+ SvXMLExport& rExport,
+ const XMLPropertyState& rProperty,
+ sal_uInt16 nFlags,
+ const ::std::vector< XMLPropertyState > *pProperties,
+ sal_uInt32 nIdx ) const
+{
+ sal_uInt32 nContextId = getPropertySetMapper()->GetEntryContextId( rProperty.mnIndex );
+ OUString sURL;
+ if ( ( nContextId == CTF_SC_HYPERLINK ) &&
+ ( rProperty.maValue >>= sURL ) &&
+ !sURL.isEmpty() )
+ {
+ rExport.AddAttribute( XML_NAMESPACE_XLINK, XML_HREF, sURL );
+ rExport.AddAttribute( XML_NAMESPACE_XLINK, XML_TYPE,
+ XML_SIMPLE );
+ sal_uInt32 nPropIndex = rProperty.mnIndex;
+ sal_uInt16 nPrefix = getPropertySetMapper()->GetEntryNameSpace( nPropIndex );
+ OUString sLocalName = getPropertySetMapper()->GetEntryXMLName( nPropIndex );
+ SvXMLElementExport aElem( rExport, nPrefix, sLocalName, sal_True, sal_True );
+ }
+}
ScXMLRowExportPropertyMapper::ScXMLRowExportPropertyMapper(
const UniReference< XMLPropertySetMapper >& rMapper )