[Libreoffice-commits] core.git: Branch 'feature/orcus-update' - sc/source

Kohei Yoshida kohei.yoshida at gmail.com
Tue Apr 9 18:01:10 PDT 2013


 sc/source/filter/inc/orcusinterface.hxx |    2 ++
 sc/source/filter/orcus/interface.cxx    |   10 ++++++++--
 2 files changed, 10 insertions(+), 2 deletions(-)

New commits:
commit b3cccbf334a6f4553a49e0f0d3dd5cbe1dd8a0ed
Author: Kohei Yoshida <kohei.yoshida at gmail.com>
Date:   Tue Apr 9 21:00:19 2013 -0400

    Implement segment-based string import.
    
    With this, string cells from ODS docs get imported.  For now, format runs
    are ignored.
    
    Change-Id: Ia9530357d3afc6cf4a0c52362bc770560debfd61

diff --git a/sc/source/filter/inc/orcusinterface.hxx b/sc/source/filter/inc/orcusinterface.hxx
index de07b75..adf7882 100644
--- a/sc/source/filter/inc/orcusinterface.hxx
+++ b/sc/source/filter/inc/orcusinterface.hxx
@@ -11,6 +11,7 @@
 #define __SC_ORCUSINTERFACE_HXX__
 
 #include "address.hxx"
+#include "rtl/strbuf.hxx"
 
 #define __ORCUS_STATIC_LIB
 #include <orcus/spreadsheet/import_interface.hpp>
@@ -29,6 +30,7 @@ class ScOrcusSharedStrings : public orcus::spreadsheet::iface::import_shared_str
 {
     ScOrcusFactory& mrFactory;
 
+    OStringBuffer maCurSegment;
 public:
     ScOrcusSharedStrings(ScOrcusFactory& rFactory);
 
diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx
index 73b4d0b..8f9eb07 100644
--- a/sc/source/filter/orcus/interface.cxx
+++ b/sc/source/filter/orcus/interface.cxx
@@ -278,22 +278,28 @@ size_t ScOrcusSharedStrings::add(const char* s, size_t n)
 void ScOrcusSharedStrings::set_segment_bold(bool /*b*/)
 {
 }
+
 void ScOrcusSharedStrings::set_segment_italic(bool /*b*/)
 {
 }
+
 void ScOrcusSharedStrings::set_segment_font_name(const char* /*s*/, size_t /*n*/)
 {
 }
+
 void ScOrcusSharedStrings::set_segment_font_size(double /*point*/)
 {
 }
-void ScOrcusSharedStrings::append_segment(const char* /*s*/, size_t /*n*/)
+
+void ScOrcusSharedStrings::append_segment(const char* s, size_t n)
 {
+    maCurSegment.append(s, n);
 }
 
 size_t ScOrcusSharedStrings::commit_segments()
 {
-    return 0;
+    OString aStr = maCurSegment.makeStringAndClear();
+    return mrFactory.addString(OStringToOUString(aStr, RTL_TEXTENCODING_UTF8));
 }
 
 void ScOrcusStyles::set_font_count(size_t /*n*/)


More information about the Libreoffice-commits mailing list