[gnumeric] Fix keyword handling in properties dialog. [#653378]



commit 7e800d4f3034c86904e31f0cc91bcb0e4cb97be9
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date:   Mon Jun 27 20:03:34 2011 -0600

    Fix keyword handling in properties dialog. [#653378]
    
    2011-06-27  Andreas J. Guelzow <aguelzow pyrshep ca>
    
    	* doc-meta-data.ui: add a keyword tab, remove keywords from
    	description tab
    	* dialog-doc-metadata.c (dialog_doc_metadata_transform_str_to_docprop_vect):
    	implement
    	(gnm_docprop_vector_as_string): new
    	(dialog_doc_metadata_transform_docprop_vect_to_str): use
    	gnm_docprop_vector_as_string
    	(dialog_doc_metadata_get_gsf_prop_val_type): a GSF_DOCPROP_VECTOR has
    	its own type
    	(dialog_doc_metadata_set_gsf_prop_val): check the error value
    	(dialog_doc_metadata_set_prop): do not add unnecessary empty properties
    	(cb_dialog_doc_metadata_keywords_changed): deleted
    	(dialog_doc_metadata_init_description_page): remove keyword support
    	(dialog_doc_metadata_update_keywords_changed): new
    	(cb_dialog_doc_metadata_keywords_sel_changed): new
    	(dialog_doc_metadata_update_keyword_list): new
    	(cb_dialog_doc_metadata_keywords_add_clicked): new
    	(cb_dialog_doc_metadata_keywords_remove_clicked): new
    	(cb_dialog_doc_metadata_keyword_edited): new
    	(dialog_doc_metadata_init_keywords_page): new
    	(dialog_doc_metadata_update_prop): add argument, change all callers,
    	call dialog_doc_metadata_update_keyword_list
    	(dialog_doc_metadata_init_widgets): handle new widgets

 NEWS                              |    1 +
 src/dialogs/ChangeLog             |   26 +++
 src/dialogs/dialog-doc-metadata.c |  328 +++++++++++++++++++++++++++-----
 src/dialogs/doc-meta-data.ui      |  381 ++++++++++++++++++++++++++++++++-----
 4 files changed, 639 insertions(+), 97 deletions(-)
---
diff --git a/NEWS b/NEWS
index 2e990f3..3f9c6f6 100644
--- a/NEWS
+++ b/NEWS
@@ -5,6 +5,7 @@ Andreas:
 	* Import/Export print formatting from/to ODF. [#653186]
 	* Write and read some document properties to and from XLSX.
 	* Fix xlsx schema violations.
+	* Fix keyword handling in properties dialog. [#653378]
 
 Morten:
 	* Fix --with-gnome compilation:  [#652802]
diff --git a/src/dialogs/ChangeLog b/src/dialogs/ChangeLog
index 6badcbc..c9382e6 100644
--- a/src/dialogs/ChangeLog
+++ b/src/dialogs/ChangeLog
@@ -1,3 +1,29 @@
+2011-06-27  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+	* doc-meta-data.ui: add a keyword tab, remove keywords from
+	description tab
+	* dialog-doc-metadata.c (dialog_doc_metadata_transform_str_to_docprop_vect):
+	implement
+	(gnm_docprop_vector_as_string): new
+	(dialog_doc_metadata_transform_docprop_vect_to_str): use
+	gnm_docprop_vector_as_string
+	(dialog_doc_metadata_get_gsf_prop_val_type): a GSF_DOCPROP_VECTOR has
+	its own type
+	(dialog_doc_metadata_set_gsf_prop_val): check the error value
+	(dialog_doc_metadata_set_prop): do not add unnecessary empty properties
+	(cb_dialog_doc_metadata_keywords_changed): deleted
+	(dialog_doc_metadata_init_description_page): remove keyword support
+	(dialog_doc_metadata_update_keywords_changed): new
+	(cb_dialog_doc_metadata_keywords_sel_changed): new
+	(dialog_doc_metadata_update_keyword_list): new
+	(cb_dialog_doc_metadata_keywords_add_clicked): new
+	(cb_dialog_doc_metadata_keywords_remove_clicked): new
+	(cb_dialog_doc_metadata_keyword_edited): new
+	(dialog_doc_metadata_init_keywords_page): new
+	(dialog_doc_metadata_update_prop): add argument, change all callers,
+	call dialog_doc_metadata_update_keyword_list
+	(dialog_doc_metadata_init_widgets): handle new widgets
+
 2011-05-31  Andreas J. Guelzow <aguelzow pyrshep ca>
 
 	* help.h (GNUMERIC_HELP_LINK_WILCOXON_MANN_WHITNEY): use
diff --git a/src/dialogs/dialog-doc-metadata.c b/src/dialogs/dialog-doc-metadata.c
index ead4311..3aaf79e 100644
--- a/src/dialogs/dialog-doc-metadata.c
+++ b/src/dialogs/dialog-doc-metadata.c
@@ -106,7 +106,6 @@ typedef struct {
 	GtkEntry		*manager;
 	GtkEntry		*company;
 	GtkEntry		*category;
-	GtkEntry		*keywords;
 
 	GtkTextView		*comments;
 
@@ -123,6 +122,12 @@ typedef struct {
 	GtkButton		*remove_button;
 	GtkButton		*apply_button;
 
+	/* Keyword Page */
+	GtkTreeView             *key_tree_view;
+	GtkListStore            *key_store;
+	GtkButton               *key_add_button;
+	GtkButton               *key_remove_button;
+
 	/* Statistics Page */
 	GtkLabel		*sheets;
 	GtkLabel		*cells;
@@ -138,6 +143,9 @@ typedef struct {
 
 } DialogDocMetaData;
 
+static gchar *dialog_doc_metadata_get_prop_val (char const *prop_name, GValue *prop_value);
+
+
 /******************************************************************************
  * G_VALUE TRANSFORM FUNCTIONS
  ******************************************************************************/
@@ -159,10 +167,46 @@ static void
 dialog_doc_metadata_transform_str_to_docprop_vect (const GValue *string_value,
 						   GValue       *docprop_value)
 {
+	char const *str, *s;
+	GsfDocPropVector *gdpv;
+	GValue *value;
+
 	g_return_if_fail (G_VALUE_HOLDS_STRING (string_value));
 	g_return_if_fail (VAL_IS_GSF_DOCPROP_VECTOR (docprop_value));
 
-	/* TODO */
+	gdpv = gsf_docprop_vector_new ();
+	str = g_value_get_string (string_value);
+
+	while (*str == ' ') {str++;}
+
+	while (*str == '"') {
+		char *key;
+		s = str += 1;
+		while (*s != '"' && *s != '\0') {
+			if (*(s++) == '\\') {
+				if (*s == '\0')
+					goto str_done;
+				s++;
+			}
+		}
+		if (*s == '\0')
+			goto str_done;
+		/* s == '"' */
+		key = g_strndup (str, s - str);
+		value = g_new0 (GValue, 1);
+		g_value_take_string (g_value_init (value, G_TYPE_STRING),
+				     g_strcompress (key));
+		gsf_docprop_vector_append (gdpv, value);
+		g_free (key);
+		str = s + 1;
+		while (*str == ' ') {str++;}
+		if (str[0] != ',')
+			goto str_done;
+		str++;
+		while (*str == ' ') {str++;}
+	}
+ str_done:
+	g_value_set_object (docprop_value, gdpv);
 }
 
 static char *
@@ -200,6 +244,51 @@ dialog_doc_metadata_transform_timestamp_to_str (const GValue *timestamp_value,
 				     time2str (timestamp->timet));
 }
 
+static gchar*
+gnm_docprop_vector_as_string (GsfDocPropVector *vector)
+{
+	GString         *rstring;
+	guint		 i;
+	guint		 num_values;
+	GValueArray	*gva;
+	GValue           vl = {0};
+
+	g_return_val_if_fail (vector != NULL, NULL);
+
+	g_value_set_object (g_value_init (&vl, GSF_DOCPROP_VECTOR_TYPE), vector);
+	gva = gsf_value_get_docprop_varray (&vl);
+
+	g_return_val_if_fail (gva != NULL, NULL);
+
+	num_values = gva->n_values;
+	rstring = g_string_sized_new (num_values * 8);
+	
+	for (i = 0; i < num_values; i++) {
+		char       *str;
+		GValue	   *v;
+		
+		v = g_value_array_get_nth (gva, i);
+		
+		if (G_VALUE_TYPE(v) == G_TYPE_STRING)
+			str = g_strescape (g_value_get_string (v), "");
+		else {
+			char *b_str = g_strdup_value_contents (v);
+			str = g_strescape (b_str, "");
+			g_free (b_str);
+		}
+		g_string_append_c (rstring, '"');
+		g_string_append (rstring, str);
+		g_string_append (rstring, "\", ");
+		g_free (str);
+	}
+	if (rstring->len > 0)
+		g_string_truncate (rstring, rstring->len - 2);
+
+	g_value_unset (&vl);
+
+	return g_string_free (rstring, FALSE);
+}
+
 static void
 dialog_doc_metadata_transform_docprop_vect_to_str (const GValue *docprop_value,
 						   GValue       *string_value)
@@ -213,7 +302,7 @@ dialog_doc_metadata_transform_docprop_vect_to_str (const GValue *docprop_value,
 
 	if (docprop_vector != NULL)
 		g_value_set_string (string_value,
-				    gsf_docprop_vector_as_string (docprop_vector));
+				    gnm_docprop_vector_as_string (docprop_vector));
 }
 
 /******************************************************************************
@@ -498,27 +587,16 @@ dialog_doc_metadata_get_gsf_prop_val_type (DialogDocMetaData *state,
 					break;
 				}
 
-			case G_TYPE_OBJECT:
+			default:
 				/* Check if it is a GsfDocPropVector */
 				{
-					GsfDocPropVector *vect;
-					vect = gsf_value_get_docprop_vector (value);
-
-					if (VAL_IS_GSF_DOCPROP_VECTOR (vect))
+					if (VAL_IS_GSF_DOCPROP_VECTOR (value))
 						val_type = GSF_DOCPROP_VECTOR_TYPE;
 					else
 						val_type = G_TYPE_INVALID;
 
 					break;
 				}
-
-			default:
-				/* Anything else is invalid */
-				{
-					val_type = G_TYPE_INVALID;
-
-					break;
-				}
 		}
 	}
 	else {
@@ -538,7 +616,9 @@ dialog_doc_metadata_set_gsf_prop_val (DialogDocMetaData *state,
 	g_value_init (&string_value, G_TYPE_STRING);
 
 	g_value_set_string (&string_value, g_strdup (str_val));
-	g_value_transform (&string_value, prop_value);
+
+	if (!g_value_transform (&string_value, prop_value))
+		g_warning (_("Transformation of property types failed!"));
 }
 
 /**
@@ -711,9 +791,12 @@ dialog_doc_metadata_set_prop (DialogDocMetaData *state,
 						&tree_iter);
 	}
 
-	/* If the property was not found create it */
-	if (found == FALSE)
-		dialog_doc_metadata_add_prop (state, prop_name, prop_value, "", FALSE);
+	if (!(((prop_value == NULL) || (*prop_value == 0)) &&
+	      ((link_value == NULL) || (*link_value == 0)))) {
+		/* If the property was not found create it */
+		if (found == FALSE)
+			dialog_doc_metadata_add_prop (state, prop_name, prop_value, "", FALSE);
+	}
 
 	dialog_doc_metadata_set_gsf_prop (state, prop_name, prop_value, link_value);
 
@@ -797,18 +880,6 @@ cb_dialog_doc_metadata_category_changed (GtkEntry          *entry,
 }
 
 static gboolean
-cb_dialog_doc_metadata_keywords_changed (GtkEntry          *entry,
-					 GdkEventFocus *event,
-					 DialogDocMetaData *state)
-{
-	dialog_doc_metadata_set_prop (state,
-				      GSF_META_NAME_KEYWORDS,
-				      gtk_entry_get_text (entry),
-				      NULL);
-	return FALSE;
-}
-
-static gboolean
 cb_dialog_doc_metadata_comments_changed (GtkTextView     *view,
 					 GdkEventFocus *event,
 					 DialogDocMetaData *state)
@@ -876,11 +947,6 @@ dialog_doc_metadata_init_description_page (DialogDocMetaData *state)
 			  G_CALLBACK (cb_dialog_doc_metadata_category_changed),
 			  state);
 
-	g_signal_connect (G_OBJECT (state->keywords),
-			  "focus-out-event",
-			  G_CALLBACK (cb_dialog_doc_metadata_keywords_changed),
-			  state);
-
 	g_signal_connect (G_OBJECT (state->comments),
 			  "focus-out-event",
 			  G_CALLBACK (cb_dialog_doc_metadata_comments_changed),
@@ -888,6 +954,163 @@ dialog_doc_metadata_init_description_page (DialogDocMetaData *state)
 }
 
 /******************************************************************************
+ * FUNCTIONS RELATED TO 'KEYWORDS' PAGE
+ ******************************************************************************/
+
+static void
+dialog_doc_metadata_update_keywords_changed (DialogDocMetaData *state)
+{
+	GValue val = {0};
+	GtkTreeIter iter;
+	GsfDocPropVector *vector = gsf_docprop_vector_new ();
+
+	g_value_init (&val, GSF_DOCPROP_VECTOR_TYPE);
+
+	if (gtk_tree_model_get_iter_first
+	    (GTK_TREE_MODEL (state->key_store), &iter)) {
+		do {
+			GValue *value = g_new0 (GValue, 1);
+			gtk_tree_model_get_value        
+				(GTK_TREE_MODEL (state->key_store), &iter,
+				 0, value);
+			gsf_docprop_vector_append (vector, value);
+			g_value_unset (value);
+			g_free (value);
+		} while (gtk_tree_model_iter_next 
+			 (GTK_TREE_MODEL (state->key_store), &iter));
+	}
+	g_value_set_object (&val, vector);
+
+	dialog_doc_metadata_set_prop 
+		(state, GSF_META_NAME_KEYWORDS, 
+		 dialog_doc_metadata_get_prop_val (GSF_META_NAME_KEYWORDS, &val), NULL);
+
+	g_value_unset (&val);
+}
+
+static void
+cb_dialog_doc_metadata_keywords_sel_changed (GtkTreeSelection *treeselection,
+					     DialogDocMetaData *state)
+{
+	GtkTreeIter iter;
+
+	gtk_widget_set_sensitive 
+		(GTK_WIDGET (state->key_remove_button), 
+		 gtk_tree_selection_get_selected (treeselection, NULL, &iter));
+}
+
+static void
+dialog_doc_metadata_update_keyword_list (DialogDocMetaData *state, GsfDocProp *prop)
+{
+	guint i;
+	GtkTreeSelection *sel;;
+
+	gtk_list_store_clear (state->key_store);
+
+	if (prop != NULL) {
+		GValueArray *array;
+		array = gsf_value_get_docprop_varray (gsf_doc_prop_get_val (prop));
+		if (array != NULL) {
+			for (i = 0; i < array->n_values; i++) {
+				GValue *val = g_value_array_get_nth (array, i);
+				gtk_list_store_insert_with_values 
+					(state->key_store, NULL, G_MAXINT, 
+					 0, g_value_get_string (val), -1);
+			}
+		}
+	}
+
+	sel = gtk_tree_view_get_selection (state->key_tree_view);
+	cb_dialog_doc_metadata_keywords_sel_changed (sel, state);
+}
+
+static void 
+cb_dialog_doc_metadata_keywords_add_clicked (GtkWidget         *w,
+					     DialogDocMetaData *state)
+{
+	gtk_list_store_insert_with_values (state->key_store, NULL, G_MAXINT, 
+					   0, "<?>", -1);
+	dialog_doc_metadata_update_keywords_changed (state);
+}
+
+static void 
+cb_dialog_doc_metadata_keywords_remove_clicked (GtkWidget         *w,
+						DialogDocMetaData *state)
+{
+	GtkTreeIter iter;
+	GtkTreeSelection *sel = gtk_tree_view_get_selection (state->key_tree_view);
+	
+	if (gtk_tree_selection_get_selected (sel, NULL, &iter)) {
+		gtk_list_store_remove (state->key_store, &iter);
+		dialog_doc_metadata_update_keywords_changed (state);
+	}
+}
+
+static void
+cb_dialog_doc_metadata_keyword_edited (GtkCellRendererText *renderer,
+				       gchar               *path,
+				       gchar               *new_text,
+				       DialogDocMetaData   *state)
+{
+	GtkTreeIter iter;
+	if (gtk_tree_model_get_iter_from_string (GTK_TREE_MODEL (state->key_store), &iter, path)) {
+		gtk_list_store_set (state->key_store, &iter, 0, new_text, -1);
+		dialog_doc_metadata_update_keywords_changed (state);
+	}
+}
+
+
+/**
+ * dialog_doc_metadata_init_keywords_page
+ *
+ * @state : dialog main struct
+ *
+ * Initializes the widgets and signals for the 'Description' page.
+ *
+ **/
+static void
+dialog_doc_metadata_init_keywords_page (DialogDocMetaData *state)
+{
+	GtkTreeViewColumn *column;
+	GtkCellRenderer   *renderer;
+	GtkTreeSelection *sel;
+	
+	g_return_if_fail (state->metadata != NULL);
+
+	renderer = gtk_cell_renderer_text_new ();
+	g_object_set (G_OBJECT (renderer), "editable", TRUE, NULL);
+	column = gtk_tree_view_column_new_with_attributes (_("Keywords"),
+							   renderer,
+							   "text", 0,
+							   NULL);
+	gtk_tree_view_insert_column (state->key_tree_view, column, -1);
+
+	gtk_widget_set_sensitive (GTK_WIDGET (state->key_add_button), TRUE);
+	gtk_widget_set_sensitive (GTK_WIDGET (state->key_remove_button), FALSE);
+
+	sel = gtk_tree_view_get_selection (state->key_tree_view);
+	g_signal_connect (G_OBJECT (sel),
+			  "changed",
+			  G_CALLBACK (cb_dialog_doc_metadata_keywords_sel_changed),
+			  state);
+	
+	g_signal_connect (G_OBJECT (state->key_add_button),
+			  "clicked",
+			  G_CALLBACK (cb_dialog_doc_metadata_keywords_add_clicked),
+			  state);
+	g_signal_connect (G_OBJECT (state->key_remove_button),
+			  "clicked",
+			  G_CALLBACK (cb_dialog_doc_metadata_keywords_remove_clicked),
+			  state);
+	g_signal_connect (G_OBJECT (renderer),
+			  "edited",
+			  G_CALLBACK (cb_dialog_doc_metadata_keyword_edited),
+			  state);
+
+	cb_dialog_doc_metadata_keywords_sel_changed (sel, state);
+}
+
+/******************************************************************************
  * FUNCTIONS RELATED TO 'PROPERTIES' PAGE
  ******************************************************************************/
 
@@ -923,7 +1146,8 @@ cb_dialog_doc_metadata_add_clicked (GtkWidget         *w,
 static void
 dialog_doc_metadata_update_prop (DialogDocMetaData *state,
 				 const gchar       *prop_name,
-				 const gchar       *prop_value)
+				 const gchar       *prop_value,
+				 GsfDocProp	   *prop)
 {
 	/* Labels */
 	if (strcmp (prop_name, GSF_META_NAME_DATE_CREATED) == 0) {
@@ -986,7 +1210,7 @@ dialog_doc_metadata_update_prop (DialogDocMetaData *state,
 	}
 
 	else if (strcmp (prop_name, GSF_META_NAME_KEYWORDS) == 0) {
-		gtk_entry_set_text (state->keywords, prop_value);
+		dialog_doc_metadata_update_keyword_list (state, prop);
 	}
 
 	else if (strcmp (prop_name, GSF_META_NAME_DESCRIPTION) == 0) {
@@ -1041,7 +1265,7 @@ cb_dialog_doc_metadata_remove_clicked (GtkWidget         *remove_bt,
 	/* Update other pages */
 	dialog_doc_metadata_update_prop (state,
 					 g_value_get_string (prop_name),
-					 NULL);
+					 NULL, NULL);
 
 	/* Remove property from GsfMetadata */
 	cmd_change_meta_data (WORKBOOK_CONTROL (state->wbcg), NULL,
@@ -1070,13 +1294,6 @@ cb_dialog_doc_metadata_remove_clicked (GtkWidget         *remove_bt,
 	g_free (prop_name);
 }
 
-static void
-cb_dialog_doc_metadata_apply_clicked (GtkWidget         *w,
-				      DialogDocMetaData *state)
-{
-	gtk_widget_set_sensitive (GTK_WIDGET (state->apply_button), FALSE);
-}
-
 /**
  * cb_dialog_doc_metadata_combo_prop_selected
  *
@@ -1243,11 +1460,18 @@ dialog_doc_metadata_populate_tree_view (gchar             *name,
 				      link_value == NULL ? "" : link_value,
 				      FALSE);
 
-	dialog_doc_metadata_update_prop (state, gsf_doc_prop_get_name (prop), str_value);
+	dialog_doc_metadata_update_prop (state, gsf_doc_prop_get_name (prop), str_value, prop);
 
 	g_free (str_value);
 }
 
+static void cb_dialog_doc_metadata_apply_clicked (GtkWidget         *w,
+						DialogDocMetaData *state)
+{
+	gtk_widget_set_sensitive (GTK_WIDGET (state->apply_button), FALSE);
+}
+
+
 /**
  * dialog_doc_metadata_init_properties_page
  *
@@ -1531,7 +1755,6 @@ dialog_doc_metadata_init_widgets (DialogDocMetaData *state)
 	state->manager  = GTK_ENTRY (go_gtk_builder_get_widget (state->gui, "manager"));
 	state->company  = GTK_ENTRY (go_gtk_builder_get_widget (state->gui, "company"));
 	state->category = GTK_ENTRY (go_gtk_builder_get_widget (state->gui, "category"));
-	state->keywords = GTK_ENTRY (go_gtk_builder_get_widget (state->gui, "keywords"));
 
 	state->comments = GTK_TEXT_VIEW (go_gtk_builder_get_widget (state->gui, "comments"));
 
@@ -1546,6 +1769,12 @@ dialog_doc_metadata_init_widgets (DialogDocMetaData *state)
 	state->remove_button = GTK_BUTTON (go_gtk_builder_get_widget (state->gui, "remove_button"));
 	state->apply_button  = GTK_BUTTON (go_gtk_builder_get_widget (state->gui, "apply_button"));
 
+	/* Keyword Page */
+	state->key_tree_view = GTK_TREE_VIEW  (go_gtk_builder_get_widget (state->gui, "keyview"));
+	state->key_store = GTK_LIST_STORE (gtk_tree_view_get_model (state->key_tree_view));
+	state->key_add_button  = GTK_BUTTON (go_gtk_builder_get_widget (state->gui, "key-add-button"));
+	state->key_remove_button  = GTK_BUTTON (go_gtk_builder_get_widget (state->gui, "key-remove-button"));
+
 	/* Statistics Page */
 	state->sheets = GTK_LABEL (go_gtk_builder_get_widget (state->gui, "sheets"));
 	state->cells  = GTK_LABEL (go_gtk_builder_get_widget (state->gui, "cells"));
@@ -1600,6 +1829,7 @@ static page_info_t const page_info[] = {
 	{N_("Statistics"),  "Gnumeric_GraphGuru", NULL, 3 ,&dialog_doc_metadata_init_statistics_page    },
 	{N_("Properties"),  GTK_STOCK_PROPERTIES, NULL, 2, &dialog_doc_metadata_init_properties_page    },
 	{N_("Description"), GTK_STOCK_ABOUT,	  NULL, 1, &dialog_doc_metadata_init_description_page   },
+	{N_("Keywords"),    GTK_STOCK_INDEX,	  NULL, 5, &dialog_doc_metadata_init_keywords_page   },
 	{N_("Calculation"), GTK_STOCK_EXECUTE,    NULL, 4, &dialog_doc_metadata_init_calculations_page  },
 	{NULL, NULL, NULL, -1, NULL},
 };
diff --git a/src/dialogs/doc-meta-data.ui b/src/dialogs/doc-meta-data.ui
index 628c2a7..4d24838 100644
--- a/src/dialogs/doc-meta-data.ui
+++ b/src/dialogs/doc-meta-data.ui
@@ -3,41 +3,71 @@
   <!-- interface-requires gtk+ 2.12 -->
   <!-- interface-naming-policy toplevel-contextual -->
   <object class="GtkDialog" id="GOMetadataDialog">
+    <property name="can_focus">False</property>
     <property name="border_width">6</property>
     <property name="title" translatable="yes">Document Properties</property>
     <property name="type_hint">dialog</property>
     <child internal-child="vbox">
       <object class="GtkVBox" id="dialog-vbox1">
         <property name="visible">True</property>
+        <property name="can_focus">False</property>
         <property name="spacing">6</property>
-        <child>
-          <object class="GtkHBox" id="hbox1">
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area1">
             <property name="visible">True</property>
-            <property name="spacing">10</property>
+            <property name="can_focus">False</property>
+            <property name="layout_style">end</property>
             <child>
-              <object class="GtkScrolledWindow" id="scrolledwindow3">
+              <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="hscrollbar_policy">never</property>
-                <property name="vscrollbar_policy">never</property>
-                <property name="shadow_type">in</property>
-                <child>
-                  <object class="GtkTreeView" id="itemlist">
-                    <property name="visible">True</property>
-                    <property name="can_focus">True</property>
-                    <property name="headers_visible">False</property>
-                  </object>
-                </child>
+                <property name="can_default">True</property>
+                <property name="receives_default">False</property>
+                <property name="use_action_appearance">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="close_button">
+                <property name="label">gtk-close</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_action_appearance">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>
+          </object>
+          <packing>
+            <property name="expand">False</property>
+            <property name="fill">True</property>
+            <property name="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
+        <child>
+          <object class="GtkHBox" id="hbox1">
+            <property name="visible">True</property>
+            <property name="can_focus">False</property>
+            <property name="spacing">10</property>
             <child>
               <object class="GtkNotebook" id="notebook">
                 <property name="visible">True</property>
                 <property name="can_focus">True</property>
+                <property name="extension_events">cursor</property>
                 <property name="tab_pos">left</property>
                 <property name="show_tabs">False</property>
                 <property name="show_border">False</property>
@@ -45,11 +75,13 @@
                 <child>
                   <object class="GtkVBox" id="vbox5">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="border_width">5</property>
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkLabel" id="label79">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="yalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Information&lt;/b&gt;</property>
@@ -64,6 +96,7 @@
                     <child>
                       <object class="GtkTable" id="table5">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="n_rows">7</property>
                         <property name="n_columns">2</property>
                         <property name="column_spacing">6</property>
@@ -71,6 +104,7 @@
                         <child>
                           <object class="GtkLabel" id="label87">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Name:&lt;/b&gt;</property>
@@ -84,6 +118,7 @@
                         <child>
                           <object class="GtkLabel" id="label67">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Location:&lt;/b&gt;</property>
@@ -99,6 +134,7 @@
                         <child>
                           <object class="GtkLabel" id="label69">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Created:&lt;/b&gt;</property>
@@ -114,6 +150,7 @@
                         <child>
                           <object class="GtkLabel" id="label71">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Last Modified:&lt;/b&gt;</property>
@@ -129,6 +166,7 @@
                         <child>
                           <object class="GtkLabel" id="label73">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Last Accessed:&lt;/b&gt;</property>
@@ -144,6 +182,7 @@
                         <child>
                           <object class="GtkLabel" id="label61">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Owner:&lt;/b&gt;</property>
@@ -159,6 +198,7 @@
                         <child>
                           <object class="GtkLabel" id="label52">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Group:&lt;/b&gt;</property>
@@ -211,6 +251,7 @@
                         <child>
                           <object class="GtkLabel" id="created">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                           </object>
@@ -226,6 +267,7 @@
                         <child>
                           <object class="GtkLabel" id="modified">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                           </object>
@@ -241,6 +283,7 @@
                         <child>
                           <object class="GtkLabel" id="accessed">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                           </object>
@@ -256,6 +299,7 @@
                         <child>
                           <object class="GtkLabel" id="owner">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                           </object>
@@ -271,6 +315,7 @@
                         <child>
                           <object class="GtkLabel" id="group">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                           </object>
@@ -285,21 +330,26 @@
                         </child>
                       </object>
                       <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
                         <property name="position">1</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkHSeparator" id="hseparator3">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                       </object>
                       <packing>
                         <property name="expand">False</property>
+                        <property name="fill">True</property>
                         <property name="position">2</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkLabel" id="label78">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="yalign">0</property>
                         <property name="label" translatable="yes">&lt;b&gt;Permissions&lt;/b&gt;</property>
@@ -314,19 +364,24 @@
                     <child>
                       <object class="GtkTable" id="table4">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="n_rows">4</property>
                         <property name="n_columns">3</property>
                         <property name="homogeneous">True</property>
                         <child>
                           <object class="GtkHBox" id="hbox52">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <child>
                               <object class="GtkLabel" id="label91">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="yalign">0</property>
                               </object>
                               <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
@@ -335,6 +390,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="focus_on_click">False</property>
                                 <property name="draw_indicator">True</property>
@@ -348,10 +404,13 @@
                             <child>
                               <object class="GtkLabel" id="label92">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="yalign">0</property>
                               </object>
                               <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
                                 <property name="position">2</property>
                               </packing>
                             </child>
@@ -368,13 +427,17 @@
                         <child>
                           <object class="GtkHBox" id="hbox53">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <child>
                               <object class="GtkLabel" id="label93">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="yalign">0</property>
                               </object>
                               <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
@@ -383,6 +446,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="focus_on_click">False</property>
                                 <property name="draw_indicator">True</property>
@@ -396,10 +460,13 @@
                             <child>
                               <object class="GtkLabel" id="label95">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="yalign">0</property>
                               </object>
                               <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
                                 <property name="position">2</property>
                               </packing>
                             </child>
@@ -416,13 +483,17 @@
                         <child>
                           <object class="GtkHBox" id="hbox54">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <child>
                               <object class="GtkLabel" id="label94">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="yalign">0</property>
                               </object>
                               <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
@@ -431,6 +502,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="focus_on_click">False</property>
                                 <property name="draw_indicator">True</property>
@@ -444,10 +516,13 @@
                             <child>
                               <object class="GtkLabel" id="label96">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="yalign">0</property>
                               </object>
                               <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
                                 <property name="position">2</property>
                               </packing>
                             </child>
@@ -464,13 +539,17 @@
                         <child>
                           <object class="GtkHBox" id="hbox55">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <child>
                               <object class="GtkLabel" id="label97">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="yalign">0</property>
                               </object>
                               <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
@@ -479,6 +558,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="focus_on_click">False</property>
                                 <property name="draw_indicator">True</property>
@@ -492,10 +572,13 @@
                             <child>
                               <object class="GtkLabel" id="label100">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="yalign">0</property>
                               </object>
                               <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
                                 <property name="position">2</property>
                               </packing>
                             </child>
@@ -512,13 +595,17 @@
                         <child>
                           <object class="GtkHBox" id="hbox56">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <child>
                               <object class="GtkLabel" id="label98">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="yalign">0</property>
                               </object>
                               <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
@@ -527,6 +614,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="focus_on_click">False</property>
                                 <property name="draw_indicator">True</property>
@@ -540,10 +628,13 @@
                             <child>
                               <object class="GtkLabel" id="label101">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="yalign">0</property>
                               </object>
                               <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
                                 <property name="position">2</property>
                               </packing>
                             </child>
@@ -560,13 +651,17 @@
                         <child>
                           <object class="GtkHBox" id="hbox57">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <child>
                               <object class="GtkLabel" id="label99">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="yalign">0</property>
                               </object>
                               <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
@@ -575,6 +670,7 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
+                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="focus_on_click">False</property>
                                 <property name="draw_indicator">True</property>
@@ -588,10 +684,13 @@
                             <child>
                               <object class="GtkLabel" id="label102">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="yalign">0</property>
                               </object>
                               <packing>
+                                <property name="expand">True</property>
+                                <property name="fill">True</property>
                                 <property name="position">2</property>
                               </packing>
                             </child>
@@ -608,6 +707,7 @@
                         <child>
                           <object class="GtkLabel" id="label118">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Read&lt;/b&gt;</property>
@@ -622,6 +722,7 @@
                         <child>
                           <object class="GtkLabel" id="label119">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Write&lt;/b&gt;</property>
@@ -636,6 +737,7 @@
                         <child>
                           <object class="GtkLabel" id="label117">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                           </object>
@@ -646,6 +748,7 @@
                         <child>
                           <object class="GtkLabel" id="label122">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Other:&lt;/b&gt;</property>
@@ -660,6 +763,7 @@
                         <child>
                           <object class="GtkLabel" id="label121">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Group:&lt;/b&gt;</property>
@@ -674,6 +778,7 @@
                         <child>
                           <object class="GtkLabel" id="label120">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Owner:&lt;/b&gt;</property>
@@ -687,6 +792,8 @@
                         </child>
                       </object>
                       <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
                         <property name="position">4</property>
                       </packing>
                     </child>
@@ -695,6 +802,7 @@
                 <child type="tab">
                   <object class="GtkLabel" id="label1">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="yalign">0</property>
                     <property name="label" translatable="yes">File</property>
@@ -706,6 +814,7 @@
                 <child>
                   <object class="GtkTable" id="table2">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="border_width">5</property>
                     <property name="n_rows">8</property>
                     <property name="n_columns">2</property>
@@ -717,6 +826,10 @@
                         <property name="can_focus">True</property>
                         <property name="tooltip_text">The document keywords</property>
                         <property name="invisible_char">â</property>
+                        <property name="primary_icon_activatable">False</property>
+                        <property name="secondary_icon_activatable">False</property>
+                        <property name="primary_icon_sensitive">True</property>
+                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
@@ -754,6 +867,7 @@
                     <child>
                       <object class="GtkLabel" id="label30">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="yalign">0</property>
                         <property name="label" translatable="yes">Comments:</property>
@@ -768,6 +882,7 @@
                     <child>
                       <object class="GtkLabel" id="label29">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="yalign">0</property>
                         <property name="label" translatable="yes">Keywords:</property>
@@ -785,6 +900,10 @@
                         <property name="can_focus">True</property>
                         <property name="tooltip_text">The document category</property>
                         <property name="invisible_char">â</property>
+                        <property name="primary_icon_activatable">False</property>
+                        <property name="secondary_icon_activatable">False</property>
+                        <property name="primary_icon_sensitive">True</property>
+                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
@@ -800,6 +919,10 @@
                         <property name="can_focus">True</property>
                         <property name="tooltip_text">The document company</property>
                         <property name="invisible_char">â</property>
+                        <property name="primary_icon_activatable">False</property>
+                        <property name="secondary_icon_activatable">False</property>
+                        <property name="primary_icon_sensitive">True</property>
+                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
@@ -815,6 +938,10 @@
                         <property name="can_focus">True</property>
                         <property name="tooltip_text">The document manager</property>
                         <property name="invisible_char">â</property>
+                        <property name="primary_icon_activatable">False</property>
+                        <property name="secondary_icon_activatable">False</property>
+                        <property name="primary_icon_sensitive">True</property>
+                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
@@ -830,6 +957,10 @@
                         <property name="can_focus">True</property>
                         <property name="tooltip_text">The document author</property>
                         <property name="invisible_char">â</property>
+                        <property name="primary_icon_activatable">False</property>
+                        <property name="secondary_icon_activatable">False</property>
+                        <property name="primary_icon_sensitive">True</property>
+                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
@@ -845,6 +976,10 @@
                         <property name="can_focus">True</property>
                         <property name="tooltip_text">The document subject</property>
                         <property name="invisible_char">â</property>
+                        <property name="primary_icon_activatable">False</property>
+                        <property name="secondary_icon_activatable">False</property>
+                        <property name="primary_icon_sensitive">True</property>
+                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
@@ -860,6 +995,10 @@
                         <property name="can_focus">True</property>
                         <property name="tooltip_text">The document title (not filename)</property>
                         <property name="invisible_char">â</property>
+                        <property name="primary_icon_activatable">False</property>
+                        <property name="secondary_icon_activatable">False</property>
+                        <property name="primary_icon_sensitive">True</property>
+                        <property name="secondary_icon_sensitive">True</property>
                       </object>
                       <packing>
                         <property name="left_attach">1</property>
@@ -870,6 +1009,7 @@
                     <child>
                       <object class="GtkLabel" id="label103">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="yalign">0</property>
                         <property name="label" translatable="yes">Category:</property>
@@ -884,6 +1024,7 @@
                     <child>
                       <object class="GtkLabel" id="label116">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="yalign">0</property>
                         <property name="label" translatable="yes">Company:</property>
@@ -898,6 +1039,7 @@
                     <child>
                       <object class="GtkLabel" id="label115">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="yalign">0</property>
                         <property name="label" translatable="yes">Manager:</property>
@@ -912,6 +1054,7 @@
                     <child>
                       <object class="GtkLabel" id="label47">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="yalign">0</property>
                         <property name="label" translatable="yes">Author:</property>
@@ -926,6 +1069,7 @@
                     <child>
                       <object class="GtkLabel" id="label28">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="yalign">0</property>
                         <property name="label" translatable="yes">Subject:</property>
@@ -940,6 +1084,7 @@
                     <child>
                       <object class="GtkLabel" id="label27">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="xalign">0</property>
                         <property name="yalign">0</property>
                         <property name="label" translatable="yes">Title:</property>
@@ -957,6 +1102,7 @@
                 <child type="tab">
                   <object class="GtkLabel" id="description_label">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="yalign">0</property>
                     <property name="label" translatable="yes">Description</property>
@@ -969,6 +1115,7 @@
                 <child>
                   <object class="GtkVBox" id="vbox10">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="border_width">5</property>
                     <property name="spacing">6</property>
                     <child>
@@ -986,12 +1133,15 @@
                         </child>
                       </object>
                       <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
                         <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkHSeparator" id="hseparator4">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                       </object>
                       <packing>
                         <property name="expand">False</property>
@@ -1002,6 +1152,7 @@
                     <child>
                       <object class="GtkTable" id="table3">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="n_rows">3</property>
                         <property name="n_columns">2</property>
                         <property name="column_spacing">6</property>
@@ -1009,6 +1160,7 @@
                         <child>
                           <object class="GtkLabel" id="label75">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">Name: </property>
@@ -1021,6 +1173,7 @@
                         <child>
                           <object class="GtkLabel" id="label77">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">Value: </property>
@@ -1038,6 +1191,10 @@
                             <property name="can_focus">True</property>
                             <property name="tooltip_text">This property's content (text)</property>
                             <property name="invisible_char">â</property>
+                            <property name="primary_icon_activatable">False</property>
+                            <property name="secondary_icon_activatable">False</property>
+                            <property name="primary_icon_sensitive">True</property>
+                            <property name="secondary_icon_sensitive">True</property>
                           </object>
                           <packing>
                             <property name="left_attach">1</property>
@@ -1050,6 +1207,7 @@
                         <child>
                           <object class="GtkLabel" id="label124">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">Link:</property>
@@ -1066,6 +1224,10 @@
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="invisible_char">â</property>
+                            <property name="primary_icon_activatable">False</property>
+                            <property name="secondary_icon_activatable">False</property>
+                            <property name="primary_icon_sensitive">True</property>
+                            <property name="secondary_icon_sensitive">True</property>
                           </object>
                           <packing>
                             <property name="left_attach">1</property>
@@ -1078,6 +1240,16 @@
                         <child>
                           <object class="GtkComboBoxEntry" id="ppt_name">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
+                            <child internal-child="entry">
+                              <object class="GtkEntry" id="comboboxentry-entry2">
+                                <property name="can_focus">False</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
+                                <property name="primary_icon_sensitive">True</property>
+                                <property name="secondary_icon_sensitive">True</property>
+                              </object>
+                            </child>
                           </object>
                           <packing>
                             <property name="left_attach">1</property>
@@ -1089,12 +1261,14 @@
                       </object>
                       <packing>
                         <property name="expand">False</property>
+                        <property name="fill">True</property>
                         <property name="position">2</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkHButtonBox" id="hbuttonbox2">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="spacing">6</property>
                         <property name="layout_style">end</property>
                         <child>
@@ -1104,6 +1278,7 @@
                             <property name="can_focus">True</property>
                             <property name="can_default">True</property>
                             <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
                             <property name="use_stock">True</property>
                           </object>
                           <packing>
@@ -1119,6 +1294,7 @@
                             <property name="can_focus">True</property>
                             <property name="can_default">True</property>
                             <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
                             <property name="use_stock">True</property>
                           </object>
                           <packing>
@@ -1134,6 +1310,7 @@
                             <property name="can_focus">True</property>
                             <property name="can_default">True</property>
                             <property name="receives_default">True</property>
+                            <property name="use_action_appearance">False</property>
                             <property name="use_stock">True</property>
                           </object>
                           <packing>
@@ -1145,6 +1322,7 @@
                       </object>
                       <packing>
                         <property name="expand">False</property>
+                        <property name="fill">True</property>
                         <property name="position">3</property>
                       </packing>
                     </child>
@@ -1156,6 +1334,7 @@
                 <child type="tab">
                   <object class="GtkLabel" id="label3">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="yalign">0</property>
                     <property name="label" translatable="yes">Properties</property>
@@ -1168,11 +1347,13 @@
                 <child>
                   <object class="GtkVBox" id="vbox4">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="border_width">4</property>
                     <property name="spacing">6</property>
                     <child>
                       <object class="GtkTable" id="table6">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="border_width">5</property>
                         <property name="n_rows">3</property>
                         <property name="n_columns">2</property>
@@ -1181,6 +1362,7 @@
                         <child>
                           <object class="GtkLabel" id="label125">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Number of sheets:&lt;/b&gt;</property>
@@ -1194,6 +1376,7 @@
                         <child>
                           <object class="GtkLabel" id="label126">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Number of cells:&lt;/b&gt;</property>
@@ -1209,6 +1392,7 @@
                         <child>
                           <object class="GtkLabel" id="label127">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">1</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;b&gt;Number of pages:&lt;/b&gt;</property>
@@ -1224,6 +1408,7 @@
                         <child>
                           <object class="GtkLabel" id="sheets">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;sheets&gt;</property>
@@ -1238,6 +1423,7 @@
                         <child>
                           <object class="GtkLabel" id="cells">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;cells&gt;</property>
@@ -1254,6 +1440,7 @@
                         <child>
                           <object class="GtkLabel" id="pages">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="yalign">0</property>
                             <property name="label" translatable="yes">&lt;pages&gt;</property>
@@ -1269,6 +1456,8 @@
                         </child>
                       </object>
                       <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
                         <property name="position">0</property>
                       </packing>
                     </child>
@@ -1280,6 +1469,7 @@
                 <child type="tab">
                   <object class="GtkLabel" id="label5">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="yalign">0</property>
                     <property name="label" translatable="yes">Statistics</property>
@@ -1292,15 +1482,18 @@
                 <child>
                   <object class="GtkVBox" id="vbox1">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="border_width">12</property>
                     <property name="spacing">12</property>
                     <child>
                       <object class="GtkHBox" id="hbox2">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="spacing">12</property>
                         <child>
                           <object class="GtkLabel" id="label6">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="xalign">0</property>
                             <property name="label" translatable="yes">Recalculation:</property>
                           </object>
@@ -1316,6 +1509,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">False</property>
+                            <property name="use_action_appearance">False</property>
                             <property name="use_underline">True</property>
                             <property name="active">True</property>
                             <property name="draw_indicator">True</property>
@@ -1332,6 +1526,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">False</property>
+                            <property name="use_action_appearance">False</property>
                             <property name="use_underline">True</property>
                             <property name="draw_indicator">True</property>
                             <property name="group">recalc_auto</property>
@@ -1345,16 +1540,19 @@
                       </object>
                       <packing>
                         <property name="expand">False</property>
+                        <property name="fill">True</property>
                         <property name="position">0</property>
                       </packing>
                     </child>
                     <child>
                       <object class="GtkFrame" id="frame1">
                         <property name="visible">True</property>
+                        <property name="can_focus">False</property>
                         <property name="label_xalign">0</property>
                         <child>
                           <object class="GtkTable" id="iteration_table">
                             <property name="visible">True</property>
+                            <property name="can_focus">False</property>
                             <property name="border_width">6</property>
                             <property name="n_rows">2</property>
                             <property name="n_columns">2</property>
@@ -1363,6 +1561,7 @@
                             <child>
                               <object class="GtkLabel" id="label4">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">Maximum it_erations:</property>
                                 <property name="use_underline">True</property>
@@ -1376,6 +1575,7 @@
                             <child>
                               <object class="GtkLabel" id="label2">
                                 <property name="visible">True</property>
+                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="label" translatable="yes">Maximum c_hange:</property>
                                 <property name="use_underline">True</property>
@@ -1393,6 +1593,10 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">â</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
+                                <property name="primary_icon_sensitive">True</property>
+                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
@@ -1405,6 +1609,10 @@
                                 <property name="visible">True</property>
                                 <property name="can_focus">True</property>
                                 <property name="invisible_char">â</property>
+                                <property name="primary_icon_activatable">False</property>
+                                <property name="secondary_icon_activatable">False</property>
+                                <property name="primary_icon_sensitive">True</property>
+                                <property name="secondary_icon_sensitive">True</property>
                               </object>
                               <packing>
                                 <property name="left_attach">1</property>
@@ -1422,6 +1630,7 @@
                             <property name="visible">True</property>
                             <property name="can_focus">True</property>
                             <property name="receives_default">False</property>
+                            <property name="use_action_appearance">False</property>
                             <property name="use_underline">True</property>
                             <property name="active">True</property>
                             <property name="draw_indicator">True</property>
@@ -1442,6 +1651,7 @@
                 <child type="tab">
                   <object class="GtkLabel" id="label7">
                     <property name="visible">True</property>
+                    <property name="can_focus">False</property>
                     <property name="xalign">0</property>
                     <property name="yalign">0</property>
                     <property name="label" translatable="yes">Calculation</property>
@@ -1451,57 +1661,126 @@
                     <property name="tab_fill">False</property>
                   </packing>
                 </child>
+                <child>
+                  <object class="GtkVBox" id="vbox2">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="spacing">5</property>
+                    <child>
+                      <object class="GtkScrolledWindow" id="scrolledwindow4">
+                        <property name="visible">True</property>
+                        <property name="can_focus">True</property>
+                        <property name="hscrollbar_policy">automatic</property>
+                        <property name="shadow_type">in</property>
+                        <child>
+                          <object class="GtkTreeView" id="keyview">
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="model">keystore</property>
+                            <property name="reorderable">True</property>
+                          </object>
+                        </child>
+                      </object>
+                      <packing>
+                        <property name="expand">True</property>
+                        <property name="fill">True</property>
+                        <property name="position">0</property>
+                      </packing>
+                    </child>
+                    <child>
+                      <object class="GtkHButtonBox" id="hbuttonbox1">
+                        <property name="visible">True</property>
+                        <property name="can_focus">False</property>
+                        <property name="border_width">6</property>
+                        <property name="spacing">6</property>
+                        <property name="layout_style">end</property>
+                        <child>
+                          <object class="GtkButton" id="key-add-button">
+                            <property name="label">gtk-add</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">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>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkButton" id="key-remove-button">
+                            <property name="label">gtk-remove</property>
+                            <property name="visible">True</property>
+                            <property name="can_focus">True</property>
+                            <property name="receives_default">True</property>
+                            <property name="use_action_appearance">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>
+                      </object>
+                      <packing>
+                        <property name="expand">False</property>
+                        <property name="fill">True</property>
+                        <property name="position">1</property>
+                      </packing>
+                    </child>
+                  </object>
+                  <packing>
+                    <property name="position">5</property>
+                  </packing>
+                </child>
+                <child type="tab">
+                  <object class="GtkLabel" id="label8">
+                    <property name="visible">True</property>
+                    <property name="can_focus">False</property>
+                    <property name="label" translatable="yes">page 6</property>
+                  </object>
+                  <packing>
+                    <property name="position">5</property>
+                    <property name="tab_fill">False</property>
+                  </packing>
+                </child>
               </object>
               <packing>
+                <property name="expand">True</property>
+                <property name="fill">True</property>
                 <property name="pack_type">end</property>
                 <property name="position">0</property>
               </packing>
             </child>
-          </object>
-          <packing>
-            <property name="position">1</property>
-          </packing>
-        </child>
-        <child internal-child="action_area">
-          <object class="GtkHButtonBox" id="dialog-action_area1">
-            <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="close_button">
-                <property name="label">gtk-close</property>
+              <object class="GtkScrolledWindow" id="scrolledwindow3">
                 <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>
+                <property name="hscrollbar_policy">never</property>
+                <property name="vscrollbar_policy">never</property>
+                <property name="shadow_type">in</property>
+                <child>
+                  <object class="GtkTreeView" id="itemlist">
+                    <property name="visible">True</property>
+                    <property name="can_focus">True</property>
+                    <property name="headers_visible">False</property>
+                  </object>
+                </child>
               </object>
               <packing>
                 <property name="expand">False</property>
-                <property name="fill">False</property>
+                <property name="fill">True</property>
                 <property name="position">1</property>
               </packing>
             </child>
           </object>
           <packing>
-            <property name="expand">False</property>
-            <property name="pack_type">end</property>
-            <property name="position">0</property>
+            <property name="expand">True</property>
+            <property name="fill">True</property>
+            <property name="position">1</property>
           </packing>
         </child>
       </object>
@@ -1511,4 +1790,10 @@
       <action-widget response="0">close_button</action-widget>
     </action-widgets>
   </object>
+  <object class="GtkListStore" id="keystore">
+    <columns>
+      <!-- column-name keywords -->
+      <column type="gchararray"/>
+    </columns>
+  </object>
 </interface>



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