sc/source/filter/orcus/interface.cxx | 16 ++++++++++++++-- sc/source/ui/drawfunc/fuins2.cxx | 10 +++++++--- 2 files changed, 21 insertions(+), 5 deletions(-)
New commits: commit 34669e634d7cb18099e8d27eed10e5b816237411 Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Wed Apr 9 04:55:48 2014 +0200 preserve selection if chart creation is cancelled, cp#1000052 Change-Id: Ia8edb3e4c55e1a52515a761a60c4b1a59c990e1c diff --git a/sc/source/ui/drawfunc/fuins2.cxx b/sc/source/ui/drawfunc/fuins2.cxx index a369d39..75ab416 100644 --- a/sc/source/ui/drawfunc/fuins2.cxx +++ b/sc/source/ui/drawfunc/fuins2.cxx @@ -443,6 +443,7 @@ FuInsertChart::FuInsertChart(ScTabViewShell* pViewSh, Window* pWin, ScDrawView* // get range OUString aRangeString; ScRange aPositionRange; // cell range for chart positioning + ScMarkData aMark = pViewSh->GetViewData()->GetMarkData(); if( pReqArgs ) { const SfxPoolItem* pItem; @@ -453,15 +454,14 @@ FuInsertChart::FuInsertChart(ScTabViewShell* pViewSh, Window* pWin, ScDrawView* } else { - ScMarkData& rMark = pViewSh->GetViewData()->GetMarkData(); bool bAutomaticMark = false; - if ( !rMark.IsMarked() && !rMark.IsMultiMarked() ) + if ( !aMark.IsMarked() && !aMark.IsMultiMarked() ) { pViewSh->GetViewData()->GetView()->MarkDataArea( true ); bAutomaticMark = true; } - ScMarkData aMultiMark( rMark ); + ScMarkData aMultiMark( aMark ); aMultiMark.MarkToMulti(); ScRangeList aRanges; @@ -730,6 +730,10 @@ FuInsertChart::FuInsertChart(ScTabViewShell* pViewSh, Window* pWin, ScDrawView* // leave the draw shell pViewShell->SetDrawShell( false ); + + // reset marked cell area + + pViewSh->GetViewData()->GetViewShell()->SetMarkData(aMark); } else { commit d9cde132b5a98dee61e0d0ce228e5008e699f37d Author: Markus Mohrhard <markus.mohrh...@collabora.co.uk> Date: Tue Apr 8 02:56:13 2014 +0200 add array cell import to orcus import Change-Id: I4f6dab039389e6b07486162df8bf939b557e7ed8 diff --git a/sc/source/filter/orcus/interface.cxx b/sc/source/filter/orcus/interface.cxx index 7a89b62..085a2d6 100644 --- a/sc/source/filter/orcus/interface.cxx +++ b/sc/source/filter/orcus/interface.cxx @@ -358,9 +358,21 @@ void ScOrcusSheet::set_shared_formula(os::row_t row, os::col_t col, size_t sinde } void ScOrcusSheet::set_array_formula( - os::row_t /*row*/, os::col_t /*col*/, os::formula_grammar_t /*grammar*/, - const char* /*p*/, size_t /*n*/, os::row_t /*array_rows*/, os::col_t /*array_cols*/) + os::row_t row, os::col_t col, os::formula_grammar_t grammar, + const char* p, size_t n, os::row_t array_rows, os::col_t array_cols) { + formula::FormulaGrammar::Grammar eGrammar = getCalcGrammarFromOrcus( grammar ); + OUString aFormula(p, n, RTL_TEXTENCODING_UTF8); + + ScRange aRange(col, row, mnTab, col+array_cols, row + array_rows, mnTab); + + ScCompiler aComp(&mrDoc.getDoc(), aRange.aStart); + aComp.SetGrammar(eGrammar); + boost::scoped_ptr<ScTokenArray> pArray(aComp.CompileString(aFormula)); + if (!pArray) + return; + + mrDoc.setMatrixCells(aRange, *pArray, eGrammar); } void ScOrcusSheet::set_array_formula( _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org http://lists.freedesktop.org/mailman/listinfo/libreoffice-commits