[gnome-software] Remove the 'Read More' labels and just rely on the user single clicking the row



commit 60a4546ca31e346a54acd8561f7fde44397a592d
Author: Richard Hughes <richard hughsie com>
Date:   Fri Aug 16 13:28:07 2013 +0100

    Remove the 'Read More' labels and just rely on the user single clicking the row
    
    This deviates from the wireframes, but it's what Allan wants.

 src/gs-app-widget.c |   28 -------------
 src/gs-app-widget.h |    1 -
 src/gs-main.c       |  108 +++++++++++++++++++++++++-------------------------
 3 files changed, 54 insertions(+), 83 deletions(-)
---
diff --git a/src/gs-app-widget.c b/src/gs-app-widget.c
index 59ba4da..ef8143b 100644
--- a/src/gs-app-widget.c
+++ b/src/gs-app-widget.c
@@ -51,7 +51,6 @@ G_DEFINE_TYPE (GsAppWidget, gs_app_widget, GTK_TYPE_BOX)
 
 enum {
        SIGNAL_BUTTON_CLICKED,
-       SIGNAL_MORE,
        SIGNAL_LAST
 };
 
@@ -82,7 +81,6 @@ gs_app_widget_refresh (GsAppWidget *app_widget)
        gtk_widget_set_visible (priv->widget_version, TRUE);
        gtk_widget_set_visible (priv->widget_image, TRUE);
        gtk_widget_set_visible (priv->widget_button, TRUE);
-       gtk_widget_set_visible (priv->widget_more, TRUE);
 
        /* show / hide widgets depending on kind */
        switch (app_widget->priv->kind) {
@@ -287,12 +285,6 @@ gs_app_widget_class_init (GsAppWidgetClass *klass)
                              G_STRUCT_OFFSET (GsAppWidgetClass, button_clicked),
                              NULL, NULL, g_cclosure_marshal_VOID__VOID,
                              G_TYPE_NONE, 0);
-       signals [SIGNAL_MORE] =
-               g_signal_new ("more",
-                             G_TYPE_FROM_CLASS (object_class), G_SIGNAL_RUN_LAST,
-                             G_STRUCT_OFFSET (GsAppWidgetClass, more),
-                             NULL, NULL, g_cclosure_marshal_VOID__VOID,
-                             G_TYPE_NONE, 0);
 
        g_type_class_add_private (klass, sizeof (GsAppWidgetPrivate));
 }
@@ -307,15 +299,6 @@ gs_app_widget_button_clicked_cb (GtkWidget *widget, GsAppWidget *app_widget)
 }
 
 /**
- * gs_app_widget_more_clicked_cb:
- **/
-static void
-gs_app_widget_more_clicked_cb (GtkWidget *widget, GsAppWidget *app_widget)
-{
-       g_signal_emit (app_widget, signals[SIGNAL_MORE], 0);
-}
-
-/**
  * gs_app_widget_init:
  **/
 static void
@@ -384,20 +367,9 @@ gs_app_widget_init (GsAppWidget *app_widget)
        gtk_box_pack_start (GTK_BOX (box),
                            GTK_WIDGET (priv->widget_description),
                            TRUE, TRUE, 0);
-
-       /* 'More' Expander */
-       priv->widget_more = gtk_button_new_with_label (_("More"));
-       context = gtk_widget_get_style_context (priv->widget_more);
-       gtk_style_context_add_class (context, "dim-label");
-       gtk_button_set_relief (GTK_BUTTON (priv->widget_more), GTK_RELIEF_NONE);
-       gtk_widget_set_margin_right (priv->widget_more, 36);
-       gtk_widget_set_halign (priv->widget_more, GTK_ALIGN_END);
-       gtk_box_pack_start (GTK_BOX (box), priv->widget_more, FALSE, FALSE, 0);
        gtk_box_pack_start (GTK_BOX (app_widget),
                            GTK_WIDGET (box),
                            TRUE, TRUE, 0);
-       g_signal_connect (priv->widget_more, "clicked",
-                         G_CALLBACK (gs_app_widget_more_clicked_cb), app_widget);
 
        /* button */
        priv->widget_button = gtk_button_new_with_label ("button");
