diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 639623a..a0870f7 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -7,7 +7,7 @@ cache: - _ccache/ variables: - DEBIAN_IMAGE: "registry.freedesktop.org/pwithnall/malcontent/debian-unstable:v2" + DEBIAN_IMAGE: "registry.freedesktop.org/pwithnall/malcontent/debian-unstable:v3" MESON_TEST_TIMEOUT_MULTIPLIER: 2 G_MESSAGES_DEBUG: all MESON_COMMON_OPTIONS: "--buildtype debug --wrap-mode=nodownload" diff --git a/.gitlab-ci/debian-unstable.Dockerfile b/.gitlab-ci/debian-unstable.Dockerfile index 6c6385b..cf3a9b3 100644 --- a/.gitlab-ci/debian-unstable.Dockerfile +++ b/.gitlab-ci/debian-unstable.Dockerfile @@ -5,13 +5,14 @@ RUN apt-get update -qq && apt-get install --no-install-recommends -qq -y \ git \ gtk-doc-tools \ lcov \ + libadwaita-1-dev \ libaccountsservice-dev \ libappstream-dev \ libflatpak-dev \ libgirepository1.0-dev \ libglib2.0-dev \ libglib-testing-0-dev \ - libgtk-3-dev \ + libgtk-4-dev \ libpam0g-dev \ libpolkit-gobject-1-dev \ libxml2-utils \ diff --git a/README.md b/README.md index 8dbbe72..d631b4f 100644 --- a/README.md +++ b/README.md @@ -122,7 +122,8 @@ Dependencies * gio-unix-2.0 ≥ 2.60 * glib-2.0 ≥ 2.60 * gobject-2.0 ≥ 2.60 - * gtk+-3.0 + * gtk4 + * libadwaita * polkit-gobject-1 Licensing diff --git a/libmalcontent-ui/meson.build b/libmalcontent-ui/meson.build index 9df7b91..6c85393 100644 --- a/libmalcontent-ui/meson.build +++ b/libmalcontent-ui/meson.build @@ -28,7 +28,8 @@ libmalcontent_ui_public_deps = [ dependency('gio-2.0', version: '>= 2.44'), dependency('glib-2.0', version: '>= 2.54.2'), dependency('gobject-2.0', version: '>= 2.54'), - dependency('gtk+-3.0', version: '>= 3.24'), + dependency('gtk4', version: '>= 4.6'), + libadwaita_dep, libmalcontent_dep, ] libmalcontent_ui_private_deps = [ @@ -86,7 +87,7 @@ if xmllint.found() 'validate-ui', xmllint, args: [ '--nonet', '--noblanks', '--noout', - '--relaxng', join_paths(gtk_prefix, 'share', 'gtk-3.0', 'gtkbuilder.rng'), + '--relaxng', join_paths(gtk_prefix, 'share', 'gtk-4.0', 'gtk4builder.rng'), files( 'restrict-applications-dialog.ui', 'restrict-applications-selector.ui', diff --git a/libmalcontent-ui/restrict-applications-dialog.c b/libmalcontent-ui/restrict-applications-dialog.c index c7c9bc0..83e3da2 100644 --- a/libmalcontent-ui/restrict-applications-dialog.c +++ b/libmalcontent-ui/restrict-applications-dialog.c @@ -26,6 +26,7 @@ #include #include #include +#include #include "restrict-applications-dialog.h" #include "restrict-applications-selector.h" @@ -53,13 +54,13 @@ struct _MctRestrictApplicationsDialog GtkDialog parent_instance; MctRestrictApplicationsSelector *selector; - GtkLabel *description; + AdwPreferencesGroup *group; MctAppFilter *app_filter; /* (owned) (not nullable) */ gchar *user_display_name; /* (owned) (nullable) */ }; -G_DEFINE_TYPE (MctRestrictApplicationsDialog, mct_restrict_applications_dialog, GTK_TYPE_DIALOG) +G_DEFINE_TYPE (MctRestrictApplicationsDialog, mct_restrict_applications_dialog, ADW_TYPE_PREFERENCES_WINDOW) typedef enum { @@ -195,7 +196,7 @@ mct_restrict_applications_dialog_class_init (MctRestrictApplicationsDialogClass gtk_widget_class_set_template_from_resource (widget_class, "/org/freedesktop/MalcontentUi/ui/restrict-applications-dialog.ui"); gtk_widget_class_bind_template_child (widget_class, MctRestrictApplicationsDialog, selector); - gtk_widget_class_bind_template_child (widget_class, MctRestrictApplicationsDialog, description); + gtk_widget_class_bind_template_child (widget_class, MctRestrictApplicationsDialog, group); } static void @@ -214,15 +215,14 @@ update_description (MctRestrictApplicationsDialog *self) if (self->user_display_name == NULL) { - gtk_widget_hide (GTK_WIDGET (self->description)); + adw_preferences_group_set_description (self->group, NULL); return; } /* Translators: the placeholder is a user’s full name */ description = g_strdup_printf (_("Restrict %s from using the following installed applications."), self->user_display_name); - gtk_label_set_text (self->description, description); - gtk_widget_show (GTK_WIDGET (self->description)); + adw_preferences_group_set_description (self->group, description); } /** diff --git a/libmalcontent-ui/restrict-applications-dialog.h b/libmalcontent-ui/restrict-applications-dialog.h index b96b335..e59c006 100644 --- a/libmalcontent-ui/restrict-applications-dialog.h +++ b/libmalcontent-ui/restrict-applications-dialog.h @@ -24,13 +24,14 @@ #include #include #include +#include #include G_BEGIN_DECLS #define MCT_TYPE_RESTRICT_APPLICATIONS_DIALOG (mct_restrict_applications_dialog_get_type ()) -G_DECLARE_FINAL_TYPE (MctRestrictApplicationsDialog, mct_restrict_applications_dialog, MCT, RESTRICT_APPLICATIONS_DIALOG, GtkDialog) +G_DECLARE_FINAL_TYPE (MctRestrictApplicationsDialog, mct_restrict_applications_dialog, MCT, RESTRICT_APPLICATIONS_DIALOG, AdwPreferencesWindow) MctRestrictApplicationsDialog *mct_restrict_applications_dialog_new (MctAppFilter *app_filter, const gchar *user_display_name); diff --git a/libmalcontent-ui/restrict-applications-dialog.ui b/libmalcontent-ui/restrict-applications-dialog.ui index 4678124..2fd728f 100644 --- a/libmalcontent-ui/restrict-applications-dialog.ui +++ b/libmalcontent-ui/restrict-applications-dialog.ui @@ -2,48 +2,22 @@ -