summaryrefslogtreecommitdiff
path: root/glib
diff options
context:
space:
mode:
authorCarlos Garcia Campos <carlosgc@gnome.org>2008-08-21 20:40:18 +0200
committerCarlos Garcia Campos <carlosgc@gnome.org>2008-08-21 20:40:18 +0200
commitb5a7987a50b3d28fbfa219e2cef85b9e53aaf079 (patch)
tree1dcf73b4886cb759466aeb8bbdcb7d63786dfd2b /glib
parenta2b0aefedbdb20ce0ef8398a700202021fcf00db (diff)
[glib-demo] Fix attachments demo with documents that don't contain attachments
Diffstat (limited to 'glib')
-rw-r--r--glib/demo/attachments.c27
1 files changed, 20 insertions, 7 deletions
diff --git a/glib/demo/attachments.c b/glib/demo/attachments.c
index 4324e947..72754b2c 100644
--- a/glib/demo/attachments.c
+++ b/glib/demo/attachments.c
@@ -144,7 +144,6 @@ pgd_attachments_save_dialog_response (GtkFileChooser *file_chooser,
gtk_widget_destroy (GTK_WIDGET (file_chooser));
}
-
static void
pgd_attachments_save_button_clicked (GtkButton *button,
GtkTreeView *treeview)
@@ -279,6 +278,7 @@ pgd_attachments_create_widget (PopplerDocument *document)
GtkListStore *model;
GtkWidget *swindow;
GtkWidget *hbox, *button;
+ gboolean has_attachments;
vbox = gtk_vbox_new (FALSE, 12);
@@ -286,26 +286,36 @@ pgd_attachments_create_widget (PopplerDocument *document)
gtk_scrolled_window_set_policy (GTK_SCROLLED_WINDOW (swindow),
GTK_POLICY_AUTOMATIC, GTK_POLICY_AUTOMATIC);
- if (poppler_document_has_attachments (document)) {
+ has_attachments = poppler_document_has_attachments (document);
+ if (has_attachments) {
model = gtk_list_store_new (N_COLUMNS,
G_TYPE_STRING, G_TYPE_STRING,
G_TYPE_STRING,
G_TYPE_STRING, G_TYPE_STRING,
G_TYPE_OBJECT);
pgd_attachments_fill_model (model, document);
+ treeview = pgd_attachments_create_list (GTK_TREE_MODEL (model));
} else {
- GtkTreeIter iter;
- gchar *markup;
+ GtkCellRenderer *renderer;
+ GtkTreeIter iter;
+ gchar *markup;
model = gtk_list_store_new (1, G_TYPE_STRING);
gtk_list_store_append (model, &iter);
markup = g_strdup_printf ("<span size=\"larger\" style=\"italic\">%s</span>",
- "The document doesn't contain outline");
+ "The document doesn't contain attachments");
gtk_list_store_set (model, &iter, 0, markup, -1);
g_free (markup);
+
+ treeview = gtk_tree_view_new_with_model (GTK_TREE_MODEL (model));
+
+ renderer = gtk_cell_renderer_text_new ();
+ gtk_tree_view_insert_column_with_attributes (GTK_TREE_VIEW (treeview),
+ 0, "Name",
+ renderer,
+ "markup", 0,
+ NULL);
}
-
- treeview = pgd_attachments_create_list (GTK_TREE_MODEL (model));
g_object_unref (model);
gtk_container_add (GTK_CONTAINER (swindow), treeview);
@@ -314,6 +324,9 @@ pgd_attachments_create_widget (PopplerDocument *document)
gtk_box_pack_start (GTK_BOX (vbox), swindow, TRUE, TRUE, 0);
gtk_widget_show (swindow);
+ if (!has_attachments)
+ return vbox;
+
hbox = gtk_hbutton_box_new ();
gtk_button_box_set_layout (GTK_BUTTON_BOX (hbox), GTK_BUTTONBOX_SPREAD);