[gnome-software/wip/hughsie/sandbox-ui] f



commit 96fcccb4b9df8b1aa64ee2bd9ad837e032849a2a
Author: Richard Hughes <richard hughsie com>
Date:   Fri Jul 8 16:57:01 2016 +0100

    f

 src/gs-app-row.c  |   23 +++++++++++++++++++++++
 src/gs-app-row.ui |   16 ++++++++++++++++
 2 files changed, 39 insertions(+), 0 deletions(-)
---
diff --git a/src/gs-app-row.c b/src/gs-app-row.c
index c5253bd..d77d077 100644
--- a/src/gs-app-row.c
+++ b/src/gs-app-row.c
@@ -29,6 +29,7 @@
 #include "gs-star-widget.h"
 #include "gs-progress-button.h"
 #include "gs-common.h"
+#include "gs-folders.h"
 
 typedef struct
 {
@@ -38,6 +39,7 @@ typedef struct
        GtkWidget       *name_label;
        GtkWidget       *version_label;
        GtkWidget       *star;
+       GtkWidget       *folder_label;
        GtkWidget       *description_label;
        GtkWidget       *button_box;
        GtkWidget       *button;
@@ -151,6 +153,7 @@ gs_app_row_refresh (GsAppRow *app_row)
        GString *str = NULL;
        const gchar *tmp;
        gboolean missing_search_result;
+       gboolean use_folders = FALSE;
 
        if (priv->app == NULL)
                return;
@@ -247,6 +250,25 @@ gs_app_row_refresh (GsAppRow *app_row)
                                     gs_app_get_version_ui (priv->app));
        }
 
+       /* folders */
+       use_folders = gs_utils_is_current_desktop ("GNOME") &&
+               g_settings_get_boolean (priv->settings, "show-folder-management");
+
+       if (!use_folders || priv->show_update || priv->show_codec) {
+               gtk_widget_hide (priv->folder_label);
+       } else {
+               g_autoptr(GsFolders) folders = NULL;
+               const gchar *folder;
+               folders = gs_folders_get ();
+               folder = gs_folders_get_app_folder (folders,
+                                                   gs_app_get_id (priv->app),
+                                                   gs_app_get_categories (priv->app));
+               if (folder != NULL)
+                       folder = gs_folders_get_folder_name (folders, folder);
+               gtk_label_set_label (GTK_LABEL (priv->folder_label), folder);
+               gtk_widget_set_visible (priv->folder_label, folder != NULL);
+       }
+
        if (gs_app_get_pixbuf (priv->app) != NULL)
                gs_image_set_from_pixbuf (GTK_IMAGE (priv->image),
                                          gs_app_get_pixbuf (priv->app));
@@ -542,6 +564,7 @@ gs_app_row_class_init (GsAppRowClass *klass)
        gtk_widget_class_bind_template_child_private (widget_class, GsAppRow, name_label);
        gtk_widget_class_bind_template_child_private (widget_class, GsAppRow, version_label);
        gtk_widget_class_bind_template_child_private (widget_class, GsAppRow, star);
+       gtk_widget_class_bind_template_child_private (widget_class, GsAppRow, folder_label);
        gtk_widget_class_bind_template_child_private (widget_class, GsAppRow, description_label);
        gtk_widget_class_bind_template_child_private (widget_class, GsAppRow, button_box);
        gtk_widget_class_bind_template_child_private (widget_class, GsAppRow, button);
diff --git a/src/gs-app-row.ui b/src/gs-app-row.ui
index a0026cd..7317b15 100644
--- a/src/gs-app-row.ui
+++ b/src/gs-app-row.ui
@@ -80,6 +80,22 @@
               </packing>
             </child>
             <child>
+              <object class="GtkLabel" id="folder_label">
+                <property name="visible">True</property>
+                <property name="xalign">0.0</property>
+                <property name="yalign">0.5</property>
+                <property name="halign">start</property>
+                <property name="ellipsize">end</property>
+                <style>
+                  <class name="folder-label"/>
+                </style>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+              </packing>
+            </child>
+            <child>
               <object class="GtkBox" id="box_sandboxed">
                 <property name="visible">True</property>
                 <property name="can_focus">False</property>


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