diff options
author | Laurent Godard <lgodard.libre@laposte.net> | 2013-07-01 15:43:46 +0200 |
---|---|---|
committer | Markus Mohrhard <markus.mohrhard@googlemail.com> | 2013-07-03 12:04:49 +0000 |
commit | 944929e656fdb66dca162dfd39253757de7cbd16 (patch) | |
tree | cf5b69a0969175ff54527b8b1db585ac5a3804c8 /sc | |
parent | 95e74a5033ba3ddc6906baba5d3b5ed0510b3a27 (diff) |
simplify AddPrintRanges calls at import time
- at import time, use directly core functions
- honor IsUndoEnabled in uno calls
Change-Id: If1e762df0ca9cfa22fa2c0e75518fe892be602b6
Reviewed-on: https://gerrit.libreoffice.org/4656
Reviewed-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Tested-by: Markus Mohrhard <markus.mohrhard@googlemail.com>
Reviewed-on: https://gerrit.libreoffice.org/4696
Diffstat (limited to 'sc')
-rw-r--r-- | sc/source/filter/xml/xmltabi.cxx | 12 | ||||
-rw-r--r-- | sc/source/ui/unoobj/cellsuno.cxx | 7 |
2 files changed, 10 insertions, 9 deletions
diff --git a/sc/source/filter/xml/xmltabi.cxx b/sc/source/filter/xml/xmltabi.cxx index a7f014cef506..a1bc801108b7 100644 --- a/sc/source/filter/xml/xmltabi.cxx +++ b/sc/source/filter/xml/xmltabi.cxx @@ -359,14 +359,12 @@ void ScXMLTableContext::EndElement() SCTAB nCurTab = rTables.GetCurrentSheet(); if (!sPrintRanges.isEmpty()) { - Reference< sheet::XPrintAreas > xPrintAreas( - rTables.GetCurrentXSheet(), UNO_QUERY); - - if( xPrintAreas.is() ) + ScRangeList aRangeList; + ScRangeStringConverter::GetRangeListFromString( aRangeList, sPrintRanges, pDoc, ::formula::FormulaGrammar::CONV_OOO ); + size_t nCount = aRangeList.size(); + for (size_t i=0; i< nCount; i++ ) { - Sequence< table::CellRangeAddress > aRangeList; - ScRangeStringConverter::GetRangeListFromString( aRangeList, sPrintRanges, pDoc, ::formula::FormulaGrammar::CONV_OOO ); - xPrintAreas->setPrintAreas( aRangeList ); + pDoc->AddPrintRange( nCurTab, *aRangeList[i] ); } } else if (!bPrintEntireSheet) diff --git a/sc/source/ui/unoobj/cellsuno.cxx b/sc/source/ui/unoobj/cellsuno.cxx index 763bf67051cf..1d0a8e8f129c 100644 --- a/sc/source/ui/unoobj/cellsuno.cxx +++ b/sc/source/ui/unoobj/cellsuno.cxx @@ -7503,13 +7503,15 @@ void SAL_CALL ScTableSheetObj::setPrintAreas( throw(uno::RuntimeException) { SolarMutexGuard aGuard; + ScPrintRangeSaver* pOldRanges; ScDocShell* pDocSh = GetDocShell(); if ( pDocSh ) { ScDocument* pDoc = pDocSh->GetDocument(); SCTAB nTab = GetTab_Impl(); - ScPrintRangeSaver* pOldRanges = pDoc->CreatePrintRangeSaver(); + if ( pDoc->IsUndoEnabled() ) + pOldRanges = pDoc->CreatePrintRangeSaver(); sal_uInt16 nCount = (sal_uInt16) aPrintAreas.getLength(); pDoc->ClearPrintRanges( nTab ); @@ -7524,7 +7526,8 @@ void SAL_CALL ScTableSheetObj::setPrintAreas( } } - PrintAreaUndo_Impl( pOldRanges ); // Undo, Umbrueche, Modified etc. + if ( pDoc->IsUndoEnabled() ) + PrintAreaUndo_Impl( pOldRanges ); // Undo, Umbrueche, Modified etc. } } |