[gthumb: 7/57] added the web album dialog, changed the layout



commit bcddd8ff3b14c7aa1cc65b5dd3ecb910ebd90c74
Author: Paolo Bacchilega <paobac src gnome org>
Date:   Fri Jun 4 10:37:22 2010 +0200

    added the web album dialog, changed the layout

 extensions/webalbums/Makefile.am                   |   21 +-
 extensions/webalbums/actions.c                     |   35 +
 extensions/webalbums/actions.h                     |   32 +
 extensions/webalbums/callbacks.c                   |  111 +
 extensions/webalbums/callbacks.h                   |   31 +
 extensions/webalbums/data/ui/web-album-exporter.ui | 3211 ++++++--------------
 extensions/webalbums/dlg-web-exporter.c            | 1259 +-------
 extensions/webalbums/dlg-web-exporter.h            |    6 +-
 extensions/webalbums/main.c                        |   54 +
 9 files changed, 1280 insertions(+), 3480 deletions(-)
---
diff --git a/extensions/webalbums/Makefile.am b/extensions/webalbums/Makefile.am
index efb3684..2722833 100644
--- a/extensions/webalbums/Makefile.am
+++ b/extensions/webalbums/Makefile.am
@@ -5,14 +5,17 @@ SUBDIRS = data
 extensiondir = $(pkglibdir)/extensions
 extension_LTLIBRARIES = libwebalbums.la
 
-libwebalbums_la_SOURCES = 			\
-	albumtheme.c				\
-	albumtheme-private.c			\
-	albumtheme-private.h			\
-	catalog-web-exporter.c			\
-	catalog-web-exporter.h			\
-	dlg-web-exporter.c			\
-	dlg-web-exporter.h
+libwebalbums_la_SOURCES = 		\
+	actions.c			\
+	actions.h			\
+	albumtheme.c			\
+	albumtheme-private.c		\
+	albumtheme-private.h		\
+	callbacks.c			\
+	callbacks.h			\
+	dlg-web-exporter.c		\
+	dlg-web-exporter.h		\
+	main.c
 
 albumtheme-lex.c: albumtheme.l 
 	$(AM_V_GEN)( $(FLEX) $< && mv $(LEX_OUTPUT_ROOT).c albumtheme-lex.c ) 
@@ -43,7 +46,7 @@ EXTRA_DIST = $(extensionini_in_files)	\
 	albumtheme.c			\
 	albumtheme.y			\
 	albumtheme.l			\
-	lex.albumtheme.c
+	albumtheme-lex.c
 
 CLEANFILES = $(BUILT_SOURCES) 
 
diff --git a/extensions/webalbums/actions.c b/extensions/webalbums/actions.c
new file mode 100644
index 0000000..c482542
--- /dev/null
+++ b/extensions/webalbums/actions.c
@@ -0,0 +1,35 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ *  GThumb
+ *
+ *  Copyright (C) 2010 Free Software Foundation, Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
+ */
+
+
+#include <config.h>
+#include <glib/gi18n.h>
+#include <gthumb.h>
+#include "dlg-web-exporter.h"
+
+
+void
+gth_browser_activate_action_export_webalbum (GtkAction  *action,
+					     GthBrowser *browser)
+{
+	dlg_web_exporter (browser);
+}
diff --git a/extensions/webalbums/actions.h b/extensions/webalbums/actions.h
new file mode 100644
index 0000000..116c50a
--- /dev/null
+++ b/extensions/webalbums/actions.h
@@ -0,0 +1,32 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ *  GThumb
+ *
+ *  Copyright (C) 2010 Free Software Foundation, Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef ACTIONS_H
+#define ACTIONS_H
+
+#include <gtk/gtk.h>
+
+#define DEFINE_ACTION(x) void x (GtkAction *action, gpointer data);
+
+DEFINE_ACTION(gth_browser_activate_action_export_webalbum)
+
+#endif /* ACTIONS_H */
diff --git a/extensions/webalbums/callbacks.c b/extensions/webalbums/callbacks.c
new file mode 100644
index 0000000..049b19a
--- /dev/null
+++ b/extensions/webalbums/callbacks.c
@@ -0,0 +1,111 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ *  GThumb
+ *
+ *  Copyright (C) 2010 Free Software Foundation, Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
+ */
+
+
+#include <config.h>
+#include <glib/gi18n.h>
+#include <glib-object.h>
+#include <gthumb.h>
+#include "actions.h"
+
+
+#define BROWSER_DATA_KEY "webalbums-browser-data"
+
+
+static const char *ui_info =
+"<ui>"
+"  <menubar name='MenuBar'>"
+"    <menu name='File' action='FileMenu'>"
+"      <placeholder name='Misc_Actions'>"
+"        <menuitem action='File_CreateWebAlbum'/>"
+"      </placeholder>"
+"    </menu>"
+"  </menubar>"
+"</ui>";
+
+
+static GtkActionEntry action_entries[] = {
+	{ "File_CreateWebAlbum", "webalbums",
+	  N_("Create a _Web Album..."), NULL,
+	  N_("Create a static web album"),
+	  G_CALLBACK (gth_browser_activate_action_export_webalbum) },
+};
+
+
+typedef struct {
+	GtkActionGroup *action_group;
+} BrowserData;
+
+
+static void
+browser_data_free (BrowserData *data)
+{
+	g_free (data);
+}
+
+
+void
+wa__gth_browser_construct_cb (GthBrowser *browser)
+{
+	BrowserData *data;
+	GError      *error = NULL;
+	guint        merge_id;
+
+	g_return_if_fail (GTH_IS_BROWSER (browser));
+
+	data = g_new0 (BrowserData, 1);
+
+	data->action_group = gtk_action_group_new ("Web Albums Actions");
+	gtk_action_group_set_translation_domain (data->action_group, NULL);
+	gtk_action_group_add_actions (data->action_group,
+				      action_entries,
+				      G_N_ELEMENTS (action_entries),
+				      browser);
+	gtk_ui_manager_insert_action_group (gth_browser_get_ui_manager (browser), data->action_group, 0);
+
+	merge_id = gtk_ui_manager_add_ui_from_string (gth_browser_get_ui_manager (browser), ui_info, -1, &error);
+	if (merge_id == 0) {
+		g_warning ("building ui failed: %s", error->message);
+		g_clear_error (&error);
+	}
+
+	g_object_set_data_full (G_OBJECT (browser), BROWSER_DATA_KEY, data, (GDestroyNotify) browser_data_free);
+}
+
+
+void
+wa__gth_browser_update_sensitivity_cb (GthBrowser *browser)
+{
+	BrowserData *data;
+	GtkAction   *action;
+	int          n_selected;
+	gboolean     sensitive;
+
+	data = g_object_get_data (G_OBJECT (browser), BROWSER_DATA_KEY);
+	g_return_if_fail (data != NULL);
+
+	n_selected = gth_file_selection_get_n_selected (GTH_FILE_SELECTION (gth_browser_get_file_list_view (browser)));
+	sensitive = n_selected > 0;
+
+	action = gtk_action_group_get_action (data->action_group, "File_CreateWebAlbum");
+	g_object_set (action, "sensitive", sensitive, NULL);
+}
diff --git a/extensions/webalbums/callbacks.h b/extensions/webalbums/callbacks.h
new file mode 100644
index 0000000..5bfc8d5
--- /dev/null
+++ b/extensions/webalbums/callbacks.h
@@ -0,0 +1,31 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ *  GThumb
+ *
+ *  Copyright (C) 2010 Free Software Foundation, Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
+ */
+
+#ifndef CALLBACKS_H
+#define CALLBACKS_H
+
+#include <gthumb.h>
+
+void wa__gth_browser_construct_cb (GthBrowser *browser);
+void wa__gth_browser_update_sensitivity_cb (GthBrowser *browser);
+
+#endif /* CALLBACKS_H */
diff --git a/extensions/webalbums/data/ui/web-album-exporter.ui b/extensions/webalbums/data/ui/web-album-exporter.ui
index d5090a3..677fd36 100644
--- a/extensions/webalbums/data/ui/web-album-exporter.ui
+++ b/extensions/webalbums/data/ui/web-album-exporter.ui
@@ -1,2323 +1,888 @@
-<?xml version="1.0" standalone="no"?> <!--*- mode: xml -*-->
-<!DOCTYPE glade-interface SYSTEM "http://glade.gnome.org/glade-2.0.dtd";>
-
-<glade-interface>
-<requires lib="gnome"/>
-
-<widget class="GtkDialog" id="web_album_dialog">
-  <property name="border_width">6</property>
-  <property name="title" translatable="yes">Web Album</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">False</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">False</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox6">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">12</property>
-
-      <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="dialog-action_area6">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="wa_help_button">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-help</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-11</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="wa_cancel_button">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-cancel</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-6</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="wa_ok_button">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="has_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="has_focus">True</property>
-	      <property name="label">gtk-save</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-5</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkTable" id="table8">
-	  <property name="border_width">6</property>
-	  <property name="visible">True</property>
-	  <property name="n_rows">16</property>
-	  <property name="n_columns">3</property>
-	  <property name="homogeneous">False</property>
-	  <property name="row_spacing">6</property>
-	  <property name="column_spacing">6</property>
-
-	  <child>
-	    <widget class="GtkLabel" id="label112">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">S_ort:</property>
-	      <property name="use_underline">True</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">10</property>
-	      <property name="bottom_attach">11</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label113">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;b&gt;Index Page Layout&lt;/b&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">5</property>
-	      <property name="bottom_attach">6</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label88">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">    </property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">1</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label84">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Destination:</property>
-	      <property name="use_underline">True</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label87">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;b&gt;Saving&lt;/b&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">0</property>
-	      <property name="bottom_attach">1</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label94">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;b&gt;Album Style&lt;/b&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">0</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">11</property>
-	      <property name="bottom_attach">12</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label86">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Header:</property>
-	      <property name="use_underline">True</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">12</property>
-	      <property name="bottom_attach">13</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox62">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">12</property>
-
-	      <child>
-		<widget class="GtkComboBox" id="wa_sort_images_combobox">
-		  <property name="visible">True</property>
-		  <property name="items" translatable="yes">by name</property>
-		  <property name="add_tearoffs">False</property>
-		  <property name="focus_on_click">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkCheckButton" id="wa_reverse_order_checkbutton">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">Re_verse order</property>
-		  <property name="use_underline">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-		  <property name="active">False</property>
-		  <property name="inconsistent">False</property>
-		  <property name="draw_indicator">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">10</property>
-	      <property name="bottom_attach">11</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options">fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label122">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Footer:</property>
-	      <property name="use_underline">True</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">13</property>
-	      <property name="bottom_attach">14</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox70">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
-
-	      <child>
-		<widget class="GtkEntry" id="wa_header_entry">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="editable">True</property>
-		  <property name="visibility">True</property>
-		  <property name="max_length">0</property>
-		  <property name="text" translatable="yes"></property>
-		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
-		  <property name="activates_default">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">12</property>
-	      <property name="bottom_attach">13</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options">fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox71">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
-
-	      <child>
-		<widget class="GtkEntry" id="wa_footer_entry">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="editable">True</property>
-		  <property name="visibility">True</property>
-		  <property name="max_length">0</property>
-		  <property name="text" translatable="yes"></property>
-		  <property name="has_frame">True</property>
-		  <property name="invisible_char">*</property>
-		  <property name="activates_default">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">13</property>
-	      <property name="bottom_attach">14</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options">fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label99">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Size :</property>
-	      <property name="use_underline">True</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="mnemonic_widget">wa_rows_spinbutton</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">6</property>
-	      <property name="bottom_attach">7</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label123">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;small&gt;&lt;i&gt;&lt;b&gt;Note:&lt;/b&gt; %d (current date).&lt;/i&gt;&lt;/small&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">True</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">14</property>
-	      <property name="bottom_attach">15</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label85">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">_Theme:</property>
-	      <property name="use_underline">True</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">1</property>
-	      <property name="right_attach">2</property>
-	      <property name="top_attach">15</property>
-	      <property name="bottom_attach">16</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox54">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">5</property>
-
-	      <child>
-		<widget class="GtkButton" id="wa_select_theme_button">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">...</property>
-		  <property name="use_underline">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label124">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;small&gt;&lt;i&gt;&lt;b&gt;Note:&lt;/b&gt; click to customize.&lt;/i&gt;&lt;/small&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">True</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-	    </packing>
-	  </child>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">15</property>
-	      <property name="bottom_attach">16</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options">fill</property>
-	    </packing>
-	  </child>
-	  
-	  <child>
-	    <widget class="GtkCheckButton" id="wa_copy_images_checkbutton">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label" translatable="yes">_Copy originals to destination</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="active">False</property>
-	      <property name="inconsistent">False</property>
-	      <property name="draw_indicator">True</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">3</property>
-	      <property name="bottom_attach">4</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="wa_resize_images_hbox">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
-
-	      <child>
-		<widget class="GtkCheckButton" id="wa_resize_images_checkbutton">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">_Resize if larger than:</property>
-		  <property name="use_underline">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-		  <property name="active">False</property>
-		  <property name="inconsistent">False</property>
-		  <property name="draw_indicator">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="wa_resize_images_options_hbox">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">6</property>
-
-		  <child>
-		    <widget class="GtkOptionMenu" id="wa_resize_images_optionmenu">
-		      <property name="visible">True</property>
-		      <property name="can_focus">True</property>
-		      <property name="history">0</property>
-
-		      <child>
-			<widget class="GtkMenu" id="menu2">
-
-			  <child>
-			    <widget class="GtkMenuItem" id="320x1">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">320 x 200</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_320x1_activate" last_modification_time="Thu, 15 May 2003 18:27:44 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="320x2">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">320 x 320</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_320x2_activate" last_modification_time="Thu, 15 May 2003 18:27:44 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="640x1">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">640 x 480</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_640x1_activate" last_modification_time="Thu, 15 May 2003 18:26:48 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="640x2">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">640 x 640</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_640x2_activate" last_modification_time="Thu, 15 May 2003 18:26:48 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="800x6">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">800 x 600</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_800x1_activate" last_modification_time="Thu, 15 May 2003 18:26:48 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="800x7">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">800 x 800</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_800x2_activate" last_modification_time="Thu, 15 May 2003 18:26:48 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="1024x1">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">1024 x 768</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_1024x1_activate" last_modification_time="Thu, 15 May 2003 18:26:48 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="1024x2">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">1024 x 1024</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_1024x2_activate" last_modification_time="Thu, 15 May 2003 18:26:48 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="1280x1">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">1280 x 960</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_1280x1_activate" last_modification_time="Thu, 15 May 2003 18:26:48 GMT"/>
-			    </widget>
-			  </child>
-
-			  <child>
-			    <widget class="GtkMenuItem" id="1280x2">
-			      <property name="visible">True</property>
-			      <property name="label" translatable="yes">1280 x 1280</property>
-			      <property name="use_underline">True</property>
-			      <signal name="activate" handler="on_1280x2_activate" last_modification_time="Thu, 15 May 2003 18:26:48 GMT"/>
-			    </widget>
-			  </child>
-			</widget>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">4</property>
-	      <property name="bottom_attach">5</property>
-	      <property name="x_options">fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkFileChooserButton" id="wa_destination_filechooserbutton">
-	      <property name="visible">True</property>
-	      <property name="title" translatable="yes">Choose destination folder</property>
-	      <property name="action">GTK_FILE_CHOOSER_ACTION_SELECT_FOLDER</property>
-	      <property name="local_only">False</property>
-	      <property name="show_hidden">False</property>
-	      <property name="do_overwrite_confirmation">False</property>
-	      <property name="width_chars">-1</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">1</property>
-	      <property name="bottom_attach">2</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options">fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="hbox91">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">0</property>
-
-	      <child>
-		<widget class="GtkCheckButton" id="wa_single_index_checkbutton">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="label" translatable="yes">or _use a single index page</property>
-		  <property name="use_underline">True</property>
-		  <property name="relief">GTK_RELIEF_NORMAL</property>
-		  <property name="focus_on_click">True</property>
-		  <property name="active">False</property>
-		  <property name="inconsistent">False</property>
-		  <property name="draw_indicator">True</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">8</property>
-	      <property name="bottom_attach">9</property>
-	      <property name="x_options">fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="wa_rows_hbox">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox60">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">12</property>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox69">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">6</property>
-
-		      <child>
-			<widget class="GtkSpinButton" id="wa_rows_spinbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="climb_rate">1</property>
-			  <property name="digits">0</property>
-			  <property name="numeric">False</property>
-			  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-			  <property name="snap_to_ticks">False</property>
-			  <property name="wrap">False</property>
-			  <property name="adjustment">1 1 100 1 10 0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label132">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">rows per page,</property>
-			  <property name="use_underline">False</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">7</property>
-	      <property name="bottom_attach">8</property>
-	      <property name="x_options">fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkHBox" id="wa_cols_hbox">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
-
-	      <child>
-		<widget class="GtkSpinButton" id="wa_cols_spinbutton">
-		  <property name="visible">True</property>
-		  <property name="can_focus">True</property>
-		  <property name="climb_rate">1</property>
-		  <property name="digits">0</property>
-		  <property name="numeric">False</property>
-		  <property name="update_policy">GTK_UPDATE_ALWAYS</property>
-		  <property name="snap_to_ticks">False</property>
-		  <property name="wrap">False</property>
-		  <property name="adjustment">1 1 100 1 10 0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkLabel" id="label133">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">columns, by</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">False</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">6</property>
-	      <property name="bottom_attach">7</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options">fill</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="label143">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes">&lt;small&gt;&lt;i&gt;&lt;b&gt;Note:&lt;/b&gt; Some themes may auto-adjust the
-number of rows and columns, but keep the total 
-number of images per page constant.&lt;/i&gt;&lt;/small&gt;</property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">True</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">9</property>
-	      <property name="bottom_attach">10</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkCheckButton" id="wa_use_subfolders_checkbutton">
-	      <property name="visible">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label" translatable="yes">Use subfolders to organize files</property>
-	      <property name="use_underline">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="active">False</property>
-	      <property name="inconsistent">False</property>
-	      <property name="draw_indicator">True</property>
-	    </widget>
-	    <packing>
-	      <property name="left_attach">2</property>
-	      <property name="right_attach">3</property>
-	      <property name="top_attach">2</property>
-	      <property name="bottom_attach">3</property>
-	      <property name="x_options">fill</property>
-	      <property name="y_options"></property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkDialog" id="web_album_theme_dialog">
-  <property name="border_width">6</property>
-  <property name="title" translatable="yes">Web Album Theme</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">True</property>
-  <property name="resizable">False</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">False</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox7">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">12</property>
-
-      <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="dialog-action_area7">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="wat_cancel_button">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-cancel</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-6</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="wat_ok_button">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="has_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="has_focus">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-5</property>
-
-	      <child>
-		<widget class="GtkAlignment" id="alignment3">
-		  <property name="visible">True</property>
-		  <property name="xalign">0.5</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xscale">0</property>
-		  <property name="yscale">0</property>
-		  <property name="top_padding">0</property>
-		  <property name="bottom_padding">0</property>
-		  <property name="left_padding">0</property>
-		  <property name="right_padding">0</property>
-
-		  <child>
-		    <widget class="GtkHBox" id="hbox85">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">2</property>
-
-		      <child>
-			<widget class="GtkImage" id="image4">
-			  <property name="visible">True</property>
-			  <property name="stock">gtk-apply</property>
-			  <property name="icon_size">4</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkLabel" id="label135">
-			  <property name="visible">True</property>
-			  <property name="label" translatable="yes">_Select</property>
-			  <property name="use_underline">True</property>
-			  <property name="use_markup">False</property>
-			  <property name="justify">GTK_JUSTIFY_LEFT</property>
-			  <property name="wrap">False</property>
-			  <property name="selectable">False</property>
-			  <property name="xalign">0.5</property>
-			  <property name="yalign">0.5</property>
-			  <property name="xpad">0</property>
-			  <property name="ypad">0</property>
-			  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-			  <property name="width_chars">-1</property>
-			  <property name="single_line_mode">False</property>
-			  <property name="angle">0</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		  </child>
-		</widget>
-	      </child>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkVBox" id="vbox32">
-	  <property name="border_width">6</property>
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">12</property>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox24">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">5</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label102">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">&lt;b&gt;Theme&lt;/b&gt;</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox57">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label101">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">     </property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox37">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">6</property>
-
-		      <child>
-			<widget class="GtkHBox" id="hbox58">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">False</property>
-			  <property name="spacing">10</property>
-
-			  <child>
-			    <widget class="GtkScrolledWindow" id="scrolledwindow4">
-			      <property name="width_request">200</property>
-			      <property name="height_request">250</property>
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="hscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			      <property name="vscrollbar_policy">GTK_POLICY_AUTOMATIC</property>
-			      <property name="shadow_type">GTK_SHADOW_IN</property>
-			      <property name="window_placement">GTK_CORNER_TOP_LEFT</property>
-
-			      <child>
-				<widget class="GtkTreeView" id="wat_theme_treeview">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="headers_visible">False</property>
-				  <property name="rules_hint">False</property>
-				  <property name="reorderable">False</property>
-				  <property name="enable_search">True</property>
-				  <property name="fixed_height_mode">False</property>
-				  <property name="hover_selection">False</property>
-				  <property name="hover_expand">False</property>
-				</widget>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkVBox" id="vbox27">
-			      <property name="visible">True</property>
-			      <property name="homogeneous">False</property>
-			      <property name="spacing">6</property>
-
-			      <child>
-				<widget class="GtkLabel" id="label137">
-				  <property name="visible">True</property>
-				  <property name="label" translatable="yes">Style Preview</property>
-				  <property name="use_underline">False</property>
-				  <property name="use_markup">False</property>
-				  <property name="justify">GTK_JUSTIFY_LEFT</property>
-				  <property name="wrap">False</property>
-				  <property name="selectable">False</property>
-				  <property name="xalign">0.5</property>
-				  <property name="yalign">0.5</property>
-				  <property name="xpad">0</property>
-				  <property name="ypad">0</property>
-				  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-				  <property name="width_chars">-1</property>
-				  <property name="single_line_mode">False</property>
-				  <property name="angle">0</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkFrame" id="frame1">
-				  <property name="visible">True</property>
-				  <property name="label_xalign">0</property>
-				  <property name="label_yalign">0.5</property>
-				  <property name="shadow_type">GTK_SHADOW_IN</property>
-
-				  <child>
-				    <widget class="GtkHBox" id="hbox87">
-				      <property name="border_width">3</property>
-				      <property name="visible">True</property>
-				      <property name="homogeneous">False</property>
-				      <property name="spacing">0</property>
-
-				      <child>
-					<widget class="GtkImage" id="wat_preview_image">
-					  <property name="width_request">220</property>
-					  <property name="height_request">220</property>
-					  <property name="visible">True</property>
-					  <property name="stock">gtk-missing-image</property>
-					  <property name="icon_size">4</property>
-					  <property name="xalign">0.5</property>
-					  <property name="yalign">0.5</property>
-					  <property name="xpad">0</property>
-					  <property name="ypad">0</property>
-					</widget>
-					<packing>
-					  <property name="padding">0</property>
-					  <property name="expand">False</property>
-					  <property name="fill">False</property>
-					</packing>
-				      </child>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="wat_go_to_folder_button">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-
-				  <child>
-				    <widget class="GtkAlignment" id="alignment4">
-				      <property name="visible">True</property>
-				      <property name="xalign">0.5</property>
-				      <property name="yalign">0.5</property>
-				      <property name="xscale">0</property>
-				      <property name="yscale">0</property>
-				      <property name="top_padding">0</property>
-				      <property name="bottom_padding">0</property>
-				      <property name="left_padding">0</property>
-				      <property name="right_padding">0</property>
-
-				      <child>
-					<widget class="GtkHBox" id="hbox90">
-					  <property name="visible">True</property>
-					  <property name="homogeneous">False</property>
-					  <property name="spacing">2</property>
-
-					  <child>
-					    <widget class="GtkImage" id="image5">
-					      <property name="visible">True</property>
-					      <property name="stock">gtk-jump-to</property>
-					      <property name="icon_size">4</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-
-					  <child>
-					    <widget class="GtkLabel" id="label136">
-					      <property name="visible">True</property>
-					      <property name="label" translatable="yes">_Go to Theme Folder</property>
-					      <property name="use_underline">True</property>
-					      <property name="use_markup">False</property>
-					      <property name="justify">GTK_JUSTIFY_LEFT</property>
-					      <property name="wrap">False</property>
-					      <property name="selectable">False</property>
-					      <property name="xalign">0.5</property>
-					      <property name="yalign">0.5</property>
-					      <property name="xpad">0</property>
-					      <property name="ypad">0</property>
-					      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-					      <property name="width_chars">-1</property>
-					      <property name="single_line_mode">False</property>
-					      <property name="angle">0</property>
-					    </widget>
-					    <packing>
-					      <property name="padding">0</property>
-					      <property name="expand">False</property>
-					      <property name="fill">False</property>
-					    </packing>
-					  </child>
-					</widget>
-				      </child>
-				    </widget>
-				  </child>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				  <property name="pack_type">GTK_PACK_END</property>
-				</packing>
-			      </child>
-
-			      <child>
-				<widget class="GtkButton" id="wat_install_button">
-				  <property name="visible">True</property>
-				  <property name="can_focus">True</property>
-				  <property name="label" translatable="yes">_Install Theme...</property>
-				  <property name="use_underline">True</property>
-				  <property name="relief">GTK_RELIEF_NORMAL</property>
-				  <property name="focus_on_click">True</property>
-				</widget>
-				<packing>
-				  <property name="padding">0</property>
-				  <property name="expand">False</property>
-				  <property name="fill">False</property>
-				  <property name="pack_type">GTK_PACK_END</property>
-				</packing>
-			      </child>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox33">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label117">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">&lt;b&gt;Personalize theme&lt;/b&gt;</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox65">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label116">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes">     </property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">0</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox34">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">6</property>
-
-		      <child>
-			<widget class="GtkHBox" id="hbox89">
-			  <property name="visible">True</property>
-			  <property name="homogeneous">True</property>
-			  <property name="spacing">6</property>
-
-			  <child>
-			    <widget class="GtkButton" id="wat_thumbnail_caption_button">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">_Thumbnail Caption...</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-
-			  <child>
-			    <widget class="GtkButton" id="wat_image_caption_button">
-			      <property name="visible">True</property>
-			      <property name="can_focus">True</property>
-			      <property name="label" translatable="yes">I_mage Caption...</property>
-			      <property name="use_underline">True</property>
-			      <property name="relief">GTK_RELIEF_NORMAL</property>
-			      <property name="focus_on_click">True</property>
-			    </widget>
-			    <packing>
-			      <property name="padding">0</property>
-			      <property name="expand">True</property>
-			      <property name="fill">True</property>
-			    </packing>
-			  </child>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">True</property>
-			  <property name="fill">True</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkDialog" id="progress_dialog">
-  <property name="border_width">6</property>
-  <property name="width_request">300</property>
-  <property name="title" translatable="yes"></property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">False</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">False</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox8">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">8</property>
-
-      <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="dialog-action_area8">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="progress_cancel">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-cancel</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-6</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkVBox" id="vbox26">
-	  <property name="border_width">6</property>
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">0</property>
-
-	  <child>
-	    <widget class="GtkProgressBar" id="progress_progressbar">
-	      <property name="visible">True</property>
-	      <property name="orientation">GTK_PROGRESS_LEFT_TO_RIGHT</property>
-	      <property name="fraction">0</property>
-	      <property name="pulse_step">0.10000000149</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">12</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkLabel" id="progress_info">
-	      <property name="visible">True</property>
-	      <property name="label" translatable="yes"></property>
-	      <property name="use_underline">False</property>
-	      <property name="use_markup">False</property>
-	      <property name="justify">GTK_JUSTIFY_LEFT</property>
-	      <property name="wrap">False</property>
-	      <property name="selectable">False</property>
-	      <property name="xalign">0</property>
-	      <property name="yalign">0.5</property>
-	      <property name="xpad">0</property>
-	      <property name="ypad">0</property>
-	      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-	      <property name="width_chars">-1</property>
-	      <property name="single_line_mode">False</property>
-	      <property name="angle">0</property>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">False</property>
-	      <property name="fill">False</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-<widget class="GtkDialog" id="caption_dialog">
-  <property name="border_width">6</property>
-  <property name="title" translatable="yes">Caption</property>
-  <property name="type">GTK_WINDOW_TOPLEVEL</property>
-  <property name="window_position">GTK_WIN_POS_NONE</property>
-  <property name="modal">False</property>
-  <property name="resizable">False</property>
-  <property name="destroy_with_parent">False</property>
-  <property name="decorated">True</property>
-  <property name="skip_taskbar_hint">False</property>
-  <property name="skip_pager_hint">False</property>
-  <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property>
-  <property name="gravity">GDK_GRAVITY_NORTH_WEST</property>
-  <property name="focus_on_map">True</property>
-  <property name="urgency_hint">False</property>
-  <property name="has_separator">False</property>
-
-  <child internal-child="vbox">
-    <widget class="GtkVBox" id="dialog-vbox9">
-      <property name="visible">True</property>
-      <property name="homogeneous">False</property>
-      <property name="spacing">3</property>
-
-      <child internal-child="action_area">
-	<widget class="GtkHButtonBox" id="dialog-action_area9">
-	  <property name="visible">True</property>
-	  <property name="layout_style">GTK_BUTTONBOX_END</property>
-
-	  <child>
-	    <widget class="GtkButton" id="c_cancelbutton">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-cancel</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-6</property>
-	    </widget>
-	  </child>
-
-	  <child>
-	    <widget class="GtkButton" id="c_okbutton">
-	      <property name="visible">True</property>
-	      <property name="can_default">True</property>
-	      <property name="can_focus">True</property>
-	      <property name="label">gtk-ok</property>
-	      <property name="use_stock">True</property>
-	      <property name="relief">GTK_RELIEF_NORMAL</property>
-	      <property name="focus_on_click">True</property>
-	      <property name="response_id">-5</property>
-	    </widget>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">False</property>
-	  <property name="fill">True</property>
-	  <property name="pack_type">GTK_PACK_END</property>
-	</packing>
-      </child>
-
-      <child>
-	<widget class="GtkVBox" id="vbox31">
-	  <property name="border_width">6</property>
-	  <property name="visible">True</property>
-	  <property name="homogeneous">False</property>
-	  <property name="spacing">12</property>
-
-	  <child>
-	    <widget class="GtkVBox" id="vbox36">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label140">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">&lt;b&gt;Basic Information&lt;/b&gt;</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox93">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label141">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">6</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkVBox" id="vbox38">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">6</property>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_filename_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">File _name</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_filesize_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">File si_ze</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_imagedim_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Image dim_ensions</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="c_caption_data_vbox">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label138">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">&lt;b&gt;Comments&lt;/b&gt;</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox92">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label139">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">6</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkVBox" id="caption_vbox">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">6</property>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_comment_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Co_mment</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_place_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">_Place</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_date_time_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">_Date and Time</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-
-	  <child>
-	    <widget class="GtkVBox" id="c_exif_data_vbox">
-	      <property name="visible">True</property>
-	      <property name="homogeneous">False</property>
-	      <property name="spacing">6</property>
-
-	      <child>
-		<widget class="GtkLabel" id="label119">
-		  <property name="visible">True</property>
-		  <property name="label" translatable="yes">&lt;b&gt;Camera Data&lt;/b&gt;</property>
-		  <property name="use_underline">False</property>
-		  <property name="use_markup">True</property>
-		  <property name="justify">GTK_JUSTIFY_LEFT</property>
-		  <property name="wrap">False</property>
-		  <property name="selectable">False</property>
-		  <property name="xalign">0</property>
-		  <property name="yalign">0.5</property>
-		  <property name="xpad">0</property>
-		  <property name="ypad">0</property>
-		  <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		  <property name="width_chars">-1</property>
-		  <property name="single_line_mode">False</property>
-		  <property name="angle">0</property>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">False</property>
-		  <property name="fill">False</property>
-		</packing>
-	      </child>
-
-	      <child>
-		<widget class="GtkHBox" id="hbox67">
-		  <property name="visible">True</property>
-		  <property name="homogeneous">False</property>
-		  <property name="spacing">0</property>
-
-		  <child>
-		    <widget class="GtkLabel" id="label120">
-		      <property name="visible">True</property>
-		      <property name="label" translatable="yes"></property>
-		      <property name="use_underline">False</property>
-		      <property name="use_markup">False</property>
-		      <property name="justify">GTK_JUSTIFY_LEFT</property>
-		      <property name="wrap">False</property>
-		      <property name="selectable">False</property>
-		      <property name="xalign">0.5</property>
-		      <property name="yalign">0.5</property>
-		      <property name="xpad">6</property>
-		      <property name="ypad">0</property>
-		      <property name="ellipsize">PANGO_ELLIPSIZE_NONE</property>
-		      <property name="width_chars">-1</property>
-		      <property name="single_line_mode">False</property>
-		      <property name="angle">0</property>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">False</property>
-		      <property name="fill">False</property>
-		    </packing>
-		  </child>
-
-		  <child>
-		    <widget class="GtkVBox" id="exif_vbox">
-		      <property name="visible">True</property>
-		      <property name="homogeneous">False</property>
-		      <property name="spacing">6</property>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_exif_date_time_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Da_te and Time</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_exif_exposure_time_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Exposure _time</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_exif_exposure_mode_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">E_xposure mode</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_exif_flash_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">_Flash</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_exif_shutter_speed_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">_Shutter speed</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_exif_aperture_value_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">_Aperture value</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_exif_focal_length_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Focal _length</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-
-		      <child>
-			<widget class="GtkCheckButton" id="c_exif_camera_model_checkbutton">
-			  <property name="visible">True</property>
-			  <property name="can_focus">True</property>
-			  <property name="label" translatable="yes">Came_ra Model</property>
-			  <property name="use_underline">True</property>
-			  <property name="relief">GTK_RELIEF_NORMAL</property>
-			  <property name="focus_on_click">True</property>
-			  <property name="active">False</property>
-			  <property name="inconsistent">False</property>
-			  <property name="draw_indicator">True</property>
-			</widget>
-			<packing>
-			  <property name="padding">0</property>
-			  <property name="expand">False</property>
-			  <property name="fill">False</property>
-			</packing>
-		      </child>
-		    </widget>
-		    <packing>
-		      <property name="padding">0</property>
-		      <property name="expand">True</property>
-		      <property name="fill">True</property>
-		    </packing>
-		  </child>
-		</widget>
-		<packing>
-		  <property name="padding">0</property>
-		  <property name="expand">True</property>
-		  <property name="fill">True</property>
-		</packing>
-	      </child>
-	    </widget>
-	    <packing>
-	      <property name="padding">0</property>
-	      <property name="expand">True</property>
-	      <property name="fill">True</property>
-	    </packing>
-	  </child>
-	</widget>
-	<packing>
-	  <property name="padding">0</property>
-	  <property name="expand">True</property>
-	  <property name="fill">True</property>
-	</packing>
-      </child>
-    </widget>
-  </child>
-</widget>
-
-</glade-interface>
+<?xml version="1.0"?>
+<interface>
+  <requires lib="gtk+" version="2.16"/>
+  <!-- interface-naming-policy toplevel-contextual -->
+  <object class="GtkAdjustment" id="rows_adjustment">
+    <property name="value">1</property>
+    <property name="lower">1</property>
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkAdjustment" id="cols_adjustment">
+    <property name="value">1</property>
+    <property name="lower">1</property>
+    <property name="upper">100</property>
+    <property name="step_increment">1</property>
+    <property name="page_increment">10</property>
+  </object>
+  <object class="GtkDialog" id="web_album_dialog">
+    <property name="border_width">6</property>
+    <property name="title" translatable="yes">Web Album</property>
+    <property name="type_hint">dialog</property>
+    <property name="has_separator">False</property>
+    <child internal-child="vbox">
+      <object class="GtkVBox" id="dialog-vbox6">
+        <property name="visible">True</property>
+        <property name="orientation">vertical</property>
+        <property name="spacing">5</property>
+        <child>
+          <object class="GtkNotebook" id="notebook1">
+            <property name="visible">True</property>
+            <property name="can_focus">True</property>
+            <property name="border_width">6</property>
+            <child>
+              <object class="GtkVBox" id="vbox1">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="orientation">vertical</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkFrame" id="frame1">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment2">
+                        <property name="visible">True</property>
+                        <property name="top_padding">6</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkVBox" id="vbox5">
+                            <property name="visible">True</property>
+                            <property name="orientation">vertical</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkHBox" id="hbox2">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkLabel" id="label84">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">_Destination:</property>
+                                    <property name="use_underline">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkFileChooserButton" id="wa_destination_filechooserbutton">
+                                    <property name="visible">True</property>
+                                    <property name="local_only">False</property>
+                                    <property name="action">select-folder</property>
+                                    <property name="title" translatable="yes">Choose destination folder</property>
+                                  </object>
+                                  <packing>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="wa_use_subfolders_checkbutton">
+                                <property name="label" translatable="yes">Use subfolders to organize files</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="copy_images_checkbutton">
+                                <property name="label" translatable="yes">_Copy originals to destination</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="position">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkAlignment" id="alignment1">
+                                <property name="visible">True</property>
+                                <property name="left_padding">12</property>
+                                <child>
+                                  <object class="GtkHBox" id="resize_images_hbox">
+                                    <property name="visible">True</property>
+                                    <property name="spacing">6</property>
+                                    <child>
+                                      <object class="GtkCheckButton" id="resize_images_checkbutton">
+                                        <property name="label" translatable="yes">_Resize if larger than:</property>
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">False</property>
+                                        <property name="use_underline">True</property>
+                                        <property name="draw_indicator">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="expand">False</property>
+                                        <property name="fill">False</property>
+                                        <property name="position">0</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkHBox" id="resize_images_options_hbox">
+                                        <property name="visible">True</property>
+                                        <property name="spacing">6</property>
+                                        <child>
+                                          <object class="GtkComboBox" id="resize_images_combobox">
+                                            <property name="visible">True</property>
+                                            <property name="model">size_liststore</property>
+                                            <child>
+                                              <object class="GtkCellRendererText" id="cellrenderertext1"/>
+                                              <attributes>
+                                                <attribute name="text">0</attribute>
+                                              </attributes>
+                                            </child>
+                                          </object>
+                                          <packing>
+                                            <property name="expand">False</property>
+                                            <property name="position">0</property>
+                                          </packing>
+                                        </child>
+                                      </object>
+                                      <packing>
+                                        <property name="position">1</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="position">3</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label1">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Saving</property>
+                        <property name="use_markup">True</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFrame" id="frame2">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment4">
+                        <property name="visible">True</property>
+                        <property name="top_padding">6</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkVBox" id="vbox4">
+                            <property name="visible">True</property>
+                            <property name="orientation">vertical</property>
+                            <property name="spacing">6</property>
+                            <child>
+                              <object class="GtkTable" id="table2">
+                                <property name="visible">True</property>
+                                <property name="n_rows">3</property>
+                                <property name="n_columns">2</property>
+                                <property name="column_spacing">6</property>
+                                <property name="row_spacing">6</property>
+                                <child>
+                                  <object class="GtkTable" id="template_help_table">
+                                    <property name="n_rows">4</property>
+                                    <property name="n_columns">2</property>
+                                    <property name="column_spacing">12</property>
+                                    <property name="row_spacing">6</property>
+                                    <child>
+                                      <object class="GtkLabel" id="label7">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">%P</property>
+                                        <attributes>
+                                          <attribute name="size" value="8000"/>
+                                        </attributes>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label8">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">%N</property>
+                                        <attributes>
+                                          <attribute name="size" value="8000"/>
+                                        </attributes>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label10">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">The current page number</property>
+                                        <attributes>
+                                          <attribute name="size" value="8000"/>
+                                        </attributes>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label11">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">The total number of pages</property>
+                                        <attributes>
+                                          <attribute name="size" value="8000"/>
+                                        </attributes>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label14">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Special code</property>
+                                        <attributes>
+                                          <attribute name="weight" value="bold"/>
+                                          <attribute name="size" value="8000"/>
+                                        </attributes>
+                                      </object>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label15">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">Description</property>
+                                        <attributes>
+                                          <attribute name="weight" value="bold"/>
+                                          <attribute name="size" value="8000"/>
+                                        </attributes>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label16">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes" comments="translate only the text in the curly brackets">%D{ format }</property>
+                                        <attributes>
+                                          <attribute name="size" value="8000"/>
+                                        </attributes>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">3</property>
+                                        <property name="bottom_attach">4</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label17">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                        <property name="label" translatable="yes">The current date</property>
+                                        <attributes>
+                                          <attribute name="size" value="8000"/>
+                                        </attributes>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">3</property>
+                                        <property name="bottom_attach">4</property>
+                                      </packing>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="top_attach">2</property>
+                                    <property name="bottom_attach">3</property>
+                                    <property name="y_options">GTK_FILL</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkEntry" id="footer_entry">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="invisible_char">&#x25CF;</property>
+                                    <property name="activates_default">True</property>
+                                    <property name="secondary_icon_stock">gtk-help</property>
+                                    <property name="secondary_icon_activatable">True</property>
+                                    <property name="secondary_icon_sensitive">True</property>
+                                    <property name="secondary_icon_tooltip_text">Help</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="top_attach">1</property>
+                                    <property name="bottom_attach">2</property>
+                                    <property name="y_options">GTK_FILL</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label122">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">_Footer:</property>
+                                    <property name="use_underline">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="top_attach">1</property>
+                                    <property name="bottom_attach">2</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"></property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkEntry" id="header_entry">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="invisible_char">&#x25CF;</property>
+                                    <property name="activates_default">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="y_options">GTK_FILL</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label86">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">_Header:</property>
+                                    <property name="use_underline">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="x_options">GTK_FILL</property>
+                                    <property name="y_options"></property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <placeholder/>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkVBox" id="vbox6">
+                                <property name="visible">True</property>
+                                <property name="orientation">vertical</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkLabel" id="label18">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">_Theme:</property>
+                                    <property name="use_underline">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkScrolledWindow" id="scrolledwindow4">
+                                    <property name="width_request">200</property>
+                                    <property name="height_request">150</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="hscrollbar_policy">automatic</property>
+                                    <property name="vscrollbar_policy">automatic</property>
+                                    <property name="shadow_type">in</property>
+                                    <child>
+                                      <object class="GtkIconView" id="theme_iconview">
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="orientation">horizontal</property>
+                                        <property name="model">theme_liststore</property>
+                                      </object>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="position">1</property>
+                              </packing>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label2">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Album</property>
+                        <property name="use_markup">True</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label3">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">General</property>
+              </object>
+              <packing>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox3">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="orientation">vertical</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkFrame" id="frame3">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment5">
+                        <property name="visible">True</property>
+                        <property name="top_padding">6</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkTable" id="table3">
+                            <property name="visible">True</property>
+                            <property name="n_rows">3</property>
+                            <property name="n_columns">2</property>
+                            <property name="column_spacing">6</property>
+                            <property name="row_spacing">6</property>
+                            <child>
+                              <object class="GtkLabel" id="label112">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="label" translatable="yes">S_ort:</property>
+                                <property name="use_underline">True</property>
+                              </object>
+                              <packing>
+                                <property name="top_attach">2</property>
+                                <property name="bottom_attach">3</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options"></property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkHBox" id="hbox62">
+                                <property name="visible">True</property>
+                                <property name="spacing">6</property>
+                                <child>
+                                  <object class="GtkComboBox" id="sort_combobox">
+                                    <property name="visible">True</property>
+                                    <property name="model">sort_liststore</property>
+                                    <child>
+                                      <object class="GtkCellRendererText" id="cellrenderertext2"/>
+                                      <attributes>
+                                        <attribute name="text">1</attribute>
+                                      </attributes>
+                                    </child>
+                                  </object>
+                                  <packing>
+                                    <property name="position">0</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkCheckButton" id="wa_reverse_order_checkbutton">
+                                    <property name="label" translatable="yes">Re_verse order</property>
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="receives_default">False</property>
+                                    <property name="use_underline">True</property>
+                                    <property name="draw_indicator">True</property>
+                                  </object>
+                                  <packing>
+                                    <property name="expand">False</property>
+                                    <property name="fill">False</property>
+                                    <property name="position">1</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">2</property>
+                                <property name="bottom_attach">3</property>
+                                <property name="x_options">GTK_FILL</property>
+                                <property name="y_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkCheckButton" id="wa_single_index_checkbutton">
+                                <property name="label" translatable="yes">or _use a single index page</property>
+                                <property name="visible">True</property>
+                                <property name="can_focus">True</property>
+                                <property name="receives_default">False</property>
+                                <property name="use_underline">True</property>
+                                <property name="draw_indicator">True</property>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                                <property name="top_attach">1</property>
+                                <property name="bottom_attach">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkTable" id="table1">
+                                <property name="visible">True</property>
+                                <property name="n_rows">2</property>
+                                <property name="n_columns">2</property>
+                                <property name="column_spacing">6</property>
+                                <property name="row_spacing">6</property>
+                                <child>
+                                  <object class="GtkSpinButton" id="cols_spinbutton">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="invisible_char">&#x25CF;</property>
+                                    <property name="adjustment">cols_adjustment</property>
+                                    <property name="climb_rate">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="x_options">GTK_FILL</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label133">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">columns,</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkSpinButton" id="rows_spinbutton">
+                                    <property name="visible">True</property>
+                                    <property name="can_focus">True</property>
+                                    <property name="invisible_char">&#x25CF;</property>
+                                    <property name="adjustment">rows_adjustment</property>
+                                    <property name="climb_rate">1</property>
+                                  </object>
+                                  <packing>
+                                    <property name="top_attach">1</property>
+                                    <property name="bottom_attach">2</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                  </packing>
+                                </child>
+                                <child>
+                                  <object class="GtkLabel" id="label132">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="label" translatable="yes">rows per page</property>
+                                  </object>
+                                  <packing>
+                                    <property name="left_attach">1</property>
+                                    <property name="right_attach">2</property>
+                                    <property name="top_attach">1</property>
+                                    <property name="bottom_attach">2</property>
+                                    <property name="x_options">GTK_FILL</property>
+                                  </packing>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="left_attach">1</property>
+                                <property name="right_attach">2</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <object class="GtkAlignment" id="alignment3">
+                                <property name="visible">True</property>
+                                <property name="top_padding">4</property>
+                                <child>
+                                  <object class="GtkLabel" id="label99">
+                                    <property name="visible">True</property>
+                                    <property name="xalign">0</property>
+                                    <property name="yalign">0</property>
+                                    <property name="label" translatable="yes">_Size:</property>
+                                    <property name="use_underline">True</property>
+                                  </object>
+                                </child>
+                              </object>
+                              <packing>
+                                <property name="x_options">GTK_FILL</property>
+                              </packing>
+                            </child>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label6">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Page Layout</property>
+                        <property name="use_markup">True</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="expand">False</property>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+                <child>
+                  <object class="GtkFrame" id="frame4">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment6">
+                        <property name="visible">True</property>
+                        <property name="top_padding">6</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkScrolledWindow" id="thumbnail_caption_scrolledwindow">
+                            <property name="height_request">150</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hscrollbar_policy">automatic</property>
+                            <property name="vscrollbar_policy">automatic</property>
+                            <property name="shadow_type">in</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label9">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Thumbnail Caption</property>
+                        <property name="use_markup">True</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">1</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label5">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Index</property>
+              </object>
+              <packing>
+                <property name="position">1</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkVBox" id="vbox2">
+                <property name="visible">True</property>
+                <property name="border_width">6</property>
+                <property name="orientation">vertical</property>
+                <property name="spacing">12</property>
+                <child>
+                  <object class="GtkFrame" id="frame5">
+                    <property name="visible">True</property>
+                    <property name="label_xalign">0</property>
+                    <property name="shadow_type">none</property>
+                    <child>
+                      <object class="GtkAlignment" id="alignment7">
+                        <property name="visible">True</property>
+                        <property name="top_padding">6</property>
+                        <property name="left_padding">12</property>
+                        <child>
+                          <object class="GtkScrolledWindow" id="image_caption_scrolledwindow">
+                            <property name="height_request">150</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="hscrollbar_policy">automatic</property>
+                            <property name="vscrollbar_policy">automatic</property>
+                            <property name="shadow_type">in</property>
+                            <child>
+                              <placeholder/>
+                            </child>
+                          </object>
+                        </child>
+                      </object>
+                    </child>
+                    <child type="label">
+                      <object class="GtkLabel" id="label12">
+                        <property name="visible">True</property>
+                        <property name="label" translatable="yes">Image Caption</property>
+                        <property name="use_markup">True</property>
+                        <attributes>
+                          <attribute name="weight" value="bold"/>
+                        </attributes>
+                      </object>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">0</property>
+                  </packing>
+                </child>
+              </object>
+              <packing>
+                <property name="position">2</property>
+              </packing>
+            </child>
+            <child type="tab">
+              <object class="GtkLabel" id="label4">
+                <property name="visible">True</property>
+                <property name="label" translatable="yes">Image</property>
+              </object>
+              <packing>
+                <property name="position">2</property>
+                <property name="tab_fill">False</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="position">1</property>
+          </packing>
+        </child>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area6">
+            <property name="visible">True</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="help_button">
+                <property name="label">gtk-help</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">0</property>
+                <property name="secondary">True</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="cancel_button">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">1</property>
+              </packing>
+            </child>
+            <child>
+              <object class="GtkButton" id="ok_button">
+                <property name="label">gtk-save</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="has_focus">True</property>
+                <property name="can_default">True</property>
+                <property name="has_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_stock">True</property>
+              </object>
+              <packing>
+                <property name="expand">False</property>
+                <property name="fill">False</property>
+                <property name="position">2</property>
+              </packing>
+            </child>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+      </object>
+    </child>
+    <action-widgets>
+      <action-widget response="-11">help_button</action-widget>
+      <action-widget response="-6">cancel_button</action-widget>
+      <action-widget response="-5">ok_button</action-widget>
+    </action-widgets>
+  </object>
+  <object class="GtkListStore" id="theme_liststore"/>
+  <object class="GtkListStore" id="size_liststore">
+    <columns>
+      <!-- column-name name -->
+      <column type="gchararray"/>
+    </columns>
+  </object>
+  <object class="GtkListStore" id="sort_liststore">
+    <columns>
+      <!-- column-name data -->
+      <column type="gpointer"/>
+      <!-- column-name name -->
+      <column type="gchararray"/>
+    </columns>
+  </object>
+</interface>
diff --git a/extensions/webalbums/dlg-web-exporter.c b/extensions/webalbums/dlg-web-exporter.c
index e1c5842..d56fb98 100644
--- a/extensions/webalbums/dlg-web-exporter.c
+++ b/extensions/webalbums/dlg-web-exporter.c
@@ -3,7 +3,7 @@
 /*
  *  GThumb
  *
- *  Copyright (C) 2003 Free Software Foundation, Inc.
+ *  Copyright (C) 2003-2010 Free Software Foundation, Inc.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -21,1227 +21,196 @@
  */
 
 #include <config.h>
