diff options
Diffstat (limited to 'writerperfect/source/writer/exp/xmltbli.cxx')
-rw-r--r-- | writerperfect/source/writer/exp/xmltbli.cxx | 23 |
1 files changed, 20 insertions, 3 deletions
diff --git a/writerperfect/source/writer/exp/xmltbli.cxx b/writerperfect/source/writer/exp/xmltbli.cxx index 19ea15d502a8..bec52dab0f22 100644 --- a/writerperfect/source/writer/exp/xmltbli.cxx +++ b/writerperfect/source/writer/exp/xmltbli.cxx @@ -183,10 +183,9 @@ rtl::Reference<XMLImportContext> XMLTableContext::CreateChildContext(const OUStr if (!m_bTableOpened) { - librevenge::RVNGPropertyList aPropertyList; if (!m_aColumns.empty()) - aPropertyList.insert("librevenge:table-columns", m_aColumns); - mrImport.GetGenerator().openTable(aPropertyList); + m_aPropertyList.insert("librevenge:table-columns", m_aColumns); + mrImport.GetGenerator().openTable(m_aPropertyList); m_bTableOpened = true; } @@ -198,6 +197,24 @@ rtl::Reference<XMLImportContext> XMLTableContext::CreateChildContext(const OUStr return nullptr; } +void XMLTableContext::startElement(const OUString &/*rName*/, const css::uno::Reference<css::xml::sax::XAttributeList> &xAttribs) +{ + for (sal_Int16 i = 0; i < xAttribs->getLength(); ++i) + { + const OUString &rAttributeName = xAttribs->getNameByIndex(i); + const OUString &rAttributeValue = xAttribs->getValueByIndex(i); + + if (rAttributeName == "table:style-name") + FillStyles(rAttributeValue, mrImport.GetAutomaticTableStyles(), mrImport.GetTableStyles(), m_aPropertyList); + else + { + OString sName = OUStringToOString(rAttributeName, RTL_TEXTENCODING_UTF8); + OString sValue = OUStringToOString(rAttributeValue, RTL_TEXTENCODING_UTF8); + m_aPropertyList.insert(sName.getStr(), sValue.getStr()); + } + } +} + void XMLTableContext::endElement(const OUString &/*rName*/) { mrImport.GetGenerator().closeTable(); |