1
Fork 0
mirror of https://github.com/RGBCube/serenity synced 2025-07-25 14:07:46 +00:00

LibGUI: Parent FilePicker toolbar buttons to the window

This makes the shortcuts actually work since unparented actions are
considered application-global, and we disable application-global
shortcuts while a modal dialog (like FilePicker) is up. This is pretty
counter-intuitive so I think there's room for API improvement here
but let's at least make Alt+Up work in FilePicker for now. :^)
This commit is contained in:
Andreas Kling 2021-02-20 13:17:56 +01:00
parent 716dc5bec9
commit d9212bb2f4

View file

@ -126,18 +126,22 @@ FilePicker::FilePicker(Window* parent_window, Mode mode, const StringView& file_
set_path(m_location_textbox->text());
};
auto open_parent_directory_action = Action::create("Open parent directory", { Mod_Alt, Key_Up }, Gfx::Bitmap::load_from_file("/res/icons/16x16/open-parent-directory.png"), [this](const Action&) {
auto open_parent_directory_action = Action::create(
"Open parent directory", { Mod_Alt, Key_Up }, Gfx::Bitmap::load_from_file("/res/icons/16x16/open-parent-directory.png"), [this](const Action&) {
set_path(String::formatted("{}/..", m_model->root_path()));
});
},
this);
toolbar.add_action(*open_parent_directory_action);
auto go_home_action = CommonActions::make_go_home_action([this](auto&) {
set_path(Core::StandardPaths::home_directory());
});
},
this);
toolbar.add_action(go_home_action);
toolbar.add_separator();
auto mkdir_action = Action::create("New directory...", Gfx::Bitmap::load_from_file("/res/icons/16x16/mkdir.png"), [this](const Action&) {
auto mkdir_action = Action::create(
"New directory...", Gfx::Bitmap::load_from_file("/res/icons/16x16/mkdir.png"), [this](const Action&) {
String value;
if (InputBox::show(this, value, "Enter name:", "New directory") == InputBox::ExecOK && !value.is_empty()) {
auto new_dir_path = LexicalPath::canonicalized_path(String::formatted("{}/{}", m_model->root_path(), value));
@ -148,7 +152,8 @@ FilePicker::FilePicker(Window* parent_window, Mode mode, const StringView& file_
m_model->update();
}
}
});
},
this);
toolbar.add_action(*mkdir_action);