sc/source/ui/inc/viewdata.hxx | 2 ++ sc/source/ui/view/viewdata.cxx | 15 ++++++++++----- 2 files changed, 12 insertions(+), 5 deletions(-)
New commits: commit 4b90c9dc83d96908d3732d95e75c2f71d0f5d988 Author: Eike Rathke <er...@redhat.com> Date: Fri Jul 29 13:30:07 2016 +0200 move range detection to ScViewData::SelectionFillDOOM() Change-Id: Ic5205428136fc323affed8d956d6ee0434d43988 diff --git a/sc/source/ui/inc/viewdata.hxx b/sc/source/ui/inc/viewdata.hxx index 7c1c098..141e758 100644 --- a/sc/source/ui/inc/viewdata.hxx +++ b/sc/source/ui/inc/viewdata.hxx @@ -356,6 +356,8 @@ public: /// Disallow paste on Ctrl+A all selected. We'd go DOOM. bool SelectionForbidsPaste(); + /// Determine DOOM condition, i.e. from selected range. + static bool SelectionFillDOOM( const ScRange& rRange ); void SetFillMode( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ); void SetDragMode( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, diff --git a/sc/source/ui/view/viewdata.cxx b/sc/source/ui/view/viewdata.cxx index d07f711..dc31056 100644 --- a/sc/source/ui/view/viewdata.cxx +++ b/sc/source/ui/view/viewdata.cxx @@ -856,14 +856,19 @@ bool ScViewData::IsMultiMarked() bool ScViewData::SelectionForbidsPaste() { - SCCOL nCol1, nCol2; - SCROW nRow1, nRow2; - SCTAB nTab1, nTab2; - ScMarkType eMarkType = GetSimpleArea( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2); + ScRange aSelRange( ScAddress::UNINITIALIZED ); + ScMarkType eMarkType = GetSimpleArea( aSelRange); + return eMarkType != SC_MARK_MULTI && SelectionFillDOOM( aSelRange); +} + +// static +bool ScViewData::SelectionFillDOOM( const ScRange& rRange ) +{ /* TODO: it is still possible to select one row less than the entire sheet * and fool around. We could narrow this down to some "sane" value, just * what would be sane? At least this helps against the Ctrl+A cases. */ - return eMarkType != SC_MARK_MULTI && nCol1 == 0 && nCol2 == MAXCOL && nRow1 == 0 && nRow2 == MAXROW; + return rRange.aStart.Col() == 0 && rRange.aEnd.Col() == MAXCOL && + rRange.aStart.Row() == 0 && rRange.aEnd.Row() == MAXROW; } void ScViewData::SetFillMode( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow ) _______________________________________________ Libreoffice-commits mailing list libreoffice-comm...@lists.freedesktop.org https://lists.freedesktop.org/mailman/listinfo/libreoffice-commits