Add method to remove all subitems of a result item, and optionally also the
item itself. git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27376 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
@@ -58,3 +58,31 @@ GrepListView::FindItem(const entry_ref& ref, int32* _index) const
|
|||||||
*_index = -1;
|
*_index = -1;
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
ResultItem*
|
||||||
|
GrepListView::RemoveResults(const entry_ref& ref, bool completeItem)
|
||||||
|
{
|
||||||
|
int32 index;
|
||||||
|
ResultItem* item = FindItem(ref, &index);
|
||||||
|
if (item == NULL)
|
||||||
|
return NULL;
|
||||||
|
|
||||||
|
// remove all the sub items
|
||||||
|
while (true) {
|
||||||
|
BListItem* subItem = FullListItemAt(index + 1);
|
||||||
|
if (subItem && subItem->OutlineLevel() > 0)
|
||||||
|
delete RemoveItem(index + 1);
|
||||||
|
else
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (completeItem) {
|
||||||
|
// remove file item itself
|
||||||
|
delete RemoveItem(index);
|
||||||
|
item = NULL;
|
||||||
|
}
|
||||||
|
|
||||||
|
return item;
|
||||||
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -41,6 +41,9 @@ public:
|
|||||||
|
|
||||||
ResultItem* FindItem(const entry_ref& ref,
|
ResultItem* FindItem(const entry_ref& ref,
|
||||||
int32* _index) const;
|
int32* _index) const;
|
||||||
|
|
||||||
|
ResultItem* RemoveResults(const entry_ref& ref,
|
||||||
|
bool completeItem);
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif // GREP_LIST_VIEW_H
|
#endif // GREP_LIST_VIEW_H
|
||||||
|
|||||||
Reference in New Issue
Block a user