[Libreoffice-commits] core.git: 7 commits - oox/source sw/qa sw/source writerfilter/inc writerfilter/source

Tomaž Vajngerl tomaz.vajngerl at collabora.com
Fri Feb 28 11:25:12 PST 2014


 oox/source/token/tokens.txt                        |    1 
 sw/qa/extras/ooxmlexport/ooxmlexport.cxx           |   38 ++++++++++++++++
 sw/source/filter/ww8/docxexport.cxx                |   48 +++++++++++++++++----
 sw/source/filter/ww8/docxexport.hxx                |    4 -
 writerfilter/inc/dmapper/DomainMapper.hxx          |    1 
 writerfilter/source/dmapper/DomainMapper.cxx       |    5 ++
 writerfilter/source/dmapper/SettingsTable.cxx      |   39 ++++++++++++++++-
 writerfilter/source/dmapper/SettingsTable.hxx      |    2 
 writerfilter/source/dmapper/TextEffectsHandler.cxx |    8 +++
 writerfilter/source/filter/ImportFilter.cxx        |    6 ++
 writerfilter/source/ooxml/model.xml                |   36 +++++++++++++++
 11 files changed, 174 insertions(+), 14 deletions(-)

New commits:
commit 79341203763b5cbcd8fee675588a0788b06af2fd
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Fri Feb 28 14:25:27 2014 +0100

    ooxml: rountrip test for w:compatSettings and mc:Ignorable
    
    Change-Id: I69a602f3a5eb83f116113b1dbe8bb9f208bd5e5d

diff --git a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
index 69311ca..06b6fa5 100644
--- a/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
+++ b/sw/qa/extras/ooxmlexport/ooxmlexport.cxx
@@ -2881,6 +2881,44 @@ DECLARE_OOXMLEXPORT_TEST(testW14TextEffects_StylisticSets_CntxtAlts, "TextEffect
 
 }
 
+DECLARE_OOXMLEXPORT_TEST(testMcIgnorable, "TextEffects_StylisticSets_CntxtAlts.docx")
+{
+    xmlDocPtr pXmlDoc = parseExport("word/document.xml");
+    if (!pXmlDoc)
+        return;
+
+     assertXPath(pXmlDoc, "/w:document", "Ignorable", "w14 wp14");
+}
+
+DECLARE_OOXMLEXPORT_TEST(testCompatSettingsForW14, "TextEffects_StylisticSets_CntxtAlts.docx")
+{
+    xmlDocPtr pXmlDoc = parseExport("word/settings.xml");
+    if (!pXmlDoc)
+        return;
+
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting", 5);
+
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[1]", "name", "compatibilityMode");
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[1]", "uri", "http://schemas.microsoft.com/office/word");
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[1]", "val", "15"); // document was made with Word2013 -> 15
+
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[2]", "name", "overrideTableStyleFontSizeAndJustification");
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[2]", "uri", "http://schemas.microsoft.com/office/word");
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[2]", "val", "1");
+
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[3]", "name", "enableOpenTypeFeatures");
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[3]", "uri", "http://schemas.microsoft.com/office/word");
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[3]", "val", "1");
+
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[4]", "name", "doNotFlipMirrorIndents");
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[4]", "uri", "http://schemas.microsoft.com/office/word");
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[4]", "val", "1");
+
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[5]", "name", "differentiateMultirowTableHeaders");
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[5]", "uri", "http://schemas.microsoft.com/office/word");
+    assertXPath(pXmlDoc, "/w:settings/w:compat/w:compatSetting[5]", "val", "1");
+}
+
 #endif
 
 CPPUNIT_PLUGIN_IMPLEMENT();
commit a783421ef0ecb53b7f4240f5a5e4116d3e9963b3
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Fri Feb 28 14:23:32 2014 +0100

    ooxml export: write w:compatSettings if present in GrabBag
    
    Change-Id: Ie5f3ba8f12ca8d5b9729c5bfa13da3b34dbfda2d

diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx
index aff296f..b68368c 100644
--- a/sw/source/filter/ww8/docxexport.cxx
+++ b/sw/source/filter/ww8/docxexport.cxx
@@ -869,7 +869,38 @@ void DocxExport::WriteSettings()
                                       FSNS( XML_w, XML_eastAsia ), OUStringToOString( aValues[1], RTL_TEXTENCODING_UTF8 ).getStr(),
                                       FSNS( XML_w, XML_bidi ), OUStringToOString( aValues[2], RTL_TEXTENCODING_UTF8 ).getStr(),
                                       FSEND );
-                break;
+            }
+            else if ( propList[i].Name == "CompatSettings" )
+            {
+                pFS->startElementNS( XML_w, XML_compat, FSEND );
+
+                uno::Sequence< beans::PropertyValue > aCompatSettingsSequence;
+                propList[i].Value >>= aCompatSettingsSequence;
+                for(sal_Int32 j=0; j < aCompatSettingsSequence.getLength(); ++j)
+                {
+                    uno::Sequence< beans::PropertyValue > aCompatSetting;
+                    aCompatSettingsSequence[j].Value >>= aCompatSetting;
+                    OUString aName;
+                    OUString aUri;
+                    OUString aValue;
+
+                    for(sal_Int32 k=0; k < aCompatSetting.getLength(); ++k)
+                    {
+                        if( aCompatSetting[k].Name == "name" )
+                            aCompatSetting[k].Value >>= aName;
+                        else if( aCompatSetting[k].Name == "uri" )
+                            aCompatSetting[k].Value >>= aUri;
+                        else if( aCompatSetting[k].Name == "val" )
+                            aCompatSetting[k].Value >>= aValue;
+                    }
+                    pFS->singleElementNS( XML_w, XML_compatSetting,
+                        FSNS( XML_w, XML_name ), OUStringToOString(aName, RTL_TEXTENCODING_UTF8).getStr(),
+                        FSNS( XML_w, XML_uri ),  OUStringToOString(aUri, RTL_TEXTENCODING_UTF8).getStr(),
+                        FSNS( XML_w, XML_val ),  OUStringToOString(aValue, RTL_TEXTENCODING_UTF8).getStr(),
+                        FSEND);
+                }
+
+                pFS->endElementNS( XML_w, XML_compat );
             }
         }
     }
commit 4b4a1b8095332a13b975553b19c4a03ce1072eaa
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Fri Feb 28 13:02:59 2014 +0100

    ooxml export: write mc:Ignorable for w14 and wp14 namespace
    
    Change-Id: Ifc461da32fa732bafd3bab4d5bcb0760992c2679

diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx
index 3b55c1d..aff296f 100644
--- a/sw/source/filter/ww8/docxexport.cxx
+++ b/sw/source/filter/ww8/docxexport.cxx
@@ -1294,6 +1294,7 @@ XFastAttributeListRef DocxExport::MainXmlNamespaces( FSHelperPtr serializer )
     pAttr->add( FSNS( XML_xmlns, XML_mc ), "http://schemas.openxmlformats.org/markup-compatibility/2006" );
     pAttr->add( FSNS( XML_xmlns, XML_wp14 ), "http://schemas.microsoft.com/office/word/2010/wordprocessingDrawing" );
     pAttr->add( FSNS( XML_xmlns, XML_w14 ), "http://schemas.microsoft.com/office/word/2010/wordml" );
+    pAttr->add( FSNS( XML_mc, XML_Ignorable ), "w14 wp14" );
     return XFastAttributeListRef( pAttr );
 }
 
commit 8dd20b80ea75724812cee1b4b3c04c9b3f035e1b
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Fri Feb 28 13:01:22 2014 +0100

    ooxml export: rename member settings to m_aSettings
    
    Change-Id: Ic286df1c6d8bd611c7771482f91e5e375af3745c