-#include <unistd.h>
-#include <stdlib.h>
-#include <stdio.h>
-#include <string.h>
-
 #include <glib/gi18n.h>
 #include <gtk/gtk.h>
-#include <libgnome/gnome-url.h>
-#include <libgnome/gnome-help.h>
-#include <libgnomevfs/gnome-vfs-directory.h>
-#include <libgnomevfs/gnome-vfs-ops.h>
-#include <libgnomevfs/gnome-vfs-utils.h>
-#include <glade/glade.h>
-
-#include "catalog-web-exporter.h"
-#include "dlg-file-utils.h"
-#include "file-utils.h"
-#include "gfile-utils.h"
-#include "gtk-utils.h"
-#include "gth-file-view.h"
-#include "main.h"
-#include "pixbuf-utils.h"
-#include "gconf-utils.h"
-#include "gth-browser.h"
-#include "gth-utils.h"
-#include "glib-utils.h"
-
-static int           sort_method_to_idx[] = { -1, 0, 1, 2, 3, 4, 5, 6 };
-static GthSortMethod idx_to_sort_method[] = { GTH_SORT_METHOD_BY_NAME,
-					      GTH_SORT_METHOD_BY_PATH,
-					      GTH_SORT_METHOD_BY_SIZE,
-					      GTH_SORT_METHOD_BY_TIME,
-					      GTH_SORT_METHOD_BY_EXIF_DATE,
-					      GTH_SORT_METHOD_BY_COMMENT,
-					      GTH_SORT_METHOD_MANUAL};
-static int           idx_to_resize_width[] = { 320, 320, 640, 640, 800, 800, 1024, 1024, 1280, 1280 };
-static int           idx_to_resize_height[] = { 200, 320, 480, 640, 600, 800, 768, 1024, 960, 1280 };
+#include "dlg-web-exporter.h"
 
