sw/qa/extras/ooxmlexport/ooxmlexport.cxx | 3 ++ sw/source/filter/ww8/docxattributeoutput.cxx | 18 ++++++++++--- writerfilter/source/dmapper/StyleSheetTable.cxx | 33 ++++++++++++++++++------ 3 files changed, 43 insertions(+), 11 deletions(-)
New commits: commit 98fd70592463ac6cc4df3bb535230780d44b9fbc Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Nov 7 11:19:05 2013 +0100 DOCX filter: roundtrip paragraph style lock Change-Id: Id656e48c1600bb7b04e8566d5c0f3297f80a89d9 diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index a9e5624..974be7e 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -1306,6 +1306,7 @@ DECLARE_OOXML_TEST(testStyleInheritance, "style-inheritance.docx") assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='Normal']/w:rsid", "val", "00780346"); assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='Heading1']/w:link", "val", "Heading1Char"); + assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='Heading1']/w:locked", 1); } DECLARE_OOXML_TEST(testCalendar1, "calendar1.docx") diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index 2782d4c..d51fb00 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -3616,7 +3616,7 @@ void DocxAttributeOutput::StartStyle( const OUString& rName, StyleType eType, pFmt->GetGrabBagItem(aAny); const uno::Sequence<beans::PropertyValue>& rGrabBag = aAny.get< uno::Sequence<beans::PropertyValue> >(); - bool bQFormat = false, bUnhideWhenUsed = false; + bool bQFormat = false, bUnhideWhenUsed = false, bLocked = false; OUString aLink, aRsid, aUiPriority; for (sal_Int32 i = 0; i < rGrabBag.getLength(); ++i) { @@ -3630,6 +3630,8 @@ void DocxAttributeOutput::StartStyle( const OUString& rName, StyleType eType, aRsid = rGrabBag[i].Value.get<OUString>(); else if (rGrabBag[i].Name == "unhideWhenUsed") bUnhideWhenUsed = true; + else if (rGrabBag[i].Name == "locked") + bLocked = true; else SAL_WARN("sw.ww8", "Unhandled style property: " << rGrabBag[i].Name); } @@ -3646,6 +3648,8 @@ void DocxAttributeOutput::StartStyle( const OUString& rName, StyleType eType, m_pSerializer->singleElementNS(XML_w, XML_link, FSNS(XML_w, XML_val), OUStringToOString(aLink, RTL_TEXTENCODING_UTF8).getStr(), FSEND); + if (bLocked) + m_pSerializer->singleElementNS(XML_w, XML_locked, FSEND); if (!aRsid.isEmpty()) m_pSerializer->singleElementNS(XML_w, XML_rsid, FSNS(XML_w, XML_val), OUStringToOString(aRsid, RTL_TEXTENCODING_UTF8).getStr(), diff --git a/writerfilter/source/dmapper/StyleSheetTable.cxx b/writerfilter/source/dmapper/StyleSheetTable.cxx index 741dd9f..1092bac 100644 --- a/writerfilter/source/dmapper/StyleSheetTable.cxx +++ b/writerfilter/source/dmapper/StyleSheetTable.cxx @@ -590,7 +590,6 @@ void StyleSheetTable::lcl_sprm(Sprm & rSprm) case NS_ooxml::LN_CT_Style_aliases: case NS_ooxml::LN_CT_Style_autoRedefine: case NS_ooxml::LN_CT_Style_hidden: - case NS_ooxml::LN_CT_Style_locked: case NS_ooxml::LN_CT_Style_personal: case NS_ooxml::LN_CT_Style_personalCompose: case NS_ooxml::LN_CT_Style_personalReply: @@ -616,6 +615,7 @@ void StyleSheetTable::lcl_sprm(Sprm & rSprm) case NS_ooxml::LN_CT_Style_unhideWhenUsed: case NS_ooxml::LN_CT_Style_uiPriority: case NS_ooxml::LN_CT_Style_link: + case NS_ooxml::LN_CT_Style_locked: if(m_pImpl->m_pCurrentEntry->nStyleTypeCode == STYLE_TYPE_TABLE || m_pImpl->m_pCurrentEntry->nStyleTypeCode == STYLE_TYPE_PARA) { StyleSheetEntryPtr pEntry = m_pImpl->m_pCurrentEntry; @@ -655,6 +655,9 @@ void StyleSheetTable::lcl_sprm(Sprm & rSprm) aValue.Value = uno::makeAny(sStringValue); } break; + case NS_ooxml::LN_CT_Style_locked: + aValue.Name = "locked"; + break; default: break; } commit fc46d7f60b5cd8901115769f44b054da8b2a3100 Author: Miklos Vajna <vmik...@collabora.co.uk> Date: Thu Nov 7 11:08:10 2013 +0100 DOCX filter: roundtrip paragraph style link Change-Id: Ide29e98b73410d8917742f2eeb15bdcbd9de87cc diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx index d137de54..a9e5624 100644 --- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx +++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx @@ -1304,6 +1304,8 @@ DECLARE_OOXML_TEST(testStyleInheritance, "style-inheritance.docx") assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='ListParagraph']/w:uiPriority", "val", "34"); assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='Normal']/w:qFormat", 1); assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='Normal']/w:rsid", "val", "00780346"); + + assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='Heading1']/w:link", "val", "Heading1Char"); } DECLARE_OOXML_TEST(testCalendar1, "calendar1.docx") diff --git a/sw/source/filter/ww8/docxattributeoutput.cxx b/sw/source/filter/ww8/docxattributeoutput.cxx index bd49937..2782d4c 100644 --- a/sw/source/filter/ww8/docxattributeoutput.cxx +++ b/sw/source/filter/ww8/docxattributeoutput.cxx @@ -3617,17 +3617,19 @@ void DocxAttributeOutput::StartStyle( const OUString& rName, StyleType eType, const uno::Sequence<beans::PropertyValue>& rGrabBag = aAny.get< uno::Sequence<beans::PropertyValue> >(); bool bQFormat = false, bUnhideWhenUsed = false; - OUString aRsid, aUiPriority; + OUString aLink, aRsid, aUiPriority; for (sal_Int32 i = 0; i < rGrabBag.getLength(); ++i) { if (rGrabBag[i].Name == "uiPriority") aUiPriority = rGrabBag[i].Value.get<OUString>(); else if (rGrabBag[i].Name == "qFormat") bQFormat = true; + else if (rGrabBag[i].Name == "link") + aLink = rGrabBag[i].Value.get<OUString>(); else if (rGrabBag[i].Name == "rsid") aRsid = rGrabBag[i].Value.get<OUString>(); - else if (rGrabBag[i].Name == "unhideWhenUsed") - bUnhideWhenUsed = true; + else if (rGrabBag[i].Name == "unhideWhenUsed") + bUnhideWhenUsed = true; else SAL_WARN("sw.ww8", "Unhandled style property: " << rGrabBag[i].Name); } @@ -3640,6 +3642,10 @@ void DocxAttributeOutput::StartStyle( const OUString& rName, StyleType eType, m_pSerializer->singleElementNS(XML_w, XML_qFormat, FSEND); if (bUnhideWhenUsed) m_pSerializer->singleElementNS(XML_w, XML_unhideWhenUsed, FSEND); + if (!aLink.isEmpty()) + m_pSerializer->singleElementNS(XML_w, XML_link, + FSNS(XML_w, XML_val), OUStringToOString(aLink, RTL_TEXTENCODING_UTF8).getStr(), + FSEND); if (!aRsid.isEmpty()) m_pSerializer->singleElementNS(XML_w, XML_rsid, FSNS(XML_w, XML_val), OUStringToOString(aRsid, RTL_TEXTENCODING_UTF8).getStr(), diff --git a/writerfilter/source/dmapper/StyleSheetTable.cxx b/writerfilter/source/dmapper/StyleSheetTable.cxx index 85626e1..741dd9f 100644 --- a/writerfilter/source/dmapper/StyleSheetTable.cxx +++ b/writerfilter/source/dmapper/StyleSheetTable.cxx @@ -588,7 +588,6 @@ void StyleSheetTable::lcl_sprm(Sprm & rSprm) m_pImpl->m_pCurrentEntry->sNextStyleIdentifier = sStringValue; break; case NS_ooxml::LN_CT_Style_aliases: - case NS_ooxml::LN_CT_Style_link: case NS_ooxml::LN_CT_Style_autoRedefine: case NS_ooxml::LN_CT_Style_hidden: case NS_ooxml::LN_CT_Style_locked: @@ -616,11 +615,14 @@ void StyleSheetTable::lcl_sprm(Sprm & rSprm) case NS_ooxml::LN_CT_Style_semiHidden: case NS_ooxml::LN_CT_Style_unhideWhenUsed: case NS_ooxml::LN_CT_Style_uiPriority: + case NS_ooxml::LN_CT_Style_link: if(m_pImpl->m_pCurrentEntry->nStyleTypeCode == STYLE_TYPE_TABLE || m_pImpl->m_pCurrentEntry->nStyleTypeCode == STYLE_TYPE_PARA) { StyleSheetEntryPtr pEntry = m_pImpl->m_pCurrentEntry; beans::PropertyValue aValue; - if (nSprmId == NS_ooxml::LN_CT_Style_rsid) + switch (nSprmId) + { + case NS_ooxml::LN_CT_Style_rsid: { // We want the rsid as a hex string, but always with the length of 8. OUStringBuffer aBuf = OUString::number(nIntValue, 16); @@ -631,17 +633,31 @@ void StyleSheetTable::lcl_sprm(Sprm & rSprm) aValue.Name = "rsid"; aValue.Value = uno::makeAny(aStr.makeStringAndClear()); } - else if (nSprmId == NS_ooxml::LN_CT_Style_qFormat) + break; + case NS_ooxml::LN_CT_Style_qFormat: aValue.Name = "qFormat"; - else if (nSprmId == NS_ooxml::LN_CT_Style_semiHidden) + break; + case NS_ooxml::LN_CT_Style_semiHidden: aValue.Name = "semiHidden"; - else if (nSprmId == NS_ooxml::LN_CT_Style_unhideWhenUsed) + break; + case NS_ooxml::LN_CT_Style_unhideWhenUsed: aValue.Name = "unhideWhenUsed"; - else + break; + case NS_ooxml::LN_CT_Style_uiPriority: { aValue.Name = "uiPriority"; aValue.Value = uno::makeAny(OUString::number(nIntValue)); } + break; + case NS_ooxml::LN_CT_Style_link: + { + aValue.Name = "link"; + aValue.Value = uno::makeAny(sStringValue); + } + break; + default: + break; + } pEntry->AppendInteropGrabBag(aValue); } break; _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits