From 74c4e626599476e0657fe83b1a3a479a2b38cba1 Mon Sep 17 00:00:00 2001 From: Andreas Kling Date: Fri, 20 Sep 2019 19:36:39 +0200 Subject: [PATCH] GCommonActions: Add "Open..." action Make use of this in PaintBrush and TextEditor. :^) --- Applications/PaintBrush/main.cpp | 2 +- Applications/TextEditor/TextEditorWidget.cpp | 2 +- Libraries/LibGUI/GAction.cpp | 5 +++++ Libraries/LibGUI/GAction.h | 1 + 4 files changed, 8 insertions(+), 2 deletions(-) diff --git a/Applications/PaintBrush/main.cpp b/Applications/PaintBrush/main.cpp index a0c22cbc10..df2bef0308 100644 --- a/Applications/PaintBrush/main.cpp +++ b/Applications/PaintBrush/main.cpp @@ -44,7 +44,7 @@ int main(int argc, char** argv) menubar->add_menu(move(app_menu)); auto file_menu = make("File"); - file_menu->add_action(GAction::create("Open...", { Mod_Ctrl, Key_O }, [&](auto&) { + file_menu->add_action(GCommonActions::make_open_action([&](auto&) { GFilePicker picker; if (picker.exec() == GFilePicker::ExecOK) { auto filename = picker.selected_file().string(); diff --git a/Applications/TextEditor/TextEditorWidget.cpp b/Applications/TextEditor/TextEditorWidget.cpp index 0ae4094db9..05f72be383 100644 --- a/Applications/TextEditor/TextEditorWidget.cpp +++ b/Applications/TextEditor/TextEditorWidget.cpp @@ -132,7 +132,7 @@ TextEditorWidget::TextEditorWidget() update_title(); }); - m_open_action = GAction::create("Open...", { Mod_Ctrl, Key_O }, GraphicsBitmap::load_from_file("/res/icons/16x16/open.png"), [this](const GAction&) { + m_open_action = GCommonActions::make_open_action([this](auto&) { Optional open_path = GFilePicker::get_open_filepath(); if (!open_path.has_value()) diff --git a/Libraries/LibGUI/GAction.cpp b/Libraries/LibGUI/GAction.cpp index f497f65e71..d16fc3c501 100644 --- a/Libraries/LibGUI/GAction.cpp +++ b/Libraries/LibGUI/GAction.cpp @@ -6,6 +6,11 @@ namespace GCommonActions { +NonnullRefPtr make_open_action(Function callback, GWidget* widget) +{ + return GAction::create("Open...", { Mod_Ctrl, Key_O }, GraphicsBitmap::load_from_file("/res/icons/16x16/open.png"), move(callback), widget); +} + NonnullRefPtr make_move_to_front_action(Function callback, GWidget* widget) { return GAction::create("Move to front", { Mod_Ctrl | Mod_Shift, Key_Up }, GraphicsBitmap::load_from_file("/res/icons/16x16/move-to-front.png"), move(callback), widget); diff --git a/Libraries/LibGUI/GAction.h b/Libraries/LibGUI/GAction.h index cc0825498c..6a97256425 100644 --- a/Libraries/LibGUI/GAction.h +++ b/Libraries/LibGUI/GAction.h @@ -19,6 +19,7 @@ class GMenuItem; class GWidget; namespace GCommonActions { +NonnullRefPtr make_open_action(Function, GWidget* widget = nullptr); NonnullRefPtr make_undo_action(Function, GWidget* widget = nullptr); NonnullRefPtr make_redo_action(Function, GWidget* widget = nullptr); NonnullRefPtr make_cut_action(Function, GWidget* widget = nullptr);