[gnome-software: 4/15] gs-summary-tile: Modernise GObject property usage
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software: 4/15] gs-summary-tile: Modernise GObject property usage
- Date: Tue, 20 Apr 2021 16:08:57 +0000 (UTC)
commit e1a777a43bf7bdf107745c582e64053f63fadc73
Author: Philip Withnall <pwithnall endlessos org>
Date: Tue Apr 20 14:58:14 2021 +0100
gs-summary-tile: Modernise GObject property usage
This introduces no functional changes, but should make it easier to
catch future programming errors using `-Wenum`.
Signed-off-by: Philip Withnall <pwithnall endlessos org>
src/gs-summary-tile.c | 28 ++++++++++++++++------------
1 file changed, 16 insertions(+), 12 deletions(-)
---
diff --git a/src/gs-summary-tile.c b/src/gs-summary-tile.c
index 76135d428..382e9ce1b 100644
--- a/src/gs-summary-tile.c
+++ b/src/gs-summary-tile.c
@@ -28,10 +28,11 @@ struct _GsSummaryTile
G_DEFINE_TYPE (GsSummaryTile, gs_summary_tile, GS_TYPE_APP_TILE)
-enum {
- PROP_0,
- PROP_PREFERRED_WIDTH
-};
+typedef enum {
+ PROP_PREFERRED_WIDTH = 1,
+} GsSummaryTileProperty;
+
+static GParamSpec *obj_props[PROP_PREFERRED_WIDTH + 1] = { NULL, };
static void
gs_summary_tile_refresh (GsAppTile *self)
@@ -130,7 +131,7 @@ gs_summary_tile_get_property (GObject *object,
{
GsSummaryTile *app_tile = GS_SUMMARY_TILE (object);
- switch (prop_id) {
+ switch ((GsSummaryTileProperty) prop_id) {
case PROP_PREFERRED_WIDTH:
g_value_set_int (value, app_tile->preferred_width);
break;
@@ -148,10 +149,11 @@ gs_summary_tile_set_property (GObject *object,
{
GsSummaryTile *app_tile = GS_SUMMARY_TILE (object);
- switch (prop_id) {
+ switch ((GsSummaryTileProperty) prop_id) {
case PROP_PREFERRED_WIDTH:
app_tile->preferred_width = g_value_get_int (value);
gtk_widget_queue_resize (GTK_WIDGET (app_tile));
+ g_object_notify_by_pspec (object, obj_props[PROP_PREFERRED_WIDTH]);
break;
default:
G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
@@ -217,12 +219,14 @@ gs_summary_tile_class_init (GsSummaryTileClass *klass)
* this property to -1 to turn off this feature and return the default
* natural width instead.
*/
- g_object_class_install_property (object_class, PROP_PREFERRED_WIDTH,
- g_param_spec_int ("preferred-width",
- "Preferred width",
- "The preferred width of this widget, its only
purpose is to trick the parent container",
- -1, G_MAXINT, -1,
- G_PARAM_READWRITE));
+ obj_props[PROP_PREFERRED_WIDTH] =
+ g_param_spec_int ("preferred-width",
+ "Preferred width",
+ "The preferred width of this widget, its only purpose is to trick the
parent container",
+ -1, G_MAXINT, -1,
+ G_PARAM_READWRITE | G_PARAM_EXPLICIT_NOTIFY | G_PARAM_STATIC_STRINGS);
+
+ g_object_class_install_properties (object_class, G_N_ELEMENTS (obj_props), obj_props);
gtk_widget_class_set_template_from_resource (widget_class, "/org/gnome/Software/gs-summary-tile.ui");
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]