summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2014-01-08 13:17:28 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2014-03-03 17:53:57 +0100
commit36788e95fdbe96ac27c71197fdbfee178b53f52c (patch)
tree31c45984896a72ee3c1aaaeca2a5ba0d1ad06104 /sc
parent0035b3218d8652652e62afe89eddfd28a9021b75 (diff)
upgrade liborcus
Conflicts: external/boost/StaticLibrary_boost_system.mk Change-Id: Ie4af26c87a100b67baeedbaa7fb1ac428845f92b
Diffstat (limited to 'sc')
-rw-r--r--sc/Library_scfilt.mk3
-rw-r--r--sc/qa/unit/helper/qahelper.cxx8
-rw-r--r--sc/source/filter/inc/orcusinterface.hxx22
-rw-r--r--sc/source/filter/orcus/interface.cxx66
-rw-r--r--sc/source/ui/docshell/datastream.cxx2
5 files changed, 93 insertions, 8 deletions
diff --git a/sc/Library_scfilt.mk b/sc/Library_scfilt.mk
index 061e0549b998..d5ca53319b48 100644
--- a/sc/Library_scfilt.mk
+++ b/sc/Library_scfilt.mk
@@ -32,7 +32,8 @@ $(eval $(call gb_Library_use_externals,scfilt,\
orcus \
orcus-parser \
boost_headers \
- boostsystem \
+ boost_system \
+ boost_iostreams \
mdds_headers \
zlib \
))
diff --git a/sc/qa/unit/helper/qahelper.cxx b/sc/qa/unit/helper/qahelper.cxx
index 35f5bc92f369..237bbce72f03 100644
--- a/sc/qa/unit/helper/qahelper.cxx
+++ b/sc/qa/unit/helper/qahelper.cxx
@@ -112,7 +112,7 @@ void loadFile(const OUString& aFileName, std::string& aContent)
void testFile(OUString& aFileName, ScDocument* pDoc, SCTAB nTab, StringType aStringFormat)
{
csv_handler aHandler(pDoc, nTab, aStringFormat);
- orcus::csv_parser_config aConfig;
+ orcus::csv::parser_config aConfig;
aConfig.delimiters.push_back(',');
aConfig.delimiters.push_back(';');
aConfig.text_qualifier = '"';
@@ -126,7 +126,7 @@ void testFile(OUString& aFileName, ScDocument* pDoc, SCTAB nTab, StringType aStr
{
parser.parse();
}
- catch (const orcus::csv_parse_error& e)
+ catch (const orcus::csv::parse_error& e)
{
std::cout << "reading csv content file failed: " << e.what() << std::endl;
OStringBuffer aErrorMsg("csv parser error: ");
@@ -138,7 +138,7 @@ void testFile(OUString& aFileName, ScDocument* pDoc, SCTAB nTab, StringType aStr
void testCondFile(OUString& aFileName, ScDocument* pDoc, SCTAB nTab)
{
conditional_format_handler aHandler(pDoc, nTab);
- orcus::csv_parser_config aConfig;
+ orcus::csv::parser_config aConfig;
aConfig.delimiters.push_back(',');
aConfig.delimiters.push_back(';');
aConfig.text_qualifier = '"';
@@ -149,7 +149,7 @@ void testCondFile(OUString& aFileName, ScDocument* pDoc, SCTAB nTab)
{
parser.parse();
}
- catch (const orcus::csv_parse_error& e)
+ catch (const orcus::csv::parse_error& e)
{
std::cout << "reading csv content file failed: " << e.what() << std::endl;
OStringBuffer aErrorMsg("csv parser error: ");
diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx
index 75b49f44fbfa..ca6027e5ceba 100644
--- a/sc/source/filter/inc/orcusinterface.hxx
+++ b/sc/source/filter/inc/orcusinterface.hxx
@@ -59,8 +59,13 @@ public:
virtual void set_segment_bold(bool b);
virtual void set_segment_italic(bool b);
+ virtual void set_segment_font(size_t font_index);
virtual void set_segment_font_name(const char* s, size_t n);
virtual void set_segment_font_size(double point);
+ virtual void set_segment_font_color(orcus::spreadsheet::color_elem_t alpha,
+ orcus::spreadsheet::color_elem_t red,
+ orcus::spreadsheet::color_elem_t green,
+ orcus::spreadsheet::color_elem_t blue);
virtual void append_segment(const char* s, size_t n);
virtual size_t commit_segments();
@@ -129,6 +134,10 @@ public:
virtual void set_font_name(const char* s, size_t n);
virtual void set_font_size(double point);
virtual void set_font_underline(orcus::spreadsheet::underline_t e);
+ virtual void set_font_color( orcus::spreadsheet::color_elem_t alpha,
+ orcus::spreadsheet::color_elem_t red,
+ orcus::spreadsheet::color_elem_t green,
+ orcus::spreadsheet::color_elem_t blue);
virtual size_t commit_font();
// fill
@@ -143,6 +152,11 @@ public:
virtual void set_border_count(size_t n);
virtual void set_border_style(orcus::spreadsheet::border_direction_t dir, const char* s, size_t n);
+ virtual void set_border_color(orcus::spreadsheet::border_direction_t dir,
+ orcus::spreadsheet::color_elem_t alpha,
+ orcus::spreadsheet::color_elem_t red,
+ orcus::spreadsheet::color_elem_t green,
+ orcus::spreadsheet::color_elem_t blue);
virtual size_t commit_border();
// cell protection
@@ -151,7 +165,9 @@ public:
virtual size_t commit_cell_protection();
// number format
- virtual void set_number_format(const char* s, size_t n);
+ virtual void set_number_format_count(size_t n);
+ virtual void set_number_format_identifier(size_t n);
+ virtual void set_number_format_code(const char* s, size_t n);
virtual size_t commit_number_format();
// cell style xf
@@ -172,6 +188,9 @@ public:
virtual void set_xf_border(size_t index);
virtual void set_xf_protection(size_t index);
virtual void set_xf_style_xf(size_t index);
+ virtual void set_xf_apply_alignment(bool b);
+ virtual void set_xf_horizontal_alignment(orcus::spreadsheet::hor_alignment_t align);
+ virtual void set_xf_vertical_alignment(orcus::spreadsheet::ver_alignment_t align);
// cell style entry
@@ -215,6 +234,7 @@ public:
virtual orcus::spreadsheet::iface::import_sheet* append_sheet(const char *sheet_name, size_t sheet_name_length);
virtual orcus::spreadsheet::iface::import_sheet* get_sheet(const char *sheet_name, size_t sheet_name_length);
+ virtual orcus::spreadsheet::iface::import_sheet* get_sheet(orcus::spreadsheet::sheet_t sheet_index);
virtual orcus::spreadsheet::iface::import_global_settings* get_global_settings();
virtual orcus::spreadsheet::iface::import_shared_strings* get_shared_strings();
virtual orcus::spreadsheet::iface::import_styles* get_styles();
diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx
index cd1ad9171a8f..5082be593ddf 100644
--- a/sc/source/filter/orcus/interface.cxx
+++ b/sc/source/filter/orcus/interface.cxx
@@ -86,6 +86,23 @@ orcus::spreadsheet::iface::import_sheet* ScOrcusFactory::get_sheet(const char* s
return &maSheets.back();
}
+orcus::spreadsheet::iface::import_sheet* ScOrcusFactory::get_sheet(orcus::spreadsheet::sheet_t sheet_index)
+{
+ SCTAB nTab = static_cast<SCTAB>(sheet_index);
+ // See if we already have an orcus sheet instance by that index.
+ boost::ptr_vector<ScOrcusSheet>::iterator it =
+ std::find_if(maSheets.begin(), maSheets.end(), FindSheetByIndex(nTab));
+
+ if (it != maSheets.end())
+ // We already have one. Return it.
+ return &(*it);
+
+ // Create a new orcus sheet instance for this.
+ maSheets.push_back(new ScOrcusSheet(maDoc, nTab, *this));
+ return &maSheets.back();
+
+}
+
orcus::spreadsheet::iface::import_global_settings* ScOrcusFactory::get_global_settings()
{
return &maGlobalSettings;
@@ -367,6 +384,10 @@ size_t ScOrcusSharedStrings::add(const char* s, size_t n)
return mrFactory.addString(aNewString);
}
+void ScOrcusSharedStrings::set_segment_font(size_t /*font_index*/)
+{
+}
+
void ScOrcusSharedStrings::set_segment_bold(bool /*b*/)
{
}
@@ -383,6 +404,13 @@ void ScOrcusSharedStrings::set_segment_font_size(double /*point*/)
{
}
+void ScOrcusSharedStrings::set_segment_font_color(orcus::spreadsheet::color_elem_t alpha,
+ orcus::spreadsheet::color_elem_t red,
+ orcus::spreadsheet::color_elem_t green,
+ orcus::spreadsheet::color_elem_t blue)
+{
+}
+
void ScOrcusSharedStrings::append_segment(const char* s, size_t n)
{
maCurSegment.append(s, n);
@@ -419,6 +447,13 @@ void ScOrcusStyles::set_font_underline(orcus::spreadsheet::underline_t /*e*/)
{
}
+void ScOrcusStyles::set_font_color(orcus::spreadsheet::color_elem_t alpha,
+ orcus::spreadsheet::color_elem_t red,
+ orcus::spreadsheet::color_elem_t green,
+ orcus::spreadsheet::color_elem_t blue)
+{
+}
+
size_t ScOrcusStyles::commit_font()
{
return 0;
@@ -462,6 +497,15 @@ void ScOrcusStyles::set_border_style(orcus::spreadsheet::border_direction_t /*di
// implement later
}
+void ScOrcusStyles::set_border_color(orcus::spreadsheet::border_direction_t /*dir*/,
+ orcus::spreadsheet::color_elem_t alpha,
+ orcus::spreadsheet::color_elem_t red,
+ orcus::spreadsheet::color_elem_t green,
+ orcus::spreadsheet::color_elem_t blue)
+{
+ // implement later
+}
+
size_t ScOrcusStyles::commit_border()
{
return 0;
@@ -482,7 +526,15 @@ size_t ScOrcusStyles::commit_cell_protection()
return 0;
}
-void ScOrcusStyles::set_number_format(const char* /*s*/, size_t /*n*/)
+void ScOrcusStyles::set_number_format_count(size_t)
+{
+}
+
+void ScOrcusStyles::set_number_format_identifier(size_t)
+{
+}
+
+void ScOrcusStyles::set_number_format_code(const char* /*s*/, size_t /*n*/)
{
}
@@ -544,6 +596,18 @@ void ScOrcusStyles::set_xf_style_xf(size_t /*index*/)
{
}
+void ScOrcusStyles::set_xf_apply_alignment(bool /*b*/)
+{
+}
+
+void ScOrcusStyles::set_xf_horizontal_alignment(orcus::spreadsheet::hor_alignment_t /*align*/)
+{
+}
+
+void ScOrcusStyles::set_xf_vertical_alignment(orcus::spreadsheet::ver_alignment_t /*align*/)
+{
+}
+
// cell style entry
// not needed for now for gnumeric
diff --git a/sc/source/ui/docshell/datastream.cxx b/sc/source/ui/docshell/datastream.cxx
index 1b712700b934..6f5fb2695524 100644
--- a/sc/source/ui/docshell/datastream.cxx
+++ b/sc/source/ui/docshell/datastream.cxx
@@ -135,7 +135,7 @@ class ReaderThread : public salhelper::Thread
osl::Condition maCondConsume;
#if ENABLE_ORCUS
- orcus::csv_parser_config maConfig;
+ orcus::csv::parser_config maConfig;
#endif
public: