Interface: multi add/remove BColumnListView

This change will allow the BColumnListView to have
multiple rows added or removed at the same time.
Without this, applications using the BColumnListView
will need to add and remove rows one by one which,
for longer lists with complex columns, is a
performance problem; an example being HaikuDepot.

Note that this change does not amend the formatting
style on the class's source.

Change-Id: I72303c8b069b686251c3a65af7ae45c8884d5637
Reviewed-on: https://review.haiku-os.org/c/haiku/+/9056
Reviewed-by: waddlesplash <[email protected]>
Tested-by: Commit checker robot <[email protected]>
Reviewed-by: Andrew Lindesay <[email protected]>
This commit is contained in:
Andrew Lindesay
2025-03-07 10:38:28 +00:00
parent 21ee34828b
commit 48ca9d08bb
2 changed files with 346 additions and 34 deletions
@@ -323,6 +323,8 @@ public:
void AddRow(BRow* row, BRow* parent = NULL);
void AddRow(BRow* row, int32 index,
BRow* parent = NULL);
void AddRows(BList* rows, int32 index,
BRow* parent = NULL);
void ScrollTo(const BRow* Row);
void ScrollTo(BPoint point);
@@ -330,6 +332,7 @@ public:
// Does not delete row or children at this time.
// todo: Make delete row and children
void RemoveRow(BRow* row);
void RemoveRows(BList* rows);
void UpdateRow(BRow* row);
bool SwapRows(int32 index1, int32 index2, BRow*
parentRow1 = NULL, BRow* parentRow2 = NULL);