summaryrefslogtreecommitdiff
path: root/app/src/widgets
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-23 15:08:19 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-23 15:08:19 +0200
commit4ec6a2ae12b6adb843c0777649ff45a741ca6cbc (patch)
tree93dc2ba99dbcb42b2af73f0a3c4cd4f0c0f091c4 /app/src/widgets
parent5f4249a37ce816b8deceb299bc841190fbb15983 (diff)
downloadturns-4ec6a2ae12b6adb843c0777649ff45a741ca6cbc.tar.xz
turns-4ec6a2ae12b6adb843c0777649ff45a741ca6cbc.zip
domain: redesign turn_order
Diffstat (limited to 'app/src/widgets')
-rw-r--r--app/src/widgets/participant_row.cpp19
-rw-r--r--app/src/widgets/turn_order_view.cpp20
2 files changed, 19 insertions, 20 deletions
diff --git a/app/src/widgets/participant_row.cpp b/app/src/widgets/participant_row.cpp
index 3494834..87cc217 100644
--- a/app/src/widgets/participant_row.cpp
+++ b/app/src/widgets/participant_row.cpp
@@ -73,14 +73,14 @@ namespace turns::app::widgets
if (participant)
{
- Glib::Binding::bind_property(participant->property_name(), m_title->property_label(), Glib::Binding::Flags::SYNC_CREATE);
+ Glib::Binding::bind_property(participant->name(), m_title->property_label(), Glib::Binding::Flags::SYNC_CREATE);
- Glib::Binding::bind_property(participant->property_priority(),
+ Glib::Binding::bind_property(participant->priority(),
m_subtitle->property_label(),
Glib::Binding::Flags::SYNC_CREATE,
[](auto n) { return std::vformat(_(lang::priority_number), std::make_format_args(n)); });
- Glib::Binding::bind_property(participant->property_disposition(),
+ Glib::Binding::bind_property(participant->disposition(),
m_toggle_defeated->property_css_classes(),
Glib::Binding::Flags::SYNC_CREATE,
[this](auto value) {
@@ -92,6 +92,19 @@ namespace turns::app::widgets
classes.push_back(css_class_for(value));
return classes;
});
+
+ Glib::Binding::bind_property(participant->is_active(), property_css_classes(), Glib::Binding::Flags::SYNC_CREATE, [this](auto value) {
+ auto classes = get_css_classes();
+ if (!value)
+ {
+ std::erase(classes, "active-participant");
+ }
+ else
+ {
+ classes.push_back("active-participant");
+ }
+ return classes;
+ });
}
}
diff --git a/app/src/widgets/turn_order_view.cpp b/app/src/widgets/turn_order_view.cpp
index ccc6d25..67e0afa 100644
--- a/app/src/widgets/turn_order_view.cpp
+++ b/app/src/widgets/turn_order_view.cpp
@@ -25,35 +25,21 @@ namespace turns::app::widgets
{
if (model)
{
- m_view->bind_model(m_model->list_model(), sigc::mem_fun(*this, &turn_order_view::handle_create_row));
- m_model->property_active_participant().signal_changed().connect(
- sigc::mem_fun(*this, &turn_order_view::handle_active_participant_changed));
+ m_view->bind_model(m_model, sigc::mem_fun(*this, &turn_order_view::handle_create_row));
}
}
- auto turn_order_view::handle_active_participant_changed() -> void
- {
- std::ranges::for_each(m_view->get_children(), [](auto c) { c->remove_css_class("active-participant"); });
-
- auto index = m_model->active_participant();
- if (index != std::numeric_limits<domain::turn_order::active_participant_type>::max())
- {
- auto row = m_view->get_row_at_index(index);
- row->add_css_class("active-participant");
- row->grab_focus();
- }
- }
auto turn_order_view::handle_create_row(Glib::RefPtr<Glib::Object> const item) -> Gtk::Widget *
{
auto participant = std::dynamic_pointer_cast<domain::participant>(item);
auto row = Gtk::make_managed<widgets::participant_row>(participant);
- Glib::Binding::bind_property(m_model->property_running(),
+ Glib::Binding::bind_property(m_model->is_running(),
row->property_delete_enabled(),
Glib::Binding::Flags::SYNC_CREATE | Glib::Binding::Flags::INVERT_BOOLEAN);
- Glib::Binding::bind_property(m_model->property_running(),
+ Glib::Binding::bind_property(m_model->is_running(),
row->property_edit_enabled(),
Glib::Binding::Flags::SYNC_CREATE | Glib::Binding::Flags::INVERT_BOOLEAN);