[nautilus-actions] NactPreferencesEditor:ImportMode also implements NAIOptionsList interface



commit 8cf3f49e7428ce80cf7612b65b4eb8399fc02706
Author: Pierre Wieser <pwieser trychlos org>
Date:   Sat Dec 31 13:11:19 2011 +0100

    NactPreferencesEditor:ImportMode also implements NAIOptionsList interface

 ChangeLog                          |   21 +++
 src/core/na-import-mode.c          |  269 ++++++++++++++++++++++++++--
 src/core/na-import-mode.h          |   14 ++-
 src/core/na-importer.c             |  150 ++++++++++++++++
 src/core/na-importer.h             |   13 +-
 src/core/na-ioptions-list.c        |  123 +++++++++-----
 src/core/na-ioptions-list.h        |    8 +-
 src/core/na-settings.h             |    4 +-
 src/nact/nact-assistant-export.c   |    4 +-
 src/nact/nact-export-ask.c         |    4 +-
 src/nact/nact-preferences-editor.c |  243 ++++++++++++--------------
 src/nact/nact-preferences.ui       |  346 +++++++-----------------------------
 12 files changed, 724 insertions(+), 475 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 6d16b34..39e6bdb 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,24 @@
+2011-12-30 Pierre Wieser <pwieser trychlos org>
+
+	* src/core/na-import-mode.c:
+	* src/core/na-import-mode.h: Implement NAImportMode object class.
+
+	* src/core/na-importer.c:
+	* src/core/na-importer.h
+	(na_importer_get_modes,	na_importer_get_ask_mode): New functions.
+
+	* src/core/na-ioptions-list.c:
+	* src/core/na-ioptions-list.h (free_options, free_ask_option):
+	Add 'container_parent' as an argument of the methods.
+
+	* src/nact/nact-assistant-export.c:
+	* src/nact/nact-export-ask.c: Updated accordingly.
+
+	* src/nact/nact-preferences-editor.c:
+	Implement NAIOptionsList itnerface for Import mode tab.
+
+	* src/nact/nact-preferences.ui: Updated accordingly.
+
 2011-12-29 Pierre Wieser <pwieser trychlos org>
 
 	* src/core/na-import-mode.c (instance_finalize): Free private structure.
diff --git a/src/core/na-import-mode.c b/src/core/na-import-mode.c
index 6eb478d..76e452c 100644
--- a/src/core/na-import-mode.c
+++ b/src/core/na-import-mode.c
@@ -32,6 +32,8 @@
 #include <config.h>
 #endif
 
+#include <gdk-pixbuf/gdk-pixbuf.h>
+
 #include "na-import-mode.h"
 #include "na-ioption.h"
 
@@ -44,18 +46,44 @@ struct _NAImportModeClassPrivate {
 /* private instance data
  */
 struct _NAImportModePrivate {
-	gboolean     dispose_has_run;
+	gboolean   dispose_has_run;
+
+	/* properties
+	 */
+	guint      id;
+	gchar     *mode;
+	gchar     *label;
+	gchar     *description;
+	GdkPixbuf *image;
+};
+
+/* properties
+ */
+enum {
+	MAIN_PROP_0 = 0,
+
+	NA_IMPORT_PROP_MODE_ID,
+	NA_IMPORT_PROP_LABEL_ID,
+	NA_IMPORT_PROP_DESCRIPTION_ID,
+	NA_IMPORT_PROP_IMAGE_ID,
+
+	NA_IMPORT_PROP_N_PROPERTIES
 };
 
 static GObjectClass *st_parent_class = NULL;
 
-static GType  register_type( void );
-static void   class_init( NAImportModeClass *klass );
-static void   ioption_iface_init( NAIOptionInterface *iface );
-static guint  ioption_get_version( const NAIOption *instance );
-static void   instance_init( GTypeInstance *instance, gpointer klass );
-static void   instance_dispose( GObject *object );
-static void   instance_finalize( GObject *object );
+static GType      register_type( void );
+static void       class_init( NAImportModeClass *klass );
+static void       ioption_iface_init( NAIOptionInterface *iface );
+static gchar     *ioption_get_id( const NAIOption *option );
+static gchar     *ioption_get_label( const NAIOption *option );
+static gchar     *ioption_get_description( const NAIOption *option );
+static GdkPixbuf *ioption_get_pixbuf( const NAIOption *option );
+static void       instance_init( GTypeInstance *instance, gpointer klass );
+static void       instance_get_property( GObject *object, guint property_id, GValue *value, GParamSpec *spec );
+static void       instance_set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *spec );
+static void       instance_dispose( GObject *object );
+static void       instance_finalize( GObject *object );
 
 GType
 na_import_mode_get_type( void )
@@ -113,10 +141,44 @@ class_init( NAImportModeClass *klass )
 	st_parent_class = g_type_class_peek_parent( klass );
 
 	object_class = G_OBJECT_CLASS( klass );
+	object_class->set_property = instance_set_property;
+	object_class->get_property = instance_get_property;
 	object_class->dispose = instance_dispose;
 	object_class->finalize = instance_finalize;
 
 	klass->private = g_new0( NAImportModeClassPrivate, 1 );
+
+	g_object_class_install_property( object_class, NA_IMPORT_PROP_MODE_ID,
+			g_param_spec_string(
+					NA_IMPORT_PROP_MODE,
+					"Import mode",
+					"The string identifier of the import mode, stored in user's preferences",
+					"",
+					G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE ));
+
+	g_object_class_install_property( object_class, NA_IMPORT_PROP_LABEL_ID,
+			g_param_spec_string(
+					NA_IMPORT_PROP_LABEL,
+					"Import label",
+					"The label associated to the import mode",
+					"",
+					G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE ));
+
+	g_object_class_install_property( object_class, NA_IMPORT_PROP_DESCRIPTION_ID,
+			g_param_spec_string(
+					NA_IMPORT_PROP_DESCRIPTION,
+					"Import mode description",
+					"The description associated to the import mode",
+					"",
+					G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE ));
+
+	g_object_class_install_property( object_class, NA_IMPORT_PROP_IMAGE_ID,
+			g_param_spec_object(
+					NA_IMPORT_PROP_IMAGE,
+					"Import mode image",
+					"The image associated to the import mode, as a GdkPixbuf",
+					G_TYPE_OBJECT,
+					G_PARAM_CONSTRUCT | G_PARAM_STATIC_STRINGS | G_PARAM_READWRITE ));
 }
 
 static void
@@ -126,13 +188,110 @@ ioption_iface_init( NAIOptionInterface *iface )
 
 	g_debug( "%s: iface=%p", thisfn, ( void * ) iface );
 
-	iface->get_version = ioption_get_version;
+	iface->get_id = ioption_get_id;
+	iface->get_label = ioption_get_label;
+	iface->get_description = ioption_get_description;
+	iface->get_pixbuf = ioption_get_pixbuf;
+}
+
+/*
+ * ioption_get_id:
+ * @option: this #NAIOption instance.
+ *
+ * Returns: the ASCII id of the @option, as a newly allocated string which
+ * should be g_free() by the caller.
+ */
+static gchar *
+ioption_get_id( const NAIOption *option )
+{
+	gchar *id;
+	NAImportMode *mode;
+
+	g_return_val_if_fail( NA_IS_IMPORT_MODE( option ), NULL );
+	mode = NA_IMPORT_MODE( option );
+	id = NULL;
+
+	if( !mode->private->dispose_has_run ){
+
+		id = g_strdup( mode->private->mode );
+	}
+
+	return( id );
+}
+
+/*
+ * ioption_get_label:
+ * @option: this #NAIOption instance.
+ *
+ * Returns: the label associated to @option, as a newly allocated string
+ * which should be g_free() by the caller.
+ */
+static gchar *
+ioption_get_label( const NAIOption *option )
+{
+	gchar *label;
+	NAImportMode *mode;
+
+	g_return_val_if_fail( NA_IS_IMPORT_MODE( option ), NULL );
+	mode = NA_IMPORT_MODE( option );
+	label = NULL;
+
+	if( !mode->private->dispose_has_run ){
+
+		label = g_strdup( mode->private->label );
+	}
+
+	return( label );
 }
 
-static guint
-ioption_get_version( const NAIOption *instance )
+/*
+ * ioption_get_description:
+ * @option: this #NAIOption instance.
+ *
+ * Returns: the description associated to @option, as a newly allocated string
+ * which should be g_free() by the caller.
+ */
+static gchar *
+ioption_get_description( const NAIOption *option )
+{
+	gchar *description;
+	NAImportMode *mode;
+
+	g_return_val_if_fail( NA_IS_IMPORT_MODE( option ), NULL );
+	mode = NA_IMPORT_MODE( option );
+	description = NULL;
+
+	if( !mode->private->dispose_has_run ){
+
+		description = g_strdup( mode->private->description );
+	}
+
+	return( description );
+}
+
+/*
+ * ioption_get_pixbuf:
+ * @option: this #NAIOption instance.
+ *
+ * Returns: a new reference to the pixbuf associated to @option;
+ * which should later be g_object_unref() by the caller.
+ */
+static GdkPixbuf *
+ioption_get_pixbuf( const NAIOption *option )
 {
-	return( 1 );
+	GdkPixbuf *pixbuf;
+	NAImportMode *mode;
+
+	g_return_val_if_fail( NA_IS_IMPORT_MODE( option ), NULL );
+	mode = NA_IMPORT_MODE( option );
+	pixbuf = NULL;
+
+	if( !mode->private->dispose_has_run ){
+
+		pixbuf = mode->private->image ? g_object_ref( mode->private->image ) : NULL;
+	}
+
+	return( pixbuf );
 }
 
 static void
@@ -153,6 +312,80 @@ instance_init( GTypeInstance *instance, gpointer klass )
 }
 
 static void
+instance_get_property( GObject *object, guint property_id, GValue *value, GParamSpec *spec )
+{
+	NAImportMode *self;
+
+	g_return_if_fail( NA_IS_IMPORT_MODE( object ));
+	self = NA_IMPORT_MODE( object );
+
+	if( !self->private->dispose_has_run ){
+
+		switch( property_id ){
+			case NA_IMPORT_PROP_MODE_ID:
+				g_value_set_string( value, self->private->mode );
+				break;
+
+			case NA_IMPORT_PROP_LABEL_ID:
+				g_value_set_string( value, self->private->label );
+				break;
+
+			case NA_IMPORT_PROP_DESCRIPTION_ID:
+				g_value_set_string( value, self->private->description );
+				break;
+
+			case NA_IMPORT_PROP_IMAGE_ID:
+				g_value_set_object( value, self->private->image );
+				break;
+
+			default:
+				G_OBJECT_WARN_INVALID_PROPERTY_ID( object, property_id, spec );
+				break;
+		}
+	}
+}
+
+static void
+instance_set_property( GObject *object, guint property_id, const GValue *value, GParamSpec *spec )
+{
+	NAImportMode *self;
+
+	g_return_if_fail( NA_IS_IMPORT_MODE( object ));
+	self = NA_IMPORT_MODE( object );
+
+	if( !self->private->dispose_has_run ){
+
+		switch( property_id ){
+			case NA_IMPORT_PROP_MODE_ID:
+				g_free( self->private->mode );
+				self->private->mode = g_value_dup_string( value );
+				break;
+
+			case NA_IMPORT_PROP_LABEL_ID:
+				g_free( self->private->label );
+				self->private->label = g_value_dup_string( value );
+				break;
+
+			case NA_IMPORT_PROP_DESCRIPTION_ID:
+				g_free( self->private->description );
+				self->private->description = g_value_dup_string( value );
+				break;
+
+			case NA_IMPORT_PROP_IMAGE_ID:
+				if( self->private->image ){
+					g_object_unref( self->private->image );
+				}
+				self->private->image = g_value_get_object( value );
+				break;
+
+			default:
+				G_OBJECT_WARN_INVALID_PROPERTY_ID( object, property_id, spec );
+				break;
+		}
+	}
+}
+
+static void
 instance_dispose( GObject *object )
 {
 	static const gchar *thisfn = "na_import_mode_instance_dispose";
@@ -194,3 +427,15 @@ instance_finalize( GObject *object )
 		G_OBJECT_CLASS( st_parent_class )->finalize( object );
 	}
 }
