diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2024-07-14 21:30:56 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2024-07-14 21:33:04 +0200 |
| commit | 05da3897f944f5775d25de2136ea985d4b0078eb (patch) | |
| tree | fd817901681a745f75234979168f391310141797 /app/src | |
| parent | d462e0e4d25d595175160c407e02a84155441983 (diff) | |
| download | turns-05da3897f944f5775d25de2136ea985d4b0078eb.tar.xz turns-05da3897f944f5775d25de2136ea985d4b0078eb.zip | |
app/ui: show status view when turn order is empty
Diffstat (limited to 'app/src')
| -rw-r--r-- | app/src/windows/main.cpp | 23 |
1 files changed, 17 insertions, 6 deletions
diff --git a/app/src/windows/main.cpp b/app/src/windows/main.cpp index f378fc7..314b8cc 100644 --- a/app/src/windows/main.cpp +++ b/app/src/windows/main.cpp @@ -16,19 +16,30 @@ namespace turns::app::windows main::main(BaseObjectType * base, Glib::RefPtr<Gtk::Builder> const builder) : Gtk::ApplicationWindow{base} - , m_add_participant{builder->get_widget<Gtk::Button>("add_participant")} , m_adw{ADW_APPLICATION_WINDOW(gobj())} - , m_open_main_menu{builder->get_widget<Gtk::MenuButton>("open_main_menu")} + , m_empty(builder->get_widget<Gtk::Widget>("empty")) , m_participant_list{builder->get_widget<Gtk::ListBox>("participant_list")} + , m_stack{builder->get_widget<Gtk::Stack>("stack")} , m_title(ADW_WINDOW_TITLE(builder->get_widget<Gtk::Widget>("title")->gobj())) + , m_turn_order{builder->get_widget<Gtk::ScrolledWindow>("turn_order")} , m_participants{domain::turn_order::create()} { - m_add_participant->set_tooltip_text(_(lang::add_participant)); - m_open_main_menu->set_tooltip_text(_(lang::main_menu)); adw_window_title_set_subtitle(m_title, _(lang::no_active_turn_order)); - m_add_participant->signal_clicked().connect(sigc::mem_fun(*this, &main::handle_create_participant)); + m_stack->set_visible_child(*m_empty); + m_participants->property_n_items().signal_changed().connect([this] { + if (m_participants->get_n_items()) + { + m_stack->set_visible_child(*m_turn_order); + } + else + { + m_stack->set_visible_child(*m_empty); + } + }); m_participant_list->bind_model(m_participants, sigc::mem_fun(*this, &main::handle_create_list_row)); + + add_action("add_participant", sigc::mem_fun(*this, &main::handle_add_participant)); } auto main::handle_create_list_row(Glib::RefPtr<Glib::Object> const item) -> Gtk::Widget * @@ -39,7 +50,7 @@ namespace turns::app::windows return widget; } - auto main::handle_create_participant() -> void + auto main::handle_add_participant() -> void { auto builder = Gtk::Builder::create_from_resource("/ch/arknet/Turns/windows/create_participant.ui"); auto dialog = Gtk::Builder::get_widget_derived<windows::create_participant>(builder, "create_participant_dialog"); |
