[gnome-software] Remove the 'Read More' labels and just rely on the user single clicking the row
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Remove the 'Read More' labels and just rely on the user single clicking the row
- Date: Fri, 16 Aug 2013 12:28:34 +0000 (UTC)
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]