24 , m_rParagraphStyles(
eType == StyleType_AUTOMATIC ? GetImport().GetAutomaticParagraphStyles()
25 : GetImport().GetParagraphStyles())
26 , m_rTextStyles(
eType == StyleType_AUTOMATIC ? GetImport().GetAutomaticTextStyles()
27 : GetImport().GetTextStyles())
28 , m_rCellStyles(
eType == StyleType_AUTOMATIC ? GetImport().GetAutomaticCellStyles()
29 : GetImport().GetCellStyles())
30 , m_rColumnStyles(
eType == StyleType_AUTOMATIC ? GetImport().GetAutomaticColumnStyles()
31 : GetImport().GetColumnStyles())
32 , m_rRowStyles(
eType == StyleType_AUTOMATIC ? GetImport().GetAutomaticRowStyles()
33 : GetImport().GetRowStyles())
34 , m_rTableStyles(
eType == StyleType_AUTOMATIC ? GetImport().GetAutomaticTableStyles()
35 : GetImport().GetTableStyles())
36 , m_rGraphicStyles(
eType == StyleType_AUTOMATIC ? GetImport().GetAutomaticGraphicStyles()
37 : GetImport().GetGraphicStyles())
38 , m_rPageLayouts(GetImport().GetPageLayouts())
39 , m_rMasterStyles(GetImport().GetMasterStyles())
44 const OUString& rName,
const css::uno::Reference<css::xml::sax::XAttributeList>& )
46 if (rName ==
"style:style" || rName ==
"style:page-layout" || rName ==
"style:master-page")
104 startElement(
const OUString& rName,
105 const css::uno::Reference<css::xml::sax::XAttributeList>& xAttribs)
override;
108 CreateChildContext(
const OUString& rName,
109 const css::uno::Reference<css::xml::sax::XAttributeList>& xAttribs)
override;
118class XMLFontFaceSrcContext :
public XMLImportContext
121 XMLFontFaceSrcContext(XMLImport& rImport, XMLFontFaceContext& rFontFace);
124 CreateChildContext(
const OUString& rName,
125 const css::uno::Reference<css::xml::sax::XAttributeList>& xAttribs)
override;
132class XMLFontFaceUriContext :
public XMLImportContext
135 XMLFontFaceUriContext(XMLImport& rImport, XMLFontFaceContext
const& rFontFace);
137 startElement(
const OUString& rName,
138 const css::uno::Reference<css::xml::sax::XAttributeList>& xAttribs)
override;
139 void SAL_CALL endElement(
const OUString& rName)
override;
142 CreateChildContext(
const OUString& rName,
143 const css::uno::Reference<css::xml::sax::XAttributeList>& xAttribs)
override;
145 librevenge::RVNGPropertyList& GetPropertyList() {
return maPropertyList; }
153class XMLFontFaceFormatContext :
public XMLImportContext
156 XMLFontFaceFormatContext(XMLImport& rImport, XMLFontFaceUriContext& rFontFaceUri);
158 startElement(
const OUString& rName,
159 const css::uno::Reference<css::xml::sax::XAttributeList>& xAttribs)
override;
166XMLFontFaceFormatContext::XMLFontFaceFormatContext(XMLImport& rImport,
167 XMLFontFaceUriContext& rFontFaceUri)
168 : XMLImportContext(rImport)
173void XMLFontFaceFormatContext::startElement(
174 const OUString& ,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttribs)
176 for (sal_Int16 i = 0;
i < xAttribs->getLength(); ++
i)
178 const OUString& rAttributeName = xAttribs->getNameByIndex(i);
179 const OUString& rAttributeValue = xAttribs->getValueByIndex(i);
180 if (rAttributeName ==
"svg:string")
182 OString aAttributeValueU8 =
OUStringToOString(rAttributeValue, RTL_TEXTENCODING_UTF8);
183 mrFontFaceUri.GetPropertyList().insert(
"librevenge:mime-type",
184 aAttributeValueU8.getStr());
189XMLFontFaceUriContext::XMLFontFaceUriContext(XMLImport& rImport,
190 XMLFontFaceContext
const& rFontFace)
191 : XMLImportContext(rImport)
197void XMLFontFaceUriContext::startElement(
198 const OUString& ,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttribs)
200 for (sal_Int16 i = 0;
i < xAttribs->getLength(); ++
i)
202 const OUString& rAttributeName = xAttribs->getNameByIndex(i);
203 const OUString& rAttributeValue = xAttribs->getValueByIndex(i);
204 if (rAttributeName ==
"loext:font-style")
206 OString aAttributeValueU8 =
OUStringToOString(rAttributeValue, RTL_TEXTENCODING_UTF8);
207 maPropertyList.insert(
"librevenge:font-style", aAttributeValueU8.getStr());
209 else if (rAttributeName ==
"loext:font-weight")
211 OString aAttributeValueU8 =
OUStringToOString(rAttributeValue, RTL_TEXTENCODING_UTF8);
212 maPropertyList.insert(
"librevenge:font-weight", aAttributeValueU8.getStr());
217void XMLFontFaceUriContext::endElement(
const OUString& )
225 const OUString& rName,
const css::uno::Reference<css::xml::sax::XAttributeList>& )
227 if (rName ==
"office:binary-data")
232 if (rName ==
"svg:font-face-format")
233 return new XMLFontFaceFormatContext(GetImport(), *
this);
235 SAL_WARN(
"writerperfect",
"XMLFontFaceUriContext::CreateChildContext: unhandled " << rName);
239XMLFontFaceSrcContext::XMLFontFaceSrcContext(XMLImport& rImport, XMLFontFaceContext& rFontFace)
240 : XMLImportContext(rImport)
246 const OUString& rName,
const css::uno::Reference<css::xml::sax::XAttributeList>& )
248 if (rName ==
"svg:font-face-uri")
249 return new XMLFontFaceUriContext(GetImport(),
mrFontFace);
250 SAL_WARN(
"writerperfect",
"XMLFontFaceSrcContext::CreateChildContext: unhandled " << rName);
254XMLFontFaceContext::XMLFontFaceContext(XMLImport& rImport)
255 : XMLImportContext(rImport)
259void XMLFontFaceContext::startElement(
260 const OUString& ,
const css::uno::Reference<css::xml::sax::XAttributeList>& xAttribs)
262 for (sal_Int16 i = 0;
i < xAttribs->getLength(); ++
i)
264 const OUString& rAttributeName = xAttribs->getNameByIndex(i);
265 const OUString& rAttributeValue = xAttribs->getValueByIndex(i);
266 if (rAttributeName ==
"style:name")
272 const OUString& rName,
const css::uno::Reference<css::xml::sax::XAttributeList>& )
274 if (rName ==
"svg:font-face-src")
275 return new XMLFontFaceSrcContext(GetImport(), *
this);
276 SAL_WARN(
"writerperfect",
"XMLFontFaceContext::CreateChildContext: unhandled " << rName);
280XMLFontFaceDeclsContext::XMLFontFaceDeclsContext(
XMLImport& rImport)
286 const OUString& rName,
const css::uno::Reference<css::xml::sax::XAttributeList>& )
288 if (rName ==
"style:font-face")
289 return new XMLFontFaceContext(
GetImport());
rtl::Reference< XMLImportContext > CreateChildContext(const OUString &rName, const css::uno::Reference< css::xml::sax::XAttributeList > &xAttribs) override
Base class for a handler of a single XML element during ODF -> librevenge conversion.
ODT export feeds this class to make librevenge calls.
Handler for <style:style>.
std::map< OUString, librevenge::RVNGPropertyList > & m_rColumnStyles
rtl::Reference< XMLImportContext > CreateChildContext(const OUString &rName, const css::uno::Reference< css::xml::sax::XAttributeList > &xAttribs) override
std::map< OUString, librevenge::RVNGPropertyList > & GetCurrentPageLayouts()
std::map< OUString, librevenge::RVNGPropertyList > & m_rGraphicStyles
std::map< OUString, librevenge::RVNGPropertyList > & GetCurrentColumnStyles()
std::map< OUString, librevenge::RVNGPropertyList > & GetCurrentRowStyles()
std::map< OUString, librevenge::RVNGPropertyList > & m_rParagraphStyles
std::map< OUString, librevenge::RVNGPropertyList > & m_rMasterStyles
std::map< OUString, librevenge::RVNGPropertyList > & GetCurrentMasterStyles()
std::map< OUString, librevenge::RVNGPropertyList > & m_rPageLayouts
std::map< OUString, librevenge::RVNGPropertyList > & GetCurrentTableStyles()
std::map< OUString, librevenge::RVNGPropertyList > & m_rCellStyles
std::map< OUString, librevenge::RVNGPropertyList > & GetCurrentGraphicStyles()
std::map< OUString, librevenge::RVNGPropertyList > & GetCurrentCellStyles()
std::map< OUString, librevenge::RVNGPropertyList > & GetCurrentParagraphStyles()
std::map< OUString, librevenge::RVNGPropertyList > & GetCurrentTextStyles()
std::map< OUString, librevenge::RVNGPropertyList > & m_rRowStyles
XMLStylesContext(XMLImport &rImport, StyleType eType)
std::map< OUString, librevenge::RVNGPropertyList > & m_rTextStyles
std::map< OUString, librevenge::RVNGPropertyList > & m_rTableStyles
virtual OUString GetName() const override
#define SAL_WARN(area, stream)
OString OUStringToOString(std::u16string_view str, ConnectionSettings const *settings)
rtl::Reference< XMLBase64ImportContext > mxBinaryData
librevenge::RVNGPropertyList maPropertyList
XMLFontFaceUriContext & mrFontFaceUri
XMLFontFaceContext & mrFontFace