summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorKohei Yoshida <kohei.yoshida@gmail.com>2013-04-08 14:58:39 -0400
committerKohei Yoshida <kohei.yoshida@gmail.com>2013-04-09 13:01:24 -0400
commit50d044d59ac27781932e6f15549f730d693be56e (patch)
tree3c303b5ffedf068789101384f2c2a64aba5560ac /sc
parent2dc7318d845552a45aeb4f87ce8c333e51dca908 (diff)
Get it to build with the latest orcus. It may not be fully functional.
Change-Id: Ife3c14a446273654d720eb38349cc42d1ed76893
Diffstat (limited to 'sc')
-rw-r--r--sc/source/filter/inc/orcusinterface.hxx18
-rw-r--r--sc/source/filter/orcus/interface.cxx25
-rw-r--r--sc/source/filter/orcus/xmlcontext.cxx2
3 files changed, 44 insertions, 1 deletions
diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx
index 2f8380c66661..4bc9b408aa71 100644
--- a/sc/source/filter/inc/orcusinterface.hxx
+++ b/sc/source/filter/inc/orcusinterface.hxx
@@ -71,17 +71,31 @@ public:
// Orcus import interface
virtual void set_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n);
virtual void set_format(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t xf_index);
+
virtual void set_formula(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, const char* p, size_t n);
virtual void set_formula_result(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n);
+
virtual void set_shared_formula(
orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, size_t sindex,
const char* p_formula, size_t n_formula);
+
virtual void set_shared_formula(
orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar, size_t sindex,
const char* p_formula, size_t n_formula, const char* p_range, size_t n_range);
+
virtual void set_shared_formula(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex);
+
+ virtual void set_array_formula(
+ orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar,
+ const char* p, size_t n, orcus::spreadsheet::row_t array_rows, orcus::spreadsheet::col_t array_cols);
+
+ virtual void set_array_formula(
+ orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, orcus::spreadsheet::formula_grammar_t grammar,
+ const char* p, size_t n, const char* p_range, size_t n_range);
+
virtual void set_string(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, size_t sindex);
virtual void set_value(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, double value);
+ virtual void set_bool(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, bool value);
SCTAB getIndex() const { return mnTab; }
};
@@ -119,6 +133,10 @@ public:
virtual void set_cell_locked(bool b);
virtual size_t commit_cell_protection();
+ // number format
+ virtual void set_number_format(const char* s, size_t n);
+ virtual size_t commit_number_format();
+
// cell style xf
virtual void set_cell_style_xf_count(size_t n);
diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx
index 2aed6286d250..25d9b5d21224 100644
--- a/sc/source/filter/orcus/interface.cxx
+++ b/sc/source/filter/orcus/interface.cxx
@@ -185,6 +185,18 @@ void ScOrcusSheet::set_shared_formula(row_t row, col_t col, size_t sindex)
mrDoc.SetFormula(ScAddress(col,row,mnTab), aArr);
}
+void ScOrcusSheet::set_array_formula(
+ row_t /*row*/, col_t /*col*/, formula_grammar_t /*grammar*/,
+ const char* /*p*/, size_t /*n*/, row_t /*array_rows*/, col_t /*array_cols*/)
+{
+}
+
+void ScOrcusSheet::set_array_formula(
+ row_t /*row*/, col_t /*col*/, formula_grammar_t /*grammar*/,
+ const char* /*p*/, size_t /*n*/, const char* /*p_range*/, size_t /*n_range*/)
+{
+}
+
void ScOrcusSheet::set_string(row_t row, col_t col, size_t sindex)
{
// Calc does not yet support shared strings so we have to
@@ -201,6 +213,11 @@ void ScOrcusSheet::set_value(row_t row, col_t col, double value)
mrDoc.SetValue( col, row, mnTab, value );
}
+void ScOrcusSheet::set_bool(row_t row, col_t col, bool value)
+{
+ mrDoc.SetValue(col, row, mnTab, value ? 1.0 : 0.0);
+}
+
size_t ScOrcusSharedStrings::append(const char* s, size_t n)
{
OUString aNewString(s, n, RTL_TEXTENCODING_UTF8);
@@ -334,6 +351,14 @@ size_t ScOrcusStyles::commit_cell_protection()
return 0;
}
+void ScOrcusStyles::set_number_format(const char* /*s*/, size_t /*n*/)
+{
+}
+
+size_t ScOrcusStyles::commit_number_format()
+{
+ return 0;
+}
// cell style xf
diff --git a/sc/source/filter/orcus/xmlcontext.cxx b/sc/source/filter/orcus/xmlcontext.cxx
index edfd0b6ee42f..0d7e05ffd068 100644
--- a/sc/source/filter/orcus/xmlcontext.cxx
+++ b/sc/source/filter/orcus/xmlcontext.cxx
@@ -159,7 +159,7 @@ bool ScOrcusXMLContextImpl::loadXMLStructure(SvTreeListBox& rTreeCtrl, ScOrcusXM
// TODO: Use our own stream loading call instead of one from orcus.
std::string aStrm;
- orcus::load_file_content(path, aStrm);
+// orcus::load_file_content(path, aStrm);
if (aStrm.empty())
return false;