From f3e0ea8be002666bb65c3e7a4c16d42077fcbe60 Mon Sep 17 00:00:00 2001
From: Jan Nieuwenhuizen <janneke@gnu.org>
Date: Mon, 23 Mar 2009 21:17:26 +0100
Subject: [PATCH] ooxml: xls/tablefragment: grok <autoFilter/>.  Fixes n#479381.

---
 oox/source/xls/tablefragment.cxx |   25 +++++++++++++++++++++++++
 1 files changed, 25 insertions(+), 0 deletions(-)

diff --git a/oox/source/xls/tablefragment.cxx b/oox/source/xls/tablefragment.cxx
index 97f572c..2defc9e 100644
--- a/oox/source/xls/tablefragment.cxx
+++ b/oox/source/xls/tablefragment.cxx
@@ -30,6 +30,8 @@
 
 #include "oox/xls/tablefragment.hxx"
 
+#include <oox/xls/autofiltercontext.hxx>
+
 using ::rtl::OUString;
 using ::oox::core::RecordInfo;
 
@@ -47,10 +49,33 @@ OoxTableFragment::OoxTableFragment( const WorksheetHelper& rHelper, const OUStri
 
 ContextWrapper OoxTableFragment::onCreateContext( sal_Int32 nElement, const AttributeList& )
 {
+#if 1 // hmm, must only do this after succesful create of <table> ...
+        switch (nElement)
+        {
+            case XLS_TOKEN( autoFilter ):
+                {
+                    OSL_TRACE ("%s: AUTO FILTER0: *********", __PRETTY_FUNCTION__);
+                    return new OoxAutoFilterContext( *this );
+                }
+        }
+#endif
+
     switch( getCurrentElement() )
     {
         case XML_ROOT_CONTEXT:
             return  (nElement == XLS_TOKEN( table ));
+        case XLS_TOKEN( worksheet ):
+            // ...something like this (worksheetfragment.cxx), but
+            // this does not work here -- we need to do something
+            // extra?
+            switch (nElement)
+            {
+                case XLS_TOKEN( autoFilter ):
+                {
+                    OSL_TRACE ("%s: AUTO FILTER: *********", __PRETTY_FUNCTION__);
+                    return new OoxAutoFilterContext( *this );
+                }
+            }
     }
     return false;
 }
-- 
1.6.0.rc1.49.g98a8


