diff --git a/Applications/FileManager/main.cpp b/Applications/FileManager/main.cpp index cf3c8758be..14361c69b7 100644 --- a/Applications/FileManager/main.cpp +++ b/Applications/FileManager/main.cpp @@ -131,7 +131,7 @@ int main(int argc, char** argv) view_as_icons_action->set_checked(true); - auto copy_action = GAction::create("Copy", { Mod_Ctrl, Key_C }, GraphicsBitmap::load_from_file("/res/icons/16x16/edit-copy.png"), [&](const GAction&) { + auto copy_action = GCommonActions::make_copy_action([&](const GAction&) { if (!selected_file_paths.has_value()) { return; } @@ -143,7 +143,7 @@ int main(int argc, char** argv) }); copy_action->set_enabled(false); - auto paste_action = GAction::create("Paste", { Mod_Ctrl, Key_V }, GraphicsBitmap::load_from_file("/res/icons/paste16.png"), [&](const GAction&) { + auto paste_action = GCommonActions::make_paste_action([&](const GAction&) { auto data_and_type = GClipboard::the().data_and_type(); if (data_and_type.type != "file-list") { dbg() << "Cannot paste clipboard type " << data_and_type.type; @@ -177,7 +177,7 @@ int main(int argc, char** argv) auto properties_action = GAction::create("Properties...", { Mod_Alt, Key_Return }, GraphicsBitmap::load_from_file("/res/icons/16x16/properties.png"), [](auto&) {}); - auto delete_action = GAction::create("Delete", { Mod_None, Key_Delete }, GraphicsBitmap::load_from_file("/res/icons/16x16/delete.png"), [](const GAction&) { + auto delete_action = GCommonActions::make_delete_action([](const GAction&) { dbgprintf("'Delete' action activated!\n"); }); delete_action->set_enabled(false); @@ -204,7 +204,7 @@ int main(int argc, char** argv) app_menu->add_action(paste_action); app_menu->add_action(delete_action); app_menu->add_separator(); - app_menu->add_action(GCommonActions::make_quit_action([] { + app_menu->add_action(GCommonActions::make_quit_action([](auto&) { GApplication::the().quit(0); })); menubar->add_menu(move(app_menu)); diff --git a/Applications/IRCClient/IRCAppWindow.cpp b/Applications/IRCClient/IRCAppWindow.cpp index a8903ec56b..9fbbd7f193 100644 --- a/Applications/IRCClient/IRCAppWindow.cpp +++ b/Applications/IRCClient/IRCAppWindow.cpp @@ -124,7 +124,7 @@ void IRCAppWindow::setup_menus() { auto menubar = make(); auto app_menu = make("IRC Client"); - app_menu->add_action(GCommonActions::make_quit_action([] { + app_menu->add_action(GCommonActions::make_quit_action([](auto&) { dbgprintf("Terminal: Quit menu activated!\n"); GApplication::the().quit(0); return; diff --git a/Applications/PaintBrush/main.cpp b/Applications/PaintBrush/main.cpp index c4838e386e..a0c22cbc10 100644 --- a/Applications/PaintBrush/main.cpp +++ b/Applications/PaintBrush/main.cpp @@ -37,7 +37,7 @@ int main(int argc, char** argv) auto menubar = make(); auto app_menu = make("PaintBrush"); - app_menu->add_action(GCommonActions::make_quit_action([] { + app_menu->add_action(GCommonActions::make_quit_action([](auto&) { GApplication::the().quit(0); return; })); diff --git a/Applications/Piano/main.cpp b/Applications/Piano/main.cpp index c60c22b248..21d896f0d6 100644 --- a/Applications/Piano/main.cpp +++ b/Applications/Piano/main.cpp @@ -46,7 +46,7 @@ int main(int argc, char** argv) auto menubar = make(); auto app_menu = make("Piano"); - app_menu->add_action(GCommonActions::make_quit_action([] { + app_menu->add_action(GCommonActions::make_quit_action([](auto&) { GApplication::the().quit(0); return; })); diff --git a/Applications/QuickShow/main.cpp b/Applications/QuickShow/main.cpp index 64c2b374d4..b8097d62e1 100644 --- a/Applications/QuickShow/main.cpp +++ b/Applications/QuickShow/main.cpp @@ -16,7 +16,7 @@ int main(int argc, char** argv) auto menubar = make(); auto app_menu = make("QuickShow"); - app_menu->add_action(GCommonActions::make_quit_action([] { + app_menu->add_action(GCommonActions::make_quit_action([](auto&) { GApplication::the().quit(0); return; })); diff --git a/Applications/SystemMonitor/main.cpp b/Applications/SystemMonitor/main.cpp index f1527aa135..65108b95cc 100644 --- a/Applications/SystemMonitor/main.cpp +++ b/Applications/SystemMonitor/main.cpp @@ -139,7 +139,7 @@ int main(int argc, char** argv) auto menubar = make(); auto app_menu = make("System Monitor"); - app_menu->add_action(GCommonActions::make_quit_action([] { + app_menu->add_action(GCommonActions::make_quit_action([](auto&) { GApplication::the().quit(0); return; })); diff --git a/Applications/Terminal/main.cpp b/Applications/Terminal/main.cpp index 1a7e6859da..f960d4538f 100644 --- a/Applications/Terminal/main.cpp +++ b/Applications/Terminal/main.cpp @@ -187,7 +187,7 @@ int main(int argc, char** argv) settings_window->move_to_front(); })); app_menu->add_separator(); - app_menu->add_action(GCommonActions::make_quit_action([] { + app_menu->add_action(GCommonActions::make_quit_action([](auto&) { dbgprintf("Terminal: Quit menu activated!\n"); GApplication::the().quit(0); })); diff --git a/Applications/TextEditor/TextEditorWidget.cpp b/Applications/TextEditor/TextEditorWidget.cpp index 93f6347dcd..0ae4094db9 100644 --- a/Applications/TextEditor/TextEditorWidget.cpp +++ b/Applications/TextEditor/TextEditorWidget.cpp @@ -118,14 +118,14 @@ TextEditorWidget::TextEditorWidget() m_new_action = GAction::create("New", { Mod_Ctrl, Key_N }, GraphicsBitmap::load_from_file("/res/icons/16x16/new.png"), [this](const GAction&) { if (m_document_dirty) { - GMessageBox save_document_first_box("Save Document First?", "Warning", GMessageBox::Type::Warning, GMessageBox::InputType::OKCancel, window()); + GMessageBox save_document_first_box("Save Document First?", "Warning", GMessageBox::Type::Warning, GMessageBox::InputType::OKCancel, window()); auto save_document_first_result = save_document_first_box.exec(); if (save_document_first_result != GDialog::ExecResult::ExecOK) - return; + return; m_save_action->activate(); } - + m_document_dirty = false; m_editor->set_text(StringView()); set_path(FileSystemPath()); @@ -184,7 +184,7 @@ TextEditorWidget::TextEditorWidget() app_menu->add_action(*m_save_action); app_menu->add_action(*m_save_as_action); app_menu->add_separator(); - app_menu->add_action(GCommonActions::make_quit_action([this] { + app_menu->add_action(GCommonActions::make_quit_action([this](auto&) { if (!request_close()) return; GApplication::the().quit(0); diff --git a/DevTools/VisualBuilder/main.cpp b/DevTools/VisualBuilder/main.cpp index 5c4d86d2b7..ce1605d522 100644 --- a/DevTools/VisualBuilder/main.cpp +++ b/DevTools/VisualBuilder/main.cpp @@ -30,7 +30,7 @@ int main(int argc, char** argv) auto menubar = make(); auto app_menu = make("Visual Builder"); - app_menu->add_action(GCommonActions::make_quit_action([] { + app_menu->add_action(GCommonActions::make_quit_action([](auto&) { GApplication::the().quit(0); return; })); diff --git a/Games/Minesweeper/main.cpp b/Games/Minesweeper/main.cpp index f7b4125f2a..98e8991a45 100644 --- a/Games/Minesweeper/main.cpp +++ b/Games/Minesweeper/main.cpp @@ -67,7 +67,7 @@ int main(int argc, char** argv) app_menu->add_action(*chord_toggler_action); app_menu->add_separator(); - app_menu->add_action(GCommonActions::make_quit_action([] { + app_menu->add_action(GCommonActions::make_quit_action([](auto&) { GApplication::the().quit(0); return; })); diff --git a/Games/Snake/main.cpp b/Games/Snake/main.cpp index f38aa35c94..9a98c9ba29 100644 --- a/Games/Snake/main.cpp +++ b/Games/Snake/main.cpp @@ -28,7 +28,7 @@ int main(int argc, char** argv) app_menu->add_action(GAction::create("New game", { Mod_None, Key_F2 }, [&](const GAction&) { game->reset(); })); - app_menu->add_action(GCommonActions::make_quit_action([] { + app_menu->add_action(GCommonActions::make_quit_action([](auto&) { GApplication::the().quit(0); })); diff --git a/Libraries/LibGUI/GAction.cpp b/Libraries/LibGUI/GAction.cpp index 40228d9ba5..88074be450 100644 --- a/Libraries/LibGUI/GAction.cpp +++ b/Libraries/LibGUI/GAction.cpp @@ -4,38 +4,33 @@ #include #include -NonnullRefPtr GCommonActions::make_cut_action(Function callback, GWidget* widget) +namespace GCommonActions { + +NonnullRefPtr make_delete_action(Function callback, GWidget* widget) { - return GAction::create( - "Cut", { Mod_Ctrl, Key_X }, GraphicsBitmap::load_from_file("/res/icons/cut16.png"), [callback = move(callback)](const GAction&) { - callback(); - }, - widget); + return GAction::create("Delete", { Mod_None, Key_Delete }, GraphicsBitmap::load_from_file("/res/icons/16x16/delete.png"), move(callback), widget); } -NonnullRefPtr GCommonActions::make_copy_action(Function callback, GWidget* widget) +NonnullRefPtr make_cut_action(Function callback, GWidget* widget) { - return GAction::create( - "Copy", { Mod_Ctrl, Key_C }, GraphicsBitmap::load_from_file("/res/icons/16x16/edit-copy.png"), [callback = move(callback)](const GAction&) { - callback(); - }, - widget); + return GAction::create("Cut", { Mod_Ctrl, Key_X }, GraphicsBitmap::load_from_file("/res/icons/cut16.png"), move(callback), widget); } -NonnullRefPtr GCommonActions::make_paste_action(Function callback, GWidget* widget) +NonnullRefPtr make_copy_action(Function callback, GWidget* widget) { - return GAction::create( - "Paste", { Mod_Ctrl, Key_V }, GraphicsBitmap::load_from_file("/res/icons/paste16.png"), [callback = move(callback)](const GAction&) { - callback(); - }, - widget); + return GAction::create("Copy", { Mod_Ctrl, Key_C }, GraphicsBitmap::load_from_file("/res/icons/16x16/edit-copy.png"), move(callback), widget); } -NonnullRefPtr GCommonActions::make_quit_action(Function callback) +NonnullRefPtr make_paste_action(Function callback, GWidget* widget) { - return GAction::create("Quit", { Mod_Alt, Key_F4 }, [callback = move(callback)](const GAction&) { - callback(); - }); + return GAction::create("Paste", { Mod_Ctrl, Key_V }, GraphicsBitmap::load_from_file("/res/icons/paste16.png"), move(callback), widget); +} + +NonnullRefPtr make_quit_action(Function callback) +{ + return GAction::create("Quit", { Mod_Alt, Key_F4 }, move(callback)); +} + } GAction::GAction(const StringView& text, Function on_activation_callback, GWidget* widget) diff --git a/Libraries/LibGUI/GAction.h b/Libraries/LibGUI/GAction.h index 009fa45a96..b45128b677 100644 --- a/Libraries/LibGUI/GAction.h +++ b/Libraries/LibGUI/GAction.h @@ -19,10 +19,11 @@ class GMenuItem; class GWidget; namespace GCommonActions { -NonnullRefPtr make_cut_action(Function, GWidget* widget); -NonnullRefPtr make_copy_action(Function, GWidget* widget); -NonnullRefPtr make_paste_action(Function, GWidget* widget); -NonnullRefPtr make_quit_action(Function); +NonnullRefPtr make_cut_action(Function, GWidget* widget = nullptr); +NonnullRefPtr make_copy_action(Function, GWidget* widget = nullptr); +NonnullRefPtr make_paste_action(Function, GWidget* widget = nullptr); +NonnullRefPtr make_delete_action(Function, GWidget* widget = nullptr); +NonnullRefPtr make_quit_action(Function); }; class GAction : public RefCounted diff --git a/Libraries/LibGUI/GTextEditor.cpp b/Libraries/LibGUI/GTextEditor.cpp index 0a4e88b893..fe5b6b191a 100644 --- a/Libraries/LibGUI/GTextEditor.cpp +++ b/Libraries/LibGUI/GTextEditor.cpp @@ -47,26 +47,10 @@ void GTextEditor::create_actions() }, this); - m_cut_action = GCommonActions::make_cut_action([&] { - cut(); - }, - this); - - m_copy_action = GCommonActions::make_copy_action([&] { - copy(); - }, - this); - - m_paste_action = GCommonActions::make_paste_action([&] { - paste(); - }, - this); - - m_delete_action = GAction::create( - "Delete", { 0, Key_Delete }, GraphicsBitmap::load_from_file("/res/icons/16x16/delete.png"), [&](const GAction&) { - do_delete(); - }, - this); + m_cut_action = GCommonActions::make_cut_action([&](auto&) { cut(); }, this); + m_copy_action = GCommonActions::make_copy_action([&](auto&) { copy(); }, this); + m_paste_action = GCommonActions::make_paste_action([&](auto&) { paste(); }, this); + m_delete_action = GCommonActions::make_delete_action([&](auto&) { do_delete(); }, this); } void GTextEditor::set_text(const StringView& text) @@ -554,13 +538,13 @@ void GTextEditor::keydown_event(GKeyEvent& event) } else if (m_cursor.line() != line_count() - 1) { new_line = m_cursor.line() + 1; new_column = 0; - } + } toggle_selection_if_needed_for_event(event); set_cursor(new_line, new_column); if (m_selection.start().is_valid()) { m_selection.set_end(m_cursor); did_update_selection(); - } + } return; } if (!event.ctrl() && event.key() == KeyCode::Key_Home) {