Kaydet (Commit) f1310337 authored tarafından Markus Mohrhard's avatar Markus Mohrhard Kaydeden (comit) Markus Mohrhard

implement import_sheet_properties interface

Conflicts:
	sc/source/filter/inc/orcusinterface.hxx
	sc/source/filter/orcus/interface.cxx

Change-Id: Ifed14df422c067fb6faacf370cbe9e1acf336d24
üst 8cb21b2a
...@@ -101,6 +101,25 @@ private: ...@@ -101,6 +101,25 @@ private:
ScRange maRange; ScRange maRange;
}; };
class ScOrcusSheetProperties : public orcus::spreadsheet::iface::import_sheet_properties
{
ScDocumentImport& mrDoc;
SCTAB mnTab;
public:
ScOrcusSheetProperties(SCTAB nTab, ScDocumentImport& rDoc);
virtual ~ScOrcusSheetProperties();
virtual void set_column_width(orcus::spreadsheet::col_t col, double width, orcus::length_unit_t unit) SAL_OVERRIDE;
virtual void set_column_hidden(orcus::spreadsheet::col_t col, bool hidden) SAL_OVERRIDE;
virtual void set_row_height(orcus::spreadsheet::row_t row, double height, orcus::length_unit_t unit) SAL_OVERRIDE;
virtual void set_row_hidden(orcus::spreadsheet::row_t row, bool hidden) SAL_OVERRIDE;
virtual void set_merge_cell_range(const char* p_range, size_t n_range) SAL_OVERRIDE;
};
class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet
{ {
ScDocumentImport& mrDoc; ScDocumentImport& mrDoc;
...@@ -108,6 +127,7 @@ class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet ...@@ -108,6 +127,7 @@ class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet
ScOrcusFactory& mrFactory; ScOrcusFactory& mrFactory;
sc::SharedFormulaGroups maFormulaGroups; sc::SharedFormulaGroups maFormulaGroups;
ScOrcusAutoFilter maAutoFilter; ScOrcusAutoFilter maAutoFilter;
ScOrcusSheetProperties maProperties;
typedef std::map<size_t, ScRangeData*> SharedFormulaContainer; typedef std::map<size_t, ScRangeData*> SharedFormulaContainer;
SharedFormulaContainer maSharedFormulas; SharedFormulaContainer maSharedFormulas;
...@@ -121,6 +141,7 @@ public: ...@@ -121,6 +141,7 @@ public:
virtual orcus::spreadsheet::iface::import_auto_filter* get_auto_filter() SAL_OVERRIDE { return &maAutoFilter; } virtual orcus::spreadsheet::iface::import_auto_filter* get_auto_filter() SAL_OVERRIDE { return &maAutoFilter; }
virtual orcus::spreadsheet::iface::import_table* get_table() SAL_OVERRIDE; virtual orcus::spreadsheet::iface::import_table* get_table() SAL_OVERRIDE;
virtual orcus::spreadsheet::iface::import_sheet_properties* get_sheet_properties() SAL_OVERRIDE;
// Orcus import interface // 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_auto(orcus::spreadsheet::row_t row, orcus::spreadsheet::col_t col, const char* p, size_t n) SAL_OVERRIDE;
......
...@@ -211,8 +211,51 @@ void ScOrcusFactory::setStatusIndicator(const uno::Reference<task::XStatusIndica ...@@ -211,8 +211,51 @@ void ScOrcusFactory::setStatusIndicator(const uno::Reference<task::XStatusIndica
mxStatusIndicator = rIndicator; mxStatusIndicator = rIndicator;
} }
ScOrcusSheetProperties::ScOrcusSheetProperties(SCTAB nTab, ScDocumentImport& rDoc):
mrDoc(rDoc),
mnTab(nTab)
{
}
ScOrcusSheetProperties::~ScOrcusSheetProperties()
{
}
void ScOrcusSheetProperties::set_column_width(os::col_t col, double width, orcus::length_unit_t /*unit*/)
{
mrDoc.getDoc().SetColWidthOnly(col, mnTab, width);
}
void ScOrcusSheetProperties::set_column_hidden(os::col_t col, bool hidden)
{
if (hidden)
mrDoc.getDoc().SetColHidden(col, col, mnTab, hidden);
}
void ScOrcusSheetProperties::set_row_height(os::row_t row, double height, orcus::length_unit_t /*unit*/)
{
mrDoc.getDoc().SetRowHeightOnly(row, row,mnTab, height);
}
void ScOrcusSheetProperties::set_row_hidden(os::row_t row, bool hidden)
{
if (hidden)
mrDoc.getDoc().SetRowHidden(row, row, mnTab, hidden);
}
void ScOrcusSheetProperties::set_merge_cell_range(const char* /*p_range*/, size_t /*n_range*/)
{
}
ScOrcusSheet::ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& rFactory) : ScOrcusSheet::ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& rFactory) :
mrDoc(rDoc), mnTab(nTab), mrFactory(rFactory), maAutoFilter(rDoc.getDoc()), mnCellCount(0) {} mrDoc(rDoc),
mnTab(nTab),
mrFactory(rFactory),
maAutoFilter(rDoc.getDoc()),
maProperties(mnTab, mrDoc),
mnCellCount(0)
{
}
void ScOrcusSheet::cellInserted() void ScOrcusSheet::cellInserted()
{ {
...@@ -229,6 +272,11 @@ os::iface::import_table* ScOrcusSheet::get_table() ...@@ -229,6 +272,11 @@ os::iface::import_table* ScOrcusSheet::get_table()
return NULL; return NULL;
} }
os::iface::import_sheet_properties* ScOrcusSheet::get_sheet_properties()
{
return &maProperties;
}
void ScOrcusSheet::set_auto(os::row_t row, os::col_t col, const char* p, size_t n) void ScOrcusSheet::set_auto(os::row_t row, os::col_t col, const char* p, size_t n)
{ {
OUString aVal(p, n, RTL_TEXTENCODING_UTF8); OUString aVal(p, n, RTL_TEXTENCODING_UTF8);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment