[gnome-software] details: Only show permissions for flatpak apps



commit 660a1a093ec4ed8e462292aa6c13abca6143bee5
Author: Kalev Lember <klember redhat com>
Date:   Mon Mar 4 14:53:47 2019 +0100

    details: Only show permissions for flatpak apps
    
    This hides the "Unknown" permission label for e.g. package-based apps
    and fonts and flatpak runtimes where it doesn't make much sense.
    
    Fixes: https://gitlab.gnome.org/GNOME/gnome-software/issues/611

 src/gs-details-page.c | 32 ++++++++++++++++++--------------
 1 file changed, 18 insertions(+), 14 deletions(-)
---
diff --git a/src/gs-details-page.c b/src/gs-details-page.c
index 30b79642..eda83dd5 100644
--- a/src/gs-details-page.c
+++ b/src/gs-details-page.c
@@ -1248,21 +1248,29 @@ gs_details_page_refresh_all (GsDetailsPage *self)
                break;
        }
 
-       if ((kudos & GS_APP_KUDO_SANDBOXED) > 0) {
+       /* only show permissions for flatpak apps */
+       if (gs_app_get_bundle_kind (self->app) == AS_BUNDLE_KIND_FLATPAK &&
+           gs_app_get_kind (self->app) == AS_APP_KIND_DESKTOP) {
                GsAppPermissions permissions = gs_app_get_permissions (self->app);
 
                populate_permission_details (self, permissions);
 
-               if ((permissions & ~LIMITED_PERMISSIONS) == 0)
-                       gtk_button_set_label (GTK_BUTTON (self->button_details_permissions_value), _("Low"));
-               else if ((permissions & ~MEDIUM_PERMISSIONS) == 0)
-                       gtk_button_set_label (GTK_BUTTON (self->button_details_permissions_value), 
_("Medium"));
-               else
-                       gtk_button_set_label (GTK_BUTTON (self->button_details_permissions_value), _("High"));
-       } else {
-               populate_permission_details (self, GS_APP_PERMISSIONS_UNKNOWN);
+               if (gs_app_get_permissions (self->app) != GS_APP_PERMISSIONS_UNKNOWN) {
+                       if ((permissions & ~LIMITED_PERMISSIONS) == 0)
+                               gtk_button_set_label (GTK_BUTTON (self->button_details_permissions_value), 
_("Low"));
+                       else if ((permissions & ~MEDIUM_PERMISSIONS) == 0)
+                               gtk_button_set_label (GTK_BUTTON (self->button_details_permissions_value), 
_("Medium"));
+                       else
+                               gtk_button_set_label (GTK_BUTTON (self->button_details_permissions_value), 
_("High"));
+               } else {
+                       gtk_button_set_label (GTK_BUTTON (self->button_details_permissions_value), 
_("Unknown"));
+               }
 
-               gtk_button_set_label (GTK_BUTTON (self->button_details_permissions_value), _("Unknown"));
+               gtk_widget_set_visible (self->label_details_permissions_title, TRUE);
+               gtk_widget_set_visible (self->button_details_permissions_value, TRUE);
+       } else {
+               gtk_widget_set_visible (self->label_details_permissions_title, FALSE);
+               gtk_widget_set_visible (self->button_details_permissions_value, FALSE);
        }
 
        /* are we trying to replace something in the baseos */
@@ -1327,16 +1335,12 @@ gs_details_page_refresh_all (GsDetailsPage *self)
        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;


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