mirror of
https://github.com/RGBCube/serenity
synced 2025-07-25 19:27:44 +00:00
FileManager+LibGUI: Fix two folder-related crashes (#569)
Fix a crash when opening a folder, and another one when trying to open a newly created folder. It was not safe to modify a GModelSelection while it's being iterated over. Fixes #536.
This commit is contained in:
parent
caf1b37e75
commit
a4d52b122d
4 changed files with 46 additions and 5 deletions
|
@ -104,6 +104,20 @@ int main(int argc, char** argv)
|
|||
if (rc < 0) {
|
||||
GMessageBox::show(String::format("mkdir(\"%s\") failed: %s", new_dir_path.characters(), strerror(errno)), "Error", GMessageBox::Type::Error, GMessageBox::InputType::OK, window);
|
||||
} else {
|
||||
file_system_model->update();
|
||||
|
||||
auto current_path = directory_view->path();
|
||||
|
||||
// not exactly sure why i have to reselect the root node first, but the index() fails if I dont
|
||||
auto root_index = file_system_model->index(file_system_model->root_path());
|
||||
tree_view->selection().set(root_index);
|
||||
|
||||
// reselect the existing folder in the tree
|
||||
auto new_index = file_system_model->index(current_path);
|
||||
tree_view->selection().set(new_index);
|
||||
tree_view->scroll_into_view(new_index, Orientation::Vertical);
|
||||
tree_view->update();
|
||||
|
||||
directory_view->refresh();
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue