diff options
Diffstat (limited to 'app/src')
| -rw-r--r-- | app/src/main.cpp | 30 |
1 files changed, 10 insertions, 20 deletions
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 <clocale> -auto add_new_window(Glib::RefPtr<Gtk::Application> app, Glib::RefPtr<Gtk::Builder> builder, Glib::RefPtr<Gio::Settings> settings) -{ - auto window = Gtk::Builder::get_widget_derived<turns::ui::tracker>(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<Adwaita::Application> 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", "<Primary><Shift>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<turns::ui::tracker *>(nullptr); + auto window = static_cast<turns::ui::Tracker *>(nullptr); if (windows.empty()) { - window = add_new_window(app, builder, settings); + window = new turns::ui::Tracker{app, settings}; } else { - window = dynamic_cast<turns::ui::tracker *>(windows[0]); + window = dynamic_cast<turns::ui::Tracker *>(windows[0]); } window->present(); |
