From 8181e59a6e1e76161e50ab545f4f62c2d05c8b80 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Wed, 30 Apr 2025 09:21:20 +0200 Subject: ui: convert tracker to template_widget --- app/src/main.cpp | 30 ++++++++++-------------------- 1 file changed, 10 insertions(+), 20 deletions(-) (limited to 'app/src') diff --git a/app/src/main.cpp b/app/src/main.cpp index 5051846..5eab35e 100644 --- a/app/src/main.cpp +++ b/app/src/main.cpp @@ -24,16 +24,6 @@ #include -auto add_new_window(Glib::RefPtr app, Glib::RefPtr builder, Glib::RefPtr settings) -{ - auto window = Gtk::Builder::get_widget_derived(builder, "tracker", settings); - window->set_hide_on_close(true); - window->signal_hide().connect([window] { delete window; }, true); - - app->add_window(*window); - return window; -} - auto show_about(Glib::RefPtr app) { auto active_window = app->get_active_window(); @@ -49,13 +39,12 @@ auto main(int argc, char * argv[]) -> int textdomain("turns"); auto app = Adwaita::Application::create("ch.arknet.Turns", Gio::Application::Flags::HANDLES_OPEN); - auto builder = Gtk::Builder::create_from_resource("/ch/arknet/Turns/tracker.ui"); auto settings = turns::core::get_settings(); - app->signal_startup().connect([app] { - turns::core::register_types(); - turns::ui::register_types(); + turns::core::register_types(); + turns::ui::register_types(); + app->signal_startup().connect([app] { auto style_manager = Adwaita::StyleManager::get_default(); style_manager->set_color_scheme(Adwaita::ColorScheme::PreferLight); @@ -72,22 +61,23 @@ auto main(int argc, char * argv[]) -> int app->set_accel_for_action("win.save-as", "s"); }); - app->signal_activate().connect([app, builder, settings] { - auto window = add_new_window(app, builder, settings); + app->signal_activate().connect([app, settings] { + auto window = new turns::ui::Tracker{app, settings}; + app->signal_shutdown().connect([window] { delete window; }); window->present(); }); - app->signal_open().connect([app, builder, settings](auto files, auto) { + app->signal_open().connect([app, settings](auto files, auto) { auto windows = app->get_windows(); - auto window = static_cast(nullptr); + auto window = static_cast(nullptr); if (windows.empty()) { - window = add_new_window(app, builder, settings); + window = new turns::ui::Tracker{app, settings}; } else { - window = dynamic_cast(windows[0]); + window = dynamic_cast(windows[0]); } window->present(); -- cgit v1.2.3