summaryrefslogtreecommitdiff
path: root/app/src/main.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'app/src/main.cpp')
-rw-r--r--app/src/main.cpp30
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();