[Libreoffice-commits] .: 14 commits - filter/source oox/inc oox/source oox/util writerfilter/source

Katarina Machalkova bubli at kemper.freedesktop.org
Wed Oct 13 11:59:36 PDT 2010


 filter/source/config/cache/constant.hxx                                            |    2 
 filter/source/config/cache/filtercache.cxx                                         |    6 
 filter/source/config/fragments/fcfg_calc.mk                                        |   12 +
 filter/source/config/fragments/fcfg_impress.mk                                     |   17 ++
 filter/source/config/fragments/fcfg_writer.mk                                      |   12 +
 filter/source/config/fragments/filters/MS_PowerPoint_97_AutoPlay.xcu               |   13 ++
 filter/source/config/fragments/filters/OOXML_Text.xcu                              |   14 ++
 filter/source/config/fragments/filters/OOXML_Text_Template.xcu                     |   14 ++
 filter/source/config/fragments/filters/OOXML_Text_Template_ui.xcu                  |    6 
 filter/source/config/fragments/filters/OOXML_Text_ui.xcu                           |    6 
 filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu                  |    2 
 filter/source/config/fragments/filters/calc_OOXML.xcu                              |   10 +
 filter/source/config/fragments/filters/calc_OOXML_Template.xcu                     |   10 +
 filter/source/config/fragments/filters/calc_OOXML_Template_ui.xcu                  |    6 
 filter/source/config/fragments/filters/calc_OOXML_ui.xcu                           |    6 
 filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_AutoPlay.xcu |   10 +
 filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template.xcu |    1 
 filter/source/config/fragments/filters/impress_OOXML.xcu                           |   12 +
 filter/source/config/fragments/filters/impress_OOXML_AutoPlay.xcu                  |   11 +
 filter/source/config/fragments/filters/impress_OOXML_Template.xcu                  |   12 +
 filter/source/config/fragments/filters/impress_OOXML_Template_ui.xcu               |    5 
 filter/source/config/fragments/filters/impress_OOXML_ui.xcu                        |    5 
 filter/source/config/fragments/types/MS_Excel_2007_XML.xcu                         |    2 
 filter/source/config/fragments/types/MS_PowerPoint_2007_XML_AutoPlay.xcu           |   10 +
 filter/source/config/fragments/types/calc_OOXML.xcu                                |   10 +
 filter/source/config/fragments/types/calc_OOXML_Template.xcu                       |   10 +
 filter/source/config/fragments/types/impress_MS_PowerPoint_97.xcu                  |    2 
 filter/source/config/fragments/types/impress_MS_PowerPoint_97_AutoPlay.xcu         |   12 +
 filter/source/config/fragments/types/impress_OOXML_Presentation.xcu                |   10 +
 filter/source/config/fragments/types/impress_OOXML_Presentation_AutoPlay.xcu       |   10 +
 filter/source/config/fragments/types/impress_OOXML_Presentation_Template.xcu       |   10 +
 filter/source/config/fragments/types/writer_OOXML.xcu                              |   12 +
 filter/source/config/fragments/types/writer_OOXML_Template.xcu                     |   12 +
 oox/inc/oox/core/filterbase.hxx                                                    |    8 +
 oox/inc/oox/core/xmlfilterbase.hxx                                                 |    2 
 oox/inc/oox/xls/excelfilter.hxx                                                    |    2 
 oox/inc/oox/xls/pagesettings.hxx                                                   |    2 
 oox/inc/oox/xls/workbooksettings.hxx                                               |    3 
 oox/source/core/filterbase.cxx                                                     |   28 ++++
 oox/source/core/filterdetect.cxx                                                   |    4 
 oox/source/core/xmlfilterbase.cxx                                                  |   61 +++++++++-
 oox/source/token/tokens.txt                                                        |    9 +
 oox/source/xls/commentsbuffer.cxx                                                  |   13 ++
 oox/source/xls/excelfilter.cxx                                                     |   28 ++++
 oox/source/xls/pagesettings.cxx                                                    |   42 +++++-
 oox/source/xls/workbooksettings.cxx                                                |   23 +++
 oox/source/xls/worksheetfragment.cxx                                               |    4 
 oox/util/makefile.mk                                                               |    1 
 writerfilter/source/filter/ImportFilter.cxx                                        |    4 
 49 files changed, 497 insertions(+), 29 deletions(-)

New commits:
commit 27ab4c396137590ba4f5bb5f767c48f56b28c9a1
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 19:27:54 2010 +0200

    Remaining files from pptx-autoplay-fix.diff

diff --git a/filter/source/config/fragments/filters/impress_OOXML_AutoPlay.xcu b/filter/source/config/fragments/filters/impress_OOXML_AutoPlay.xcu
new file mode 100644
index 0000000..052c613
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_OOXML_AutoPlay.xcu
@@ -0,0 +1,11 @@
+<node oor:name="Impress Office Open XML AutoPlay" oor:op="replace">
+    <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED STARTPRESENTATION</value></prop>
+    <prop oor:name="UIComponent"/>
+    <prop oor:name="FilterService"><value>com.sun.star.comp.Impress.oox.PowerPointImport</value></prop>
+    <prop oor:name="UserData"/>
+    <prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Presentation AutoPlay</value></prop>
+    <prop oor:name="FileFormatVersion"/>
+    <prop oor:name="Type"><value>Office Open XML Presentation AutoPlay</value></prop>
+    <prop oor:name="TemplateName"/>
+    <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/types/impress_OOXML_Presentation_AutoPlay.xcu b/filter/source/config/fragments/types/impress_OOXML_Presentation_AutoPlay.xcu
new file mode 100644
index 0000000..d4a8e6a
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_OOXML_Presentation_AutoPlay.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Office Open XML Presentation AutoPlay" oor:op="replace" >
+    <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+    <prop oor:name="URLPattern"/>
+    <prop oor:name="Extensions"><value>ppsx</value></prop>
+    <prop oor:name="MediaType"/>
+    <prop oor:name="Preferred"><value>true</value></prop>
+    <prop oor:name="PreferredFilter"><value>Impress Office Open XML AutoPlay</value></prop>
+    <prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Presentation AutoPlay</value></prop>
+    <prop oor:name="ClipboardFormat"/>
+</node>
commit d1db197d09e944a22b8fa49cdd3f860555057ced
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 18:18:47 2010 +0200

    Merged oox-sc-notes.diff from ooo-build

diff --git a/oox/source/xls/commentsbuffer.cxx b/oox/source/xls/commentsbuffer.cxx
index dccd70a..b1dceea 100644
--- a/oox/source/xls/commentsbuffer.cxx
+++ b/oox/source/xls/commentsbuffer.cxx
@@ -37,6 +37,10 @@
 #include "oox/xls/addressconverter.hxx"
 #include "oox/xls/drawingfragment.hxx"
 
+
+#include <com/sun/star/text/XText.hpp>
+#include <com/sun/star/text/XTextRange.hpp>
+
 using ::rtl::OUString;
 using ::com::sun::star::uno::Reference;
 using ::com::sun::star::uno::Exception;
@@ -50,6 +54,10 @@ using ::com::sun::star::sheet::XSheetAnnotationShapeSupplier;
 using ::com::sun::star::sheet::XSheetAnnotations;
 using ::com::sun::star::sheet::XSheetAnnotationsSupplier;
 
+using ::com::sun::star::text::XText;
+using ::com::sun::star::text::XTextRange;
+
+
 namespace oox {
 namespace xls {
 
@@ -110,6 +118,11 @@ void Comment::finalizeImport()
             Reference< XSheetAnnotation > xAnno( xAnnoAnchor->getAnnotation(), UNO_SET_THROW );
             Reference< XSheetAnnotationShapeSupplier > xAnnoShapeSupp( xAnno, UNO_QUERY_THROW );
             Reference< XShape > xAnnoShape( xAnnoShapeSupp->getAnnotationShape(), UNO_SET_THROW );
+            Reference <XText> xText( xAnnoShape, UNO_QUERY_THROW );
+            Reference <XTextRange> xTextRange( xText, UNO_QUERY_THROW );
+            xTextRange->setString( OUString::createFromAscii("") ); // Clear contents
+            maModel.mxText->convert( xText, -1 );
+
             // convert shape formatting
             if( const ::oox::vml::ShapeBase* pNoteShape = getVmlDrawing().getNoteShape( aNotePos ) )
             {
commit d523a769ee307f1b9729e4c70aca4f726dd8f079
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 18:17:48 2010 +0200

    Merged ooxml-autoplay-fix.diff from ooo-build

diff --git a/filter/source/config/fragments/fcfg_impress.mk b/filter/source/config/fragments/fcfg_impress.mk
index 43447cb..212e6fe 100644
--- a/filter/source/config/fragments/fcfg_impress.mk
+++ b/filter/source/config/fragments/fcfg_impress.mk
@@ -18,7 +18,8 @@ T4_IMPRESS = \
     MS_PowerPoint_2007_XML_AutoPlay\
     MS_PowerPoint_2007_XML_Template\
     impress_OOXML_Presentation\
-    impress_OOXML_Presentation_Template
+    impress_OOXML_Presentation_Template\
+    impress_OOXML_Presentation_AutoPlay
 
 # -----------------------------------------------
 # count = 20
@@ -38,7 +39,8 @@ F4_IMPRESS = \
     impress_MS_PowerPoint_2007_XML_AutoPlay\
     impress_MS_PowerPoint_2007_XML_Template\
     impress_OOXML\
-    impress_OOXML_Template
+    impress_OOXML_Template\
+    impress_OOXML_AutoPlay
 
 # -----------------------------------------------
 # count = 12
commit 8573901b91affc48a31beb85a103391117e7c03e
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 18:17:10 2010 +0200

    Merged ooxml-sw-fix-2010-import-crash.diff from ooo-build

diff --git a/writerfilter/source/filter/ImportFilter.cxx b/writerfilter/source/filter/ImportFilter.cxx
index d20e3b8..1dd9f92 100644
--- a/writerfilter/source/filter/ImportFilter.cxx
+++ b/writerfilter/source/filter/ImportFilter.cxx
@@ -104,7 +104,9 @@ sal_Bool WriterFilter::filter( const uno::Sequence< beans::PropertyValue >& aDes
 
     writerfilter::dmapper::SourceDocumentType eType =
         (m_sFilterName.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "writer_MS_Word_2007" ) ) ||
-         m_sFilterName.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "writer_MS_Word_2007_Template" ) )) ?
+         m_sFilterName.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "writer_MS_Word_2007_Template" ) ) ||
+         m_sFilterName.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "writer_OOXML" ) ) ||
+         m_sFilterName.equalsAsciiL ( RTL_CONSTASCII_STRINGPARAM ( "writer_OOXML_Text_Template" ) )) ?
                 writerfilter::dmapper::DOCUMENT_OOXML : writerfilter::dmapper::DOCUMENT_DOC;
     writerfilter::Stream::Pointer_t pStream(new writerfilter::dmapper::DomainMapper(m_xContext, xInputStream, m_xDstDoc, eType));
     //create the tokenizer and domain mapper
commit 49d1c110b2e6ffc4a43160c56bb867e6b405d553
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 18:15:33 2010 +0200

    Merged ooxml-sc-brk.diff from ooo-build

