summaryrefslogtreecommitdiff
path: root/sc
diff options
context:
space:
mode:
authorLaurent Godard <lgodard.libre@laposte.net>2013-07-01 15:43:46 +0200
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-07-03 12:04:49 +0000
commit944929e656fdb66dca162dfd39253757de7cbd16 (patch)
treecf5b69a0969175ff54527b8b1db585ac5a3804c8 /sc
parent95e74a5033ba3ddc6906baba5d3b5ed0510b3a27 (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.cxx12
-rw-r--r--sc/source/ui/unoobj/cellsuno.cxx7
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.
}
}