diff --git a/Applications/FileManager/main.cpp b/Applications/FileManager/main.cpp index 14a3e2ad32..fb4025877f 100644 --- a/Applications/FileManager/main.cpp +++ b/Applications/FileManager/main.cpp @@ -249,13 +249,11 @@ int main(int argc, char** argv) }); delete_action->set_enabled(false); - auto go_back_action = GAction::create("Go Back", { Mod_Alt, Key_Left }, GraphicsBitmap::load_from_file("/res/icons/16x16/go-back.png"), [&](const GAction&) { - dbgprintf("'Go Back' action activated!\n"); + auto go_back_action = GCommonActions::make_go_back_action([&](auto&) { directory_view->open_previous_directory(); }); - auto go_forward_action = GAction::create("Go Forward", { Mod_Alt, Key_Right }, GraphicsBitmap::load_from_file("/res/icons/16x16/go-forward.png"), [&](const GAction&) { - dbgprintf("'Go Forward' action activated!\n"); + auto go_forward_action = GCommonActions::make_go_forward_action([&](auto&) { directory_view->open_next_directory(); }); diff --git a/Applications/Help/main.cpp b/Applications/Help/main.cpp index d76cbc93c2..a4ed1c2d23 100644 --- a/Applications/Help/main.cpp +++ b/Applications/Help/main.cpp @@ -110,13 +110,13 @@ int main(int argc, char* argv[]) free(path); }; - go_back_action = GAction::create("Go Back", { Mod_Alt, Key_Left }, GraphicsBitmap::load_from_file("/res/icons/16x16/go-back.png"), [&](const GAction&) { + go_back_action = GCommonActions::make_go_back_action([&](auto&) { history.go_back(); update_actions(); open_page(history.current()); }); - go_forward_action = GAction::create("Go Forward", { Mod_Alt, Key_Right }, GraphicsBitmap::load_from_file("/res/icons/16x16/go-forward.png"), [&](const GAction&) { + go_forward_action = GCommonActions::make_go_forward_action([&](auto&) { history.go_forward(); update_actions(); open_page(history.current()); diff --git a/Libraries/LibGUI/GAction.cpp b/Libraries/LibGUI/GAction.cpp index d16fc3c501..db134423b8 100644 --- a/Libraries/LibGUI/GAction.cpp +++ b/Libraries/LibGUI/GAction.cpp @@ -61,6 +61,16 @@ NonnullRefPtr make_quit_action(Function callback) return GAction::create("Quit", { Mod_Alt, Key_F4 }, move(callback)); } +NonnullRefPtr make_go_back_action(Function callback, GWidget* widget) +{ + return GAction::create("Go back", { Mod_Alt, Key_Left }, GraphicsBitmap::load_from_file("/res/icons/16x16/go-back.png"), move(callback), widget); +} + +NonnullRefPtr make_go_forward_action(Function callback, GWidget* widget) +{ + return GAction::create("Go forward", { Mod_Alt, Key_Right }, GraphicsBitmap::load_from_file("/res/icons/16x16/go-forward.png"), move(callback), widget); +} + } GAction::GAction(const StringView& text, Function on_activation_callback, GWidget* widget) diff --git a/Libraries/LibGUI/GAction.h b/Libraries/LibGUI/GAction.h index 6a97256425..6a91a372fd 100644 --- a/Libraries/LibGUI/GAction.h +++ b/Libraries/LibGUI/GAction.h @@ -30,6 +30,8 @@ NonnullRefPtr make_move_to_front_action(Function, GWidg NonnullRefPtr make_move_to_back_action(Function, GWidget* widget = nullptr); NonnullRefPtr make_fullscreen_action(Function, GWidget* widget = nullptr); NonnullRefPtr make_quit_action(Function); +NonnullRefPtr make_go_back_action(Function, GWidget* widget = nullptr); +NonnullRefPtr make_go_forward_action(Function, GWidget* widget = nullptr); }; class GAction : public RefCounted