diff options
author | Lionel Elie Mamane <lionel@mamane.lu> | 2011-09-12 16:37:50 +0200 |
---|---|---|
committer | Lionel Elie Mamane <lionel@mamane.lu> | 2011-09-12 16:40:51 +0200 |
commit | f7ed67f2cf79fd067c1634e8f7c3f8a17792f2e5 (patch) | |
tree | d6eee550bdaed7ce0f3f137dadf0dbbbb484c976 /svtools/source/brwbox/brwbox1.cxx | |
parent | fea84e0041f0dc6c87fc5e2d9c7ff2e70a7dada2 (diff) |
cleanup BrowseBox, DbGridControl & friends handle & invalid column handling
- BrowseBox: Check Handle column-related invariants when adding a
column:
# only one handle column
# it is the first
- BrowseBox: Check column id-related invariants when adding a column:
# Id is not the special "handle column" value
# Id is not the special "invalid ID" value
# unicity of the ID among columns
- GetColumnId: return BROWSER_INVALIDID, not 0 (== id of handle
column) for an invalid column; adapt code calling GetColumnId to
this change.
- Use the correct const or #define'd symbol instead of magic
constants; introduce such a symbol if needed
- General other miscellaneous cleanups:
# Translation of comments
# typo/spelling in comments, error messages and the like
# parenthesise #define'd value
# use SAL_MAX_UINT16 instead of USHRT_MAX where a sal_uInt16 is
expected
# BrowseBox::SetColumnTitle: nItemId is checked to be non-zero, so
don't test if for zeroness again.
Diffstat (limited to 'svtools/source/brwbox/brwbox1.cxx')
-rw-r--r-- | svtools/source/brwbox/brwbox1.cxx | 43 |
1 files changed, 32 insertions, 11 deletions
diff --git a/svtools/source/brwbox/brwbox1.cxx b/svtools/source/brwbox/brwbox1.cxx index 3619355ce355..9d4acd92648b 100644 --- a/svtools/source/brwbox/brwbox1.cxx +++ b/svtools/source/brwbox/brwbox1.cxx @@ -250,6 +250,17 @@ void BrowseBox::InsertHandleColumn( sal_uLong nWidth ) { DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); +#if OSL_DEBUG_LEVEL > 0 + OSL_ENSURE( ColCount() == 0 || (*pCols)[0]->GetId() != HandleColumnId , "BrowseBox::InsertHandleColumn: there is already a handle column" ); + { + BrowserColumns::iterator iCol = pCols->begin(); + const BrowserColumns::iterator colsEnd = pCols->end(); + if ( iCol < colsEnd ) + for (++iCol; iCol < colsEnd; ++iCol) + OSL_ENSURE( (*iCol)->GetId() != HandleColumnId, "BrowseBox::InsertHandleColumn: there is a non-Handle column with handle ID" ); + } +#endif + pCols->insert( pCols->begin(), new BrowserColumn( 0, Image(), String(), nWidth, GetZoom(), 0 ) ); FreezeColumn( 0 ); @@ -272,6 +283,17 @@ void BrowseBox::InsertDataColumn( sal_uInt16 nItemId, const XubString& rText, { DBG_CHKTHIS(BrowseBox,BrowseBoxCheckInvariants); + OSL_ENSURE( nItemId != HandleColumnId, "BrowseBox::InsertDataColumn: nItemId is HandleColumnId" ); + OSL_ENSURE( nItemId != BROWSER_INVALIDID, "BrowseBox::InsertDataColumn: nItemId is reserved value BROWSER_INVALID_ID" ); + +#if OSL_DEBUG_LEVEL > 0 + { + const BrowserColumns::iterator colsEnd = pCols->end(); + for (BrowserColumns::iterator iCol = pCols->begin(); iCol < colsEnd; ++iCol) + OSL_ENSURE( (*iCol)->GetId() != nItemId, "BrowseBox::InsertDataColumn: duplicate column Id" ); + } +#endif + if ( nPos < pCols->size() ) { BrowserColumns::iterator it = pCols->begin(); @@ -300,7 +322,7 @@ void BrowseBox::InsertDataColumn( sal_uInt16 nItemId, const XubString& rText, //------------------------------------------------------------------- sal_uInt16 BrowseBox::ToggleSelectedColumn() { - sal_uInt16 nSelectedColId = USHRT_MAX; + sal_uInt16 nSelectedColId = BROWSER_INVALIDID; if ( pColSel && pColSel->GetSelectCount() ) { DoHideCursor( "ToggleSelectedColumn" ); @@ -313,7 +335,7 @@ sal_uInt16 BrowseBox::ToggleSelectedColumn() // ----------------------------------------------------------------------------- void BrowseBox::SetToggledSelectedColumn(sal_uInt16 _nSelectedColumnId) { - if ( pColSel && _nSelectedColumnId != USHRT_MAX ) + if ( pColSel && _nSelectedColumnId != BROWSER_INVALIDID ) { pColSel->Select( GetColumnPos( _nSelectedColumnId ) ); ToggleSelection(); @@ -550,8 +572,7 @@ void BrowseBox::SetColumnTitle( sal_uInt16 nItemId, const String& rTitle ) // Headerbar-Column anpassen if ( getDataWindow()->pHeaderBar ) - getDataWindow()->pHeaderBar->SetItemText( - nItemId ? nItemId : USHRT_MAX - 1, rTitle ); + getDataWindow()->pHeaderBar->SetItemText( nItemId, rTitle ); else { // redraw visible colums @@ -786,29 +807,29 @@ void BrowseBox::RemoveColumns() size_t nOldCount = pCols->size(); - // alle Spalten entfernen + // remove all columns for ( size_t i = 0; i < nOldCount; ++i ) delete (*pCols)[ i ]; pCols->clear(); - // Spaltenselektion korrigieren + // correct column selection if ( pColSel ) { pColSel->SelectAll(sal_False); pColSel->SetTotalRange( Range( 0, 0 ) ); } - // Spaltencursor korrigieren + // correct column cursor nCurColId = 0; nFirstCol = 0; if ( getDataWindow()->pHeaderBar ) getDataWindow()->pHeaderBar->Clear( ); - // vertikalen Scrollbar korrigieren + // correct vertical scrollbar UpdateScrollbars(); - // ggf. Repaint ausl"osen + // trigger repaint if necessary if ( GetUpdateMode() ) { getDataWindow()->Invalidate(); @@ -1123,7 +1144,7 @@ void BrowseBox::RowModified( long nRow, sal_uInt16 nColId ) return; Rectangle aRect; - if ( nColId == USHRT_MAX ) + if ( nColId == BROWSER_INVALIDID ) // invalidate the whole row aRect = Rectangle( Point( 0, (nRow-nTopRow) * GetDataRowHeight() ), Size( pDataWin->GetSizePixel().Width(), GetDataRowHeight() ) ); @@ -2223,7 +2244,7 @@ void BrowseBox::ReserveControlArea( sal_uInt16 nWidth ) if ( nWidth != nControlAreaWidth ) { - OSL_ENSURE(nWidth,"Control aera of 0 is not allowed, Use USHRT_MAX instead!"); + OSL_ENSURE(nWidth,"Control area of 0 is not allowed, Use USHRT_MAX instead!"); nControlAreaWidth = nWidth; UpdateScrollbars(); } |