-
-#define str_void(x) (((x) == NULL) || (*(x) == 0))
-#define GLADE_EXPORTER_FILE "gthumb_web_exporter.glade"
-#define MAX_PREVIEW_SIZE 220
+#define GET_WIDGET(name) _gtk_builder_get_widget (data->builder, (name))
+#define STRING_IS_VOID(x) (((x) == NULL) || (*(x) == 0))
 #define DEFAULT_ALBUM_THEME "Wiki"
 
-typedef struct {
-	GthBrowser         *browser;
-
-	GladeXML           *gui;
-	GtkWidget          *dialog;
-
-	GtkWidget          *progress_dialog;
-	GtkWidget          *progress_progressbar;
-	GtkWidget          *progress_info;
-	GtkWidget          *progress_cancel;
-
-	GtkWidget          *btn_ok;
-
-	GtkWidget          *wa_destination_filechooserbutton;
-	GtkWidget          *wa_use_subfolders_checkbutton;
-	GtkWidget          *wa_copy_images_checkbutton;
-	GtkWidget          *wa_resize_images_checkbutton;
-	GtkWidget          *wa_resize_images_optionmenu;
-	GtkWidget          *wa_resize_images_hbox;
-	GtkWidget          *wa_resize_images_options_hbox;
-
-	GtkWidget          *wa_rows_spinbutton;
-	GtkWidget          *wa_cols_spinbutton;
-	GtkWidget          *wa_single_index_checkbutton;
-	GtkWidget          *wa_rows_hbox;
-	GtkWidget          *wa_cols_hbox;
-	GtkWidget          *wa_sort_images_combobox;
-	GtkWidget          *wa_reverse_order_checkbutton;
-
-	GtkWidget          *wa_header_entry;
-	GtkWidget          *wa_footer_entry;
-	GtkWidget          *wa_theme_combo;
-	GtkWidget          *wa_select_theme_button;
-
-	/**/
+static struct {
+	int width;
+	int height;
+} resize_size[] = { { 320, 200 },
+		    { 320, 320 },
+		    { 640, 480 },
+		    { 640, 640 },
+		    { 800, 600 },
+		    { 800, 800 },
+		    { 1024, 768 },
+		    { 1024, 1024 },
+		    { 1280, 960 },
+		    { 1280, 1280 } };
 
-	CatalogWebExporter *exporter;
+typedef struct {
+	GthBrowser *browser;
+	GtkBuilder *builder;
+	GtkWidget  *dialog;
+	GtkWidget  *thumbnail_caption_chooser;
+	GtkWidget  *image_caption_chooser;
 } DialogData;
 
 
-/* called when the main dialog is closed. */
 static void
 destroy_cb (GtkWidget  *widget,
 	    DialogData *data)
 {
-	g_object_unref (data->gui);
-	if (data->exporter != NULL)
-		g_object_unref (data->exporter);
+	gth_browser_set_dialog (data->browser, "web_exporter", NULL);
+	g_object_unref (data->builder);
 	g_free (data);
 }
 
 
-/* called when the "help" button is clicked. */
 static void
-help_cb (GtkWidget  *widget,
-         DialogData *data)
+help_clicked_cb (GtkWidget  *widget,
+		 DialogData *data)
 {
-	gthumb_display_help (GTK_WINDOW (data->dialog), "gthumb-web-album");
+	show_help_dialog (GTK_WINDOW (data->dialog), "webalbums");
 }
 
 
 static void
-export (GtkWidget  *widget,
-	DialogData *data)
+ok_clicked_cb (GtkWidget  *widget,
+	       DialogData *data)
 {
-	CatalogWebExporter *exporter = data->exporter;
-	char               *location;
-	char               *path;
-	char               *theme;
-	const char         *header;
-	const char         *footer;
-
-	/* Save options. */
-
-	path = gtk_file_chooser_get_uri (GTK_FILE_CHOOSER (data->wa_destination_filechooserbutton));
-	location = remove_ending_separator (path);
-	g_free (path);
-
-	eel_gconf_set_path (PREF_WEB_ALBUM_DESTINATION, location);
-
-	eel_gconf_set_boolean (PREF_WEB_ALBUM_USE_SUBFOLDERS, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->wa_use_subfolders_checkbutton)));
-	
-	eel_gconf_set_boolean (PREF_WEB_ALBUM_COPY_IMAGES, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->wa_copy_images_checkbutton)));
-
-	eel_gconf_set_boolean (PREF_WEB_ALBUM_RESIZE_IMAGES, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->wa_resize_images_checkbutton)));
-
-	eel_gconf_set_integer (PREF_WEB_ALBUM_RESIZE_WIDTH, idx_to_resize_width[gtk_option_menu_get_history (GTK_OPTION_MENU (data->wa_resize_images_optionmenu))]);
-
-	eel_gconf_set_integer (PREF_WEB_ALBUM_RESIZE_HEIGHT, idx_to_resize_height[gtk_option_menu_get_history (GTK_OPTION_MENU (data->wa_resize_images_optionmenu))]);
-
-	eel_gconf_set_integer (PREF_WEB_ALBUM_ROWS, gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (data->wa_rows_spinbutton)));
-
-	eel_gconf_set_integer (PREF_WEB_ALBUM_COLUMNS, gtk_spin_button_get_value_as_int (GTK_SPIN_BUTTON (data->wa_cols_spinbutton)));
-
-	eel_gconf_set_boolean (PREF_WEB_ALBUM_SINGLE_INDEX, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->wa_single_index_checkbutton)));
-
-	pref_set_web_album_sort_order (idx_to_sort_method [gtk_combo_box_get_active (GTK_COMBO_BOX (data->wa_sort_images_combobox))]);
-
-	eel_gconf_set_boolean (PREF_WEB_ALBUM_REVERSE, gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (data->wa_reverse_order_checkbutton)));
-
-	header = gtk_entry_get_text (GTK_ENTRY (data->wa_header_entry));
-	eel_gconf_set_string (PREF_WEB_ALBUM_HEADER, header);
-
-	footer = gtk_entry_get_text (GTK_ENTRY (data->wa_footer_entry));
-	eel_gconf_set_string (PREF_WEB_ALBUM_FOOTER, footer);
-
-	theme = _gtk_button_get_filename_label (GTK_BUTTON (data->wa_select_theme_button));
-	eel_gconf_set_string (PREF_WEB_ALBUM_THEME, theme);
-
-	if (strcmp (theme, "") == 0) {
-		g_free (location);
-		return;
-	}
-
-	/**/
-
-	if (! dlg_check_folder (GTH_WINDOW (data->browser), location)) {
-		g_free (location);
-		return;
-	}
-
-	gtk_widget_hide (data->dialog);
-
-	/* Set options. */
-
-	catalog_web_exporter_set_location (exporter, location);
-
-	catalog_web_exporter_set_use_subfolders (exporter, eel_gconf_get_boolean (PREF_WEB_ALBUM_USE_SUBFOLDERS, TRUE));
-	
-	catalog_web_exporter_set_copy_images (exporter, eel_gconf_get_boolean (PREF_WEB_ALBUM_COPY_IMAGES, FALSE));
-
-	catalog_web_exporter_set_resize_images (exporter,
-						eel_gconf_get_boolean (PREF_WEB_ALBUM_RESIZE_IMAGES, FALSE),
-						idx_to_resize_width[gtk_option_menu_get_history (GTK_OPTION_MENU (data->wa_resize_images_optionmenu))],
-						idx_to_resize_height[gtk_option_menu_get_history (GTK_OPTION_MENU (data->wa_resize_images_optionmenu))]);
-
-	catalog_web_exporter_set_row_col (exporter, eel_gconf_get_integer (PREF_WEB_ALBUM_ROWS, 4), eel_gconf_get_integer (PREF_WEB_ALBUM_COLUMNS, 4));
-	catalog_web_exporter_set_single_index (exporter, eel_gconf_get_boolean (PREF_WEB_ALBUM_SINGLE_INDEX, FALSE));
-
-	catalog_web_exporter_set_sorted (exporter, pref_get_web_album_sort_order (), eel_gconf_get_boolean (PREF_WEB_ALBUM_REVERSE, FALSE));
-	catalog_web_exporter_set_header (exporter, header);
-	catalog_web_exporter_set_footer (exporter, footer);
-	catalog_web_exporter_set_style (exporter, theme);
-
-	g_free (location);
-	g_free (theme);
-
-	/* Export. */
+	GthTask *task;
 
