mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 22:47:45 +00:00
LibGUI: Make GUI::Application a Core::Object
Having this on the stack makes whole-program teardown iffy. Turning it into a Core::Object allows anyone who needs it to extends its lifetime.
This commit is contained in:
parent
0d577ab781
commit
1dd1595043
51 changed files with 140 additions and 138 deletions
|
@ -37,7 +37,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio shared_buffer accept rpath", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -52,5 +52,5 @@ int main(int argc, char** argv)
|
|||
unveil(nullptr, nullptr);
|
||||
|
||||
GUI::AboutDialog::show("SerenityOS", nullptr, nullptr, Gfx::Bitmap::load_from_file("/res/icons/16x16/ladybug.png"));
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -68,7 +68,7 @@ int main(int argc, char** argv)
|
|||
args_parser.add_positional_argument(specified_url, "URL to open", "url", Core::ArgsParser::Required::No);
|
||||
args_parser.parse(argc, argv);
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
// Connect to the ProtocolServer immediately so we can drop the "unix" pledge.
|
||||
Web::ResourceLoader::the();
|
||||
|
@ -175,7 +175,7 @@ int main(int argc, char** argv)
|
|||
tab_widget.remove_tab(tab);
|
||||
tab_widget.set_bar_visible(!window->is_fullscreen() && tab_widget.children().size() > 1);
|
||||
if (tab_widget.children().is_empty())
|
||||
app.quit();
|
||||
app->quit();
|
||||
});
|
||||
};
|
||||
|
||||
|
@ -220,5 +220,5 @@ int main(int argc, char** argv)
|
|||
create_new_tab(first_url, true);
|
||||
window->show();
|
||||
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio shared_buffer rpath accept", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -78,7 +78,7 @@ int main(int argc, char** argv)
|
|||
GUI::AboutDialog::show("Calculator", Gfx::Bitmap::load_from_file("/res/icons/16x16/app-calculator.png"), window);
|
||||
}));
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio shared_buffer rpath accept", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -78,7 +78,7 @@ int main(int argc, char** argv)
|
|||
return;
|
||||
}));
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
app.exec();
|
||||
app->exec();
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio thread shared_buffer rpath accept cpath wpath", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -64,7 +64,7 @@ int main(int argc, char** argv)
|
|||
|
||||
auto& app_menu = menubar->add_menu("Display settings");
|
||||
app_menu.add_action(GUI::CommonActions::make_quit_action([&](const GUI::Action&) {
|
||||
app.quit();
|
||||
app->quit();
|
||||
}));
|
||||
|
||||
auto& help_menu = menubar->add_menu("Help");
|
||||
|
@ -72,7 +72,7 @@ int main(int argc, char** argv)
|
|||
GUI::AboutDialog::show("Display settings", Gfx::Bitmap::load_from_file("/res/icons/32x32/app-display-settings.png"), window);
|
||||
}));
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
window->show();
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -85,14 +85,14 @@ int main(int argc, char** argv)
|
|||
|
||||
RefPtr<Core::ConfigFile> config = Core::ConfigFile::get_for_app("FileManager");
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio thread shared_buffer accept cpath rpath wpath fattr proc exec unix", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
return 1;
|
||||
}
|
||||
|
||||
if (app.args().contains_slow("--desktop") || app.args().contains_slow("-d"))
|
||||
if (app->args().contains_slow("--desktop") || app->args().contains_slow("-d"))
|
||||
return run_in_desktop_mode(move(config), Core::StandardPaths::desktop_directory());
|
||||
|
||||
// our initial location is defined as, in order of precedence:
|
||||
|
|
|
@ -45,7 +45,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio shared_buffer rpath accept cpath wpath", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -96,9 +96,9 @@ int main(int argc, char** argv)
|
|||
GUI::AboutDialog::show("Font Editor", app_icon.bitmap_for_size(32), window);
|
||||
}));
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
window->show();
|
||||
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -56,7 +56,7 @@ int main(int argc, char* argv[])
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio shared_buffer accept rpath", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -201,12 +201,12 @@ int main(int argc, char* argv[])
|
|||
go_menu.add_action(*go_back_action);
|
||||
go_menu.add_action(*go_forward_action);
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
window->set_focused_widget(&tree_view);
|
||||
window->show();
|
||||
|
||||
window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/book.png"));
|
||||
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio shared_buffer accept rpath cpath wpath thread", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -60,5 +60,5 @@ int main(int argc, char** argv)
|
|||
if (argc >= 2)
|
||||
hex_editor_widget.open_file(argv[1]);
|
||||
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -42,7 +42,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio inet dns unix shared_buffer rpath wpath cpath", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -50,8 +50,8 @@ int main(int argc, char** argv)
|
|||
}
|
||||
|
||||
URL url = "";
|
||||
if (app.args().size() >= 1) {
|
||||
url = URL::create_with_url_or_path(app.args()[0]);
|
||||
if (app->args().size() >= 1) {
|
||||
url = URL::create_with_url_or_path(app->args()[0]);
|
||||
|
||||
if (url.protocol().to_lowercase() == "ircs") {
|
||||
fprintf(stderr, "Secure IRC over SSL/TLS (ircs) is not supported\n");
|
||||
|
@ -74,5 +74,5 @@ int main(int argc, char** argv)
|
|||
|
||||
auto app_window = IRCAppWindow::construct(url.host(), url.port());
|
||||
app_window->show();
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -41,7 +41,7 @@ int main(int argc, char** argv)
|
|||
args_parser.add_positional_argument(path, "Keyboard character mapping file.", "file", Core::ArgsParser::Required::No);
|
||||
args_parser.parse(argc, argv);
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
auto app_icon = GUI::Icon::default_icon("app-keyboard-mapper");
|
||||
|
||||
|
@ -87,7 +87,7 @@ int main(int argc, char** argv)
|
|||
|
||||
auto quit_action = GUI::CommonActions::make_quit_action(
|
||||
[&](auto&) {
|
||||
app.quit();
|
||||
app->quit();
|
||||
});
|
||||
|
||||
auto about_action = GUI::Action::create("About",
|
||||
|
@ -108,7 +108,7 @@ int main(int argc, char** argv)
|
|||
auto& help_menu = menubar->add_menu("Help");
|
||||
help_menu.add_action(about_action);
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -50,7 +50,7 @@ int main(int argc, char** argv)
|
|||
}
|
||||
|
||||
// If there is no command line parameter go for GUI.
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio rpath accept shared_buffer proc exec", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -131,7 +131,7 @@ int main(int argc, char** argv)
|
|||
exit(1);
|
||||
}
|
||||
if (quit)
|
||||
app.quit();
|
||||
app->quit();
|
||||
};
|
||||
|
||||
auto& bottom_widget = root_widget.add<GUI::Widget>();
|
||||
|
@ -161,12 +161,12 @@ int main(int argc, char** argv)
|
|||
cancel_button.set_size_policy(Orientation::Horizontal, GUI::SizePolicy::Fixed);
|
||||
cancel_button.set_preferred_size(60, 22);
|
||||
cancel_button.on_click = [&](auto) {
|
||||
app.quit();
|
||||
app->quit();
|
||||
};
|
||||
|
||||
auto quit_action = GUI::CommonActions::make_quit_action(
|
||||
[&](auto&) {
|
||||
app.quit();
|
||||
app->quit();
|
||||
});
|
||||
|
||||
auto about_action = GUI::Action::create("About",
|
||||
|
@ -182,9 +182,9 @@ int main(int argc, char** argv)
|
|||
auto& help_menu = menubar->add_menu("Help");
|
||||
help_menu.add_action(about_action);
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
window->show();
|
||||
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -44,7 +44,7 @@
|
|||
|
||||
int main(int argc, char** argv)
|
||||
{
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
auto audio_client = Audio::ClientConnection::construct();
|
||||
audio_client->handshake();
|
||||
|
@ -120,7 +120,7 @@ int main(int argc, char** argv)
|
|||
auto& edit_menu = menubar->add_menu("Edit");
|
||||
main_widget.add_actions(edit_menu);
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -53,7 +53,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio thread shared_buffer accept rpath wpath cpath", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -196,7 +196,7 @@ int main(int argc, char** argv)
|
|||
GUI::AboutDialog::show("PixelPaint", app_icon.bitmap_for_size(32), window);
|
||||
}));
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
image_editor.on_active_layer_change = [&](auto* layer) {
|
||||
layer_list_widget.set_selected_layer(layer);
|
||||
|
@ -227,5 +227,5 @@ int main(int argc, char** argv)
|
|||
image_editor.set_image(image);
|
||||
image_editor.set_active_layer(bg_layer);
|
||||
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -55,7 +55,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio shared_buffer accept cpath rpath wpath proc exec thread", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -166,7 +166,7 @@ int main(int argc, char** argv)
|
|||
|
||||
auto quit_action = GUI::CommonActions::make_quit_action(
|
||||
[&](auto&) {
|
||||
app.quit();
|
||||
app->quit();
|
||||
});
|
||||
|
||||
auto rotate_left_action = GUI::Action::create("Rotate Left", { Mod_None, Key_L },
|
||||
|
@ -290,7 +290,7 @@ int main(int argc, char** argv)
|
|||
auto& help_menu = menubar->add_menu("Help");
|
||||
help_menu.add_action(about_action);
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
if (path != nullptr) {
|
||||
widget.load_from_file(path);
|
||||
|
@ -298,5 +298,5 @@ int main(int argc, char** argv)
|
|||
|
||||
window->show();
|
||||
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -43,7 +43,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio shared_buffer accept rpath unix", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -87,7 +87,7 @@ int main(int argc, char** argv)
|
|||
app_menu.add_action(move(hide_scope));
|
||||
app_menu.add_separator();
|
||||
app_menu.add_action(GUI::CommonActions::make_quit_action([&](auto&) {
|
||||
app.quit();
|
||||
app->quit();
|
||||
}));
|
||||
|
||||
auto& help_menu = menubar->add_menu("Help");
|
||||
|
@ -95,8 +95,8 @@ int main(int argc, char** argv)
|
|||
GUI::AboutDialog::show("SoundPlayer", Gfx::Bitmap::load_from_file("/res/icons/32x32/app-sound-player.png"), window);
|
||||
}));
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
window->show();
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -117,7 +117,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio proc shared_buffer accept rpath exec", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -269,7 +269,7 @@ int main(int argc, char** argv)
|
|||
GUI::AboutDialog::show("System Monitor", Gfx::Bitmap::load_from_file("/res/icons/32x32/app-system-monitor.png"), window);
|
||||
}));
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
auto& process_tab_unused_widget = process_container_splitter.add<UnavailableProcessWidget>("No process selected");
|
||||
process_tab_unused_widget.set_visible(true);
|
||||
|
@ -302,7 +302,7 @@ int main(int argc, char** argv)
|
|||
|
||||
window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/16x16/app-system-monitor.png"));
|
||||
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
||||
class ProgressBarPaintingDelegate final : public GUI::TableCellPaintingDelegate {
|
||||
|
|
|
@ -209,7 +209,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio tty rpath accept cpath wpath shared_buffer proc exec unix", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -251,7 +251,7 @@ int main(int argc, char** argv)
|
|||
|
||||
auto& terminal = window->set_main_widget<TerminalWidget>(ptm_fd, true, config);
|
||||
terminal.on_command_exit = [&] {
|
||||
app.quit(0);
|
||||
app->quit(0);
|
||||
};
|
||||
terminal.on_title_change = [&](auto& title) {
|
||||
window->set_title(title);
|
||||
|
@ -321,7 +321,7 @@ int main(int argc, char** argv)
|
|||
GUI::AboutDialog::show("Terminal", Gfx::Bitmap::load_from_file("/res/icons/32x32/app-terminal.png"), window);
|
||||
}));
|
||||
|
||||
app.set_menubar(move(menubar));
|
||||
app->set_menubar(move(menubar));
|
||||
|
||||
if (unveil("/res", "r") < 0) {
|
||||
perror("unveil");
|
||||
|
@ -346,5 +346,5 @@ int main(int argc, char** argv)
|
|||
unveil(nullptr, nullptr);
|
||||
|
||||
config->sync();
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -35,7 +35,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio thread rpath accept cpath wpath shared_buffer unix", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -62,5 +62,5 @@ int main(int argc, char** argv)
|
|||
window->show();
|
||||
window->set_icon(Gfx::Bitmap::load_from_file("/res/icons/TextEditor16.png"));
|
||||
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
|
@ -133,7 +133,7 @@ int main(int argc, char** argv)
|
|||
return 1;
|
||||
}
|
||||
|
||||
GUI::Application app(argc, argv);
|
||||
auto app = GUI::Application::construct(argc, argv);
|
||||
|
||||
if (pledge("stdio shared_buffer rpath", nullptr) < 0) {
|
||||
perror("pledge");
|
||||
|
@ -257,5 +257,5 @@ int main(int argc, char** argv)
|
|||
}
|
||||
|
||||
window->show();
|
||||
return app.exec();
|
||||
return app->exec();
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue