163bba73cSAndrew Rist /************************************************************** 2cdf0e10cSrcweir * 363bba73cSAndrew Rist * Licensed to the Apache Software Foundation (ASF) under one 463bba73cSAndrew Rist * or more contributor license agreements. See the NOTICE file 563bba73cSAndrew Rist * distributed with this work for additional information 663bba73cSAndrew Rist * regarding copyright ownership. The ASF licenses this file 763bba73cSAndrew Rist * to you under the Apache License, Version 2.0 (the 863bba73cSAndrew Rist * "License"); you may not use this file except in compliance 963bba73cSAndrew Rist * with the License. You may obtain a copy of the License at 1063bba73cSAndrew Rist * 1163bba73cSAndrew Rist * http://www.apache.org/licenses/LICENSE-2.0 1263bba73cSAndrew Rist * 1363bba73cSAndrew Rist * Unless required by applicable law or agreed to in writing, 1463bba73cSAndrew Rist * software distributed under the License is distributed on an 1563bba73cSAndrew Rist * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY 1663bba73cSAndrew Rist * KIND, either express or implied. See the License for the 1763bba73cSAndrew Rist * specific language governing permissions and limitations 1863bba73cSAndrew Rist * under the License. 1963bba73cSAndrew Rist * 2063bba73cSAndrew Rist *************************************************************/ 2163bba73cSAndrew Rist 2263bba73cSAndrew Rist 23cdf0e10cSrcweir 24cdf0e10cSrcweir // MARKER(update_precomp.py): autogen include statement, do not remove 25cdf0e10cSrcweir #include "precompiled_xmloff.hxx" 26cdf0e10cSrcweir 27cdf0e10cSrcweir #include <vector> 28cdf0e10cSrcweir 29cdf0e10cSrcweir #include <boost/scoped_array.hpp> 30cdf0e10cSrcweir #include <boost/tuple/tuple.hpp> 31cdf0e10cSrcweir 32cdf0e10cSrcweir #include <tools/solar.h> 33cdf0e10cSrcweir #include <tools/debug.hxx> 34cdf0e10cSrcweir #ifndef _SVSTDARR_STRINGSDTOR_DECL 35cdf0e10cSrcweir #define _SVSTDARR_STRINGSDTOR 36cdf0e10cSrcweir #include <svl/svstdarr.hxx> 37cdf0e10cSrcweir #endif 38cdf0e10cSrcweir #include <com/sun/star/beans/XPropertySet.hpp> 39cdf0e10cSrcweir #include <com/sun/star/beans/PropertyValue.hpp> 40cdf0e10cSrcweir #include <com/sun/star/container/XEnumerationAccess.hpp> 41cdf0e10cSrcweir #include <com/sun/star/container/XNameContainer.hpp> 42cdf0e10cSrcweir #include <com/sun/star/style/XStyleFamiliesSupplier.hpp> 43cdf0e10cSrcweir #include <com/sun/star/text/XTextCursor.hpp> 44cdf0e10cSrcweir #include <com/sun/star/text/XChapterNumberingSupplier.hpp> 45cdf0e10cSrcweir #include <com/sun/star/text/XTextFramesSupplier.hpp> 46cdf0e10cSrcweir #include <com/sun/star/text/XTextGraphicObjectsSupplier.hpp> 47cdf0e10cSrcweir #include <com/sun/star/text/XTextEmbeddedObjectsSupplier.hpp> 48cdf0e10cSrcweir #include <com/sun/star/text/TextContentAnchorType.hpp> 49cdf0e10cSrcweir #include <com/sun/star/text/XTextFrame.hpp> 50cdf0e10cSrcweir #include <com/sun/star/text/XFormField.hpp> 51cdf0e10cSrcweir #include <com/sun/star/drawing/XShapes.hpp> 52cdf0e10cSrcweir #include <com/sun/star/util/DateTime.hpp> 53cdf0e10cSrcweir #include <com/sun/star/lang/XMultiServiceFactory.hpp> 54cdf0e10cSrcweir #include <com/sun/star/ucb/XAnyCompareFactory.hpp> 55cdf0e10cSrcweir #include <com/sun/star/container/XNamed.hpp> 56cdf0e10cSrcweir #include <xmloff/xmltoken.hxx> 57cdf0e10cSrcweir #include "xmloff/xmlnmspe.hxx" 58cdf0e10cSrcweir #include <xmloff/txtstyli.hxx> 59cdf0e10cSrcweir #include <xmloff/families.hxx> 60cdf0e10cSrcweir #include <xmloff/xmlnumfi.hxx> 61cdf0e10cSrcweir #include <xmloff/xmlnumi.hxx> 62cdf0e10cSrcweir #include <xmloff/xmlictxt.hxx> 63cdf0e10cSrcweir #include <xmloff/xmlimppr.hxx> 64cdf0e10cSrcweir 65cdf0e10cSrcweir #include "txtparai.hxx" 66cdf0e10cSrcweir #include <xmloff/txtimp.hxx> 67cdf0e10cSrcweir #include <xmloff/txtprmap.hxx> 68cdf0e10cSrcweir #include "xmloff/txtimppr.hxx" 69cdf0e10cSrcweir #include <xmloff/xmlimp.hxx> 70cdf0e10cSrcweir #include "txtvfldi.hxx" 71cdf0e10cSrcweir #include "xmloff/i18nmap.hxx" 72cdf0e10cSrcweir #include "XMLTextListItemContext.hxx" 73cdf0e10cSrcweir #include "XMLTextListBlockContext.hxx" 74cdf0e10cSrcweir #include "XMLTextFrameContext.hxx" 75cdf0e10cSrcweir #include "XMLPropertyBackpatcher.hxx" 76cdf0e10cSrcweir #include "XMLTextFrameHyperlinkContext.hxx" 77cdf0e10cSrcweir #include "XMLSectionImportContext.hxx" 78cdf0e10cSrcweir #include "XMLIndexTOCContext.hxx" 79cdf0e10cSrcweir #include <xmloff/XMLFontStylesContext.hxx> 80cdf0e10cSrcweir #include <xmloff/ProgressBarHelper.hxx> 81cdf0e10cSrcweir #include <xmloff/nmspmap.hxx> 82cdf0e10cSrcweir #include <xmloff/XMLEventsImportContext.hxx> 83cdf0e10cSrcweir #include "XMLTrackedChangesImportContext.hxx" 84cdf0e10cSrcweir #include "XMLChangeImportContext.hxx" 85cdf0e10cSrcweir #include "XMLAutoMarkFileContext.hxx" 86cdf0e10cSrcweir 87cdf0e10cSrcweir #include "XMLCalculationSettingsContext.hxx" 88cdf0e10cSrcweir #include <xmloff/formsimp.hxx> 89cdf0e10cSrcweir #include "XMLNumberStylesImport.hxx" 90cdf0e10cSrcweir #include <com/sun/star/beans/XPropertyState.hpp> 91cdf0e10cSrcweir 92cdf0e10cSrcweir #include <txtlists.hxx> 93cdf0e10cSrcweir #include <xmloff/odffields.hxx> 94cdf0e10cSrcweir #include <comphelper/stlunosequence.hxx> 95cdf0e10cSrcweir 96cdf0e10cSrcweir using ::rtl::OUString; 97cdf0e10cSrcweir using ::rtl::OUStringBuffer; 98cdf0e10cSrcweir using ::com::sun::star::ucb::XAnyCompare; 99cdf0e10cSrcweir 100cdf0e10cSrcweir using namespace ::std; 101cdf0e10cSrcweir using namespace ::com::sun::star; 102cdf0e10cSrcweir using namespace ::com::sun::star::uno; 103cdf0e10cSrcweir using namespace ::com::sun::star::beans; 104cdf0e10cSrcweir using namespace ::com::sun::star::text; 105cdf0e10cSrcweir using namespace ::com::sun::star::frame; 106cdf0e10cSrcweir using namespace ::com::sun::star::style; 107cdf0e10cSrcweir using namespace ::com::sun::star::container; 108cdf0e10cSrcweir using namespace ::com::sun::star::drawing; 109cdf0e10cSrcweir using namespace ::com::sun::star::xml::sax; 110cdf0e10cSrcweir using namespace ::com::sun::star::lang; 111cdf0e10cSrcweir using namespace ::xmloff::token; 112cdf0e10cSrcweir using ::com::sun::star::util::DateTime; 113cdf0e10cSrcweir using namespace ::com::sun::star::ucb; 114cdf0e10cSrcweir using namespace ::com::sun::star; 115cdf0e10cSrcweir using ::comphelper::UStringLess; 116cdf0e10cSrcweir 117cdf0e10cSrcweir 118cdf0e10cSrcweir 119cdf0e10cSrcweir static __FAR_DATA SvXMLTokenMapEntry aTextElemTokenMap[] = 120cdf0e10cSrcweir { 121cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_P, XML_TOK_TEXT_P }, 122cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_H, XML_TOK_TEXT_H }, 123cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_LIST, XML_TOK_TEXT_LIST }, 124cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_FRAME, XML_TOK_TEXT_FRAME_PAGE }, 125cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_A, XML_TOK_DRAW_A_PAGE }, 126cdf0e10cSrcweir { XML_NAMESPACE_TABLE,XML_TABLE, XML_TOK_TABLE_TABLE }, 127cdf0e10cSrcweir // { XML_NAMESPACE_TABLE,XML_SUB_TABLE, XML_TOK_TABLE_SUBTABLE }, 128cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_VARIABLE_DECLS, XML_TOK_TEXT_VARFIELD_DECLS }, 129cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_USER_FIELD_DECLS, XML_TOK_TEXT_USERFIELD_DECLS }, 130cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SEQUENCE_DECLS, XML_TOK_TEXT_SEQUENCE_DECLS }, 131cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DDE_CONNECTION_DECLS, XML_TOK_TEXT_DDE_DECLS }, 132cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SECTION, XML_TOK_TEXT_SECTION }, 133cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TABLE_OF_CONTENT, XML_TOK_TEXT_TOC }, 134cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_OBJECT_INDEX, XML_TOK_TEXT_OBJECT_INDEX }, 135cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TABLE_INDEX, XML_TOK_TEXT_TABLE_INDEX }, 136cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_ILLUSTRATION_INDEX, XML_TOK_TEXT_ILLUSTRATION_INDEX }, 137cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_USER_INDEX, XML_TOK_TEXT_USER_INDEX }, 138cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_ALPHABETICAL_INDEX, XML_TOK_TEXT_ALPHABETICAL_INDEX }, 139cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_BIBLIOGRAPHY, XML_TOK_TEXT_BIBLIOGRAPHY_INDEX }, 140cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_INDEX_TITLE, XML_TOK_TEXT_INDEX_TITLE }, 141cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TRACKED_CHANGES, XML_TOK_TEXT_TRACKED_CHANGES }, 142cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CHANGE_START, XML_TOK_TEXT_CHANGE_START }, 143cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CHANGE_END, XML_TOK_TEXT_CHANGE_END }, 144cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CHANGE, XML_TOK_TEXT_CHANGE }, 145cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_FORMS, XML_TOK_TEXT_FORMS }, 146cdf0e10cSrcweir { XML_NAMESPACE_TABLE, XML_CALCULATION_SETTINGS, XML_TOK_TEXT_CALCULATION_SETTINGS }, 147cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_ALPHABETICAL_INDEX_AUTO_MARK_FILE, XML_TOK_TEXT_AUTOMARK }, 148cdf0e10cSrcweir // --> FLR #i52127# 149cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_NUMBERED_PARAGRAPH, XML_TOK_TEXT_NUMBERED_PARAGRAPH }, 150cdf0e10cSrcweir // <-- 151cdf0e10cSrcweir 152cdf0e10cSrcweir XML_TOKEN_MAP_END 153cdf0e10cSrcweir }; 154cdf0e10cSrcweir 155cdf0e10cSrcweir static __FAR_DATA SvXMLTokenMapEntry aTextPElemTokenMap[] = 156cdf0e10cSrcweir { 157cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SPAN, XML_TOK_TEXT_SPAN }, 158cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TAB, XML_TOK_TEXT_TAB_STOP }, 159cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_LINE_BREAK, XML_TOK_TEXT_LINE_BREAK }, 160cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SOFT_PAGE_BREAK, XML_TOK_TEXT_SOFT_PAGE_BREAK }, 161cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_S, XML_TOK_TEXT_S }, 162cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_A, XML_TOK_TEXT_HYPERLINK }, 163cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_RUBY, XML_TOK_TEXT_RUBY }, 164cdf0e10cSrcweir 165cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_NOTE, XML_TOK_TEXT_NOTE }, 166cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_BOOKMARK, XML_TOK_TEXT_BOOKMARK }, 167cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_BOOKMARK_START, XML_TOK_TEXT_BOOKMARK_START }, 168cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_BOOKMARK_END, XML_TOK_TEXT_BOOKMARK_END }, 169cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_REFERENCE_MARK, XML_TOK_TEXT_REFERENCE }, 170cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_REFERENCE_MARK_START, 171cdf0e10cSrcweir XML_TOK_TEXT_REFERENCE_START }, 172cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_REFERENCE_MARK_END, 173cdf0e10cSrcweir XML_TOK_TEXT_REFERENCE_END }, 174cdf0e10cSrcweir 175cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_FRAME, XML_TOK_TEXT_FRAME }, 176cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_A, XML_TOK_DRAW_A }, 177cdf0e10cSrcweir 178cdf0e10cSrcweir // index marks 179cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TOC_MARK, XML_TOK_TEXT_TOC_MARK }, 180cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TOC_MARK_START, XML_TOK_TEXT_TOC_MARK_START }, 181cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TOC_MARK_END, XML_TOK_TEXT_TOC_MARK_END }, 182cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_USER_INDEX_MARK, XML_TOK_TEXT_USER_INDEX_MARK }, 183cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_USER_INDEX_MARK_START, 184cdf0e10cSrcweir XML_TOK_TEXT_USER_INDEX_MARK_START }, 185cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_USER_INDEX_MARK_END, 186cdf0e10cSrcweir XML_TOK_TEXT_USER_INDEX_MARK_END }, 187cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_ALPHABETICAL_INDEX_MARK, 188cdf0e10cSrcweir XML_TOK_TEXT_ALPHA_INDEX_MARK }, 189cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_ALPHABETICAL_INDEX_MARK_START, 190cdf0e10cSrcweir XML_TOK_TEXT_ALPHA_INDEX_MARK_START }, 191cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_ALPHABETICAL_INDEX_MARK_END, 192cdf0e10cSrcweir XML_TOK_TEXT_ALPHA_INDEX_MARK_END }, 193cdf0e10cSrcweir 194cdf0e10cSrcweir // sender fields 195cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SENDER_FIRSTNAME,XML_TOK_TEXT_SENDER_FIRSTNAME}, 196cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SENDER_LASTNAME, XML_TOK_TEXT_SENDER_LASTNAME }, 197cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SENDER_INITIALS, XML_TOK_TEXT_SENDER_INITIALS }, 198cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SENDER_TITLE, XML_TOK_TEXT_SENDER_TITLE }, 199cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SENDER_POSITION, XML_TOK_TEXT_SENDER_POSITION }, 200cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SENDER_EMAIL, XML_TOK_TEXT_SENDER_EMAIL }, 2013b32dd21SOliver-Rainer Wittmann { XML_NAMESPACE_TEXT, XML_SENDER_PHONE_PRIVATE, XML_TOK_TEXT_SENDER_PHONE_PRIVATE }, 202cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SENDER_FAX, XML_TOK_TEXT_SENDER_FAX }, 203cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SENDER_COMPANY, XML_TOK_TEXT_SENDER_COMPANY }, 2043b32dd21SOliver-Rainer Wittmann { XML_NAMESPACE_TEXT, XML_SENDER_PHONE_WORK, XML_TOK_TEXT_SENDER_PHONE_WORK }, 205cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SENDER_STREET, XML_TOK_TEXT_SENDER_STREET }, 206cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SENDER_CITY, XML_TOK_TEXT_SENDER_CITY }, 2073b32dd21SOliver-Rainer Wittmann { XML_NAMESPACE_TEXT, XML_SENDER_POSTAL_CODE, XML_TOK_TEXT_SENDER_POSTAL_CODE }, 208cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SENDER_COUNTRY, XML_TOK_TEXT_SENDER_COUNTRY }, 209cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SENDER_STATE_OR_PROVINCE, 210cdf0e10cSrcweir XML_TOK_TEXT_SENDER_STATE_OR_PROVINCE }, 211cdf0e10cSrcweir 212cdf0e10cSrcweir // misc. document fields 213cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_AUTHOR_NAME, XML_TOK_TEXT_AUTHOR_NAME }, 214cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_AUTHOR_INITIALS, XML_TOK_TEXT_AUTHOR_INITIALS }, 215cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DATE, XML_TOK_TEXT_DATE }, 216cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TIME, XML_TOK_TEXT_TIME }, 217cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PAGE_NUMBER, XML_TOK_TEXT_PAGE_NUMBER }, 218cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PAGE_CONTINUATION_STRING, 219cdf0e10cSrcweir XML_TOK_TEXT_PAGE_CONTINUATION_STRING }, 220cdf0e10cSrcweir 221cdf0e10cSrcweir // variable fields 222cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_VARIABLE_SET, XML_TOK_TEXT_VARIABLE_SET }, 223cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_VARIABLE_GET, XML_TOK_TEXT_VARIABLE_GET }, 224cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_VARIABLE_INPUT, XML_TOK_TEXT_VARIABLE_INPUT }, 225cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_USER_FIELD_GET, XML_TOK_TEXT_USER_FIELD_GET }, 226cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_USER_FIELD_INPUT,XML_TOK_TEXT_USER_FIELD_INPUT}, 227cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SEQUENCE, XML_TOK_TEXT_SEQUENCE }, 228cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_EXPRESSION, XML_TOK_TEXT_EXPRESSION }, 229cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TEXT_INPUT, XML_TOK_TEXT_TEXT_INPUT }, 230cdf0e10cSrcweir 231cdf0e10cSrcweir // database fields 232cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DATABASE_DISPLAY, 233cdf0e10cSrcweir XML_TOK_TEXT_DATABASE_DISPLAY }, 234cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DATABASE_NEXT, 235cdf0e10cSrcweir XML_TOK_TEXT_DATABASE_NEXT }, 236cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DATABASE_ROW_SELECT, 237cdf0e10cSrcweir XML_TOK_TEXT_DATABASE_SELECT }, 238cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DATABASE_ROW_NUMBER, 239cdf0e10cSrcweir XML_TOK_TEXT_DATABASE_ROW_NUMBER }, 240cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DATABASE_NAME, XML_TOK_TEXT_DATABASE_NAME }, 241cdf0e10cSrcweir 242cdf0e10cSrcweir // docinfo fields 243cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_INITIAL_CREATOR, 244cdf0e10cSrcweir XML_TOK_TEXT_DOCUMENT_CREATION_AUTHOR }, 245cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DESCRIPTION, XML_TOK_TEXT_DOCUMENT_DESCRIPTION}, 246cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PRINTED_BY, XML_TOK_TEXT_DOCUMENT_PRINT_AUTHOR}, 247cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TITLE, XML_TOK_TEXT_DOCUMENT_TITLE }, 248cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SUBJECT, XML_TOK_TEXT_DOCUMENT_SUBJECT }, 249cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_KEYWORDS, XML_TOK_TEXT_DOCUMENT_KEYWORDS }, 250cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CREATOR, XML_TOK_TEXT_DOCUMENT_SAVE_AUTHOR }, 251cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_EDITING_CYCLES, 252cdf0e10cSrcweir XML_TOK_TEXT_DOCUMENT_REVISION }, 253cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CREATION_DATE, 254cdf0e10cSrcweir XML_TOK_TEXT_DOCUMENT_CREATION_DATE }, 255cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CREATION_TIME, 256cdf0e10cSrcweir XML_TOK_TEXT_DOCUMENT_CREATION_TIME }, 257cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PRINT_DATE, XML_TOK_TEXT_DOCUMENT_PRINT_DATE }, 258cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PRINT_TIME, XML_TOK_TEXT_DOCUMENT_PRINT_TIME }, 259cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_MODIFICATION_DATE, 260cdf0e10cSrcweir XML_TOK_TEXT_DOCUMENT_SAVE_DATE }, 261cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_MODIFICATION_TIME, 262cdf0e10cSrcweir XML_TOK_TEXT_DOCUMENT_SAVE_TIME }, 263cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_EDITING_DURATION, 264cdf0e10cSrcweir XML_TOK_TEXT_DOCUMENT_EDIT_DURATION }, 265cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_USER_DEFINED, 266cdf0e10cSrcweir XML_TOK_TEXT_DOCUMENT_USER_DEFINED }, 267cdf0e10cSrcweir 268cdf0e10cSrcweir // misc fields 269cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PLACEHOLDER, XML_TOK_TEXT_PLACEHOLDER }, 270cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_HIDDEN_TEXT, XML_TOK_TEXT_HIDDEN_TEXT }, 2713b32dd21SOliver-Rainer Wittmann { XML_NAMESPACE_TEXT, XML_HIDDEN_PARAGRAPH, XML_TOK_TEXT_HIDDEN_PARAGRAPH }, 2723b32dd21SOliver-Rainer Wittmann { XML_NAMESPACE_TEXT, XML_CONDITIONAL_TEXT, XML_TOK_TEXT_CONDITIONAL_TEXT }, 273cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_FILE_NAME, XML_TOK_TEXT_FILENAME }, 274cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CHAPTER, XML_TOK_TEXT_CHAPTER }, 275cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TEMPLATE_NAME, XML_TOK_TEXT_TEMPLATENAME }, 276cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PARAGRAPH_COUNT, XML_TOK_TEXT_PARAGRAPH_COUNT }, 277cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_WORD_COUNT, XML_TOK_TEXT_WORD_COUNT }, 278cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TABLE_COUNT, XML_TOK_TEXT_TABLE_COUNT }, 279cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CHARACTER_COUNT, XML_TOK_TEXT_CHARACTER_COUNT }, 280cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_IMAGE_COUNT, XML_TOK_TEXT_IMAGE_COUNT }, 281cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_OBJECT_COUNT, XML_TOK_TEXT_OBJECT_COUNT }, 282cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PAGE_COUNT, XML_TOK_TEXT_PAGE_COUNT }, 283cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PAGE_VARIABLE_GET, XML_TOK_TEXT_GET_PAGE_VAR }, 284cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PAGE_VARIABLE_SET, XML_TOK_TEXT_SET_PAGE_VAR }, 285cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_EXECUTE_MACRO, XML_TOK_TEXT_MACRO }, 286cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DDE_CONNECTION, XML_TOK_TEXT_DDE }, 287cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_REFERENCE_REF, XML_TOK_TEXT_REFERENCE_REF }, 288cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_BOOKMARK_REF, XML_TOK_TEXT_BOOKMARK_REF }, 289cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SEQUENCE_REF, XML_TOK_TEXT_SEQUENCE_REF }, 290cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_NOTE_REF, XML_TOK_TEXT_NOTE_REF }, 2913b32dd21SOliver-Rainer Wittmann { XML_NAMESPACE_TEXT, XML_BIBLIOGRAPHY_MARK, XML_TOK_TEXT_BIBLIOGRAPHY_MARK }, 292cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_ANNOTATION, XML_TOK_TEXT_ANNOTATION }, 2933b32dd21SOliver-Rainer Wittmann { XML_NAMESPACE_OFFICE, XML_ANNOTATION_END, XML_TOK_TEXT_ANNOTATION_END }, 2943b32dd21SOliver-Rainer Wittmann { XML_NAMESPACE_TEXT, XML_SCRIPT, XML_TOK_TEXT_SCRIPT }, 295cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TABLE_FORMULA, XML_TOK_TEXT_TABLE_FORMULA }, 296cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DROPDOWN, XML_TOK_TEXT_DROPDOWN }, 297cdf0e10cSrcweir 298cdf0e10cSrcweir // Calc fields 299cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SHEET_NAME, XML_TOK_TEXT_SHEET_NAME }, 300cdf0e10cSrcweir 301cdf0e10cSrcweir // draw fields 302cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_MEASURE, XML_TOK_TEXT_MEASURE }, 303cdf0e10cSrcweir 304cdf0e10cSrcweir // RDF metadata 305cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_META, XML_TOK_TEXT_META }, 306cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_META_FIELD, XML_TOK_TEXT_META_FIELD }, 307cdf0e10cSrcweir 308cdf0e10cSrcweir // redlining (aka change tracking) 309cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CHANGE_START, XML_TOK_TEXTP_CHANGE_START }, 310cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CHANGE_END , XML_TOK_TEXTP_CHANGE_END }, 311cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CHANGE, XML_TOK_TEXTP_CHANGE }, 312cdf0e10cSrcweir 313cdf0e10cSrcweir { XML_NAMESPACE_PRESENTATION, XML_HEADER, XML_TOK_DRAW_HEADER }, 314cdf0e10cSrcweir { XML_NAMESPACE_PRESENTATION, XML_FOOTER, XML_TOK_DRAW_FOOTER }, 315cdf0e10cSrcweir { XML_NAMESPACE_PRESENTATION, XML_DATE_TIME, XML_TOK_DRAW_DATE_TIME }, 316cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PAGE_CONTINUATION, XML_TOK_TEXT_PAGE_CONTINUATION }, 317cdf0e10cSrcweir 318cdf0e10cSrcweir { XML_NAMESPACE_FIELD, XML_FIELDMARK, XML_TOK_TEXT_FIELDMARK }, 319cdf0e10cSrcweir { XML_NAMESPACE_FIELD, XML_FIELDMARK_START, XML_TOK_TEXT_FIELDMARK_START }, 320cdf0e10cSrcweir { XML_NAMESPACE_FIELD, XML_FIELDMARK_END, XML_TOK_TEXT_FIELDMARK_END }, 321cdf0e10cSrcweir 322cdf0e10cSrcweir 323cdf0e10cSrcweir XML_TOKEN_MAP_END 324cdf0e10cSrcweir }; 325cdf0e10cSrcweir 326cdf0e10cSrcweir static __FAR_DATA SvXMLTokenMapEntry aTextPAttrTokenMap[] = 327cdf0e10cSrcweir { 328cdf0e10cSrcweir { XML_NAMESPACE_XML , XML_ID, XML_TOK_TEXT_P_XMLID }, 329cdf0e10cSrcweir { XML_NAMESPACE_XHTML, XML_ABOUT, XML_TOK_TEXT_P_ABOUT }, 330cdf0e10cSrcweir { XML_NAMESPACE_XHTML, XML_PROPERTY, XML_TOK_TEXT_P_PROPERTY }, 331cdf0e10cSrcweir { XML_NAMESPACE_XHTML, XML_CONTENT, XML_TOK_TEXT_P_CONTENT }, 332cdf0e10cSrcweir { XML_NAMESPACE_XHTML, XML_DATATYPE, XML_TOK_TEXT_P_DATATYPE }, 333cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_ID, XML_TOK_TEXT_P_TEXTID }, 334cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_STYLE_NAME, XML_TOK_TEXT_P_STYLE_NAME }, 335cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_COND_STYLE_NAME, 336cdf0e10cSrcweir XML_TOK_TEXT_P_COND_STYLE_NAME }, 337cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_OUTLINE_LEVEL,XML_TOK_TEXT_P_LEVEL }, 338cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_IS_LIST_HEADER,XML_TOK_TEXT_P_IS_LIST_HEADER }, 339cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_RESTART_NUMBERING,XML_TOK_TEXT_P_RESTART_NUMBERING }, 340cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_START_VALUE,XML_TOK_TEXT_P_START_VALUE }, 341cdf0e10cSrcweir XML_TOKEN_MAP_END 342cdf0e10cSrcweir }; 343cdf0e10cSrcweir 344cdf0e10cSrcweir static __FAR_DATA SvXMLTokenMapEntry aTextNumberedParagraphAttrTokenMap[] = 345cdf0e10cSrcweir { 346cdf0e10cSrcweir { XML_NAMESPACE_XML , XML_ID, XML_TOK_TEXT_NUMBERED_PARAGRAPH_XMLID }, 347cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_LIST_ID, 348cdf0e10cSrcweir XML_TOK_TEXT_NUMBERED_PARAGRAPH_LIST_ID }, 349cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_LEVEL, XML_TOK_TEXT_NUMBERED_PARAGRAPH_LEVEL }, 350cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_STYLE_NAME, 351cdf0e10cSrcweir XML_TOK_TEXT_NUMBERED_PARAGRAPH_STYLE_NAME }, 352cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CONTINUE_NUMBERING, 353cdf0e10cSrcweir XML_TOK_TEXT_NUMBERED_PARAGRAPH_CONTINUE_NUMBERING }, 354cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_START_VALUE, 355cdf0e10cSrcweir XML_TOK_TEXT_NUMBERED_PARAGRAPH_START_VALUE }, 356cdf0e10cSrcweir XML_TOKEN_MAP_END 357cdf0e10cSrcweir }; 358cdf0e10cSrcweir 359cdf0e10cSrcweir static __FAR_DATA SvXMLTokenMapEntry aTextListBlockAttrTokenMap[] = 360cdf0e10cSrcweir { 361cdf0e10cSrcweir { XML_NAMESPACE_XML , XML_ID, XML_TOK_TEXT_LIST_BLOCK_XMLID }, 362cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_STYLE_NAME, 363cdf0e10cSrcweir XML_TOK_TEXT_LIST_BLOCK_STYLE_NAME }, 364cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CONTINUE_NUMBERING, 365cdf0e10cSrcweir XML_TOK_TEXT_LIST_BLOCK_CONTINUE_NUMBERING }, 366cdf0e10cSrcweir // --> OD 2008-04-22 #refactorlists# 367cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CONTINUE_LIST, 368cdf0e10cSrcweir XML_TOK_TEXT_LIST_BLOCK_CONTINUE_LIST }, 369cdf0e10cSrcweir XML_TOKEN_MAP_END 370cdf0e10cSrcweir }; 371cdf0e10cSrcweir 372cdf0e10cSrcweir static __FAR_DATA SvXMLTokenMapEntry aTextListBlockElemTokenMap[] = 373cdf0e10cSrcweir { 374cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_LIST_HEADER, XML_TOK_TEXT_LIST_HEADER }, 375cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_LIST_ITEM, XML_TOK_TEXT_LIST_ITEM }, 376cdf0e10cSrcweir XML_TOKEN_MAP_END 377cdf0e10cSrcweir }; 378cdf0e10cSrcweir 379cdf0e10cSrcweir static __FAR_DATA SvXMLTokenMapEntry aTextFrameAttrTokenMap[] = 380cdf0e10cSrcweir { 381cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_STYLE_NAME, XML_TOK_TEXT_FRAME_STYLE_NAME }, 382cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_TEXT_FRAME_NAME }, 383cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_ANCHOR_TYPE, XML_TOK_TEXT_FRAME_ANCHOR_TYPE }, 384cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_ANCHOR_PAGE_NUMBER, XML_TOK_TEXT_FRAME_ANCHOR_PAGE_NUMBER }, 385cdf0e10cSrcweir { XML_NAMESPACE_SVG, XML_X, XML_TOK_TEXT_FRAME_X }, 386cdf0e10cSrcweir { XML_NAMESPACE_SVG, XML_Y, XML_TOK_TEXT_FRAME_Y }, 387cdf0e10cSrcweir { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_TEXT_FRAME_WIDTH }, 388cdf0e10cSrcweir { XML_NAMESPACE_FO, XML_MIN_WIDTH, XML_TOK_TEXT_FRAME_MIN_WIDTH }, 389cdf0e10cSrcweir { XML_NAMESPACE_STYLE, XML_REL_WIDTH, XML_TOK_TEXT_FRAME_REL_WIDTH }, 390cdf0e10cSrcweir { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_TEXT_FRAME_HEIGHT }, 391cdf0e10cSrcweir { XML_NAMESPACE_FO, XML_MIN_HEIGHT, XML_TOK_TEXT_FRAME_MIN_HEIGHT }, 392cdf0e10cSrcweir { XML_NAMESPACE_STYLE, XML_REL_HEIGHT, XML_TOK_TEXT_FRAME_REL_HEIGHT }, 393cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_CHAIN_NEXT_NAME, XML_TOK_TEXT_FRAME_NEXT_CHAIN_NAME }, 394cdf0e10cSrcweir { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_TEXT_FRAME_HREF }, 395cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_NAME, XML_TOK_TEXT_FRAME_FILTER_NAME }, 396cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_ZINDEX, XML_TOK_TEXT_FRAME_Z_INDEX }, 397cdf0e10cSrcweir { XML_NAMESPACE_SVG, XML_TRANSFORM, XML_TOK_TEXT_FRAME_TRANSFORM }, 398cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_CLASS_ID, XML_TOK_TEXT_FRAME_CLASS_ID }, 399cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_CODE, XML_TOK_TEXT_FRAME_CODE }, 400cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_OBJECT, XML_TOK_TEXT_FRAME_OBJECT }, 401cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_ARCHIVE, XML_TOK_TEXT_FRAME_ARCHIVE }, 402cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_MAY_SCRIPT, XML_TOK_TEXT_FRAME_MAY_SCRIPT }, 403cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_MIME_TYPE, XML_TOK_TEXT_FRAME_MIME_TYPE }, 404cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_APPLET_NAME, XML_TOK_TEXT_FRAME_APPLET_NAME }, 405cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_FRAME_NAME, XML_TOK_TEXT_FRAME_FRAME_NAME }, 406cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_NOTIFY_ON_UPDATE_OF_RANGES, XML_TOK_TEXT_FRAME_NOTIFY_ON_UPDATE }, 407cdf0e10cSrcweir { XML_NAMESPACE_DRAW, XML_NOTIFY_ON_UPDATE_OF_TABLE, XML_TOK_TEXT_FRAME_NOTIFY_ON_UPDATE }, 408cdf0e10cSrcweir XML_TOKEN_MAP_END 409cdf0e10cSrcweir }; 410cdf0e10cSrcweir 411cdf0e10cSrcweir static __FAR_DATA SvXMLTokenMapEntry aTextContourAttrTokenMap[] = 412cdf0e10cSrcweir { 413cdf0e10cSrcweir { XML_NAMESPACE_SVG, XML_WIDTH, XML_TOK_TEXT_CONTOUR_WIDTH }, 414cdf0e10cSrcweir { XML_NAMESPACE_SVG, XML_HEIGHT, XML_TOK_TEXT_CONTOUR_HEIGHT }, 415cdf0e10cSrcweir { XML_NAMESPACE_SVG, XML_VIEWBOX, XML_TOK_TEXT_CONTOUR_VIEWBOX }, 416cdf0e10cSrcweir { XML_NAMESPACE_SVG, XML_D, XML_TOK_TEXT_CONTOUR_D }, 417cdf0e10cSrcweir { XML_NAMESPACE_DRAW,XML_POINTS, XML_TOK_TEXT_CONTOUR_POINTS }, 418cdf0e10cSrcweir { XML_NAMESPACE_DRAW,XML_RECREATE_ON_EDIT, XML_TOK_TEXT_CONTOUR_AUTO }, 419cdf0e10cSrcweir XML_TOKEN_MAP_END 420cdf0e10cSrcweir }; 421cdf0e10cSrcweir 422cdf0e10cSrcweir static __FAR_DATA SvXMLTokenMapEntry aTextHyperlinkAttrTokenMap[] = 423cdf0e10cSrcweir { 424cdf0e10cSrcweir { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_TEXT_HYPERLINK_HREF }, 425cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_NAME, XML_TOK_TEXT_HYPERLINK_NAME }, 426cdf0e10cSrcweir { XML_NAMESPACE_XLINK, XML_SHOW, XML_TOK_TEXT_HYPERLINK_SHOW }, 427cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_TARGET_FRAME_NAME, XML_TOK_TEXT_HYPERLINK_TARGET_FRAME }, 428cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_STYLE_NAME, XML_TOK_TEXT_HYPERLINK_STYLE_NAME }, 429cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_VISITED_STYLE_NAME, XML_TOK_TEXT_HYPERLINK_VIS_STYLE_NAME }, 430cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_SERVER_MAP, XML_TOK_TEXT_HYPERLINK_SERVER_MAP }, 431cdf0e10cSrcweir XML_TOKEN_MAP_END 432cdf0e10cSrcweir }; 433cdf0e10cSrcweir 434cdf0e10cSrcweir static __FAR_DATA SvXMLTokenMapEntry aTextMasterPageElemTokenMap[] = 435cdf0e10cSrcweir { 436cdf0e10cSrcweir { XML_NAMESPACE_STYLE, XML_HEADER, XML_TOK_TEXT_MP_HEADER }, 437cdf0e10cSrcweir { XML_NAMESPACE_STYLE, XML_FOOTER, XML_TOK_TEXT_MP_FOOTER }, 438cdf0e10cSrcweir { XML_NAMESPACE_STYLE, XML_HEADER_LEFT, XML_TOK_TEXT_MP_HEADER_LEFT }, 439cdf0e10cSrcweir { XML_NAMESPACE_STYLE, XML_FOOTER_LEFT, XML_TOK_TEXT_MP_FOOTER_LEFT }, 440cdf0e10cSrcweir 441cdf0e10cSrcweir XML_TOKEN_MAP_END 442cdf0e10cSrcweir }; 443cdf0e10cSrcweir 444cdf0e10cSrcweir static __FAR_DATA SvXMLTokenMapEntry aTextFieldAttrTokenMap[] = 445cdf0e10cSrcweir { 446cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_FIXED, XML_TOK_TEXTFIELD_FIXED }, 447cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DESCRIPTION, XML_TOK_TEXTFIELD_DESCRIPTION }, 448cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_HELP, XML_TOK_TEXTFIELD_HELP }, 449cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_HINT, XML_TOK_TEXTFIELD_HINT }, 450cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PLACEHOLDER_TYPE, 451cdf0e10cSrcweir XML_TOK_TEXTFIELD_PLACEHOLDER_TYPE }, 452cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_NAME, XML_TOK_TEXTFIELD_NAME }, 453cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_FORMULA, XML_TOK_TEXTFIELD_FORMULA }, 454cdf0e10cSrcweir { XML_NAMESPACE_STYLE, XML_NUM_FORMAT, XML_TOK_TEXTFIELD_NUM_FORMAT }, 455cdf0e10cSrcweir { XML_NAMESPACE_STYLE, XML_NUM_LETTER_SYNC, 456cdf0e10cSrcweir XML_TOK_TEXTFIELD_NUM_LETTER_SYNC }, 457cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DISPLAY_FORMULA, 458cdf0e10cSrcweir XML_TOK_TEXTFIELD_DISPLAY_FORMULA }, 459cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_VALUE_TYPE, XML_TOK_TEXTFIELD_VALUE_TYPE }, // #i32362#: src680m48++ saves text:value-type 460cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_VALUE_TYPE, XML_TOK_TEXTFIELD_VALUE_TYPE }, 461cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_VALUE, XML_TOK_TEXTFIELD_VALUE }, 462cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_VALUE, XML_TOK_TEXTFIELD_VALUE }, 463cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_STRING_VALUE, XML_TOK_TEXTFIELD_STRING_VALUE }, 464cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_STRING_VALUE, XML_TOK_TEXTFIELD_STRING_VALUE }, 465cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DATE_VALUE, XML_TOK_TEXTFIELD_DATE_VALUE }, 466cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_DATE_VALUE, XML_TOK_TEXTFIELD_DATE_VALUE }, 467cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TIME_VALUE, XML_TOK_TEXTFIELD_TIME_VALUE }, 468cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_TIME_VALUE, XML_TOK_TEXTFIELD_TIME_VALUE }, 469cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_BOOLEAN_VALUE, XML_TOK_TEXTFIELD_BOOL_VALUE}, 470cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_CURRENCY, XML_TOK_TEXTFIELD_CURRENCY}, 471cdf0e10cSrcweir { XML_NAMESPACE_STYLE, XML_DATA_STYLE_NAME, 472cdf0e10cSrcweir XML_TOK_TEXTFIELD_DATA_STYLE_NAME }, 473cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DISPLAY_OUTLINE_LEVEL, 474cdf0e10cSrcweir XML_TOK_TEXTFIELD_NUMBERING_LEVEL }, 475cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SEPARATION_CHARACTER, 476cdf0e10cSrcweir XML_TOK_TEXTFIELD_NUMBERING_SEPARATOR }, 477cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DISPLAY, XML_TOK_TEXTFIELD_DISPLAY }, 478cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TIME_ADJUST, XML_TOK_TEXTFIELD_TIME_ADJUST }, 479cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DATE_ADJUST, XML_TOK_TEXTFIELD_DATE_ADJUST }, 480cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_PAGE_ADJUST, XML_TOK_TEXTFIELD_PAGE_ADJUST }, 481cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_SELECT_PAGE, XML_TOK_TEXTFIELD_SELECT_PAGE }, 482cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_DATABASE_NAME, XML_TOK_TEXTFIELD_DATABASE_NAME}, 483cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TABLE_NAME, XML_TOK_TEXTFIELD_TABLE_NAME }, 484cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_COLUMN_NAME, XML_TOK_TEXTFIELD_COLUMN_NAME }, 485cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_ROW_NUMBER, XML_TOK_TEXTFIELD_ROW_NUMBER }, 486cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CONDITION, XML_TOK_TEXTFIELD_CONDITION }, 487cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_STRING_VALUE_IF_TRUE, 488cdf0e10cSrcweir XML_TOK_TEXTFIELD_STRING_VALUE_IF_TRUE }, 489cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_STRING_VALUE_IF_FALSE, 490cdf0e10cSrcweir XML_TOK_TEXTFIELD_STRING_VALUE_IF_FALSE }, 491cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_EDITING_CYCLES, XML_TOK_TEXTFIELD_REVISION }, 492cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_OUTLINE_LEVEL, XML_TOK_TEXTFIELD_OUTLINE_LEVEL}, 493cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_ACTIVE, XML_TOK_TEXTFIELD_ACTIVE }, 494cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_NOTE_CLASS, XML_TOK_TEXTFIELD_NOTE_CLASS }, 495cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_REFERENCE_FORMAT, 496cdf0e10cSrcweir XML_TOK_TEXTFIELD_REFERENCE_FORMAT }, 497cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_REF_NAME, XML_TOK_TEXTFIELD_REF_NAME }, 498cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CONNECTION_NAME, 499cdf0e10cSrcweir XML_TOK_TEXTFIELD_CONNECTION_NAME }, 500cdf0e10cSrcweir { XML_NAMESPACE_XLINK, XML_HREF, XML_TOK_TEXTFIELD_HREF }, 501cdf0e10cSrcweir { XML_NAMESPACE_OFFICE, XML_TARGET_FRAME_NAME, 502cdf0e10cSrcweir XML_TOK_TEXTFIELD_TARGET_FRAME }, 503cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_ANNOTATION, XML_TOK_TEXTFIELD_ANNOTATION }, 504cdf0e10cSrcweir { XML_NAMESPACE_SCRIPT, XML_LANGUAGE, XML_TOK_TEXTFIELD_LANGUAGE }, 505cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_KIND, XML_TOK_TEXTFIELD_MEASURE_KIND }, 506cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_IS_HIDDEN, XML_TOK_TEXTFIELD_IS_HIDDEN }, 507cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_CURRENT_VALUE, 508cdf0e10cSrcweir XML_TOK_TEXTFIELD_CURRENT_VALUE }, 509cdf0e10cSrcweir { XML_NAMESPACE_TEXT, XML_TABLE_TYPE, XML_TOK_TEXTFIELD_TABLE_TYPE }, 5103b32dd21SOliver-Rainer Wittmann { XML_NAMESPACE_OFFICE, XML_NAME, XML_TOK_TEXT_NAME }, 511cdf0e10cSrcweir 512cdf0e10cSrcweir XML_TOKEN_MAP_END 513cdf0e10cSrcweir }; 514cdf0e10cSrcweir 515cdf0e10cSrcweir 516cdf0e10cSrcweir // maximum allowed length of combined characters field 517cdf0e10cSrcweir #define MAX_COMBINED_CHARACTERS 6 518cdf0e10cSrcweir 519cdf0e10cSrcweir struct SAL_DLLPRIVATE XMLTextImportHelper::Impl 520cdf0e10cSrcweir : private ::boost::noncopyable 521cdf0e10cSrcweir { 522cdf0e10cSrcweir ::std::auto_ptr<SvXMLTokenMap> m_pTextElemTokenMap; 523cdf0e10cSrcweir ::std::auto_ptr<SvXMLTokenMap> m_pTextPElemTokenMap; 524cdf0e10cSrcweir ::std::auto_ptr<SvXMLTokenMap> m_pTextPAttrTokenMap; 525cdf0e10cSrcweir ::std::auto_ptr<SvXMLTokenMap> m_pTextFieldAttrTokenMap; 526cdf0e10cSrcweir ::std::auto_ptr<SvXMLTokenMap> m_pTextNumberedParagraphAttrTokenMap; 527cdf0e10cSrcweir ::std::auto_ptr<SvXMLTokenMap> m_pTextListBlockAttrTokenMap; 528cdf0e10cSrcweir ::std::auto_ptr<SvXMLTokenMap> m_pTextListBlockElemTokenMap; 529cdf0e10cSrcweir ::std::auto_ptr<SvXMLTokenMap> m_pTextFrameAttrTokenMap; 530cdf0e10cSrcweir ::std::auto_ptr<SvXMLTokenMap> m_pTextContourAttrTokenMap; 531cdf0e10cSrcweir ::std::auto_ptr<SvXMLTokenMap> m_pTextHyperlinkAttrTokenMap; 532cdf0e10cSrcweir ::std::auto_ptr<SvXMLTokenMap> m_pTextMasterPageElemTokenMap; 533cdf0e10cSrcweir ::std::auto_ptr<SvStringsDtor> m_pPrevFrmNames; 534cdf0e10cSrcweir ::std::auto_ptr<SvStringsDtor> m_pNextFrmNames; 535cdf0e10cSrcweir 536cdf0e10cSrcweir // --> OD 2008-04-25 #refactorlists# 537cdf0e10cSrcweir ::std::auto_ptr<XMLTextListsHelper> m_pTextListsHelper; 538cdf0e10cSrcweir // <-- 539cdf0e10cSrcweir 540cdf0e10cSrcweir SvXMLImportContextRef m_xAutoStyles; 541cdf0e10cSrcweir SvXMLImportContextRef m_xFontDecls; 542cdf0e10cSrcweir 543cdf0e10cSrcweir XMLSectionList_Impl m_SectionList; 544cdf0e10cSrcweir 545cdf0e10cSrcweir UniReference< SvXMLImportPropertyMapper > m_xParaImpPrMap; 546cdf0e10cSrcweir UniReference< SvXMLImportPropertyMapper > m_xTextImpPrMap; 547cdf0e10cSrcweir UniReference< SvXMLImportPropertyMapper > m_xFrameImpPrMap; 548cdf0e10cSrcweir UniReference< SvXMLImportPropertyMapper > m_xSectionImpPrMap; 549cdf0e10cSrcweir UniReference< SvXMLImportPropertyMapper > m_xRubyImpPrMap; 550cdf0e10cSrcweir 551cdf0e10cSrcweir ::std::auto_ptr<SvI18NMap> m_pRenameMap; 552cdf0e10cSrcweir // --> OD 2006-10-12 #i69629# - change and extend data structure: 553cdf0e10cSrcweir // - data structure contains candidates of paragraph styles, which 554cdf0e10cSrcweir // will be assigned to the outline style 555cdf0e10cSrcweir // - data structure contains more than one candidate for each list level 556cdf0e10cSrcweir // of the outline style 557cdf0e10cSrcweir ::boost::scoped_array< ::std::vector< ::rtl::OUString > > 558cdf0e10cSrcweir m_pOutlineStylesCandidates; 559cdf0e10cSrcweir // <-- 560cdf0e10cSrcweir 561cdf0e10cSrcweir // start range, xml:id, RDFa stuff 562cdf0e10cSrcweir typedef ::boost::tuple< 563cdf0e10cSrcweir uno::Reference<text::XTextRange>, ::rtl::OUString, 564cdf0e10cSrcweir ::boost::shared_ptr< ::xmloff::ParsedRDFaAttributes > > 565cdf0e10cSrcweir BookmarkMapEntry_t; 566cdf0e10cSrcweir /// start ranges for open bookmarks 567cdf0e10cSrcweir ::std::map< ::rtl::OUString, BookmarkMapEntry_t, 568cdf0e10cSrcweir ::comphelper::UStringLess> m_BookmarkStartRanges; 569cdf0e10cSrcweir 570cdf0e10cSrcweir typedef ::std::vector< ::rtl::OUString > BookmarkVector_t; 571cdf0e10cSrcweir BookmarkVector_t m_BookmarkVector; 572cdf0e10cSrcweir 573cdf0e10cSrcweir /// name of the last 'open' redline that started between paragraphs 574cdf0e10cSrcweir ::rtl::OUString m_sOpenRedlineIdentifier; 575cdf0e10cSrcweir 576cdf0e10cSrcweir uno::Reference<text::XText> m_xText; 577cdf0e10cSrcweir uno::Reference<text::XTextCursor> m_xCursor; 578cdf0e10cSrcweir uno::Reference<text::XTextRange> m_xCursorAsRange; 579cdf0e10cSrcweir uno::Reference<container::XNameContainer> m_xParaStyles; 580cdf0e10cSrcweir uno::Reference<container::XNameContainer> m_xTextStyles; 581cdf0e10cSrcweir uno::Reference<container::XNameContainer> m_xNumStyles; 582cdf0e10cSrcweir uno::Reference<container::XNameContainer> m_xFrameStyles; 583cdf0e10cSrcweir uno::Reference<container::XNameContainer> m_xPageStyles; 584cdf0e10cSrcweir uno::Reference<container::XIndexReplace> m_xChapterNumbering; 585cdf0e10cSrcweir uno::Reference<container::XNameAccess> m_xTextFrames; 586cdf0e10cSrcweir uno::Reference<container::XNameAccess> m_xGraphics; 587cdf0e10cSrcweir uno::Reference<container::XNameAccess> m_xObjects; 588cdf0e10cSrcweir uno::Reference<lang::XMultiServiceFactory> m_xServiceFactory; 589cdf0e10cSrcweir 590cdf0e10cSrcweir SvXMLImport & m_rSvXMLImport; 591cdf0e10cSrcweir 592cdf0e10cSrcweir bool m_bInsertMode : 1; 593cdf0e10cSrcweir bool m_bStylesOnlyMode : 1; 594cdf0e10cSrcweir bool m_bBlockMode : 1; 595cdf0e10cSrcweir bool m_bProgress : 1; 596cdf0e10cSrcweir bool m_bOrganizerMode : 1; 597cdf0e10cSrcweir bool m_bBodyContentStarted : 1; 598cdf0e10cSrcweir 599cdf0e10cSrcweir // #107848# 600cdf0e10cSrcweir // One more flag to remember if we are inside a deleted redline section 601cdf0e10cSrcweir bool m_bInsideDeleteContext : 1; 602cdf0e10cSrcweir 603cdf0e10cSrcweir typedef ::std::pair< ::rtl::OUString, ::rtl::OUString> field_name_type_t; 604cdf0e10cSrcweir typedef ::std::pair< ::rtl::OUString, ::rtl::OUString > field_param_t; 605cdf0e10cSrcweir typedef ::std::vector< field_param_t > field_params_t; 606cdf0e10cSrcweir typedef ::std::pair< field_name_type_t, field_params_t > field_stack_item_t; 607cdf0e10cSrcweir typedef ::std::stack< field_stack_item_t > field_stack_t; 608cdf0e10cSrcweir 609cdf0e10cSrcweir field_stack_t m_FieldStack; 610cdf0e10cSrcweir 611cdf0e10cSrcweir ::rtl::OUString m_sCellParaStyleDefault; 612cdf0e10cSrcweir 613cdf0e10cSrcweir Impl( uno::Reference<frame::XModel> const& rModel, 614cdf0e10cSrcweir SvXMLImport & rImport, 615cdf0e10cSrcweir bool const bInsertMode, bool const bStylesOnlyMode, 616cdf0e10cSrcweir bool const bProgress, bool const bBlockMode, 617cdf0e10cSrcweir bool const bOrganizerMode) 618cdf0e10cSrcweir : m_pTextElemTokenMap( 0 ) 619cdf0e10cSrcweir , m_pTextPElemTokenMap( 0 ) 620cdf0e10cSrcweir , m_pTextPAttrTokenMap( 0 ) 621cdf0e10cSrcweir , m_pTextFieldAttrTokenMap( 0 ) 622cdf0e10cSrcweir , m_pTextNumberedParagraphAttrTokenMap( 0 ) 623cdf0e10cSrcweir , m_pTextListBlockAttrTokenMap( 0 ) 624cdf0e10cSrcweir , m_pTextListBlockElemTokenMap( 0 ) 625cdf0e10cSrcweir , m_pTextFrameAttrTokenMap( 0 ) 626cdf0e10cSrcweir , m_pTextContourAttrTokenMap( 0 ) 627cdf0e10cSrcweir , m_pTextHyperlinkAttrTokenMap( 0 ) 628cdf0e10cSrcweir , m_pTextMasterPageElemTokenMap( 0 ) 629cdf0e10cSrcweir , m_pPrevFrmNames( 0 ) 630cdf0e10cSrcweir , m_pNextFrmNames( 0 ) 631cdf0e10cSrcweir // --> OD 2008-04-25 #refactorlists# 632cdf0e10cSrcweir , m_pTextListsHelper( new XMLTextListsHelper() ) 633cdf0e10cSrcweir // <-- 634cdf0e10cSrcweir , m_pRenameMap( 0 ) 635cdf0e10cSrcweir // --> OD 2006-10-12 #i69629# 636cdf0e10cSrcweir , m_pOutlineStylesCandidates( 0 ) 637cdf0e10cSrcweir // <-- 638cdf0e10cSrcweir , m_xServiceFactory( rModel, UNO_QUERY ) 639cdf0e10cSrcweir , m_rSvXMLImport( rImport ) 640cdf0e10cSrcweir , m_bInsertMode( bInsertMode ) 641cdf0e10cSrcweir , m_bStylesOnlyMode( bStylesOnlyMode ) 642cdf0e10cSrcweir , m_bBlockMode( bBlockMode ) 643cdf0e10cSrcweir , m_bProgress( bProgress ) 644cdf0e10cSrcweir , m_bOrganizerMode( bOrganizerMode ) 645cdf0e10cSrcweir , m_bBodyContentStarted( true ) 646cdf0e10cSrcweir // #107848# Initialize inside_deleted_section flag correctly 647cdf0e10cSrcweir , m_bInsideDeleteContext( false ) 648cdf0e10cSrcweir { 649cdf0e10cSrcweir } 650cdf0e10cSrcweir 651cdf0e10cSrcweir void InitOutlineStylesCandidates() 652cdf0e10cSrcweir { 653cdf0e10cSrcweir if (!m_pOutlineStylesCandidates) 654cdf0e10cSrcweir { 655cdf0e10cSrcweir size_t const size(m_xChapterNumbering->getCount()); 656cdf0e10cSrcweir m_pOutlineStylesCandidates.reset( 657cdf0e10cSrcweir new ::std::vector< ::rtl::OUString >[size] ); 658cdf0e10cSrcweir } 659cdf0e10cSrcweir } 660cdf0e10cSrcweir 661cdf0e10cSrcweir }; 662cdf0e10cSrcweir 663cdf0e10cSrcweir 664cdf0e10cSrcweir uno::Reference< text::XText > & XMLTextImportHelper::GetText() 665cdf0e10cSrcweir { 666cdf0e10cSrcweir return m_pImpl->m_xText; 667cdf0e10cSrcweir } 668cdf0e10cSrcweir 669cdf0e10cSrcweir uno::Reference< text::XTextCursor > & XMLTextImportHelper::GetCursor() 670cdf0e10cSrcweir { 671cdf0e10cSrcweir return m_pImpl->m_xCursor; 672cdf0e10cSrcweir } 673cdf0e10cSrcweir 674cdf0e10cSrcweir uno::Reference< text::XTextRange > & XMLTextImportHelper::GetCursorAsRange() 675cdf0e10cSrcweir { 676cdf0e10cSrcweir return m_pImpl->m_xCursorAsRange; 677cdf0e10cSrcweir } 678cdf0e10cSrcweir 679cdf0e10cSrcweir bool XMLTextImportHelper::IsInsertMode() const 680cdf0e10cSrcweir { 681cdf0e10cSrcweir return m_pImpl->m_bInsertMode; 682cdf0e10cSrcweir } 683cdf0e10cSrcweir 684cdf0e10cSrcweir bool XMLTextImportHelper::IsStylesOnlyMode() const 685cdf0e10cSrcweir { 686cdf0e10cSrcweir return m_pImpl->m_bStylesOnlyMode; 687cdf0e10cSrcweir } 688cdf0e10cSrcweir 689cdf0e10cSrcweir bool XMLTextImportHelper::IsBlockMode() const 690cdf0e10cSrcweir { 691cdf0e10cSrcweir return m_pImpl->m_bBlockMode; 692cdf0e10cSrcweir } 693cdf0e10cSrcweir 694cdf0e10cSrcweir bool XMLTextImportHelper::IsOrganizerMode() const 695cdf0e10cSrcweir { 696cdf0e10cSrcweir return m_pImpl->m_bOrganizerMode; 697cdf0e10cSrcweir } 698cdf0e10cSrcweir 699cdf0e10cSrcweir bool XMLTextImportHelper::IsProgress() const 700cdf0e10cSrcweir { 701cdf0e10cSrcweir return m_pImpl->m_bProgress; 702cdf0e10cSrcweir } 703cdf0e10cSrcweir 704cdf0e10cSrcweir XMLSectionList_Impl & XMLTextImportHelper::GetSectionList() 705cdf0e10cSrcweir { 706cdf0e10cSrcweir return m_pImpl->m_SectionList; 707cdf0e10cSrcweir } 708cdf0e10cSrcweir 709cdf0e10cSrcweir uno::Reference<container::XNameContainer> const& 710cdf0e10cSrcweir XMLTextImportHelper::GetParaStyles() const 711cdf0e10cSrcweir { 712cdf0e10cSrcweir return m_pImpl->m_xParaStyles; 713cdf0e10cSrcweir } 714cdf0e10cSrcweir 715cdf0e10cSrcweir uno::Reference<container::XNameContainer> const& 716cdf0e10cSrcweir XMLTextImportHelper::GetTextStyles() const 717cdf0e10cSrcweir { 718cdf0e10cSrcweir return m_pImpl->m_xTextStyles; 719cdf0e10cSrcweir } 720cdf0e10cSrcweir 721cdf0e10cSrcweir uno::Reference<container::XNameContainer> const& 722cdf0e10cSrcweir XMLTextImportHelper::GetNumberingStyles() const 723cdf0e10cSrcweir { 724cdf0e10cSrcweir return m_pImpl->m_xNumStyles; 725cdf0e10cSrcweir } 726cdf0e10cSrcweir 727cdf0e10cSrcweir uno::Reference<container::XNameContainer> const& 728cdf0e10cSrcweir XMLTextImportHelper::GetFrameStyles() const 729cdf0e10cSrcweir { 730cdf0e10cSrcweir return m_pImpl->m_xFrameStyles; 731cdf0e10cSrcweir } 732cdf0e10cSrcweir 733cdf0e10cSrcweir uno::Reference<container::XNameContainer> const& 734cdf0e10cSrcweir XMLTextImportHelper::GetPageStyles() const 735cdf0e10cSrcweir { 736cdf0e10cSrcweir return m_pImpl->m_xPageStyles; 737cdf0e10cSrcweir } 738cdf0e10cSrcweir 739cdf0e10cSrcweir uno::Reference<container::XIndexReplace> const& 740cdf0e10cSrcweir XMLTextImportHelper::GetChapterNumbering() const 741cdf0e10cSrcweir { 742cdf0e10cSrcweir return m_pImpl->m_xChapterNumbering; 743cdf0e10cSrcweir } 744cdf0e10cSrcweir 745cdf0e10cSrcweir UniReference< SvXMLImportPropertyMapper > const& 746cdf0e10cSrcweir XMLTextImportHelper::GetParaImportPropertySetMapper() const 747cdf0e10cSrcweir { 748cdf0e10cSrcweir return m_pImpl->m_xParaImpPrMap; 749cdf0e10cSrcweir } 750cdf0e10cSrcweir 751cdf0e10cSrcweir UniReference< SvXMLImportPropertyMapper > const& 752cdf0e10cSrcweir XMLTextImportHelper::GetTextImportPropertySetMapper() const 753cdf0e10cSrcweir { 754cdf0e10cSrcweir return m_pImpl->m_xTextImpPrMap; 755cdf0e10cSrcweir } 756cdf0e10cSrcweir 757cdf0e10cSrcweir UniReference< SvXMLImportPropertyMapper > const& 758cdf0e10cSrcweir XMLTextImportHelper::GetFrameImportPropertySetMapper() const 759cdf0e10cSrcweir { 760cdf0e10cSrcweir return m_pImpl->m_xFrameImpPrMap; 761cdf0e10cSrcweir } 762cdf0e10cSrcweir 763cdf0e10cSrcweir UniReference< SvXMLImportPropertyMapper > const& 764cdf0e10cSrcweir XMLTextImportHelper::GetSectionImportPropertySetMapper() const 765cdf0e10cSrcweir { 766cdf0e10cSrcweir return m_pImpl->m_xSectionImpPrMap; 767cdf0e10cSrcweir } 768cdf0e10cSrcweir 769cdf0e10cSrcweir UniReference< SvXMLImportPropertyMapper > const& 770cdf0e10cSrcweir XMLTextImportHelper::GetRubyImportPropertySetMapper() const 771cdf0e10cSrcweir { 772cdf0e10cSrcweir return m_pImpl->m_xRubyImpPrMap; 773cdf0e10cSrcweir } 774cdf0e10cSrcweir 775cdf0e10cSrcweir void XMLTextImportHelper::SetInsideDeleteContext(bool const bNew) 776cdf0e10cSrcweir { 777cdf0e10cSrcweir m_pImpl->m_bInsideDeleteContext = bNew; 778cdf0e10cSrcweir } 779cdf0e10cSrcweir 780cdf0e10cSrcweir bool XMLTextImportHelper::IsInsideDeleteContext() const 781cdf0e10cSrcweir { 782cdf0e10cSrcweir return m_pImpl->m_bInsideDeleteContext; 783cdf0e10cSrcweir } 784cdf0e10cSrcweir 785cdf0e10cSrcweir SvXMLImport & XMLTextImportHelper::GetXMLImport() 786cdf0e10cSrcweir { 787cdf0e10cSrcweir return m_pImpl->m_rSvXMLImport; 788cdf0e10cSrcweir } 789cdf0e10cSrcweir 790cdf0e10cSrcweir XMLTextListsHelper & XMLTextImportHelper::GetTextListHelper() 791cdf0e10cSrcweir { 792cdf0e10cSrcweir return *m_pImpl->m_pTextListsHelper; 793cdf0e10cSrcweir } 794cdf0e10cSrcweir 795cdf0e10cSrcweir const SvXMLTokenMap& XMLTextImportHelper::GetTextElemTokenMap() 796cdf0e10cSrcweir { 797cdf0e10cSrcweir if (!m_pImpl->m_pTextElemTokenMap.get()) 798cdf0e10cSrcweir { 799cdf0e10cSrcweir m_pImpl->m_pTextElemTokenMap.reset( 800cdf0e10cSrcweir new SvXMLTokenMap( aTextElemTokenMap )); 801cdf0e10cSrcweir } 802cdf0e10cSrcweir return *m_pImpl->m_pTextElemTokenMap; 803cdf0e10cSrcweir } 804cdf0e10cSrcweir 805cdf0e10cSrcweir const SvXMLTokenMap& XMLTextImportHelper::GetTextPElemTokenMap() 806cdf0e10cSrcweir { 807cdf0e10cSrcweir if (!m_pImpl->m_pTextPElemTokenMap.get()) 808cdf0e10cSrcweir { 809cdf0e10cSrcweir m_pImpl->m_pTextPElemTokenMap.reset( 810cdf0e10cSrcweir new SvXMLTokenMap( aTextPElemTokenMap )); 811cdf0e10cSrcweir } 812cdf0e10cSrcweir return *m_pImpl->m_pTextPElemTokenMap; 813cdf0e10cSrcweir } 814cdf0e10cSrcweir 815cdf0e10cSrcweir const SvXMLTokenMap& XMLTextImportHelper::GetTextPAttrTokenMap() 816cdf0e10cSrcweir { 817cdf0e10cSrcweir if (!m_pImpl->m_pTextPAttrTokenMap.get()) 818cdf0e10cSrcweir { 819cdf0e10cSrcweir m_pImpl->m_pTextPAttrTokenMap.reset( 820cdf0e10cSrcweir new SvXMLTokenMap( aTextPAttrTokenMap )); 821cdf0e10cSrcweir } 822cdf0e10cSrcweir return *m_pImpl->m_pTextPAttrTokenMap; 823cdf0e10cSrcweir } 824cdf0e10cSrcweir 825cdf0e10cSrcweir const SvXMLTokenMap& XMLTextImportHelper::GetTextFrameAttrTokenMap() 826cdf0e10cSrcweir { 827cdf0e10cSrcweir if (!m_pImpl->m_pTextFrameAttrTokenMap.get()) 828cdf0e10cSrcweir { 829cdf0e10cSrcweir m_pImpl->m_pTextFrameAttrTokenMap.reset( 830cdf0e10cSrcweir new SvXMLTokenMap( aTextFrameAttrTokenMap )); 831cdf0e10cSrcweir } 832cdf0e10cSrcweir return *m_pImpl->m_pTextFrameAttrTokenMap; 833cdf0e10cSrcweir } 834cdf0e10cSrcweir 835cdf0e10cSrcweir const SvXMLTokenMap& XMLTextImportHelper::GetTextContourAttrTokenMap() 836cdf0e10cSrcweir { 837cdf0e10cSrcweir if (!m_pImpl->m_pTextContourAttrTokenMap.get()) 838cdf0e10cSrcweir { 839cdf0e10cSrcweir m_pImpl->m_pTextContourAttrTokenMap.reset( 840cdf0e10cSrcweir new SvXMLTokenMap( aTextContourAttrTokenMap )); 841cdf0e10cSrcweir } 842cdf0e10cSrcweir return *m_pImpl->m_pTextContourAttrTokenMap; 843cdf0e10cSrcweir } 844cdf0e10cSrcweir 845cdf0e10cSrcweir const SvXMLTokenMap& XMLTextImportHelper::GetTextHyperlinkAttrTokenMap() 846cdf0e10cSrcweir { 847cdf0e10cSrcweir if (!m_pImpl->m_pTextHyperlinkAttrTokenMap.get()) 848cdf0e10cSrcweir { 849cdf0e10cSrcweir m_pImpl->m_pTextHyperlinkAttrTokenMap.reset( 850cdf0e10cSrcweir new SvXMLTokenMap( aTextHyperlinkAttrTokenMap )); 851cdf0e10cSrcweir } 852cdf0e10cSrcweir return *m_pImpl->m_pTextHyperlinkAttrTokenMap; 853cdf0e10cSrcweir } 854cdf0e10cSrcweir 855cdf0e10cSrcweir const SvXMLTokenMap& XMLTextImportHelper::GetTextMasterPageElemTokenMap() 856cdf0e10cSrcweir { 857cdf0e10cSrcweir if (!m_pImpl->m_pTextMasterPageElemTokenMap.get()) 858cdf0e10cSrcweir { 859cdf0e10cSrcweir m_pImpl->m_pTextMasterPageElemTokenMap.reset( 860cdf0e10cSrcweir new SvXMLTokenMap( aTextMasterPageElemTokenMap )); 861cdf0e10cSrcweir } 862cdf0e10cSrcweir return *m_pImpl->m_pTextMasterPageElemTokenMap; 863cdf0e10cSrcweir } 864cdf0e10cSrcweir 865cdf0e10cSrcweir const SvXMLTokenMap& XMLTextImportHelper::GetTextFieldAttrTokenMap() 866cdf0e10cSrcweir { 867cdf0e10cSrcweir if (!m_pImpl->m_pTextFieldAttrTokenMap.get()) 868cdf0e10cSrcweir { 869cdf0e10cSrcweir m_pImpl->m_pTextFieldAttrTokenMap.reset( 870cdf0e10cSrcweir new SvXMLTokenMap( aTextFieldAttrTokenMap )); 871cdf0e10cSrcweir } 872cdf0e10cSrcweir return *m_pImpl->m_pTextFieldAttrTokenMap; 873cdf0e10cSrcweir } 874cdf0e10cSrcweir 875cdf0e10cSrcweir 876cdf0e10cSrcweir namespace 877cdf0e10cSrcweir { 878cdf0e10cSrcweir class FieldParamImporter 879cdf0e10cSrcweir { 880cdf0e10cSrcweir public: 881cdf0e10cSrcweir typedef pair<OUString,OUString> field_param_t; 882cdf0e10cSrcweir typedef vector<field_param_t> field_params_t; 883cdf0e10cSrcweir FieldParamImporter(const field_params_t* const pInParams, Reference<XNameContainer> xOutParams) 884cdf0e10cSrcweir : m_pInParams(pInParams) 885cdf0e10cSrcweir , m_xOutParams(xOutParams) 886cdf0e10cSrcweir { }; 887cdf0e10cSrcweir void Import(); 888cdf0e10cSrcweir 889cdf0e10cSrcweir private: 890cdf0e10cSrcweir const field_params_t* const m_pInParams; 891cdf0e10cSrcweir Reference<XNameContainer> m_xOutParams; 892cdf0e10cSrcweir }; 893cdf0e10cSrcweir 894cdf0e10cSrcweir void FieldParamImporter::Import() 895cdf0e10cSrcweir { 896cdf0e10cSrcweir ::std::vector<OUString> vListEntries; 897cdf0e10cSrcweir ::std::map<OUString, Any> vOutParams; 898cdf0e10cSrcweir for(field_params_t::const_iterator pCurrent = m_pInParams->begin(); 899cdf0e10cSrcweir pCurrent != m_pInParams->end(); 900cdf0e10cSrcweir ++pCurrent) 901cdf0e10cSrcweir { 902cdf0e10cSrcweir if(pCurrent->first.equalsAscii(ODF_FORMDROPDOWN_RESULT)) 903cdf0e10cSrcweir { 904cdf0e10cSrcweir // sal_Int32 905cdf0e10cSrcweir vOutParams[pCurrent->first] = makeAny(pCurrent->second.toInt32()); 906cdf0e10cSrcweir } 907cdf0e10cSrcweir else if(pCurrent->first.equalsAscii(ODF_FORMCHECKBOX_RESULT)) 908cdf0e10cSrcweir { 909cdf0e10cSrcweir // bool 910cdf0e10cSrcweir vOutParams[pCurrent->first] = makeAny(pCurrent->second.toBoolean()); 911cdf0e10cSrcweir } 912cdf0e10cSrcweir else if(pCurrent->first.equalsAscii(ODF_FORMDROPDOWN_LISTENTRY)) 913cdf0e10cSrcweir { 914cdf0e10cSrcweir // sequence 915cdf0e10cSrcweir vListEntries.push_back(pCurrent->second); 916cdf0e10cSrcweir } 917cdf0e10cSrcweir else 918cdf0e10cSrcweir vOutParams[pCurrent->first] = makeAny(pCurrent->second); 919cdf0e10cSrcweir } 920cdf0e10cSrcweir if(!vListEntries.empty()) 921cdf0e10cSrcweir { 922cdf0e10cSrcweir Sequence<OUString> vListEntriesSeq(vListEntries.size()); 923cdf0e10cSrcweir copy(vListEntries.begin(), vListEntries.end(), ::comphelper::stl_begin(vListEntriesSeq)); 924cdf0e10cSrcweir vOutParams[OUString::createFromAscii(ODF_FORMDROPDOWN_LISTENTRY)] = makeAny(vListEntriesSeq); 925cdf0e10cSrcweir } 926cdf0e10cSrcweir for(::std::map<OUString, Any>::const_iterator pCurrent = vOutParams.begin(); 927cdf0e10cSrcweir pCurrent != vOutParams.end(); 928cdf0e10cSrcweir ++pCurrent) 929cdf0e10cSrcweir { 930cdf0e10cSrcweir try 931cdf0e10cSrcweir { 932cdf0e10cSrcweir m_xOutParams->insertByName(pCurrent->first, pCurrent->second); 933cdf0e10cSrcweir } 934cdf0e10cSrcweir catch(ElementExistException) 935cdf0e10cSrcweir { } 936cdf0e10cSrcweir } 937cdf0e10cSrcweir } 938cdf0e10cSrcweir } 939cdf0e10cSrcweir 940cdf0e10cSrcweir XMLTextImportHelper::XMLTextImportHelper( 941cdf0e10cSrcweir uno::Reference<frame::XModel> const& rModel, 942cdf0e10cSrcweir SvXMLImport& rImport, 943cdf0e10cSrcweir bool const bInsertMode, bool const bStylesOnlyMode, 944cdf0e10cSrcweir bool const bProgress, bool const bBlockMode, 945cdf0e10cSrcweir bool const bOrganizerMode) 946cdf0e10cSrcweir : m_pImpl( new Impl(rModel, rImport, bInsertMode, bStylesOnlyMode, 947cdf0e10cSrcweir bProgress, bBlockMode, bOrganizerMode) ) 948cdf0e10cSrcweir , m_pBackpatcherImpl( MakeBackpatcherImpl() ) 949cdf0e10cSrcweir { 950cdf0e10cSrcweir static ::rtl::OUString s_PropNameDefaultListId( 951cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("DefaultListId")); 952cdf0e10cSrcweir 953cdf0e10cSrcweir Reference< XChapterNumberingSupplier > xCNSupplier( rModel, UNO_QUERY ); 954cdf0e10cSrcweir 955cdf0e10cSrcweir if( xCNSupplier.is() ) 956cdf0e10cSrcweir { 957cdf0e10cSrcweir m_pImpl->m_xChapterNumbering = xCNSupplier->getChapterNumberingRules(); 958cdf0e10cSrcweir // --> OD 2008-05-15 #refactorlists# 959cdf0e10cSrcweir if (m_pImpl->m_xChapterNumbering.is()) 960cdf0e10cSrcweir { 961cdf0e10cSrcweir Reference< XPropertySet > const xNumRuleProps( 962cdf0e10cSrcweir m_pImpl->m_xChapterNumbering, UNO_QUERY); 963cdf0e10cSrcweir if ( xNumRuleProps.is() ) 964cdf0e10cSrcweir { 965cdf0e10cSrcweir Reference< XPropertySetInfo > xNumRulePropSetInfo( 966cdf0e10cSrcweir xNumRuleProps->getPropertySetInfo()); 967cdf0e10cSrcweir if (xNumRulePropSetInfo.is() && 968cdf0e10cSrcweir xNumRulePropSetInfo->hasPropertyByName( 969cdf0e10cSrcweir s_PropNameDefaultListId)) 970cdf0e10cSrcweir { 971cdf0e10cSrcweir ::rtl::OUString sListId; 972cdf0e10cSrcweir xNumRuleProps->getPropertyValue(s_PropNameDefaultListId) 973cdf0e10cSrcweir >>= sListId; 974cdf0e10cSrcweir DBG_ASSERT( sListId.getLength() != 0, 975cdf0e10cSrcweir "no default list id found at chapter numbering rules instance. Serious defect -> please inform OD." ); 976cdf0e10cSrcweir if ( sListId.getLength() ) 977cdf0e10cSrcweir { 978cdf0e10cSrcweir Reference< XNamed > const xChapterNumNamed( 979cdf0e10cSrcweir m_pImpl->m_xChapterNumbering, UNO_QUERY); 980cdf0e10cSrcweir if ( xChapterNumNamed.is() ) 981cdf0e10cSrcweir { 982cdf0e10cSrcweir m_pImpl->m_pTextListsHelper->KeepListAsProcessed( 983cdf0e10cSrcweir sListId, 984cdf0e10cSrcweir xChapterNumNamed->getName(), 985cdf0e10cSrcweir ::rtl::OUString() ); 986cdf0e10cSrcweir } 987cdf0e10cSrcweir } 988cdf0e10cSrcweir } 989cdf0e10cSrcweir } 990cdf0e10cSrcweir } 991cdf0e10cSrcweir // <-- 992cdf0e10cSrcweir } 993cdf0e10cSrcweir 994cdf0e10cSrcweir Reference< XStyleFamiliesSupplier > xFamiliesSupp( rModel, UNO_QUERY ); 995cdf0e10cSrcweir // DBG_ASSERT( xFamiliesSupp.is(), "no chapter numbering supplier" ); for clipboard there may be documents without styles 996cdf0e10cSrcweir 997cdf0e10cSrcweir if( xFamiliesSupp.is() ) 998cdf0e10cSrcweir { 999cdf0e10cSrcweir Reference< XNameAccess > xFamilies(xFamiliesSupp->getStyleFamilies()); 1000cdf0e10cSrcweir 1001cdf0e10cSrcweir const OUString aParaStyles(RTL_CONSTASCII_USTRINGPARAM("ParagraphStyles")); 1002cdf0e10cSrcweir if( xFamilies->hasByName( aParaStyles ) ) 1003cdf0e10cSrcweir { 1004cdf0e10cSrcweir m_pImpl->m_xParaStyles.set(xFamilies->getByName(aParaStyles), 1005cdf0e10cSrcweir UNO_QUERY); 1006cdf0e10cSrcweir } 1007cdf0e10cSrcweir 1008cdf0e10cSrcweir const OUString aCharStyles(RTL_CONSTASCII_USTRINGPARAM("CharacterStyles")); 1009cdf0e10cSrcweir if( xFamilies->hasByName( aCharStyles ) ) 1010cdf0e10cSrcweir { 1011cdf0e10cSrcweir m_pImpl->m_xTextStyles.set(xFamilies->getByName(aCharStyles), 1012cdf0e10cSrcweir UNO_QUERY); 1013cdf0e10cSrcweir } 1014cdf0e10cSrcweir 1015cdf0e10cSrcweir const OUString aNumStyles(RTL_CONSTASCII_USTRINGPARAM("NumberingStyles")); 1016cdf0e10cSrcweir if( xFamilies->hasByName( aNumStyles ) ) 1017cdf0e10cSrcweir { 1018cdf0e10cSrcweir m_pImpl->m_xNumStyles.set(xFamilies->getByName(aNumStyles), 1019cdf0e10cSrcweir UNO_QUERY); 1020cdf0e10cSrcweir } 1021cdf0e10cSrcweir 1022cdf0e10cSrcweir const OUString aFrameStyles(RTL_CONSTASCII_USTRINGPARAM("FrameStyles")); 1023cdf0e10cSrcweir if( xFamilies->hasByName( aFrameStyles ) ) 1024cdf0e10cSrcweir { 1025cdf0e10cSrcweir m_pImpl->m_xFrameStyles.set(xFamilies->getByName(aFrameStyles), 1026cdf0e10cSrcweir UNO_QUERY); 1027cdf0e10cSrcweir } 1028cdf0e10cSrcweir 1029cdf0e10cSrcweir const OUString aPageStyles(RTL_CONSTASCII_USTRINGPARAM("PageStyles")); 1030cdf0e10cSrcweir if( xFamilies->hasByName( aPageStyles ) ) 1031cdf0e10cSrcweir { 1032cdf0e10cSrcweir m_pImpl->m_xPageStyles.set(xFamilies->getByName(aPageStyles), 1033cdf0e10cSrcweir UNO_QUERY); 1034cdf0e10cSrcweir } 1035cdf0e10cSrcweir } 1036cdf0e10cSrcweir 1037cdf0e10cSrcweir Reference < XTextFramesSupplier > xTFS( rModel, UNO_QUERY ); 1038cdf0e10cSrcweir if( xTFS.is() ) 1039cdf0e10cSrcweir { 1040cdf0e10cSrcweir m_pImpl->m_xTextFrames.set(xTFS->getTextFrames()); 1041cdf0e10cSrcweir } 1042cdf0e10cSrcweir 1043cdf0e10cSrcweir Reference < XTextGraphicObjectsSupplier > xTGOS( rModel, UNO_QUERY ); 1044cdf0e10cSrcweir if( xTGOS.is() ) 1045cdf0e10cSrcweir { 1046cdf0e10cSrcweir m_pImpl->m_xGraphics.set(xTGOS->getGraphicObjects()); 1047cdf0e10cSrcweir } 1048cdf0e10cSrcweir 1049cdf0e10cSrcweir Reference < XTextEmbeddedObjectsSupplier > xTEOS( rModel, UNO_QUERY ); 1050cdf0e10cSrcweir if( xTEOS.is() ) 1051cdf0e10cSrcweir { 1052cdf0e10cSrcweir m_pImpl->m_xObjects.set(xTEOS->getEmbeddedObjects()); 1053cdf0e10cSrcweir } 1054cdf0e10cSrcweir 1055cdf0e10cSrcweir XMLPropertySetMapper *pPropMapper = 1056cdf0e10cSrcweir new XMLTextPropertySetMapper( TEXT_PROP_MAP_PARA ); 1057cdf0e10cSrcweir m_pImpl->m_xParaImpPrMap = 1058cdf0e10cSrcweir new XMLTextImportPropertyMapper( pPropMapper, rImport ); 1059cdf0e10cSrcweir 1060cdf0e10cSrcweir pPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT ); 1061cdf0e10cSrcweir m_pImpl->m_xTextImpPrMap = 1062cdf0e10cSrcweir new XMLTextImportPropertyMapper( pPropMapper, rImport ); 1063cdf0e10cSrcweir 1064cdf0e10cSrcweir pPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_FRAME ); 1065cdf0e10cSrcweir m_pImpl->m_xFrameImpPrMap = 1066cdf0e10cSrcweir new XMLTextImportPropertyMapper( pPropMapper, rImport ); 1067cdf0e10cSrcweir 1068cdf0e10cSrcweir pPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_SECTION ); 1069cdf0e10cSrcweir m_pImpl->m_xSectionImpPrMap = 1070cdf0e10cSrcweir new XMLTextImportPropertyMapper( pPropMapper, rImport ); 1071cdf0e10cSrcweir 1072cdf0e10cSrcweir pPropMapper = new XMLTextPropertySetMapper( TEXT_PROP_MAP_RUBY ); 1073cdf0e10cSrcweir m_pImpl->m_xRubyImpPrMap = 1074cdf0e10cSrcweir new SvXMLImportPropertyMapper( pPropMapper, rImport ); 1075cdf0e10cSrcweir } 1076cdf0e10cSrcweir 1077cdf0e10cSrcweir XMLTextImportHelper::~XMLTextImportHelper() 1078cdf0e10cSrcweir { 1079cdf0e10cSrcweir } 1080cdf0e10cSrcweir 1081cdf0e10cSrcweir SvXMLImportPropertyMapper *XMLTextImportHelper::CreateShapeExtPropMapper(SvXMLImport& rImport) 1082cdf0e10cSrcweir { 1083cdf0e10cSrcweir XMLPropertySetMapper *pPropMapper = 1084cdf0e10cSrcweir new XMLTextPropertySetMapper( TEXT_PROP_MAP_FRAME ); 1085cdf0e10cSrcweir return new XMLTextImportPropertyMapper( pPropMapper, rImport, 1086cdf0e10cSrcweir const_cast<XMLFontStylesContext*>(rImport.GetFontDecls()) ); 1087cdf0e10cSrcweir } 1088cdf0e10cSrcweir 1089cdf0e10cSrcweir SvXMLImportPropertyMapper *XMLTextImportHelper::CreateCharExtPropMapper(SvXMLImport& rImport, XMLFontStylesContext *pFontDecls) 1090cdf0e10cSrcweir { 1091cdf0e10cSrcweir XMLPropertySetMapper *pPropMapper = 1092cdf0e10cSrcweir new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT ); 1093cdf0e10cSrcweir if (!pFontDecls) 1094cdf0e10cSrcweir pFontDecls = const_cast<XMLFontStylesContext*>(rImport.GetFontDecls()); 1095cdf0e10cSrcweir return new XMLTextImportPropertyMapper( pPropMapper, rImport, pFontDecls ); 1096cdf0e10cSrcweir } 1097cdf0e10cSrcweir 1098cdf0e10cSrcweir SvXMLImportPropertyMapper *XMLTextImportHelper::CreateParaExtPropMapper(SvXMLImport& rImport, XMLFontStylesContext *pFontDecls) 1099cdf0e10cSrcweir { 1100cdf0e10cSrcweir XMLPropertySetMapper *pPropMapper = 1101cdf0e10cSrcweir new XMLTextPropertySetMapper( TEXT_PROP_MAP_SHAPE_PARA ); 1102cdf0e10cSrcweir if (!pFontDecls) 1103cdf0e10cSrcweir pFontDecls = const_cast<XMLFontStylesContext*>(rImport.GetFontDecls()); 1104cdf0e10cSrcweir return new XMLTextImportPropertyMapper( pPropMapper, rImport, pFontDecls ); 1105cdf0e10cSrcweir } 1106cdf0e10cSrcweir 1107cdf0e10cSrcweir SvXMLImportPropertyMapper *XMLTextImportHelper::CreateParaDefaultExtPropMapper(SvXMLImport& rImport, XMLFontStylesContext* pFontDecls) 1108cdf0e10cSrcweir { 1109cdf0e10cSrcweir if (!pFontDecls) 1110cdf0e10cSrcweir pFontDecls = const_cast<XMLFontStylesContext*>(rImport.GetFontDecls()); 1111cdf0e10cSrcweir 1112cdf0e10cSrcweir XMLPropertySetMapper* pPropMapper = 1113cdf0e10cSrcweir new XMLTextPropertySetMapper( TEXT_PROP_MAP_SHAPE_PARA ); 1114cdf0e10cSrcweir SvXMLImportPropertyMapper* pImportMapper = new XMLTextImportPropertyMapper( pPropMapper, rImport, pFontDecls ); 1115cdf0e10cSrcweir 1116cdf0e10cSrcweir pPropMapper = 1117cdf0e10cSrcweir new XMLTextPropertySetMapper( TEXT_PROP_MAP_TEXT_ADDITIONAL_DEFAULTS ); 1118cdf0e10cSrcweir pImportMapper->ChainImportMapper( new XMLTextImportPropertyMapper( pPropMapper, rImport, pFontDecls ) ); 1119cdf0e10cSrcweir 1120cdf0e10cSrcweir return pImportMapper; 1121cdf0e10cSrcweir } 1122cdf0e10cSrcweir 1123cdf0e10cSrcweir SvXMLImportPropertyMapper* 1124cdf0e10cSrcweir XMLTextImportHelper::CreateTableDefaultExtPropMapper( 1125cdf0e10cSrcweir SvXMLImport& rImport, 1126cdf0e10cSrcweir XMLFontStylesContext* ) 1127cdf0e10cSrcweir { 1128cdf0e10cSrcweir XMLPropertySetMapper *pPropMapper = 1129cdf0e10cSrcweir new XMLTextPropertySetMapper( TEXT_PROP_MAP_TABLE_DEFAULTS ); 1130cdf0e10cSrcweir return new SvXMLImportPropertyMapper( pPropMapper, rImport ); 1131cdf0e10cSrcweir } 1132cdf0e10cSrcweir 1133cdf0e10cSrcweir SvXMLImportPropertyMapper* 1134cdf0e10cSrcweir XMLTextImportHelper::CreateTableRowDefaultExtPropMapper( 1135cdf0e10cSrcweir SvXMLImport& rImport, 1136cdf0e10cSrcweir XMLFontStylesContext* ) 1137cdf0e10cSrcweir { 1138cdf0e10cSrcweir XMLPropertySetMapper *pPropMapper = 1139cdf0e10cSrcweir new XMLTextPropertySetMapper( TEXT_PROP_MAP_TABLE_ROW_DEFAULTS ); 1140cdf0e10cSrcweir return new SvXMLImportPropertyMapper( pPropMapper, rImport ); 1141cdf0e10cSrcweir } 1142cdf0e10cSrcweir 1143cdf0e10cSrcweir void XMLTextImportHelper::SetCursor( const Reference < XTextCursor > & rCursor ) 1144cdf0e10cSrcweir { 1145cdf0e10cSrcweir m_pImpl->m_xCursor.set(rCursor); 1146cdf0e10cSrcweir m_pImpl->m_xText.set(rCursor->getText()); 1147cdf0e10cSrcweir m_pImpl->m_xCursorAsRange.set( rCursor, UNO_QUERY ); 1148cdf0e10cSrcweir } 1149cdf0e10cSrcweir 1150cdf0e10cSrcweir void XMLTextImportHelper::ResetCursor() 1151cdf0e10cSrcweir { 1152cdf0e10cSrcweir m_pImpl->m_xCursor.set(0); 1153cdf0e10cSrcweir m_pImpl->m_xText.set(0); 1154cdf0e10cSrcweir m_pImpl->m_xCursorAsRange.set(0); 1155cdf0e10cSrcweir } 1156cdf0e10cSrcweir 1157cdf0e10cSrcweir 1158cdf0e10cSrcweir sal_Bool XMLTextImportHelper::HasFrameByName( const OUString& rName ) const 1159cdf0e10cSrcweir { 1160cdf0e10cSrcweir return (m_pImpl->m_xTextFrames.is() && 1161cdf0e10cSrcweir m_pImpl->m_xTextFrames->hasByName(rName)) 1162cdf0e10cSrcweir || (m_pImpl->m_xGraphics.is() && 1163cdf0e10cSrcweir m_pImpl->m_xGraphics->hasByName(rName)) 1164cdf0e10cSrcweir || (m_pImpl->m_xObjects.is() && 1165cdf0e10cSrcweir m_pImpl->m_xObjects->hasByName(rName)); 1166cdf0e10cSrcweir } 1167cdf0e10cSrcweir 1168cdf0e10cSrcweir void XMLTextImportHelper::InsertString( const OUString& rChars ) 1169cdf0e10cSrcweir { 1170cdf0e10cSrcweir DBG_ASSERT(m_pImpl->m_xText.is(), "no text"); 1171cdf0e10cSrcweir DBG_ASSERT(m_pImpl->m_xCursorAsRange.is(), "no range"); 1172cdf0e10cSrcweir if (m_pImpl->m_xText.is()) 1173cdf0e10cSrcweir { 1174cdf0e10cSrcweir m_pImpl->m_xText->insertString(m_pImpl->m_xCursorAsRange, 1175cdf0e10cSrcweir rChars, sal_False); 1176cdf0e10cSrcweir } 1177cdf0e10cSrcweir } 1178cdf0e10cSrcweir 1179cdf0e10cSrcweir void XMLTextImportHelper::InsertString( const OUString& rChars, 1180cdf0e10cSrcweir sal_Bool& rIgnoreLeadingSpace ) 1181cdf0e10cSrcweir { 1182cdf0e10cSrcweir DBG_ASSERT(m_pImpl->m_xText.is(), "no text"); 1183cdf0e10cSrcweir DBG_ASSERT(m_pImpl->m_xCursorAsRange.is(), "no range"); 1184cdf0e10cSrcweir if (m_pImpl->m_xText.is()) 1185cdf0e10cSrcweir { 1186cdf0e10cSrcweir sal_Int32 nLen = rChars.getLength(); 1187cdf0e10cSrcweir OUStringBuffer sChars( nLen ); 1188cdf0e10cSrcweir 1189cdf0e10cSrcweir for( sal_Int32 i=0; i < nLen; i++ ) 1190cdf0e10cSrcweir { 1191cdf0e10cSrcweir sal_Unicode c = rChars[i]; 1192cdf0e10cSrcweir switch( c ) 1193cdf0e10cSrcweir { 1194cdf0e10cSrcweir case 0x20: 1195cdf0e10cSrcweir case 0x09: 1196cdf0e10cSrcweir case 0x0a: 1197cdf0e10cSrcweir case 0x0d: 1198cdf0e10cSrcweir if( !rIgnoreLeadingSpace ) 1199cdf0e10cSrcweir sChars.append( (sal_Unicode)0x20 ); 1200cdf0e10cSrcweir rIgnoreLeadingSpace = sal_True; 1201cdf0e10cSrcweir break; 1202cdf0e10cSrcweir default: 1203cdf0e10cSrcweir rIgnoreLeadingSpace = sal_False; 1204cdf0e10cSrcweir sChars.append( c ); 1205cdf0e10cSrcweir break; 1206cdf0e10cSrcweir } 1207cdf0e10cSrcweir } 1208cdf0e10cSrcweir m_pImpl->m_xText->insertString(m_pImpl->m_xCursorAsRange, 1209cdf0e10cSrcweir sChars.makeStringAndClear(), sal_False); 1210cdf0e10cSrcweir } 1211cdf0e10cSrcweir } 1212cdf0e10cSrcweir 1213cdf0e10cSrcweir void XMLTextImportHelper::InsertControlCharacter( sal_Int16 nControl ) 1214cdf0e10cSrcweir { 1215cdf0e10cSrcweir DBG_ASSERT(m_pImpl->m_xText.is(), "no text"); 1216cdf0e10cSrcweir DBG_ASSERT(m_pImpl->m_xCursorAsRange.is(), "no range"); 1217cdf0e10cSrcweir if (m_pImpl->m_xText.is()) 1218cdf0e10cSrcweir { 1219cdf0e10cSrcweir m_pImpl->m_xText->insertControlCharacter( 1220cdf0e10cSrcweir m_pImpl->m_xCursorAsRange, nControl, sal_False); 1221cdf0e10cSrcweir } 1222cdf0e10cSrcweir } 1223cdf0e10cSrcweir 1224cdf0e10cSrcweir void XMLTextImportHelper::InsertTextContent( 1225cdf0e10cSrcweir Reference < XTextContent > & xContent ) 1226cdf0e10cSrcweir { 1227cdf0e10cSrcweir DBG_ASSERT(m_pImpl->m_xText.is(), "no text"); 1228cdf0e10cSrcweir DBG_ASSERT(m_pImpl->m_xCursorAsRange.is(), "no range"); 1229cdf0e10cSrcweir if (m_pImpl->m_xText.is()) 1230cdf0e10cSrcweir { 1231cdf0e10cSrcweir m_pImpl->m_xText->insertTextContent( 1232cdf0e10cSrcweir m_pImpl->m_xCursorAsRange, xContent, sal_False); 1233cdf0e10cSrcweir } 1234cdf0e10cSrcweir } 1235cdf0e10cSrcweir 1236cdf0e10cSrcweir void XMLTextImportHelper::DeleteParagraph() 1237cdf0e10cSrcweir { 1238cdf0e10cSrcweir DBG_ASSERT(m_pImpl->m_xText.is(), "no text"); 1239cdf0e10cSrcweir DBG_ASSERT(m_pImpl->m_xCursor.is(), "no cursor"); 1240cdf0e10cSrcweir DBG_ASSERT(m_pImpl->m_xCursorAsRange.is(), "no range"); 1241cdf0e10cSrcweir 1242cdf0e10cSrcweir sal_Bool bDelete = sal_True; 1243cdf0e10cSrcweir Reference < XEnumerationAccess > const xEnumAccess( 1244cdf0e10cSrcweir m_pImpl->m_xCursor, UNO_QUERY); 1245cdf0e10cSrcweir if( xEnumAccess.is() ) 1246cdf0e10cSrcweir { 1247cdf0e10cSrcweir Reference < XEnumeration > xEnum(xEnumAccess->createEnumeration()); 1248cdf0e10cSrcweir DBG_ASSERT( xEnum->hasMoreElements(), "empty text enumeration" ); 1249cdf0e10cSrcweir if( xEnum->hasMoreElements() ) 1250cdf0e10cSrcweir { 1251cdf0e10cSrcweir Reference < XComponent > xComp( xEnum->nextElement(), UNO_QUERY ); 1252cdf0e10cSrcweir DBG_ASSERT( xComp.is(), "got no component" ); 1253cdf0e10cSrcweir if( xComp.is() ) 1254cdf0e10cSrcweir { 1255cdf0e10cSrcweir xComp->dispose(); 1256cdf0e10cSrcweir bDelete = sal_False; 1257cdf0e10cSrcweir } 1258cdf0e10cSrcweir } 1259cdf0e10cSrcweir } 1260cdf0e10cSrcweir if( bDelete ) 1261cdf0e10cSrcweir { 1262cdf0e10cSrcweir if (m_pImpl->m_xCursor->goLeft( 1, sal_True )) 1263cdf0e10cSrcweir { 1264cdf0e10cSrcweir OUString sEmpty; 1265cdf0e10cSrcweir m_pImpl->m_xText->insertString(m_pImpl->m_xCursorAsRange, 1266cdf0e10cSrcweir sEmpty, sal_True); 1267cdf0e10cSrcweir } 1268cdf0e10cSrcweir } 1269cdf0e10cSrcweir } 1270cdf0e10cSrcweir 1271cdf0e10cSrcweir OUString XMLTextImportHelper::ConvertStarFonts( const OUString& rChars, 1272cdf0e10cSrcweir const OUString& rStyleName, 1273cdf0e10cSrcweir sal_uInt8& rFlags, 1274cdf0e10cSrcweir sal_Bool bPara, 1275cdf0e10cSrcweir SvXMLImport& rImport ) const 1276cdf0e10cSrcweir { 1277cdf0e10cSrcweir OUStringBuffer sChars( rChars ); 1278cdf0e10cSrcweir sal_Bool bConverted = sal_False; 1279cdf0e10cSrcweir for( sal_Int32 j=0; j<rChars.getLength(); j++ ) 1280cdf0e10cSrcweir { 1281cdf0e10cSrcweir sal_Unicode c = rChars[j]; 1282cdf0e10cSrcweir if( c >= 0xf000 && c <= 0xf0ff ) 1283cdf0e10cSrcweir { 1284cdf0e10cSrcweir if( (rFlags & CONV_STAR_FONT_FLAGS_VALID) == 0 ) 1285cdf0e10cSrcweir { 1286cdf0e10cSrcweir XMLTextStyleContext *pStyle = 0; 1287cdf0e10cSrcweir sal_uInt16 nFamily = bPara ? XML_STYLE_FAMILY_TEXT_PARAGRAPH 1288cdf0e10cSrcweir : XML_STYLE_FAMILY_TEXT_TEXT; 1289cdf0e10cSrcweir if (rStyleName.getLength() && m_pImpl->m_xAutoStyles.Is()) 1290cdf0e10cSrcweir { 1291cdf0e10cSrcweir const SvXMLStyleContext* pTempStyle = 1292cdf0e10cSrcweir ((SvXMLStylesContext *)&m_pImpl->m_xAutoStyles)-> 1293cdf0e10cSrcweir FindStyleChildContext( nFamily, rStyleName, 1294cdf0e10cSrcweir sal_True ); 1295cdf0e10cSrcweir pStyle = PTR_CAST( XMLTextStyleContext,pTempStyle); 1296cdf0e10cSrcweir } 1297cdf0e10cSrcweir 1298cdf0e10cSrcweir if( pStyle ) 1299cdf0e10cSrcweir { 1300cdf0e10cSrcweir sal_Int32 nCount = pStyle->_GetProperties().size(); 1301cdf0e10cSrcweir if( nCount ) 1302cdf0e10cSrcweir { 1303cdf0e10cSrcweir UniReference < SvXMLImportPropertyMapper > xImpPrMap = 1304cdf0e10cSrcweir ((SvXMLStylesContext *)&m_pImpl->m_xAutoStyles) 1305cdf0e10cSrcweir ->GetImportPropertyMapper(nFamily); 1306cdf0e10cSrcweir if( xImpPrMap.is() ) 1307cdf0e10cSrcweir { 1308cdf0e10cSrcweir UniReference<XMLPropertySetMapper> rPropMapper = 1309cdf0e10cSrcweir xImpPrMap->getPropertySetMapper(); 1310cdf0e10cSrcweir for( sal_Int32 i=0; i < nCount; i++ ) 1311cdf0e10cSrcweir { 1312cdf0e10cSrcweir const XMLPropertyState& rProp = pStyle->_GetProperties()[i]; 1313cdf0e10cSrcweir sal_Int32 nIdx = rProp.mnIndex; 1314cdf0e10cSrcweir sal_uInt32 nContextId = rPropMapper->GetEntryContextId(nIdx); 1315cdf0e10cSrcweir if( CTF_FONTFAMILYNAME == nContextId ) 1316cdf0e10cSrcweir { 1317cdf0e10cSrcweir rFlags &= ~(CONV_FROM_STAR_BATS|CONV_FROM_STAR_MATH); 1318cdf0e10cSrcweir OUString sFontName; 1319cdf0e10cSrcweir rProp.maValue >>= sFontName; 1320cdf0e10cSrcweir OUString sStarBats( RTL_CONSTASCII_USTRINGPARAM("StarBats" ) ); 1321cdf0e10cSrcweir OUString sStarMath( RTL_CONSTASCII_USTRINGPARAM("StarMath" ) ); 1322cdf0e10cSrcweir if( sFontName.equalsIgnoreAsciiCase( sStarBats ) ) 1323cdf0e10cSrcweir rFlags |= CONV_FROM_STAR_BATS; 1324cdf0e10cSrcweir else if( sFontName.equalsIgnoreAsciiCase( sStarMath ) ) 1325cdf0e10cSrcweir rFlags |= CONV_FROM_STAR_MATH; 1326cdf0e10cSrcweir break; 1327cdf0e10cSrcweir } 1328cdf0e10cSrcweir } 1329cdf0e10cSrcweir } 1330cdf0e10cSrcweir } 1331cdf0e10cSrcweir 1332cdf0e10cSrcweir } 1333cdf0e10cSrcweir 1334cdf0e10cSrcweir rFlags |= CONV_STAR_FONT_FLAGS_VALID; 1335cdf0e10cSrcweir } 1336cdf0e10cSrcweir if( (rFlags & CONV_FROM_STAR_BATS ) != 0 ) 1337cdf0e10cSrcweir { 1338cdf0e10cSrcweir sChars.setCharAt( j, rImport.ConvStarBatsCharToStarSymbol( c ) ); 1339cdf0e10cSrcweir bConverted = sal_True; 1340cdf0e10cSrcweir } 1341cdf0e10cSrcweir else if( (rFlags & CONV_FROM_STAR_MATH ) != 0 ) 1342cdf0e10cSrcweir { 1343cdf0e10cSrcweir sChars.setCharAt( j, rImport.ConvStarMathCharToStarSymbol( c ) ); 1344cdf0e10cSrcweir bConverted = sal_True; 1345cdf0e10cSrcweir } 1346cdf0e10cSrcweir } 1347cdf0e10cSrcweir } 1348cdf0e10cSrcweir 1349cdf0e10cSrcweir return bConverted ? sChars.makeStringAndClear() : rChars; 1350cdf0e10cSrcweir } 1351cdf0e10cSrcweir 1352cdf0e10cSrcweir // --> OD 2006-10-12 #i69629# 1353cdf0e10cSrcweir // helper method to determine, if a paragraph style has a list style (inclusive 1354cdf0e10cSrcweir // an empty one) inherits a list style (inclusive an empty one) from one of its parents 1355cdf0e10cSrcweir // --> OD 2007-01-29 #i73973# 1356cdf0e10cSrcweir // apply special case, that found list style equals the chapter numbering, also 1357cdf0e10cSrcweir // to the found list styles of the parent styles. 1358cdf0e10cSrcweir sal_Bool lcl_HasListStyle( OUString sStyleName, 1359cdf0e10cSrcweir const Reference < XNameContainer >& xParaStyles, 1360cdf0e10cSrcweir SvXMLImport& rImport, 1361cdf0e10cSrcweir const OUString& sNumberingStyleName, 1362cdf0e10cSrcweir const OUString& sOutlineStyleName ) 1363cdf0e10cSrcweir { 1364cdf0e10cSrcweir sal_Bool bRet( sal_False ); 1365cdf0e10cSrcweir 1366cdf0e10cSrcweir if ( !xParaStyles->hasByName( sStyleName ) ) 1367cdf0e10cSrcweir { 1368cdf0e10cSrcweir // error case 1369cdf0e10cSrcweir return sal_True; 1370cdf0e10cSrcweir } 1371cdf0e10cSrcweir 1372cdf0e10cSrcweir Reference< XPropertyState > xPropState( xParaStyles->getByName( sStyleName ), 1373cdf0e10cSrcweir UNO_QUERY ); 1374cdf0e10cSrcweir if ( !xPropState.is() ) 1375cdf0e10cSrcweir { 1376cdf0e10cSrcweir // error case 1377cdf0e10cSrcweir return sal_False; 1378cdf0e10cSrcweir } 1379cdf0e10cSrcweir 1380cdf0e10cSrcweir if ( xPropState->getPropertyState( sNumberingStyleName ) == PropertyState_DIRECT_VALUE ) 1381cdf0e10cSrcweir { 1382cdf0e10cSrcweir // list style found 1383cdf0e10cSrcweir bRet = sal_True; 1384cdf0e10cSrcweir // special case: the set list style equals the chapter numbering 1385cdf0e10cSrcweir Reference< XPropertySet > xPropSet( xPropState, UNO_QUERY ); 1386cdf0e10cSrcweir if ( xPropSet.is() ) 1387cdf0e10cSrcweir { 1388cdf0e10cSrcweir OUString sListStyle; 1389cdf0e10cSrcweir xPropSet->getPropertyValue( sNumberingStyleName ) >>= sListStyle; 1390cdf0e10cSrcweir if ( sListStyle.getLength() != 0 && 1391cdf0e10cSrcweir sListStyle == sOutlineStyleName ) 1392cdf0e10cSrcweir { 1393cdf0e10cSrcweir bRet = sal_False; 1394cdf0e10cSrcweir } 1395cdf0e10cSrcweir } 1396cdf0e10cSrcweir } 1397cdf0e10cSrcweir else 1398cdf0e10cSrcweir { 1399cdf0e10cSrcweir // --> OD 2007-12-07 #i77708# 1400cdf0e10cSrcweir sal_Int32 nUPD( 0 ); 1401cdf0e10cSrcweir sal_Int32 nBuild( 0 ); 1402cdf0e10cSrcweir // --> OD 2008-03-19 #i86058# 1403cdf0e10cSrcweir // rImport.getBuildIds( nUPD, nBuild ); 1404cdf0e10cSrcweir const bool bBuildIdFound = rImport.getBuildIds( nUPD, nBuild ); 1405cdf0e10cSrcweir // <-- 1406cdf0e10cSrcweir // <-- 1407cdf0e10cSrcweir // search list style at parent 1408cdf0e10cSrcweir Reference<XStyle> xStyle( xPropState, UNO_QUERY ); 1409cdf0e10cSrcweir while ( xStyle.is() ) 1410cdf0e10cSrcweir { 1411cdf0e10cSrcweir OUString aParentStyle( xStyle->getParentStyle() ); 1412cdf0e10cSrcweir if ( aParentStyle.getLength() > 0 ) 1413cdf0e10cSrcweir { 1414cdf0e10cSrcweir aParentStyle = 1415cdf0e10cSrcweir rImport.GetStyleDisplayName( XML_STYLE_FAMILY_TEXT_PARAGRAPH, 1416cdf0e10cSrcweir aParentStyle ); 1417cdf0e10cSrcweir } 1418cdf0e10cSrcweir if ( aParentStyle.getLength() == 0 || 1419cdf0e10cSrcweir !xParaStyles->hasByName( aParentStyle ) ) 1420cdf0e10cSrcweir { 1421cdf0e10cSrcweir // no list style found 1422cdf0e10cSrcweir break; 1423cdf0e10cSrcweir } 1424cdf0e10cSrcweir else 1425cdf0e10cSrcweir { 1426cdf0e10cSrcweir xPropState = Reference< XPropertyState >( 1427cdf0e10cSrcweir xParaStyles->getByName( aParentStyle ), 1428cdf0e10cSrcweir UNO_QUERY ); 1429cdf0e10cSrcweir if ( !xPropState.is() ) 1430cdf0e10cSrcweir { 1431cdf0e10cSrcweir // error case 1432cdf0e10cSrcweir return sal_True; 1433cdf0e10cSrcweir } 1434cdf0e10cSrcweir if ( xPropState->getPropertyState( sNumberingStyleName ) == PropertyState_DIRECT_VALUE ) 1435cdf0e10cSrcweir { 1436cdf0e10cSrcweir // list style found 1437cdf0e10cSrcweir bRet = sal_True; 1438cdf0e10cSrcweir // --> OD 2007-01-29 #i73973# 1439cdf0e10cSrcweir // special case: the found list style equals the chapter numbering 1440cdf0e10cSrcweir Reference< XPropertySet > xPropSet( xPropState, UNO_QUERY ); 1441cdf0e10cSrcweir if ( xPropSet.is() ) 1442cdf0e10cSrcweir { 1443cdf0e10cSrcweir OUString sListStyle; 1444cdf0e10cSrcweir xPropSet->getPropertyValue( sNumberingStyleName ) >>= sListStyle; 1445cdf0e10cSrcweir if ( sListStyle.getLength() != 0 && 1446cdf0e10cSrcweir sListStyle == sOutlineStyleName ) 1447cdf0e10cSrcweir { 1448cdf0e10cSrcweir bRet = sal_False; 1449cdf0e10cSrcweir } 1450cdf0e10cSrcweir // --> OD 2007-12-07 #i77708# 1451cdf0e10cSrcweir // special handling for text documents from OOo version prior OOo 2.4 1452cdf0e10cSrcweir // --> OD 2008-03-19 #i86058# 1453cdf0e10cSrcweir // check explicitly on certain versions and on import of 1454cdf0e10cSrcweir // text documents in OpenOffice.org file format 1455cdf0e10cSrcweir else if ( sListStyle.getLength() == 0 && 1456cdf0e10cSrcweir ( rImport.IsTextDocInOOoFileFormat() || 1457cdf0e10cSrcweir ( bBuildIdFound && 1458cdf0e10cSrcweir ( ( nUPD == 641 ) || ( nUPD == 645 ) || // prior OOo 2.0 1459cdf0e10cSrcweir ( nUPD == 680 && nBuild <= 9238 ) ) ) ) ) // OOo 2.0 - OOo 2.3.1 1460cdf0e10cSrcweir { 1461cdf0e10cSrcweir bRet = sal_False; 1462cdf0e10cSrcweir } 1463cdf0e10cSrcweir // <-- 1464cdf0e10cSrcweir } 1465cdf0e10cSrcweir // <-- 1466cdf0e10cSrcweir break; 1467cdf0e10cSrcweir } 1468cdf0e10cSrcweir else 1469cdf0e10cSrcweir { 1470cdf0e10cSrcweir // search list style at parent 1471cdf0e10cSrcweir xStyle = Reference<XStyle>( xPropState, UNO_QUERY ); 1472cdf0e10cSrcweir } 1473cdf0e10cSrcweir } 1474cdf0e10cSrcweir } 1475cdf0e10cSrcweir } 1476cdf0e10cSrcweir 1477cdf0e10cSrcweir return bRet; 1478cdf0e10cSrcweir } 1479cdf0e10cSrcweir // <-- 1480cdf0e10cSrcweir OUString XMLTextImportHelper::SetStyleAndAttrs( 1481cdf0e10cSrcweir SvXMLImport& rImport, 1482cdf0e10cSrcweir const Reference < XTextCursor >& rCursor, 1483cdf0e10cSrcweir const OUString& rStyleName, 1484cdf0e10cSrcweir sal_Bool bPara, 1485cdf0e10cSrcweir sal_Bool bOutlineLevelAttrFound, 1486cdf0e10cSrcweir sal_Int8 nOutlineLevel, 1487cdf0e10cSrcweir // --> OD 2007-08-17 #i80724# 1488cdf0e10cSrcweir sal_Bool bSetListAttrs ) 1489cdf0e10cSrcweir // <-- 1490cdf0e10cSrcweir { 1491cdf0e10cSrcweir static ::rtl::OUString s_ParaStyleName( 1492cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("ParaStyleName")); 1493cdf0e10cSrcweir static ::rtl::OUString s_CharStyleName( 1494cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("CharStyleName")); 1495cdf0e10cSrcweir static ::rtl::OUString s_NumberingRules( 1496cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("NumberingRules")); 1497cdf0e10cSrcweir static ::rtl::OUString s_NumberingIsNumber( 1498cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("NumberingIsNumber")); 1499cdf0e10cSrcweir static ::rtl::OUString s_NumberingLevel( 1500cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("NumberingLevel")); 1501cdf0e10cSrcweir static ::rtl::OUString s_ParaIsNumberingRestart( 1502cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("ParaIsNumberingRestart")); 1503cdf0e10cSrcweir static ::rtl::OUString s_NumberingStartValue( 1504cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("NumberingStartValue")); 1505cdf0e10cSrcweir static ::rtl::OUString s_PropNameListId( 1506cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("ListId")); 1507cdf0e10cSrcweir static ::rtl::OUString s_PageDescName( 1508cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("PageDescName")); 1509cdf0e10cSrcweir static ::rtl::OUString s_ServiceCombinedCharacters( 1510cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM( 1511cdf0e10cSrcweir "com.sun.star.text.TextField.CombinedCharacters")); 1512cdf0e10cSrcweir static ::rtl::OUString s_Content(RTL_CONSTASCII_USTRINGPARAM("Content")); 1513cdf0e10cSrcweir static ::rtl::OUString s_OutlineLevel( 1514cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("OutlineLevel")); 1515cdf0e10cSrcweir static ::rtl::OUString s_NumberingStyleName( 1516cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("NumberingStyleName")); 1517cdf0e10cSrcweir 1518cdf0e10cSrcweir const sal_uInt16 nFamily = bPara ? XML_STYLE_FAMILY_TEXT_PARAGRAPH 1519cdf0e10cSrcweir : XML_STYLE_FAMILY_TEXT_TEXT; 1520cdf0e10cSrcweir XMLTextStyleContext *pStyle = 0; 1521cdf0e10cSrcweir OUString sStyleName( rStyleName ); 1522cdf0e10cSrcweir if (sStyleName.getLength() && m_pImpl->m_xAutoStyles.Is()) 1523cdf0e10cSrcweir { 1524cdf0e10cSrcweir const SvXMLStyleContext* pTempStyle = 1525cdf0e10cSrcweir ((SvXMLStylesContext *)&m_pImpl->m_xAutoStyles)-> 1526cdf0e10cSrcweir FindStyleChildContext( nFamily, sStyleName, sal_True ); 1527cdf0e10cSrcweir pStyle = PTR_CAST( XMLTextStyleContext,pTempStyle); 1528cdf0e10cSrcweir } 1529cdf0e10cSrcweir if( pStyle ) 1530cdf0e10cSrcweir sStyleName = pStyle->GetParentName(); 1531cdf0e10cSrcweir 1532cdf0e10cSrcweir Reference < XPropertySet > xPropSet( rCursor, UNO_QUERY ); 1533cdf0e10cSrcweir Reference< XPropertySetInfo > xPropSetInfo( 1534cdf0e10cSrcweir xPropSet->getPropertySetInfo()); 1535cdf0e10cSrcweir 1536cdf0e10cSrcweir // style 1537cdf0e10cSrcweir if( sStyleName.getLength() ) 1538cdf0e10cSrcweir { 1539cdf0e10cSrcweir sStyleName = rImport.GetStyleDisplayName( nFamily, sStyleName ); 1540cdf0e10cSrcweir const String& rPropName = (bPara) ? s_ParaStyleName : s_CharStyleName; 1541cdf0e10cSrcweir const Reference < XNameContainer > & rStyles = (bPara) 1542cdf0e10cSrcweir ? m_pImpl->m_xParaStyles 1543cdf0e10cSrcweir : m_pImpl->m_xTextStyles; 1544cdf0e10cSrcweir if( rStyles.is() && 1545cdf0e10cSrcweir xPropSetInfo->hasPropertyByName( rPropName ) && 1546cdf0e10cSrcweir rStyles->hasByName( sStyleName ) ) 1547cdf0e10cSrcweir { 1548cdf0e10cSrcweir xPropSet->setPropertyValue( rPropName, makeAny(sStyleName) ); 1549cdf0e10cSrcweir } 1550cdf0e10cSrcweir else 1551cdf0e10cSrcweir sStyleName = OUString(); 1552cdf0e10cSrcweir } 1553cdf0e10cSrcweir 1554cdf0e10cSrcweir // --> OD 2008-09-10 #i70748# 1555cdf0e10cSrcweir // The outline level needs to be only applied as list level, if the heading 1556cdf0e10cSrcweir // is not inside a list and if it by default applies the outline style. 1557cdf0e10cSrcweir bool bApplyOutlineLevelAsListLevel( false ); 1558cdf0e10cSrcweir // --> OD 2007-08-17 #i80724# 1559cdf0e10cSrcweir if (bSetListAttrs && bPara 1560cdf0e10cSrcweir && xPropSetInfo->hasPropertyByName( s_NumberingRules)) 1561cdf0e10cSrcweir // <-- 1562cdf0e10cSrcweir { 1563cdf0e10cSrcweir // Set numbering rules 1564cdf0e10cSrcweir Reference< XIndexReplace > const xNumRules( 1565cdf0e10cSrcweir xPropSet->getPropertyValue(s_NumberingRules), UNO_QUERY); 1566cdf0e10cSrcweir 1567cdf0e10cSrcweir XMLTextListBlockContext * pListBlock(0); 1568cdf0e10cSrcweir XMLTextListItemContext * pListItem(0); 1569cdf0e10cSrcweir XMLNumberedParaContext * pNumberedParagraph(0); 1570cdf0e10cSrcweir GetTextListHelper().ListContextTop( 1571cdf0e10cSrcweir pListBlock, pListItem, pNumberedParagraph); 1572cdf0e10cSrcweir 1573cdf0e10cSrcweir OSL_ENSURE(!(pListBlock && pNumberedParagraph), "XMLTextImportHelper::" 1574cdf0e10cSrcweir "SetStyleAndAttrs: both list and numbered-paragraph???"); 1575cdf0e10cSrcweir 1576cdf0e10cSrcweir Reference < XIndexReplace > xNewNumRules; 1577cdf0e10cSrcweir sal_Int8 nLevel(-1); 1578cdf0e10cSrcweir ::rtl::OUString sListId; 1579cdf0e10cSrcweir sal_Int16 nStartValue(-1); 1580cdf0e10cSrcweir bool bNumberingIsNumber(true); 1581cdf0e10cSrcweir 1582cdf0e10cSrcweir if (pListBlock) { 1583cdf0e10cSrcweir 1584cdf0e10cSrcweir if (!pListItem) { 1585cdf0e10cSrcweir bNumberingIsNumber = false; // list-header 1586cdf0e10cSrcweir } 1587cdf0e10cSrcweir // --> OD 2008-05-08 #refactorlists# 1588cdf0e10cSrcweir // consider text:style-override property of <text:list-item> 1589cdf0e10cSrcweir xNewNumRules.set( 1590cdf0e10cSrcweir (pListItem != 0 && pListItem->HasNumRulesOverride()) 1591cdf0e10cSrcweir ? pListItem->GetNumRulesOverride() 1592cdf0e10cSrcweir : pListBlock->GetNumRules() ); 1593cdf0e10cSrcweir // <-- 1594cdf0e10cSrcweir nLevel = static_cast<sal_Int8>(pListBlock->GetLevel()); 1595cdf0e10cSrcweir 1596cdf0e10cSrcweir if ( pListItem && pListItem->HasStartValue() ) { 1597cdf0e10cSrcweir nStartValue = pListItem->GetStartValue(); 1598cdf0e10cSrcweir } 1599cdf0e10cSrcweir 1600cdf0e10cSrcweir // --> OD 2008-08-15 #i92811# 1601cdf0e10cSrcweir sListId = m_pImpl->m_pTextListsHelper->GetListIdForListBlock( 1602cdf0e10cSrcweir *pListBlock); 1603cdf0e10cSrcweir // <-- 1604cdf0e10cSrcweir } 1605cdf0e10cSrcweir else if (pNumberedParagraph) 1606cdf0e10cSrcweir { 1607cdf0e10cSrcweir xNewNumRules.set(pNumberedParagraph->GetNumRules()); 1608cdf0e10cSrcweir nLevel = static_cast<sal_Int8>(pNumberedParagraph->GetLevel()); 1609cdf0e10cSrcweir sListId = pNumberedParagraph->GetListId(); 1610cdf0e10cSrcweir nStartValue = pNumberedParagraph->GetStartValue(); 1611cdf0e10cSrcweir } 1612cdf0e10cSrcweir 1613cdf0e10cSrcweir 1614cdf0e10cSrcweir if (pListBlock || pNumberedParagraph) 1615cdf0e10cSrcweir { 1616cdf0e10cSrcweir // --> OD 2009-08-24 #i101349# 1617cdf0e10cSrcweir // Assure that list style of automatic paragraph style is applied at paragraph. 1618cdf0e10cSrcweir sal_Bool bApplyNumRules = pStyle && pStyle->IsListStyleSet(); 1619cdf0e10cSrcweir if ( !bApplyNumRules ) 1620cdf0e10cSrcweir { 1621cdf0e10cSrcweir sal_Bool bSameNumRules = xNewNumRules == xNumRules; 1622cdf0e10cSrcweir if( !bSameNumRules && xNewNumRules.is() && xNumRules.is() ) 1623cdf0e10cSrcweir { 1624cdf0e10cSrcweir // If the interface pointers are different then this does 1625cdf0e10cSrcweir // not mean that the num rules are different. Further tests 1626cdf0e10cSrcweir // are required then. However, if only one num rule is 1627cdf0e10cSrcweir // set, no tests are required of course. 1628cdf0e10cSrcweir Reference< XNamed > xNewNamed( xNewNumRules, UNO_QUERY ); 1629cdf0e10cSrcweir Reference< XNamed > xNamed( xNumRules, UNO_QUERY ); 1630cdf0e10cSrcweir if( xNewNamed.is() && xNamed.is() ) 1631cdf0e10cSrcweir { 1632cdf0e10cSrcweir bSameNumRules = xNewNamed->getName() == xNamed->getName(); 1633cdf0e10cSrcweir } 1634cdf0e10cSrcweir else 1635cdf0e10cSrcweir { 1636cdf0e10cSrcweir Reference< XAnyCompare > xNumRuleCompare( xNumRules, UNO_QUERY ); 1637cdf0e10cSrcweir if( xNumRuleCompare.is() ) 1638cdf0e10cSrcweir { 1639cdf0e10cSrcweir bSameNumRules = (xNumRuleCompare->compare( Any(xNumRules), Any(xNewNumRules) ) == 0); 1640cdf0e10cSrcweir } 1641cdf0e10cSrcweir } 1642cdf0e10cSrcweir } 1643cdf0e10cSrcweir bApplyNumRules = !bSameNumRules; 1644cdf0e10cSrcweir } 1645cdf0e10cSrcweir 1646cdf0e10cSrcweir if ( bApplyNumRules ) 1647cdf0e10cSrcweir // <-- 1648cdf0e10cSrcweir { 1649cdf0e10cSrcweir // #102607# This may except when xNewNumRules contains 1650cdf0e10cSrcweir // a Writer-NumRule-Implementation bug gets applied to 1651cdf0e10cSrcweir // a shape. Since this may occur inside a document 1652cdf0e10cSrcweir // (e.g. when edited), this must be handled 1653cdf0e10cSrcweir // gracefully. 1654cdf0e10cSrcweir try 1655cdf0e10cSrcweir { 1656cdf0e10cSrcweir xPropSet->setPropertyValue( 1657cdf0e10cSrcweir s_NumberingRules, makeAny(xNewNumRules) ); 1658cdf0e10cSrcweir } 1659cdf0e10cSrcweir catch( Exception e ) 1660cdf0e10cSrcweir { 1661cdf0e10cSrcweir ; // I would really like to use a warning here, 1662cdf0e10cSrcweir // but I can't access the XMLErrorHandler from 1663cdf0e10cSrcweir // here. 1664cdf0e10cSrcweir } 1665cdf0e10cSrcweir } 1666cdf0e10cSrcweir 1667cdf0e10cSrcweir if (!bNumberingIsNumber && 1668cdf0e10cSrcweir xPropSetInfo->hasPropertyByName(s_NumberingIsNumber)) 1669cdf0e10cSrcweir { 1670cdf0e10cSrcweir xPropSet->setPropertyValue(s_NumberingIsNumber, Any(sal_False)); 1671cdf0e10cSrcweir } 1672cdf0e10cSrcweir 1673cdf0e10cSrcweir xPropSet->setPropertyValue( s_NumberingLevel, Any(nLevel) ); 1674cdf0e10cSrcweir 1675cdf0e10cSrcweir if( pListBlock && pListBlock->IsRestartNumbering() ) 1676cdf0e10cSrcweir { 1677cdf0e10cSrcweir // TODO: property missing 1678cdf0e10cSrcweir if (xPropSetInfo->hasPropertyByName(s_ParaIsNumberingRestart)) 1679cdf0e10cSrcweir { 1680cdf0e10cSrcweir sal_Bool bTmp = sal_True; 1681cdf0e10cSrcweir xPropSet->setPropertyValue(s_ParaIsNumberingRestart, 1682cdf0e10cSrcweir makeAny(bTmp) ); 1683cdf0e10cSrcweir } 1684cdf0e10cSrcweir pListBlock->ResetRestartNumbering(); 1685cdf0e10cSrcweir } 1686cdf0e10cSrcweir 1687cdf0e10cSrcweir if ( 0 <= nStartValue && 1688cdf0e10cSrcweir xPropSetInfo->hasPropertyByName(s_NumberingStartValue)) 1689cdf0e10cSrcweir { 1690cdf0e10cSrcweir xPropSet->setPropertyValue(s_NumberingStartValue, 1691cdf0e10cSrcweir makeAny(nStartValue)); 1692cdf0e10cSrcweir } 1693cdf0e10cSrcweir 1694cdf0e10cSrcweir // --> OD 2008-04-23 #refactorlists# 1695cdf0e10cSrcweir if (xPropSetInfo->hasPropertyByName(s_PropNameListId)) 1696cdf0e10cSrcweir { 1697cdf0e10cSrcweir if (sListId.getLength()) { 1698cdf0e10cSrcweir xPropSet->setPropertyValue(s_PropNameListId, 1699cdf0e10cSrcweir makeAny(sListId) ); 1700cdf0e10cSrcweir } 1701cdf0e10cSrcweir } 1702cdf0e10cSrcweir // <-- 1703cdf0e10cSrcweir 1704cdf0e10cSrcweir GetTextListHelper().SetListItem( (XMLTextListItemContext *)0 ); 1705cdf0e10cSrcweir } 1706cdf0e10cSrcweir else 1707cdf0e10cSrcweir { 1708cdf0e10cSrcweir // If the paragraph is not in a list but its style, remove it from 1709cdf0e10cSrcweir // the list. 1710cdf0e10cSrcweir // --> OD 2005-10-25 #126347# - do not remove it, if the list 1711cdf0e10cSrcweir // of the style is the chapter numbering rule. 1712cdf0e10cSrcweir if( xNumRules.is() ) 1713cdf0e10cSrcweir { 1714cdf0e10cSrcweir bool bRemove( true ); 1715cdf0e10cSrcweir // --> OD 2008-12-17 #i70748# - special handling for document from OOo 2.x 1716cdf0e10cSrcweir sal_Int32 nUPD( 0 ); 1717cdf0e10cSrcweir sal_Int32 nBuild( 0 ); 1718cdf0e10cSrcweir const bool bBuildIdFound = rImport.getBuildIds( nUPD, nBuild ); 1719cdf0e10cSrcweir DBG_ASSERT( ( bBuildIdFound && nUPD == 680 ) || 1720cdf0e10cSrcweir !pStyle || 1721cdf0e10cSrcweir !pStyle->IsListStyleSet() || 1722cdf0e10cSrcweir pStyle->GetListStyle().getLength() == 0, 1723cdf0e10cSrcweir "automatic paragraph style with list style name, but paragraph not in list???" ); 1724cdf0e10cSrcweir if ( ( bBuildIdFound && nUPD == 680 ) || 1725cdf0e10cSrcweir !pStyle || !pStyle->IsListStyleSet() ) 1726cdf0e10cSrcweir { 1727cdf0e10cSrcweir if (m_pImpl->m_xChapterNumbering.is()) 1728cdf0e10cSrcweir { 1729cdf0e10cSrcweir Reference< XNamed > xNumNamed( xNumRules, UNO_QUERY ); 1730cdf0e10cSrcweir Reference< XNamed > const xChapterNumNamed ( 1731cdf0e10cSrcweir m_pImpl->m_xChapterNumbering, UNO_QUERY); 1732cdf0e10cSrcweir if ( xNumNamed.is() && xChapterNumNamed.is() && 1733cdf0e10cSrcweir xNumNamed->getName() == xChapterNumNamed->getName() ) 1734cdf0e10cSrcweir { 1735cdf0e10cSrcweir bRemove = false; 1736cdf0e10cSrcweir // --> OD 2008-09-10 #i70748# 1737cdf0e10cSrcweir bApplyOutlineLevelAsListLevel = true; 1738cdf0e10cSrcweir // <-- 1739cdf0e10cSrcweir } 1740cdf0e10cSrcweir } 1741cdf0e10cSrcweir } 1742cdf0e10cSrcweir // <-- 1743cdf0e10cSrcweir if ( bRemove ) 1744cdf0e10cSrcweir { 1745cdf0e10cSrcweir xPropSet->setPropertyValue( s_NumberingRules, Any() ); 1746cdf0e10cSrcweir } 1747cdf0e10cSrcweir } 1748cdf0e10cSrcweir // <-- 1749cdf0e10cSrcweir } 1750cdf0e10cSrcweir } 1751cdf0e10cSrcweir 1752cdf0e10cSrcweir // hard paragraph properties 1753cdf0e10cSrcweir if( pStyle ) 1754cdf0e10cSrcweir { 1755cdf0e10cSrcweir pStyle->FillPropertySet( xPropSet ); 1756cdf0e10cSrcweir if( bPara && pStyle->HasMasterPageName() && 1757cdf0e10cSrcweir xPropSetInfo->hasPropertyByName(s_PageDescName)) 1758cdf0e10cSrcweir { 1759cdf0e10cSrcweir OUString sDisplayName( 1760cdf0e10cSrcweir rImport.GetStyleDisplayName( 1761cdf0e10cSrcweir XML_STYLE_FAMILY_MASTER_PAGE, 1762cdf0e10cSrcweir pStyle->GetMasterPageName()) ); 1763cdf0e10cSrcweir if( !sDisplayName.getLength() || 1764cdf0e10cSrcweir (m_pImpl->m_xPageStyles.is() && 1765cdf0e10cSrcweir m_pImpl->m_xPageStyles->hasByName( sDisplayName))) 1766cdf0e10cSrcweir { 1767cdf0e10cSrcweir xPropSet->setPropertyValue(s_PageDescName, 1768cdf0e10cSrcweir makeAny(sDisplayName)); 1769cdf0e10cSrcweir } 1770cdf0e10cSrcweir } 1771cdf0e10cSrcweir if( bPara && pStyle->GetDropCapStyleName().getLength() && 1772cdf0e10cSrcweir m_pImpl->m_xTextStyles.is()) 1773cdf0e10cSrcweir { 1774cdf0e10cSrcweir OUString sDisplayName( 1775cdf0e10cSrcweir rImport.GetStyleDisplayName( 1776cdf0e10cSrcweir XML_STYLE_FAMILY_TEXT_TEXT, 1777cdf0e10cSrcweir pStyle->GetDropCapStyleName()) ); 1778cdf0e10cSrcweir if (m_pImpl->m_xTextStyles->hasByName(sDisplayName) && 1779cdf0e10cSrcweir xPropSetInfo->hasPropertyByName( sDisplayName ) ) 1780cdf0e10cSrcweir { 1781cdf0e10cSrcweir xPropSet->setPropertyValue( pStyle->sDropCapCharStyleName, makeAny(sDisplayName) ); 1782cdf0e10cSrcweir } 1783cdf0e10cSrcweir } 1784cdf0e10cSrcweir 1785cdf0e10cSrcweir // combined characters special treatment 1786cdf0e10cSrcweir if (!bPara && pStyle->HasCombinedCharactersLetter()) 1787cdf0e10cSrcweir { 1788cdf0e10cSrcweir // insert combined characters text field 1789cdf0e10cSrcweir if (m_pImpl->m_xServiceFactory.is()) 1790cdf0e10cSrcweir { 1791cdf0e10cSrcweir uno::Reference<beans::XPropertySet> const xTmp( 1792cdf0e10cSrcweir m_pImpl->m_xServiceFactory->createInstance( 1793cdf0e10cSrcweir s_ServiceCombinedCharacters), UNO_QUERY); 1794cdf0e10cSrcweir if( xTmp.is() ) 1795cdf0e10cSrcweir { 1796cdf0e10cSrcweir // fix cursor if larger than possible for 1797cdf0e10cSrcweir // combined characters field 1798cdf0e10cSrcweir if (rCursor->getString().getLength() > 1799cdf0e10cSrcweir MAX_COMBINED_CHARACTERS) 1800cdf0e10cSrcweir { 1801cdf0e10cSrcweir rCursor->gotoRange(rCursor->getStart(), sal_False); 1802cdf0e10cSrcweir rCursor->goRight(MAX_COMBINED_CHARACTERS, sal_True); 1803cdf0e10cSrcweir } 1804cdf0e10cSrcweir 1805cdf0e10cSrcweir // set field value (the combined character string) 1806cdf0e10cSrcweir xTmp->setPropertyValue(s_Content, 1807cdf0e10cSrcweir makeAny(rCursor->getString())); 1808cdf0e10cSrcweir 1809cdf0e10cSrcweir // insert the field over it's original text 1810cdf0e10cSrcweir Reference<XTextRange> xRange(rCursor, UNO_QUERY); 1811cdf0e10cSrcweir Reference<XTextContent> xTextContent(xTmp, UNO_QUERY); 1812cdf0e10cSrcweir if (m_pImpl->m_xText.is() && xRange.is()) 1813cdf0e10cSrcweir { 1814cdf0e10cSrcweir // #i107225# the combined characters need to be inserted first 1815cdf0e10cSrcweir // the selected text has to be removed afterwards 1816cdf0e10cSrcweir m_pImpl->m_xText->insertTextContent( xRange->getStart(), xTextContent, sal_True ); 1817cdf0e10cSrcweir 1818cdf0e10cSrcweir if( xRange->getString().getLength() ) 1819cdf0e10cSrcweir { 1820cdf0e10cSrcweir try 1821cdf0e10cSrcweir { 1822cdf0e10cSrcweir uno::Reference< text::XTextCursor > xCrsr = xRange->getText()->createTextCursorByRange( xRange->getStart() ); 1823cdf0e10cSrcweir xCrsr->goLeft( 1, true ); 1824cdf0e10cSrcweir uno::Reference< beans::XPropertySet> xCrsrProperties( xCrsr, uno::UNO_QUERY_THROW ); 1825cdf0e10cSrcweir //the hard properties of the removed text need to be applied to the combined characters field 1826cdf0e10cSrcweir pStyle->FillPropertySet( xCrsrProperties ); 1827cdf0e10cSrcweir xCrsr->collapseToEnd(); 1828cdf0e10cSrcweir xCrsr->gotoRange( xRange->getEnd(), true ); 1829cdf0e10cSrcweir xCrsr->setString( ::rtl::OUString() ); 1830cdf0e10cSrcweir } 1831cdf0e10cSrcweir catch( const uno::Exception& rEx ) 1832cdf0e10cSrcweir { 1833cdf0e10cSrcweir (void)rEx; 1834cdf0e10cSrcweir } 1835cdf0e10cSrcweir } 1836cdf0e10cSrcweir } 1837cdf0e10cSrcweir } 1838cdf0e10cSrcweir } 1839cdf0e10cSrcweir } 1840cdf0e10cSrcweir } 1841cdf0e10cSrcweir 1842cdf0e10cSrcweir // outline level; set after list style has been set 1843cdf0e10cSrcweir // --> OD 2005-08-25 #i53198# 1844cdf0e10cSrcweir // Complete re-worked and corrected: 1845cdf0e10cSrcweir // - set outline level at paragraph 1846cdf0e10cSrcweir // - set numbering level at paragraph, if none is already set 1847cdf0e10cSrcweir // - assure that style is marked as an outline style for the corresponding 1848cdf0e10cSrcweir // outline level. 1849cdf0e10cSrcweir // - DO NOT set type of numbering rule to outline. 1850cdf0e10cSrcweir // - DO NOT set numbering rule directly at the paragraph. 1851cdf0e10cSrcweir 1852cdf0e10cSrcweir // --> OD 2008-12-09 #i70748# 1853cdf0e10cSrcweir // Some minor rework and adjust access to paragraph styles 1854cdf0e10cSrcweir if ( bPara ) 1855cdf0e10cSrcweir { 1856cdf0e10cSrcweir // --> OD 2009-08-18 #i103817# 1857cdf0e10cSrcweir sal_Int16 nCurrentOutlineLevelInheritedFromParagraphStyle = 0; 1858cdf0e10cSrcweir const bool bHasOutlineLevelProp( 1859cdf0e10cSrcweir xPropSetInfo->hasPropertyByName(s_OutlineLevel)); 1860cdf0e10cSrcweir if ( bHasOutlineLevelProp ) 1861cdf0e10cSrcweir { 1862cdf0e10cSrcweir xPropSet->getPropertyValue(s_OutlineLevel) 1863cdf0e10cSrcweir >>= nCurrentOutlineLevelInheritedFromParagraphStyle; 1864cdf0e10cSrcweir } 1865cdf0e10cSrcweir // <-- 1866cdf0e10cSrcweir //if ( bPara && nOutlineLevel != -1 ) //#outline level,removed by zhaojianwei 1867cdf0e10cSrcweir if ( nOutlineLevel > 0 ) //add by zhaojianwei 1868cdf0e10cSrcweir { 1869cdf0e10cSrcweir //#outline level,removed by zhaojianwei 1870cdf0e10cSrcweir if ( bHasOutlineLevelProp ) 1871cdf0e10cSrcweir { 1872cdf0e10cSrcweir // In case that the value equals the value of its paragraph style 1873cdf0e10cSrcweir // attribute outline level, the paragraph attribute value is left unset 1874cdf0e10cSrcweir if ( nCurrentOutlineLevelInheritedFromParagraphStyle != nOutlineLevel ) 1875cdf0e10cSrcweir { 1876cdf0e10cSrcweir xPropSet->setPropertyValue( s_OutlineLevel, 1877cdf0e10cSrcweir makeAny( static_cast<sal_Int16>(nOutlineLevel) ) ); 1878cdf0e10cSrcweir } 1879cdf0e10cSrcweir }//<-end,zhaojianwei 1880cdf0e10cSrcweir 1881cdf0e10cSrcweir // --> OD 2008-09-10 #i70748# 1882cdf0e10cSrcweir if ( bApplyOutlineLevelAsListLevel ) 1883cdf0e10cSrcweir { 1884cdf0e10cSrcweir sal_Int16 nNumLevel = -1; 1885cdf0e10cSrcweir xPropSet->getPropertyValue( s_NumberingLevel ) >>= nNumLevel; 1886cdf0e10cSrcweir if ( nNumLevel == -1 || 1887cdf0e10cSrcweir nNumLevel != (nOutlineLevel - 1) ) 1888cdf0e10cSrcweir { 1889cdf0e10cSrcweir xPropSet->setPropertyValue( s_NumberingLevel, 1890cdf0e10cSrcweir makeAny( static_cast<sal_Int8>(nOutlineLevel - 1) ) ); 1891cdf0e10cSrcweir } 1892cdf0e10cSrcweir } 1893cdf0e10cSrcweir // <-- 1894cdf0e10cSrcweir // --> OD 2006-10-13 #i69629# - correction: 1895cdf0e10cSrcweir // - for text document from version OOo 2.0.4/SO 8 PU4 and earlier 1896cdf0e10cSrcweir // the paragraph style of a heading should be assigned to the 1897cdf0e10cSrcweir // corresponding list level of the outline style. 1898cdf0e10cSrcweir // - for other text documents the paragraph style of a heading is only 1899cdf0e10cSrcweir // a candidate for an assignment to the list level of the outline 1900cdf0e10cSrcweir // style, if it has no direct list style property and (if exists) the 1901cdf0e10cSrcweir // automatic paragraph style has also no direct list style set. 1902cdf0e10cSrcweir if (m_pImpl->m_xParaStyles->hasByName(sStyleName)) 1903cdf0e10cSrcweir { 1904cdf0e10cSrcweir bool bOutlineStyleCandidate( false ); 1905cdf0e10cSrcweir 1906cdf0e10cSrcweir sal_Int32 nUPD( 0 ); 1907cdf0e10cSrcweir sal_Int32 nBuild( 0 ); 1908cdf0e10cSrcweir // --> OD 2007-12-19 #152540# 1909cdf0e10cSrcweir const bool bBuildIdFound = rImport.getBuildIds( nUPD, nBuild ); 1910cdf0e10cSrcweir // --> OD 2007-07-25 #i73509# 1911cdf0e10cSrcweir // --> OD 2008-03-19 #i86058# - check explicitly on certain versions 1912cdf0e10cSrcweir if ( rImport.IsTextDocInOOoFileFormat() || 1913cdf0e10cSrcweir ( bBuildIdFound && 1914cdf0e10cSrcweir ( nUPD == 645 || nUPD == 641 ) ) ) 1915cdf0e10cSrcweir { 1916cdf0e10cSrcweir bOutlineStyleCandidate = true; 1917cdf0e10cSrcweir } 1918cdf0e10cSrcweir else if ( nUPD == 680 && nBuild <= 9073 ) /* BuildId of OOo 2.0.4/SO8 PU4 */ 1919cdf0e10cSrcweir { 1920cdf0e10cSrcweir bOutlineStyleCandidate = bOutlineLevelAttrFound; 1921cdf0e10cSrcweir } 1922cdf0e10cSrcweir // <-- 1923cdf0e10cSrcweir // else 1924cdf0e10cSrcweir // { 1925cdf0e10cSrcweir // Reference< XPropertyState > xStylePropState( 1926cdf0e10cSrcweir // xParaStyles->getByName( sStyleName ), UNO_QUERY ); 1927cdf0e10cSrcweir // if ( xStylePropState.is() && 1928cdf0e10cSrcweir // xStylePropState->getPropertyState( sNumberingStyleName ) == PropertyState_DIRECT_VALUE ) 1929cdf0e10cSrcweir // { 1930cdf0e10cSrcweir // bOutlineStyleCandidate = false; 1931cdf0e10cSrcweir // } 1932cdf0e10cSrcweir // // --> OD 2007-01-11 #i73361# 1933cdf0e10cSrcweir // // The automatic paragraph style doesn't have to be considered. 1934cdf0e10cSrcweir // // else if ( pStyle && /* automatic paragraph style */ 1935cdf0e10cSrcweir // // pStyle->IsListStyleSet() ) 1936cdf0e10cSrcweir // // { 1937cdf0e10cSrcweir // // bOutlineStyleCandidate = false; 1938cdf0e10cSrcweir // // } 1939cdf0e10cSrcweir // // <-- 1940cdf0e10cSrcweir // else 1941cdf0e10cSrcweir // { 1942cdf0e10cSrcweir // bOutlineStyleCandidate = true; 1943cdf0e10cSrcweir // } 1944cdf0e10cSrcweir // } 1945cdf0e10cSrcweir 1946cdf0e10cSrcweir if ( bOutlineStyleCandidate ) 1947cdf0e10cSrcweir { 1948cdf0e10cSrcweir AddOutlineStyleCandidate( nOutlineLevel, sStyleName ); 1949cdf0e10cSrcweir } 1950cdf0e10cSrcweir // --> OD 2009-08-18 #i103817# 1951cdf0e10cSrcweir // Assure that heading applies the outline style 1952cdf0e10cSrcweir if ( ( !pStyle || !pStyle->IsListStyleSet() ) && 1953cdf0e10cSrcweir !bOutlineStyleCandidate && 1954cdf0e10cSrcweir m_pImpl->m_xChapterNumbering.is()) 1955cdf0e10cSrcweir { 1956cdf0e10cSrcweir OUString sEmptyStr; 1957cdf0e10cSrcweir if ( !lcl_HasListStyle( sStyleName, 1958cdf0e10cSrcweir m_pImpl->m_xParaStyles, GetXMLImport(), 1959cdf0e10cSrcweir s_NumberingStyleName, 1960cdf0e10cSrcweir sEmptyStr ) ) 1961cdf0e10cSrcweir { 1962cdf0e10cSrcweir // heading not in a list --> apply outline style 1963cdf0e10cSrcweir xPropSet->setPropertyValue( s_NumberingRules, 1964cdf0e10cSrcweir makeAny(m_pImpl->m_xChapterNumbering) ); 1965cdf0e10cSrcweir xPropSet->setPropertyValue( s_NumberingLevel, 1966cdf0e10cSrcweir makeAny(static_cast<sal_Int8>(nOutlineLevel - 1))); 1967cdf0e10cSrcweir } 1968cdf0e10cSrcweir } 1969cdf0e10cSrcweir // <-- 1970cdf0e10cSrcweir } 1971cdf0e10cSrcweir // <-- 1972cdf0e10cSrcweir } 1973cdf0e10cSrcweir //-> #outlinelevel added by zhaojianwei 1974cdf0e10cSrcweir //handle for text:p,if the paragraphstyle outlinelevel is set to[1~10] 1975cdf0e10cSrcweir else if( bHasOutlineLevelProp ) 1976cdf0e10cSrcweir { 1977cdf0e10cSrcweir if ( nCurrentOutlineLevelInheritedFromParagraphStyle != 0 ) 1978cdf0e10cSrcweir { 1979cdf0e10cSrcweir sal_Int16 nZero = 0; 1980cdf0e10cSrcweir xPropSet->setPropertyValue(s_OutlineLevel, 1981cdf0e10cSrcweir makeAny( static_cast<sal_Int16>(nZero) )); 1982cdf0e10cSrcweir } 1983cdf0e10cSrcweir }//<-end,zhaojianwei 1984cdf0e10cSrcweir } 1985cdf0e10cSrcweir // <-- 1986cdf0e10cSrcweir 1987cdf0e10cSrcweir return sStyleName; 1988cdf0e10cSrcweir } 1989cdf0e10cSrcweir 1990cdf0e10cSrcweir void XMLTextImportHelper::FindOutlineStyleName( ::rtl::OUString& rStyleName, 1991cdf0e10cSrcweir sal_Int8 nOutlineLevel ) 1992cdf0e10cSrcweir { 1993cdf0e10cSrcweir static ::rtl::OUString s_HeadingStyleName( 1994cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("HeadingStyleName")); 1995cdf0e10cSrcweir 1996cdf0e10cSrcweir // style name empty? 1997cdf0e10cSrcweir if( rStyleName.getLength() == 0 ) 1998cdf0e10cSrcweir { 1999cdf0e10cSrcweir // Empty? Then we need o do stuff. Let's do error checking first. 2000cdf0e10cSrcweir if (m_pImpl->m_xChapterNumbering.is() && 2001cdf0e10cSrcweir ( nOutlineLevel > 0 ) && 2002cdf0e10cSrcweir (nOutlineLevel <= m_pImpl->m_xChapterNumbering->getCount())) 2003cdf0e10cSrcweir { 2004cdf0e10cSrcweir nOutlineLevel--; // for the remainder, the level's are 0-based 2005cdf0e10cSrcweir 2006cdf0e10cSrcweir // empty style name: look-up previously used name 2007cdf0e10cSrcweir 2008cdf0e10cSrcweir // if we don't have a previously used name, we'll use the default 2009cdf0e10cSrcweir m_pImpl->InitOutlineStylesCandidates(); 2010cdf0e10cSrcweir if (m_pImpl->m_pOutlineStylesCandidates[nOutlineLevel].empty()) 2011cdf0e10cSrcweir { 2012cdf0e10cSrcweir // no other name used previously? Then use default 2013cdf0e10cSrcweir 2014cdf0e10cSrcweir // iterate over property value sequence to find the style name 2015cdf0e10cSrcweir Sequence<PropertyValue> aProperties; 2016cdf0e10cSrcweir m_pImpl->m_xChapterNumbering->getByIndex( nOutlineLevel ) 2017cdf0e10cSrcweir >>= aProperties; 2018cdf0e10cSrcweir for( sal_Int32 i = 0; i < aProperties.getLength(); i++ ) 2019cdf0e10cSrcweir { 2020cdf0e10cSrcweir if (aProperties[i].Name == s_HeadingStyleName) 2021cdf0e10cSrcweir { 2022cdf0e10cSrcweir rtl::OUString aOutlineStyle; 2023cdf0e10cSrcweir aProperties[i].Value >>= aOutlineStyle; 2024cdf0e10cSrcweir m_pImpl->m_pOutlineStylesCandidates[nOutlineLevel] 2025cdf0e10cSrcweir .push_back( aOutlineStyle ); 2026cdf0e10cSrcweir break; // early out, if we found it!. 2027cdf0e10cSrcweir } 2028cdf0e10cSrcweir } 2029cdf0e10cSrcweir } 2030cdf0e10cSrcweir 2031cdf0e10cSrcweir // finally, we'll use the previously used style name for this 2032cdf0e10cSrcweir // format (or the default we've just put into that style) 2033cdf0e10cSrcweir // --> OD 2006-11-06 #i71249# - take last added one 2034cdf0e10cSrcweir rStyleName = 2035cdf0e10cSrcweir m_pImpl->m_pOutlineStylesCandidates[nOutlineLevel].back(); 2036cdf0e10cSrcweir // <-- 2037cdf0e10cSrcweir } 2038cdf0e10cSrcweir // else: nothing we can do, so we'll leave it empty 2039cdf0e10cSrcweir } 2040cdf0e10cSrcweir // else: we already had a style name, so we let it pass. 2041cdf0e10cSrcweir } 2042cdf0e10cSrcweir 2043cdf0e10cSrcweir void XMLTextImportHelper::AddOutlineStyleCandidate( const sal_Int8 nOutlineLevel, 2044cdf0e10cSrcweir const OUString& rStyleName ) 2045cdf0e10cSrcweir { 2046cdf0e10cSrcweir if (rStyleName.getLength() 2047cdf0e10cSrcweir && m_pImpl->m_xChapterNumbering.is() 2048cdf0e10cSrcweir && (nOutlineLevel > 0) 2049cdf0e10cSrcweir && (nOutlineLevel <= m_pImpl->m_xChapterNumbering->getCount())) 2050cdf0e10cSrcweir { 2051cdf0e10cSrcweir m_pImpl->InitOutlineStylesCandidates(); 2052cdf0e10cSrcweir m_pImpl->m_pOutlineStylesCandidates[nOutlineLevel-1].push_back( 2053cdf0e10cSrcweir rStyleName); 2054cdf0e10cSrcweir } 2055cdf0e10cSrcweir } 2056cdf0e10cSrcweir 2057cdf0e10cSrcweir void XMLTextImportHelper::SetOutlineStyles( sal_Bool bSetEmptyLevels ) 2058cdf0e10cSrcweir { 2059cdf0e10cSrcweir static ::rtl::OUString s_NumberingStyleName( 2060cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("NumberingStyleName")); 2061cdf0e10cSrcweir static ::rtl::OUString s_HeadingStyleName( 2062cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("HeadingStyleName")); 2063cdf0e10cSrcweir 2064cdf0e10cSrcweir if ((m_pImpl->m_pOutlineStylesCandidates != NULL || bSetEmptyLevels) && 2065cdf0e10cSrcweir m_pImpl->m_xChapterNumbering.is() && 2066cdf0e10cSrcweir !IsInsertMode()) 2067cdf0e10cSrcweir { 2068cdf0e10cSrcweir bool bChooseLastOne( false ); 2069cdf0e10cSrcweir { 2070cdf0e10cSrcweir if ( GetXMLImport().IsTextDocInOOoFileFormat() ) 2071cdf0e10cSrcweir { 2072cdf0e10cSrcweir bChooseLastOne = true; 2073cdf0e10cSrcweir } 2074cdf0e10cSrcweir else 2075cdf0e10cSrcweir { 2076cdf0e10cSrcweir sal_Int32 nUPD( 0 ); 2077cdf0e10cSrcweir sal_Int32 nBuild( 0 ); 2078cdf0e10cSrcweir if ( GetXMLImport().getBuildIds( nUPD, nBuild ) ) 2079cdf0e10cSrcweir { 2080cdf0e10cSrcweir // check explicitly on certain versions 2081cdf0e10cSrcweir bChooseLastOne = ( nUPD == 641 ) || ( nUPD == 645 ) || // prior OOo 2.0 2082cdf0e10cSrcweir ( nUPD == 680 && nBuild <= 9073 ); // OOo 2.0 - OOo 2.0.4 2083cdf0e10cSrcweir } 2084cdf0e10cSrcweir } 2085cdf0e10cSrcweir } 2086cdf0e10cSrcweir 2087cdf0e10cSrcweir OUString sOutlineStyleName; 2088cdf0e10cSrcweir { 2089cdf0e10cSrcweir Reference<XPropertySet> xChapterNumRule( 2090cdf0e10cSrcweir m_pImpl->m_xChapterNumbering, UNO_QUERY); 2091cdf0e10cSrcweir const OUString sName(RTL_CONSTASCII_USTRINGPARAM("Name")); 2092cdf0e10cSrcweir xChapterNumRule->getPropertyValue(sName) >>= sOutlineStyleName; 2093cdf0e10cSrcweir } 2094cdf0e10cSrcweir 2095cdf0e10cSrcweir const sal_Int32 nCount = m_pImpl->m_xChapterNumbering->getCount(); 2096cdf0e10cSrcweir // --> OD 2009-11-13 #i106218# 2097cdf0e10cSrcweir // First collect all paragraph styles choosen for assignment to each 2098cdf0e10cSrcweir // list level of the outline style, then perform the intrinsic assignment. 2099cdf0e10cSrcweir // Reason: The assignment of a certain paragraph style to a list level 2100cdf0e10cSrcweir // of the outline style causes side effects on the children 2101cdf0e10cSrcweir // paragraph styles in Writer. 2102cdf0e10cSrcweir ::std::vector<OUString> sChosenStyles(nCount); 2103cdf0e10cSrcweir // <-- 2104cdf0e10cSrcweir for( sal_Int32 i=0; i < nCount; ++i ) 2105cdf0e10cSrcweir { 2106cdf0e10cSrcweir if ( bSetEmptyLevels || 2107cdf0e10cSrcweir (m_pImpl->m_pOutlineStylesCandidates && 2108cdf0e10cSrcweir !m_pImpl->m_pOutlineStylesCandidates[i].empty())) 2109cdf0e10cSrcweir { 2110cdf0e10cSrcweir // determine, which candidate is one to be assigned to the list 2111cdf0e10cSrcweir // level of the outline style 2112cdf0e10cSrcweir if (m_pImpl->m_pOutlineStylesCandidates && 2113cdf0e10cSrcweir !m_pImpl->m_pOutlineStylesCandidates[i].empty()) 2114cdf0e10cSrcweir { 2115cdf0e10cSrcweir if ( bChooseLastOne ) 2116cdf0e10cSrcweir { 2117cdf0e10cSrcweir sChosenStyles[i] = 2118cdf0e10cSrcweir m_pImpl->m_pOutlineStylesCandidates[i].back(); 2119cdf0e10cSrcweir } 2120cdf0e10cSrcweir else 2121cdf0e10cSrcweir { 2122cdf0e10cSrcweir for (sal_uInt32 j = 0; 2123cdf0e10cSrcweir j < m_pImpl->m_pOutlineStylesCandidates[i].size(); 2124cdf0e10cSrcweir ++j) 2125cdf0e10cSrcweir { 2126cdf0e10cSrcweir if (!lcl_HasListStyle( 2127cdf0e10cSrcweir m_pImpl->m_pOutlineStylesCandidates[i][j], 2128*c45df7c4SOliver-Rainer Wittmann m_pImpl->m_xParaStyles, 2129*c45df7c4SOliver-Rainer Wittmann GetXMLImport(), 2130cdf0e10cSrcweir s_NumberingStyleName, 2131cdf0e10cSrcweir sOutlineStyleName)) 2132cdf0e10cSrcweir { 2133cdf0e10cSrcweir sChosenStyles[i] = 2134cdf0e10cSrcweir m_pImpl->m_pOutlineStylesCandidates[i][j]; 2135cdf0e10cSrcweir break; 2136cdf0e10cSrcweir } 2137cdf0e10cSrcweir } 2138cdf0e10cSrcweir } 2139cdf0e10cSrcweir } 2140cdf0e10cSrcweir } 2141cdf0e10cSrcweir } 2142cdf0e10cSrcweir // --> OD 2009-11-13 #i106218# 2143cdf0e10cSrcweir Sequence < PropertyValue > aProps( 1 ); 2144cdf0e10cSrcweir PropertyValue *pProps = aProps.getArray(); 2145cdf0e10cSrcweir pProps->Name = s_HeadingStyleName; 2146cdf0e10cSrcweir for ( sal_Int32 i = 0; i < nCount; ++i ) 2147cdf0e10cSrcweir { 2148cdf0e10cSrcweir // --> OD 2009-12-11 #i107610# 2149cdf0e10cSrcweir if ( bSetEmptyLevels || 2150cdf0e10cSrcweir sChosenStyles[i].getLength() > 0 ) 2151cdf0e10cSrcweir // <-- 2152cdf0e10cSrcweir { 2153cdf0e10cSrcweir pProps->Value <<= sChosenStyles[i]; 2154cdf0e10cSrcweir m_pImpl->m_xChapterNumbering->replaceByIndex(i, 2155cdf0e10cSrcweir makeAny( aProps )); 2156cdf0e10cSrcweir } 2157cdf0e10cSrcweir } 2158cdf0e10cSrcweir // <-- 2159cdf0e10cSrcweir } 2160cdf0e10cSrcweir } 2161cdf0e10cSrcweir 2162cdf0e10cSrcweir void XMLTextImportHelper::SetHyperlink( 2163cdf0e10cSrcweir SvXMLImport& rImport, 2164cdf0e10cSrcweir const Reference < XTextCursor >& rCursor, 2165cdf0e10cSrcweir const OUString& rHRef, 2166cdf0e10cSrcweir const OUString& rName, 2167cdf0e10cSrcweir const OUString& rTargetFrameName, 2168cdf0e10cSrcweir const OUString& rStyleName, 2169cdf0e10cSrcweir const OUString& rVisitedStyleName, 2170cdf0e10cSrcweir XMLEventsImportContext* pEvents) 2171cdf0e10cSrcweir { 2172cdf0e10cSrcweir static ::rtl::OUString s_HyperLinkURL( 2173cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("HyperLinkURL")); 2174cdf0e10cSrcweir static ::rtl::OUString s_HyperLinkName( 2175cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("HyperLinkName")); 2176cdf0e10cSrcweir static ::rtl::OUString s_HyperLinkTarget( 2177cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("HyperLinkTarget")); 2178cdf0e10cSrcweir static ::rtl::OUString s_UnvisitedCharStyleName( 2179cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("UnvisitedCharStyleName")); 2180cdf0e10cSrcweir static ::rtl::OUString s_VisitedCharStyleName( 2181cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("VisitedCharStyleName")); 2182cdf0e10cSrcweir static ::rtl::OUString s_HyperLinkEvents( 2183cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("HyperLinkEvents")); 2184cdf0e10cSrcweir 2185cdf0e10cSrcweir Reference < XPropertySet > xPropSet( rCursor, UNO_QUERY ); 2186cdf0e10cSrcweir Reference < XPropertySetInfo > xPropSetInfo( 2187cdf0e10cSrcweir xPropSet->getPropertySetInfo()); 2188cdf0e10cSrcweir if (!xPropSetInfo.is() || !xPropSetInfo->hasPropertyByName(s_HyperLinkURL)) 2189cdf0e10cSrcweir return; 2190cdf0e10cSrcweir 2191cdf0e10cSrcweir xPropSet->setPropertyValue(s_HyperLinkURL, makeAny(rHRef)); 2192cdf0e10cSrcweir 2193cdf0e10cSrcweir if (xPropSetInfo->hasPropertyByName(s_HyperLinkName)) 2194cdf0e10cSrcweir { 2195cdf0e10cSrcweir xPropSet->setPropertyValue(s_HyperLinkName, makeAny(rName)); 2196cdf0e10cSrcweir } 2197cdf0e10cSrcweir 2198cdf0e10cSrcweir if (xPropSetInfo->hasPropertyByName(s_HyperLinkTarget)) 2199cdf0e10cSrcweir { 2200cdf0e10cSrcweir xPropSet->setPropertyValue(s_HyperLinkTarget, 2201cdf0e10cSrcweir makeAny(rTargetFrameName)); 2202cdf0e10cSrcweir } 2203cdf0e10cSrcweir 2204cdf0e10cSrcweir if ( (pEvents != NULL) && 2205cdf0e10cSrcweir xPropSetInfo->hasPropertyByName(s_HyperLinkEvents)) 2206cdf0e10cSrcweir { 2207cdf0e10cSrcweir // The API treats events at hyperlinks differently from most 2208cdf0e10cSrcweir // other properties: You have to set a name replace with the 2209cdf0e10cSrcweir // events in it. The easiest way to to this is to 1) get 2210cdf0e10cSrcweir // events, 2) set new ones, and 3) then put events back. 2211cdf0e10cSrcweir uno::Reference<XNameReplace> const xReplace( 2212cdf0e10cSrcweir xPropSet->getPropertyValue(s_HyperLinkEvents), UNO_QUERY); 2213cdf0e10cSrcweir if (xReplace.is()) 2214cdf0e10cSrcweir { 2215cdf0e10cSrcweir // set events 2216cdf0e10cSrcweir pEvents->SetEvents(xReplace); 2217cdf0e10cSrcweir 2218cdf0e10cSrcweir // put events 2219cdf0e10cSrcweir xPropSet->setPropertyValue(s_HyperLinkEvents, makeAny(xReplace)); 2220cdf0e10cSrcweir } 2221cdf0e10cSrcweir } 2222cdf0e10cSrcweir 2223cdf0e10cSrcweir if (m_pImpl->m_xTextStyles.is()) 2224cdf0e10cSrcweir { 2225cdf0e10cSrcweir OUString sDisplayName( 2226cdf0e10cSrcweir rImport.GetStyleDisplayName( 2227cdf0e10cSrcweir XML_STYLE_FAMILY_TEXT_TEXT, rStyleName ) ); 2228cdf0e10cSrcweir if( sDisplayName.getLength() && 2229cdf0e10cSrcweir xPropSetInfo->hasPropertyByName(s_UnvisitedCharStyleName) && 2230cdf0e10cSrcweir m_pImpl->m_xTextStyles->hasByName(sDisplayName)) 2231cdf0e10cSrcweir { 2232cdf0e10cSrcweir xPropSet->setPropertyValue(s_UnvisitedCharStyleName, 2233cdf0e10cSrcweir makeAny(sDisplayName)); 2234cdf0e10cSrcweir } 2235cdf0e10cSrcweir 2236cdf0e10cSrcweir sDisplayName = 2237cdf0e10cSrcweir rImport.GetStyleDisplayName( 2238cdf0e10cSrcweir XML_STYLE_FAMILY_TEXT_TEXT, rVisitedStyleName ); 2239cdf0e10cSrcweir if( sDisplayName.getLength() && 2240cdf0e10cSrcweir xPropSetInfo->hasPropertyByName(s_VisitedCharStyleName) && 2241cdf0e10cSrcweir m_pImpl->m_xTextStyles->hasByName(sDisplayName)) 2242cdf0e10cSrcweir { 2243cdf0e10cSrcweir xPropSet->setPropertyValue(s_VisitedCharStyleName, 2244cdf0e10cSrcweir makeAny(sDisplayName)); 2245cdf0e10cSrcweir } 2246cdf0e10cSrcweir } 2247cdf0e10cSrcweir } 2248cdf0e10cSrcweir 2249cdf0e10cSrcweir void XMLTextImportHelper::SetRuby( 2250cdf0e10cSrcweir SvXMLImport& rImport, 2251cdf0e10cSrcweir const Reference < XTextCursor >& rCursor, 2252cdf0e10cSrcweir const OUString& rStyleName, 2253cdf0e10cSrcweir const OUString& rTextStyleName, 2254cdf0e10cSrcweir const OUString& rText ) 2255cdf0e10cSrcweir { 2256cdf0e10cSrcweir Reference<XPropertySet> xPropSet(rCursor, UNO_QUERY); 2257cdf0e10cSrcweir 2258cdf0e10cSrcweir OUString sRubyText(RTL_CONSTASCII_USTRINGPARAM("RubyText")); 2259cdf0e10cSrcweir OUString sRubyCharStyleName(RTL_CONSTASCII_USTRINGPARAM("RubyCharStyleName")); 2260cdf0e10cSrcweir 2261cdf0e10cSrcweir // if we have one Ruby property, we assume all of them are present 2262cdf0e10cSrcweir if (xPropSet.is() && 2263cdf0e10cSrcweir xPropSet->getPropertySetInfo()->hasPropertyByName( sRubyText )) 2264cdf0e10cSrcweir { 2265cdf0e10cSrcweir // the ruby text 2266cdf0e10cSrcweir xPropSet->setPropertyValue(sRubyText, makeAny(rText)); 2267cdf0e10cSrcweir 2268cdf0e10cSrcweir // the ruby style (ruby-adjust) 2269cdf0e10cSrcweir XMLPropStyleContext *pStyle = 0; 2270cdf0e10cSrcweir if (rStyleName.getLength() && m_pImpl->m_xAutoStyles.Is()) 2271cdf0e10cSrcweir { 2272cdf0e10cSrcweir const SvXMLStyleContext* pTempStyle = 2273cdf0e10cSrcweir ((SvXMLStylesContext *)&m_pImpl->m_xAutoStyles)-> 2274cdf0e10cSrcweir FindStyleChildContext( XML_STYLE_FAMILY_TEXT_RUBY, 2275cdf0e10cSrcweir rStyleName, sal_True ); 2276cdf0e10cSrcweir pStyle = PTR_CAST(XMLPropStyleContext,pTempStyle); 2277cdf0e10cSrcweir 2278cdf0e10cSrcweir if (NULL != pStyle) 2279cdf0e10cSrcweir pStyle->FillPropertySet( xPropSet ); 2280cdf0e10cSrcweir } 2281cdf0e10cSrcweir 2282cdf0e10cSrcweir // the ruby text character style 2283cdf0e10cSrcweir if (m_pImpl->m_xTextStyles.is()) 2284cdf0e10cSrcweir { 2285cdf0e10cSrcweir OUString sDisplayName( 2286cdf0e10cSrcweir rImport.GetStyleDisplayName( 2287cdf0e10cSrcweir XML_STYLE_FAMILY_TEXT_TEXT, rTextStyleName ) ); 2288cdf0e10cSrcweir if( (sDisplayName.getLength() > 0) && 2289cdf0e10cSrcweir // xPropSetInfo->hasPropertyByName( sRubyCharStyleName ) && 2290cdf0e10cSrcweir m_pImpl->m_xTextStyles->hasByName( sDisplayName )) 2291cdf0e10cSrcweir { 2292cdf0e10cSrcweir xPropSet->setPropertyValue(sRubyCharStyleName, makeAny(sDisplayName)); 2293cdf0e10cSrcweir } 2294cdf0e10cSrcweir } 2295cdf0e10cSrcweir } 2296cdf0e10cSrcweir } 2297cdf0e10cSrcweir 2298cdf0e10cSrcweir void XMLTextImportHelper::SetAutoStyles( SvXMLStylesContext *pStyles ) 2299cdf0e10cSrcweir { 2300cdf0e10cSrcweir m_pImpl->m_xAutoStyles = pStyles; 2301cdf0e10cSrcweir } 2302cdf0e10cSrcweir 2303cdf0e10cSrcweir void XMLTextImportHelper::SetFontDecls( XMLFontStylesContext *pFontDecls ) 2304cdf0e10cSrcweir { 2305cdf0e10cSrcweir m_pImpl->m_xFontDecls = pFontDecls; 2306cdf0e10cSrcweir ((XMLTextImportPropertyMapper *)m_pImpl->m_xParaImpPrMap.get()) 2307cdf0e10cSrcweir ->SetFontDecls( pFontDecls ); 2308cdf0e10cSrcweir ((XMLTextImportPropertyMapper *)m_pImpl->m_xTextImpPrMap.get()) 2309cdf0e10cSrcweir ->SetFontDecls( pFontDecls ); 2310cdf0e10cSrcweir } 2311cdf0e10cSrcweir 2312cdf0e10cSrcweir const XMLFontStylesContext *XMLTextImportHelper::GetFontDecls() const 2313cdf0e10cSrcweir { 2314cdf0e10cSrcweir return (XMLFontStylesContext *)&m_pImpl->m_xFontDecls; 2315cdf0e10cSrcweir } 2316cdf0e10cSrcweir 2317cdf0e10cSrcweir sal_Bool XMLTextImportHelper::HasDrawNameAttribute( 2318cdf0e10cSrcweir const Reference< XAttributeList > & xAttrList, 2319cdf0e10cSrcweir SvXMLNamespaceMap& rNamespaceMap ) 2320cdf0e10cSrcweir { 2321cdf0e10cSrcweir sal_Int16 nAttrCount = xAttrList.is() ? xAttrList->getLength() : 0; 2322cdf0e10cSrcweir for( sal_Int16 i=0; i < nAttrCount; i++ ) 2323cdf0e10cSrcweir { 2324cdf0e10cSrcweir const OUString& rAttrName = xAttrList->getNameByIndex( i ); 2325cdf0e10cSrcweir 2326cdf0e10cSrcweir OUString aLocalName; 2327cdf0e10cSrcweir sal_uInt16 nPrefix = 2328cdf0e10cSrcweir rNamespaceMap.GetKeyByAttrName( rAttrName, &aLocalName ); 2329cdf0e10cSrcweir if( XML_NAMESPACE_DRAW == nPrefix && 2330cdf0e10cSrcweir IsXMLToken( aLocalName, XML_NAME ) ) 2331cdf0e10cSrcweir { 2332cdf0e10cSrcweir return xAttrList->getValueByIndex(i).getLength() != 0; 2333cdf0e10cSrcweir } 2334cdf0e10cSrcweir } 2335cdf0e10cSrcweir 2336cdf0e10cSrcweir return sal_False; 2337cdf0e10cSrcweir } 2338cdf0e10cSrcweir 2339cdf0e10cSrcweir SvXMLImportContext *XMLTextImportHelper::CreateTextChildContext( 2340cdf0e10cSrcweir SvXMLImport& rImport, 2341cdf0e10cSrcweir sal_uInt16 nPrefix, const OUString& rLocalName, 2342cdf0e10cSrcweir const Reference< XAttributeList > & xAttrList, 2343cdf0e10cSrcweir XMLTextType eType ) 2344cdf0e10cSrcweir { 2345cdf0e10cSrcweir SvXMLImportContext *pContext = 0; 2346cdf0e10cSrcweir 2347cdf0e10cSrcweir const SvXMLTokenMap& rTokenMap = GetTextElemTokenMap(); 2348cdf0e10cSrcweir sal_Bool bHeading = sal_False; 2349cdf0e10cSrcweir sal_Bool bContent = sal_True; 2350cdf0e10cSrcweir sal_uInt16 nToken = rTokenMap.Get( nPrefix, rLocalName ); 2351cdf0e10cSrcweir switch( nToken ) 2352cdf0e10cSrcweir { 2353cdf0e10cSrcweir case XML_TOK_TEXT_H: 2354cdf0e10cSrcweir bHeading = sal_True; 2355cdf0e10cSrcweir case XML_TOK_TEXT_P: 2356cdf0e10cSrcweir pContext = new XMLParaContext( rImport, 2357cdf0e10cSrcweir nPrefix, rLocalName, 2358cdf0e10cSrcweir xAttrList, bHeading ); 2359cdf0e10cSrcweir if (m_pImpl->m_bProgress && XML_TEXT_TYPE_SHAPE != eType) 2360cdf0e10cSrcweir { 2361cdf0e10cSrcweir rImport.GetProgressBarHelper()->Increment(); 2362cdf0e10cSrcweir } 2363cdf0e10cSrcweir break; 2364cdf0e10cSrcweir case XML_TOK_TEXT_NUMBERED_PARAGRAPH: 2365cdf0e10cSrcweir pContext = new XMLNumberedParaContext( 2366cdf0e10cSrcweir rImport, nPrefix, rLocalName, xAttrList ); 2367cdf0e10cSrcweir break; 2368cdf0e10cSrcweir case XML_TOK_TEXT_LIST: 2369cdf0e10cSrcweir pContext = new XMLTextListBlockContext( rImport, *this, 2370cdf0e10cSrcweir nPrefix, rLocalName, 2371cdf0e10cSrcweir xAttrList ); 2372cdf0e10cSrcweir break; 2373cdf0e10cSrcweir case XML_TOK_TABLE_TABLE: 2374cdf0e10cSrcweir if( XML_TEXT_TYPE_BODY == eType || 2375cdf0e10cSrcweir XML_TEXT_TYPE_TEXTBOX == eType || 2376cdf0e10cSrcweir XML_TEXT_TYPE_SECTION == eType || 2377cdf0e10cSrcweir XML_TEXT_TYPE_HEADER_FOOTER == eType || 2378cdf0e10cSrcweir XML_TEXT_TYPE_CHANGED_REGION == eType || 2379cdf0e10cSrcweir XML_TEXT_TYPE_CELL == eType ) 2380cdf0e10cSrcweir pContext = CreateTableChildContext( rImport, nPrefix, rLocalName, 2381cdf0e10cSrcweir xAttrList ); 2382cdf0e10cSrcweir break; 2383cdf0e10cSrcweir case XML_TOK_TEXT_SEQUENCE_DECLS: 2384cdf0e10cSrcweir if ((XML_TEXT_TYPE_BODY == eType && m_pImpl->m_bBodyContentStarted) || 2385cdf0e10cSrcweir XML_TEXT_TYPE_HEADER_FOOTER == eType ) 2386cdf0e10cSrcweir { 2387cdf0e10cSrcweir pContext = new XMLVariableDeclsImportContext( 2388cdf0e10cSrcweir rImport, *this, nPrefix, rLocalName, VarTypeSequence); 2389cdf0e10cSrcweir bContent = sal_False; 2390cdf0e10cSrcweir } 2391cdf0e10cSrcweir break; 2392cdf0e10cSrcweir 2393cdf0e10cSrcweir case XML_TOK_TEXT_VARFIELD_DECLS: 2394cdf0e10cSrcweir if ((XML_TEXT_TYPE_BODY == eType && m_pImpl->m_bBodyContentStarted) || 2395cdf0e10cSrcweir XML_TEXT_TYPE_HEADER_FOOTER == eType ) 2396cdf0e10cSrcweir { 2397cdf0e10cSrcweir pContext = new XMLVariableDeclsImportContext( 2398cdf0e10cSrcweir rImport, *this, nPrefix, rLocalName, VarTypeSimple); 2399cdf0e10cSrcweir bContent = sal_False; 2400cdf0e10cSrcweir } 2401cdf0e10cSrcweir break; 2402cdf0e10cSrcweir 2403cdf0e10cSrcweir case XML_TOK_TEXT_USERFIELD_DECLS: 2404cdf0e10cSrcweir if ((XML_TEXT_TYPE_BODY == eType && m_pImpl->m_bBodyContentStarted)|| 2405cdf0e10cSrcweir XML_TEXT_TYPE_HEADER_FOOTER == eType ) 2406cdf0e10cSrcweir { 2407cdf0e10cSrcweir pContext = new XMLVariableDeclsImportContext( 2408cdf0e10cSrcweir rImport, *this, nPrefix, rLocalName, VarTypeUserField); 2409cdf0e10cSrcweir bContent = sal_False; 2410cdf0e10cSrcweir } 2411cdf0e10cSrcweir break; 2412cdf0e10cSrcweir 2413cdf0e10cSrcweir case XML_TOK_TEXT_DDE_DECLS: 2414cdf0e10cSrcweir if ((XML_TEXT_TYPE_BODY == eType && m_pImpl->m_bBodyContentStarted) || 2415cdf0e10cSrcweir XML_TEXT_TYPE_HEADER_FOOTER == eType ) 2416cdf0e10cSrcweir { 2417cdf0e10cSrcweir pContext = new XMLDdeFieldDeclsImportContext( 2418cdf0e10cSrcweir rImport, nPrefix, rLocalName); 2419cdf0e10cSrcweir bContent = sal_False; 2420cdf0e10cSrcweir } 2421cdf0e10cSrcweir break; 2422cdf0e10cSrcweir 2423cdf0e10cSrcweir case XML_TOK_TEXT_FRAME_PAGE: 2424cdf0e10cSrcweir if ((XML_TEXT_TYPE_BODY == eType && m_pImpl->m_bBodyContentStarted) || 2425cdf0e10cSrcweir XML_TEXT_TYPE_TEXTBOX == eType || 2426cdf0e10cSrcweir XML_TEXT_TYPE_CHANGED_REGION == eType ) 2427cdf0e10cSrcweir { 2428cdf0e10cSrcweir TextContentAnchorType eAnchorType = 2429cdf0e10cSrcweir XML_TEXT_TYPE_TEXTBOX == eType ? TextContentAnchorType_AT_FRAME 2430cdf0e10cSrcweir : TextContentAnchorType_AT_PAGE; 2431cdf0e10cSrcweir pContext = new XMLTextFrameContext( rImport, nPrefix, 2432cdf0e10cSrcweir rLocalName, xAttrList, 2433cdf0e10cSrcweir eAnchorType ); 2434cdf0e10cSrcweir bContent = sal_False; 2435cdf0e10cSrcweir } 2436cdf0e10cSrcweir break; 2437cdf0e10cSrcweir 2438cdf0e10cSrcweir case XML_TOK_DRAW_A_PAGE: 2439cdf0e10cSrcweir if ((XML_TEXT_TYPE_BODY == eType && m_pImpl->m_bBodyContentStarted) || 2440cdf0e10cSrcweir XML_TEXT_TYPE_TEXTBOX == eType || 2441cdf0e10cSrcweir XML_TEXT_TYPE_CHANGED_REGION == eType) 2442cdf0e10cSrcweir { 2443cdf0e10cSrcweir TextContentAnchorType eAnchorType = 2444cdf0e10cSrcweir XML_TEXT_TYPE_TEXTBOX == eType ? TextContentAnchorType_AT_FRAME 2445cdf0e10cSrcweir : TextContentAnchorType_AT_PAGE; 2446cdf0e10cSrcweir pContext = new XMLTextFrameHyperlinkContext( rImport, nPrefix, 2447cdf0e10cSrcweir rLocalName, xAttrList, 2448cdf0e10cSrcweir eAnchorType ); 2449cdf0e10cSrcweir bContent = sal_False; 2450cdf0e10cSrcweir } 2451cdf0e10cSrcweir break; 2452cdf0e10cSrcweir 2453cdf0e10cSrcweir case XML_TOK_TEXT_INDEX_TITLE: 2454cdf0e10cSrcweir case XML_TOK_TEXT_SECTION: 2455cdf0e10cSrcweir #ifndef SVX_LIGHT 2456cdf0e10cSrcweir pContext = new XMLSectionImportContext( rImport, nPrefix, rLocalName ); 2457cdf0e10cSrcweir #else 2458cdf0e10cSrcweir // create default context to skip content 2459cdf0e10cSrcweir pContext = new SvXMLImportContext( rImport, nPrefix, rLocalName ); 2460cdf0e10cSrcweir #endif // #ifndef SVX_LIGHT 2461cdf0e10cSrcweir break; 2462cdf0e10cSrcweir 2463cdf0e10cSrcweir case XML_TOK_TEXT_TOC: 2464cdf0e10cSrcweir case XML_TOK_TEXT_OBJECT_INDEX: 2465cdf0e10cSrcweir case XML_TOK_TEXT_TABLE_INDEX: 2466cdf0e10cSrcweir case XML_TOK_TEXT_ILLUSTRATION_INDEX: 2467cdf0e10cSrcweir case XML_TOK_TEXT_USER_INDEX: 2468cdf0e10cSrcweir case XML_TOK_TEXT_ALPHABETICAL_INDEX: 2469cdf0e10cSrcweir case XML_TOK_TEXT_BIBLIOGRAPHY_INDEX: 2470cdf0e10cSrcweir #ifndef SVX_LIGHT 2471cdf0e10cSrcweir if( XML_TEXT_TYPE_SHAPE != eType ) 2472cdf0e10cSrcweir pContext = new XMLIndexTOCContext( rImport, nPrefix, rLocalName ); 2473cdf0e10cSrcweir #else 2474cdf0e10cSrcweir // create default context to skip content 2475cdf0e10cSrcweir pContext = new SvXMLImportContext( rImport, nPrefix, rLocalName ); 2476cdf0e10cSrcweir #endif // #ifndef SVX_LIGHT 2477cdf0e10cSrcweir break; 2478cdf0e10cSrcweir 2479cdf0e10cSrcweir case XML_TOK_TEXT_TRACKED_CHANGES: 2480cdf0e10cSrcweir #ifndef SVX_LIGHT 2481cdf0e10cSrcweir pContext = new XMLTrackedChangesImportContext( rImport, nPrefix, 2482cdf0e10cSrcweir rLocalName); 2483cdf0e10cSrcweir #else 2484cdf0e10cSrcweir // create default context to skip content 2485cdf0e10cSrcweir pContext = new SvXMLImportContext( rImport, nPrefix, rLocalName ); 2486cdf0e10cSrcweir #endif // #ifndef SVX_LIGHT 2487cdf0e10cSrcweir bContent = sal_False; 2488cdf0e10cSrcweir break; 2489cdf0e10cSrcweir 2490cdf0e10cSrcweir case XML_TOK_TEXT_CHANGE: 2491cdf0e10cSrcweir case XML_TOK_TEXT_CHANGE_START: 2492cdf0e10cSrcweir case XML_TOK_TEXT_CHANGE_END: 2493cdf0e10cSrcweir pContext = new XMLChangeImportContext( 2494cdf0e10cSrcweir rImport, nPrefix, rLocalName, 2495cdf0e10cSrcweir (XML_TOK_TEXT_CHANGE_END != nToken), 2496cdf0e10cSrcweir (XML_TOK_TEXT_CHANGE_START != nToken), 2497cdf0e10cSrcweir sal_True); 2498cdf0e10cSrcweir break; 2499cdf0e10cSrcweir 2500cdf0e10cSrcweir case XML_TOK_TEXT_FORMS: 2501cdf0e10cSrcweir #ifndef SVX_LIGHT 2502cdf0e10cSrcweir pContext = rImport.GetFormImport()->createOfficeFormsContext(rImport, nPrefix, rLocalName); 2503cdf0e10cSrcweir #else 2504cdf0e10cSrcweir // create default context to skip content 2505cdf0e10cSrcweir pContext = new SvXMLImportContext( rImport, nPrefix, rLocalName ); 2506cdf0e10cSrcweir #endif // #ifndef SVX_LIGHT 2507cdf0e10cSrcweir bContent = sal_False; 2508cdf0e10cSrcweir break; 2509cdf0e10cSrcweir 2510cdf0e10cSrcweir case XML_TOK_TEXT_AUTOMARK: 2511cdf0e10cSrcweir if( XML_TEXT_TYPE_BODY == eType ) 2512cdf0e10cSrcweir { 2513cdf0e10cSrcweir pContext = new XMLAutoMarkFileContext(rImport, nPrefix,rLocalName); 2514cdf0e10cSrcweir } 2515cdf0e10cSrcweir bContent = sal_False; 2516cdf0e10cSrcweir break; 2517cdf0e10cSrcweir 2518cdf0e10cSrcweir case XML_TOK_TEXT_CALCULATION_SETTINGS: 2519cdf0e10cSrcweir #ifndef SVX_LIGHT 2520cdf0e10cSrcweir pContext = new XMLCalculationSettingsContext ( rImport, nPrefix, rLocalName, xAttrList); 2521cdf0e10cSrcweir #else 2522cdf0e10cSrcweir // create default context to skip content 2523cdf0e10cSrcweir pContext = new SvXMLImportContext( rImport, nPrefix, rLocalName ); 2524cdf0e10cSrcweir #endif // #ifndef SVX_LIGHT 2525cdf0e10cSrcweir bContent = sal_False; 2526cdf0e10cSrcweir break; 2527cdf0e10cSrcweir 2528cdf0e10cSrcweir default: 2529cdf0e10cSrcweir if ((XML_TEXT_TYPE_BODY == eType && m_pImpl->m_bBodyContentStarted) || 2530cdf0e10cSrcweir XML_TEXT_TYPE_TEXTBOX == eType || 2531cdf0e10cSrcweir XML_TEXT_TYPE_CHANGED_REGION == eType ) 2532cdf0e10cSrcweir { 2533cdf0e10cSrcweir Reference < XShapes > xShapes; 2534cdf0e10cSrcweir pContext = rImport.GetShapeImport()->CreateGroupChildContext( 2535cdf0e10cSrcweir rImport, nPrefix, rLocalName, xAttrList, xShapes ); 2536cdf0e10cSrcweir bContent = sal_False; 2537cdf0e10cSrcweir } 2538cdf0e10cSrcweir } 2539cdf0e10cSrcweir 2540cdf0e10cSrcweir // if( !pContext ) 2541cdf0e10cSrcweir // pContext = new SvXMLImportContext( GetImport(), nPrefix, rLocalName ); 2542cdf0e10cSrcweir 2543cdf0e10cSrcweir // handle open redlines 2544cdf0e10cSrcweir if ( (XML_TOK_TEXT_CHANGE != nToken) && 2545cdf0e10cSrcweir (XML_TOK_TEXT_CHANGE_END != nToken) && 2546cdf0e10cSrcweir (XML_TOK_TEXT_CHANGE_START != nToken) ) 2547cdf0e10cSrcweir { 2548cdf0e10cSrcweir // ResetOpenRedlineId(); 2549cdf0e10cSrcweir } 2550cdf0e10cSrcweir 2551cdf0e10cSrcweir if( XML_TEXT_TYPE_BODY == eType && bContent ) 2552cdf0e10cSrcweir { 2553cdf0e10cSrcweir m_pImpl->m_bBodyContentStarted = sal_False; 2554cdf0e10cSrcweir } 2555cdf0e10cSrcweir 2556cdf0e10cSrcweir return pContext; 2557cdf0e10cSrcweir } 2558cdf0e10cSrcweir 2559cdf0e10cSrcweir SvXMLImportContext *XMLTextImportHelper::CreateTableChildContext( 2560cdf0e10cSrcweir SvXMLImport&, 2561cdf0e10cSrcweir sal_uInt16 /*nPrefix*/, const OUString& /*rLocalName*/, 2562cdf0e10cSrcweir const Reference< XAttributeList > & ) 2563cdf0e10cSrcweir { 2564cdf0e10cSrcweir return 0; 2565cdf0e10cSrcweir } 2566cdf0e10cSrcweir 2567cdf0e10cSrcweir /// get data style key for use with NumberFormat property 2568cdf0e10cSrcweir sal_Int32 XMLTextImportHelper::GetDataStyleKey(const OUString& sStyleName, 2569cdf0e10cSrcweir sal_Bool* pIsSystemLanguage ) 2570cdf0e10cSrcweir { 2571cdf0e10cSrcweir const SvXMLStyleContext* pStyle = 2572cdf0e10cSrcweir ((SvXMLStylesContext *)&m_pImpl->m_xAutoStyles)-> 2573cdf0e10cSrcweir FindStyleChildContext( XML_STYLE_FAMILY_DATA_STYLE, 2574cdf0e10cSrcweir sStyleName, sal_True ); 2575cdf0e10cSrcweir 2576cdf0e10cSrcweir // get appropriate context 2577cdf0e10cSrcweir 2578cdf0e10cSrcweir 2579cdf0e10cSrcweir // first check if its a impress and draw only number format 2580cdf0e10cSrcweir // this is needed since its also a SvXMLNumFormatContext, 2581cdf0e10cSrcweir // that was needed to support them for controls in impress/draw also 2582cdf0e10cSrcweir SdXMLNumberFormatImportContext* pSdNumStyle = PTR_CAST( SdXMLNumberFormatImportContext, pStyle ); 2583cdf0e10cSrcweir if( pSdNumStyle ) 2584cdf0e10cSrcweir { 2585cdf0e10cSrcweir return pSdNumStyle->GetDrawKey(); 2586cdf0e10cSrcweir } 2587cdf0e10cSrcweir else 2588cdf0e10cSrcweir { 2589cdf0e10cSrcweir SvXMLNumFormatContext* pNumStyle = PTR_CAST( SvXMLNumFormatContext, pStyle ); 2590cdf0e10cSrcweir if( pNumStyle ) 2591cdf0e10cSrcweir { 2592cdf0e10cSrcweir if( pIsSystemLanguage != NULL ) 2593cdf0e10cSrcweir *pIsSystemLanguage = pNumStyle->IsSystemLanguage(); 2594cdf0e10cSrcweir 2595cdf0e10cSrcweir // return key 2596cdf0e10cSrcweir return pNumStyle->GetKey(); 2597cdf0e10cSrcweir } 2598cdf0e10cSrcweir } 2599cdf0e10cSrcweir return -1; 2600cdf0e10cSrcweir } 2601cdf0e10cSrcweir 2602cdf0e10cSrcweir const SvxXMLListStyleContext *XMLTextImportHelper::FindAutoListStyle( const OUString& rName ) const 2603cdf0e10cSrcweir { 2604cdf0e10cSrcweir const SvxXMLListStyleContext *pStyle = 0; 2605cdf0e10cSrcweir if (m_pImpl->m_xAutoStyles.Is()) 2606cdf0e10cSrcweir { 2607cdf0e10cSrcweir const SvXMLStyleContext* pTempStyle = 2608cdf0e10cSrcweir ((SvXMLStylesContext *)&m_pImpl->m_xAutoStyles)-> 2609cdf0e10cSrcweir FindStyleChildContext( XML_STYLE_FAMILY_TEXT_LIST, rName, 2610cdf0e10cSrcweir sal_True ); 2611cdf0e10cSrcweir pStyle = PTR_CAST( SvxXMLListStyleContext ,pTempStyle); 2612cdf0e10cSrcweir } 2613cdf0e10cSrcweir 2614cdf0e10cSrcweir return pStyle; 2615cdf0e10cSrcweir } 2616cdf0e10cSrcweir 2617cdf0e10cSrcweir XMLPropStyleContext *XMLTextImportHelper::FindAutoFrameStyle( const OUString& rName ) const 2618cdf0e10cSrcweir { 2619cdf0e10cSrcweir XMLPropStyleContext *pStyle = 0; 2620cdf0e10cSrcweir if (m_pImpl->m_xAutoStyles.Is()) 2621cdf0e10cSrcweir { 2622cdf0e10cSrcweir const SvXMLStyleContext* pTempStyle = 2623cdf0e10cSrcweir ((SvXMLStylesContext *)&m_pImpl->m_xAutoStyles)-> 2624cdf0e10cSrcweir FindStyleChildContext( XML_STYLE_FAMILY_SD_GRAPHICS_ID, rName, 2625cdf0e10cSrcweir sal_True ); 2626cdf0e10cSrcweir pStyle = PTR_CAST( XMLPropStyleContext ,pTempStyle); 2627cdf0e10cSrcweir } 2628cdf0e10cSrcweir 2629cdf0e10cSrcweir return pStyle; 2630cdf0e10cSrcweir } 2631cdf0e10cSrcweir 2632cdf0e10cSrcweir XMLPropStyleContext* XMLTextImportHelper::FindSectionStyle( 2633cdf0e10cSrcweir const OUString& rName ) const 2634cdf0e10cSrcweir { 2635cdf0e10cSrcweir XMLPropStyleContext* pStyle = NULL; 2636cdf0e10cSrcweir if (m_pImpl->m_xAutoStyles.Is()) 2637cdf0e10cSrcweir { 2638cdf0e10cSrcweir const SvXMLStyleContext* pTempStyle = 2639cdf0e10cSrcweir ((SvXMLStylesContext *)&m_pImpl->m_xAutoStyles)-> 2640cdf0e10cSrcweir FindStyleChildContext( 2641cdf0e10cSrcweir XML_STYLE_FAMILY_TEXT_SECTION, 2642cdf0e10cSrcweir rName, sal_True ); 2643cdf0e10cSrcweir pStyle = PTR_CAST( XMLPropStyleContext,pTempStyle); 2644cdf0e10cSrcweir } 2645cdf0e10cSrcweir 2646cdf0e10cSrcweir return pStyle; 2647cdf0e10cSrcweir } 2648cdf0e10cSrcweir 2649cdf0e10cSrcweir XMLPropStyleContext* XMLTextImportHelper::FindPageMaster( 2650cdf0e10cSrcweir const OUString& rName ) const 2651cdf0e10cSrcweir { 2652cdf0e10cSrcweir XMLPropStyleContext* pStyle = NULL; 2653cdf0e10cSrcweir if (m_pImpl->m_xAutoStyles.Is()) 2654cdf0e10cSrcweir { 2655cdf0e10cSrcweir const SvXMLStyleContext* pTempStyle = 2656cdf0e10cSrcweir ((SvXMLStylesContext *)&m_pImpl->m_xAutoStyles)-> 2657cdf0e10cSrcweir FindStyleChildContext( 2658cdf0e10cSrcweir XML_STYLE_FAMILY_PAGE_MASTER, 2659cdf0e10cSrcweir rName, sal_True ); 2660cdf0e10cSrcweir pStyle = PTR_CAST( XMLPropStyleContext,pTempStyle); 2661cdf0e10cSrcweir } 2662cdf0e10cSrcweir 2663cdf0e10cSrcweir return pStyle; 2664cdf0e10cSrcweir } 2665cdf0e10cSrcweir 2666cdf0e10cSrcweir 2667cdf0e10cSrcweir void XMLTextImportHelper::PushListContext(XMLTextListBlockContext *i_pListBlock) 2668cdf0e10cSrcweir { 2669cdf0e10cSrcweir GetTextListHelper().PushListContext(i_pListBlock); 2670cdf0e10cSrcweir } 2671cdf0e10cSrcweir 2672cdf0e10cSrcweir void XMLTextImportHelper::PopListContext() 2673cdf0e10cSrcweir { 2674cdf0e10cSrcweir GetTextListHelper().PopListContext(); 2675cdf0e10cSrcweir } 2676cdf0e10cSrcweir 2677cdf0e10cSrcweir 2678cdf0e10cSrcweir const SvXMLTokenMap& XMLTextImportHelper::GetTextNumberedParagraphAttrTokenMap() 2679cdf0e10cSrcweir { 2680cdf0e10cSrcweir if (!m_pImpl->m_pTextNumberedParagraphAttrTokenMap.get()) 2681cdf0e10cSrcweir { 2682cdf0e10cSrcweir m_pImpl->m_pTextNumberedParagraphAttrTokenMap.reset( 2683cdf0e10cSrcweir new SvXMLTokenMap( aTextNumberedParagraphAttrTokenMap ) ); 2684cdf0e10cSrcweir } 2685cdf0e10cSrcweir return *m_pImpl->m_pTextNumberedParagraphAttrTokenMap; 2686cdf0e10cSrcweir } 2687cdf0e10cSrcweir 2688cdf0e10cSrcweir const SvXMLTokenMap& XMLTextImportHelper::GetTextListBlockAttrTokenMap() 2689cdf0e10cSrcweir { 2690cdf0e10cSrcweir if (!m_pImpl->m_pTextListBlockAttrTokenMap.get()) 2691cdf0e10cSrcweir { 2692cdf0e10cSrcweir m_pImpl->m_pTextListBlockAttrTokenMap.reset( 2693cdf0e10cSrcweir new SvXMLTokenMap( aTextListBlockAttrTokenMap ) ); 2694cdf0e10cSrcweir } 2695cdf0e10cSrcweir return *m_pImpl->m_pTextListBlockAttrTokenMap; 2696cdf0e10cSrcweir } 2697cdf0e10cSrcweir 2698cdf0e10cSrcweir const SvXMLTokenMap& XMLTextImportHelper::GetTextListBlockElemTokenMap() 2699cdf0e10cSrcweir { 2700cdf0e10cSrcweir if (!m_pImpl->m_pTextListBlockElemTokenMap.get()) 2701cdf0e10cSrcweir { 2702cdf0e10cSrcweir m_pImpl->m_pTextListBlockElemTokenMap.reset( 2703cdf0e10cSrcweir new SvXMLTokenMap( aTextListBlockElemTokenMap ) ); 2704cdf0e10cSrcweir } 2705cdf0e10cSrcweir return *m_pImpl->m_pTextListBlockElemTokenMap; 2706cdf0e10cSrcweir } 2707cdf0e10cSrcweir 2708cdf0e10cSrcweir SvI18NMap& XMLTextImportHelper::GetRenameMap() 2709cdf0e10cSrcweir { 2710cdf0e10cSrcweir if (!m_pImpl->m_pRenameMap.get()) 2711cdf0e10cSrcweir { 2712cdf0e10cSrcweir m_pImpl->m_pRenameMap.reset( new SvI18NMap() ); 2713cdf0e10cSrcweir } 2714cdf0e10cSrcweir return *m_pImpl->m_pRenameMap; 2715cdf0e10cSrcweir } 2716cdf0e10cSrcweir 2717cdf0e10cSrcweir void XMLTextImportHelper::InsertBookmarkStartRange( 2718cdf0e10cSrcweir const OUString sName, 2719cdf0e10cSrcweir const Reference<XTextRange> & rRange, 2720cdf0e10cSrcweir OUString const& i_rXmlId, 2721cdf0e10cSrcweir ::boost::shared_ptr< ::xmloff::ParsedRDFaAttributes > & i_rpRDFaAttributes) 2722cdf0e10cSrcweir { 2723cdf0e10cSrcweir m_pImpl->m_BookmarkStartRanges[sName] = 2724cdf0e10cSrcweir ::boost::make_tuple(rRange, i_rXmlId, i_rpRDFaAttributes); 2725cdf0e10cSrcweir m_pImpl->m_BookmarkVector.push_back(sName); 2726cdf0e10cSrcweir } 2727cdf0e10cSrcweir 2728cdf0e10cSrcweir sal_Bool XMLTextImportHelper::FindAndRemoveBookmarkStartRange( 2729cdf0e10cSrcweir const OUString sName, 2730cdf0e10cSrcweir Reference<XTextRange> & o_rRange, 2731cdf0e10cSrcweir OUString & o_rXmlId, 2732cdf0e10cSrcweir ::boost::shared_ptr< ::xmloff::ParsedRDFaAttributes > & o_rpRDFaAttributes) 2733cdf0e10cSrcweir { 2734cdf0e10cSrcweir if (m_pImpl->m_BookmarkStartRanges.count(sName)) 2735cdf0e10cSrcweir { 2736cdf0e10cSrcweir Impl::BookmarkMapEntry_t & rEntry = 2737cdf0e10cSrcweir (*m_pImpl->m_BookmarkStartRanges.find(sName)).second; 2738cdf0e10cSrcweir o_rRange.set(rEntry.get<0>()); 2739cdf0e10cSrcweir o_rXmlId = rEntry.get<1>(); 2740cdf0e10cSrcweir o_rpRDFaAttributes = rEntry.get<2>(); 2741cdf0e10cSrcweir m_pImpl->m_BookmarkStartRanges.erase(sName); 2742cdf0e10cSrcweir Impl::BookmarkVector_t::iterator it(m_pImpl->m_BookmarkVector.begin()); 2743cdf0e10cSrcweir while (it != m_pImpl->m_BookmarkVector.end() && it->compareTo(sName)!=0) 2744cdf0e10cSrcweir { 2745cdf0e10cSrcweir it++; 2746cdf0e10cSrcweir } 2747cdf0e10cSrcweir if (it!=m_pImpl->m_BookmarkVector.end()) { 2748cdf0e10cSrcweir m_pImpl->m_BookmarkVector.erase(it); 2749cdf0e10cSrcweir } 2750cdf0e10cSrcweir return sal_True; 2751cdf0e10cSrcweir } 2752cdf0e10cSrcweir else 2753cdf0e10cSrcweir { 2754cdf0e10cSrcweir return sal_False; 2755cdf0e10cSrcweir } 2756cdf0e10cSrcweir } 2757cdf0e10cSrcweir 2758cdf0e10cSrcweir ::rtl::OUString XMLTextImportHelper::FindActiveBookmarkName() 2759cdf0e10cSrcweir { 2760cdf0e10cSrcweir if (!m_pImpl->m_BookmarkVector.empty()) { 2761cdf0e10cSrcweir return m_pImpl->m_BookmarkVector.back(); 2762cdf0e10cSrcweir } else return ::rtl::OUString(); // return the empty string on error... 2763cdf0e10cSrcweir } 2764cdf0e10cSrcweir 2765cdf0e10cSrcweir ::com::sun::star::uno::Reference< ::com::sun::star::text::XTextRange > XMLTextImportHelper::GetRangeFor(::rtl::OUString &sName) 2766cdf0e10cSrcweir { 2767cdf0e10cSrcweir return m_pImpl->m_BookmarkStartRanges[sName].get<0>(); 2768cdf0e10cSrcweir } 2769cdf0e10cSrcweir 2770cdf0e10cSrcweir 2771cdf0e10cSrcweir void XMLTextImportHelper::pushFieldCtx( ::rtl::OUString name, ::rtl::OUString type ) 2772cdf0e10cSrcweir { 2773cdf0e10cSrcweir m_pImpl->m_FieldStack.push(Impl::field_stack_item_t( 2774cdf0e10cSrcweir Impl::field_name_type_t(name, type), Impl::field_params_t())); 2775cdf0e10cSrcweir } 2776cdf0e10cSrcweir 2777cdf0e10cSrcweir void XMLTextImportHelper::popFieldCtx() 2778cdf0e10cSrcweir { 2779cdf0e10cSrcweir m_pImpl->m_FieldStack.pop(); 2780cdf0e10cSrcweir } 2781cdf0e10cSrcweir 2782cdf0e10cSrcweir void XMLTextImportHelper::addFieldParam( ::rtl::OUString name, ::rtl::OUString value ) 2783cdf0e10cSrcweir { 2784cdf0e10cSrcweir DBG_ASSERT(!m_pImpl->m_FieldStack.empty(), 2785cdf0e10cSrcweir "stack is empty: not good! Do a pushFieldCtx before..."); 2786cdf0e10cSrcweir if (!m_pImpl->m_FieldStack.empty()) { 2787cdf0e10cSrcweir Impl::field_stack_item_t & FieldStackItem(m_pImpl->m_FieldStack.top()); 2788cdf0e10cSrcweir FieldStackItem.second.push_back(Impl::field_param_t( name, value )); 2789cdf0e10cSrcweir } 2790cdf0e10cSrcweir } 2791cdf0e10cSrcweir ::rtl::OUString XMLTextImportHelper::getCurrentFieldName() 2792cdf0e10cSrcweir { 2793cdf0e10cSrcweir DBG_ASSERT(!m_pImpl->m_FieldStack.empty(), 2794cdf0e10cSrcweir "stack is empty: not good! Do a pushFieldCtx before..."); 2795cdf0e10cSrcweir if (!m_pImpl->m_FieldStack.empty()) { 2796cdf0e10cSrcweir return m_pImpl->m_FieldStack.top().first.first; 2797cdf0e10cSrcweir } else return ::rtl::OUString(); 2798cdf0e10cSrcweir } 2799cdf0e10cSrcweir 2800cdf0e10cSrcweir ::rtl::OUString XMLTextImportHelper::getCurrentFieldType() 2801cdf0e10cSrcweir { 2802cdf0e10cSrcweir DBG_ASSERT(!m_pImpl->m_FieldStack.empty(), 2803cdf0e10cSrcweir "stack is empty: not good! Do a pushFieldCtx before..."); 2804cdf0e10cSrcweir if (!m_pImpl->m_FieldStack.empty()) { 2805cdf0e10cSrcweir return m_pImpl->m_FieldStack.top().first.second; 2806cdf0e10cSrcweir } else return ::rtl::OUString(); 2807cdf0e10cSrcweir } 2808cdf0e10cSrcweir 2809cdf0e10cSrcweir bool XMLTextImportHelper::hasCurrentFieldCtx() 2810cdf0e10cSrcweir { 2811cdf0e10cSrcweir return !m_pImpl->m_FieldStack.empty(); 2812cdf0e10cSrcweir } 2813cdf0e10cSrcweir 2814cdf0e10cSrcweir void XMLTextImportHelper::setCurrentFieldParamsTo(::com::sun::star::uno::Reference< ::com::sun::star::text::XFormField> &xFormField) 2815cdf0e10cSrcweir { 2816cdf0e10cSrcweir DBG_ASSERT(!m_pImpl->m_FieldStack.empty(), 2817cdf0e10cSrcweir "stack is empty: not good! Do a pushFieldCtx before..."); 2818cdf0e10cSrcweir if (!m_pImpl->m_FieldStack.empty() && xFormField.is()) 2819cdf0e10cSrcweir { 2820cdf0e10cSrcweir FieldParamImporter(&m_pImpl->m_FieldStack.top().second, 2821cdf0e10cSrcweir xFormField->getParameters()).Import(); 2822cdf0e10cSrcweir } 2823cdf0e10cSrcweir } 2824cdf0e10cSrcweir 2825cdf0e10cSrcweir 2826cdf0e10cSrcweir void XMLTextImportHelper::ConnectFrameChains( 2827cdf0e10cSrcweir const OUString& rFrmName, 2828cdf0e10cSrcweir const OUString& rNextFrmName, 2829cdf0e10cSrcweir const Reference < XPropertySet >& rFrmPropSet ) 2830cdf0e10cSrcweir { 2831cdf0e10cSrcweir static ::rtl::OUString s_ChainNextName( 2832cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("ChainNextName")); 2833cdf0e10cSrcweir static ::rtl::OUString s_ChainPrevName( 2834cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("ChainPrevName")); 2835cdf0e10cSrcweir 2836cdf0e10cSrcweir if( !rFrmName.getLength() ) 2837cdf0e10cSrcweir return; 2838cdf0e10cSrcweir 2839cdf0e10cSrcweir if( rNextFrmName.getLength() ) 2840cdf0e10cSrcweir { 2841cdf0e10cSrcweir OUString sNextFrmName(GetRenameMap().Get( XML_TEXT_RENAME_TYPE_FRAME, 2842cdf0e10cSrcweir rNextFrmName )); 2843cdf0e10cSrcweir if (m_pImpl->m_xTextFrames.is() 2844cdf0e10cSrcweir && m_pImpl->m_xTextFrames->hasByName(sNextFrmName)) 2845cdf0e10cSrcweir { 2846cdf0e10cSrcweir rFrmPropSet->setPropertyValue(s_ChainNextName, 2847cdf0e10cSrcweir makeAny(sNextFrmName)); 2848cdf0e10cSrcweir } 2849cdf0e10cSrcweir else 2850cdf0e10cSrcweir { 2851cdf0e10cSrcweir if (!m_pImpl->m_pPrevFrmNames.get()) 2852cdf0e10cSrcweir { 2853cdf0e10cSrcweir m_pImpl->m_pPrevFrmNames.reset( new SvStringsDtor ); 2854cdf0e10cSrcweir m_pImpl->m_pNextFrmNames.reset( new SvStringsDtor ); 2855cdf0e10cSrcweir } 2856cdf0e10cSrcweir m_pImpl->m_pPrevFrmNames->Insert( new String( rFrmName ), 2857cdf0e10cSrcweir m_pImpl->m_pPrevFrmNames->Count() ); 2858cdf0e10cSrcweir m_pImpl->m_pNextFrmNames->Insert( new String( sNextFrmName ), 2859cdf0e10cSrcweir m_pImpl->m_pNextFrmNames->Count() ); 2860cdf0e10cSrcweir } 2861cdf0e10cSrcweir } 2862cdf0e10cSrcweir if (m_pImpl->m_pPrevFrmNames.get() && m_pImpl->m_pPrevFrmNames->Count()) 2863cdf0e10cSrcweir { 2864cdf0e10cSrcweir sal_uInt16 nCount = m_pImpl->m_pPrevFrmNames->Count(); 2865cdf0e10cSrcweir for( sal_uInt16 i=0; i<nCount; i++ ) 2866cdf0e10cSrcweir { 2867cdf0e10cSrcweir String *pNext = (*m_pImpl->m_pNextFrmNames)[i]; 2868cdf0e10cSrcweir if( OUString(*pNext) == rFrmName ) 2869cdf0e10cSrcweir { 2870cdf0e10cSrcweir // The previuous frame must exist, because it existing than 2871cdf0e10cSrcweir // inserting the entry 2872cdf0e10cSrcweir String *pPrev = (*m_pImpl->m_pPrevFrmNames)[i]; 2873cdf0e10cSrcweir 2874cdf0e10cSrcweir rFrmPropSet->setPropertyValue(s_ChainPrevName, 2875cdf0e10cSrcweir makeAny(OUString( *pPrev ))); 2876cdf0e10cSrcweir 2877cdf0e10cSrcweir m_pImpl->m_pPrevFrmNames->Remove( i, 1 ); 2878cdf0e10cSrcweir m_pImpl->m_pNextFrmNames->Remove( i, 1 ); 2879cdf0e10cSrcweir delete pPrev; 2880cdf0e10cSrcweir delete pNext; 2881cdf0e10cSrcweir 2882cdf0e10cSrcweir // There cannot be more than one previous frames 2883cdf0e10cSrcweir break; 2884cdf0e10cSrcweir } 2885cdf0e10cSrcweir } 2886cdf0e10cSrcweir } 2887cdf0e10cSrcweir } 2888cdf0e10cSrcweir 2889cdf0e10cSrcweir sal_Bool XMLTextImportHelper::IsInFrame() const 2890cdf0e10cSrcweir { 2891cdf0e10cSrcweir static ::rtl::OUString s_TextFrame( 2892cdf0e10cSrcweir RTL_CONSTASCII_USTRINGPARAM("TextFrame")); 2893cdf0e10cSrcweir 2894cdf0e10cSrcweir sal_Bool bIsInFrame = sal_False; 2895cdf0e10cSrcweir 2896cdf0e10cSrcweir // are we currently in a text frame? yes, if the cursor has a 2897cdf0e10cSrcweir // TextFrame property and it's non-NULL 2898cdf0e10cSrcweir Reference<XPropertySet> xPropSet(((XMLTextImportHelper *)this)->GetCursor(), UNO_QUERY); 2899cdf0e10cSrcweir if (xPropSet.is()) 2900cdf0e10cSrcweir { 2901cdf0e10cSrcweir if (xPropSet->getPropertySetInfo()->hasPropertyByName(s_TextFrame)) 2902cdf0e10cSrcweir { 2903cdf0e10cSrcweir uno::Reference<XTextFrame> const xFrame( 2904cdf0e10cSrcweir xPropSet->getPropertyValue(s_TextFrame), UNO_QUERY); 2905cdf0e10cSrcweir 2906cdf0e10cSrcweir if (xFrame.is()) 2907cdf0e10cSrcweir { 2908cdf0e10cSrcweir bIsInFrame = sal_True; 2909cdf0e10cSrcweir } 2910cdf0e10cSrcweir } 2911cdf0e10cSrcweir } 2912cdf0e10cSrcweir 2913cdf0e10cSrcweir return bIsInFrame; 2914cdf0e10cSrcweir } 2915cdf0e10cSrcweir 2916cdf0e10cSrcweir sal_Bool XMLTextImportHelper::IsInHeaderFooter() const 2917cdf0e10cSrcweir { 2918cdf0e10cSrcweir return sal_False; 2919cdf0e10cSrcweir } 2920cdf0e10cSrcweir 2921cdf0e10cSrcweir Reference< XPropertySet> XMLTextImportHelper::createAndInsertOLEObject( 2922cdf0e10cSrcweir SvXMLImport&, 2923cdf0e10cSrcweir const OUString& /*rHRef*/, 2924cdf0e10cSrcweir const OUString& /*rStyleName*/, 2925cdf0e10cSrcweir const OUString& /*rTblName*/, 2926cdf0e10cSrcweir sal_Int32 /*nWidth*/, sal_Int32 /*nHeight*/ ) 2927cdf0e10cSrcweir { 2928cdf0e10cSrcweir Reference< XPropertySet> xPropSet; 2929cdf0e10cSrcweir return xPropSet; 2930cdf0e10cSrcweir } 2931cdf0e10cSrcweir 2932cdf0e10cSrcweir Reference< XPropertySet> XMLTextImportHelper::createAndInsertOOoLink( 2933cdf0e10cSrcweir SvXMLImport&, 2934cdf0e10cSrcweir const OUString& /*rHRef*/, 2935cdf0e10cSrcweir const OUString& /*rStyleName*/, 2936cdf0e10cSrcweir const OUString& /*rTblName*/, 2937cdf0e10cSrcweir sal_Int32 /*nWidth*/, sal_Int32 /*nHeight*/ ) 2938cdf0e10cSrcweir { 2939cdf0e10cSrcweir Reference< XPropertySet> xPropSet; 2940cdf0e10cSrcweir return xPropSet; 2941cdf0e10cSrcweir } 2942cdf0e10cSrcweir 2943cdf0e10cSrcweir Reference< XPropertySet> XMLTextImportHelper::createAndInsertApplet( 2944cdf0e10cSrcweir const OUString& /*rCode*/, 2945cdf0e10cSrcweir const OUString& /*rName*/, 2946cdf0e10cSrcweir sal_Bool /*bMayScript*/, 2947cdf0e10cSrcweir const OUString& /*rHRef*/, 2948cdf0e10cSrcweir sal_Int32 /*nWidth*/, sal_Int32 /*nHeight*/ ) 2949cdf0e10cSrcweir { 2950cdf0e10cSrcweir Reference< XPropertySet> xPropSet; 2951cdf0e10cSrcweir return xPropSet; 2952cdf0e10cSrcweir } 2953cdf0e10cSrcweir Reference< XPropertySet> XMLTextImportHelper::createAndInsertPlugin( 2954cdf0e10cSrcweir const OUString& /*rMimeType*/, 2955cdf0e10cSrcweir const OUString& /*rHRef*/, 2956cdf0e10cSrcweir sal_Int32 /*nWidth*/, sal_Int32 /*nHeight*/ ) 2957cdf0e10cSrcweir { 2958cdf0e10cSrcweir Reference< XPropertySet> xPropSet; 2959cdf0e10cSrcweir return xPropSet; 2960cdf0e10cSrcweir } 2961cdf0e10cSrcweir Reference< XPropertySet> XMLTextImportHelper::createAndInsertFloatingFrame( 2962cdf0e10cSrcweir const OUString& /*rName*/, 2963cdf0e10cSrcweir const OUString& /*rHRef*/, 2964cdf0e10cSrcweir const OUString& /*rStyleName*/, 2965cdf0e10cSrcweir sal_Int32 /*nWidth*/, sal_Int32 /*nHeight*/ ) 2966cdf0e10cSrcweir { 2967cdf0e10cSrcweir Reference< XPropertySet> xPropSet; 2968cdf0e10cSrcweir return xPropSet; 2969cdf0e10cSrcweir } 2970cdf0e10cSrcweir 2971cdf0e10cSrcweir void XMLTextImportHelper::endAppletOrPlugin( 2972cdf0e10cSrcweir const Reference < XPropertySet> &, 2973cdf0e10cSrcweir std::map < const rtl::OUString, rtl::OUString, UStringLess > &) 2974cdf0e10cSrcweir { 2975cdf0e10cSrcweir } 2976cdf0e10cSrcweir // redline helper: dummy implementation to be overridden in sw/filter/xml 2977cdf0e10cSrcweir void XMLTextImportHelper::RedlineAdd( 2978cdf0e10cSrcweir const OUString& /*rType*/, 2979cdf0e10cSrcweir const OUString& /*rId*/, 2980cdf0e10cSrcweir const OUString& /*rAuthor*/, 2981cdf0e10cSrcweir const OUString& /*rComment*/, 2982cdf0e10cSrcweir const DateTime& /*rDateTime*/, 2983cdf0e10cSrcweir sal_Bool /*bMergeLastPara*/) 2984cdf0e10cSrcweir { 2985cdf0e10cSrcweir // dummy implementation: do nothing 2986cdf0e10cSrcweir } 2987cdf0e10cSrcweir 2988cdf0e10cSrcweir Reference<XTextCursor> XMLTextImportHelper::RedlineCreateText( 2989cdf0e10cSrcweir Reference<XTextCursor> & /*rOldCursor*/, 2990cdf0e10cSrcweir const OUString& /*rId*/) 2991cdf0e10cSrcweir { 2992cdf0e10cSrcweir // dummy implementation: do nothing 2993cdf0e10cSrcweir Reference<XTextCursor> xRet; 2994cdf0e10cSrcweir return xRet; 2995cdf0e10cSrcweir } 2996cdf0e10cSrcweir 2997cdf0e10cSrcweir void XMLTextImportHelper::RedlineSetCursor( 2998cdf0e10cSrcweir const OUString& /*rId*/, 2999cdf0e10cSrcweir sal_Bool /*bStart*/, 3000cdf0e10cSrcweir sal_Bool /*bIsOutsideOfParagraph*/) 3001cdf0e10cSrcweir { 3002cdf0e10cSrcweir // dummy implementation: do nothing 3003cdf0e10cSrcweir } 3004cdf0e10cSrcweir 3005cdf0e10cSrcweir void XMLTextImportHelper::RedlineAdjustStartNodeCursor(sal_Bool) 3006cdf0e10cSrcweir { 3007cdf0e10cSrcweir // dummy implementation: do nothing 3008cdf0e10cSrcweir } 3009cdf0e10cSrcweir 3010cdf0e10cSrcweir void XMLTextImportHelper::SetShowChanges( sal_Bool ) 3011cdf0e10cSrcweir { 3012cdf0e10cSrcweir // dummy implementation: do nothing 3013cdf0e10cSrcweir } 3014cdf0e10cSrcweir 3015cdf0e10cSrcweir void XMLTextImportHelper::SetRecordChanges( sal_Bool ) 3016cdf0e10cSrcweir { 3017cdf0e10cSrcweir // dummy implementation: do nothing 3018cdf0e10cSrcweir } 3019cdf0e10cSrcweir void XMLTextImportHelper::SetChangesProtectionKey(const Sequence<sal_Int8> &) 3020cdf0e10cSrcweir { 3021cdf0e10cSrcweir // dummy implementation: do nothing 3022cdf0e10cSrcweir } 3023cdf0e10cSrcweir 3024cdf0e10cSrcweir 3025cdf0e10cSrcweir OUString XMLTextImportHelper::GetOpenRedlineId() 3026cdf0e10cSrcweir { 3027cdf0e10cSrcweir return m_pImpl->m_sOpenRedlineIdentifier; 3028cdf0e10cSrcweir } 3029cdf0e10cSrcweir 3030cdf0e10cSrcweir void XMLTextImportHelper::SetOpenRedlineId( ::rtl::OUString& rId) 3031cdf0e10cSrcweir { 3032cdf0e10cSrcweir m_pImpl->m_sOpenRedlineIdentifier = rId; 3033cdf0e10cSrcweir } 3034cdf0e10cSrcweir 3035cdf0e10cSrcweir void XMLTextImportHelper::ResetOpenRedlineId() 3036cdf0e10cSrcweir { 3037cdf0e10cSrcweir OUString sEmpty; 3038cdf0e10cSrcweir SetOpenRedlineId(sEmpty); 3039cdf0e10cSrcweir } 3040cdf0e10cSrcweir 3041cdf0e10cSrcweir void 3042cdf0e10cSrcweir XMLTextImportHelper::SetCellParaStyleDefault(::rtl::OUString const& rNewValue) 3043cdf0e10cSrcweir { 3044cdf0e10cSrcweir m_pImpl->m_sCellParaStyleDefault = rNewValue; 3045cdf0e10cSrcweir } 3046cdf0e10cSrcweir 3047cdf0e10cSrcweir ::rtl::OUString const& XMLTextImportHelper::GetCellParaStyleDefault() 3048cdf0e10cSrcweir { 3049cdf0e10cSrcweir return m_pImpl->m_sCellParaStyleDefault; 3050cdf0e10cSrcweir } 3051cdf0e10cSrcweir 3052