Kaydet (Commit) 961e319d authored tarafından Miklos Vajna's avatar Miklos Vajna

DOCX filter: handle numbering style's qFormat, rsid and friends

Change-Id: Ia261995b98e2108ab673c7b240a1aa822d3db96e
üst d6325980
...@@ -1314,6 +1314,9 @@ DECLARE_OOXML_TEST(testStyleInheritance, "style-inheritance.docx") ...@@ -1314,6 +1314,9 @@ DECLARE_OOXML_TEST(testStyleInheritance, "style-inheritance.docx")
// Additional char style properties should be also roundtripped. // Additional char style properties should be also roundtripped.
assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='DefaultParagraphFont']", "default", "1"); assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='DefaultParagraphFont']", "default", "1");
// Finally check the same for numbering styles.
assertXPath(pXmlStyles, "/w:styles/w:style[@w:styleId='NoList']", "default", "1");
} }
DECLARE_OOXML_TEST(testCalendar1, "calendar1.docx") DECLARE_OOXML_TEST(testCalendar1, "calendar1.docx")
......
...@@ -3596,11 +3596,17 @@ void DocxAttributeOutput::StartStyle( const OUString& rName, StyleType eType, ...@@ -3596,11 +3596,17 @@ void DocxAttributeOutput::StartStyle( const OUString& rName, StyleType eType,
bool bQFormat = false, bUnhideWhenUsed = false, bSemiHidden = false, bLocked = false, bDefault = false, bCustomStyle = false; bool bQFormat = false, bUnhideWhenUsed = false, bSemiHidden = false, bLocked = false, bDefault = false, bCustomStyle = false;
OUString aLink, aRsid, aUiPriority; OUString aLink, aRsid, aUiPriority;
FastAttributeList* pStyleAttributeList = m_pSerializer->createAttrList(); FastAttributeList* pStyleAttributeList = m_pSerializer->createAttrList();
uno::Any aAny;
if (eType == STYLE_TYPE_PARA || eType == STYLE_TYPE_CHAR) if (eType == STYLE_TYPE_PARA || eType == STYLE_TYPE_CHAR)
{ {
const SwFmt* pFmt = m_rExport.pStyles->GetSwFmt(nId); const SwFmt* pFmt = m_rExport.pStyles->GetSwFmt(nId);
uno::Any aAny;
pFmt->GetGrabBagItem(aAny); pFmt->GetGrabBagItem(aAny);
}
else
{
const SwNumRule* pRule = m_rExport.pStyles->GetSwNumRule(nId);
pRule->GetGrabBagItem(aAny);
}
const uno::Sequence<beans::PropertyValue>& rGrabBag = aAny.get< uno::Sequence<beans::PropertyValue> >(); const uno::Sequence<beans::PropertyValue>& rGrabBag = aAny.get< uno::Sequence<beans::PropertyValue> >();
for (sal_Int32 i = 0; i < rGrabBag.getLength(); ++i) for (sal_Int32 i = 0; i < rGrabBag.getLength(); ++i)
...@@ -3626,7 +3632,6 @@ void DocxAttributeOutput::StartStyle( const OUString& rName, StyleType eType, ...@@ -3626,7 +3632,6 @@ void DocxAttributeOutput::StartStyle( const OUString& rName, StyleType eType,
else else
SAL_WARN("sw.ww8", "Unhandled style property: " << rGrabBag[i].Name); SAL_WARN("sw.ww8", "Unhandled style property: " << rGrabBag[i].Name);
} }
}
const char* pType = 0; const char* pType = 0;
switch (eType) switch (eType)
......
...@@ -400,12 +400,6 @@ PropertyMapPtr StyleSheetTable::GetDefaultCharProps() ...@@ -400,12 +400,6 @@ PropertyMapPtr StyleSheetTable::GetDefaultCharProps()
return m_pImpl->m_pDefaultCharProps; return m_pImpl->m_pDefaultCharProps;
} }
// Does the given style type support InteropGrabBag?
bool lcl_wantGrabBag(StyleType eType)
{
return eType == STYLE_TYPE_TABLE || eType == STYLE_TYPE_PARA || eType == STYLE_TYPE_CHAR;
}
void StyleSheetTable::lcl_attribute(Id Name, Value & val) void StyleSheetTable::lcl_attribute(Id Name, Value & val)
{ {
OSL_ENSURE( m_pImpl->m_pCurrentEntry, "current entry has to be set here"); OSL_ENSURE( m_pImpl->m_pCurrentEntry, "current entry has to be set here");
...@@ -491,7 +485,7 @@ void StyleSheetTable::lcl_attribute(Id Name, Value & val) ...@@ -491,7 +485,7 @@ void StyleSheetTable::lcl_attribute(Id Name, Value & val)
break; break;
case NS_ooxml::LN_CT_Style_default: case NS_ooxml::LN_CT_Style_default:
m_pImpl->m_pCurrentEntry->bIsDefaultStyle = (nIntValue != 0); m_pImpl->m_pCurrentEntry->bIsDefaultStyle = (nIntValue != 0);
if(lcl_wantGrabBag(m_pImpl->m_pCurrentEntry->nStyleTypeCode)) if (m_pImpl->m_pCurrentEntry->nStyleTypeCode != STYLE_TYPE_UNKNOWN)
{ {
beans::PropertyValue aValue; beans::PropertyValue aValue;
aValue.Name = "default"; aValue.Name = "default";
...@@ -500,7 +494,7 @@ void StyleSheetTable::lcl_attribute(Id Name, Value & val) ...@@ -500,7 +494,7 @@ void StyleSheetTable::lcl_attribute(Id Name, Value & val)
} }
break; break;
case NS_ooxml::LN_CT_Style_customStyle: case NS_ooxml::LN_CT_Style_customStyle:
if(lcl_wantGrabBag(m_pImpl->m_pCurrentEntry->nStyleTypeCode)) if (m_pImpl->m_pCurrentEntry->nStyleTypeCode != STYLE_TYPE_UNKNOWN)
{ {
beans::PropertyValue aValue; beans::PropertyValue aValue;
aValue.Name = "customStyle"; aValue.Name = "customStyle";
...@@ -623,7 +617,7 @@ void StyleSheetTable::lcl_sprm(Sprm & rSprm) ...@@ -623,7 +617,7 @@ void StyleSheetTable::lcl_sprm(Sprm & rSprm)
case NS_ooxml::LN_CT_Style_uiPriority: case NS_ooxml::LN_CT_Style_uiPriority:
case NS_ooxml::LN_CT_Style_link: case NS_ooxml::LN_CT_Style_link:
case NS_ooxml::LN_CT_Style_locked: case NS_ooxml::LN_CT_Style_locked:
if(lcl_wantGrabBag(m_pImpl->m_pCurrentEntry->nStyleTypeCode)) if (m_pImpl->m_pCurrentEntry->nStyleTypeCode != STYLE_TYPE_UNKNOWN)
{ {
StyleSheetEntryPtr pEntry = m_pImpl->m_pCurrentEntry; StyleSheetEntryPtr pEntry = m_pImpl->m_pCurrentEntry;
beans::PropertyValue aValue; beans::PropertyValue aValue;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment