From 2fd48d4ee446cb84f38605371eb9a05c70dde590 Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Tue, 16 Jul 2024 16:57:06 +0200 Subject: app/ui: bind start button enablement and action --- app/include/turns/app/widgets/turn_order_view.hpp | 1 + app/src/widgets/turn_order_view.cpp | 4 ++++ app/src/windows/tracker.cpp | 6 ++++++ 3 files changed, 11 insertions(+) (limited to 'app') 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; + 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(builder, "participant_editor", participant)}; } + } // namespace tracker::tracker(BaseObjectType * base, Glib::RefPtr 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, -- cgit v1.2.3