diff --git a/oox/source/xls/worksheetfragment.cxx b/oox/source/xls/worksheetfragment.cxx
index 3e709ee..15060a1 100644
--- a/oox/source/xls/worksheetfragment.cxx
+++ b/oox/source/xls/worksheetfragment.cxx
@@ -576,8 +576,8 @@ void OoxWorksheetFragment::importBrk( const AttributeList& rAttribs, bool bRowBr
 {
     PageBreakModel aModel;
     aModel.mnColRow = rAttribs.getInteger( XML_id, 0 );
-    aModel.mnMin    = rAttribs.getInteger( XML_id, 0 );
-    aModel.mnMax    = rAttribs.getInteger( XML_id, 0 );
+    aModel.mnMin    = rAttribs.getInteger( XML_min, aModel.mnColRow );
+    aModel.mnMax    = rAttribs.getInteger( XML_max, aModel.mnColRow );
     aModel.mbManual = rAttribs.getBool( XML_man, false );
     setPageBreak( aModel, bRowBreak );
 }
commit 8e33551b83842e624e73d2738082fc3c5c2ec38d
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 18:15:06 2010 +0200

    Merged ooxml-sc-page-date-imp.diff from ooo-build

diff --git a/oox/inc/oox/xls/pagesettings.hxx b/oox/inc/oox/xls/pagesettings.hxx
index 79a1f48..3864714 100644
--- a/oox/inc/oox/xls/pagesettings.hxx
+++ b/oox/inc/oox/xls/pagesettings.hxx
@@ -58,6 +58,8 @@ struct PageSettingsModel
     double              mfHeaderMargin;         /// Margin between top edge of page and begin of header.
     double              mfFooterMargin;         /// Margin between end of footer and bottom edge of page.
     sal_Int32           mnPaperSize;            /// Paper size (enumeration).
+    sal_Int32           mnPaperWidth;           /// Paper width in twips
+    sal_Int32           mnPaperHeight;          /// Paper height in twips
     sal_Int32           mnCopies;               /// Number of copies to print.
     sal_Int32           mnScale;                /// Page scale (zoom in percent).
     sal_Int32           mnFirstPage;            /// First page number.
diff --git a/oox/inc/oox/xls/workbooksettings.hxx b/oox/inc/oox/xls/workbooksettings.hxx
index af291c0..6cd661f 100644
--- a/oox/inc/oox/xls/workbooksettings.hxx
+++ b/oox/inc/oox/xls/workbooksettings.hxx
@@ -57,6 +57,7 @@ struct WorkbookSettingsModel
     sal_Int32           mnUpdateLinksMode;      /// Specifies how external links are updated.
     sal_Int32           mnDefaultThemeVer;      /// Default theme version.
     bool                mbDateMode1904;         /// True = null date is 1904-01-01.
+    bool                mbDateCompatibility;    /// False = null date is 1899-12-30.
     bool                mbSaveExtLinkValues;    /// True = save cached cell values for external links.
 
     explicit            WorkbookSettingsModel();
@@ -148,7 +149,7 @@ public:
 
 private:
     /** Updates date mode and unit converter nulldate. */
-    void                setDateMode( bool bDateMode1904 );
+    void                setDateMode( bool bDateMode1904, bool bDateCompatibility=true );
 
 private:
     FileSharingModel    maFileSharing;
diff --git a/oox/source/xls/pagesettings.cxx b/oox/source/xls/pagesettings.cxx
index 8f30911..e98e53e 100644
--- a/oox/source/xls/pagesettings.cxx
+++ b/oox/source/xls/pagesettings.cxx
@@ -50,6 +50,8 @@
 #include "oox/xls/excelhandlers.hxx"
 #include "oox/xls/stylesbuffer.hxx"
 #include "oox/xls/unitconverter.hxx"
+#include "tools/mapunit.hxx"
+#include "xmloff/xmluconv.hxx"
 
 using ::rtl::OString;
 using ::rtl::OStringBuffer;
@@ -130,6 +132,8 @@ PageSettingsModel::PageSettingsModel() :
     mfHeaderMargin( OOX_MARGIN_DEFAULT_HF ),
     mfFooterMargin( OOX_MARGIN_DEFAULT_HF ),
     mnPaperSize( 1 ),
+    mnPaperWidth( 0 ),
+    mnPaperHeight( 0 ),
     mnCopies( 1 ),
     mnScale( 100 ),
     mnFirstPage( 1 ),
@@ -188,8 +192,13 @@ void PageSettings::importPageMargins( const AttributeList& rAttribs )
 
 void PageSettings::importPageSetup( const Relations& rRelations, const AttributeList& rAttribs )
 {
+    OUString aStr;
     maModel.maBinSettPath   = rRelations.getFragmentPathFromRelId( rAttribs.getString( R_TOKEN( id ), OUString() ) );
     maModel.mnPaperSize     = rAttribs.getInteger( XML_paperSize, 1 );
+    aStr                    = rAttribs.getString ( XML_paperWidth, OUString() );
+    SvXMLUnitConverter::convertMeasure( maModel.mnPaperWidth, aStr, MAP_100TH_MM );
+    aStr                    = rAttribs.getString ( XML_paperHeight, OUString() );
+    SvXMLUnitConverter::convertMeasure( maModel.mnPaperHeight, aStr, MAP_100TH_MM );
     maModel.mnCopies        = rAttribs.getInteger( XML_copies, 1 );
     maModel.mnScale         = rAttribs.getInteger( XML_scale, 100 );
     maModel.mnFirstPage     = rAttribs.getInteger( XML_firstPageNumber, 1 );
@@ -209,8 +218,13 @@ void PageSettings::importPageSetup( const Relations& rRelations, const Attribute
 
 void PageSettings::importChartPageSetup( const Relations& rRelations, const AttributeList& rAttribs )
 {
+    OUString aStr;
     maModel.maBinSettPath   = rRelations.getFragmentPathFromRelId( rAttribs.getString( R_TOKEN( id ), OUString() ) );
     maModel.mnPaperSize     = rAttribs.getInteger( XML_paperSize, 1 );
+    aStr                    = rAttribs.getString ( XML_paperWidth, OUString() );
+    SvXMLUnitConverter::convertMeasure( maModel.mnPaperWidth, aStr, MAP_100TH_MM );
+    aStr                    = rAttribs.getString ( XML_paperHeight, OUString() );
+    SvXMLUnitConverter::convertMeasure( maModel.mnPaperHeight, aStr, MAP_100TH_MM );
     maModel.mnCopies        = rAttribs.getInteger( XML_copies, 1 );
     maModel.mnFirstPage     = rAttribs.getInteger( XML_firstPageNumber, 1 );
     maModel.mnHorPrintRes   = rAttribs.getInteger( XML_horizontalDpi, 600 );
@@ -1142,13 +1156,29 @@ void PageSettingsConverter::writePageSettingsProperties(
         bLandscape = bChartSheet;
 
     // paper size
-    if( rModel.mbValidSettings && (0 < rModel.mnPaperSize) && (rModel.mnPaperSize < static_cast< sal_Int32 >( STATIC_ARRAY_SIZE( spPaperSizeTable ) )) )
+    if( !rModel.mbValidSettings )
     {
-        const ApiPaperSize& rPaperSize = spPaperSizeTable[ rModel.mnPaperSize ];
-        Size aSize( rPaperSize.mnWidth, rPaperSize.mnHeight );
-        if( bLandscape )
-            ::std::swap( aSize.Width, aSize.Height );
-        rPropSet.setProperty( PROP_Size, aSize );
+        Size aSize;
+        bool bValid = false;
+
+        if( (0 < rModel.mnPaperSize) && (rModel.mnPaperSize < static_cast< sal_Int32 >( STATIC_ARRAY_SIZE( spPaperSizeTable ) )) )
+        {
+            const ApiPaperSize& rPaperSize = spPaperSizeTable[ rModel.mnPaperSize ];
+            aSize = Size( rPaperSize.mnWidth, rPaperSize.mnHeight );
+            bValid = true;
+        }
+        if( rModel.mnPaperWidth > 0 && rModel.mnPaperHeight > 0 )
+        {
+            aSize = Size( rModel.mnPaperWidth, rModel.mnPaperHeight );
+            bValid = true;
+        }
+
+        if( bValid )
+        {
+            if( bLandscape )
+                ::std::swap( aSize.Width, aSize.Height );
+            rPropSet.setProperty( PROP_Size, aSize );
+        }
     }
 
     // header/footer
diff --git a/oox/source/xls/workbooksettings.cxx b/oox/source/xls/workbooksettings.cxx
index bba3df1..c0f024b 100644
--- a/oox/source/xls/workbooksettings.cxx
+++ b/oox/source/xls/workbooksettings.cxx
@@ -36,6 +36,7 @@
 #include "oox/helper/propertyset.hxx"
 #include "oox/helper/recordinputstream.hxx"
 #include "oox/core/filterbase.hxx"
+#include "oox/core/xmlfilterbase.hxx"
 #include "oox/xls/biffinputstream.hxx"
 #include "oox/xls/unitconverter.hxx"
 
@@ -141,7 +142,7 @@ void WorkbookSettings::importWorkbookPr( const AttributeList& rAttribs )
     maBookSettings.mnUpdateLinksMode   = rAttribs.getToken( XML_updateLinks, XML_userSet );
     maBookSettings.mnDefaultThemeVer   = rAttribs.getInteger( XML_defaultThemeVersion, -1 );
     maBookSettings.mbSaveExtLinkValues = rAttribs.getBool( XML_saveExternalLinkValues, true );
-    setDateMode( rAttribs.getBool( XML_date1904, false ) );
+    setDateMode( rAttribs.getBool( XML_date1904, false ), rAttribs.getBool( XML_dateCompatibility, true ) );
 }
 
 void WorkbookSettings::importCalcPr( const AttributeList& rAttribs )
@@ -354,13 +355,27 @@ sal_Int16 WorkbookSettings::getApiShowObjectMode() const
 
 Date WorkbookSettings::getNullDate() const
 {
-    static const Date saDate1900( 30, 12, 1899 ), saDate1904( 1, 1, 1904 );
+    static const Date saDate1900                 ( 30, 12, 1899 );
+    static const Date saDate1904                 ( 1, 1, 1904 );
+    static const Date saDateBackCompatibility1900( 31, 12, 1899 );
+
+    if( getOoxFilter().getVersion() == oox::core::ISOIEC_29500_2008 )
+    {
+        if( !maBookSettings.mbDateCompatibility )
+            return saDate1900;
+
+        return maBookSettings.mbDateMode1904 ? saDate1904 :
+                                               saDateBackCompatibility1900;
+    }
+
     return maBookSettings.mbDateMode1904 ? saDate1904 : saDate1900;
 }
 
-void WorkbookSettings::setDateMode( bool bDateMode1904 )
+void WorkbookSettings::setDateMode( bool bDateMode1904, bool bDateCompatibility )
 {
-    maBookSettings.mbDateMode1904 = bDateMode1904;
+    maBookSettings.mbDateMode1904      = bDateMode1904;
+    maBookSettings.mbDateCompatibility = bDateCompatibility;
+
     getUnitConverter().finalizeNullDate( getNullDate() );
 }
 
diff --git a/oox/util/makefile.mk b/oox/util/makefile.mk
index a8ba80c..ff4ca03 100644
--- a/oox/util/makefile.mk
+++ b/oox/util/makefile.mk
@@ -78,6 +78,7 @@ SHL1STDLIBS= \
         $(SVLLIB)	\
         $(MSFILTERLIB)	\
         $(UNOTOOLSLIB)	\
+        $(XMLOFFLIB)    \
         $(TOOLSLIB)
 
 # link openssl, copied this bit from ucb/source/ucp/webdav/makefile.mk
commit 944cfb67bedd08cc1b03587e949c33f8387d9ea5
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 18:13:56 2010 +0200

    Merged ooxml-sc-docpropsimp.dff from ooo-build

diff --git a/oox/inc/oox/core/xmlfilterbase.hxx b/oox/inc/oox/core/xmlfilterbase.hxx
index 909a51b..9b5e63d 100644
--- a/oox/inc/oox/core/xmlfilterbase.hxx
+++ b/oox/inc/oox/core/xmlfilterbase.hxx
@@ -198,6 +198,8 @@ public:
      */
     XmlFilterBase& exportDocumentProperties( ::com::sun::star::uno::Reference< ::com::sun::star::document::XDocumentProperties > xProperties );
 
+    void importDocumentProperties() throw();
+
 protected:
     virtual ::com::sun::star::uno::Reference< ::com::sun::star::io::XInputStream >
                         implGetInputStream( ::comphelper::MediaDescriptor& rMediaDesc ) const;
diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx
index 84b86f3..bfefb73 100644
--- a/oox/source/core/xmlfilterbase.cxx
+++ b/oox/source/core/xmlfilterbase.cxx
@@ -81,6 +81,22 @@ using ::comphelper::MediaDescriptor;
 using ::sax_fastparser::FastSerializerHelper;
 using ::sax_fastparser::FSHelperPtr;
 
+
+#include <com/sun/star/document/XDocumentPropertiesSupplier.hpp>
+#include <com/sun/star/document/XOOXMLDocumentPropertiesImporter.hpp>
+#include <com/sun/star/beans/XPropertySet.hpp>
+#include <comphelper/processfactory.hxx>
+#include <comphelper/mediadescriptor.hxx>
+#include <oox/core/filterdetect.hxx>
+#include <comphelper/storagehelper.hxx>
+
+using ::com::sun::star::uno::XComponentContext;
+using ::com::sun::star::document::XOOXMLDocumentPropertiesImporter;
+using ::com::sun::star::document::XDocumentPropertiesSupplier;
+using ::com::sun::star::beans::XPropertySet;
+using ::com::sun::star::lang::XComponent;
+
+
 namespace oox {
 namespace core {
 
@@ -119,6 +135,22 @@ XmlFilterBaseImpl::XmlFilterBaseImpl() :
 }
 
 // ============================================================================
+static Reference< XComponentContext > lcl_getComponentContext(Reference< XMultiServiceFactory > aFactory)
+{
+    Reference< XComponentContext > xContext;
+    try
+    {
+        Reference< XPropertySet > xFactProp( aFactory, UNO_QUERY );
+        if( xFactProp.is() )
+            xFactProp->getPropertyValue( OUString::createFromAscii("DefaultContext") ) >>= xContext;
+    }
+    catch( Exception& )
+    {}
+
+    return xContext;
+}
+
+// ============================================================================
 
 XmlFilterBase::XmlFilterBase( const Reference< XMultiServiceFactory >& rxGlobalFactory ) :
     FilterBase( rxGlobalFactory ),
@@ -166,6 +198,25 @@ XmlFilterBase::~XmlFilterBase()
 
 // ----------------------------------------------------------------------------
 
+void XmlFilterBase::importDocumentProperties() throw()
+{
+    Reference< XMultiServiceFactory > xFactory( getGlobalFactory(), UNO_QUERY );
+    MediaDescriptor aMediaDesc( getMediaDescriptor() );
+    Reference< XInputStream > xInputStream;
+    ::oox::core::FilterDetect aDetector( xFactory );
+    xInputStream = aDetector.extractUnencryptedPackage( aMediaDesc );
+    Reference< XComponent > xModel( getModel(), UNO_QUERY );
+    Reference< XComponentContext > xContext = lcl_getComponentContext(getGlobalFactory());
+    Reference< XStorage > xDocumentStorage (
+            ::comphelper::OStorageHelper::GetStorageOfFormatFromInputStream( OFOPXML_STORAGE_FORMAT_STRING, xInputStream ) );
+    Reference< XInterface > xTemp = xContext->getServiceManager()->createInstanceWithContext(
+            ::rtl::OUString(RTL_CONSTASCII_USTRINGPARAM("com.sun.star.document.OOXMLDocumentPropertiesImporter")),
+            xContext);
+    Reference< XOOXMLDocumentPropertiesImporter > xImporter( xTemp, UNO_QUERY );
+    Reference< XDocumentPropertiesSupplier > xPropSupplier( xModel, UNO_QUERY);
+    xImporter->importProperties( xDocumentStorage, xPropSupplier->getDocumentProperties() );
+}
+
 OUString XmlFilterBase::getFragmentPathFromFirstType( const OUString& rType )
 {
     // importRelations() caches the relations map for subsequence calls
commit 96cf068042bb34194eb58aa933cac3c679a393a7
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 18:10:43 2010 +0200

    Merged ooxml-schema.diff from ooo-build

diff --git a/oox/source/core/xmlfilterbase.cxx b/oox/source/core/xmlfilterbase.cxx
index 23888fc..84b86f3 100644
--- a/oox/source/core/xmlfilterbase.cxx
+++ b/oox/source/core/xmlfilterbase.cxx
@@ -396,9 +396,13 @@ writeElement( FSHelperPtr pDoc, sal_Int32 nXmlElement, const Locale& rLocale )
 static void
 writeCoreProperties( XmlFilterBase& rSelf, Reference< XDocumentProperties > xProperties )
 {
-    rSelf.addRelation(
-            CREATE_OUSTRING( "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" ),
-            CREATE_OUSTRING( "docProps/core.xml" ) );
+    OUString sValue;
+    if( rSelf.getVersion() == oox::core::ISOIEC_29500_2008  )
+        sValue = CREATE_OUSTRING( "http://schemas.openxmlformats.org/officedocument/2006/relationships/metadata/core-properties" );
+    else
+        sValue = CREATE_OUSTRING( "http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" );
+
+    rSelf.addRelation( sValue, CREATE_OUSTRING( "docProps/core.xml" ) );
     FSHelperPtr pCoreProps = rSelf.openFragmentStreamWithSerializer(
             CREATE_OUSTRING( "docProps/core.xml" ),
             CREATE_OUSTRING( "application/vnd.openxmlformats-package.core-properties+xml" ) );
commit 1a0d68fae1bcb0451a1935632ec6b68ec9ddb6c8
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 18:10:06 2010 +0200

    Merged ooxml-sc-page-date.diff from ooo-build

diff --git a/oox/source/token/tokens.txt b/oox/source/token/tokens.txt
index b05a211..582805b 100644
--- a/oox/source/token/tokens.txt
+++ b/oox/source/token/tokens.txt
@@ -482,6 +482,7 @@ alg
 algIdExt
 algIdExtSource
 algn
+algorithmName
 alias
 aliases
 aliceBlue
@@ -1098,6 +1099,7 @@ char
 charRg
 charSpace
 character
+characterSet
 characterSpacingControl
 characteristic
 charset
@@ -1277,6 +1279,7 @@ confettiGrays
 confettiOutline
 confettiStreamers
 confettiWhite
+conformance
 conn
 connDist
 connRout
@@ -1583,6 +1586,7 @@ date
 date1904
 dateAx
 dateBetween
+dateCompatibility
 dateEqual
 dateFormat
 dateGroupItem
@@ -2502,6 +2506,7 @@ harsh
 hasCustomPrompt
 hash
 hashData
+hashValue
 hc
 hd2
 hd4
@@ -3714,8 +3719,11 @@ panose
 panose1
 papayaWhip
 paperClips
+paperHeight
 paperSize
 paperSrc
+paperUnits
+paperWidth
 papyrus
 par
 parOf
@@ -4291,6 +4299,7 @@ saka
 salmon
 salt
 saltData
+saltValue
 sameClick
 sameDir
 sampData
commit 75d9058b07874c97f913b1f72a7cb360116e4c6c
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 18:07:55 2010 +0200

    Merged ooxml-filter-calc.diff from ooo-build

diff --git a/filter/source/config/fragments/fcfg_calc.mk b/filter/source/config/fragments/fcfg_calc.mk
index ee949ba..9f240c9 100644
--- a/filter/source/config/fragments/fcfg_calc.mk
+++ b/filter/source/config/fragments/fcfg_calc.mk
@@ -27,7 +27,9 @@ T4_CALC = \
     calc_MS_Excel_2003_XML \
     MS_Excel_2007_XML \
     MS_Excel_2007_XML_Template \
-    MS_Excel_2007_Binary
+    MS_Excel_2007_Binary \
+    calc_OOXML \
+    calc_OOXML_Template
 
 # -----------------------------------------------
 # count = 28
@@ -57,7 +59,9 @@ F4_CALC = \
     MS_Excel_2003_XML \
     calc_MS_Excel_2007_XML \
     calc_MS_Excel_2007_XML_Template \
-    calc_MS_Excel_2007_Binary
+    calc_MS_Excel_2007_Binary \
+    calc_OOXML \
+    calc_OOXML_Template
 
 # -----------------------------------------------
 # count = 12
@@ -76,7 +80,9 @@ F4_UI_CALC = \
     MS_Excel_2003_XML_ui \
     calc_MS_Excel_2007_XML_ui \
     calc_MS_Excel_2007_XML_Template_ui \
-    calc_MS_Excel_2007_Binary_ui
+    calc_MS_Excel_2007_Binary_ui \
+    calc_OOXML_ui \
+    calc_OOXML_Template_ui
 
 # -----------------------------------------------
 # count = 0
diff --git a/filter/source/config/fragments/filters/calc_OOXML.xcu b/filter/source/config/fragments/filters/calc_OOXML.xcu
new file mode 100644
index 0000000..69007ff
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_OOXML.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Calc Office Open XML" oor:op="replace">
+    <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+    <prop oor:name="UIComponent"/>
+    <prop oor:name="FilterService"><value>com.sun.star.comp.oox.ExcelFilter</value></prop>
+    <prop oor:name="UserData"><value>OOXML</value></prop>
+    <prop oor:name="FileFormatVersion"><value>1</value></prop>
+    <prop oor:name="Type"><value>Office Open XML Spreadsheet</value></prop>
+    <prop oor:name="TemplateName"/>
+    <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/calc_OOXML_Template.xcu b/filter/source/config/fragments/filters/calc_OOXML_Template.xcu
new file mode 100644
index 0000000..99268d9
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_OOXML_Template.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Calc Office Open XML Template" oor:op="replace">
+    <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER TEMPLATE TEMPLATEPATH</value></prop>
+    <prop oor:name="UIComponent"/>
+    <prop oor:name="FilterService"><value>com.sun.star.comp.oox.ExcelFilter</value></prop>
+    <prop oor:name="UserData"><value>OOXML</value></prop>
+    <prop oor:name="FileFormatVersion"><value>1</value></prop>
+    <prop oor:name="Type"><value>Office Open XML Spreadsheet Template</value></prop>
+    <prop oor:name="TemplateName"/>
+    <prop oor:name="DocumentService"><value>com.sun.star.sheet.SpreadsheetDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/calc_OOXML_Template_ui.xcu b/filter/source/config/fragments/filters/calc_OOXML_Template_ui.xcu
new file mode 100644
index 0000000..cd72ad1
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_OOXML_Template_ui.xcu
@@ -0,0 +1,6 @@
+<node oor:name="Calc Office Open XML Template">
+    <prop oor:name="UIName">
+        <value xml:lang="en-US">Office Open XML Spreadsheet Template</value>
+        <value xml:lang="de">Office Open XML Spreadsheet Vorlage</value>
+    </prop>
+</node>
diff --git a/filter/source/config/fragments/filters/calc_OOXML_ui.xcu b/filter/source/config/fragments/filters/calc_OOXML_ui.xcu
new file mode 100644
index 0000000..29cc950
--- /dev/null
+++ b/filter/source/config/fragments/filters/calc_OOXML_ui.xcu
@@ -0,0 +1,6 @@
+<node oor:name="Calc Office Open XML">
+    <prop oor:name="UIName">
+        <value xml:lang="en-US">Office Open XML Spreadsheet</value>
+        <value xml:lang="de">Office Open XML Spreadsheet</value>
+    </prop>
+</node>
diff --git a/filter/source/config/fragments/types/calc_OOXML.xcu b/filter/source/config/fragments/types/calc_OOXML.xcu
new file mode 100644
index 0000000..40fd3ee
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_OOXML.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Office Open XML Spreadsheet" oor:op="replace" >
+    <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+    <prop oor:name="URLPattern"/>
+    <prop oor:name="Extensions"><value>xlsx xlsm</value></prop>
+    <prop oor:name="MediaType"/>
+    <prop oor:name="Preferred"><value>false</value></prop>
+    <prop oor:name="PreferredFilter"><value>Calc Office Open XML</value></prop>
+    <prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Spreadsheet</value></prop>
+    <prop oor:name="ClipboardFormat"/>
+</node>
diff --git a/filter/source/config/fragments/types/calc_OOXML_Template.xcu b/filter/source/config/fragments/types/calc_OOXML_Template.xcu
new file mode 100644
index 0000000..aaa0755
--- /dev/null
+++ b/filter/source/config/fragments/types/calc_OOXML_Template.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Office Open XML Spreadsheet Template" oor:op="replace" >
+    <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+    <prop oor:name="URLPattern"/>
+    <prop oor:name="Extensions"><value>xltx xltm</value></prop>
+    <prop oor:name="MediaType"/>
+    <prop oor:name="Preferred"><value>false</value></prop>
+    <prop oor:name="PreferredFilter"><value>Calc Office Open XML Template</value></prop>
+    <prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Spreadsheet Template</value></prop>
+    <prop oor:name="ClipboardFormat"/>
+</node>
commit 60e2e4df2ccad7e0773dd4a15614f60f34f03c7c
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 18:05:59 2010 +0200

    Merged ooxml-filter.diff from ooo-build

diff --git a/filter/source/config/fragments/fcfg_impress.mk b/filter/source/config/fragments/fcfg_impress.mk
index 2e354c8..43447cb 100644
--- a/filter/source/config/fragments/fcfg_impress.mk
+++ b/filter/source/config/fragments/fcfg_impress.mk
@@ -16,7 +16,9 @@ T4_IMPRESS = \
     draw8\
     MS_PowerPoint_2007_XML\
     MS_PowerPoint_2007_XML_AutoPlay\
-    MS_PowerPoint_2007_XML_Template
+    MS_PowerPoint_2007_XML_Template\
+    impress_OOXML_Presentation\
+    impress_OOXML_Presentation_Template
 
 # -----------------------------------------------
 # count = 20
@@ -34,7 +36,9 @@ F4_IMPRESS = \
     impress8_draw\
     impress_MS_PowerPoint_2007_XML\
     impress_MS_PowerPoint_2007_XML_AutoPlay\
-    impress_MS_PowerPoint_2007_XML_Template
+    impress_MS_PowerPoint_2007_XML_Template\
+    impress_OOXML\
+    impress_OOXML_Template
 
 # -----------------------------------------------
 # count = 12
@@ -47,7 +51,8 @@ F4_UI_IMPRESS = \
     impress8_template_ui \
     impress8_draw_ui \
     impress_MS_PowerPoint_2007_XML_ui \
-    impress_MS_PowerPoint_2007_XML_Template_ui
+    impress_OOXML_ui\
+    impress_OOXML_Template_ui
 
 # -----------------------------------------------
 # count = 0
diff --git a/filter/source/config/fragments/fcfg_writer.mk b/filter/source/config/fragments/fcfg_writer.mk
index 34d785f..930e2bd 100644
--- a/filter/source/config/fragments/fcfg_writer.mk
+++ b/filter/source/config/fragments/fcfg_writer.mk
@@ -30,7 +30,9 @@ T4_WRITER = \
     writer8 \
     writer_MS_Word_2003_XML \
     writer_MS_Word_2007_XML \
-    writer_MS_Word_2007_XML_Template
+    writer_MS_Word_2007_XML_Template \
+    writer_OOXML \
+    writer_OOXML_Template
 
 # -----------------------------------------------
 # count = 39
@@ -62,7 +64,9 @@ F4_WRITER = \
     writer8_template \
     MS_Word_2003_XML \
     MS_Word_2007_XML \
-    MS_Word_2007_XML_Template
+    MS_Word_2007_XML_Template \
+    OOXML_Text \
+    OOXML_Text_Template
 
 # -----------------------------------------------
 # count = 14
@@ -78,7 +82,9 @@ F4_UI_WRITER = \
     writer8_template_ui \
     MS_Word_2003_XML_ui \
     MS_Word_2007_XML_ui \
-    MS_Word_2007_XML_Template_ui
+    MS_Word_2007_XML_Template_ui \
+    OOXML_Text_ui \
+    OOXML_Text_Template_ui
 
 # -----------------------------------------------
 # count = 0
diff --git a/filter/source/config/fragments/filters/OOXML_Text.xcu b/filter/source/config/fragments/filters/OOXML_Text.xcu
new file mode 100644
index 0000000..9943af5
--- /dev/null
+++ b/filter/source/config/fragments/filters/OOXML_Text.xcu
@@ -0,0 +1,14 @@
+    <node oor:name="Office Open XML Text" oor:op="replace">
+        <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER</value></prop>
+        <prop oor:name="UIComponent"/>
+        <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.WriterFilter</value></prop>
+        <prop oor:name="UserData"><value></value></prop>
+        <prop oor:name="UIName">
+            <value xml:lang="x-default">Office Open XML Text</value>
+        </prop>
+        <!-- ISO/IEC 29500:2008 -->
+        <prop oor:name="FileFormatVersion"><value>1</value></prop>
+        <prop oor:name="Type"><value>writer_OOXML</value></prop>
+        <prop oor:name="TemplateName"/>
+        <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
+    </node>
diff --git a/filter/source/config/fragments/filters/OOXML_Text_Template.xcu b/filter/source/config/fragments/filters/OOXML_Text_Template.xcu
new file mode 100644
index 0000000..ffc9dfd
--- /dev/null
+++ b/filter/source/config/fragments/filters/OOXML_Text_Template.xcu
@@ -0,0 +1,14 @@
+    <node oor:name="Office Open XML Text Template" oor:op="replace">
+        <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER TEMPLATE TEMPLATEPATH</value></prop>
+        <prop oor:name="UIComponent"/>
+        <prop oor:name="FilterService"><value>com.sun.star.comp.Writer.WriterFilter</value></prop>
+        <prop oor:name="UserData"><value></value></prop>
+        <prop oor:name="UIName">
+            <value xml:lang="x-default">Office Open XML Text Template</value>
+        </prop>
+        <!-- ISO/IEC 29500:2008 -->
+        <prop oor:name="FileFormatVersion"><value>1</value></prop>
+        <prop oor:name="Type"><value>writer_OOXML_Text_Template</value></prop>
+        <prop oor:name="TemplateName"/>
+        <prop oor:name="DocumentService"><value>com.sun.star.text.TextDocument</value></prop>
+    </node>
diff --git a/filter/source/config/fragments/filters/OOXML_Text_Template_ui.xcu b/filter/source/config/fragments/filters/OOXML_Text_Template_ui.xcu
new file mode 100644
index 0000000..e790fb7
--- /dev/null
+++ b/filter/source/config/fragments/filters/OOXML_Text_Template_ui.xcu
@@ -0,0 +1,6 @@
+    <node oor:name="Office Open XML Text Template">
+        <prop oor:name="UIName">
+            <value xml:lang="en-US">Office Open XML Text Template</value>
+            <value xml:lang="de">Office Open XML Text Vorlage</value>
+        </prop>
+    </node>
diff --git a/filter/source/config/fragments/filters/OOXML_Text_ui.xcu b/filter/source/config/fragments/filters/OOXML_Text_ui.xcu
new file mode 100644
index 0000000..483f23d
--- /dev/null
+++ b/filter/source/config/fragments/filters/OOXML_Text_ui.xcu
@@ -0,0 +1,6 @@
+    <node oor:name="Office Open XML Text">
+        <prop oor:name="UIName">
+            <value xml:lang="en-US">Office Open XML Text</value>
+            <value xml:lang="de">Office Open XML Text</value>
+        </prop>
+    </node>
diff --git a/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template.xcu b/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template.xcu
index 4fad96f..28b9ea8 100644
--- a/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template.xcu
+++ b/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_Template.xcu
@@ -3,6 +3,7 @@
     <prop oor:name="UIComponent"/>
     <prop oor:name="FilterService"><value>com.sun.star.comp.Impress.oox.PowerPointImport</value></prop>
     <prop oor:name="UserData"/>
+    <prop oor:name="UIName"><value xml:lang="x-default">Microsoft PowerPoint 2007 XML Template</value></prop>
     <prop oor:name="FileFormatVersion"/>
     <prop oor:name="Type"><value>MS PowerPoint 2007 XML Template</value></prop>
     <prop oor:name="TemplateName"/>
diff --git a/filter/source/config/fragments/filters/impress_OOXML.xcu b/filter/source/config/fragments/filters/impress_OOXML.xcu
new file mode 100644
index 0000000..d1a5adb
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_OOXML.xcu
@@ -0,0 +1,12 @@
+<node oor:name="Impress Office Open XML" oor:op="replace">
+    <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+    <prop oor:name="UIComponent"/>
+    <prop oor:name="FilterService"><value>com.sun.star.comp.Impress.oox.PowerPointImport</value></prop>
+    <prop oor:name="UserData"><value>OOXML</value></prop>
+    <prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Presentation</value></prop>
+    <!-- ISO/IEC 29500:2008 -->
+    <prop oor:name="FileFormatVersion"><value>1</value></prop>
+    <prop oor:name="Type"><value>Office Open XML Presentation</value></prop>
+    <prop oor:name="TemplateName"/>
+    <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/impress_OOXML_Template.xcu b/filter/source/config/fragments/filters/impress_OOXML_Template.xcu
new file mode 100644
index 0000000..e9febe1
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_OOXML_Template.xcu
@@ -0,0 +1,12 @@
+<node oor:name="Impress Office Open XML Template" oor:op="replace">
+    <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER TEMPLATE TEMPLATEPATH PREFERRED</value></prop>
+    <prop oor:name="UIComponent"/>
+    <prop oor:name="FilterService"><value>com.sun.star.comp.Impress.oox.PowerPointImport</value></prop>
+    <prop oor:name="UserData"><value>OOXML</value></prop>
+    <prop oor:name="UIName"><value xml:lang="x-default">Office Open XML Presentation Template</value></prop>
+    <!-- ISO/IEC 29500:2008 -->
+    <prop oor:name="FileFormatVersion"><value>1</value></prop>
+    <prop oor:name="Type"><value>Office Open XML Presentation Template</value></prop>
+    <prop oor:name="TemplateName"/>
+    <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/filters/impress_OOXML_Template_ui.xcu b/filter/source/config/fragments/filters/impress_OOXML_Template_ui.xcu
new file mode 100644
index 0000000..f33346d
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_OOXML_Template_ui.xcu
@@ -0,0 +1,5 @@
+<node oor:name="Office Open XML Presentation Template">
+    <prop oor:name="UIName">
+        <value xml:lang="en-US">Office Open XML Presentation Template</value>
+    </prop>
+</node>
diff --git a/filter/source/config/fragments/filters/impress_OOXML_ui.xcu b/filter/source/config/fragments/filters/impress_OOXML_ui.xcu
new file mode 100644
index 0000000..cadc369
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_OOXML_ui.xcu
@@ -0,0 +1,5 @@
+<node oor:name="Office Open XML Presentation">
+    <prop oor:name="UIName">
+        <value xml:lang="en-US">Office Open XML Presentation</value>
+    </prop>
+</node>
diff --git a/filter/source/config/fragments/types/impress_OOXML_Presentation.xcu b/filter/source/config/fragments/types/impress_OOXML_Presentation.xcu
new file mode 100644
index 0000000..501f2e4
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_OOXML_Presentation.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Office Open XML Presentation" oor:op="replace">
+    <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+    <prop oor:name="URLPattern"/>
+    <prop oor:name="Extensions"><value>pptx pptm</value></prop>
+    <prop oor:name="MediaType"/>
+    <prop oor:name="Preferred"><value>true</value></prop>
+    <prop oor:name="PreferredFilter"><value>Impress Office Open XML</value></prop>
+    <prop oor:name="UIName"><value>Office Open XML Presentation</value></prop>
+    <prop oor:name="ClipboardFormat"/>
+</node>
diff --git a/filter/source/config/fragments/types/impress_OOXML_Presentation_Template.xcu b/filter/source/config/fragments/types/impress_OOXML_Presentation_Template.xcu
new file mode 100644
index 0000000..c2ea660
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_OOXML_Presentation_Template.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Office Open XML Presentation Template" oor:op="replace">
+    <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+    <prop oor:name="URLPattern"/>
+    <prop oor:name="Extensions"><value>potm potx</value></prop>
+    <prop oor:name="MediaType"/>
+    <prop oor:name="Preferred"><value>true</value></prop>
+    <prop oor:name="PreferredFilter"><value>Impress Office Open XML Template</value></prop>
+    <prop oor:name="UIName"><value>Office Open XML Presentation Template</value></prop>
+    <prop oor:name="ClipboardFormat"/>
+</node>
diff --git a/filter/source/config/fragments/types/writer_OOXML.xcu b/filter/source/config/fragments/types/writer_OOXML.xcu
new file mode 100644
index 0000000..346b00e
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_OOXML.xcu
@@ -0,0 +1,12 @@
+    <node oor:name="writer_OOXML" oor:op="replace" >
+    <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+        <prop oor:name="URLPattern"/>
+        <prop oor:name="Extensions"><value>docx docm</value></prop>
+        <prop oor:name="MediaType"><value>application/vnd.openxmlformats-officedocument.wordprocessingml.document</value></prop>
+        <prop oor:name="Preferred"><value>true</value></prop>
+        <prop oor:name="PreferredFilter"><value>Office Open XML Text</value></prop>
+        <prop oor:name="UIName">
+            <value>Office Open XML Text Document</value>
+        </prop>
+        <prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop>
+    </node>
diff --git a/filter/source/config/fragments/types/writer_OOXML_Template.xcu b/filter/source/config/fragments/types/writer_OOXML_Template.xcu
new file mode 100644
index 0000000..566e08d
--- /dev/null
+++ b/filter/source/config/fragments/types/writer_OOXML_Template.xcu
@@ -0,0 +1,12 @@
+    <node oor:name="writer_OOXML_Text_Template" oor:op="replace" >
+    <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+        <prop oor:name="URLPattern"/>
+        <prop oor:name="Extensions"><value>dotx dotm</value></prop>
+        <prop oor:name="MediaType"><value>application/vnd.openxmlformats-officedocument.wordprocessingml.template</value></prop>
+        <prop oor:name="Preferred"><value>true</value></prop>
+        <prop oor:name="PreferredFilter"><value>Office Open XML Text Template</value></prop>
+        <prop oor:name="UIName">
+            <value>Office Open XML Text Template</value>
+        </prop>
+        <prop oor:name="ClipboardFormat"><value>MSWordDoc</value></prop>
+    </node>
diff --git a/oox/inc/oox/core/filterbase.hxx b/oox/inc/oox/core/filterbase.hxx
index 15ed6cc..d54c534 100644
--- a/oox/inc/oox/core/filterbase.hxx
+++ b/oox/inc/oox/core/filterbase.hxx
@@ -75,6 +75,12 @@ namespace core {
 
 // ============================================================================
 
+enum OoxmlVersion
+{
+    ECMA_DIALECT,
+    ISOIEC_29500_2008
+};
+
 struct FilterBaseImpl;
 
 typedef ::cppu::WeakImplHelper5<
@@ -98,6 +104,8 @@ public:
     /** Returns true, if filter is an export filter. */
     bool                isExportFilter() const;
 
+    OoxmlVersion getVersion( );
+
     /** Derived classes implement import of the entire document. */
     virtual bool        importDocument() = 0;
 
diff --git a/oox/source/core/filterbase.cxx b/oox/source/core/filterbase.cxx
index 86ecc7c..6890ad4 100644
--- a/oox/source/core/filterbase.cxx
+++ b/oox/source/core/filterbase.cxx
@@ -28,6 +28,7 @@
 
 #include "oox/core/filterbase.hxx"
 #include <set>
+#include <com/sun/star/container/XNameAccess.hpp>
 #include <com/sun/star/frame/XModel.hpp>
 #include <com/sun/star/task/XStatusIndicator.hpp>
 #include <com/sun/star/task/XInteractionHandler.hpp>
@@ -64,6 +65,7 @@ using ::com::sun::star::io::XStream;
 using ::com::sun::star::task::XStatusIndicator;
 using ::com::sun::star::task::XInteractionHandler;
 using ::com::sun::star::graphic::XGraphic;
+using ::com::sun::star::container::XNameAccess;
 using ::comphelper::MediaDescriptor;
 using ::comphelper::SequenceAsHashMap;
 using ::oox::ole::OleObjectHelper;
@@ -147,6 +149,7 @@ struct FilterBaseImpl
     MediaDescriptor     maMediaDesc;
     OUString            maFileUrl;
     StorageRef          mxStorage;
+    OoxmlVersion        meVersion;
 
     GraphicHelperRef    mxGraphicHelper;        /// Graphic and graphic object handling.
     ModelObjHelperRef   mxModelObjHelper;       /// Tables to create new named drawing objects.
@@ -174,6 +177,7 @@ struct FilterBaseImpl
 
 FilterBaseImpl::FilterBaseImpl( const Reference< XMultiServiceFactory >& rxGlobalFactory ) :
     meDirection( FILTERDIRECTION_UNKNOWN ),
+    meVersion( ECMA_DIALECT ),
     mxGlobalFactory( rxGlobalFactory )
 {
     OSL_ENSURE( mxGlobalFactory.is(), "FilterBaseImpl::FilterBaseImpl - missing service factory" );
@@ -237,6 +241,11 @@ bool FilterBase::isExportFilter() const
     return mxImpl->meDirection == FILTERDIRECTION_EXPORT;
 }
 
+OoxmlVersion FilterBase::getVersion( )
+{
+    return mxImpl->meVersion;
+}
+
 // ----------------------------------------------------------------------------
 
 Any FilterBase::getArgument( const OUString& rArgName ) const
@@ -559,6 +568,25 @@ void FilterBase::setMediaDescriptor( const Sequence< PropertyValue >& rMediaDesc
     mxImpl->mxTargetFrame = mxImpl->maMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_FRAME(), Reference< XFrame >() );
     mxImpl->mxStatusIndicator = mxImpl->maMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_STATUSINDICATOR(), Reference< XStatusIndicator >() );
     mxImpl->mxInteractionHandler = mxImpl->maMediaDesc.getUnpackedValueOrDefault( MediaDescriptor::PROP_INTERACTIONHANDLER(), Reference< XInteractionHandler >() );
+
+    // Check for ISO OOXML
+    OUString sFilterName = mxImpl->maMediaDesc.getUnpackedValueOrDefault( CREATE_OUSTRING( "FilterName" ), OUString() );
+    try
+    {
+        Reference< XNameAccess > xFilters( getGlobalFactory()->createInstance(
+                    CREATE_OUSTRING( "com.sun.star.document.FilterFactory" ) ), UNO_QUERY_THROW );
+        Any aValues = xFilters->getByName( sFilterName );
+        Sequence<PropertyValue > aPropSeq;
+        aValues >>= aPropSeq;
+        SequenceAsHashMap aProps( aPropSeq );
+
+        sal_Int32 nVersion = aProps.getUnpackedValueOrDefault( CREATE_OUSTRING( "FileFormatVersion" ), sal_Int32( 0 ) );
+        mxImpl->meVersion = OoxmlVersion( nVersion );
+    }
+    catch ( Exception& )
+    {
+        // Not ISO OOXML
+    }
 }
 
 GraphicHelper* FilterBase::implCreateGraphicHelper() const
commit 10b44cee56bcc56cd4260252fb9780939f511d5f
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 18:02:38 2010 +0200

    Merged pptx-autoplay-fix.diff from ooo-build

diff --git a/filter/source/config/cache/constant.hxx b/filter/source/config/cache/constant.hxx
index 780f05a..067e75b 100644
--- a/filter/source/config/cache/constant.hxx
+++ b/filter/source/config/cache/constant.hxx
@@ -132,6 +132,7 @@ extern rtl::OUString pFilterStrings[];
 #define  FLAGNAME_PACKED            _FILTER_CONFIG_FROM_ASCII_("PACKED"           )
 #define  FLAGNAME_PASSWORDTOMODIFY  _FILTER_CONFIG_FROM_ASCII_("PASSWORDTOMODIFY" )
 #define  FLAGNAME_PREFERRED         _FILTER_CONFIG_FROM_ASCII_("PREFERRED"        )
+#define  FLAGNAME_STARTPRESENTATION _FILTER_CONFIG_FROM_ASCII_("STARTPRESENTATION")
 #define  FLAGNAME_READONLY          _FILTER_CONFIG_FROM_ASCII_("READONLY"         )
 #define  FLAGNAME_SILENTEXPORT      _FILTER_CONFIG_FROM_ASCII_("SILENTEXPORT"     )
 #define  FLAGNAME_SUPPORTSSELECTION _FILTER_CONFIG_FROM_ASCII_("SUPPORTSSELECTION")
@@ -165,6 +166,7 @@ extern rtl::OUString pFilterStrings[];
 #define  FLAGVAL_ENCRYPTION        0x01000000 // 16777216
 #define  FLAGVAL_PASSWORDTOMODIFY  0x02000000 // 33554432
 #define  FLAGVAL_PREFERRED         0x10000000 // 268435456
+#define  FLAGVAL_STARTPRESENTATION 0x20000000 // 268435456
 #define  FLAGVAL_ALL               0xffffffff // 4294967295
 
 /** @short  uno service names of our document services
diff --git a/filter/source/config/cache/filtercache.cxx b/filter/source/config/cache/filtercache.cxx
index 0b636cb..da62c69 100644
--- a/filter/source/config/cache/filtercache.cxx
+++ b/filter/source/config/cache/filtercache.cxx
@@ -2108,6 +2108,7 @@ css::uno::Sequence< ::rtl::OUString > FilterCache::impl_convertFlagField2FlagNam
     if ((nFlags & FLAGVAL_PACKED           ) == FLAGVAL_PACKED           ) lFlagNames.push_back(FLAGNAME_PACKED           );
     if ((nFlags & FLAGVAL_PASSWORDTOMODIFY ) == FLAGVAL_PASSWORDTOMODIFY ) lFlagNames.push_back(FLAGNAME_PASSWORDTOMODIFY );
     if ((nFlags & FLAGVAL_PREFERRED        ) == FLAGVAL_PREFERRED        ) lFlagNames.push_back(FLAGNAME_PREFERRED        );
+    if ((nFlags & FLAGVAL_STARTPRESENTATION) == FLAGVAL_STARTPRESENTATION) lFlagNames.push_back(FLAGNAME_STARTPRESENTATION);
     if ((nFlags & FLAGVAL_READONLY         ) == FLAGVAL_READONLY         ) lFlagNames.push_back(FLAGNAME_READONLY         );
     if ((nFlags & FLAGVAL_SILENTEXPORT     ) == FLAGVAL_SILENTEXPORT     ) lFlagNames.push_back(FLAGNAME_SILENTEXPORT     );
     if ((nFlags & FLAGVAL_SUPPORTSSELECTION) == FLAGVAL_SUPPORTSSELECTION) lFlagNames.push_back(FLAGNAME_SUPPORTSSELECTION);
@@ -2216,6 +2217,11 @@ sal_Int32 FilterCache::impl_convertFlagNames2FlagField(const css::uno::Sequence<
             nField |= FLAGVAL_PREFERRED;
             continue;
         }
+        if (pNames[i].equals(FLAGNAME_STARTPRESENTATION))
+        {
+            nField |= FLAGVAL_STARTPRESENTATION;
+            continue;
+        }
         if (pNames[i].equals(FLAGNAME_READONLY))
         {
             nField |= FLAGVAL_READONLY;
diff --git a/filter/source/config/fragments/fcfg_impress.mk b/filter/source/config/fragments/fcfg_impress.mk
index f5c1c7d..2e354c8 100644
--- a/filter/source/config/fragments/fcfg_impress.mk
+++ b/filter/source/config/fragments/fcfg_impress.mk
@@ -5,6 +5,7 @@ all_fragments+=impress
 T4_IMPRESS = \
     draw_StarOffice_XML_Draw \
     impress_MS_PowerPoint_97 \
+    impress_MS_PowerPoint_97_AutoPlay \
     impress_MS_PowerPoint_97_Vorlage \
     impress_StarOffice_XML_Impress \
     impress_StarOffice_XML_Impress_Template \
@@ -14,12 +15,14 @@ T4_IMPRESS = \
     impress8_template\
     draw8\
     MS_PowerPoint_2007_XML\
+    MS_PowerPoint_2007_XML_AutoPlay\
     MS_PowerPoint_2007_XML_Template
 
 # -----------------------------------------------
 # count = 20
 F4_IMPRESS = \
     MS_PowerPoint_97 \
+    MS_PowerPoint_97_AutoPlay \
     MS_PowerPoint_97_Vorlage \
     impress_StarOffice_XML_Draw \
     StarOffice_XML__Impress_ \
@@ -30,6 +33,7 @@ F4_IMPRESS = \
     impress8_template\
     impress8_draw\
     impress_MS_PowerPoint_2007_XML\
+    impress_MS_PowerPoint_2007_XML_AutoPlay\
     impress_MS_PowerPoint_2007_XML_Template
 
 # -----------------------------------------------
diff --git a/filter/source/config/fragments/filters/MS_PowerPoint_97_AutoPlay.xcu b/filter/source/config/fragments/filters/MS_PowerPoint_97_AutoPlay.xcu
new file mode 100644
index 0000000..c19eeb4
--- /dev/null
+++ b/filter/source/config/fragments/filters/MS_PowerPoint_97_AutoPlay.xcu
@@ -0,0 +1,13 @@
+    <node oor:name="MS PowerPoint 97 AutoPlay" oor:op="replace">
+        <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN STARTPRESENTATION</value></prop>
+        <prop oor:name="UIComponent"/>
+        <prop oor:name="FilterService"/>
+        <prop oor:name="UserData"><value>sdfilt</value></prop>
+        <prop oor:name="UIName">
+            <value xml:lang="x-default">Microsoft PowerPoint 97/2000/XP</value>
+        </prop>
+        <prop oor:name="FileFormatVersion"><value>0</value></prop>
+        <prop oor:name="Type"><value>impress_MS_PowerPoint_97_AutoPlay</value></prop>
+        <prop oor:name="TemplateName"/>
+        <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+    </node>
diff --git a/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_AutoPlay.xcu b/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_AutoPlay.xcu
new file mode 100644
index 0000000..7a2e17f
--- /dev/null
+++ b/filter/source/config/fragments/filters/impress_MS_PowerPoint_2007_XML_AutoPlay.xcu
@@ -0,0 +1,10 @@
+<node oor:name="Impress MS PowerPoint 2007 XML AutoPlay" oor:op="replace">
+    <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED STARTPRESENTATION</value></prop>
+    <prop oor:name="UIComponent"/>
+    <prop oor:name="FilterService"><value>com.sun.star.comp.Impress.oox.PowerPointImport</value></prop>
+    <prop oor:name="UserData"/>
+    <prop oor:name="FileFormatVersion"/>
+    <prop oor:name="Type"><value>MS PowerPoint 2007 XML AutoPlay</value></prop>
+    <prop oor:name="TemplateName"/>
+    <prop oor:name="DocumentService"><value>com.sun.star.presentation.PresentationDocument</value></prop>
+</node>
diff --git a/filter/source/config/fragments/types/MS_PowerPoint_2007_XML_AutoPlay.xcu b/filter/source/config/fragments/types/MS_PowerPoint_2007_XML_AutoPlay.xcu
new file mode 100644
index 0000000..681b7b5
--- /dev/null
+++ b/filter/source/config/fragments/types/MS_PowerPoint_2007_XML_AutoPlay.xcu
@@ -0,0 +1,10 @@
+<node oor:name="MS PowerPoint 2007 XML AutoPlay" oor:op="replace" >
+    <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
+    <prop oor:name="URLPattern"/>
+    <prop oor:name="Extensions"><value>ppsx</value></prop>
+    <prop oor:name="MediaType"/>
+    <prop oor:name="Preferred"><value>true</value></prop>
+    <prop oor:name="PreferredFilter"><value>Impress MS PowerPoint 2007 XML AutoPlay</value></prop>
+    <prop oor:name="UIName"><value xml:lang="x-default">Microsoft PowerPoint 2007 XML</value></prop>
+    <prop oor:name="ClipboardFormat"/>
+</node>
diff --git a/filter/source/config/fragments/types/impress_MS_PowerPoint_97.xcu b/filter/source/config/fragments/types/impress_MS_PowerPoint_97.xcu
index 3584127..c7a17a9 100644
--- a/filter/source/config/fragments/types/impress_MS_PowerPoint_97.xcu
+++ b/filter/source/config/fragments/types/impress_MS_PowerPoint_97.xcu
@@ -1,7 +1,7 @@
     <node oor:name="impress_MS_PowerPoint_97" oor:op="replace" >
         <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
         <prop oor:name="URLPattern"/>
-        <prop oor:name="Extensions"><value>ppt pps</value></prop>
+        <prop oor:name="Extensions"><value>ppt</value></prop>
         <prop oor:name="MediaType"><value>application/vnd.ms-powerpoint</value></prop>
         <prop oor:name="Preferred"><value>false</value></prop>
         <prop oor:name="PreferredFilter"><value>MS PowerPoint 97</value></prop>
diff --git a/filter/source/config/fragments/types/impress_MS_PowerPoint_97_AutoPlay.xcu b/filter/source/config/fragments/types/impress_MS_PowerPoint_97_AutoPlay.xcu
new file mode 100644
index 0000000..7cf518c
--- /dev/null
+++ b/filter/source/config/fragments/types/impress_MS_PowerPoint_97_AutoPlay.xcu
@@ -0,0 +1,12 @@
+    <node oor:name="impress_MS_PowerPoint_97_AutoPlay" oor:op="replace" >
+        <prop oor:name="DetectService"><value>com.sun.star.comp.draw.FormatDetector</value></prop>
+        <prop oor:name="URLPattern"/>
+        <prop oor:name="Extensions"><value>pps</value></prop>
+        <prop oor:name="MediaType"><value>application/vnd.ms-powerpoint</value></prop>
+        <prop oor:name="Preferred"><value>false</value></prop>
+        <prop oor:name="PreferredFilter"><value>MS PowerPoint 97 AutoPlay</value></prop>
+        <prop oor:name="UIName">
+            <value>Microsoft PowerPoint 97/2000/XP</value>
+        </prop>
+        <prop oor:name="ClipboardFormat"/>
+    </node>
diff --git a/oox/source/core/filterdetect.cxx b/oox/source/core/filterdetect.cxx
index afd31e7..1f52de4 100644
--- a/oox/source/core/filterdetect.cxx
+++ b/oox/source/core/filterdetect.cxx
@@ -205,6 +205,10 @@ OUString FilterDetectDocHandler::getFilterNameFromContentType( const OUString& r
         rContentType.equalsAscii( "application/vnd.ms-powerpoint.presentation.macroEnabled.main+xml" ) )
         return CREATE_OUSTRING( "MS PowerPoint 2007 XML" );
 
+    if( rContentType.equalsAscii( "application/vnd.openxmlformats-officedocument.presentationml.slideshow.main+xml" ) ||
+        rContentType.equalsAscii( "application/vnd.ms-powerpoint.slideshow.macroEnabled.main+xml" ) )
+        return CREATE_OUSTRING( "MS PowerPoint 2007 XML AutoPlay" );
+
     if( rContentType.equalsAscii( "application/vnd.openxmlformats-officedocument.presentationml.template.main+xml" ) ||
         rContentType.equalsAscii( "application/vnd.ms-powerpoint.template.macroEnabled.main+xml" ) )
         return CREATE_OUSTRING( "MS PowerPoint 2007 XML Template" );
commit 4e4ef71c12e5a03cd77bd798321660fa5cedf999
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 17:50:18 2010 +0200

    Merged xlsx-shared-xlsx-shared-import-and-export.diff from ooo-build

diff --git a/oox/inc/oox/xls/excelfilter.hxx b/oox/inc/oox/xls/excelfilter.hxx
index 1409740..49a0c85 100644
--- a/oox/inc/oox/xls/excelfilter.hxx
+++ b/oox/inc/oox/xls/excelfilter.hxx
@@ -70,6 +70,8 @@ public:
     virtual const ::oox::drawingml::table::TableStyleListPtr getTableStyles();
     virtual ::oox::drawingml::chart::ChartConverter& getChartConverter();
 
+    virtual sal_Bool SAL_CALL filter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rDescriptor ) throw( ::com::sun::star::uno::RuntimeException );
+
 private:
     virtual GraphicHelper* implCreateGraphicHelper() const;
     virtual ::rtl::OUString implGetImplementationName() const;
diff --git a/oox/source/xls/excelfilter.cxx b/oox/source/xls/excelfilter.cxx
index a1d5729..b5b3dc6 100644
--- a/oox/source/xls/excelfilter.cxx
+++ b/oox/source/xls/excelfilter.cxx
@@ -42,7 +42,9 @@ using ::com::sun::star::uno::Any;
 using ::com::sun::star::uno::Reference;
 using ::com::sun::star::uno::Sequence;
 using ::com::sun::star::uno::Exception;
+using ::com::sun::star::uno::UNO_QUERY;
 using ::com::sun::star::uno::XInterface;
+using ::com::sun::star::lang::XComponent;
 using ::com::sun::star::lang::XMultiServiceFactory;
 using ::com::sun::star::xml::sax::XFastDocumentHandler;
 using ::oox::core::BinaryFilterBase;
@@ -160,6 +162,32 @@ GraphicHelper* ExcelFilter::implCreateGraphicHelper() const
     return new ExcelGraphicHelper( getWorkbookData() );
 }
 
+sal_Bool SAL_CALL ExcelFilter::filter( const ::com::sun::star::uno::Sequence< ::com::sun::star::beans::PropertyValue >& rDescriptor ) throw( ::com::sun::star::uno::RuntimeException )
+{
+    if ( XmlFilterBase::filter( rDescriptor ) )
+        return true;
+
+    if ( isExportFilter() )
+    {
+        Reference< XExporter > xExporter( getGlobalFactory()->createInstance( CREATE_OUSTRING( "com.sun.star.comp.oox.ExcelFilterExport" ) ), UNO_QUERY );
+
+        if ( xExporter.is() )
+        {
+            Reference< XComponent > xDocument( getModel(), UNO_QUERY );
+            Reference< XFilter > xFilter( xExporter, UNO_QUERY );
+
+            if ( xFilter.is() )
+            {
+                xExporter->setSourceDocument( xDocument );
+                if ( xFilter->filter( rDescriptor ) )
+                    return true;
+            }
+        }
+    }
+
+    return false;
+}
+
 OUString ExcelFilter::implGetImplementationName() const
 {
     return ExcelFilter_getImplementationName();
commit 4717bdf8d8d0698f0de54e1c683aaa7b1295b1a7
Author: Katarina Machalkova <kmachalkova at suse.cz>
Date:   Wed Oct 13 17:45:03 2010 +0200

    Merged xlsx-shared-xlsx-snapshot.diff from ooo-build

diff --git a/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu b/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu
index 5089278..50d29ce 100644
--- a/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu
+++ b/filter/source/config/fragments/filters/calc_MS_Excel_2007_XML.xcu
@@ -1,5 +1,5 @@
 <node oor:name="Calc MS Excel 2007 XML" oor:op="replace">
-    <prop oor:name="Flags"><value>IMPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
+    <prop oor:name="Flags"><value>IMPORT EXPORT ALIEN 3RDPARTYFILTER PREFERRED</value></prop>
     <prop oor:name="UIComponent"/>
     <prop oor:name="FilterService"><value>com.sun.star.comp.oox.ExcelFilter</value></prop>
     <prop oor:name="UserData"/>
diff --git a/filter/source/config/fragments/types/MS_Excel_2007_XML.xcu b/filter/source/config/fragments/types/MS_Excel_2007_XML.xcu
index edd1498..ab9e409 100644
--- a/filter/source/config/fragments/types/MS_Excel_2007_XML.xcu
+++ b/filter/source/config/fragments/types/MS_Excel_2007_XML.xcu
@@ -1,7 +1,7 @@
 <node oor:name="MS Excel 2007 XML" oor:op="replace" >
     <prop oor:name="DetectService"><value>com.sun.star.comp.oox.FormatDetector</value></prop>
     <prop oor:name="URLPattern"/>
-    <prop oor:name="Extensions"><value>xlsm xlsx</value></prop>
+    <prop oor:name="Extensions"><value>xlsx xlsm</value></prop>
     <prop oor:name="MediaType"/>
     <prop oor:name="Preferred"><value>false</value></prop>
     <prop oor:name="PreferredFilter"><value>Calc MS Excel 2007 XML</value></prop>


More information about the Libreoffice-commits mailing list