summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorFelix Morgner <felix.morgner@gmail.com>2024-07-16 16:57:06 +0200
committerFelix Morgner <felix.morgner@gmail.com>2024-07-16 16:57:06 +0200
commit2fd48d4ee446cb84f38605371eb9a05c70dde590 (patch)
treee0578770fcba3a6ddc6585fb6f6634c5a7849493
parentc6e430e13713eea51ecd00fa278f7fa635ad7272 (diff)
downloadturns-2fd48d4ee446cb84f38605371eb9a05c70dde590.tar.xz
turns-2fd48d4ee446cb84f38605371eb9a05c70dde590.zip
app/ui: bind start button enablement and action
-rw-r--r--app/include/turns/app/widgets/turn_order_view.hpp1
-rw-r--r--app/src/widgets/turn_order_view.cpp4
-rw-r--r--app/src/windows/tracker.cpp6
3 files changed, 11 insertions, 0 deletions
diff --git a/app/include/turns/app/widgets/turn_order_view.hpp b/app/include/turns/app/widgets/turn_order_view.hpp
index c9be5ff..07d1712 100644
--- a/app/include/turns/app/widgets/turn_order_view.hpp
+++ b/app/include/turns/app/widgets/turn_order_view.hpp
@@ -29,6 +29,7 @@ namespace turns::app::widgets
auto append(Glib::ustring name, float priority, domain::disposition disposition) -> void;
auto clear() -> void;
auto get(std::size_t index) -> Glib::RefPtr<domain::participant>;
+ auto start() -> void;
auto remove(std::size_t index) -> void;
auto get_is_empty() const noexcept -> bool;
diff --git a/app/src/widgets/turn_order_view.cpp b/app/src/widgets/turn_order_view.cpp
index c66212a..d5520ca 100644
--- a/app/src/widgets/turn_order_view.cpp
+++ b/app/src/widgets/turn_order_view.cpp
@@ -49,6 +49,10 @@ namespace turns::app::widgets
return m_model->get_item(index);
}
+ auto turn_order_view::start() -> void
+ {
+ }
+
auto turn_order_view::remove(std::size_t index) -> void
{
m_model->remove(index);
diff --git a/app/src/windows/tracker.cpp b/app/src/windows/tracker.cpp
index 60d9f23..3c39a2f 100644
--- a/app/src/windows/tracker.cpp
+++ b/app/src/windows/tracker.cpp
@@ -21,6 +21,7 @@ namespace turns::app::windows
auto builder = Gtk::Builder::create_from_resource("/ch/arknet/Turns/windows/participant_editor.ui");
return std::pair{builder, Gtk::Builder::get_widget_derived<windows::participant_editor>(builder, "participant_editor", participant)};
}
+
} // namespace
tracker::tracker(BaseObjectType * base, Glib::RefPtr<Gtk::Builder> const builder)
@@ -39,6 +40,7 @@ namespace turns::app::windows
add_action("add_participant", sigc::mem_fun(*this, &tracker::handle_add_participant));
add_action_with_parameter("delete", Glib::VARIANT_TYPE_INT32, sigc::mem_fun(*this, &tracker::handle_delete_participant));
add_action_with_parameter("edit", Glib::VARIANT_TYPE_INT32, sigc::mem_fun(*this, &tracker::handle_edit_participant));
+ auto start_action = add_action("start", sigc::mem_fun(*m_turn_order, &widgets::turn_order_view::start));
Glib::Binding::bind_property(m_turn_order->property_is_empty(),
clear_action->property_enabled(),
@@ -53,6 +55,10 @@ namespace turns::app::windows
Glib::Binding::Flags::SYNC_CREATE,
[this](auto empty) { return empty ? m_empty : m_turn_order; });
+ Glib::Binding::bind_property(m_turn_order->property_is_empty(),
+ start_action->property_enabled(),
+ Glib::Binding::Flags::SYNC_CREATE | Glib::Binding::Flags::INVERT_BOOLEAN);
+
// clang-format off
Glib::Binding::bind_property(m_turn_order->property_is_empty(),
m_subtitle,