19#ifndef INCLUDED_XMLOFF_TXTIMP_HXX
20#define INCLUDED_XMLOFF_TXTIMP_HXX
25#include <rtl/ustring.hxx>
26#include <com/sun/star/uno/Reference.h>
27#include <com/sun/star/uno/Sequence.hxx>
47 struct ParsedRDFaAttributes;
58namespace frame {
class XModel; }
59namespace container {
class XNameContainer;
class XIndexReplace; }
61namespace xml::sax {
class XAttributeList; }
62namespace xml::sax {
class XFastAttributeList; }
66namespace rtl {
template <
class reference_type>
class Reference; }
91#define XML_TEXT_RENAME_TYPE_FRAME 10
92#define XML_TEXT_RENAME_TYPE_TABLE 20
105 static std::shared_ptr<BackpatcherImpl> MakeBackpatcherImpl();
109 SvXMLImport& rImport,
111 const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList );
122 css::uno::Reference< css::frame::XModel >
const& rModel,
123 SvXMLImport& rImport,
124 bool const bInsertMode =
false,
bool const bStylesOnlyMode =
false,
125 bool const bProgress =
false,
bool const bBlockMode =
false,
126 bool const bOrganizerMode =
false);
133 const css::uno::Reference< css::text::XTextCursor >& rCursor );
139 SvXMLImport& rImport,
141 const css::uno::Reference< css::xml::sax::XFastAttributeList > & xAttrList,
144 css::uno::Reference< css::text::XText > & GetText();
145 css::uno::Reference< css::text::XTextCursor > & GetCursor();
146 css::uno::Reference< css::text::XTextRange > & GetCursorAsRange();
148 bool IsInsertMode()
const;
149 bool IsStylesOnlyMode()
const;
150 bool IsBlockMode()
const;
151 bool IsOrganizerMode()
const;
152 bool IsProgress()
const;
154 OUString ConvertStarFonts(
const OUString& rChars,
155 const OUString& rStyleName,
158 SvXMLImport& rImport )
const;
160 void InsertString(
const OUString& rChars );
162 void InsertString( std::u16string_view rChars,
163 bool& rIgnoreLeadingSpace );
165 void DeleteParagraph();
167 void InsertControlCharacter( sal_Int16 nControl );
168 void InsertTextContent( css::uno::Reference< css::text::XTextContent >
const & xContent);
172 OUString SetStyleAndAttrs(
173 SvXMLImport
const & rImport,
174 const css::uno::Reference< css::text::XTextCursor >& rCursor,
175 const OUString& rStyleName,
177 bool bOutlineLevelAttrFound =
false,
179 bool bSetListAttrs =
true,
180 bool bOutlineContentVisible =
true);
187 void FindOutlineStyleName( OUString& rStyleName,
191 void AddOutlineStyleCandidate(
const sal_Int8 nOutlineLevel,
192 const OUString& rStyleName );
194 void SetOutlineStyles(
bool bSetEmpty );
197 SvXMLImport
const & rImport,
198 const css::uno::Reference< css::text::XTextCursor >& rCursor,
199 const OUString& rHRef,
200 const OUString& rName,
201 const OUString& rTargetFrameName,
202 const OUString& rStyleName,
203 const OUString& rVisitedStyleName,
206 SvXMLImport
const & rImport,
207 const css::uno::Reference< css::text::XTextCursor >& rCursor,
208 const OUString& rStyleName,
209 const OUString& rTextStyleName,
210 const OUString& rText );
215 sal_Int32 GetDataStyleKey(
const OUString& sStyleName,
216 bool* pIsSystemLanguage =
nullptr );
219 const OUString& rName )
const;
221 const OUString& rName )
const;
223 const OUString& rName )
const;
225 const OUString& rName )
const;
228 const css::uno::Reference< css::container::XNameContainer> &
GetParaStyles()
const;
230 const css::uno::Reference< css::container::XNameContainer> & GetTextStyles()
const;
232 const css::uno::Reference< css::container::XNameContainer> &
233 GetNumberingStyles()
const;
235 const css::uno::Reference< css::container::XNameContainer> & GetFrameStyles()
const;
237 const css::uno::Reference< css::container::XNameContainer> & GetPageStyles()
const;
239 const css::uno::Reference< css::container::XNameContainer> & GetCellStyles()
const;
241 const css::uno::Reference< css::container::XIndexReplace > &
242 GetChapterNumbering()
const;
244 bool HasFrameByName(
const OUString& rName )
const;
246 bool IsDuplicateFrame(
const OUString& sName, sal_Int32 nX, sal_Int32 nY, sal_Int32 nWidth, sal_Int32 nHeight)
const;
247 void StoreLastImportedFrameName(
const OUString& rName);
248 void ClearLastImportedTextFrameName();
250 void ConnectFrameChains(
const OUString& rFrmName,
251 const OUString& rNextFrmName,
252 const css::uno::Reference< css::beans::XPropertySet >& rFrmPropSet );
255 GetParaImportPropertySetMapper()
const;
257 GetTextImportPropertySetMapper()
const;
259 GetSectionImportPropertySetMapper()
const;
261 GetRubyImportPropertySetMapper()
const;
274 void InsertBookmarkStartRange(
275 const OUString & sName,
276 const css::uno::Reference< css::text::XTextRange> & rRange,
277 OUString
const& i_rXmlId,
278 std::shared_ptr< ::xmloff::ParsedRDFaAttributes > &
282 bool FindAndRemoveBookmarkStartRange(
283 const OUString & sName,
284 css::uno::Reference< css::text::XTextRange> & o_rRange,
286 std::shared_ptr< ::xmloff::ParsedRDFaAttributes > & o_rpRDFaAttributes);
288 void pushFieldCtx(
const OUString& name,
const OUString& type );
289 css::uno::Reference<css::text::XFormField> popFieldCtx();
290 void addFieldParam(
const OUString& name,
const OUString& value );
291 void setCurrentFieldParamsTo(css::uno::Reference< css::text::XFormField>
const &xFormField);
292 ::std::pair<OUString, OUString> getCurrentFieldType()
const;
293 css::uno::Reference<css::text::XTextRange> getCurrentFieldStart()
const;
294 bool hasCurrentFieldSeparator()
const;
295 bool hasCurrentFieldCtx()
const;
301 void InsertFootnoteID(
const OUString& sXMLId, sal_Int16 nAPIId);
306 void ProcessFootnoteReference(
307 const OUString& sXMLId,
308 const css::uno::Reference< css::beans::XPropertySet> & xPropSet);
313 void InsertSequenceID(
const OUString& sXMLId,
314 const OUString& sName,
319 void ProcessSequenceReference(
320 const OUString& sXMLId,
321 const css::uno::Reference< css::beans::XPropertySet> & xPropSet);
323 bool IsInFrame()
const;
324 virtual bool IsInHeaderFooter()
const;
326 virtual css::uno::Reference< css::beans::XPropertySet>
327 createAndInsertOLEObject( SvXMLImport& rImport,
328 const OUString& rHRef,
329 const OUString &rStyleName,
330 const OUString &rTblName,
331 sal_Int32 nWidth, sal_Int32 nHeight );
333 virtual css::uno::Reference< css::beans::XPropertySet>
334 createAndInsertOOoLink( SvXMLImport& rImport,
335 const OUString& rHRef,
336 const OUString &rStyleName,
337 const OUString &rTblName,
338 sal_Int32 nWidth, sal_Int32 nHeight );
340 virtual css::uno::Reference< css::beans::XPropertySet>
341 createAndInsertApplet(
342 const OUString &rName,
343 const OUString &rCode,
345 const OUString& rHRef,
346 sal_Int32 nWidth, sal_Int32 nHeight );
348 virtual css::uno::Reference< css::beans::XPropertySet>
349 createAndInsertPlugin(
350 const OUString &rMimeType,
351 const OUString& rHRef,
352 sal_Int32 nWidth, sal_Int32 nHeight );
354 virtual css::uno::Reference< css::beans::XPropertySet>
355 createAndInsertFloatingFrame(
356 const OUString &rName,
357 const OUString &rHRef,
358 const OUString &rStyleName,
359 sal_Int32 nWidth, sal_Int32 nHeight );
361 virtual void endAppletOrPlugin(
362 const css::uno::Reference< css::beans::XPropertySet> &rPropSet,
363 ::std::map < const OUString, OUString > &rParamMap );
371 virtual void RedlineAdd(
373 const OUString& rType,
377 const OUString& rAuthor,
379 const OUString& rComment,
381 const css::util::DateTime& rDateTime,
383 bool bMergeLastParagraph);
385 virtual css::uno::Reference< css::text::XTextCursor> RedlineCreateText(
387 css::uno::Reference< css::text::XTextCursor > & rOldCursor,
389 const OUString& rId);
391 virtual void RedlineSetCursor(
397 bool bIsOutsideOfParagraph);
399 virtual void RedlineAdjustStartNodeCursor();
400 virtual void SetShowChanges(
bool bShowChanges );
401 virtual void SetRecordChanges(
bool bRecordChanges );
402 virtual void SetChangesProtectionKey(
403 const css::uno::Sequence<sal_Int8> & rProtectionKey );
406 OUString
const & GetOpenRedlineId()
const;
408 void SetOpenRedlineId( OUString
const & rId);
410 void ResetOpenRedlineId();
414 void SetInsideDeleteContext(
bool const bNew);
417 bool IsInsideDeleteContext()
const;
419 SvXMLImport & GetXMLImport();
425 void PushListContext();
427 void PopListContext();
429 void SetCellParaStyleDefault(OUString
const& rNewValue);
430 OUString
const& GetCellParaStyleDefault()
const;
432 void AddCrossRefHeadingMapping(OUString
const& rFrom, OUString
const& rTo);
433 void MapCrossRefHeadingFieldsHorribly();
435 void setBookmarkAttributes(OUString
const& bookmark,
bool hidden, OUString
const& condition);
436 bool getBookmarkHidden(OUString
const& bookmark)
const;
437 const OUString& getBookmarkCondition(OUString
const& bookmark)
const;
This class deliberately does not support XWeak, to improve performance when loading large documents.
Import <script:events> element.
This class maintains an OUString->sal_Int16 mapping for cases in which an XPropertySet needs to be fi...
XMLTextImportHelper(css::uno::Reference< css::frame::XModel > const &rModel, SvXMLImport &rImport, bool const bInsertMode=false, bool const bStylesOnlyMode=false, bool const bProgress=false, bool const bBlockMode=false, bool const bOrganizerMode=false)
XMLTextImportHelper & operator=(const XMLTextImportHelper &)=delete
XMLTextImportHelper(const XMLTextImportHelper &)=delete
std::unique_ptr< Impl > m_xImpl
std::shared_ptr< BackpatcherImpl > m_xBackpatcherImpl
class SAL_NO_VTABLE XPropertySet
ww8::ParaStyles GetParaStyles(const SwDoc &rDoc)
rtl::Reference< XMLImportContext > CreateTextChildContext(XMLImport &rImport, std::u16string_view rName, bool bTopLevel=false)
VarType
variable type (for XMLSetVarFieldImportContext)