diff --git a/sw/source/filter/ww8/docxexport.cxx b/sw/source/filter/ww8/docxexport.cxx
index 669b3c1..3b55c1d 100644
--- a/sw/source/filter/ww8/docxexport.cxx
+++ b/sw/source/filter/ww8/docxexport.cxx
@@ -255,7 +255,7 @@ void DocxExport::WriteHeadersFooters( sal_uInt8 nHeadFootFlags,
         WriteHeaderFooter( rFirstPageFmt, false, "first" );
 
     if ( nHeadFootFlags & ( nsHdFtFlags::WW8_FOOTER_EVEN | nsHdFtFlags::WW8_HEADER_EVEN ))
-        settings.evenAndOddHeaders = true;
+        m_aSettings.evenAndOddHeaders = true;
 
     // Turn OFF flag for 'Writing Headers \ Footers'
     m_pAttrOutput->SetWritingHeaderFooter( false );
@@ -413,7 +413,7 @@ void DocxExport::OutputDML(uno::Reference<drawing::XShape>& xShape)
 void DocxExport::ExportDocument_Impl()
 {
     // Set the 'Track Revisions' flag in the settings structure
-    settings.trackRevisions = 0 != ( nsRedlineMode_t::REDLINE_ON & mnRedlineMode );
+    m_aSettings.trackRevisions = 0 != ( nsRedlineMode_t::REDLINE_ON & mnRedlineMode );
 
     InitStyles();
 
@@ -780,7 +780,7 @@ void DocxExport::WriteProperties( )
 void DocxExport::WriteSettings()
 {
     SwViewShell *pViewShell(pDoc->GetCurrentViewShell());
-    if( !pViewShell && !settings.hasData() && !m_pAttrOutput->HasFootnotes() && !m_pAttrOutput->HasEndnotes())
+    if( !pViewShell && !m_aSettings.hasData() && !m_pAttrOutput->HasFootnotes() && !m_pAttrOutput->HasEndnotes())
         return;
 
     m_pFilter->addRelation( m_pDocumentFS->getOutputStream(),
@@ -807,7 +807,7 @@ void DocxExport::WriteSettings()
     }
 
     // Track Changes
-    if ( settings.trackRevisions )
+    if ( m_aSettings.trackRevisions )
         pFS->singleElementNS( XML_w, XML_trackRevisions, FSEND );
 
     // Mirror Margins
@@ -823,12 +823,12 @@ void DocxExport::WriteSettings()
         pFS->singleElementNS( XML_w, XML_embedSystemFonts, FSEND );
 
     // Default Tab Stop
-    if( settings.defaultTabStop != 0 )
+    if( m_aSettings.defaultTabStop != 0 )
         pFS->singleElementNS( XML_w, XML_defaultTabStop, FSNS( XML_w, XML_val ),
-            OString::number( settings.defaultTabStop).getStr(), FSEND );
+            OString::number( m_aSettings.defaultTabStop).getStr(), FSEND );
 
     // Even and Odd Headers
-    if( settings.evenAndOddHeaders )
+    if( m_aSettings.evenAndOddHeaders )
         pFS->singleElementNS( XML_w, XML_evenAndOddHeaders, FSEND );
 
     // Has Footnotes
diff --git a/sw/source/filter/ww8/docxexport.hxx b/sw/source/filter/ww8/docxexport.hxx
index 01679d1..8871ead 100644
--- a/sw/source/filter/ww8/docxexport.hxx
+++ b/sw/source/filter/ww8/docxexport.hxx
@@ -97,7 +97,7 @@ class DocxExport : public MSWordExportBase
     /// Exporter of drawings.
     DocxSdrExport* m_pSdrExport;
 
-    DocxSettingsData settings;
+    DocxSettingsData m_aSettings;
 
 public:
 
@@ -271,7 +271,7 @@ public:
     DocxSdrExport& SdrExporter();
 
     /// Set the document default tab stop.
-    void setDefaultTabStop( int stop ) { settings.defaultTabStop = stop; }
+    void setDefaultTabStop( int stop ) { m_aSettings.defaultTabStop = stop; }
 
 private:
     /// No copying.
commit acd5d5fc92f53ca1cfb48357c6b73260b73d56b3
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Fri Feb 28 12:57:42 2014 +0100

    writerfilter: put w:compatSettings into a document level GrabBag
    
    Change-Id: Iefb8ef14c61e7966098754b8f3395f994bb9bda7

diff --git a/writerfilter/inc/dmapper/DomainMapper.hxx b/writerfilter/inc/dmapper/DomainMapper.hxx
index 0a9ecbe..a2d6006 100644
--- a/writerfilter/inc/dmapper/DomainMapper.hxx
+++ b/writerfilter/inc/dmapper/DomainMapper.hxx
@@ -128,6 +128,7 @@ public:
     beans::PropertyValue getInteropGrabBag();
 
     uno::Sequence<beans::PropertyValue> GetThemeFontLangProperties() const;
+    css::uno::Sequence<css::beans::PropertyValue> GetCompatSettings() const;
 
     void HandleRedline( Sprm& rSprm );
 
diff --git a/writerfilter/source/dmapper/DomainMapper.cxx b/writerfilter/source/dmapper/DomainMapper.cxx
index 00b23ad..aa81f65 100644
--- a/writerfilter/source/dmapper/DomainMapper.cxx
+++ b/writerfilter/source/dmapper/DomainMapper.cxx
@@ -3177,6 +3177,11 @@ uno::Sequence<beans::PropertyValue> DomainMapper::GetThemeFontLangProperties() c
     return m_pImpl->GetSettingsTable()->GetThemeFontLangProperties();
 }
 
+uno::Sequence<beans::PropertyValue> DomainMapper::GetCompatSettings() const
+{
+    return m_pImpl->GetSettingsTable()->GetCompatSettings();
+}
+
 void DomainMapper::HandleRedline( Sprm& rSprm )
 {
     sal_uInt32 nSprmId = rSprm.getId();
diff --git a/writerfilter/source/dmapper/SettingsTable.cxx b/writerfilter/source/dmapper/SettingsTable.cxx
index f2c9023..27ff52d 100644
--- a/writerfilter/source/dmapper/SettingsTable.cxx
+++ b/writerfilter/source/dmapper/SettingsTable.cxx
@@ -76,6 +76,9 @@ struct SettingsTable_Impl
     bool                m_bMirrorMargin;
     uno::Sequence<beans::PropertyValue> m_pThemeFontLangProps;
 
+    uno::Sequence<beans::PropertyValue> m_pCompatSettings;
+    uno::Sequence<beans::PropertyValue> m_pCurrentCompatSetting;
+
     SettingsTable_Impl( DomainMapper& rDMapper, const uno::Reference< lang::XMultiServiceFactory > xTextFactory ) :
     m_rDMapper( rDMapper )
     , m_xTextFactory( xTextFactory )
@@ -102,6 +105,8 @@ struct SettingsTable_Impl
     , m_bSplitPgBreakAndParaMark(false)
     , m_bMirrorMargin(false)
     , m_pThemeFontLangProps(3)
+    , m_pCompatSettings(0)
+    , m_pCurrentCompatSetting(3)
     {}
 
 };
@@ -144,6 +149,18 @@ void SettingsTable::lcl_attribute(Id nName, Value & val)
     case NS_ooxml::LN_CT_View_val:
         m_pImpl->m_nView = nIntValue;
         break;
+    case NS_ooxml::LN_CT_CompatSetting_name:
+        m_pImpl->m_pCurrentCompatSetting[0].Name = "name";
+        m_pImpl->m_pCurrentCompatSetting[0].Value <<= sStringValue;
+        break;
+    case NS_ooxml::LN_CT_CompatSetting_uri:
+        m_pImpl->m_pCurrentCompatSetting[1].Name = "uri";
+        m_pImpl->m_pCurrentCompatSetting[1].Value <<= sStringValue;
+        break;
+    case NS_ooxml::LN_CT_CompatSetting_val:
+        m_pImpl->m_pCurrentCompatSetting[2].Name = "val";
+        m_pImpl->m_pCurrentCompatSetting[2].Value <<= sStringValue;
+        break;
     default:
     {
 #ifdef DEBUG_DMAPPER_SETTINGS_TABLE
@@ -174,12 +191,11 @@ void SettingsTable::lcl_sprm(Sprm& rSprm)
     case NS_ooxml::LN_CT_Settings_themeFontLang: //  92552;
     case NS_ooxml::LN_CT_Settings_shapeDefaults: //  92560;
     case NS_ooxml::LN_CT_Settings_view:
-
     //PropertySetValues - need to be resolved
     {
         writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
         if( pProperties.get())
-        pProperties->resolve(*this);
+            pProperties->resolve(*this);
     }
     break;
     case NS_ooxml::LN_CT_Settings_stylePaneFormatFilter: // 92493;
@@ -244,6 +260,20 @@ void SettingsTable::lcl_sprm(Sprm& rSprm)
     case NS_ooxml::LN_CT_Settings_mirrorMargins:
         m_pImpl->m_bMirrorMargin = nIntValue;
         break;
+    case NS_ooxml::LN_CT_Compat_compatSetting:
+    {
+        writerfilter::Reference<Properties>::Pointer_t pProperties = rSprm.getProps();
+        if( pProperties.get())
+        {
+            pProperties->resolve(*this);
+
+            sal_Int32 aLength = m_pImpl->m_pCompatSettings.getLength();
+            m_pImpl->m_pCompatSettings.realloc(aLength + 1);
+            m_pImpl->m_pCompatSettings[aLength].Name = "compatSetting";
+            m_pImpl->m_pCompatSettings[aLength].Value = uno::makeAny(m_pImpl->m_pCurrentCompatSetting);
+        }
+    }
+    break;
     default:
     {
 #ifdef DEBUG_DMAPPER_SETTINGS_TABLE
@@ -321,6 +351,11 @@ uno::Sequence<beans::PropertyValue> SettingsTable::GetThemeFontLangProperties()
     return m_pImpl->m_pThemeFontLangProps;
 }
 
+uno::Sequence<beans::PropertyValue> SettingsTable::GetCompatSettings() const
+{
+    return m_pImpl->m_pCompatSettings;
+}
+
 void SettingsTable::ApplyProperties( uno::Reference< text::XTextDocument > xDoc )
 {
     uno::Reference< beans::XPropertySet> xDocProps( xDoc, uno::UNO_QUERY );
diff --git a/writerfilter/source/dmapper/SettingsTable.hxx b/writerfilter/source/dmapper/SettingsTable.hxx
index b19146a..54cd0a0 100644
--- a/writerfilter/source/dmapper/SettingsTable.hxx
+++ b/writerfilter/source/dmapper/SettingsTable.hxx
@@ -77,6 +77,8 @@ class SettingsTable : public LoggedProperties, public LoggedTable
 
     uno::Sequence<beans::PropertyValue> GetThemeFontLangProperties() const;
 
+    uno::Sequence<beans::PropertyValue> GetCompatSettings() const;
+
     void ApplyProperties( uno::Reference< text::XTextDocument > xDoc );
 
  private:
diff --git a/writerfilter/source/filter/ImportFilter.cxx b/writerfilter/source/filter/ImportFilter.cxx
index ab3a5fa..b6615a9 100644
--- a/writerfilter/source/filter/ImportFilter.cxx
+++ b/writerfilter/source/filter/ImportFilter.cxx
@@ -119,7 +119,7 @@ sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDes
         pDocument->resolve(*pStream);
 
         // Adding some properties to the document's grab bag for interoperability purposes:
-        uno::Sequence<beans::PropertyValue> aGrabBagProperties(9);
+        uno::Sequence<beans::PropertyValue> aGrabBagProperties(10);
 
         // Adding the saved Theme DOM
         aGrabBagProperties[0].Name = "OOXTheme";
@@ -151,6 +151,10 @@ sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDes
         aGrabBagProperties[8].Name = "OOXEmbeddings";
         aGrabBagProperties[8].Value = uno::makeAny( pDocument->getEmbeddingsList() );
 
+        // Adding the saved compat settings
+        aGrabBagProperties[9].Name = "CompatSettings";
+        aGrabBagProperties[9].Value = uno::makeAny( aDomainMapper->GetCompatSettings() );
+
         putPropertiesToDocumentGrabBag( aGrabBagProperties );
 
         writerfilter::ooxml::OOXMLStream::Pointer_t  pVBAProjectStream(writerfilter::ooxml::OOXMLDocumentFactory::createStream( pDocStream, writerfilter::ooxml::OOXMLStream::VBAPROJECT ));
commit cf28abed08109f5d7937c94670194f97a7e6f168
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Fri Feb 28 12:54:07 2014 +0100

    writerfilter: extend tokens and model.xml for w:compatSettings
    
    Word stores compatibility mode and additional compatibility
    settings (like enableOpenTypeFeatures) in w:compatSetting. This
    needs to be preserved as well.
    
    Change-Id: I40895cc00952b7c3799edff0bf7f4328106305a1

diff --git a/oox/source/token/tokens.txt b/oox/source/token/tokens.txt
index 133cbd2..ff5466c 100644
--- a/oox/source/token/tokens.txt
+++ b/oox/source/token/tokens.txt
@@ -1288,6 +1288,7 @@ compass
 compat
 compatLnSpc
 compatMode
+compatSetting
 complex
 composite
 compressPunctuation
diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml
index bc56233..187820f 100644
--- a/writerfilter/source/ooxml/model.xml
+++ b/writerfilter/source/ooxml/model.xml
@@ -20637,6 +20637,22 @@
             <ref name="CT_OnOff"/>
           </element>
         </optional>
+        <optional>
+          <element name="compatSetting">
+            <ref name="CT_CompatSetting"/>
+          </element>
+        </optional>
+      </define>
+      <define name="CT_CompatSetting">
+        <attribute name="name">
+          <ref name="ST_String"/>
+        </attribute>
+        <attribute name="uri">
+          <ref name="ST_String"/>
+        </attribute>
+        <attribute name="val">
+          <ref name="ST_String"/>
+        </attribute>
       </define>
       <define name="CT_DocVar">
         <attribute name="name">
@@ -24934,6 +24950,12 @@
       <element name="doNotVertAlignInTxbx" tokenid="ooxml:CT_Compat_doNotVertAlignInTxbx"/>
       <element name="useAnsiKerningPairs" tokenid="ooxml:CT_Compat_useAnsiKerningPairs"/>
       <element name="cachedColBalance" tokenid="ooxml:CT_Compat_cachedColBalance"/>
+      <element name="compatSetting" tokenid="ooxml:CT_Compat_compatSetting"/>
+    </resource>
+    <resource name="CT_CompatSetting" resource="Properties" tag="document">
+      <attribute name="name" tokenid="ooxml:CT_CompatSetting_name"/>
+      <attribute name="uri" tokenid="ooxml:CT_CompatSetting_uri"/>
+      <attribute name="val" tokenid="ooxml:CT_CompatSetting_val"/>
     </resource>
     <resource name="CT_DocVar" resource="Properties" tag="document">
       <attribute name="name" tokenid="ooxml:CT_DocVar_name"/>
commit db58eee6f520af7b4502343fb59a8d39f4f311dd
Author: Tomaž Vajngerl <tomaz.vajngerl at collabora.com>
Date:   Fri Feb 28 10:37:20 2014 +0100

    writerfilter: add mising color values for w14 CT_SchemeColor
    
    Change-Id: I0fef224b75d67798dfa37585a9210285eac575b5

diff --git a/writerfilter/source/dmapper/TextEffectsHandler.cxx b/writerfilter/source/dmapper/TextEffectsHandler.cxx
index d026de2..2d4c32b 100644
--- a/writerfilter/source/dmapper/TextEffectsHandler.cxx
+++ b/writerfilter/source/dmapper/TextEffectsHandler.cxx
@@ -171,7 +171,13 @@ OUString TextEffectsHandler::getSchemeColorValTypeString(sal_Int32 nType)
         case NS_ooxml::LN_ST_SchemeColorVal_accent4: return OUString("accent4");
         case NS_ooxml::LN_ST_SchemeColorVal_accent5: return OUString("accent5");
         case NS_ooxml::LN_ST_SchemeColorVal_accent6: return OUString("accent6");
-
+        case NS_ooxml::LN_ST_SchemeColorVal_hlink: return OUString("hlink");
+        case NS_ooxml::LN_ST_SchemeColorVal_folHlink: return OUString("folHlink");
+        case NS_ooxml::LN_ST_SchemeColorVal_dk1: return OUString("dk1");
+        case NS_ooxml::LN_ST_SchemeColorVal_lt1: return OUString("lt1");
+        case NS_ooxml::LN_ST_SchemeColorVal_dk2: return OUString("dk2");
+        case NS_ooxml::LN_ST_SchemeColorVal_lt2: return OUString("lt2");
+        case NS_ooxml::LN_ST_SchemeColorVal_phClr: return OUString("phClr");
         default: break;
     }
     return OUString();
diff --git a/writerfilter/source/ooxml/model.xml b/writerfilter/source/ooxml/model.xml
index 09648ca..bc56233 100644
--- a/writerfilter/source/ooxml/model.xml
+++ b/writerfilter/source/ooxml/model.xml
@@ -5341,6 +5341,13 @@
           <value>accent4</value>
           <value>accent5</value>
           <value>accent6</value>
+          <value>hlink</value>
+          <value>folHlink</value>
+          <value>dk1</value>
+          <value>lt1</value>
+          <value>dk2</value>
+          <value>lt2</value>
+          <value>phClr</value>
         </choice>
       </define>
       <define name="ST_RectAlignment">
@@ -6271,6 +6278,13 @@
       <value name="accent4" tokenid="ooxml:ST_SchemeColorVal_accent4">accent4</value>
       <value name="accent5" tokenid="ooxml:ST_SchemeColorVal_accent5">accent5</value>
       <value name="accent6" tokenid="ooxml:ST_SchemeColorVal_accent6">accent6</value>
+      <value name="hlink" tokenid="ooxml:ST_SchemeColorVal_hlink">hlink</value>
+      <value name="folHlink" tokenid="ooxml:ST_SchemeColorVal_folHlink">folHlink</value>
+      <value name="dk1" tokenid="ooxml:ST_SchemeColorVal_dk1">dk1</value>
+      <value name="lt1" tokenid="ooxml:ST_SchemeColorVal_lt1">lt1</value>
+      <value name="dk2" tokenid="ooxml:ST_SchemeColorVal_dk2">dk2</value>
+      <value name="lt2" tokenid="ooxml:ST_SchemeColorVal_lt2">lt2</value>
+      <value name="phClr" tokenid="ooxml:ST_SchemeColorVal_phClr">phClr</value>
     </resource>
     <resource name="ST_RectAlignment" resource="List" generated="yes">
       <value name="none" tokenid="ooxml:ST_RectAlignment_none">none</value>


More information about the Libreoffice-commits mailing list