summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@collabora.co.uk>2014-04-23 02:35:25 +0200
committerMarkus Mohrhard <markus.mohrhard@collabora.co.uk>2014-04-23 02:36:17 +0200
commit86c065a143c8c35f744fa3c1160f3550446ffcf3 (patch)
tree6099c7b28787d05796ea04be58c3315da2f5c59e
parentRename OutputDevice::ImplGetGraphics to GetGraphics (diff)
downloadcore-86c065a143c8c35f744fa3c1160f3550446ffcf3.tar.gz
core-86c065a143c8c35f744fa3c1160f3550446ffcf3.zip
WIP: orcus autofilter import
Change-Id: I44ed24fbd4d67a0f440202117a980c7d349016b9
-rw-r--r--sc/source/filter/inc/orcusinterface.hxx23
-rw-r--r--sc/source/filter/orcus/interface.cxx25
2 files changed, 48 insertions, 0 deletions
diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx
index aba1f6d214fb..03eef2c96d59 100644
--- a/sc/source/filter/inc/orcusinterface.hxx
+++ b/sc/source/filter/inc/orcusinterface.hxx
@@ -71,12 +71,33 @@ public:
virtual size_t commit_segments() SAL_OVERRIDE;
};
+class ScOrcusAutoFilter : public orcus::spreadsheet::iface::import_auto_filter
+{
+public:
+
+ virtual ~ScOrcusAutoFilter();
+
+ virtual void set_range(const char* p_ref, size_t n_ref);
+
+ virtual void set_column(orcus::spreadsheet::col_t col);
+
+ virtual void append_column_match_value(const char* p, size_t n);
+
+ virtual void commit_column();
+
+ virtual void commit();
+
+private:
+
+};
+
class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet
{
ScDocumentImport& mrDoc;
SCTAB mnTab;
ScOrcusFactory& mrFactory;
sc::SharedFormulaGroups maFormulaGroups;
+ ScOrcusAutoFilter maAutoFilter;
typedef std::map<size_t, ScRangeData*> SharedFormulaContainer;
SharedFormulaContainer maSharedFormulas;
@@ -88,6 +109,8 @@ class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet
public:
ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& rFactory);
+ virtual orcus::spreadsheet::iface::import_auto_filter* get_auto_filter() { return &maAutoFilter; }
+
// Orcus import interface
virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n) SAL_OVERRIDE;
virtual void set_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex) SAL_OVERRIDE;
diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx
index 085a2d624592..10e5998654e0 100644
--- a/sc/source/filter/orcus/interface.cxx
+++ b/sc/source/filter/orcus/interface.cxx
@@ -647,5 +647,30 @@ size_t ScOrcusStyles::commit_cell_style()
return 0;
}
+// auto filter import
+
+ScOrcusAutoFilter::~ScOrcusAutoFilter()
+{
+}
+
+void ScOrcusAutoFilter::set_range(const char* p_ref, size_t n_ref)
+{
+}
+
+void ScOrcusAutoFilter::set_column(orcus::spreadsheet::col_t /*col*/)
+{
+}
+
+void ScOrcusAutoFilter::append_column_match_value(const char* p, size_t n)
+{
+}
+
+void ScOrcusAutoFilter::commit_column()
+{
+}
+
+void ScOrcusAutoFilter::commit()
+{
+}
/* vim:set shiftwidth=4 softtabstop=4 expandtab: */