[gnome-software/1723-installed-updates-papercuts] gs-app-row: Add an option to hide "installed" label on the row
- From: Milan Crha <mcrha src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software/1723-installed-updates-papercuts] gs-app-row: Add an option to hide "installed" label on the row
- Date: Tue, 19 Apr 2022 12:22:49 +0000 (UTC)
commit 5fecc9c0d64c70b29005c5b40fd5136c22d91d83
Author: Milan Crha <mcrha redhat com>
Date: Tue Apr 19 14:18:43 2022 +0200
gs-app-row: Add an option to hide "installed" label on the row
The "installed" label can be unneeded in "Installed Updates" dialog,
thus this new option will help to hide it there.
src/gs-app-row.c | 28 +++++++++++++++++++++++++++-
src/gs-app-row.h | 2 ++
2 files changed, 29 insertions(+), 1 deletion(-)
---
diff --git a/src/gs-app-row.c b/src/gs-app-row.c
index 4efd5660a..df12bfee9 100644
--- a/src/gs-app-row.c
+++ b/src/gs-app-row.c
@@ -47,6 +47,7 @@ typedef struct
gboolean show_source;
gboolean show_update;
gboolean show_installed_size;
+ gboolean show_installed;
guint pending_refresh_id;
gboolean is_narrow;
} GsAppRowPrivate;
@@ -332,7 +333,7 @@ gs_app_row_actually_refresh (GsAppRow *app_row)
case GS_APP_STATE_UPDATABLE:
case GS_APP_STATE_UPDATABLE_LIVE:
case GS_APP_STATE_INSTALLED:
- gtk_widget_set_visible (priv->label_installed, TRUE);
+ gtk_widget_set_visible (priv->label_installed, priv->show_installed);
break;
default:
gtk_widget_set_visible (priv->label_installed, FALSE);
@@ -842,6 +843,7 @@ gs_app_row_init (GsAppRow *app_row)
GsAppRowPrivate *priv = gs_app_row_get_instance_private (app_row);
priv->show_description = TRUE;
+ priv->show_installed = TRUE;
gtk_widget_init_template (GTK_WIDGET (app_row));
@@ -1015,6 +1017,30 @@ gs_app_row_set_show_update (GsAppRow *app_row, gboolean show_update)
gs_app_row_schedule_refresh (app_row);
}
+/**
+ * gs_app_row_set_show_installed:
+ * @app_row: a #GsAppRow
+ * @show_installed: value to set
+ *
+ * Set whether to show "installed" label. Default is %TRUE. This has effect only
+ * when not showing buttons (gs_app_row_set_show_buttons()).
+ *
+ * Since: 42.1
+ **/
+void
+gs_app_row_set_show_installed (GsAppRow *app_row,
+ gboolean show_installed)
+{
+ GsAppRowPrivate *priv = gs_app_row_get_instance_private (app_row);
+
+ g_return_if_fail (GS_IS_APP_ROW (app_row));
+
+ if ((!show_installed) != (!priv->show_installed)) {
+ priv->show_installed = show_installed;
+ gs_app_row_schedule_refresh (app_row);
+ }
+}
+
GtkWidget *
gs_app_row_new (GsApp *app)
{
diff --git a/src/gs-app-row.h b/src/gs-app-row.h
index 4364b2f5a..8d29a2f23 100644
--- a/src/gs-app-row.h
+++ b/src/gs-app-row.h
@@ -41,6 +41,8 @@ void gs_app_row_set_show_source (GsAppRow *app_row,
gboolean show_source);
void gs_app_row_set_show_update (GsAppRow *app_row,
gboolean show_update);
+void gs_app_row_set_show_installed (GsAppRow *app_row,
+ gboolean show_installed);
GsApp *gs_app_row_get_app (GsAppRow *app_row);
void gs_app_row_set_size_groups (GsAppRow *app_row,
GtkSizeGroup *name,
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]