[gnome-software/wip/kalev/flatpakrepo-hide-unknown-fields: 2/2] details page: Hide fields that don't make sense for sources



commit c23ca8c9252899d3d19b5d1f49df5833a176f8bd
Author: Kalev Lember <klember redhat com>
Date:   Fri Mar 1 15:43:21 2019 +0100

    details page: Hide fields that don't make sense for sources
    
    This makes installing a .flatpakrepo file much nicer as we no longer
    show a bunch of fields with "Unknown" in it.

 src/gs-details-page.c | 26 ++++++++++++++++++++++++++
 1 file changed, 26 insertions(+)
---
diff --git a/src/gs-details-page.c b/src/gs-details-page.c
index 3b0490b0..10793aba 100644
--- a/src/gs-details-page.c
+++ b/src/gs-details-page.c
@@ -96,6 +96,8 @@ struct _GsDetailsPage
        GtkWidget               *button_details_license_free;
        GtkWidget               *button_details_license_nonfree;
        GtkWidget               *button_details_license_unknown;
+       GtkWidget               *label_details_license_title;
+       GtkWidget               *box_details_license_value;
        GtkWidget               *label_details_origin_title;
        GtkWidget               *label_details_origin_value;
        GtkWidget               *label_details_size_installed_title;
@@ -104,6 +106,7 @@ struct _GsDetailsPage
        GtkWidget               *label_details_size_download_value;
        GtkWidget               *label_details_updated_title;
        GtkWidget               *label_details_updated_value;
+       GtkWidget               *label_details_version_title;
        GtkWidget               *label_details_version_value;
        GtkWidget               *label_details_permissions_title;
        GtkWidget               *button_details_permissions_value;
@@ -1319,6 +1322,26 @@ gs_details_page_refresh_all (GsDetailsPage *self)
                break;
        }
 
+       /* hide fields that don't make sense for sources */
+       switch (gs_app_get_kind (self->app)) {
+       case AS_APP_KIND_SOURCE:
+               gtk_widget_set_visible (self->label_details_license_title, FALSE);
+               gtk_widget_set_visible (self->box_details_license_value, FALSE);
+               gtk_widget_set_visible (self->label_details_permissions_title, FALSE);
+               gtk_widget_set_visible (self->button_details_permissions_value, FALSE);
+               gtk_widget_set_visible (self->label_details_version_title, FALSE);
+               gtk_widget_set_visible (self->label_details_version_value, FALSE);
+               break;
+       default:
+               gtk_widget_set_visible (self->label_details_license_title, TRUE);
+               gtk_widget_set_visible (self->box_details_license_value, TRUE);
+               gtk_widget_set_visible (self->label_details_permissions_title, TRUE);
+               gtk_widget_set_visible (self->button_details_permissions_value, TRUE);
+               gtk_widget_set_visible (self->label_details_version_title, TRUE);
+               gtk_widget_set_visible (self->label_details_version_value, TRUE);
+               break;
+       }
+
        gs_details_page_update_shortcut_button (self);
 
        /* update progress */
@@ -2659,6 +2682,8 @@ gs_details_page_class_init (GsDetailsPageClass *klass)
        gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_details_license_free);
        gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_details_license_nonfree);
        gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_details_license_unknown);
+       gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_license_title);
+       gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, box_details_license_value);
        gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_origin_title);
        gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_origin_value);
        gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_size_download_title);
@@ -2667,6 +2692,7 @@ gs_details_page_class_init (GsDetailsPageClass *klass)
        gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, 
label_details_size_installed_value);
        gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_updated_title);
        gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_updated_value);
+       gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_version_title);
        gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_version_value);
        gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, label_details_permissions_title);
        gtk_widget_class_bind_template_child (widget_class, GsDetailsPage, button_details_permissions_value);


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]