diff options
| author | Felix Morgner <felix.morgner@gmail.com> | 2025-04-28 13:34:43 +0200 |
|---|---|---|
| committer | Felix Morgner <felix.morgner@gmail.com> | 2025-04-28 13:34:43 +0200 |
| commit | dff2f80ddc8f742b8181409d6feeca33e856112e (patch) | |
| tree | f28e2cce16648d227280a91cd5568df11e63b384 | |
| parent | 2331febb334828b8e7fa721dd783ae0d9f6609ad (diff) | |
| download | turns-dff2f80ddc8f742b8181409d6feeca33e856112e.tar.xz turns-dff2f80ddc8f742b8181409d6feeca33e856112e.zip | |
ui: remove adwaita C-API usage
| -rw-r--r-- | ui/include/turns/ui/windows/participant_editor.hpp | 11 | ||||
| -rw-r--r-- | ui/include/turns/ui/windows/tracker.hpp | 5 | ||||
| -rw-r--r-- | ui/src/windows/participant_editor.cpp | 26 | ||||
| -rw-r--r-- | ui/src/windows/tracker.cpp | 5 | ||||
| -rw-r--r-- | ui/src/windows/tracker/actions.cpp | 1 | ||||
| -rw-r--r-- | ui/src/windows/tracker/event_handlers.cpp | 1 | ||||
| -rw-r--r-- | ui/tests/gtk_test_init.cpp | 1 | ||||
| -rw-r--r-- | ui/tests/windows/participant_editor.cpp | 32 | ||||
| -rw-r--r-- | ui/tests/windows/resources.cpp | 2 | ||||
| -rw-r--r-- | ui/tests/windows/tracker.cpp | 27 |
10 files changed, 51 insertions, 60 deletions
diff --git a/ui/include/turns/ui/windows/participant_editor.hpp b/ui/include/turns/ui/windows/participant_editor.hpp index fb80594..81ea3e1 100644 --- a/ui/include/turns/ui/windows/participant_editor.hpp +++ b/ui/include/turns/ui/windows/participant_editor.hpp @@ -15,9 +15,10 @@ #include <gtkmm/stringlist.h> #include <gtkmm/widget.h> +#include <adwaitamm/comborow.hpp> #include <adwaitamm/dialog.hpp> - -#include <adwaita.h> +#include <adwaitamm/entryrow.hpp> +#include <adwaitamm/spinrow.hpp> namespace turns::ui::windows { @@ -35,10 +36,10 @@ namespace turns::ui::windows auto handle_item_bind(Glib::RefPtr<Gtk::ListItem> item) -> void; auto handle_item_setup(Glib::RefPtr<Gtk::ListItem> item) -> void; - AdwComboRow * m_disposition; + Adwaita::ComboRow * m_disposition; Gtk::Button * m_finish; - AdwEntryRow * m_name; - AdwSpinRow * m_priority; + Adwaita::EntryRow * m_name; + Adwaita::SpinRow * m_priority; Glib::RefPtr<Gtk::SignalListItemFactory> m_disposition_factory; Glib::RefPtr<Gtk::StringList> m_disposition_model; diff --git a/ui/include/turns/ui/windows/tracker.hpp b/ui/include/turns/ui/windows/tracker.hpp index be4019e..495f825 100644 --- a/ui/include/turns/ui/windows/tracker.hpp +++ b/ui/include/turns/ui/windows/tracker.hpp @@ -24,8 +24,7 @@ #include <adwaitamm/applicationwindow.hpp> #include <adwaitamm/toastoverlay.hpp> - -#include <adwaita.h> +#include <adwaitamm/windowtitle.hpp> #include <exception> #include <string> @@ -72,7 +71,7 @@ namespace turns::ui::windows Adwaita::ToastOverlay * m_overlay; Gtk::Stack * m_stack; Gtk::Button * m_start; - Gtk::Widget * m_title; + Adwaita::WindowTitle * m_title; Glib::RefPtr<core::turn_order> m_turn_order; widgets::turn_order_view * m_turn_order_view; Glib::RefPtr<Gio::Settings> m_settings{}; diff --git a/ui/src/windows/participant_editor.cpp b/ui/src/windows/participant_editor.cpp index 7cfe766..9177c9a 100644 --- a/ui/src/windows/participant_editor.cpp +++ b/ui/src/windows/participant_editor.cpp @@ -22,9 +22,11 @@ #include <gtkmm/stringobject.h> #include <gtkmm/widget.h> +#include <adwaitamm/comborow.hpp> #include <adwaitamm/dialog.hpp> +#include <adwaitamm/entryrow.hpp> +#include <adwaitamm/spinrow.hpp> -#include <adwaita.h> #include <gio/gio.h> #include <gtk/gtk.h> @@ -37,10 +39,10 @@ namespace turns::ui::windows participant_editor::participant_editor(BaseObjectType * base, Glib::RefPtr<Gtk::Builder> const builder, Glib::RefPtr<core::participant> obj) : Dialog{base} - , m_disposition{ADW_COMBO_ROW(Glib::unwrap(builder->get_widget<Gtk::ListBoxRow>("disposition")))} + , m_disposition{builder->get_widget<Adwaita::ComboRow>("disposition")} , m_finish{builder->get_widget<Gtk::Button>("finish")} - , m_name{ADW_ENTRY_ROW(Glib::unwrap(builder->get_widget<Gtk::ListBoxRow>("name")))} - , m_priority{ADW_SPIN_ROW(Glib::unwrap(builder->get_widget<Gtk::ListBoxRow>("priority")))} + , m_name{builder->get_widget<Adwaita::EntryRow>("name")} + , m_priority{builder->get_widget<Adwaita::SpinRow>("priority")} , m_disposition_factory{Gtk::SignalListItemFactory::create()} , m_disposition_model{Gtk::StringList::create()} , m_participant{obj} @@ -57,14 +59,14 @@ namespace turns::ui::windows m_disposition_factory->signal_bind().connect(sigc::mem_fun(*this, &participant_editor::handle_item_bind)); m_disposition_factory->signal_setup().connect(sigc::mem_fun(*this, &participant_editor::handle_item_setup)); - adw_combo_row_set_factory(m_disposition, GTK_LIST_ITEM_FACTORY(Glib::unwrap(m_disposition_factory))); - adw_combo_row_set_model(m_disposition, G_LIST_MODEL(Glib::unwrap(m_disposition_model))); + m_disposition->set_factory(m_disposition_factory); + m_disposition->set_model(m_disposition_model); if (m_participant) { - gtk_editable_set_text(GTK_EDITABLE(m_name), m_participant->property_name().get_value().c_str()); - adw_spin_row_set_value(m_priority, m_participant->property_priority()); - adw_combo_row_set_selected(m_disposition, static_cast<unsigned>(m_participant->property_disposition().get_value())); + m_name->set_text(m_participant->property_name().get_value()); + m_priority->set_value(m_participant->property_priority()); + m_disposition->set_selected(static_cast<unsigned>(m_participant->property_disposition().get_value())); } } @@ -75,9 +77,9 @@ namespace turns::ui::windows auto participant_editor::handle_finish_clicked() -> void { - auto name = gtk_editable_get_text(GTK_EDITABLE(m_name)); - auto priority = adw_spin_row_get_value(m_priority); - auto disposition = static_cast<core::disposition>(adw_combo_row_get_selected(m_disposition)); + auto name = m_name->get_text(); + auto priority = m_priority->get_value(); + auto disposition = static_cast<core::disposition>(m_disposition->get_selected()); if (m_participant) { diff --git a/ui/src/windows/tracker.cpp b/ui/src/windows/tracker.cpp index df16a9e..851d233 100644 --- a/ui/src/windows/tracker.cpp +++ b/ui/src/windows/tracker.cpp @@ -34,6 +34,7 @@ #include <adwaitamm/applicationwindow.hpp> #include <adwaitamm/toast.hpp> #include <adwaitamm/toastoverlay.hpp> +#include <adwaitamm/windowtitle.hpp> #include <gtk/gtk.h> #include <nlohmann/json.hpp> @@ -54,11 +55,11 @@ namespace turns::ui::windows , m_overlay{builder->get_widget<Adwaita::ToastOverlay>("overlay")} , m_stack{builder->get_widget<Gtk::Stack>("stack")} , m_start{builder->get_widget<Gtk::Button>("start")} - , m_title{builder->get_widget<Gtk::Widget>("title")} + , m_title{builder->get_widget<Adwaita::WindowTitle>("title")} , m_turn_order{core::turn_order::create()} , m_turn_order_view{Gtk::make_managed<widgets::turn_order_view>(m_turn_order)} , m_settings{std::move(settings)} - , m_subtitle{m_title, "subtitle"} + , m_subtitle{m_title->property_subtitle()} , m_css{Gtk::CssProvider::create()} { setup_colors(); diff --git a/ui/src/windows/tracker/actions.cpp b/ui/src/windows/tracker/actions.cpp index 3539816..36d12f3 100644 --- a/ui/src/windows/tracker/actions.cpp +++ b/ui/src/windows/tracker/actions.cpp @@ -26,7 +26,6 @@ #include <adwaitamm/enums.hpp> #include <adwaitamm/preferencesdialog.hpp> -#include <adwaita.h> #include <gio/gio.h> #include <gtk/gtk.h> diff --git a/ui/src/windows/tracker/event_handlers.cpp b/ui/src/windows/tracker/event_handlers.cpp index e33e889..a3cf788 100644 --- a/ui/src/windows/tracker/event_handlers.cpp +++ b/ui/src/windows/tracker/event_handlers.cpp @@ -12,7 +12,6 @@ #include <gtkmm/filedialog.h> -#include <adwaita.h> #include <nlohmann/json.hpp> #include <cstddef> diff --git a/ui/tests/gtk_test_init.cpp b/ui/tests/gtk_test_init.cpp index 47bc27a..bfa885f 100644 --- a/ui/tests/gtk_test_init.cpp +++ b/ui/tests/gtk_test_init.cpp @@ -11,7 +11,6 @@ #include <adwaitamm/application.hpp> #include <adwaitamm/wrap_init.hpp> -#include <adwaita.h> #include <libintl.h> #include <clocale> diff --git a/ui/tests/windows/participant_editor.cpp b/ui/tests/windows/participant_editor.cpp index 46c9b58..3bc5cf4 100644 --- a/ui/tests/windows/participant_editor.cpp +++ b/ui/tests/windows/participant_editor.cpp @@ -15,7 +15,9 @@ #include <gtkmm/listboxrow.h> #include <gtkmm/window.h> -#include <adwaita.h> +#include <adwaitamm/entryrow.hpp> +#include <adwaitamm/spinrow.hpp> + #include <gtk/gtk.h> #include <clocale> @@ -39,26 +41,24 @@ namespace turns::ui::windows::tests SECTION("has a non-empty title") { - auto widget = ADW_DIALOG(Glib::unwrap(instance)); - REQUIRE(adw_dialog_get_title(widget)); + REQUIRE_FALSE(instance->get_title().empty()); } SECTION("has its title set according to the active language") { - auto widget = ADW_DIALOG(Glib::unwrap(instance)); - REQUIRE(adw_dialog_get_title(widget) == Glib::ustring{_(lang::add_participant)}); + REQUIRE(instance->get_title() == _(lang::add_participant)); } SECTION("has an empty name field") { - auto widget = GTK_EDITABLE(Glib::unwrap(builder->get_widget<Gtk::ListBoxRow>("name"))); - REQUIRE(Glib::ustring{gtk_editable_get_text(widget)}.empty()); + auto widget = builder->get_widget<Adwaita::EntryRow>("name"); + REQUIRE(widget->get_text().empty()); } SECTION("has a zero priority field") { - auto widget = ADW_SPIN_ROW(Glib::unwrap(builder->get_widget<Gtk::ListBoxRow>("priority"))); - REQUIRE(adw_spin_row_get_value(widget) == 0); + auto widget = builder->get_widget<Adwaita::SpinRow>("priority"); + REQUIRE(widget->get_value() == 0); } SECTION("allows binding to the finished signal") @@ -84,26 +84,24 @@ namespace turns::ui::windows::tests SECTION("has a non-empty title") { - auto widget = ADW_DIALOG(Glib::unwrap(instance)); - REQUIRE(adw_dialog_get_title(widget)); + REQUIRE_FALSE(instance->get_title().empty()); } SECTION("has its title set according to the active language") { - auto widget = ADW_DIALOG(Glib::unwrap(instance)); - REQUIRE(adw_dialog_get_title(widget) == Glib::ustring{_(lang::edit_participant)}); + REQUIRE(instance->get_title() == _(lang::edit_participant)); } SECTION("has its name field set according to its participant") { - auto widget = GTK_EDITABLE(Glib::unwrap(builder->get_widget<Gtk::ListBoxRow>("name"))); - REQUIRE(gtk_editable_get_text(widget) == participant->property_name().get_value()); + auto widget = builder->get_widget<Adwaita::EntryRow>("name"); + REQUIRE(widget->get_text() == participant->property_name().get_value()); } SECTION("has its priority field set according to its participant") { - auto widget = ADW_SPIN_ROW(Glib::unwrap(builder->get_widget<Gtk::ListBoxRow>("priority"))); - REQUIRE(adw_spin_row_get_value(widget) == participant->property_priority()); + auto widget = builder->get_widget<Adwaita::SpinRow>("priority"); + REQUIRE(widget->get_value() == participant->property_priority()); } SECTION("allows binding to the finished signal") diff --git a/ui/tests/windows/resources.cpp b/ui/tests/windows/resources.cpp index 86db03e..eb1fce4 100644 --- a/ui/tests/windows/resources.cpp +++ b/ui/tests/windows/resources.cpp @@ -3,8 +3,6 @@ #include <gtkmm/builder.h> #include <gtkmm/widget.h> -#include <adwaita.h> - TEST_CASE("GResource for tracker") { auto builder = Gtk::Builder::create_from_resource("/windows/tracker.ui"); diff --git a/ui/tests/windows/tracker.cpp b/ui/tests/windows/tracker.cpp index 4af1dcd..384d7f1 100644 --- a/ui/tests/windows/tracker.cpp +++ b/ui/tests/windows/tracker.cpp @@ -7,7 +7,6 @@ #include <catch2/generators/catch_generators.hpp> #include <glibmm/i18n.h> -#include <glibmm/ustring.h> #include <glibmm/wrap.h> #include <gtkmm/builder.h> @@ -15,7 +14,7 @@ #include <gtkmm/menubutton.h> #include <gtkmm/widget.h> -#include <adwaita.h> +#include <adwaitamm/windowtitle.hpp> #include <clocale> @@ -37,42 +36,38 @@ namespace turns::ui::windows::tests SECTION("has a non-empty subtitle") { - auto widget = builder->get_widget<Gtk::Widget>("title"); - auto adw = ADW_WINDOW_TITLE(Glib::unwrap(widget)); - REQUIRE(adw_window_title_get_subtitle(adw)); + auto widget = builder->get_widget<Adwaita::WindowTitle>("title"); + REQUIRE_FALSE(widget->get_subtitle().empty()); } SECTION("has its subtitle set according to the active language") { - auto widget = builder->get_widget<Gtk::Widget>("title"); - auto adw = ADW_WINDOW_TITLE(Glib::unwrap(widget)); - REQUIRE(adw_window_title_get_subtitle(adw) == Glib::ustring{_(lang::no_active_turn_order)}); + auto widget = builder->get_widget<Adwaita::WindowTitle>("title"); + REQUIRE(widget->get_subtitle() == _(lang::no_active_turn_order)); } SECTION("has a non-empty title") { - auto widget = builder->get_widget<Gtk::Widget>("title"); - auto adw = ADW_WINDOW_TITLE(Glib::unwrap(widget)); - REQUIRE(adw_window_title_get_title(adw)); + auto widget = builder->get_widget<Adwaita::WindowTitle>("title"); + REQUIRE_FALSE(widget->get_title().empty()); } SECTION("has its title set according to the active language") { - auto widget = builder->get_widget<Gtk::Widget>("title"); - auto adw = ADW_WINDOW_TITLE(Glib::unwrap(widget)); - REQUIRE(adw_window_title_get_title(adw) == Glib::ustring{_(lang::turns)}); + auto widget = builder->get_widget<Adwaita::WindowTitle>("title"); + REQUIRE(widget->get_title() == _(lang::turns)); } SECTION("has its add_participant button's tooltip set according to the active language") { auto widget = builder->get_widget<Gtk::Button>("add_participant"); - REQUIRE(widget->get_tooltip_text() == Glib::ustring{_(lang::add_participant)}); + REQUIRE(widget->get_tooltip_text() == _(lang::add_participant)); } SECTION("as its open_main_menu button's tooltip set according to the active language") { auto widget = builder->get_widget<Gtk::MenuButton>("open_main_menu"); - REQUIRE(widget->get_tooltip_text() == Glib::ustring{_(lang::main_menu)}); + REQUIRE(widget->get_tooltip_text() == _(lang::main_menu)); } instance->destroy(); |