+
+NAImportMode *
+na_import_mode_new( guint mode_id )
+{
+	NAImportMode *mode;
+
+	mode = g_object_new( NA_IMPORT_MODE_TYPE, NULL );
+
+	mode->private->id = mode_id;
+
+	return( mode );
+}
diff --git a/src/core/na-import-mode.h b/src/core/na-import-mode.h
index 64b0c63..bca0734 100644
--- a/src/core/na-import-mode.h
+++ b/src/core/na-import-mode.h
@@ -51,7 +51,7 @@ G_BEGIN_DECLS
 #define NA_IS_IMPORT_MODE_CLASS( c )  ( G_TYPE_CHECK_CLASS_TYPE(( c ), NA_IMPORT_MODE_TYPE ))
 #define NA_IMPORT_MODE_GET_CLASS( o ) ( G_TYPE_INSTANCE_GET_CLASS(( o ), NA_IMPORT_MODE_TYPE, NAImportModeClass ))
 
-typedef struct _NAImportModePrivate        NAImportModePrivate;
+typedef struct _NAImportModePrivate      NAImportModePrivate;
 
 typedef struct {
 	GObject              parent;
@@ -59,7 +59,7 @@ typedef struct {
 }
 	NAImportMode;
 
-typedef struct _NAImportModeClassPrivate   NAImportModeClassPrivate;
+typedef struct _NAImportModeClassPrivate NAImportModeClassPrivate;
 
 typedef struct {
 	GObjectClass              parent;
@@ -69,6 +69,16 @@ typedef struct {
 
 GType         na_import_mode_get_type( void );
 
+/* NAImportMode properties
+ *
+ */
+#define NA_IMPORT_PROP_MODE				"na-import-mode-prop-mode"
+#define NA_IMPORT_PROP_LABEL			"na-import-mode-prop-label"
+#define NA_IMPORT_PROP_DESCRIPTION		"na-import-mode-prop-description"
+#define NA_IMPORT_PROP_IMAGE			"na-import-mode-prop-image"
+
+NAImportMode *na_import_mode_new     ( guint mode_id );
+
 G_END_DECLS
 
 #endif /* __CORE_NA_IMPORT_MODE_H__ */
diff --git a/src/core/na-importer.c b/src/core/na-importer.c
index 0bebb9e..40fce5e 100644
--- a/src/core/na-importer.c
+++ b/src/core/na-importer.c
@@ -36,13 +36,67 @@
 #include <string.h>
 
 #include <api/na-core-utils.h>
+#include <api/na-iimporter.h>
 #include <api/na-object-api.h>
 
 #include "na-iprefs.h"
+#include "na-import-mode.h"
 #include "na-importer.h"
 #include "na-importer-ask.h"
 
 typedef struct {
+	guint  id;
+	gchar *mode;
+	gchar *label;
+	gchar *description;
+	gchar *image;
+}
+	NAImportModeStr;
+
+#define IMPORT_MODE_NOIMPORT_STR			"NoImport"
+#define IMPORT_MODE_RENUMBER_STR			"Renumber"
+#define IMPORT_MODE_OVERRIDE_STR			"Override"
+#define IMPORT_MODE_ASK_STR					"Ask"
+
+static NAImportModeStr st_import_modes[] = {
+
+	{ IMPORTER_MODE_NO_IMPORT,
+			IMPORT_MODE_NOIMPORT_STR,
+			N_( "Do _not import the item" ),
+			N_( "This used to be the historical behavior.\n" \
+				"The selected file will be marked as \"NOT OK\" in the Summary page.\n" \
+				"The existing item will not be modified." ),
+			"import-mode-no-import.png" },
+
+	{ IMPORTER_MODE_RENUMBER,
+			IMPORT_MODE_RENUMBER_STR,
+			N_( "Import the item, _allocating it a new identifier" ),
+			N_( "The selected file will be imported with a slightly modified label " \
+				"indicating the renumbering.\n" \
+				"The existing item will not be modified." ),
+			"import-mode-renumber.png" },
+
+	{ IMPORTER_MODE_OVERRIDE,
+			IMPORT_MODE_OVERRIDE_STR,
+			N_( "_Override the existing item" ),
+			N_( "The item found in the selected file will silently override the " \
+				"current one which has the same identifier.\n" \
+				"Be warned: this mode may be dangerous. You will not be prompted another time." ),
+			"import-mode-override.png" },
+
+	{ 0 }
+};
+
+static NAImportModeStr st_import_ask_mode = {
+
+	IMPORTER_MODE_ASK,
+			IMPORT_MODE_ASK_STR,
+			N_( "_Ask me" ),
+			N_( "You will be asked each time an imported ID already exists." ),
+			"import-mode-no-import.png"
+};
+
+typedef struct {
 	GList             *just_imported;
 	NAIImporterCheckFn check_fn;
 	void              *check_fn_data;
@@ -270,3 +324,99 @@ ask_user_for_mode( const NAObjectItem *importing, const NAObjectItem *existing,
 
 	return( mode );
 }
+
+/*
+ * na_importer_get_modes:
+ *
+ * Returns: the list of available import modes.
+ * This list should later be released by calling na_importer_free_modes();
+ */
+GList *
+na_importer_get_modes( void )
+{
+	GList *modes;
+	NAImportMode *mode;
+	guint i;
+	gint width, height;
+	gchar *fname;
+	GdkPixbuf *pixbuf;
+
+	modes = NULL;
+	pixbuf = NULL;
+
+	if( !gtk_icon_size_lookup( GTK_ICON_SIZE_DIALOG, &width, &height )){
+		width = height = 48;
+	}
+
+	for( i = 0 ; st_import_modes[i].id ; ++i ){
+		mode = na_import_mode_new( st_import_modes[i].id );
+		if( st_import_modes[i].image ){
+			fname = g_strdup_printf( "%s/%s", PKGDATADIR, st_import_modes[i].image );
+			pixbuf = gdk_pixbuf_new_from_file_at_size( fname, width, height, NULL );
+			g_free( fname );
+		}
+		g_object_set( G_OBJECT( mode ),
+				NA_IMPORT_PROP_MODE,        st_import_modes[i].mode,
+				NA_IMPORT_PROP_LABEL,       gettext( st_import_modes[i].label ),
+				NA_IMPORT_PROP_DESCRIPTION, gettext( st_import_modes[i].description ),
+				NA_IMPORT_PROP_IMAGE,       pixbuf,
+				NULL );
+		if( pixbuf ){
+			g_object_unref( pixbuf );
+		}
+		modes = g_list_prepend( modes, mode );
+	}
+
+	return( modes );
+}
+
+void
+na_importer_free_modes( GList *modes )
+{
+	g_list_foreach( modes, ( GFunc ) g_object_unref, NULL );
+	g_list_free( modes );
+}
+
+/*
+ * na_importer_get_ask_mode:
+ *
+ * Returns: a #NAImportMode object which describes the 'Ask me' option.
+ */
+NAIOption *
+na_importer_get_ask_mode( void )
+{
+	NAImportMode *mode;
+	gint width, height;
+	gchar *fname;
+	GdkPixbuf *pixbuf;
+
+	if( !gtk_icon_size_lookup( GTK_ICON_SIZE_DIALOG, &width, &height )){
+		width = height = 48;
+	}
+
+	mode = na_import_mode_new( st_import_ask_mode.id );
+	pixbuf = NULL;
+
+	if( st_import_ask_mode.image ){
+		fname = g_strdup_printf( "%s/%s", PKGDATADIR, st_import_ask_mode.image );
+		pixbuf = gdk_pixbuf_new_from_file_at_size( fname, width, height, NULL );
+		g_free( fname );
+	}
+	g_object_set( G_OBJECT( mode ),
+		NA_IMPORT_PROP_MODE,        st_import_ask_mode.mode,
+		NA_IMPORT_PROP_LABEL,       gettext( st_import_ask_mode.label ),
+		NA_IMPORT_PROP_DESCRIPTION, gettext( st_import_ask_mode.description ),
+		NA_IMPORT_PROP_IMAGE,       pixbuf,
+		NULL );
+	if( pixbuf ){
+		g_object_unref( pixbuf );
+	}
+
+	return( NA_IOPTION( mode ));
+}
+
+void
+na_importer_free_ask_mode( NAIOption *mode )
+{
+	g_object_unref( mode );
+}
diff --git a/src/core/na-importer.h b/src/core/na-importer.h
index f6589be..f9e29d4 100644
--- a/src/core/na-importer.h
+++ b/src/core/na-importer.h
@@ -45,7 +45,8 @@
 #include <api/na-iimporter.h>
 #include <api/na-object-item.h>
 
-#include <core/na-pivot.h>
+#include "na-ioption.h"
+#include "na-pivot.h"
 
 G_BEGIN_DECLS
 
@@ -70,9 +71,15 @@ typedef struct {
 }
 	NAImporterResult;
 
-guint na_importer_import_from_list( const NAPivot *pivot, NAImporterParms *parms );
+guint      na_importer_import_from_list( const NAPivot *pivot, NAImporterParms *parms );
 
-void  na_importer_free_result( NAImporterResult *result );
+void       na_importer_free_result     ( NAImporterResult *result );
+
+GList     *na_importer_get_modes       ( void );
+void       na_importer_free_modes      ( GList *modes );
+
+NAIOption *na_importer_get_ask_mode    ( void );
+void       na_importer_free_ask_mode   ( NAIOption *option );
 
 G_END_DECLS
 
diff --git a/src/core/na-ioptions-list.c b/src/core/na-ioptions-list.c
index 61244a2..2b4eeeb 100644
--- a/src/core/na-ioptions-list.c
+++ b/src/core/na-ioptions-list.c
@@ -58,6 +58,7 @@ enum {
 /* data associated to the container of the instance
  */
 #define IOPTIONS_LIST_DATA_EDITABLE			"ioptions-list-data-editable"
+#define IOPTIONS_LIST_DATA_FIRST_BUTTON		"ioptions-list-data-first-button"
 #define IOPTIONS_LIST_DATA_INITIALIZED		"ioptions-list-data-initialized"
 #define IOPTIONS_LIST_DATA_OPTION			"ioptions-list-data-option"
 #define IOPTIONS_LIST_DATA_OPTION_ID		"ioptions-list-data-option-id"
@@ -70,16 +71,18 @@ static GType        register_type( void );
 static void         interface_base_init( NAIOptionsListInterface *iface );
 static void         interface_base_finalize( NAIOptionsListInterface *iface );
 static guint        ioptions_list_get_version( const NAIOptionsList *instance );
-static void         ioptions_list_free_options( const NAIOptionsList *instance, GList *options );
-static void         ioptions_list_free_ask_option( const NAIOptionsList *instance, NAIOption *option );
+static void         ioptions_list_free_options( const NAIOptionsList *instance, GtkWidget *container_parent, GList *options );
+static void         ioptions_list_free_ask_option( const NAIOptionsList *instance, GtkWidget *container_parent, NAIOption *option );
 static GList       *options_list_get_options( const NAIOptionsList *instance, GtkWidget *container_parent );
-static void         options_list_free_options( const NAIOptionsList *instance, GList *options );
+static void         options_list_free_options( const NAIOptionsList *instance, GtkWidget *container_parent, GList *options );
 static NAIOption   *options_list_get_ask_option( const NAIOptionsList *instance, GtkWidget *container_parent );
-static void         options_list_free_ask_option( const NAIOptionsList *instance, NAIOption *ask_option );
-static gboolean     get_options_list_editable( GtkWidget *container_parent );
-static void         set_options_list_editable( GtkWidget *container_parent, gboolean editable );
+static void         options_list_free_ask_option( const NAIOptionsList *instance, GtkWidget *container_parent, NAIOption *ask_option );
 static gboolean     get_options_list_container_initialized( GtkWidget *container_parent );
 static void         set_options_list_container_initialized( GtkWidget *container_parent, gboolean initialized );
+static gboolean     get_options_list_editable( GtkWidget *container_parent );
+static void         set_options_list_editable( GtkWidget *container_parent, gboolean editable );
+static GtkWidget   *get_options_list_first_button( GtkWidget *container );
+static void         set_options_list_first_button( GtkWidget *container, GtkWidget *button );
 static gboolean     get_options_list_instance_initialized( const NAIOptionsList *instance );
 static void         set_options_list_instance_initialized( const NAIOptionsList *instance, gboolean initialized );
 static NAIOption   *get_options_list_option( GtkWidget *container );
@@ -198,22 +201,24 @@ ioptions_list_get_version( const NAIOptionsList *instance )
 }
 
 static void
-ioptions_list_free_options( const NAIOptionsList *instance, GList *options )
+ioptions_list_free_options( const NAIOptionsList *instance, GtkWidget *container_parent, GList *options )
 {
 	static const gchar *thisfn = "na_ioptions_list_free_options";
 
-	g_debug( "%s: instance=%p, options=%p", thisfn, ( void * ) instance, ( void * ) options );
+	g_debug( "%s: instance=%p, container_parent=%p, options=%p",
+			thisfn, ( void * ) instance, ( void * ) container_parent, ( void * ) options );
 
 	g_list_foreach( options, ( GFunc ) g_object_unref, NULL );
 	g_list_free( options );
 }
 
 static void
-ioptions_list_free_ask_option( const NAIOptionsList *instance, NAIOption *ask_option )
+ioptions_list_free_ask_option( const NAIOptionsList *instance, GtkWidget *container_parent, NAIOption *ask_option )
 {
 	static const gchar *thisfn = "na_ioptions_list_free_ask_option";
 
-	g_debug( "%s: instance=%p, ask_option=%p", thisfn, ( void * ) instance, ( void * ) ask_option );
+	g_debug( "%s: instance=%p, container_parent=%p, ask_option=%p",
+			thisfn, ( void * ) instance, ( void * ) container_parent, ( void * ) ask_option );
 
 	g_object_unref( ask_option );
 }
@@ -237,10 +242,10 @@ options_list_get_options( const NAIOptionsList *instance, GtkWidget *container_p
 }
 
 static void
-options_list_free_options( const NAIOptionsList *instance, GList *options )
+options_list_free_options( const NAIOptionsList *instance, GtkWidget *container_parent, GList *options )
 {
 	if( NA_IOPTIONS_LIST_GET_INTERFACE( instance )->free_options ){
-		NA_IOPTIONS_LIST_GET_INTERFACE( instance )->free_options( instance, options );
+		NA_IOPTIONS_LIST_GET_INTERFACE( instance )->free_options( instance, container_parent, options );
 	}
 }
 
@@ -259,10 +264,10 @@ options_list_get_ask_option( const NAIOptionsList *instance, GtkWidget *containe
 }
 
 static void
-options_list_free_ask_option( const NAIOptionsList *instance, NAIOption *ask_option )
+options_list_free_ask_option( const NAIOptionsList *instance, GtkWidget *container_parent, NAIOption *ask_option )
 {
 	if( NA_IOPTIONS_LIST_GET_INTERFACE( instance )->free_ask_option ){
-		NA_IOPTIONS_LIST_GET_INTERFACE( instance )->free_ask_option( instance, ask_option );
+		NA_IOPTIONS_LIST_GET_INTERFACE( instance )->free_ask_option( instance, container_parent, ask_option );
 	}
 }
 
@@ -273,6 +278,26 @@ options_list_free_ask_option( const NAIOptionsList *instance, NAIOption *ask_opt
  * - against the parent container: editable, sensitive, default and current options
  * - against each option container when drawing inside of a VBox: the corresponding option
  */
+/* whether the container has been initialized
+ *
+ * initializing the container so that its pseudo-properties are valid
+ */
+static gboolean
+get_options_list_container_initialized( GtkWidget *container_parent )
+{
+	gboolean initialized;
+
+	initialized = ( gboolean ) GPOINTER_TO_UINT( g_object_get_data( G_OBJECT( container_parent ), IOPTIONS_LIST_DATA_INITIALIZED ));
+
+	return( initialized );
+}
+
+static void
+set_options_list_container_initialized( GtkWidget *container_parent, gboolean initialized )
+{
+	g_object_set_data( G_OBJECT( container_parent ), IOPTIONS_LIST_DATA_INITIALIZED, GUINT_TO_POINTER( initialized ));
+}
+
 /* whether the selectable user's preference is editable
  * most of the time, a user's preference is not editable if it is set as mandatory,
  * or if the whole user's preference are not writable
@@ -293,24 +318,22 @@ set_options_list_editable( GtkWidget *container_parent, gboolean editable )
 	g_object_set_data( G_OBJECT( container_parent ), IOPTIONS_LIST_DATA_EDITABLE, GUINT_TO_POINTER( editable ));
 }
 
-/* whether the container has been initialized
- *
- * initializing the container so that its pseudo-properties are valid
+/* stores the first button of the radio button group
  */
-static gboolean
-get_options_list_container_initialized( GtkWidget *container_parent )
+static GtkWidget *
+get_options_list_first_button( GtkWidget *container_parent )
 {
-	gboolean initialized;
+	GtkWidget *button;
 
-	initialized = ( gboolean ) GPOINTER_TO_UINT( g_object_get_data( G_OBJECT( container_parent ), IOPTIONS_LIST_DATA_INITIALIZED ));
+	button = ( GtkWidget * ) g_object_get_data( G_OBJECT( container_parent ), IOPTIONS_LIST_DATA_FIRST_BUTTON );
 
-	return( initialized );
+	return( button );
 }
 
 static void
-set_options_list_container_initialized( GtkWidget *container_parent, gboolean initialized )
+set_options_list_first_button( GtkWidget *container_parent, GtkWidget *button )
 {
-	g_object_set_data( G_OBJECT( container_parent ), IOPTIONS_LIST_DATA_INITIALIZED, GUINT_TO_POINTER( initialized ));
+	g_object_set_data( G_OBJECT( container_parent ), IOPTIONS_LIST_DATA_FIRST_BUTTON, button );
 }
 
 /* whether the instance has been initialized
@@ -490,7 +513,11 @@ radio_button_create_group( const NAIOptionsList *instance, GtkWidget *container_
 	GList *options, *iopt;
 	NAIOption *option;
 
-	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
+	g_debug( "%s: instance=%p, container_parent=%p (%s), with_ask=%s",
+			thisfn,
+			( void * ) instance,
+			( void * ) container_parent, G_OBJECT_TYPE_NAME( container_parent ),
+			with_ask ? "True":"False" );
 
 	options = options_list_get_options( instance, container_parent );
 
@@ -500,14 +527,14 @@ radio_button_create_group( const NAIOptionsList *instance, GtkWidget *container_
 		radio_button_draw_vbox( container_parent, NA_IOPTION( iopt->data ));
 	}
 
-	options_list_free_options( instance, options );
+	options_list_free_options( instance, container_parent, options );
 
 	/* eventually add the 'Ask me' mode
 	 */
 	if( with_ask ){
 		option = options_list_get_ask_option( instance, container_parent );
 		radio_button_draw_vbox( container_parent, option );
-		options_list_free_ask_option( instance, option );
+		options_list_free_ask_option( instance, container_parent, option );
 	}
 }
 
@@ -533,10 +560,10 @@ radio_button_draw_vbox( GtkWidget *container_parent, const NAIOption *option )
 #if 0
 	static const gchar *thisfn = "na_ioptions_list_radio_button_draw_vbox";
 #endif
-	static GtkRadioButton *first_button = NULL;
 	GtkWidget *container_option;
 	gchar *description;
-	GtkRadioButton *button;
+	GtkWidget *button;
+	GtkWidget *first;
 	gchar *label;
 
 #if GTK_CHECK_VERSION( 3,2,0 )
@@ -554,24 +581,23 @@ radio_button_draw_vbox( GtkWidget *container_parent, const NAIOption *option )
 	/* first line/child is the radio button
 	 * first button of the group does not have the property set
 	 */
-	button = GTK_RADIO_BUTTON( gtk_radio_button_new( NULL ));
-	if( first_button ){
-		g_object_set( G_OBJECT( button ), "group", first_button, NULL );
+	label = na_ioption_get_label( option );
+	first = get_options_list_first_button( container_parent );
+	if( first ){
+		button = gtk_radio_button_new_with_label_from_widget( GTK_RADIO_BUTTON( first ), label );
 	} else {
-		first_button = button;
+		button = gtk_radio_button_new_with_label( NULL, label );
+		set_options_list_first_button( container_parent, button );
 	}
+	g_free( label );
+	gtk_button_set_use_underline( GTK_BUTTON( button ), TRUE );
 
 #if GTK_CHECK_VERSION( 3, 2, 0 )
 	gtk_grid_attach( GTK_GRID( container_option ), GTK_WIDGET( button ), 0, 0, 1, 1 );
 #else
-	gtk_box_pack_start( GTK_BOX( container_option ), GTK_WIDGET( button ), FALSE, TRUE, 0 );
+	gtk_box_pack_start( GTK_BOX( container_option ), button, FALSE, TRUE, 0 );
 #endif
 
-	label = na_ioption_get_label( option );
-	gtk_button_set_label( GTK_BUTTON( button ), label );
-	g_free( label );
-	gtk_button_set_use_underline( GTK_BUTTON( button ), TRUE );
-
 	set_options_list_option( container_option, g_object_ref(( gpointer ) option ));
 	g_object_weak_ref( G_OBJECT( container_option ), ( GWeakNotify ) radio_button_weak_notify, ( gpointer ) option );
 }
@@ -599,7 +625,10 @@ tree_view_create_model( const NAIOptionsList *instance, GtkWidget *container_par
 	GtkTreeSelection *selection;
 
 	g_return_if_fail( GTK_IS_TREE_VIEW( container_parent ));
-	g_debug( "%s: instance=%p, container_parent=%p", thisfn, ( void * ) instance, ( void * ) container_parent );
+	g_debug( "%s: instance=%p, container_parent=%p (%s)",
+			thisfn,
+			( void * ) instance,
+			( void * ) container_parent, G_OBJECT_TYPE_NAME( container_parent ));
 
 	model = gtk_list_store_new( N_COLUMN, GDK_TYPE_PIXBUF, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_OBJECT );
 	gtk_tree_view_set_model( GTK_TREE_VIEW( container_parent ), GTK_TREE_MODEL( model ));
@@ -638,7 +667,11 @@ tree_view_populate( const NAIOptionsList *instance, GtkWidget *container_parent,
 	GList *options, *iopt;
 
 	g_return_if_fail( GTK_IS_TREE_VIEW( container_parent ));
-	g_debug( "%s: instance=%p, container_parent=%p", thisfn, ( void * ) instance, ( void * ) container_parent );
+	g_debug( "%s: instance=%p, container_parent=%p (%s), with_ask=%s",
+			thisfn,
+			( void * ) instance,
+			( void * ) container_parent, G_OBJECT_TYPE_NAME( container_parent ),
+			with_ask ? "True":"False" );
 
 	model = gtk_tree_view_get_model( GTK_TREE_VIEW( container_parent ));
 	options = options_list_get_options( instance, container_parent );
@@ -648,12 +681,14 @@ tree_view_populate( const NAIOptionsList *instance, GtkWidget *container_parent,
 		tree_view_add_item( GTK_TREE_VIEW( container_parent ), model, option );
 	}
 
+	options_list_free_options( instance, container_parent, options );
+
 	/* eventually add the 'Ask me' mode
 	 */
 	if( with_ask ){
 		option = options_list_get_ask_option( instance, container_parent );
 		tree_view_add_item( GTK_TREE_VIEW( container_parent ), model, option );
-		options_list_free_ask_option( instance, option );
+		options_list_free_ask_option( instance, container_parent, option );
 	}
 }
 
@@ -768,6 +803,8 @@ radio_button_select_iter( GtkWidget *container_option, GtkWidget *container_pare
 		editable = get_options_list_editable( container_parent );
 		sensitive = get_options_list_sensitive( container_parent );
 		na_gtk_utils_radio_set_initial_state( GTK_RADIO_BUTTON( button ), NULL, NULL, editable, sensitive );
+		g_debug( "na_ioptions_list_radio_button_select_iter: container_parent=%p, set active button=%p",
+				( void * ) container_parent, ( void * ) button );
 	}
 
 	g_free( option_id );
@@ -914,6 +951,8 @@ radio_button_get_selected_iter( GtkWidget *container_option, GtkWidget *containe
 	if( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( button ))){
 		option = get_options_list_option( container_option );
 		set_options_list_option( container_parent, option );
+		g_debug( "na_ioptions_list_radio_button_get_selected_iter: container_parent=%p, active button=%p",
+				( void * ) container_parent, ( void * ) button );
 	}
 }
 
diff --git a/src/core/na-ioptions-list.h b/src/core/na-ioptions-list.h
index f1c94f1..1636fcf 100644
--- a/src/core/na-ioptions-list.h
+++ b/src/core/na-ioptions-list.h
@@ -79,7 +79,7 @@
  * method for an 'initialized' flag both at the instance level and at the
  * container level.
  *
- * Alternative may have be to have the na_ioptions_list_instance_init()
+ * Alternative might be be to have the na_ioptions_list_instance_init()
  * initialization interface method, which itself connect to #BaseWindow
  * signals. But this would not prevent of initializing for both managed
  * containers...
@@ -182,6 +182,7 @@ typedef struct {
 	/*
 	 * free_options:
 	 * @instance: the #NAIOptionsList instance of the implementation.
+	 * @container: the #GtkWidget which embeds the list of values.
 	 * @options: a #GList of #NAIoption objects as returned by get_options() method.
 	 *
 	 * Release the resources allocated to the @options list.
@@ -193,7 +194,7 @@ typedef struct {
 	 *
 	 * Since: 3.2
 	 */
-	void        ( *free_options )( const NAIOptionsList *instance, GList *options );
+	void        ( *free_options )( const NAIOptionsList *instance, GtkWidget *container, GList *options );
 
 	/*
 	 * get_ask_option:
@@ -212,6 +213,7 @@ typedef struct {
 	/*
 	 * free_ask_option:
 	 * @instance: the #NAIOptionsList instance of the implementation.
+	 * @container: the #GtkWidget which embeds the list of values.
 	 * @ask_option: the #NAIoption to be released.
 	 *
 	 * Release the resources allocated to the @ask_option instance.
@@ -222,7 +224,7 @@ typedef struct {
 	 *
 	 * Since: 3.2
 	 */
-	void        ( *free_ask_option )( const NAIOptionsList *instance, NAIOption *ask_option );
+	void        ( *free_ask_option )( const NAIOptionsList *instance, GtkWidget *container, NAIOption *ask_option );
 }
 	NAIOptionsListInterface;
 
diff --git a/src/core/na-settings.h b/src/core/na-settings.h
index 66c14a7..e47a219 100644
--- a/src/core/na-settings.h
+++ b/src/core/na-settings.h
@@ -139,11 +139,11 @@ G_BEGIN_DECLS
  */
 typedef void ( *NASettingsKeyCallback )( const gchar *group, const gchar *key, gconstpointer new_value, gboolean mandatory, void *user_data );
 
-void        na_settings_register_key_callback( const gchar *key, GCallback callback, gpointer user_data );
+void      na_settings_register_key_callback( const gchar *key, GCallback callback, gpointer user_data );
 
 /* signal sent when the value of a key changes
  */
-#define SETTINGS_SIGNAL_KEY_CHANGED				"settings-key-changed"
+#define SETTINGS_SIGNAL_KEY_CHANGED					"settings-key-changed"
 
 void      na_settings_free                 ( void );
 
diff --git a/src/nact/nact-assistant-export.c b/src/nact/nact-assistant-export.c
index 48908d0..db827dc 100644
--- a/src/nact/nact-assistant-export.c
+++ b/src/nact/nact-assistant-export.c
@@ -107,7 +107,7 @@ static GType           register_type( void );
 static void            class_init( NactAssistantExportClass *klass );
 static void            ioptions_list_iface_init( NAIOptionsListInterface *iface );
 static GList          *ioptions_list_get_formats( const NAIOptionsList *instance, GtkWidget *container );
-static void            ioptions_list_free_formats( const NAIOptionsList *instance, GList *formats );
+static void            ioptions_list_free_formats( const NAIOptionsList *instance, GtkWidget *container, GList *formats );
 static NAIOption      *ioptions_list_get_ask_option( const NAIOptionsList *instance, GtkWidget *container );
 static void            instance_init( GTypeInstance *instance, gpointer klass );
 static void            instance_constructed( GObject *instance );
@@ -226,7 +226,7 @@ ioptions_list_get_formats( const NAIOptionsList *instance, GtkWidget *container
 }
 
 static void
-ioptions_list_free_formats( const NAIOptionsList *instance, GList *formats )
+ioptions_list_free_formats( const NAIOptionsList *instance, GtkWidget *container, GList *formats )
 {
 	na_exporter_free_formats( formats );
 }
diff --git a/src/nact/nact-export-ask.c b/src/nact/nact-export-ask.c
index 57f3e98..5cf8f0b 100644
--- a/src/nact/nact-export-ask.c
+++ b/src/nact/nact-export-ask.c
@@ -76,7 +76,7 @@ static GType    register_type( void );
 static void     class_init( NactExportAskClass *klass );
 static void     ioptions_list_iface_init( NAIOptionsListInterface *iface );
 static GList   *ioptions_list_get_formats( const NAIOptionsList *instance, GtkWidget *container );
-static void     ioptions_list_free_formats( const NAIOptionsList *instance, GList *formats );
+static void     ioptions_list_free_formats( const NAIOptionsList *instance, GtkWidget *container, GList *formats );
 static void     instance_init( GTypeInstance *instance, gpointer klass );
 static void     instance_dispose( GObject *dialog );
 static void     instance_finalize( GObject *dialog );
@@ -179,7 +179,7 @@ ioptions_list_get_formats( const NAIOptionsList *instance, GtkWidget *container
 }
 
 static void
-ioptions_list_free_formats( const NAIOptionsList *instance, GList *formats )
+ioptions_list_free_formats( const NAIOptionsList *instance, GtkWidget *container, GList *formats )
 {
 	na_exporter_free_formats( formats );
 }
diff --git a/src/nact/nact-preferences-editor.c b/src/nact/nact-preferences-editor.c
index f134dd6..683de78 100644
--- a/src/nact/nact-preferences-editor.c
+++ b/src/nact/nact-preferences-editor.c
@@ -41,6 +41,8 @@
 #include <core/na-exporter.h>
 #include <core/na-export-format.h>
 #include <core/na-gtk-utils.h>
+#include <core/na-import-mode.h>
+#include <core/na-importer.h>
 #include <core/na-ioptions-list.h>
 #include <core/na-iprefs.h>
 #include <core/na-tokens.h>
@@ -127,8 +129,8 @@ static guint              st_last_tab       = 0;
 static GType      register_type( void );
 static void       class_init( NactPreferencesEditorClass *klass );
 static void       ioptions_list_iface_init( NAIOptionsListInterface *iface );
-static GList     *ioptions_list_get_formats( const NAIOptionsList *instance, GtkWidget *container );
-static void       ioptions_list_free_formats( const NAIOptionsList *instance, GList *formats );
+static GList     *ioptions_list_get_options( const NAIOptionsList *instance, GtkWidget *container );
+static void       ioptions_list_free_options( const NAIOptionsList *instance, GtkWidget *container, GList *options );
 static NAIOption *ioptions_list_get_ask_option( const NAIOptionsList *instance, GtkWidget *container );
 static void       instance_init( GTypeInstance *instance, gpointer klass );
 static void       instance_dispose( GObject *dialog );
@@ -163,12 +165,6 @@ static void       esc_confirm_on_toggled( GtkToggleButton *button, NactPreferenc
 static void       auto_save_setup( NactPreferencesEditor *editor );
 static void       auto_save_on_toggled( GtkToggleButton *button, NactPreferencesEditor *editor );
 static void       auto_save_period_on_change_value( GtkSpinButton *spinbutton, NactPreferencesEditor *editor );
-static void       import_mode_setup( NactPreferencesEditor *editor );
-static void       import_mode_on_ask_toggled( GtkToggleButton *togglebutton, NactPreferencesEditor *editor );
-static void       import_mode_on_override_toggled( GtkToggleButton *togglebutton, NactPreferencesEditor *editor );
-static void       import_mode_on_renumber_toggled( GtkToggleButton *togglebutton, NactPreferencesEditor *editor );
-static void       import_mode_on_noimport_toggled( GtkToggleButton *togglebutton, NactPreferencesEditor *editor );
-static void       import_mode_on_toggled( NactPreferencesEditor *editor, GtkToggleButton *togglebutton, GCallback cb, guint import_mode );
 static void       on_cancel_clicked( GtkButton *button, NactPreferencesEditor *editor );
 static void       on_ok_clicked( GtkButton *button, NactPreferencesEditor *editor );
 static void       on_dialog_ok( BaseDialog *dialog );
@@ -246,39 +242,88 @@ ioptions_list_iface_init( NAIOptionsListInterface *iface )
 
 	g_debug( "%s: iface=%p", thisfn, ( void * ) iface );
 
-	iface->get_options = ioptions_list_get_formats;
-	iface->free_options = ioptions_list_free_formats;
+	iface->get_options = ioptions_list_get_options;
+	iface->free_options = ioptions_list_free_options;
 	iface->get_ask_option = ioptions_list_get_ask_option;
 }
 
+/*
+ * ioptions_list_get_options, ioptions_list_free_options:
+ * manages import mode options or export format options depending of the
+ * current container
+ */
 static GList *
-ioptions_list_get_formats( const NAIOptionsList *instance, GtkWidget *container )
+ioptions_list_get_options( const NAIOptionsList *instance, GtkWidget *container )
 {
-	NactPreferencesEditor *window;
+	static const gchar *thisfn = "nact_preferences_editor_ioptions_list_get_options";
+	GList *options;
 	NactApplication *application;
 	NAUpdater *updater;
-	GList *formats;
 
 	g_return_val_if_fail( NACT_IS_PREFERENCES_EDITOR( instance ), NULL );
-	window = NACT_PREFERENCES_EDITOR( instance );
 
-	application = NACT_APPLICATION( base_window_get_application( BASE_WINDOW( window )));
-	updater = nact_application_get_updater( application );
-	formats = na_exporter_get_formats( NA_PIVOT( updater ));
+	options = NULL;
+
+	if( container == base_window_get_widget( BASE_WINDOW( instance ), "PreferencesExportFormatVBox" )){
+		application = NACT_APPLICATION( base_window_get_application( BASE_WINDOW( instance )));
+		updater = nact_application_get_updater( application );
+		options = na_exporter_get_formats( NA_PIVOT( updater ));
 
-	return( formats );
+	} else if( container == base_window_get_widget( BASE_WINDOW( instance ), "PreferencesImportModeVBox" )){
+		options = na_importer_get_modes();
+
+	} else {
+		g_warning( "%s: container=%p (%s): unmanaged container",
+				thisfn,
+				( void * ) container, G_OBJECT_TYPE_NAME( container ));
+	}
+
+	return( options );
 }
 
 static void
-ioptions_list_free_formats( const NAIOptionsList *instance, GList *formats )
+ioptions_list_free_options( const NAIOptionsList *instance, GtkWidget *container, GList *options )
 {
-	na_exporter_free_formats( formats );
+	static const gchar *thisfn = "nact_preferences_editor_ioptions_list_free_options";
+
+	g_return_if_fail( NACT_IS_PREFERENCES_EDITOR( instance ));
+
+	if( container == base_window_get_widget( BASE_WINDOW( instance ), "PreferencesExportFormatVBox" )){
+		na_exporter_free_formats( options );
+
+	} else if( container == base_window_get_widget( BASE_WINDOW( instance ), "PreferencesImportModeVBox" )){
+		na_importer_free_modes( options );
+
+	} else {
+		g_warning( "%s: container=%p (%s): unmanaged container",
+				thisfn,
+				( void * ) container, G_OBJECT_TYPE_NAME( container ));
+	}
 }
 
 static NAIOption *
 ioptions_list_get_ask_option( const NAIOptionsList *instance, GtkWidget *container )
 {
-	return( nact_export_format_get_ask_option());
+	static const gchar *thisfn = "nact_preferences_editor_ioptions_list_get_ask_option";
+	NAIOption *option;
+
+	g_return_val_if_fail( NACT_IS_PREFERENCES_EDITOR( instance ), NULL );
+
+	option = NULL;
+
+	if( container == base_window_get_widget( BASE_WINDOW( instance ), "PreferencesExportFormatVBox" )){
+		option = nact_export_format_get_ask_option();
+
+	} else if( container == base_window_get_widget( BASE_WINDOW( instance ), "PreferencesImportModeVBox" )){
+		option = na_importer_get_ask_mode();
+
+	} else {
+		g_warning( "%s: container=%p (%s): unmanaged container",
+				thisfn,
+				( void * ) container, G_OBJECT_TYPE_NAME( container ));
+	}
+
+	return( option );
 }
 
 static void
@@ -295,14 +340,23 @@ instance_init( GTypeInstance *instance, gpointer klass )
 
 	self->private = g_new0( NactPreferencesEditorPrivate, 1 );
 
-	base_window_signal_connect( BASE_WINDOW( instance ),
-			G_OBJECT( instance ), BASE_SIGNAL_INITIALIZE_GTK, G_CALLBACK( on_base_initialize_gtk_toplevel ));
+	base_window_signal_connect(
+			BASE_WINDOW( instance ),
+			G_OBJECT( instance ),
+			BASE_SIGNAL_INITIALIZE_GTK,
+			G_CALLBACK( on_base_initialize_gtk_toplevel ));
 
-	base_window_signal_connect( BASE_WINDOW( instance ),
-			G_OBJECT( instance ), BASE_SIGNAL_INITIALIZE_WINDOW, G_CALLBACK( on_base_initialize_base_window ));
+	base_window_signal_connect(
+			BASE_WINDOW( instance ),
+			G_OBJECT( instance ),
+			BASE_SIGNAL_INITIALIZE_WINDOW,
+			G_CALLBACK( on_base_initialize_base_window ));
 
-	base_window_signal_connect( BASE_WINDOW( instance ),
-			G_OBJECT( instance ), BASE_SIGNAL_ALL_WIDGETS_SHOWED, G_CALLBACK( on_base_all_widgets_showed));
+	base_window_signal_connect(
+			BASE_WINDOW( instance ),
+			G_OBJECT( instance ),
+			BASE_SIGNAL_ALL_WIDGETS_SHOWED,
+			G_CALLBACK( on_base_all_widgets_showed));
 
 	self->private->dispose_has_run = FALSE;
 }
@@ -411,6 +465,9 @@ on_base_initialize_gtk_toplevel( NactPreferencesEditor *editor, GtkDialog *tople
 
 		desktop_create_model( editor );
 
+		container = base_window_get_widget( BASE_WINDOW( editor ), "PreferencesImportModeVBox" );
+		na_ioptions_list_gtk_init( NA_IOPTIONS_LIST( editor ), container, TRUE );
+
 		container = base_window_get_widget( BASE_WINDOW( editor ), "PreferencesExportFormatVBox" );
 		na_ioptions_list_gtk_init( NA_IOPTIONS_LIST( editor ), container, TRUE );
 
@@ -430,10 +487,11 @@ static void
 on_base_initialize_base_window( NactPreferencesEditor *editor )
 {
 	static const gchar *thisfn = "nact_preferences_editor_on_base_initialize_base_window";
-	GQuark export_format;
 	GtkWidget *container;
 	GtkTreeView *listview;
 	GtkWidget *ok_button;
+	gchar *export_format;
+	gchar *import_mode;
 
 	g_return_if_fail( NACT_IS_PREFERENCES_EDITOR( editor ));
 
@@ -462,18 +520,27 @@ on_base_initialize_base_window( NactPreferencesEditor *editor )
 
 		/* fourth tab: import mode
 		 */
-		import_mode_setup( editor );
+		container = base_window_get_widget( BASE_WINDOW( editor ), "PreferencesImportModeVBox" );
+		import_mode = na_settings_get_string( NA_IPREFS_IMPORT_PREFERRED_MODE, NULL, &editor->private->import_mode_mandatory );
+		na_ioptions_list_set_editable(
+				NA_IOPTIONS_LIST( editor ), container,
+				!editor->private->import_mode_mandatory && !editor->private->preferences_locked );
+		na_ioptions_list_set_default(
+				NA_IOPTIONS_LIST( editor ), container,
+				import_mode );
+		g_free( import_mode );
 
 		/* fifth tab: export format
 		 */
 		container = base_window_get_widget( BASE_WINDOW( editor ), "PreferencesExportFormatVBox" );
-		export_format = na_iprefs_get_export_format( NA_IPREFS_EXPORT_PREFERRED_FORMAT, &editor->private->export_format_mandatory );
+		export_format = na_settings_get_string( NA_IPREFS_EXPORT_PREFERRED_FORMAT, NULL, &editor->private->export_format_mandatory );
 		na_ioptions_list_set_editable(
 				NA_IOPTIONS_LIST( editor ), container,
 				!editor->private->export_format_mandatory && !editor->private->preferences_locked );
 		na_ioptions_list_set_default(
 				NA_IOPTIONS_LIST( editor ), container,
-				g_quark_to_string( export_format ));
+				export_format );
+		g_free( export_format );
 
 		/* sixth tab: default schemes
 		 */
@@ -1038,100 +1105,6 @@ auto_save_period_on_change_value( GtkSpinButton *spinbutton, NactPreferencesEdit
 	editor->private->auto_save_period = gtk_spin_button_get_value_as_int( spinbutton );
 }
 
-/*
- * preferred import mode
- */
-static void
-import_mode_setup( NactPreferencesEditor *editor )
-{
-	gboolean editable;
-	GtkWidget *ask_button, *override_button, *renumber_button, *noimport_button;
-	GtkWidget *active_button;
-	GCallback active_handler;
-
-	editor->private->import_mode = na_iprefs_get_import_mode(
-			NA_IPREFS_IMPORT_PREFERRED_MODE, &editor->private->import_mode_mandatory );
-	editable = !editor->private->preferences_locked && !editor->private->import_mode_mandatory;
-
-	ask_button = base_window_get_widget( BASE_WINDOW( editor ), "PrefsAskButton" );
-	base_window_signal_connect( BASE_WINDOW( editor ), G_OBJECT( ask_button ), "toggled", G_CALLBACK( import_mode_on_ask_toggled ));
-
-	override_button = base_window_get_widget( BASE_WINDOW( editor ), "PrefsOverrideButton" );
-	base_window_signal_connect( BASE_WINDOW( editor ), G_OBJECT( override_button ), "toggled", G_CALLBACK( import_mode_on_override_toggled ));
-
-	renumber_button = base_window_get_widget( BASE_WINDOW( editor ), "PrefsRenumberButton" );
-	base_window_signal_connect( BASE_WINDOW( editor ), G_OBJECT( renumber_button ), "toggled", G_CALLBACK( import_mode_on_renumber_toggled ));
-
-	noimport_button = base_window_get_widget( BASE_WINDOW( editor ), "PrefsNoImportButton" );
-	base_window_signal_connect( BASE_WINDOW( editor ), G_OBJECT( noimport_button ), "toggled", G_CALLBACK( import_mode_on_noimport_toggled ));
-
-	switch( editor->private->import_mode ){
-		case IMPORTER_MODE_ASK:
-			active_button = ask_button;
-			active_handler = G_CALLBACK( import_mode_on_ask_toggled );
-			break;
-		case IMPORTER_MODE_OVERRIDE:
-			active_button = override_button;
-			active_handler = G_CALLBACK( import_mode_on_override_toggled );
-			break;
-		case IMPORTER_MODE_RENUMBER:
-			active_button = renumber_button;
-			active_handler = G_CALLBACK( import_mode_on_renumber_toggled );
-			break;
-		case IMPORTER_MODE_NO_IMPORT:
-		default:
-			active_button = noimport_button;
-			active_handler = G_CALLBACK( import_mode_on_noimport_toggled );
-			break;
-	}
-
-	base_gtk_utils_radio_set_initial_state(
-			GTK_RADIO_BUTTON( active_button ),
-			active_handler, editor, editable, !editor->private->preferences_locked );
-}
-
-static void
-import_mode_on_ask_toggled( GtkToggleButton *toggle_button, NactPreferencesEditor *editor )
-{
-	import_mode_on_toggled( editor, toggle_button, G_CALLBACK( import_mode_on_ask_toggled ), IMPORTER_MODE_ASK );
-}
-
-static void
-import_mode_on_override_toggled( GtkToggleButton *toggle_button, NactPreferencesEditor *editor )
-{
-	import_mode_on_toggled( editor, toggle_button, G_CALLBACK( import_mode_on_override_toggled ), IMPORTER_MODE_OVERRIDE );
-}
-
-static void
-import_mode_on_renumber_toggled( GtkToggleButton *toggle_button, NactPreferencesEditor *editor )
-{
-	import_mode_on_toggled( editor, toggle_button, G_CALLBACK( import_mode_on_renumber_toggled ), IMPORTER_MODE_RENUMBER );
-}
-
-static void
-import_mode_on_noimport_toggled( GtkToggleButton *toggle_button, NactPreferencesEditor *editor )
-{
-	import_mode_on_toggled( editor, toggle_button, G_CALLBACK( import_mode_on_noimport_toggled ), IMPORTER_MODE_NO_IMPORT );
-}
-
-static void
-import_mode_on_toggled( NactPreferencesEditor *editor, GtkToggleButton *toggle_button, GCallback cb, guint import_mode )
-{
-	gboolean editable;
-	gboolean active;
-
-	editable = ( gboolean ) GPOINTER_TO_UINT( g_object_get_data( G_OBJECT( toggle_button ), NA_TOGGLE_DATA_EDITABLE ));
-
-	if( editable ){
-		active = gtk_toggle_button_get_active( toggle_button );
-		if( active ){
-			editor->private->import_mode = import_mode;
-		}
-	} else {
-		base_gtk_utils_radio_reset_initial_state( GTK_RADIO_BUTTON( toggle_button ), cb );
-	}
-}
-
 static void
 on_cancel_clicked( GtkButton *button, NactPreferencesEditor *editor )
 {
@@ -1150,8 +1123,10 @@ static void
 on_dialog_ok( BaseDialog *dialog )
 {
 	NactPreferencesEditor *editor;
-	NAIOption *export_format;
 	GtkWidget *container;
+	NAIOption *option;
+	gchar *import_mode;
+	gchar *export_format;
 
 	g_return_if_fail( NACT_IS_PREFERENCES_EDITOR( dialog ));
 
@@ -1207,16 +1182,24 @@ on_dialog_ok( BaseDialog *dialog )
 		/* fourth tab: import mode
 		 */
 		if( !editor->private->import_mode_mandatory ){
-			na_iprefs_set_import_mode( NA_IPREFS_IMPORT_PREFERRED_MODE, editor->private->import_mode );
+			container = base_window_get_widget( BASE_WINDOW( editor ), "PreferencesImportModeVBox" );
+			option = na_ioptions_list_get_selected( NA_IOPTIONS_LIST( editor ), container );
+			g_return_if_fail( NA_IS_IMPORT_MODE( option ));
+			import_mode = na_ioption_get_id( option );
+			na_settings_set_string( NA_IPREFS_IMPORT_PREFERRED_MODE, import_mode );
+			g_free( import_mode );
 		}
 
 		/* fifth tab: export format
 		 */
 		if( !editor->private->export_format_mandatory ){
 			container = base_window_get_widget( BASE_WINDOW( editor ), "PreferencesExportFormatVBox" );
-			export_format = na_ioptions_list_get_selected( NA_IOPTIONS_LIST( editor ), container );
-			g_return_if_fail( NA_IS_EXPORT_FORMAT( export_format ));
-			na_iprefs_set_export_format( NA_IPREFS_EXPORT_PREFERRED_FORMAT, na_export_format_get_quark( NA_EXPORT_FORMAT( export_format )));
+			option = na_ioptions_list_get_selected( NA_IOPTIONS_LIST( editor ), container );
+			g_debug( "nact_preferences_editor_on_dialog_ok: option=%p", ( void * ) option );
+			g_return_if_fail( NA_IS_EXPORT_FORMAT( option ));
+			export_format = na_ioption_get_id( option );
+			na_settings_set_string( NA_IPREFS_EXPORT_PREFERRED_FORMAT, export_format );
+			g_free( export_format );
 		}
 
 		/* sixth tab: list of default schemes
diff --git a/src/nact/nact-preferences.ui b/src/nact/nact-preferences.ui
index ff81aa7..cfa16c6 100644
--- a/src/nact/nact-preferences.ui
+++ b/src/nact/nact-preferences.ui
@@ -1,61 +1,17 @@
-<?xml version="1.0" encoding="UTF-8"?>
+<?xml version="1.0"?>
 <interface>
   <requires lib="gtk+" version="2.20"/>
+  <!-- interface-naming-policy toplevel-contextual -->
   <object class="GtkDialog" id="PreferencesDialog">
-    <property name="can_focus">False</property>
     <property name="border_width">5</property>
     <property name="title" translatable="yes">Nautilus-Actions Preferences</property>
     <property name="modal">True</property>
     <property name="type_hint">dialog</property>
     <child internal-child="vbox">
-      <object class="GtkBox" id="dialog-vbox4">
+      <object class="GtkVBox" id="dialog-vbox4">
         <property name="visible">True</property>
-        <property name="can_focus">False</property>
         <property name="orientation">vertical</property>
         <property name="spacing">2</property>
-        <child internal-child="action_area">
-          <object class="GtkButtonBox" id="dialog-action_area4">
-            <property name="visible">True</property>
-            <property name="can_focus">False</property>
-            <property name="layout_style">end</property>
-            <child>
-              <object class="GtkButton" id="CancelButton">
-                <property name="label">gtk-cancel</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="OKButton">
-                <property name="label">gtk-ok</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="pack_type">end</property>
-            <property name="position">0</property>
-          </packing>
-        </child>
         <child>
           <object class="GtkNotebook" id="PreferencesNotebook">
             <property name="visible">True</property>
@@ -63,23 +19,19 @@
             <child>
               <object class="GtkVBox" id="vbox33">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <child>
                   <object class="GtkFrame" id="frame3">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
                     <property name="border_width">6</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkAlignment" id="alignment3">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="left_padding">12</property>
                         <child>
                           <object class="GtkVBox" id="vbox30">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
                             <property name="border_width">6</property>
                             <property name="homogeneous">True</property>
                             <child>
@@ -89,14 +41,11 @@
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
                                 <property name="tooltip_text" translatable="yes">Menus and actions will be displayed in the ascending alphabetical order of their label, both in the Nautilus context menu and in the NACT user interface.</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>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
@@ -107,14 +56,11 @@
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
                                 <property name="tooltip_text" translatable="yes">Menus and actions will be displayed in the descending alphabetical order of their label, both in the Nautilus context menu and in the NACT user interface.</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="draw_indicator">True</property>
                                 <property name="group">OrderAlphaAscButton</property>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
@@ -125,14 +71,11 @@
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
                                 <property name="tooltip_text" translatable="yes">Display order of menus and actions, both in the Nautilus context menu and in the NACT user interface, must be manually adjusted.</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="draw_indicator">True</property>
                                 <property name="group">OrderAlphaAscButton</property>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
                                 <property name="position">2</property>
                               </packing>
                             </child>
@@ -143,7 +86,6 @@
                     <child type="label">
                       <object class="GtkLabel" id="label1">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="xpad">5</property>
                         <property name="label" translatable="yes">&lt;b&gt;Items ordering&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
@@ -152,26 +94,22 @@
                   </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="border_width">6</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkAlignment" id="alignment1">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="left_padding">12</property>
                         <child>
                           <object class="GtkVBox" id="vbox17">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
                             <property name="border_width">6</property>
                             <property name="homogeneous">True</property>
                             <child>
@@ -181,13 +119,10 @@
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
                                 <property name="tooltip_text" translatable="yes">When this option is checked, menus and actions will actually be displayed as sub-items of a root 'Nautilus-Actions' menu in the Nautilus context menu.</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="draw_indicator">True</property>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
@@ -199,13 +134,10 @@
                                 <property name="receives_default">False</property>
                                 <property name="tooltip_text" translatable="yes">When this option is checked, an 'About Nautilus-Actions' item will be added to the root Nautilus-Actions menu in the Nautilus context menu.
 Note that this item will be displayed only if a unique menu is defined in the Nautilus context menu (e.g. when having checked the root 'Nautilus-Actions' menu option above).</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="draw_indicator">True</property>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
@@ -216,7 +148,6 @@ Note that this item will be displayed only if a unique menu is defined in the Na
                     <child type="label">
                       <object class="GtkLabel" id="label41">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="xpad">5</property>
                         <property name="label" translatable="yes">&lt;b&gt;Nautilus menu layout&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
@@ -225,7 +156,6 @@ Note that this item will be displayed only if a unique menu is defined in the Na
                   </object>
                   <packing>
                     <property name="expand">False</property>
-                    <property name="fill">True</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
@@ -234,7 +164,6 @@ Note that this item will be displayed only if a unique menu is defined in the Na
             <child type="tab">
               <object class="GtkLabel" id="label39">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="tooltip_text" translatable="yes">This tab lets you choose how the actions are ordered in the displayed list as well as in the Nautilus context menu. You may also choose here how actions will be displayed in the Nautilus context menu.</property>
                 <property name="label" translatable="yes">_Runtime preferences</property>
                 <property name="use_underline">True</property>
@@ -246,28 +175,23 @@ Note that this item will be displayed only if a unique menu is defined in the Na
             <child>
               <object class="GtkVBox" id="vbox700">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <child>
                   <object class="GtkFrame" id="frame710">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
                     <property name="border_width">6</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkAlignment" id="alignment710">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="left_padding">12</property>
                         <child>
                           <object class="GtkVBox" id="vbox711">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
                             <property name="border_width">6</property>
                             <child>
                               <object class="GtkTable" id="table711">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
                                 <property name="tooltip_text" translatable="yes">Specify here the command to run and keep opened a terminal.
 This command should include a 'COMMAND' keyword, which will be substituted at runtime with the action path and parameters.</property>
                                 <property name="n_rows">2</property>
@@ -277,7 +201,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                 <child>
                                   <object class="GtkLabel" id="label711">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
                                     <property name="xalign">1</property>
                                     <property name="label" translatable="yes">_Command pattern :</property>
                                     <property name="use_underline">True</property>
@@ -291,7 +214,7 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                   <object class="GtkEntry" id="TerminalPrefixEntry">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="invisible_char">â</property>
+                                    <property name="invisible_char">&#x25CF;</property>
                                   </object>
                                   <packing>
                                     <property name="left_attach">1</property>
@@ -302,7 +225,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                 <child>
                                   <object class="GtkLabel" id="TerminalPrefixExample">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
                                     <property name="use_markup">True</property>
                                   </object>
@@ -320,7 +242,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                               </object>
                               <packing>
                                 <property name="expand">False</property>
-                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
@@ -331,7 +252,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                     <child type="label">
                       <object class="GtkLabel" id="label710">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="xpad">5</property>
                         <property name="label" translatable="yes">&lt;b&gt;Execution in a terminal&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
@@ -340,38 +260,32 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                   </object>
                   <packing>
                     <property name="expand">False</property>
-                    <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkFrame" id="frame720">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
                     <property name="border_width">6</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkAlignment" id="alignment720">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="left_padding">12</property>
                         <child>
                           <object class="GtkVBox" id="vbox721">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
                             <property name="border_width">6</property>
                             <child>
                               <object class="GtkTable" id="table721">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
                                 <property name="n_columns">2</property>
                                 <property name="column_spacing">4</property>
                                 <property name="row_spacing">4</property>
                                 <child>
                                   <object class="GtkLabel" id="label721">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
                                     <property name="xalign">1</property>
                                     <property name="label" translatable="yes">Running _desktop environment :</property>
                                     <property name="use_underline">True</property>
@@ -384,7 +298,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                 <child>
                                   <object class="GtkComboBox" id="DesktopComboBox">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
                                   </object>
                                   <packing>
                                     <property name="left_attach">1</property>
@@ -394,8 +307,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                 </child>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
@@ -409,7 +320,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                     <child type="label">
                       <object class="GtkLabel" id="label720">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="xpad">5</property>
                         <property name="label" translatable="yes">&lt;b&gt;Desktop environment&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
@@ -418,7 +328,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                   </object>
                   <packing>
                     <property name="expand">False</property>
-                    <property name="fill">True</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
@@ -433,7 +342,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
             <child type="tab">
               <object class="GtkLabel" id="label700">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="tooltip_text" translatable="yes">This tab lets you specify parameters needed for. some execution modes.</property>
                 <property name="label" translatable="yes">Runtime E_xecution</property>
                 <property name="use_underline">True</property>
@@ -446,42 +354,34 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
             <child>
               <object class="GtkVBox" id="vbox34">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <child>
                   <object class="GtkFrame" id="frame2">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
                     <property name="border_width">6</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkAlignment" id="alignment2">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="left_padding">12</property>
                         <child>
                           <object class="GtkVBox" id="vbox25">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
                             <child>
                               <object class="GtkLabel" id="label45">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="ypad">6</property>
                                 <property name="label" translatable="yes">What to do when pasting or duplicating an item in the tree ?</property>
                                 <property name="wrap">True</property>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
                               <object class="GtkVBox" id="vbox27">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
                                 <property name="border_width">6</property>
                                 <child>
                                   <object class="GtkCheckButton" id="RelabelMenuButton">
@@ -490,13 +390,10 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
                                     <property name="tooltip_text" translatable="yes">When a menu is copied/pasted, or duplicated, the new menu will be relabelled as 'Copy of ...'.</property>
-                                    <property name="use_action_appearance">False</property>
                                     <property name="use_underline">True</property>
                                     <property name="draw_indicator">True</property>
                                   </object>
                                   <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
@@ -507,13 +404,10 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
                                     <property name="tooltip_text" translatable="yes">When an action is copied/pasted, or duplicated, the new action will be relabelled as 'Copy of ...'.</property>
-                                    <property name="use_action_appearance">False</property>
                                     <property name="use_underline">True</property>
                                     <property name="draw_indicator">True</property>
                                   </object>
                                   <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
@@ -524,20 +418,15 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">False</property>
                                     <property name="tooltip_text" translatable="yes">When a profile is copied/pasted, or duplicated, the new profile will be relabelled as 'Copy of ...'.</property>
-                                    <property name="use_action_appearance">False</property>
                                     <property name="use_underline">True</property>
                                     <property name="draw_indicator">True</property>
                                   </object>
                                   <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
                                     <property name="position">2</property>
                                   </packing>
                                 </child>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
@@ -548,7 +437,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                     <child type="label">
                       <object class="GtkLabel" id="label42">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="xpad">5</property>
                         <property name="label" translatable="yes">&lt;b&gt;Relabeling items&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
@@ -557,26 +445,22 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                   </object>
                   <packing>
                     <property name="expand">False</property>
-                    <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkFrame" id="frame6">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
                     <property name="border_width">6</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkAlignment" id="alignment6">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="left_padding">12</property>
                         <child>
                           <object class="GtkVBox" id="vbox43">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
                             <property name="border_width">6</property>
                             <child>
                               <object class="GtkCheckButton" id="EscCloseButton">
@@ -585,13 +469,10 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
                                 <property name="tooltip_text" translatable="yes">When this option is checked, the 'Escape' key will let you quit the current assistant. Else, quitting the assistant is only possible by hitting the 'Cancel' button.</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="draw_indicator">True</property>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
@@ -602,13 +483,10 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
                                 <property name="tooltip_text" translatable="yes">This option is only relevant when the 'Escape' key lets the user quit the assistant. When checked, the user will be prompted for a confirmation in order to help prevent erroneous hits of the Esc key.</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="draw_indicator">True</property>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
@@ -622,7 +500,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                     <child type="label">
                       <object class="GtkLabel" id="label16">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="xpad">5</property>
                         <property name="label" translatable="yes">&lt;b&gt;Assistants&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
@@ -631,26 +508,22 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                   </object>
                   <packing>
                     <property name="expand">False</property>
-                    <property name="fill">True</property>
                     <property name="position">1</property>
                   </packing>
                 </child>
                 <child>
                   <object class="GtkFrame" id="frame8">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
                     <property name="border_width">6</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkAlignment" id="alignment8">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="left_padding">12</property>
                         <child>
                           <object class="GtkVBox" id="AutoSaveVBox">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
                             <property name="border_width">6</property>
                             <child>
                               <object class="GtkCheckButton" id="AutoSaveCheckButton">
@@ -659,31 +532,26 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                 <property name="can_focus">True</property>
                                 <property name="receives_default">False</property>
                                 <property name="tooltip_text" translatable="yes">When this option is checked, pending modification will be periodically and automatically saved.</property>
-                                <property name="use_action_appearance">False</property>
                                 <property name="use_underline">True</property>
                                 <property name="draw_indicator">True</property>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
-                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
                               <object class="GtkHBox" id="hbox2">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
                                 <child>
                                   <object class="GtkLabel" id="AutoSaveLabel1">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
                                     <property name="xalign">1</property>
                                     <property name="xpad">4</property>
                                     <property name="label" translatable="yes">Periodicity :</property>
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
-                                    <property name="fill">True</property>
                                     <property name="position">0</property>
                                   </packing>
                                 </child>
@@ -691,7 +559,7 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                   <object class="GtkSpinButton" id="AutoSavePeriodicitySpinButton">
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
-                                    <property name="invisible_char">â</property>
+                                    <property name="invisible_char">&#x25CF;</property>
                                     <property name="width_chars">5</property>
                                     <property name="snap_to_ticks">True</property>
                                     <property name="numeric">True</property>
@@ -699,28 +567,23 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                                   </object>
                                   <packing>
                                     <property name="expand">False</property>
-                                    <property name="fill">True</property>
                                     <property name="position">1</property>
                                   </packing>
                                 </child>
                                 <child>
                                   <object class="GtkLabel" id="AutoSaveLabel2">
                                     <property name="visible">True</property>
-                                    <property name="can_focus">False</property>
                                     <property name="xalign">0</property>
                                     <property name="xpad">4</property>
                                     <property name="label" translatable="yes">minutes</property>
                                   </object>
                                   <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
                                     <property name="position">2</property>
                                   </packing>
                                 </child>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
-                                <property name="fill">True</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
@@ -731,7 +594,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                     <child type="label">
                       <object class="GtkLabel" id="label4">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="xpad">5</property>
                         <property name="label" translatable="yes">&lt;b&gt;Auto-save&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
@@ -740,7 +602,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
                   </object>
                   <packing>
                     <property name="expand">False</property>
-                    <property name="fill">True</property>
                     <property name="position">2</property>
                   </packing>
                 </child>
@@ -752,7 +613,6 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
             <child type="tab">
               <object class="GtkLabel" id="label40">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="tooltip_text" translatable="yes">This tab allows the user to choose custom preferences for the Nautilus-Actions Configuration Tool user interface.</property>
                 <property name="label" translatable="yes">_UI Preferences</property>
                 <property name="use_underline">True</property>
@@ -765,124 +625,45 @@ This command should include a 'COMMAND' keyword, which will be substituted at ru
             <child>
               <object class="GtkVBox" id="vbox35">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <child>
                   <object class="GtkFrame" id="frame4">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
                     <property name="border_width">6</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkAlignment" id="alignment4">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="left_padding">12</property>
                         <child>
                           <object class="GtkVBox" id="vbox13">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
+                            <property name="orientation">vertical</property>
                             <child>
                               <object class="GtkLabel" id="label8">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
                                 <property name="xalign">0</property>
                                 <property name="ypad">10</property>
                                 <property name="label" translatable="yes">What to do when an item, action or menu, selected to be imported, has the same identifier that a currently existing one ?</property>
                                 <property name="wrap">True</property>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
+                                <property name="expand">False</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
-                              <object class="GtkVBox" id="vbox32">
+                              <object class="GtkVBox" id="PreferencesImportModeVBox">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
                                 <property name="border_width">6</property>
+                                <property name="orientation">vertical</property>
                                 <property name="homogeneous">True</property>
                                 <child>
-                                  <object class="GtkRadioButton" id="PrefsNoImportButton">
-                                    <property name="label" translatable="yes">Do _not import the item</property>
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
-                                    <property name="tooltip_text" translatable="yes">This used to be the historical behavior.
-The selected item, action or menu, will not be imported and will be marked as "NOT OK" in the Summary page.
-The currently existing item will not be modified.</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>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">0</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkRadioButton" id="PrefsRenumberButton">
-                                    <property name="label" translatable="yes">_Renumber the imported item</property>
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
-                                    <property name="tooltip_text" translatable="yes">The selected item, action or menu, will be imported with a slightly modified label indicating the renumbering.
-The currently existing item will not be modified.</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="use_underline">True</property>
-                                    <property name="draw_indicator">True</property>
-                                    <property name="group">PrefsNoImportButton</property>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">1</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkRadioButton" id="PrefsOverrideButton">
-                                    <property name="label" translatable="yes">_Override the currently existing item with the imported one</property>
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
-                                    <property name="tooltip_text" translatable="yes">The selected item, action or menu, will silently override the currently existing one which has the same identifier.
-Be warned: this mode may be dangerous. You will not be prompted another time.</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="use_underline">True</property>
-                                    <property name="draw_indicator">True</property>
-                                    <property name="group">PrefsNoImportButton</property>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">2</property>
-                                  </packing>
-                                </child>
-                                <child>
-                                  <object class="GtkRadioButton" id="PrefsAskButton">
-                                    <property name="label" translatable="yes">_Ask me</property>
-                                    <property name="visible">True</property>
-                                    <property name="can_focus">True</property>
-                                    <property name="receives_default">False</property>
-                                    <property name="tooltip_text" translatable="yes">You will be asked each time a selected item has an already existing identifier.</property>
-                                    <property name="use_action_appearance">False</property>
-                                    <property name="use_underline">True</property>
-                                    <property name="draw_indicator">True</property>
-                                    <property name="group">PrefsNoImportButton</property>
-                                  </object>
-                                  <packing>
-                                    <property name="expand">True</property>
-                                    <property name="fill">True</property>
-                                    <property name="position">3</property>
-                                  </packing>
+                                  <placeholder/>
                                 </child>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
+                                <property name="expand">False</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
@@ -893,7 +674,6 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
                     <child type="label">
                       <object class="GtkLabel" id="label44">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="xpad">5</property>
                         <property name="label" translatable="yes">&lt;b&gt;Import mode&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
@@ -902,7 +682,6 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
                   </object>
                   <packing>
                     <property name="expand">False</property>
-                    <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
@@ -914,7 +693,6 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
             <child type="tab">
               <object class="GtkLabel" id="label48">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="tooltip_text" translatable="yes">This tab lets you decide on the default behavior of import operations.</property>
                 <property name="label" translatable="yes">_Import</property>
                 <property name="use_underline">True</property>
@@ -927,34 +705,46 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
             <child>
               <object class="GtkVBox" id="vbox41">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <child>
                   <object class="GtkFrame" id="frame5">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
                     <property name="border_width">6</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkAlignment" id="alignment5">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="left_padding">12</property>
                         <child>
                           <object class="GtkVBox" id="vbox15">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
+                            <property name="orientation">vertical</property>
+                            <child>
+                              <object class="GtkLabel" id="label5">
+                                <property name="visible">True</property>
+                                <property name="xalign">0</property>
+                                <property name="ypad">10</property>
+                                <property name="label" translatable="yes">What is your preferred export format ?</property>
+                                <property name="wrap">True</property>
+                              </object>
+                              <packing>
+                                <property name="expand">False</property>
+                                <property name="position">0</property>
+                              </packing>
+                            </child>
                             <child>
                               <object class="GtkVBox" id="PreferencesExportFormatVBox">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
                                 <property name="border_width">6</property>
+                                <property name="orientation">vertical</property>
                                 <property name="homogeneous">True</property>
+                                <child>
+                                  <placeholder/>
+                                </child>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
-                                <property name="fill">True</property>
-                                <property name="position">0</property>
+                                <property name="position">1</property>
                               </packing>
                             </child>
                           </object>
@@ -964,7 +754,6 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
                     <child type="label">
                       <object class="GtkLabel" id="label49">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="xpad">5</property>
                         <property name="label" translatable="yes">&lt;b&gt;Export format&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
@@ -973,7 +762,6 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
                   </object>
                   <packing>
                     <property name="expand">False</property>
-                    <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
@@ -985,7 +773,6 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
             <child type="tab">
               <object class="GtkLabel" id="label51">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="tooltip_text" translatable="yes">This tab lets you decide on the default behavior of export operations.</property>
                 <property name="label" translatable="yes">_Export</property>
                 <property name="use_underline">True</property>
@@ -998,18 +785,15 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
             <child>
               <object class="GtkVBox" id="vbox44">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <child>
                   <object class="GtkFrame" id="frame13">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
                     <property name="border_width">6</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkAlignment" id="alignment13">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="top_padding">8</property>
                         <property name="bottom_padding">8</property>
                         <property name="left_padding">10</property>
@@ -1017,7 +801,6 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
                         <child>
                           <object class="GtkHBox" id="hbox10">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
                             <property name="spacing">6</property>
                             <child>
                               <object class="GtkScrolledWindow" id="scrolledwindow13">
@@ -1038,15 +821,12 @@ You can add a new scheme by clicking on the '+' button.</property>
                                 </child>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
                               <object class="GtkVBox" id="vbox29">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
                                 <property name="spacing">6</property>
                                 <child>
                                   <object class="GtkButton" id="AddSchemeButton">
@@ -1055,11 +835,9 @@ You can add a new scheme by clicking on the '+' button.</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">True</property>
                                     <property name="tooltip_text" translatable="yes">Click to add a new default scheme.</property>
-                                    <property name="use_action_appearance">False</property>
                                     <child>
                                       <object class="GtkImage" id="image16">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
                                         <property name="stock">gtk-add</property>
                                       </object>
                                     </child>
@@ -1077,11 +855,9 @@ You can add a new scheme by clicking on the '+' button.</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">True</property>
                                     <property name="tooltip_text" translatable="yes">Click to remove the selected default scheme.</property>
-                                    <property name="use_action_appearance">False</property>
                                     <child>
                                       <object class="GtkImage" id="image17">
                                         <property name="visible">True</property>
-                                        <property name="can_focus">False</property>
                                         <property name="stock">gtk-remove</property>
                                       </object>
                                     </child>
@@ -1095,7 +871,6 @@ You can add a new scheme by clicking on the '+' button.</property>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
-                                <property name="fill">True</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
@@ -1106,7 +881,6 @@ You can add a new scheme by clicking on the '+' button.</property>
                     <child type="label">
                       <object class="GtkLabel" id="label55">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="xpad">5</property>
                         <property name="label" translatable="yes">&lt;b&gt;Default schemes&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
@@ -1114,8 +888,6 @@ You can add a new scheme by clicking on the '+' button.</property>
                     </child>
                   </object>
                   <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
@@ -1127,7 +899,6 @@ You can add a new scheme by clicking on the '+' button.</property>
             <child type="tab">
               <object class="GtkLabel" id="label2">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="tooltip_text" translatable="yes">This tab lets you decide which schemes are proposed by default when editing advanced conditions for an item.</property>
                 <property name="label" translatable="yes">_Schemes</property>
                 <property name="use_underline">True</property>
@@ -1140,18 +911,15 @@ You can add a new scheme by clicking on the '+' button.</property>
             <child>
               <object class="GtkVBox" id="vbox1">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <child>
                   <object class="GtkFrame" id="frame7">
                     <property name="visible">True</property>
-                    <property name="can_focus">False</property>
                     <property name="border_width">6</property>
                     <property name="label_xalign">0</property>
                     <property name="shadow_type">in</property>
                     <child>
                       <object class="GtkAlignment" id="alignment7">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="top_padding">8</property>
                         <property name="bottom_padding">8</property>
                         <property name="left_padding">10</property>
@@ -1159,7 +927,6 @@ You can add a new scheme by clicking on the '+' button.</property>
                         <child>
                           <object class="GtkHBox" id="hbox1">
                             <property name="visible">True</property>
-                            <property name="can_focus">False</property>
                             <property name="spacing">6</property>
                             <child>
                               <object class="GtkScrolledWindow" id="scrolledwindow7">
@@ -1178,15 +945,12 @@ You can add a new scheme by clicking on the '+' button.</property>
                                 </child>
                               </object>
                               <packing>
-                                <property name="expand">True</property>
-                                <property name="fill">True</property>
                                 <property name="position">0</property>
                               </packing>
                             </child>
                             <child>
                               <object class="GtkVBox" id="vbox2">
                                 <property name="visible">True</property>
-                                <property name="can_focus">False</property>
                                 <property name="spacing">6</property>
                                 <child>
                                   <object class="GtkButton" id="ProviderButtonUp">
@@ -1196,7 +960,6 @@ You can add a new scheme by clicking on the '+' button.</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">True</property>
                                     <property name="tooltip_text" translatable="yes">Move up the selected I/O provider in the order of priority when trying to write a new item.</property>
-                                    <property name="use_action_appearance">False</property>
                                     <property name="image">image</property>
                                     <property name="use_underline">True</property>
                                   </object>
@@ -1213,7 +976,6 @@ You can add a new scheme by clicking on the '+' button.</property>
                                     <property name="sensitive">False</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">True</property>
-                                    <property name="use_action_appearance">False</property>
                                     <property name="image">image3</property>
                                     <property name="use_underline">True</property>
                                   </object>
@@ -1226,7 +988,6 @@ You can add a new scheme by clicking on the '+' button.</property>
                               </object>
                               <packing>
                                 <property name="expand">False</property>
-                                <property name="fill">True</property>
                                 <property name="position">1</property>
                               </packing>
                             </child>
@@ -1237,7 +998,6 @@ You can add a new scheme by clicking on the '+' button.</property>
                     <child type="label">
                       <object class="GtkLabel" id="label3">
                         <property name="visible">True</property>
-                        <property name="can_focus">False</property>
                         <property name="xpad">5</property>
                         <property name="label" translatable="yes">&lt;b&gt;Activation and priority&lt;/b&gt;</property>
                         <property name="use_markup">True</property>
@@ -1245,8 +1005,6 @@ You can add a new scheme by clicking on the '+' button.</property>
                     </child>
                   </object>
                   <packing>
-                    <property name="expand">True</property>
-                    <property name="fill">True</property>
                     <property name="position">0</property>
                   </packing>
                 </child>
@@ -1258,7 +1016,6 @@ You can add a new scheme by clicking on the '+' button.</property>
             <child type="tab">
               <object class="GtkLabel" id="label43">
                 <property name="visible">True</property>
-                <property name="can_focus">False</property>
                 <property name="tooltip_text" translatable="yes">This tab lets you decide whether the I/O providers are enabled or not, and in which order they will be tried when writing a new item.</property>
                 <property name="label" translatable="yes">I/O _Providers</property>
                 <property name="use_underline">True</property>
@@ -1271,10 +1028,48 @@ You can add a new scheme by clicking on the '+' button.</property>
           </object>
           <packing>
             <property name="expand">False</property>
-            <property name="fill">True</property>
             <property name="position">1</property>
           </packing>
         </child>
+        <child internal-child="action_area">
+          <object class="GtkHButtonBox" id="dialog-action_area4">
+            <property name="visible">True</property>
+            <property name="layout_style">end</property>
+            <child>
+              <object class="GtkButton" id="CancelButton">
+                <property name="label">gtk-cancel</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</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="OKButton">
+                <property name="label">gtk-ok</property>
+                <property name="visible">True</property>
+                <property name="can_focus">True</property>
+                <property name="receives_default">True</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="pack_type">end</property>
+            <property name="position">0</property>
+          </packing>
+        </child>
       </object>
     </child>
     <action-widgets>
@@ -1284,18 +1079,15 @@ You can add a new scheme by clicking on the '+' button.</property>
   </object>
   <object class="GtkImage" id="image">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
     <property name="xalign">0</property>
     <property name="stock">gtk-go-up</property>
   </object>
   <object class="GtkImage" id="image1">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
     <property name="stock">gtk-missing-image</property>
   </object>
   <object class="GtkImage" id="image3">
     <property name="visible">True</property>
-    <property name="can_focus">False</property>
     <property name="stock">gtk-go-down</property>
   </object>
   <object class="GtkSizeGroup" id="RuntimeExecutionLabel">



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