diff --git a/Userland/Libraries/LibGUI/FilePicker.cpp b/Userland/Libraries/LibGUI/FilePicker.cpp index 88672e9e36..e5f33e203c 100644 --- a/Userland/Libraries/LibGUI/FilePicker.cpp +++ b/Userland/Libraries/LibGUI/FilePicker.cpp @@ -36,6 +36,7 @@ #include #include #include +#include #include #include #include @@ -184,6 +185,18 @@ FilePicker::FilePicker(Window* parent_window, Mode mode, const StringView& file_ m_filename_textbox->set_text(node.name); }; + m_context_menu = GUI::Menu::construct(); + m_context_menu->add_action(GUI::Action::create_checkable("Show dotfiles", [&](auto& action) { + m_model->set_should_show_dotfiles(action.is_checked()); + m_model->update(); + })); + + m_view->on_context_menu_request = [&](const GUI::ModelIndex& index, const GUI::ContextMenuEvent& event) { + if (!index.is_valid()) { + m_context_menu->popup(event.screen_position()); + } + }; + auto& ok_button = *widget.find_descendant_of_type_named("ok_button"); ok_button.set_text(ok_button_name(m_mode)); ok_button.on_click = [this](auto) { diff --git a/Userland/Libraries/LibGUI/FilePicker.h b/Userland/Libraries/LibGUI/FilePicker.h index f2119fc24f..ce1de94f32 100644 --- a/Userland/Libraries/LibGUI/FilePicker.h +++ b/Userland/Libraries/LibGUI/FilePicker.h @@ -83,6 +83,7 @@ private: RefPtr m_filename_textbox; RefPtr m_location_textbox; + RefPtr m_context_menu; Mode m_mode { Mode::Open }; };