[gnome-software/1723-installed-updates-papercuts: 5/9] gs-app-row: Check for value change in setter functions
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software/1723-installed-updates-papercuts: 5/9] gs-app-row: Check for value change in setter functions
- Date: Tue, 26 Apr 2022 08:58:06 +0000 (UTC)
commit 4c6699f25aec6e6c50bee2afc618a9632af2e154
Author: Milan Crha <mcrha redhat com>
Date: Tue Apr 26 10:43:52 2022 +0200
gs-app-row: Check for value change in setter functions
This can avoid unneeded refreshes of the app row.
src/gs-app-row.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
---
diff --git a/src/gs-app-row.c b/src/gs-app-row.c
index f37d799cd..6c3cdad44 100644
--- a/src/gs-app-row.c
+++ b/src/gs-app-row.c
@@ -913,6 +913,8 @@ gs_app_row_set_size_groups (GsAppRow *app_row,
{
GsAppRowPrivate *priv = gs_app_row_get_instance_private (app_row);
+ g_return_if_fail (GS_IS_APP_ROW (app_row));
+
if (name != NULL)
gtk_size_group_add_widget (name, priv->name_box);
gs_progress_button_set_size_groups (GS_PROGRESS_BUTTON (priv->button), button_label, button_image);
@@ -923,6 +925,11 @@ gs_app_row_set_colorful (GsAppRow *app_row, gboolean colorful)
{
GsAppRowPrivate *priv = gs_app_row_get_instance_private (app_row);
+ g_return_if_fail (GS_IS_APP_ROW (app_row));
+
+ if ((!priv->colorful) == (!colorful))
+ return;
+
priv->colorful = colorful;
gs_app_row_schedule_refresh (app_row);
g_object_notify_by_pspec (G_OBJECT (app_row), obj_props[PROP_COLORFUL]);
@@ -933,6 +940,11 @@ gs_app_row_set_show_buttons (GsAppRow *app_row, gboolean show_buttons)
{
GsAppRowPrivate *priv = gs_app_row_get_instance_private (app_row);
+ g_return_if_fail (GS_IS_APP_ROW (app_row));
+
+ if ((!priv->show_buttons) == (!show_buttons))
+ return;
+
priv->show_buttons = show_buttons;
gs_app_row_schedule_refresh (app_row);
g_object_notify_by_pspec (G_OBJECT (app_row), obj_props[PROP_SHOW_BUTTONS]);
@@ -943,6 +955,11 @@ gs_app_row_set_show_rating (GsAppRow *app_row, gboolean show_rating)
{
GsAppRowPrivate *priv = gs_app_row_get_instance_private (app_row);
+ g_return_if_fail (GS_IS_APP_ROW (app_row));
+
+ if ((!priv->show_rating) == (!show_rating))
+ return;
+
priv->show_rating = show_rating;
gs_app_row_schedule_refresh (app_row);
g_object_notify_by_pspec (G_OBJECT (app_row), obj_props[PROP_SHOW_RATING]);
@@ -999,6 +1016,11 @@ gs_app_row_set_show_source (GsAppRow *app_row, gboolean show_source)
{
GsAppRowPrivate *priv = gs_app_row_get_instance_private (app_row);
+ g_return_if_fail (GS_IS_APP_ROW (app_row));
+
+ if ((!priv->show_source) == (!show_source))
+ return;
+
priv->show_source = show_source;
gs_app_row_schedule_refresh (app_row);
g_object_notify_by_pspec (G_OBJECT (app_row), obj_props[PROP_SHOW_SOURCE]);
@@ -1008,6 +1030,12 @@ void
gs_app_row_set_show_installed_size (GsAppRow *app_row, gboolean show_size)
{
GsAppRowPrivate *priv = gs_app_row_get_instance_private (app_row);
+
+ g_return_if_fail (GS_IS_APP_ROW (app_row));
+
+ if ((!priv->show_installed_size) == (!show_size))
+ return;
+
priv->show_installed_size = show_size;
gs_app_row_schedule_refresh (app_row);
g_object_notify_by_pspec (G_OBJECT (app_row), obj_props[PROP_SHOW_INSTALLED_SIZE]);
@@ -1069,6 +1097,9 @@ gs_app_row_set_show_update (GsAppRow *app_row, gboolean show_update)
{
GsAppRowPrivate *priv = gs_app_row_get_instance_private (app_row);
+ if ((!priv->show_update) == (!show_update))
+ return;
+
priv->show_update = show_update;
gs_app_row_schedule_refresh (app_row);
g_object_notify_by_pspec (G_OBJECT (app_row), obj_props[PROP_SHOW_UPDATE]);
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]