|
@@ -4219,14 +4219,20 @@ Tree::SelectMode Tree::get_select_mode() const {
|
|
|
}
|
|
|
|
|
|
void Tree::deselect_all() {
|
|
|
- TreeItem *item = get_next_selected(get_root());
|
|
|
- while (item) {
|
|
|
- for (int i = 0; i < columns.size(); i++) {
|
|
|
- item->deselect(i);
|
|
|
+ if (root) {
|
|
|
+ TreeItem *item = root;
|
|
|
+ while (item) {
|
|
|
+ if (select_mode == SELECT_ROW) {
|
|
|
+ item->deselect(0);
|
|
|
+ } else {
|
|
|
+ for (int i = 0; i < columns.size(); i++) {
|
|
|
+ item->deselect(i);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ TreeItem *prev_item = item;
|
|
|
+ item = get_next_selected(root);
|
|
|
+ ERR_FAIL_COND(item == prev_item);
|
|
|
}
|
|
|
- TreeItem *prev_item = item;
|
|
|
- item = get_next_selected(get_root());
|
|
|
- ERR_FAIL_COND(item == prev_item);
|
|
|
}
|
|
|
|
|
|
selected_item = nullptr;
|