Browse Source

LibGUI: Simplify GTreeView ancestor traversal

Conrad Pankoff 6 years ago
parent
commit
6b5fbad250
1 changed files with 2 additions and 9 deletions
  1. 2 9
      Libraries/LibGUI/GTreeView.cpp

+ 2 - 9
Libraries/LibGUI/GTreeView.cpp

@@ -226,19 +226,12 @@ void GTreeView::did_update_selection()
     if (!index.is_valid())
         return;
     bool opened_any = false;
-    auto& metadata_for_index = ensure_metadata_for_index(index);
-    if (!metadata_for_index.open) {
-        opened_any = true;
-        metadata_for_index.open = true;
-    }
-    auto ancestor = index.parent();
-    while (ancestor.is_valid()) {
-        auto& metadata_for_ancestor = ensure_metadata_for_index(ancestor);
+    for (auto current = index; current.is_valid(); current = current.parent()) {
+        auto& metadata_for_ancestor = ensure_metadata_for_index(current);
         if (!metadata_for_ancestor.open) {
             metadata_for_ancestor.open = true;
             opened_any = true;
         }
-        ancestor = ancestor.parent();
     }
     if (opened_any)
         update_content_size();