From c68058f0f3e52f4bf50ab963596e993f10d25b64 Mon Sep 17 00:00:00 2001 From: Christopher Davis Date: Mon, 8 Feb 2021 05:53:18 -0800 Subject: [PATCH] restrict-applications: Use HdyPreferencesWindow HdyPreferencesWindow provides a neat API we can use for windows like this. --- .../restrict-applications-dialog.c | 12 +++--- .../restrict-applications-dialog.h | 3 +- .../restrict-applications-dialog.ui | 43 +++++-------------- .../restrict-applications-selector.ui | 26 ++++------- libmalcontent-ui/user-controls.c | 15 ------- libmalcontent-ui/user-controls.ui | 2 - 6 files changed, 28 insertions(+), 73 deletions(-) diff --git a/libmalcontent-ui/restrict-applications-dialog.c b/libmalcontent-ui/restrict-applications-dialog.c index c7c9bc0..24da7d2 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; + HdyPreferencesGroup *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, HDY_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)); + hdy_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)); + hdy_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..768e90b 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, HdyPreferencesWindow) 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..c96936b 100644 --- a/libmalcontent-ui/restrict-applications-dialog.ui +++ b/libmalcontent-ui/restrict-applications-dialog.ui @@ -2,48 +2,27 @@ -