From eec83198b5dfdfe9a0db71b410383697eb58930c Mon Sep 17 00:00:00 2001 From: Felix Morgner Date: Wed, 24 Jul 2024 19:47:52 +0200 Subject: app: add progress bar for turn order --- ui/include/turns/ui/widgets/turn_order_view.hpp | 9 ++++-- ui/res/ui.cmb | 41 +++++++++++++++---------- ui/src/widgets/turn_order_view.cpp | 14 ++++++--- 3 files changed, 41 insertions(+), 23 deletions(-) (limited to 'ui') diff --git a/ui/include/turns/ui/widgets/turn_order_view.hpp b/ui/include/turns/ui/widgets/turn_order_view.hpp index b174ce7..c14d239 100644 --- a/ui/include/turns/ui/widgets/turn_order_view.hpp +++ b/ui/include/turns/ui/widgets/turn_order_view.hpp @@ -1,25 +1,27 @@ #ifndef TURNS_APP_WIDGETS_TURN_ORDER_VIEW_HPP #define TURNS_APP_WIDGETS_TURN_ORDER_VIEW_HPP -#include "turns/ui/widgets/template_widget.hpp" #include "turns/core/fwd.hpp" +#include "turns/ui/widgets/template_widget.hpp" #include #include +#include #include -#include +#include #include #include namespace turns::app::widgets { - struct turn_order_view : template_widget + struct turn_order_view : template_widget { using model_type = core::turn_order; auto constexpr inline static children = std::array{ + "progress", "view", }; @@ -29,6 +31,7 @@ namespace turns::app::widgets auto handle_create_row(Glib::RefPtr const item) -> Gtk::Widget *; Glib::RefPtr m_model; + Gtk::ProgressBar * m_progress; Gtk::ListBox * m_view; }; } // namespace turns::app::widgets diff --git a/ui/res/ui.cmb b/ui/res/ui.cmb index f3cc8e8..acf1687 100644 --- a/ui/res/ui.cmb +++ b/ui/res/ui.cmb @@ -12,7 +12,9 @@ (1,"libadwaita","1.5",None), (2,"gtk","4.14",None), (2,"libadwaita","1.5",None), - (3,"gtk","4.14",None) + (3,"gtk","4.14",None), + (4,"gtk","4.14",None), + (4,"libadwaita","1.5",None) (1,1,"AdwApplicationWindow","tracker",None,None,None,None,-1,None,None), @@ -54,9 +56,11 @@ (3,8,"GtkLabel","subtitle",4,None,None,None,-1,None,None), (3,9,"GtkButton","delete",5,None,None,None,-1,None,None), (3,10,"GtkButton","edit",5,None,None,None,-1,None,None), - (4,1,"GtkScrolledWindow","gtkmm__CustomObject_turn_order_view",None,None,None,None,-1,None,None), - (4,2,"AdwClamp",None,1,None,None,None,-1,None,None), - (4,3,"GtkListBox","view",2,None,None,None,-1,None,None) + (4,1,"GtkBox","gtkmm__CustomObject_turn_order_view",None,None,None,None,-1,None,None), + (4,2,"GtkProgressBar","progress",1,None,None,None,None,None,None), + (4,3,"GtkScrolledWindow",None,1,None,None,None,1,None,None), + (4,4,"AdwClamp",None,3,None,None,None,-1,None,None), + (4,5,"GtkListBox","view",4,None,None,None,-1,None,None) (1,1,"AdwApplicationWindow","content",None,None,None,None,None,2,None,None,None,None), @@ -142,13 +146,15 @@ (3,9,"GtkWidget","tooltip-text","Delete participant",1,None,None,None,None,None,None,None,None), (3,10,"GtkButton","icon-name","document-edit-symbolic",None,None,None,None,None,None,None,None,None), (3,10,"GtkWidget","tooltip-text","Edit participant",1,None,None,None,None,None,None,None,None), - (4,1,"GtkScrolledWindow","child",None,None,None,None,None,2,None,None,None,None), - (4,2,"AdwClamp","child",None,None,None,None,None,3,None,None,None,None), - (4,2,"GtkWidget","margin-bottom","18",None,None,None,None,None,None,None,None,None), - (4,2,"GtkWidget","margin-end","12",None,None,None,None,None,None,None,None,None), - (4,2,"GtkWidget","margin-start","12",None,None,None,None,None,None,None,None,None), - (4,2,"GtkWidget","margin-top","12",None,None,None,None,None,None,None,None,None), - (4,3,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None) + (4,1,"GtkOrientable","orientation","vertical",None,None,None,None,None,None,None,None,None), + (4,3,"GtkScrolledWindow","child",None,None,None,None,None,4,None,None,None,None), + (4,3,"GtkWidget","vexpand","True",None,None,None,None,None,None,None,None,None), + (4,4,"AdwClamp","child",None,None,None,None,None,5,None,None,None,None), + (4,4,"GtkWidget","margin-bottom","18",None,None,None,None,None,None,None,None,None), + (4,4,"GtkWidget","margin-end","12",None,None,None,None,None,None,None,None,None), + (4,4,"GtkWidget","margin-start","12",None,None,None,None,None,None,None,None,None), + (4,4,"GtkWidget","margin-top","12",None,None,None,None,None,None,None,None,None), + (4,5,"GtkWidget","valign","start",None,None,None,None,None,None,None,None,None) (1,1,"GtkWidget",2,2,None,1,None,None,None,None), @@ -180,8 +186,6 @@ (3,5,"GtkWidget",2,2,None,1,None,None,None,None), (3,3,"GtkWidget",1,1,None,None,None,None,None,None), (3,3,"GtkWidget",2,2,None,1,None,None,None,None), - (4,3,"GtkWidget",1,1,None,None,None,None,None,None), - (4,3,"GtkWidget",2,2,None,1,None,None,None,None), (1,22,"GtkWidget",1,1,None,None,None,None,None,None), (1,22,"GtkWidget",2,2,None,1,None,None,None,None), (1,22,"GtkWidget",2,3,None,1,None,None,None,None), @@ -192,7 +196,11 @@ (1,24,"GtkWidget",2,2,None,1,None,None,None,None), (1,24,"GtkWidget",2,3,None,1,None,None,None,None), (1,21,"GtkWidget",1,1,None,None,None,None,None,None), - (1,21,"GtkWidget",2,2,None,1,None,None,None,None) + (1,21,"GtkWidget",2,2,None,1,None,None,None,None), + (4,2,"GtkWidget",1,1,None,None,None,None,None,None), + (4,2,"GtkWidget",2,2,None,1,None,None,None,None), + (4,5,"GtkWidget",1,1,None,None,None,None,None,None), + (4,5,"GtkWidget",2,2,None,1,None,None,None,None) (1,1,"GtkWidget",2,2,"name","background"), @@ -211,13 +219,14 @@ (3,10,"GtkWidget",2,3,"name","suggested-action"), (3,5,"GtkWidget",2,2,"name","suffixes"), (3,3,"GtkWidget",2,2,"name","prefixes"), - (4,3,"GtkWidget",2,2,"name","boxed-list"), (1,22,"GtkWidget",2,2,"name","pill"), (1,22,"GtkWidget",2,3,"name","suggested-action"), (1,23,"GtkWidget",2,2,"name","pill"), (1,23,"GtkWidget",2,3,"name","destructive-action"), (1,24,"GtkWidget",2,2,"name","pill"), (1,24,"GtkWidget",2,3,"name","suggested-action"), - (1,21,"GtkWidget",2,2,"name","toolbar") + (1,21,"GtkWidget",2,2,"name","toolbar"), + (4,2,"GtkWidget",2,2,"name","osd"), + (4,5,"GtkWidget",2,2,"name","boxed-list") diff --git a/ui/src/widgets/turn_order_view.cpp b/ui/src/widgets/turn_order_view.cpp index 9456cbe..78d7c43 100644 --- a/ui/src/widgets/turn_order_view.cpp +++ b/ui/src/widgets/turn_order_view.cpp @@ -1,8 +1,8 @@ #include "turns/ui/widgets/turn_order_view.hpp" -#include "turns/ui/widgets/participant_row.hpp" #include "turns/core/participant.hpp" #include "turns/core/turn_order.hpp" +#include "turns/ui/widgets/participant_row.hpp" #include @@ -20,14 +20,20 @@ namespace turns::app::widgets turn_order_view::turn_order_view(Glib::RefPtr model) : Glib::ObjectBase(TYPE_NAME) - , template_widget{TEMPLATE} + , template_widget{TEMPLATE} , m_model{model} + , m_progress{get_widget("progress")} , m_view{get_widget("view")} { - if (model) + if (!model) { - m_view->bind_model(m_model, sigc::mem_fun(*this, &turn_order_view::handle_create_row)); + return; } + + set_orientation(Gtk::Orientation::VERTICAL); + + m_view->bind_model(m_model, sigc::mem_fun(*this, &turn_order_view::handle_create_row)); + Glib::Binding::bind_property(m_model->progress(), m_progress->property_fraction(), Glib::Binding::Flags::SYNC_CREATE); } auto turn_order_view::handle_create_row(Glib::RefPtr const item) -> Gtk::Widget * -- cgit v1.2.3