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

make sure that the cell properties are really imported

Conflicts:
	sc/source/filter/orcus/interface.cxx

Change-Id: I6cac96214fd57162fb4421c9dbc9e54c20207385
üst 5486dc71
...@@ -30,6 +30,7 @@ ...@@ -30,6 +30,7 @@
class ScDocumentImport; class ScDocumentImport;
class ScOrcusSheet; class ScOrcusSheet;
class ScOrcusStyles;
class ScOrcusFactory; class ScOrcusFactory;
class ScRangeData; class ScRangeData;
class SfxItemSet; class SfxItemSet;
...@@ -125,6 +126,7 @@ class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet ...@@ -125,6 +126,7 @@ class ScOrcusSheet : public orcus::spreadsheet::iface::import_sheet
ScDocumentImport& mrDoc; ScDocumentImport& mrDoc;
SCTAB mnTab; SCTAB mnTab;
ScOrcusFactory& mrFactory; ScOrcusFactory& mrFactory;
ScOrcusStyles& mrStyles;
sc::SharedFormulaGroups maFormulaGroups; sc::SharedFormulaGroups maFormulaGroups;
ScOrcusAutoFilter maAutoFilter; ScOrcusAutoFilter maAutoFilter;
ScOrcusSheetProperties maProperties; ScOrcusSheetProperties maProperties;
...@@ -273,6 +275,9 @@ private: ...@@ -273,6 +275,9 @@ private:
public: public:
ScOrcusStyles(ScDocument& rDoc); ScOrcusStyles(ScDocument& rDoc);
bool applyXfToItemSet(SfxItemSet& rSet, size_t xfId);
// font // font
virtual void set_font_count(size_t n) SAL_OVERRIDE; virtual void set_font_count(size_t n) SAL_OVERRIDE;
......
...@@ -20,6 +20,8 @@ ...@@ -20,6 +20,8 @@
#include "dbdata.hxx" #include "dbdata.hxx"
#include "stlpool.hxx" #include "stlpool.hxx"
#include "scitems.hxx" #include "scitems.hxx"
#include "patattr.hxx"
#include "docpool.hxx"
#include <editeng/postitem.hxx> #include <editeng/postitem.hxx>
#include <editeng/wghtitem.hxx> #include <editeng/wghtitem.hxx>
...@@ -283,6 +285,7 @@ ScOrcusSheet::ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& r ...@@ -283,6 +285,7 @@ ScOrcusSheet::ScOrcusSheet(ScDocumentImport& rDoc, SCTAB nTab, ScOrcusFactory& r
mrDoc(rDoc), mrDoc(rDoc),
mnTab(nTab), mnTab(nTab),
mrFactory(rFactory), mrFactory(rFactory),
mrStyles(static_cast<ScOrcusStyles&>(*mrFactory.get_styles())),
maAutoFilter(rDoc.getDoc()), maAutoFilter(rDoc.getDoc()),
maProperties(mnTab, mrDoc), maProperties(mnTab, mrDoc),
mnCellCount(0) mnCellCount(0)
...@@ -368,9 +371,13 @@ void ScOrcusSheet::set_format(os::row_t /*row*/, os::col_t /*col*/, size_t xf_in ...@@ -368,9 +371,13 @@ void ScOrcusSheet::set_format(os::row_t /*row*/, os::col_t /*col*/, size_t xf_in
SAL_INFO("sc.orcus.style", "set format: " << xf_index); SAL_INFO("sc.orcus.style", "set format: " << xf_index);
} }
void ScOrcusSheet::set_format(os::row_t /*row*/, os::col_t /*col*/, void ScOrcusSheet::set_format(os::row_t row_start, os::col_t col_start,
os::row_t /*row_end*/, os::col_t /*col_end*/, size_t /*xf_index*/) os::row_t row_end, os::col_t col_end, size_t xf_index)
{ {
SAL_INFO("sc.orcus.style", "set format range: " << xf_index);
ScPatternAttr aPattern(mrDoc.getDoc().GetPool());
mrStyles.applyXfToItemSet(aPattern.GetItemSet(), xf_index);
mrDoc.getDoc().ApplyPatternAreaTab(col_start, row_start, col_end, row_end, mnTab, aPattern);
} }
namespace { namespace {
...@@ -673,6 +680,20 @@ void ScOrcusStyles::applyXfToItemSet(SfxItemSet& rSet, const xf& rXf) ...@@ -673,6 +680,20 @@ void ScOrcusStyles::applyXfToItemSet(SfxItemSet& rSet, const xf& rXf)
} }
} }
bool ScOrcusStyles::applyXfToItemSet(SfxItemSet& rSet, size_t xfId)
{
SAL_INFO("sc.orcus.style", "applyXfToitemSet: " << xfId);
if (maCellXfs.size() <= xfId)
{
SAL_WARN("sc.orcus.style", "invalid xf id");
return false;
}
const xf& rXf = maCellXfs[xfId];
applyXfToItemSet(rSet, rXf);
return true;
}
void ScOrcusStyles::set_font_count(size_t /*n*/) void ScOrcusStyles::set_font_count(size_t /*n*/)
{ {
// needed at all? // needed at all?
......
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