diff --git a/src/gs-app-widget.h b/src/gs-app-widget.h
index b98e114..e90d626 100644
--- a/src/gs-app-widget.h
+++ b/src/gs-app-widget.h
@@ -51,7 +51,6 @@ struct _GsAppWidgetClass
 {
        GtkBoxClass              parent_class;
        void                    (*button_clicked)       (GsAppWidget    *app_widget);
-       void                    (*more)                 (GsAppWidget    *app_widget);
 };
 
 typedef enum {
diff --git a/src/gs-main.c b/src/gs-main.c
index 791ae00..dab32fb 100644
--- a/src/gs-main.c
+++ b/src/gs-main.c
@@ -417,57 +417,6 @@ gs_main_updates_unselect_treeview_cb (gpointer user_data)
 }
 
 /**
- * gs_main_app_widget_more_cb:
- **/
-static void
-gs_main_app_widget_more_cb (GsAppWidget *app_widget, GsMainPrivate *priv)
-{
-       GsAppKind kind;
-       GsApp *app;
-       GsApp *app_related;
-       GtkWidget *widget;
-
-       app = gs_app_widget_get_app (app_widget);
-       kind = gs_app_get_kind (app);
-
-       /* set update header */
-       gs_main_set_updates_description_ui (priv, app);
-
-       /* only OS updates can go back, and only on selection */
-       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_update_back"));
-       gtk_widget_hide (widget);
-
-       /* set update description */
-       if (kind == GS_APP_KIND_OS_UPDATE) {
-               GPtrArray *related;
-               GtkListStore *liststore;
-               GtkTreeIter iter;
-               guint i;
-
-               /* add the related packages to the list view */
-               liststore = GTK_LIST_STORE (gtk_builder_get_object (priv->builder, "liststore_update"));
-               gtk_list_store_clear (liststore);
-               related = gs_app_get_related (app);
-               for (i = 0; i < related->len; i++) {
-                       app_related = g_ptr_array_index (related, i);
-                       gtk_list_store_append (liststore, &iter);
-                       gtk_list_store_set (liststore,
-                                           &iter,
-                                           COLUMN_UPDATE_APP, app_related,
-                                           COLUMN_UPDATE_NAME, gs_app_get_name (app_related),
-                                           COLUMN_UPDATE_VERSION, gs_app_get_version (app_related),
-                                           -1);
-               }
-
-               /* unselect treeview by default */
-               g_idle_add (gs_main_updates_unselect_treeview_cb, priv);
-       }
-
-       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "dialog_update"));
-       gtk_window_present (GTK_WINDOW (widget));
-}
-
-/**
  * gs_main_update_row_activated_cb:
  **/
 static void
@@ -663,9 +612,6 @@ gs_main_get_updates_cb (GsPluginLoader *plugin_loader,
                g_signal_connect (widget, "button-clicked",
                                  G_CALLBACK (gs_main_app_widget_button_clicked_cb),
                                  priv);
-               g_signal_connect (widget, "more",
-                                 G_CALLBACK (gs_main_app_widget_more_cb),
-                                 priv);
                gs_app_widget_set_kind (GS_APP_WIDGET (widget),
                                        GS_APP_WIDGET_KIND_UPDATE);
                gs_app_widget_set_app (GS_APP_WIDGET (widget), app);
@@ -1494,6 +1440,58 @@ gs_main_installed_sort_func (GtkListBoxRow *a,
 }
 
 /**
+ * gs_main_updates_activated_cb:
+ **/
+static void
+gs_main_updates_activated_cb (GtkListBox *list_box, GtkListBoxRow *row, GsMainPrivate *priv)
+{
+       GsAppWidget *app_widget = GS_APP_WIDGET (gtk_bin_get_child (GTK_BIN (row)));
+       GsApp *app = gs_app_widget_get_app (app_widget);
+       GsApp *app_related;
+       GsAppKind kind;
+       GtkWidget *widget;
+
+       app = gs_app_widget_get_app (app_widget);
+       kind = gs_app_get_kind (app);
+
+       /* set update header */
+       gs_main_set_updates_description_ui (priv, app);
+
+       /* only OS updates can go back, and only on selection */
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "button_update_back"));
+       gtk_widget_hide (widget);
+
+       /* set update description */
+       if (kind == GS_APP_KIND_OS_UPDATE) {
+               GPtrArray *related;
+               GtkListStore *liststore;
+               GtkTreeIter iter;
+               guint i;
+
+               /* add the related packages to the list view */
+               liststore = GTK_LIST_STORE (gtk_builder_get_object (priv->builder, "liststore_update"));
+               gtk_list_store_clear (liststore);
+               related = gs_app_get_related (app);
+               for (i = 0; i < related->len; i++) {
+                       app_related = g_ptr_array_index (related, i);
+                       gtk_list_store_append (liststore, &iter);
+                       gtk_list_store_set (liststore,
+                                           &iter,
+                                           COLUMN_UPDATE_APP, app_related,
+                                           COLUMN_UPDATE_NAME, gs_app_get_name (app_related),
+                                           COLUMN_UPDATE_VERSION, gs_app_get_version (app_related),
+                                           -1);
+               }
+
+               /* unselect treeview by default */
+               g_idle_add (gs_main_updates_unselect_treeview_cb, priv);
+       }
+
+       widget = GTK_WIDGET (gtk_builder_get_object (priv->builder, "dialog_update"));
+       gtk_window_present (GTK_WINDOW (widget));
+}
+
+/**
  * gs_main_startup_cb:
  **/
 static void
@@ -1585,6 +1583,8 @@ gs_main_startup_cb (GApplication *application, GsMainPrivate *priv)
 
        /* setup updates */
        priv->list_box_updates = GTK_LIST_BOX (gtk_list_box_new ());
+       g_signal_connect (priv->list_box_updates, "row-activated",
+                         G_CALLBACK (gs_main_updates_activated_cb), priv);
        gtk_list_box_set_header_func (priv->list_box_updates,
                                      gs_main_list_header_func,
                                      priv,


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