added checks in BListView::_Select() methods (ItemAt() can return NULL at any place)

style cleanup


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@16488 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Jérôme Duval
2006-02-21 11:17:40 +00:00
parent da13f34ea9
commit d2f93d8c18
+20 -30
View File
@@ -1227,22 +1227,18 @@ BListView::_Select(int32 index, bool extend)
if (index < 0 || index >= CountItems()) if (index < 0 || index >= CountItems())
return false; return false;
if ((fFirstSelected != -1) && (!extend)) if ((fFirstSelected != -1) && (!extend)) {
{ for (int32 i = fFirstSelected; i <= fLastSelected; ++i) {
for (int32 item = fFirstSelected; item <= fLastSelected; ++item) BListItem *item = ItemAt(i);
{ if (item && item->IsSelected() && (i != index)) {
if ((ItemAt(item)->IsSelected()) && (item != index)) item->Deselect();
{ InvalidateItem(i);
ItemAt(item)->Deselect();
InvalidateItem(item);
} }
} }
fFirstSelected = -1; fFirstSelected = -1;
} }
if (fFirstSelected == -1) if (fFirstSelected == -1) {
{
fFirstSelected = index; fFirstSelected = index;
fLastSelected = index; fLastSelected = index;
} }
@@ -1251,8 +1247,7 @@ BListView::_Select(int32 index, bool extend)
else if (index > fLastSelected) else if (index > fLastSelected)
fLastSelected = index; fLastSelected = index;
if (!ItemAt(index)->IsSelected()) if (ItemAt(index) && !ItemAt(index)->IsSelected()) {
{
ItemAt(index)->Select(); ItemAt(index)->Select();
InvalidateItem(index); InvalidateItem(index);
} }
@@ -1267,22 +1262,18 @@ BListView::_Select(int32 from, int32 to, bool extend)
if (to < from) if (to < from)
return false; return false;
if ((fFirstSelected != -1) && (!extend)) if ((fFirstSelected != -1) && (!extend)) {
{ for (int32 i = fFirstSelected; i <= fLastSelected; ++i) {
for (int32 item = fFirstSelected; item <= fLastSelected; ++item) BListItem *item = ItemAt(i);
{ if (item && item->IsSelected() && (i < from || i > to)) {
if ((ItemAt(item)->IsSelected()) && (item < from || item > to)) ItemAt(i)->Deselect();
{ InvalidateItem(i);
ItemAt(item)->Deselect();
InvalidateItem(item);
} }
} }
fFirstSelected = -1; fFirstSelected = -1;
} }
if (fFirstSelected == -1) if (fFirstSelected == -1) {
{
fFirstSelected = from; fFirstSelected = from;
fLastSelected = to; fLastSelected = to;
} }
@@ -1291,12 +1282,11 @@ BListView::_Select(int32 from, int32 to, bool extend)
else if (to > fLastSelected) else if (to > fLastSelected)
fLastSelected = to; fLastSelected = to;
for (int32 item = from; item <= to; ++item) for (int32 i = from; i <= to; ++i) {
{ BListItem *item = ItemAt(i);
if (!ItemAt(item)->IsSelected()) if (item && !item->IsSelected()) {
{ item->Select();
ItemAt(item)->Select(); InvalidateItem(i);
InvalidateItem(item);
} }
} }