[gnome-software] Show all the screenshots with captions for the details view for fonts
- From: Richard Hughes <rhughes src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [gnome-software] Show all the screenshots with captions for the details view for fonts
- Date: Thu, 24 Oct 2013 20:43:23 +0000 (UTC)
commit d8a54041a3144e5bd4b2e80cb9ccdad10b4edecb
Author: Richard Hughes <richard hughsie com>
Date: Thu Oct 24 21:34:05 2013 +0100
Show all the screenshots with captions for the details view for fonts
You need new AppStream metadata for this to work. We'll do something closer to
the mockups soon.
src/gnome-software.ui | 1 +
src/gs-shell-details.c | 33 +++++++++++++++++++++++++++++++++
2 files changed, 34 insertions(+), 0 deletions(-)
---
diff --git a/src/gnome-software.ui b/src/gnome-software.ui
index 086a18f..11aca21 100644
--- a/src/gnome-software.ui
+++ b/src/gnome-software.ui
@@ -818,6 +818,7 @@
<property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>
+ <property name="spacing">6</property>
<child>
<placeholder/>
</child>
diff --git a/src/gs-shell-details.c b/src/gs-shell-details.c
index b3433bf..83eda48 100644
--- a/src/gs-shell-details.c
+++ b/src/gs-shell-details.c
@@ -249,12 +249,45 @@ gs_shell_details_refresh_screenshots (GsShellDetails *shell_details)
GPtrArray *screenshots;
GsScreenshot *ss;
GsShellDetailsPrivate *priv = shell_details->priv;
+ GtkWidget *label;
GtkWidget *list;
GtkWidget *ssimg;
GtkWidget *widget;
guint i;
GtkRequisition provided;
+ /* treat screenshots differently */
+ if (gs_app_get_id_kind (priv->app) == GS_APP_ID_KIND_FONT) {
+ widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
+ "box_details_screenshot_main"));
+ gs_container_remove_all (GTK_CONTAINER (widget));
+ screenshots = gs_app_get_screenshots (priv->app);
+ for (i = 0; i < screenshots->len; i++) {
+ ss = g_ptr_array_index (screenshots, i);
+
+ /* set caption */
+ label = gtk_label_new (gs_screenshot_get_caption (ss));
+ g_object_set (label,
+ "xalign", 0.0,
+ NULL);
+ gtk_box_pack_start (GTK_BOX (widget), label, FALSE, FALSE, 0);
+ gtk_widget_set_visible (label, TRUE);
+
+ /* set images */
+ ssimg = gs_screenshot_image_new (priv->session);
+ gs_screenshot_image_set_cachedir (GS_SCREENSHOT_IMAGE (ssimg),
+ g_get_user_cache_dir ());
+ gs_screenshot_image_set_screenshot (GS_SCREENSHOT_IMAGE (ssimg), ss);
+ gs_screenshot_image_set_size (GS_SCREENSHOT_IMAGE (ssimg),
+ G_MAXUINT,
+ G_MAXUINT);
+ gs_screenshot_image_load_async (GS_SCREENSHOT_IMAGE (ssimg), NULL);
+ gtk_box_pack_start (GTK_BOX (widget), ssimg, FALSE, FALSE, 0);
+ gtk_widget_set_visible (ssimg, TRUE);
+ }
+ return;
+ }
+
/* set screenshots */
widget = GTK_WIDGET (gtk_builder_get_object (priv->builder,
"box_details_screenshot_main"));
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]