-	gtk_window_set_transient_for (GTK_WINDOW (data->progress_dialog),
-				      GTK_WINDOW (data->browser));
-	gtk_window_set_modal (GTK_WINDOW (data->progress_dialog), TRUE);
-	gtk_widget_show_all (data->progress_dialog);
+	task = gth_web_exporter_new (data->browser, NULL);
+	gth_browser_exec_task (data->browser, task, FALSE);
 
-	catalog_web_exporter_export (exporter);
-}
-
-
-static void
-export_done (GtkObject  *object,
-	     DialogData *data)
-{
-	gtk_widget_destroy (data->progress_dialog);
 	gtk_widget_destroy (data->dialog);
 }
 
 
 static void
-export_progress (GtkObject  *object,
-		 float       percent,
-		 DialogData *data)
-{
-	gtk_progress_bar_set_fraction (GTK_PROGRESS_BAR (data->progress_progressbar), percent);
-}
-
-
-static void
-export_info (GtkObject  *object,
-	     const char *info,
-	     DialogData *data)
+update_sensitivity (DialogData *data)
 {
-	gtk_label_set_text (GTK_LABEL (data->progress_info), info);
+	gtk_widget_set_sensitive (GET_WIDGET ("resize_images_combobox"), gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("resize_images_checkbutton"))));
+	gtk_widget_set_sensitive (GET_WIDGET ("resize_images_hbox"), gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (GET_WIDGET ("copy_images_checkbutton"))));
 }
 
 
 static void
-export_start_copying (GtkObject  *object,
-		      DialogData *data)
+footer_entry_icon_press_cb (GtkEntry            *entry,
+			    GtkEntryIconPosition icon_pos,
+			    GdkEvent            *event,
+			    gpointer             user_data)
 {
-	gtk_widget_hide (data->progress_dialog);
-}
-
-
-static void show_album_theme_cb (GtkWidget *widget, DialogData *data);
+	DialogData *data = user_data;
+	GtkWidget  *help_box;
 
-
-static int
-get_idx_from_size (int width, int height)
-{
-	int idx;
-	if (width == 320)
-		idx = 0;
-	else if (width == 640)
-		idx = 1;
-	else if (width == 800)
-		idx = 2;
-	else if (width == 1024)
-		idx = 3;
-	else if (width == 1280)
-		idx = 4;
+	help_box = GET_WIDGET ("template_help_table");
+	if (GTK_WIDGET_VISIBLE (help_box))
+		gtk_widget_hide (help_box);
 	else
-		idx = 1;
-	return 2 * idx + (width == height? 1 : 0);
-}
-
-
-static void
-copy_image_toggled_cb (GtkToggleButton *button,
-		       DialogData      *data)
-{
-	gtk_widget_set_sensitive (data->wa_resize_images_hbox, gtk_toggle_button_get_active (button));
-}
-
-
-static void
-resize_image_toggled_cb (GtkToggleButton *button,
-			 DialogData      *data)
-{
-	gtk_widget_set_sensitive (data->wa_resize_images_options_hbox, gtk_toggle_button_get_active (button));
-}
-
-
-static void
-single_index_toggled_cb (GtkToggleButton *button,
-			 DialogData      *data)
-{
-	gtk_widget_set_sensitive (data->wa_rows_hbox, !gtk_toggle_button_get_active (button));
-}
-
-
-
-static gboolean
-theme_present (const char *theme_name,
-	       const char *theme_dir)
-{
-	char *filename;
-
-	if (theme_name == NULL)
-		return FALSE;
-
-	if (theme_dir == NULL)
-		return FALSE;
-
-	filename = g_build_filename (theme_dir, theme_name, NULL);
-
-	return path_is_dir (filename);
-}
-
-
-static char *
-get_default_theme (void)
-{
-	char     *current_theme;
-	char     *local_theme_dir;
-	char     *system_theme_dir;
-	gboolean  found = FALSE;
-
-	current_theme = eel_gconf_get_string (PREF_WEB_ALBUM_THEME, DEFAULT_ALBUM_THEME);
-
-	local_theme_dir = g_build_path (G_DIR_SEPARATOR_S,
-					g_get_home_dir (),
-					".gnome2",
-					"gthumb/albumthemes",
-					NULL);
-	system_theme_dir = g_build_path (G_DIR_SEPARATOR_S,
-					 GTHUMB_DATADIR,
-					 "gthumb/albumthemes",
-					 NULL);
-
-	found = theme_present (current_theme, local_theme_dir);
-
-	if (!found) {
-		found = theme_present (current_theme, system_theme_dir);
-	}
-
-        if (!found) {
-		g_free (current_theme);
-		current_theme = g_strdup (DEFAULT_ALBUM_THEME);
-                found = theme_present (current_theme, local_theme_dir);
-        }
-
-        if (!found) {
-                found = theme_present (current_theme, system_theme_dir);
-        }
-	
-	g_free (local_theme_dir);
-	g_free (system_theme_dir);
-
-	if (! found) {
-		g_free (current_theme);
-		return g_strdup ("");
-	}
-
-	return current_theme;
+		gtk_widget_show (help_box);
 }
 
 
