diff options
author | Katarina Behrens <Katarina.Behrens@cib.de> | 2015-04-22 23:31:43 +0200 |
---|---|---|
committer | Andras Timar <andras.timar@collabora.com> | 2015-06-03 15:12:55 +0200 |
commit | 02a0842406e6b6dda5dea44e11a9358832ecdfd6 (patch) | |
tree | 0827f20ea3fd205b620820a84a9b6104e8835d10 /xmloff/source/text | |
parent | 8a2589dff9e3b8bc127bfa1db9c3b9801ab009e9 (diff) |
tdf#88056: Implement ODF import/export of page title field
to/from loext namespace, since new tag's needed for the new field
and it isn't approved by ODF-TC yet
Change-Id: I70ceb4e16e1199663520dbdf3beae31423bc81d0
Reviewed-on: https://gerrit.libreoffice.org/15485
Tested-by: Michael Stahl <mstahl@redhat.com>
Reviewed-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Tested-by: Thorsten Behrens <Thorsten.Behrens@CIB.de>
Diffstat (limited to 'xmloff/source/text')
-rw-r--r-- | xmloff/source/text/txtflde.cxx | 16 | ||||
-rw-r--r-- | xmloff/source/text/txtfldi.cxx | 31 | ||||
-rw-r--r-- | xmloff/source/text/txtimp.cxx | 2 |
3 files changed, 49 insertions, 0 deletions
diff --git a/xmloff/source/text/txtflde.cxx b/xmloff/source/text/txtflde.cxx index f1f8442dce8b..7c20b5cc087e 100644 --- a/xmloff/source/text/txtflde.cxx +++ b/xmloff/source/text/txtflde.cxx @@ -141,6 +141,7 @@ static sal_Char const FIELD_SERVICE_OBJECT_COUNT[] = "EmbeddedObjectCount"; static sal_Char const FIELD_SERVICE_REFERENCE_PAGE_SET[] = "ReferencePageSet"; static sal_Char const FIELD_SERVICE_REFERENCE_PAGE_GET[] = "ReferencePageGet"; static sal_Char const FIELD_SERVICE_SHEET_NAME[] = "SheetName"; +static sal_Char const FIELD_SERVICE_PAGE_NAME[] = "PageName"; static sal_Char const FIELD_SERVICE_MACRO[] = "Macro"; static sal_Char const FIELD_SERVICE_GET_REFERENCE[] = "GetReference"; static sal_Char const FIELD_SERVICE_DDE[] = "DDE"; @@ -234,6 +235,7 @@ SvXMLEnumStringMapEntry const aFieldServiceNameMapping[] = // non-writer fields ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_SHEET_NAME, FIELD_ID_SHEET_NAME ), + ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_PAGE_NAME, FIELD_ID_PAGENAME ), ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_URL, FIELD_ID_URL ), ENUM_STRING_MAP_ENTRY( FIELD_SERVICE_MEASURE, FIELD_ID_MEASURE ), @@ -611,6 +613,7 @@ enum FieldIdEnum XMLTextFieldExport::MapFieldName( case FIELD_ID_FILE_NAME: case FIELD_ID_META: case FIELD_ID_SHEET_NAME: + case FIELD_ID_PAGENAME: case FIELD_ID_MEASURE: case FIELD_ID_URL: case FIELD_ID_TABLE_FORMULA: @@ -718,6 +721,7 @@ bool XMLTextFieldExport::IsStringField( case FIELD_ID_TEXT_INPUT: case FIELD_ID_SENDER: case FIELD_ID_AUTHOR: + case FIELD_ID_PAGENAME: case FIELD_ID_PAGESTRING: case FIELD_ID_SHEET_NAME: case FIELD_ID_MEASURE: @@ -932,6 +936,7 @@ void XMLTextFieldExport::ExportFieldAutoStyle( case FIELD_ID_DOCINFO_REVISION: case FIELD_ID_DOCINFO_SAVE_AUTHOR: case FIELD_ID_SEQUENCE: + case FIELD_ID_PAGENAME: case FIELD_ID_PAGENUMBER: case FIELD_ID_PAGESTRING: case FIELD_ID_AUTHOR: @@ -1669,6 +1674,16 @@ void XMLTextFieldExport::ExportFieldHelper( ExportElement(XML_SHEET_NAME, sPresentation); break; + case FIELD_ID_PAGENAME: + { + if (SvtSaveOptions().GetODFDefaultVersion() > SvtSaveOptions::ODFVER_012) + { + SvXMLElementExport aElem( GetExport(), XML_NAMESPACE_LO_EXT, XML_PAGE_NAME, false, false ); + GetExport().Characters( sPresentation ); + } + break; + } + case FIELD_ID_URL: { // this field is a special case because it gets mapped onto a @@ -1848,6 +1863,7 @@ void XMLTextFieldExport::ExportFieldHelper( } break; + case FIELD_ID_UNKNOWN: default: OSL_FAIL("unknown field type encountered!"); diff --git a/xmloff/source/text/txtfldi.cxx b/xmloff/source/text/txtfldi.cxx index 6b7c9ad541a8..274ff5293585 100644 --- a/xmloff/source/text/txtfldi.cxx +++ b/xmloff/source/text/txtfldi.cxx @@ -129,6 +129,7 @@ const sal_Char sAPI_macro[] = "Macro"; const sal_Char sAPI_dde[] = "DDE"; const sal_Char sAPI_get_reference[] = "GetReference"; const sal_Char sAPI_sheet_name[] = "SheetName"; +const sal_Char sAPI_pagename[] = "PageName"; const sal_Char sAPI_url[] = "URL"; const sal_Char sAPI_bibliography[] = "Bibliography"; const sal_Char sAPI_annotation[] = "Annotation"; @@ -538,6 +539,11 @@ XMLTextFieldImportContext::CreateTextFieldImportContext( nPrefix, rName ); break; + case XML_TOK_TEXT_PAGE_NAME: + pContext = new XMLPageNameFieldImportContext( rImport, rHlp, + nPrefix, rName ); + break; + case XML_TOK_TEXT_BIBLIOGRAPHY_MARK: pContext = new XMLBibliographyFieldImportContext( rImport, rHlp, nPrefix, rName ); @@ -3267,6 +3273,31 @@ void XMLSheetNameImportContext::PrepareField( // no attributes -> nothing to be done } +/** import page|slide name fields (<text:page-name>) */ +TYPEINIT1( XMLPageNameFieldImportContext, XMLTextFieldImportContext ); + +XMLPageNameFieldImportContext::XMLPageNameFieldImportContext( + SvXMLImport& rImport, /// XML Import + XMLTextImportHelper& rHlp, /// Text import helper + sal_uInt16 nPrfx, /// namespace prefix + const OUString& sLocalName) /// element name w/o prefix +: XMLTextFieldImportContext(rImport, rHlp, sAPI_pagename, nPrfx, sLocalName ) +{ + bValid = true; +} + +/// process attribute values +void XMLPageNameFieldImportContext::ProcessAttribute( sal_uInt16, + const OUString& ) +{ +} + +/// prepare XTextField for insertion into document +void XMLPageNameFieldImportContext::PrepareField( + const ::com::sun::star::uno::Reference< + ::com::sun::star::beans::XPropertySet> &) +{ +} // URL fields (Calc, Impress, Draw) diff --git a/xmloff/source/text/txtimp.cxx b/xmloff/source/text/txtimp.cxx index 6c74084d08bf..2ea64ce78fe2 100644 --- a/xmloff/source/text/txtimp.cxx +++ b/xmloff/source/text/txtimp.cxx @@ -269,6 +269,8 @@ static const SvXMLTokenMapEntry aTextPElemTokenMap[] = // draw fields { XML_NAMESPACE_TEXT, XML_MEASURE, XML_TOK_TEXT_MEASURE }, + { XML_NAMESPACE_LO_EXT, XML_PAGE_NAME, XML_TOK_TEXT_PAGE_NAME }, + { XML_NAMESPACE_TEXT, XML_PAGE_NAME, XML_TOK_TEXT_PAGE_NAME }, // RDF metadata { XML_NAMESPACE_TEXT, XML_META, XML_TOK_TEXT_META }, |