summaryrefslogtreecommitdiff
path: root/gui
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2025-06-08 17:43:17 +0200
committerFelix Morgner <felix.morgner@gmail.com>2025-06-08 17:43:17 +0200
commit10b6c46033c6d6caf5be105542a29832e413ce5e (patch)
tree6486a9d2c27a31dacf7adf0ea5c44b7f70c2404b /gui
parent92f655a6b481ce5cc6b5d41780114dba3aafc895 (diff)
downloadturns-10b6c46033c6d6caf5be105542a29832e413ce5e.tar.xz
turns-10b6c46033c6d6caf5be105542a29832e413ce5e.zip
gui: simplify leak fix
Diffstat (limited to 'gui')
-rw-r--r--gui/include/tracker.hpp3
-rw-r--r--gui/src/tracker.cpp16
2 files changed, 6 insertions, 13 deletions
diff --git a/gui/include/tracker.hpp b/gui/include/tracker.hpp
index 7701da1..39b7403 100644
--- a/gui/include/tracker.hpp
+++ b/gui/include/tracker.hpp
@@ -7,7 +7,6 @@
#define TURNS_GUI_TRACKER_HPP
#include "template_widget.hpp"
-#include "turn_order_view.hpp"
#include <turnsmm/turn-order.hpp>
@@ -48,7 +47,6 @@ namespace Turns::gui
};
Tracker(Glib::RefPtr<Adwaita::Application> const & app, Glib::RefPtr<Gio::Settings> const & settings);
- ~Tracker() override;
auto load(Glib::RefPtr<Gio::File> file) -> void;
@@ -87,7 +85,6 @@ namespace Turns::gui
Gtk::Button * m_start;
Adwaita::WindowTitle * m_title;
Glib::RefPtr<TurnOrder> m_turn_order;
- TurnOrderView * m_turn_order_view;
Glib::RefPtr<Gio::Settings> m_settings{};
Glib::PropertyProxy<Glib::ustring> m_subtitle;
diff --git a/gui/src/tracker.cpp b/gui/src/tracker.cpp
index 185ee61..c45b896 100644
--- a/gui/src/tracker.cpp
+++ b/gui/src/tracker.cpp
@@ -9,7 +9,6 @@
#include "participant_editor.hpp"
#include "preferences.hpp"
#include "resources.hpp"
-#include "settings.hpp"
#include "template_widget.hpp"
#include "turn_order_view.hpp"
@@ -19,6 +18,7 @@
#include <sigc++/adaptors/bind.h>
#include <sigc++/functors/mem_fun.h>
+#include <glib-object.h>
#include <glib/gi18n.h>
#include <gtk/gtk.h>
@@ -37,6 +37,7 @@
#include <giomm/settings.h>
#include <glibmm/binding.h>
#include <glibmm/i18n.h>
+#include <glibmm/object.h>
#include <glibmm/objectbase.h>
#include <glibmm/propertyproxy.h>
#include <glibmm/refptr.h>
@@ -60,6 +61,7 @@
#include <exception>
#include <format>
#include <memory>
+#include <print>
#include <string>
#include <utility>
@@ -91,21 +93,20 @@ namespace Turns::gui
, m_start{get_widget<Gtk::Button>("start")}
, m_title{get_widget<Adwaita::WindowTitle>("title")}
, m_turn_order{std::make_shared<TurnOrder>()}
- , m_turn_order_view{Gtk::make_managed<TurnOrderView>(m_turn_order)}
, m_settings{std::move(settings)}
, m_subtitle{m_title->property_subtitle()}
, m_css{Gtk::CssProvider::create()}
{
if (!settings)
{
- m_turn_order_view->set_parent(*this);
return;
}
setup_colors();
setup_actions();
- m_stack->add(*m_turn_order_view);
+ auto view = Gtk::make_managed<TurnOrderView>(m_turn_order);
+ m_stack->add(*view);
m_turn_order->property_empty().signal_changed().connect(sigc::mem_fun(*this, &Tracker::update_subtitle));
// m_turn_order->round_number().signal_changed().connect(sigc::mem_fun(*this, &Tracker::update_subtitle));
@@ -115,7 +116,7 @@ namespace Turns::gui
Glib::Binding::bind_property(m_turn_order->property_empty(),
m_stack->property_visible_child(),
Glib::Binding::Flags::SYNC_CREATE,
- [this](auto empty) { return empty ? m_empty : m_turn_order_view; });
+ [this, view](auto empty) { return empty ? m_empty : view; });
Glib::Binding::bind_property(m_turn_order->property_running(),
m_controls->property_reveal_child(),
@@ -125,11 +126,6 @@ namespace Turns::gui
// m_settings->bind("skip-defeated", m_turn_order->skip_defeated());
}
- Tracker::~Tracker()
- {
- m_turn_order_view->unparent();
- }
-
auto Tracker::load(Glib::RefPtr<Gio::File> file) -> void
{
if (file->query_exists())