Kaydet (Commit) 4b90c9dc authored tarafından Eike Rathke's avatar Eike Rathke

move range detection to ScViewData::SelectionFillDOOM()

Change-Id: Ic5205428136fc323affed8d956d6ee0434d43988
üst 9a40590d
...@@ -356,6 +356,8 @@ public: ...@@ -356,6 +356,8 @@ public:
/// Disallow paste on Ctrl+A all selected. We'd go DOOM. /// Disallow paste on Ctrl+A all selected. We'd go DOOM.
bool SelectionForbidsPaste(); 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 SetFillMode( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow );
void SetDragMode( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow, void SetDragMode( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow,
......
...@@ -856,14 +856,19 @@ bool ScViewData::IsMultiMarked() ...@@ -856,14 +856,19 @@ bool ScViewData::IsMultiMarked()
bool ScViewData::SelectionForbidsPaste() bool ScViewData::SelectionForbidsPaste()
{ {
SCCOL nCol1, nCol2; ScRange aSelRange( ScAddress::UNINITIALIZED );
SCROW nRow1, nRow2; ScMarkType eMarkType = GetSimpleArea( aSelRange);
SCTAB nTab1, nTab2; return eMarkType != SC_MARK_MULTI && SelectionFillDOOM( aSelRange);
ScMarkType eMarkType = GetSimpleArea( nCol1, nRow1, nTab1, nCol2, nRow2, nTab2); }
// static
bool ScViewData::SelectionFillDOOM( const ScRange& rRange )
{
/* TODO: it is still possible to select one row less than the entire sheet /* 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 * 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. */ * 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 ) void ScViewData::SetFillMode( SCCOL nStartCol, SCROW nStartRow, SCCOL nEndCol, SCROW nEndRow )
......
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