summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndreas Kling <kling@serenityos.org>2021-02-20 13:17:56 +0100
committerAndreas Kling <kling@serenityos.org>2021-02-20 13:27:21 +0100
commitd9212bb2f4a7c48c560feb7f618e45df7f97e4cb (patch)
tree103c56fa32e137f0505d87345d90354cf7d14e32
parent716dc5bec92febc082d9078bd05e64ea724e9474 (diff)
downloadserenity-d9212bb2f4a7c48c560feb7f618e45df7f97e4cb.zip
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. :^)
-rw-r--r--Userland/Libraries/LibGUI/FilePicker.cpp35
1 files changed, 20 insertions, 15 deletions
diff --git a/Userland/Libraries/LibGUI/FilePicker.cpp b/Userland/Libraries/LibGUI/FilePicker.cpp
index 8f2a4fba6b..3f9c5dae0c 100644
--- a/Userland/Libraries/LibGUI/FilePicker.cpp
+++ b/Userland/Libraries/LibGUI/FilePicker.cpp
@@ -126,29 +126,34 @@ 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&) {
- set_path(String::formatted("{}/..", m_model->root_path()));
- });
+ 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&) {
- 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));
- int rc = mkdir(new_dir_path.characters(), 0777);
- if (rc < 0) {
- MessageBox::show(this, String::formatted("mkdir(\"{}\") failed: {}", new_dir_path, strerror(errno)), "Error", MessageBox::Type::Error);
- } else {
- m_model->update();
+ 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));
+ int rc = mkdir(new_dir_path.characters(), 0777);
+ if (rc < 0) {
+ MessageBox::show(this, String::formatted("mkdir(\"{}\") failed: {}", new_dir_path, strerror(errno)), "Error", MessageBox::Type::Error);
+ } else {
+ m_model->update();
+ }
}
- }
- });
+ },
+ this);
toolbar.add_action(*mkdir_action);