-/* create the main dialog. */
 void
 dlg_web_exporter (GthBrowser *browser)
 {
 	DialogData *data;
-	GtkWidget  *btn_cancel;
-	GtkWidget  *btn_help;
-	GList      *list;
-	char       *svalue;
-	gboolean    reorderable;
-	int         idx;
-
-	data = g_new0 (DialogData, 1);
+	int         i;
+	int         active_index;
+	GList      *scan;
 
-	data->browser = browser;
-
-	list = gth_window_get_file_list_selection_as_fd (GTH_WINDOW (browser));
-	if (list == NULL) {
-		g_warning ("No file selected.");
-		g_free (data);
+	if (gth_browser_get_dialog (browser, "web_exporter") != NULL) {
+		gtk_window_present (GTK_WINDOW (gth_browser_get_dialog (browser, "web_exporter")));
 		return;
 	}
 
-	reorderable = gth_file_view_get_reorderable (gth_browser_get_file_view (browser));
-
-	data->exporter = catalog_web_exporter_new (GTH_WINDOW (browser), list);
-	file_data_list_free (list);
-
-	data->gui = glade_xml_new (GTHUMB_GLADEDIR "/" GLADE_EXPORTER_FILE, NULL, NULL);
-        if (!data->gui) {
-		g_object_unref (data->exporter);
-		g_free (data);
-                g_warning ("Could not find " GLADE_EXPORTER_FILE "\n");
-                return;
-        }
-
-	/* Get the widgets. */
-
-	data->dialog = glade_xml_get_widget (data->gui, "web_album_dialog");
-	data->wa_destination_filechooserbutton = glade_xml_get_widget (data->gui, "wa_destination_filechooserbutton");
-	data->wa_use_subfolders_checkbutton = glade_xml_get_widget (data->gui, "wa_use_subfolders_checkbutton");
-	data->wa_copy_images_checkbutton = glade_xml_get_widget (data->gui, "wa_copy_images_checkbutton");
-
-	data->wa_resize_images_checkbutton = glade_xml_get_widget (data->gui, "wa_resize_images_checkbutton");
-	data->wa_resize_images_optionmenu = glade_xml_get_widget (data->gui, "wa_resize_images_optionmenu");
-	data->wa_resize_images_hbox = glade_xml_get_widget (data->gui, "wa_resize_images_hbox");
-	data->wa_resize_images_options_hbox = glade_xml_get_widget (data->gui, "wa_resize_images_options_hbox");
-
-	data->wa_rows_spinbutton = glade_xml_get_widget (data->gui, "wa_rows_spinbutton");
-	data->wa_cols_spinbutton = glade_xml_get_widget (data->gui, "wa_cols_spinbutton");
-	data->wa_single_index_checkbutton = glade_xml_get_widget (data->gui, "wa_single_index_checkbutton");
-	data->wa_rows_hbox = glade_xml_get_widget (data->gui, "wa_rows_hbox");
-	data->wa_cols_hbox = glade_xml_get_widget (data->gui, "wa_cols_hbox");
-	data->wa_sort_images_combobox = glade_xml_get_widget (data->gui, "wa_sort_images_combobox");
-	data->wa_reverse_order_checkbutton = glade_xml_get_widget (data->gui, "wa_reverse_order_checkbutton");
-
-	data->wa_header_entry = glade_xml_get_widget (data->gui, "wa_header_entry");
-	data->wa_footer_entry = glade_xml_get_widget (data->gui, "wa_footer_entry");
-	data->wa_select_theme_button = glade_xml_get_widget (data->gui, "wa_select_theme_button");
+	data = g_new0 (DialogData, 1);
+	data->browser = browser;
+	data->builder = _gtk_builder_new_from_file ("web-album-exporter.ui", "webalbums");
 
-	/**/
+	data->dialog = _gtk_builder_get_widget (data->builder, "web_album_dialog");
+	gth_browser_set_dialog (browser, "web_exporter", data->dialog);
+	g_object_set_data (G_OBJECT (data->dialog), "dialog_data", data);
 
-	data->progress_dialog = glade_xml_get_widget (data->gui, "progress_dialog");
-	data->progress_progressbar = glade_xml_get_widget (data->gui, "progress_progressbar");
-	data->progress_info = glade_xml_get_widget (data->gui, "progress_info");
-	data->progress_cancel = glade_xml_get_widget (data->gui, "progress_cancel");
+	data->thumbnail_caption_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_PRINT);
+	gtk_widget_show (data->thumbnail_caption_chooser);
+	gtk_container_add (GTK_CONTAINER (GET_WIDGET ("thumbnail_caption_scrolledwindow")), data->thumbnail_caption_chooser);
 
-	btn_cancel = glade_xml_get_widget (data->gui, "wa_cancel_button");
-	data->btn_ok = glade_xml_get_widget (data->gui, "wa_ok_button");
-	btn_help = glade_xml_get_widget (data->gui, "wa_help_button");
+	data->image_caption_chooser = gth_metadata_chooser_new (GTH_METADATA_ALLOW_IN_PRINT);
+	gtk_widget_show (data->image_caption_chooser);
+	gtk_container_add (GTK_CONTAINER (GET_WIDGET ("image_caption_scrolledwindow")), data->image_caption_chooser);
 
 	/* Set widgets data. */
 
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->wa_use_subfolders_checkbutton), eel_gconf_get_boolean (PREF_WEB_ALBUM_USE_SUBFOLDERS, TRUE));
-	
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->wa_copy_images_checkbutton), eel_gconf_get_boolean (PREF_WEB_ALBUM_COPY_IMAGES, FALSE));
-
-	gtk_widget_set_sensitive (data->wa_resize_images_hbox, eel_gconf_get_boolean (PREF_WEB_ALBUM_COPY_IMAGES, FALSE));
-
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->wa_resize_images_checkbutton), eel_gconf_get_boolean (PREF_WEB_ALBUM_RESIZE_IMAGES, FALSE));
-
-	gtk_widget_set_sensitive (data->wa_resize_images_options_hbox, eel_gconf_get_boolean (PREF_WEB_ALBUM_RESIZE_IMAGES, FALSE));
-
-	gtk_option_menu_set_history (GTK_OPTION_MENU (data->wa_resize_images_optionmenu), get_idx_from_size (eel_gconf_get_integer (PREF_WEB_ALBUM_RESIZE_WIDTH, 640), eel_gconf_get_integer (PREF_WEB_ALBUM_RESIZE_HEIGHT, 480)));
-
-	gtk_spin_button_set_value (GTK_SPIN_BUTTON (data->wa_rows_spinbutton), eel_gconf_get_integer (PREF_WEB_ALBUM_ROWS, 4));
-
-	gtk_spin_button_set_value (GTK_SPIN_BUTTON (data->wa_cols_spinbutton), eel_gconf_get_integer (PREF_WEB_ALBUM_COLUMNS, 4));
-
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->wa_single_index_checkbutton), eel_gconf_get_boolean (PREF_WEB_ALBUM_SINGLE_INDEX, FALSE));
-
-	gtk_widget_set_sensitive (data->wa_rows_hbox, !eel_gconf_get_boolean (PREF_WEB_ALBUM_SINGLE_INDEX, FALSE));
-
-	/**/
-
-	gtk_combo_box_append_text (GTK_COMBO_BOX (data->wa_sort_images_combobox),
-				   _("by path"));
-	gtk_combo_box_append_text (GTK_COMBO_BOX (data->wa_sort_images_combobox),
-				   _("by size"));
-	gtk_combo_box_append_text (GTK_COMBO_BOX (data->wa_sort_images_combobox),
-				   _("by file modified time"));
-	gtk_combo_box_append_text (GTK_COMBO_BOX (data->wa_sort_images_combobox),
-				   _("by Exif DateTime tag"));
-	gtk_combo_box_append_text (GTK_COMBO_BOX (data->wa_sort_images_combobox),
-                                   _("by comment"));
-	if (reorderable)
-		gtk_combo_box_append_text (GTK_COMBO_BOX (data->wa_sort_images_combobox),
-					   _("manual order"));
-
-	idx = sort_method_to_idx [pref_get_web_album_sort_order ()];
-	if (!reorderable && (sort_method_to_idx[GTH_SORT_METHOD_MANUAL] == idx))
-		idx = sort_method_to_idx[GTH_SORT_METHOD_BY_NAME];
-	gtk_combo_box_set_active (GTK_COMBO_BOX (data->wa_sort_images_combobox), idx);
+	active_index = 0;
+	for (i = 0; i < G_N_ELEMENTS (resize_size); i++) {
+		GtkTreeIter  iter;
+		char        *name;
 
-	/**/
+		gtk_list_store_append (GTK_LIST_STORE (GET_WIDGET ("size_liststore")), &iter);
 
-	gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (data->wa_reverse_order_checkbutton), eel_gconf_get_boolean (PREF_WEB_ALBUM_REVERSE, FALSE));
+		/* Translators: this is an image size, such as 1024 Ã? 768 */
+		name = g_strdup_printf (_("%d Ã? %d"), resize_size[i].width, resize_size[i].height);
+		gtk_list_store_set (GTK_LIST_STORE (GET_WIDGET ("size_liststore")), &iter,
+				    0, name,
+				    -1);
 
-	svalue = eel_gconf_get_string (PREF_WEB_ALBUM_HEADER, "");
-	gtk_entry_set_text (GTK_ENTRY (data->wa_header_entry), svalue);
-	g_free (svalue);
+		g_free (name);
+	}
+	gtk_combo_box_set_active (GTK_COMBO_BOX (GET_WIDGET ("resize_images_combobox")), active_index);
 
-	svalue = eel_gconf_get_string (PREF_WEB_ALBUM_FOOTER, "");
-	gtk_entry_set_text (GTK_ENTRY (data->wa_footer_entry), svalue);
-	g_free (svalue);
+	active_index = 0;
+	for (i = 0, scan = gth_main_get_all_sort_types (); scan; scan = scan->next, i++) {
+		GthFileDataSort *sort_type = scan->data;
+		GtkTreeIter      iter;
 
-	svalue = get_default_theme();
-	_gtk_button_set_filename_label (GTK_BUTTON (data->wa_select_theme_button), svalue);
-	g_free (svalue);
+		if (g_str_equal (sort_type->name, "file::mtime"))
+			active_index = i;
 
-	catalog_web_exporter_set_index_caption (data->exporter, eel_gconf_get_integer (PREF_WEB_ALBUM_INDEX_CAPTION, 0));
-	catalog_web_exporter_set_image_caption (data->exporter, eel_gconf_get_integer (PREF_WEB_ALBUM_IMAGE_CAPTION, 0));
+		gtk_list_store_append (GTK_LIST_STORE (GET_WIDGET ("sort_liststore")), &iter);
+		gtk_list_store_set (GTK_LIST_STORE (GET_WIDGET ("sort_liststore")), &iter,
+				    0, sort_type,
+				    1, sort_type->display_name,
+				    -1);
+	}
+	gtk_combo_box_set_active (GTK_COMBO_BOX (GET_WIDGET ("sort_combobox")), active_index);
 
-	/**/
+	gtk_entry_set_text (GTK_ENTRY (GET_WIDGET ("header_entry")),
+			    g_file_info_get_edit_name (gth_browser_get_location_data (browser)->info));
 
-	svalue = eel_gconf_get_path (PREF_WEB_ALBUM_DESTINATION, NULL);
-	if (svalue == NULL)
-		svalue = g_strdup (g_get_home_dir ());
-	gtk_file_chooser_set_current_folder_uri (GTK_FILE_CHOOSER (data->wa_destination_filechooserbutton), svalue);
-	g_free (svalue);
+	update_sensitivity (data);
 
-	/* Signals. */
+	/* Set the signals handlers. */
 
 	g_signal_connect (G_OBJECT (data->dialog),
 			  "destroy",
 			  G_CALLBACK (destroy_cb),
 			  data);
