diff options
| -rw-r--r-- | app/src/main.cpp | 15 | ||||
| -rw-r--r-- | ui/include/turns/ui/windows/tracker.hpp | 3 | ||||
| -rw-r--r-- | ui/src/windows/tracker.cpp | 6 | ||||
| -rw-r--r-- | ui/tests/windows/tracker.cpp | 3 |
4 files changed, 15 insertions, 12 deletions
diff --git a/app/src/main.cpp b/app/src/main.cpp index f21dc20..88d3b6b 100644 --- a/app/src/main.cpp +++ b/app/src/main.cpp @@ -1,5 +1,6 @@ #include "turns/adw/application.hpp" #include "turns/core/init.hpp" +#include "turns/core/settings.hpp" #include "turns/ui/init.hpp" #include "turns/ui/windows/tracker.hpp" @@ -8,6 +9,7 @@ #include <glibmm/refptr.h> #include <giomm/application.h> +#include <giomm/settings.h> #include <gtkmm/builder.h> @@ -17,9 +19,9 @@ #include <clocale> #include <print> -auto add_new_window(Glib::RefPtr<Gtk::Application> app, Glib::RefPtr<Gtk::Builder> builder) +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::windows::tracker>(builder, "tracker"); + auto window = Gtk::Builder::get_widget_derived<turns::ui::windows::tracker>(builder, "tracker", settings); app->add_window(*window); app->signal_shutdown().connect([window] { window->close(); @@ -37,6 +39,7 @@ auto main(int argc, char * argv[]) -> int auto app = turns::adw::Application::create("ch.arknet.Turns", Gio::Application::Flags::HANDLES_OPEN); auto builder = Gtk::Builder::create_from_resource("/windows/tracker.ui"); + auto settings = turns::core::get_settings(); app->signal_startup().connect([app] { turns::core::register_types(); @@ -57,18 +60,18 @@ auto main(int argc, char * argv[]) -> int app->set_accel_for_action("win.save-as", "<Primary><Shift>s"); }); - app->signal_activate().connect([app, builder] { - auto window = add_new_window(app, builder); + app->signal_activate().connect([app, builder, settings] { + auto window = add_new_window(app, builder, settings); window->present(); }); - app->signal_open().connect([app, builder](auto files, auto) { + app->signal_open().connect([app, builder, settings](auto files, auto) { auto windows = app->get_windows(); auto window = static_cast<turns::ui::windows::tracker *>(nullptr); if (windows.empty()) { - window = add_new_window(app, builder); + window = add_new_window(app, builder, settings); } else { diff --git a/ui/include/turns/ui/windows/tracker.hpp b/ui/include/turns/ui/windows/tracker.hpp index c6cbccb..8f44d08 100644 --- a/ui/include/turns/ui/windows/tracker.hpp +++ b/ui/include/turns/ui/windows/tracker.hpp @@ -3,7 +3,6 @@ #include "turns/adw/toastoverlay.hpp" #include "turns/core/turn_order.hpp" -#include "turns/ui/widgets/preferences.hpp" #include "turns/ui/widgets/turn_order_view.hpp" #include <glibmm/propertyproxy.h> @@ -34,7 +33,7 @@ namespace turns::ui::windows struct tracker : Gtk::ApplicationWindow { - tracker(BaseObjectType * base, Glib::RefPtr<Gtk::Builder> const builder); + tracker(BaseObjectType * base, Glib::RefPtr<Gtk::Builder> const builder, Glib::RefPtr<Gio::Settings> settings); auto load(Glib::RefPtr<Gio::File> file) -> void; diff --git a/ui/src/windows/tracker.cpp b/ui/src/windows/tracker.cpp index b38b9da..cd32bee 100644 --- a/ui/src/windows/tracker.cpp +++ b/ui/src/windows/tracker.cpp @@ -2,7 +2,6 @@ #include "turns/adw/toast.hpp" #include "turns/adw/toastoverlay.hpp" -#include "turns/core/settings.hpp" #include "turns/core/turn_order.hpp" #include "turns/lang/messages.hpp" #include "turns/ui/widgets/turn_order_view.hpp" @@ -42,11 +41,12 @@ #include <format> #include <print> #include <string> +#include <utility> namespace turns::ui::windows { - tracker::tracker(BaseObjectType * base, Glib::RefPtr<Gtk::Builder> const builder) + tracker::tracker(BaseObjectType * base, Glib::RefPtr<Gtk::Builder> const builder, Glib::RefPtr<Gio::Settings> settings) : Gtk::ApplicationWindow{base} , m_controls{builder->get_widget<Gtk::Revealer>("controls")} , m_empty{builder->get_widget<Gtk::Widget>("empty")} @@ -56,7 +56,7 @@ namespace turns::ui::windows , m_title{builder->get_widget<Gtk::Widget>("title")} , m_turn_order{core::turn_order::create()} , m_turn_order_view{Gtk::make_managed<widgets::turn_order_view>(m_turn_order)} - , m_settings{turns::core::get_settings()} + , m_settings{std::move(settings)} , m_subtitle{m_title, "subtitle"} , m_css{Gtk::CssProvider::create()} { diff --git a/ui/tests/windows/tracker.cpp b/ui/tests/windows/tracker.cpp index 236dad0..4af1dcd 100644 --- a/ui/tests/windows/tracker.cpp +++ b/ui/tests/windows/tracker.cpp @@ -1,5 +1,6 @@ #include "turns/ui/windows/tracker.hpp" +#include "turns/core/settings.hpp" #include "turns/lang/messages.hpp" #include <catch2/catch_test_macros.hpp> @@ -27,7 +28,7 @@ namespace turns::ui::windows::tests setlocale(LC_ALL, locale); auto builder = Gtk::Builder::create_from_resource("/windows/tracker.ui"); - auto instance = Gtk::Builder::get_widget_derived<tracker>(builder, "tracker"); + auto instance = Gtk::Builder::get_widget_derived<tracker>(builder, "tracker", core::get_settings()); SECTION("was successfully constructed") { |