-        g_signal_connect (G_OBJECT (btn_help),
+	g_signal_connect (GET_WIDGET ("ok_button"),
+			  "clicked",
+			  G_CALLBACK (ok_clicked_cb),
+			  data);
+        g_signal_connect (GET_WIDGET ("help_button"),
                           "clicked",
-                          G_CALLBACK (help_cb),
+                          G_CALLBACK (help_clicked_cb),
                           data);
-	g_signal_connect_swapped (G_OBJECT (btn_cancel),
+	g_signal_connect_swapped (GET_WIDGET ("cancel_button"),
 				  "clicked",
 				  G_CALLBACK (gtk_widget_destroy),
-				  G_OBJECT (data->dialog));
-	g_signal_connect (G_OBJECT (data->btn_ok),
-			  "clicked",
-			  G_CALLBACK (export),
-			  data);
-	g_signal_connect (G_OBJECT (data->wa_select_theme_button),
-			  "clicked",
-			  G_CALLBACK (show_album_theme_cb),
-			  data);
-	g_signal_connect (G_OBJECT (data->wa_copy_images_checkbutton),
-			  "toggled",
-			  G_CALLBACK (copy_image_toggled_cb),
-			  data);
-	g_signal_connect (G_OBJECT (data->wa_resize_images_checkbutton),
-			  "toggled",
-			  G_CALLBACK (resize_image_toggled_cb),
-			  data);
-
-	g_signal_connect (G_OBJECT (data->wa_single_index_checkbutton),
-			  "toggled",
-			  G_CALLBACK (single_index_toggled_cb),
-			  data);
-
-	g_signal_connect (G_OBJECT (data->exporter),
-			  "web_exporter_done",
-			  G_CALLBACK (export_done),
-			  data);
-	g_signal_connect (G_OBJECT (data->exporter),
-			  "web_exporter_progress",
-			  G_CALLBACK (export_progress),
-			  data);
-	g_signal_connect (G_OBJECT (data->exporter),
-			  "web_exporter_info",
-			  G_CALLBACK (export_info),
-			  data);
-	g_signal_connect (G_OBJECT (data->exporter),
-			  "web_exporter_start_copying",
-			  G_CALLBACK (export_start_copying),
-			  data);
-
-	g_signal_connect_swapped (G_OBJECT (data->progress_dialog),
-				  "delete_event",
-				  G_CALLBACK (catalog_web_exporter_interrupt),
-				  data->exporter);
-	g_signal_connect_swapped (G_OBJECT (data->progress_cancel),
-				  "clicked",
-				  G_CALLBACK (catalog_web_exporter_interrupt),
-				  data->exporter);
-
-	/* Run dialog. */
-
-	gtk_window_set_transient_for (GTK_WINDOW (data->dialog), GTK_WINDOW (browser));
-	gtk_window_set_modal (GTK_WINDOW (data->dialog), TRUE);
-	gtk_widget_show_all (data->dialog);
-}
-
-
-
-
-typedef struct {
-	DialogData         *data;
-	GthBrowser         *browser;
-
-	GladeXML           *gui;
-	GtkWidget          *dialog;
-
-	GtkWidget          *wat_dialog;
-	GtkWidget          *wat_theme_treeview;
-	GtkWidget          *wat_ok_button;
-	GtkWidget          *wat_cancel_button;
-	GtkWidget          *wat_install_button;
-	GtkWidget          *wat_go_to_folder_button;
-	GtkWidget          *wat_thumbnail_caption_button;
-	GtkWidget          *wat_image_caption_button;
-	GtkWidget          *wat_preview_image;
-
-	GtkListStore       *list_store;
-} ThemeDialogData;
-
-
-enum {
-	THEME_NAME_COLUMN,
-	NUM_OF_COLUMNS
-};
-
-
-/* called when the main dialog is closed. */
-static void
-theme_dialog_destroy_cb (GtkWidget       *widget,
-			 ThemeDialogData *tdata)
-{
-	g_object_unref (tdata->gui);
-	g_free (tdata);
-}
-
-
-static void
-theme_dialog__ok_clicked (GtkWidget       *widget,
-			  ThemeDialogData *tdata)
-{
-	GtkTreeSelection *selection;
-	gboolean          theme_selected;
-	GtkTreeIter       iter;
-
-	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tdata->wat_theme_treeview));
-	theme_selected = gtk_tree_selection_get_selected (selection, NULL, &iter);
-
-	if (theme_selected) {
-		char *utf8_name;
-
-		gtk_tree_model_get (GTK_TREE_MODEL (tdata->list_store),
-				    &iter,
-				    THEME_NAME_COLUMN, &utf8_name,
-				    -1);
-		gtk_button_set_label (GTK_BUTTON (tdata->data->wa_select_theme_button), utf8_name);
-		g_free (utf8_name);
-	}
-
-	gtk_widget_destroy (tdata->dialog);
-}
-
-
-static void
-add_theme_dir (ThemeDialogData *tdata,
-	       char            *theme_dir)
-{
-	GList          *dir_list = NULL;
-	GList          *scan;
-
-	debug (DEBUG_INFO, "theme dir: %s", theme_dir);
-
-	if (path_is_dir (theme_dir))
-		path_list_new (theme_dir, NULL, &dir_list);
-
-	for (scan = dir_list; scan; scan = scan->next) {
-		GtkTreeIter  iter;
-		char        *dir = scan->data;
-		char        *display_name;
-		GFile       *gfile;
-		
-		gfile = gfile_new (dir);
-		display_name = gfile_get_display_name (gfile);
-
-		gtk_list_store_append (tdata->list_store, &iter);
-		gtk_list_store_set (tdata->list_store, &iter,
-				    THEME_NAME_COLUMN, display_name,
-				    -1);
-		g_object_unref (gfile);
-		g_free (display_name);
-	}
-	path_list_free (dir_list);
-}
-
-
-static void
-load_themes (ThemeDialogData *tdata)
-{
-	char             *theme_dir;
-	const char       *theme_name;
-	GtkTreeModel     *model;
-	GtkTreeSelection *selection;
-	GtkTreeIter       iter;
-
-	theme_dir = g_build_path (G_DIR_SEPARATOR_S,
-				  g_get_home_dir (),
-				  ".gnome2",
-				  "gthumb/albumthemes",
-				  NULL);
-	add_theme_dir (tdata, theme_dir);
-	g_free (theme_dir);
-
-	theme_dir = g_build_path (G_DIR_SEPARATOR_S,
-				  GTHUMB_DATADIR,
-				  "gthumb/albumthemes",
-				  NULL);
-	add_theme_dir (tdata, theme_dir);
-	g_free (theme_dir);
-
-	/* Select the current theme */
-
-	model = GTK_TREE_MODEL (tdata->list_store);
-	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tdata->wat_theme_treeview));
-	theme_name = gtk_button_get_label (GTK_BUTTON (tdata->data->wa_select_theme_button));
-	if (! gtk_tree_model_get_iter_first (model, &iter))
-		return;
-
-	do {
-		char *utf8_name;
-		gtk_tree_model_get (model, &iter,
-				    THEME_NAME_COLUMN, &utf8_name,
-				    -1);
-		if (strcmp (utf8_name, theme_name) == 0)
-			gtk_tree_selection_select_iter (selection, &iter);
-	} while (gtk_tree_model_iter_next (model, &iter));
-}
-
-
-static void
-theme_dialog__row_activated_cb (GtkTreeView       *tree_view,
-				GtkTreePath       *path,
-				GtkTreeViewColumn *column,
-				ThemeDialogData   *tdata)
-{
-	theme_dialog__ok_clicked (NULL, tdata);
-}
-
-
-static void
-ensure_local_theme_dir_exists (void)
-{
-	char *theme_dir;
-
-	theme_dir = build_uri (get_home_uri (),
-			       ".gnome2",
-			       "gthumb/albumthemes",
-			       NULL);
-
-	dir_make (theme_dir);
-
-	g_free (theme_dir);
-}
-
-
-static void
-install_theme__ok_cb (GtkDialog  *file_sel,
-		      int         button_number,
-		      gpointer    data)
-{
-	ThemeDialogData  *tdata;
-	char             *theme_archive;
-	char             *command_line = NULL;
-	GError           *err = NULL;
-
-	tdata = g_object_get_data (G_OBJECT (file_sel), "theme_dialog_data");
-	theme_archive = g_strdup (gtk_file_chooser_get_filename (GTK_FILE_CHOOSER (file_sel)));
-
-	gtk_widget_destroy (GTK_WIDGET (file_sel));
-
-	if (theme_archive == NULL)
-		return;
-
-	/**/
-
-	ensure_local_theme_dir_exists ();
-
-	if (file_extension_is (theme_archive, ".tar.gz")
-	    || file_extension_is (theme_archive, ".tgz"))
-		command_line = g_strdup_printf ("tar -C %s%s -zxf %s",
-						g_get_home_dir (),
-						"/.gnome2/gthumb/albumthemes",
-						theme_archive);
-
-	else if (file_extension_is (theme_archive, ".tar.bz2"))
-		command_line = g_strdup_printf ("tar -C %s%s -xf %s --use-compress-program bzip2",
-						g_get_home_dir (),
-						"/.gnome2/gthumb/albumthemes",
-						theme_archive);
-
-	if ((command_line != NULL)
-	    && ! g_spawn_command_line_sync (command_line, NULL, NULL, NULL, &err)
-	    && (err != NULL))
-		_gtk_error_dialog_from_gerror_run (NULL, &err);
-
-	g_free (command_line);
-	g_free (theme_archive);
-
-	/**/
-
-	gtk_list_store_clear (tdata->list_store);
-	load_themes (tdata);
-}
-
-
-static void
-install_theme_response_cb (GtkDialog  *file_sel,
-			   int         button_number,
-			   gpointer    userdata)
-{
-	if (button_number == GTK_RESPONSE_ACCEPT)
-		install_theme__ok_cb (file_sel, button_number, userdata);
-	 else
-		gtk_widget_destroy (GTK_WIDGET (file_sel));
-}
-
-
-static void
-theme_dialog__install_theme_clicked (GtkWidget       *widget,
-				     ThemeDialogData *tdata)
-{
-	GtkWidget *file_sel;
-
-	file_sel = gtk_file_chooser_dialog_new (_("Select Album Theme"),
-						GTK_WINDOW (tdata->dialog),
-						GTK_FILE_CHOOSER_ACTION_OPEN,
-						GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-						GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
-						NULL);
-
-	gtk_file_chooser_set_local_only (GTK_FILE_CHOOSER (file_sel), FALSE);
-	gtk_file_chooser_set_current_folder (GTK_FILE_CHOOSER (file_sel), g_get_home_dir ());
-	gtk_dialog_set_default_response (GTK_DIALOG (file_sel), GTK_RESPONSE_ACCEPT);
-
-	g_object_set_data (G_OBJECT (file_sel), "theme_dialog_data", tdata);
-
-	g_signal_connect (G_OBJECT (file_sel),
-			  "response",
-			  G_CALLBACK (install_theme_response_cb),
-			  NULL);
-
-	gtk_window_set_modal (GTK_WINDOW (file_sel), TRUE);
-	gtk_widget_show (file_sel);
-}
-
-
-static void
-theme_dialog__go_to_folder_clicked (GtkWidget       *widget,
-				    ThemeDialogData *tdata)
-{
-	char         *path;
-	GError       *err = NULL;
-
-	path = g_strdup_printf ("file://%s/.gnome2/gthumb/albumthemes",
-			       g_get_home_dir ());
-
-	ensure_dir_exists (path, 0775);
-
-	if (! gnome_url_show (path, &err))
-		_gtk_error_dialog_from_gerror_run (GTK_WINDOW (tdata->dialog),
-						   &err);
-        g_free (path);
-}
-
-
-/* called when an item of the catalog list is selected. */
-static void
-theme_dialog__sel_changed_cb (GtkTreeSelection *selection,
-			      gpointer          p)
-{
-	ThemeDialogData  *tdata = p;
-	gboolean          theme_selected;
-	GtkTreeIter       iter;
-	char             *utf8_name;
-	char             *theme, *path;
-
-	theme_selected = gtk_tree_selection_get_selected (selection, NULL, &iter);
-
-	if (!theme_selected)
-		return;
-
-	gtk_tree_model_get (GTK_TREE_MODEL (tdata->list_store),
-			    &iter,
-			    THEME_NAME_COLUMN, &utf8_name,
-			    -1);
-
-	theme = gnome_vfs_escape_string (utf8_name);
-	path = g_build_path (G_DIR_SEPARATOR_S,
-			     g_get_home_dir (),
-			     ".gnome2",
-			     "gthumb/albumthemes",
-			     theme,
-			     NULL);
-
-	if (!path_is_dir (path)) {
-		g_free (path);
-		path = g_build_path (G_DIR_SEPARATOR_S,
-				     GTHUMB_DATADIR,
-				     "gthumb/albumthemes",
-				     theme,
-				     NULL);
-	}
-
-	if (path_is_dir (path)) {
-		char      *filename;
-		GdkPixbuf *image = NULL;
-					       
-		filename = build_uri (path, "preview.png", NULL);
-		if (path_is_file (filename)
-		    && ((image = gdk_pixbuf_new_from_file (filename, NULL)) != NULL)) {
-			int        w = gdk_pixbuf_get_width (image);
-			int        h = gdk_pixbuf_get_height (image);
-			if (scale_keeping_ratio (&w, &h, MAX_PREVIEW_SIZE, MAX_PREVIEW_SIZE, FALSE)) {
-				GdkPixbuf *tmp = image;
-				image = gdk_pixbuf_scale_simple (tmp, w, h, GDK_INTERP_BILINEAR);
-				g_object_unref (tmp);
-			}
-			gtk_image_set_from_pixbuf (GTK_IMAGE (tdata->wat_preview_image), image);
-		} 
-		else
-			gtk_image_set_from_stock (GTK_IMAGE (tdata->wat_preview_image), GTK_STOCK_MISSING_IMAGE, GTK_ICON_SIZE_BUTTON);
-
-		g_free (filename);
-		if (image != NULL)
-			g_object_unref (image);
-	}
-
-	g_free (utf8_name);
-	g_free (path);
-	g_free (theme);
-}
-
-
-static void show_thumbnail_caption_dialog_cb (GtkWidget  *widget,  ThemeDialogData *data);
-static void show_image_caption_dialog_cb     (GtkWidget  *widget,  ThemeDialogData *data);
-
-
-static void
-show_album_theme_cb (GtkWidget  *widget,
-		     DialogData *data)
-{
-	ThemeDialogData   *tdata;
-	GtkCellRenderer   *renderer;
-	GtkTreeViewColumn *column;
-	GtkTreeSelection  *selection;
-
-	tdata = g_new (ThemeDialogData, 1);
-
-	tdata->data = data;
-	tdata->browser = data->browser;
-
-	tdata->gui = glade_xml_new (GTHUMB_GLADEDIR "/" GLADE_EXPORTER_FILE, NULL, NULL);
-        if (!tdata->gui) {
-		g_free (tdata);
-                g_warning ("Could not find " GLADE_EXPORTER_FILE "\n");
-                return;
-        }
-
-	/* Get the widgets. */
-
-	tdata->dialog = glade_xml_get_widget (tdata->gui, "web_album_theme_dialog");
-	tdata->wat_theme_treeview = glade_xml_get_widget (tdata->gui, "wat_theme_treeview");
-	tdata->wat_ok_button = glade_xml_get_widget (tdata->gui, "wat_ok_button");
-	tdata->wat_cancel_button = glade_xml_get_widget (tdata->gui, "wat_cancel_button");
-	tdata->wat_install_button = glade_xml_get_widget (tdata->gui, "wat_install_button");
-	tdata->wat_go_to_folder_button = glade_xml_get_widget (tdata->gui, "wat_go_to_folder_button");
-	tdata->wat_thumbnail_caption_button = glade_xml_get_widget (tdata->gui, "wat_thumbnail_caption_button");
-	tdata->wat_image_caption_button = glade_xml_get_widget (tdata->gui, "wat_image_caption_button");
-	tdata->wat_preview_image = glade_xml_get_widget (tdata->gui, "wat_preview_image");
-
-	/* Signals. */
-
-	g_signal_connect (G_OBJECT (tdata->dialog),
-			  "destroy",
-			  G_CALLBACK (theme_dialog_destroy_cb),
-			  tdata);
-	g_signal_connect_swapped (G_OBJECT (tdata->wat_cancel_button),
+				  data->dialog);
+	g_signal_connect_swapped (GET_WIDGET ("copy_images_checkbutton"),
 				  "clicked",
-				  G_CALLBACK (gtk_widget_destroy),
-				  G_OBJECT (tdata->dialog));
-	g_signal_connect (G_OBJECT (tdata->wat_ok_button),
-			  "clicked",
-			  G_CALLBACK (theme_dialog__ok_clicked),
-			  tdata);
-	g_signal_connect (G_OBJECT (tdata->wat_theme_treeview),
-			  "row_activated",
-			  G_CALLBACK (theme_dialog__row_activated_cb),
-			  tdata);
-
-	selection = gtk_tree_view_get_selection (GTK_TREE_VIEW (tdata->wat_theme_treeview));
-        g_signal_connect (G_OBJECT (selection),
-			  "changed",
-			  G_CALLBACK (theme_dialog__sel_changed_cb),
-			  tdata);
-
-	g_signal_connect (G_OBJECT (tdata->wat_install_button),
-			  "clicked",
-			  G_CALLBACK (theme_dialog__install_theme_clicked),
-			  tdata);
-	g_signal_connect (G_OBJECT (tdata->wat_go_to_folder_button),
-			  "clicked",
-			  G_CALLBACK (theme_dialog__go_to_folder_clicked),
-			  tdata);
-	g_signal_connect (G_OBJECT (tdata->wat_thumbnail_caption_button),
-			  "clicked",
-			  G_CALLBACK (show_thumbnail_caption_dialog_cb),
-			  tdata);
-	g_signal_connect (G_OBJECT (tdata->wat_image_caption_button),
-			  "clicked",
-			  G_CALLBACK (show_image_caption_dialog_cb),
-			  tdata);
-
-	/* Set widgets data. */
-
-	tdata->list_store = gtk_list_store_new (NUM_OF_COLUMNS, G_TYPE_STRING);
-	gtk_tree_view_set_model (GTK_TREE_VIEW (tdata->wat_theme_treeview), GTK_TREE_MODEL (tdata->list_store));
-	g_object_unref (tdata->list_store);
-
-	gtk_tree_view_set_rules_hint (GTK_TREE_VIEW (tdata->wat_theme_treeview), FALSE);
-	gtk_tree_view_set_headers_visible (GTK_TREE_VIEW (tdata->wat_theme_treeview), FALSE);
-
-	column = gtk_tree_view_column_new ();
-	renderer = gtk_cell_renderer_text_new ();
-        gtk_tree_view_column_pack_start (column, renderer, TRUE);
-        gtk_tree_view_column_set_attributes (column, renderer,
-                                             "text", THEME_NAME_COLUMN,
-                                             NULL);
-
-        gtk_tree_view_column_set_sizing (column, GTK_TREE_VIEW_COLUMN_AUTOSIZE);
-	gtk_tree_view_column_set_sort_column_id (column, THEME_NAME_COLUMN);
-        gtk_tree_view_append_column (GTK_TREE_VIEW (tdata->wat_theme_treeview), column);
-	gtk_tree_sortable_set_sort_column_id (GTK_TREE_SORTABLE (tdata->list_store), THEME_NAME_COLUMN, GTK_SORT_ASCENDING);
-
-	load_themes (tdata);
-
-	/* Run dialog. */
-
-	gtk_widget_grab_focus (tdata->wat_theme_treeview);
-
-	gtk_window_set_transient_for (GTK_WINDOW (tdata->dialog), GTK_WINDOW (data->dialog));
-	gtk_window_set_modal (GTK_WINDOW (tdata->dialog), TRUE);
-	gtk_widget_show_all (tdata->dialog);
-}
-
-
-typedef struct {
-	DialogData         *data;
-	GthBrowser         *browser;
-
-	GladeXML           *gui;
-	GtkWidget          *dialog;
-
-	GtkWidget          *c_comment_checkbutton;
-	GtkWidget          *c_place_checkbutton;
-	GtkWidget          *c_date_time_checkbutton;
-	GtkWidget          *c_imagedim_checkbutton;
-	GtkWidget          *c_filename_checkbutton;
-	GtkWidget          *c_filesize_checkbutton;
-
-	GtkWidget          *c_exif_date_time_checkbutton;
-	GtkWidget          *c_exif_exposure_time_checkbutton;
-	GtkWidget          *c_exif_exposure_mode_checkbutton;
-	GtkWidget          *c_exif_flash_checkbutton;
-	GtkWidget          *c_exif_shutter_speed_checkbutton;
-	GtkWidget          *c_exif_aperture_value_checkbutton;
-	GtkWidget          *c_exif_focal_length_checkbutton;
-	GtkWidget          *c_exif_camera_model_checkbutton;
-
-	gboolean            thumbnail_caption;
-} CaptionDialogData;
-
-
-/* called when the dialog is closed. */
-static void
-caption_dialog_destroy_cb (GtkWidget         *widget,
-			   CaptionDialogData *cdata)
-{
-	g_object_unref (cdata->gui);
-	g_free (cdata);
-}
-
-
-static void
-caption_dialog__ok_clicked (GtkWidget         *widget,
-			    CaptionDialogData *cdata)
-{
-	const char       *gconf_key;
-	GthCaptionFields  caption = 0;
-
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_comment_checkbutton)))
-		caption |= GTH_CAPTION_COMMENT;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_place_checkbutton)))
-		caption |= GTH_CAPTION_PLACE;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_date_time_checkbutton)))
-		caption |= GTH_CAPTION_DATE_TIME;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_imagedim_checkbutton)))
-		caption |= GTH_CAPTION_IMAGE_DIM;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_filename_checkbutton)))
-		caption |= GTH_CAPTION_FILE_NAME;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_filesize_checkbutton)))
-		caption |= GTH_CAPTION_FILE_SIZE;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_exif_date_time_checkbutton)))
-		caption |= GTH_CAPTION_EXIF_DATE_TIME;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_exif_exposure_time_checkbutton)))
-		caption |= GTH_CAPTION_EXIF_EXPOSURE_TIME;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_exif_exposure_mode_checkbutton)))
-		caption |= GTH_CAPTION_EXIF_EXPOSURE_MODE;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_exif_flash_checkbutton)))
-		caption |= GTH_CAPTION_EXIF_FLASH;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_exif_shutter_speed_checkbutton)))
-		caption |= GTH_CAPTION_EXIF_SHUTTER_SPEED;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_exif_aperture_value_checkbutton)))
-		caption |= GTH_CAPTION_EXIF_APERTURE_VALUE;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_exif_focal_length_checkbutton)))
-		caption |= GTH_CAPTION_EXIF_FOCAL_LENGTH;
-	if (gtk_toggle_button_get_active (GTK_TOGGLE_BUTTON (cdata->c_exif_camera_model_checkbutton)))
-		caption |= GTH_CAPTION_EXIF_CAMERA_MODEL;
-
-	if (cdata->thumbnail_caption) {
-		catalog_web_exporter_set_index_caption (cdata->data->exporter, caption);
-		gconf_key = PREF_WEB_ALBUM_INDEX_CAPTION;
-	} else {
-		catalog_web_exporter_set_image_caption (cdata->data->exporter, caption);
-		gconf_key = PREF_WEB_ALBUM_IMAGE_CAPTION;
-	}
-
-	eel_gconf_set_integer (gconf_key, caption);
-
-	gtk_widget_destroy (cdata->dialog);
-}
-
-
-static void
-show_caption_dialog_cb (GtkWidget       *widget,
-			ThemeDialogData *tdata,
-			gboolean         thumbnail_caption)
-{
-	CaptionDialogData *cdata;
-	GtkWidget         *ok_button;
-	GtkWidget         *cancel_button;
-	const char        *gconf_key;
-	GthCaptionFields   caption = 0;
-	cdata = g_new (CaptionDialogData, 1);
-
-	cdata->data = tdata->data;
-	cdata->browser = tdata->browser;
-	cdata->thumbnail_caption = thumbnail_caption;
-
-	cdata->gui = glade_xml_new (GTHUMB_GLADEDIR "/" GLADE_EXPORTER_FILE, NULL, NULL);
-        if (!cdata->gui) {
-		g_free (cdata);
-                g_warning ("Could not find " GLADE_EXPORTER_FILE "\n");
-                return;
-        }
-
-	/* Get the widgets. */
-
-	cdata->dialog = glade_xml_get_widget (cdata->gui, "caption_dialog");
-	cdata->c_comment_checkbutton = glade_xml_get_widget (cdata->gui, "c_comment_checkbutton");
-	cdata->c_place_checkbutton = glade_xml_get_widget (cdata->gui, "c_place_checkbutton");
-	cdata->c_date_time_checkbutton = glade_xml_get_widget (cdata->gui, "c_date_time_checkbutton");
-	cdata->c_imagedim_checkbutton = glade_xml_get_widget (cdata->gui, "c_imagedim_checkbutton");
-	cdata->c_filename_checkbutton = glade_xml_get_widget (cdata->gui, "c_filename_checkbutton");
-	cdata->c_filesize_checkbutton = glade_xml_get_widget (cdata->gui, "c_filesize_checkbutton");
-	cdata->c_exif_date_time_checkbutton = glade_xml_get_widget (cdata->gui, "c_exif_date_time_checkbutton");
-	cdata->c_exif_exposure_time_checkbutton = glade_xml_get_widget (cdata->gui, "c_exif_exposure_time_checkbutton");
-	cdata->c_exif_exposure_mode_checkbutton = glade_xml_get_widget (cdata->gui, "c_exif_exposure_mode_checkbutton");
-	cdata->c_exif_flash_checkbutton = glade_xml_get_widget (cdata->gui, "c_exif_flash_checkbutton");
-	cdata->c_exif_shutter_speed_checkbutton = glade_xml_get_widget (cdata->gui, "c_exif_shutter_speed_checkbutton");
-	cdata->c_exif_aperture_value_checkbutton = glade_xml_get_widget (cdata->gui, "c_exif_aperture_value_checkbutton");
-	cdata->c_exif_focal_length_checkbutton = glade_xml_get_widget (cdata->gui, "c_exif_focal_length_checkbutton");
-	cdata->c_exif_camera_model_checkbutton = glade_xml_get_widget (cdata->gui, "c_exif_camera_model_checkbutton");
-
-	ok_button = glade_xml_get_widget (cdata->gui, "c_okbutton");
-	cancel_button = glade_xml_get_widget (cdata->gui, "c_cancelbutton");
-
-	/* Signals. */
-
-	g_signal_connect (G_OBJECT (cdata->dialog),
-			  "destroy",
-			  G_CALLBACK (caption_dialog_destroy_cb),
-			  cdata);
-	g_signal_connect_swapped (G_OBJECT (cancel_button),
+				  G_CALLBACK (update_sensitivity),
+				  data);
+	g_signal_connect_swapped (GET_WIDGET ("resize_images_checkbutton"),
 				  "clicked",
-				  G_CALLBACK (gtk_widget_destroy),
-				  G_OBJECT (cdata->dialog));
-	g_signal_connect (G_OBJECT (ok_button),
-			  "clicked",
-			  G_CALLBACK (caption_dialog__ok_clicked),
-			  cdata);
-
-	/* Set widgets data. */
-
-	if (cdata->thumbnail_caption)
-		gconf_key = PREF_WEB_ALBUM_INDEX_CAPTION;
-	 else
-		gconf_key = PREF_WEB_ALBUM_IMAGE_CAPTION;
-	caption = eel_gconf_get_integer (gconf_key, 0);
-
-	if (caption & GTH_CAPTION_COMMENT)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_comment_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_PLACE)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_place_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_DATE_TIME)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_date_time_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_IMAGE_DIM)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_imagedim_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_FILE_NAME)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_filename_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_FILE_SIZE)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_filesize_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_EXIF_DATE_TIME)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_exif_date_time_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_EXIF_EXPOSURE_TIME)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_exif_exposure_time_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_EXIF_EXPOSURE_MODE)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_exif_exposure_mode_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_EXIF_FLASH)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_exif_flash_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_EXIF_SHUTTER_SPEED)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_exif_shutter_speed_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_EXIF_APERTURE_VALUE)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_exif_aperture_value_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_EXIF_FOCAL_LENGTH)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_exif_focal_length_checkbutton), TRUE);
-	if (caption & GTH_CAPTION_EXIF_CAMERA_MODEL)
-		gtk_toggle_button_set_active (GTK_TOGGLE_BUTTON (cdata->c_exif_camera_model_checkbutton), TRUE);
-
+				  G_CALLBACK (update_sensitivity),
+				  data);
+	g_signal_connect (GET_WIDGET ("footer_entry"),
+			  "icon-press",
+			  G_CALLBACK (footer_entry_icon_press_cb),
+			  data);
 
 	/* Run dialog. */
 
-	gtk_window_set_transient_for (GTK_WINDOW (cdata->dialog), GTK_WINDOW (tdata->dialog));
-	gtk_window_set_modal (GTK_WINDOW (cdata->dialog), TRUE);
-	gtk_widget_show (cdata->dialog);
-}
-
-
-static void
-show_thumbnail_caption_dialog_cb (GtkWidget       *widget,
-				  ThemeDialogData *data)
-{
-	show_caption_dialog_cb (widget, data, TRUE);
-}
-
-
-static void
-show_image_caption_dialog_cb (GtkWidget       *widget,
-			      ThemeDialogData *data)
-{
-	show_caption_dialog_cb (widget, data, FALSE);
+	gtk_window_set_transient_for (GTK_WINDOW (data->dialog), GTK_WINDOW (browser));
+	gtk_window_set_modal (GTK_WINDOW (data->dialog), FALSE);
+	gtk_widget_show (data->dialog);
 }
diff --git a/extensions/webalbums/dlg-web-exporter.h b/extensions/webalbums/dlg-web-exporter.h
index bc5e950..c7a3a33 100644
--- a/extensions/webalbums/dlg-web-exporter.h
+++ b/extensions/webalbums/dlg-web-exporter.h
@@ -3,7 +3,7 @@
 /*
  *  GThumb
  *
- *  Copyright (C) 2003 Free Software Foundation, Inc.
+ *  Copyright (C) 2003-2010 Free Software Foundation, Inc.
  *
  *  This program is free software; you can redistribute it and/or modify
  *  it under the terms of the GNU General Public License as published by
@@ -23,8 +23,8 @@
 #ifndef DLG_WEB_EXPORTER_H
 #define DLG_WEB_EXPORTER_H
 
-#include "gth-browser.h"
+#include <gthumb.h>
 
-void   dlg_web_exporter    (GthBrowser *browser);
+void  dlg_web_exporter (GthBrowser *browser);
 
 #endif /* DLG_WEB_EXPORTER_H */
diff --git a/extensions/webalbums/main.c b/extensions/webalbums/main.c
new file mode 100644
index 0000000..41efae6
--- /dev/null
+++ b/extensions/webalbums/main.c
@@ -0,0 +1,54 @@
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*- */
+
+/*
+ *  GThumb
+ *
+ *  Copyright (C) 2010 Free Software Foundation, Inc.
+ *
+ *  This program is free software; you can redistribute it and/or modify
+ *  it under the terms of the GNU General Public License as published by
+ *  the Free Software Foundation; either version 2 of the License, or
+ *  (at your option) any later version.
+ *
+ *  This program is distributed in the hope that it will be useful,
+ *  but WITHOUT ANY WARRANTY; without even the implied warranty of
+ *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
+ *  GNU General Public License for more details.
+ *
+ *  You should have received a copy of the GNU General Public License
+ *  along with this program; if not, write to the Free Software
+ *  Foundation, Inc., 59 Temple Street #330, Boston, MA 02111-1307, USA.
+ */
+
+
+#include <config.h>
+#include <gtk/gtk.h>
+#include <gthumb.h>
+#include "callbacks.h"
+
+
+G_MODULE_EXPORT void
+gthumb_extension_activate (void)
+{
+	gth_hook_add_callback ("gth-browser-construct", 70, G_CALLBACK (wa__gth_browser_construct_cb), NULL);
+	/*gth_hook_add_callback ("gth-browser-update-sensitivity", 10, G_CALLBACK (wa__gth_browser_update_sensitivity_cb), NULL);*/
+}
+
+
+G_MODULE_EXPORT void
+gthumb_extension_deactivate (void)
+{
+}
+
+
+G_MODULE_EXPORT gboolean
+gthumb_extension_is_configurable (void)
+{
+	return FALSE;
+}
+
+
+G_MODULE_EXPORT void
+gthumb_extension_configure (GtkWindow *parent)
+{
+}



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