[nautilus-actions] NactPreferencesEditor:ImportMode also implements NAIOptionsList interface
- From: Pierre Wieser <pwieser src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus-actions] NactPreferencesEditor:ImportMode also implements NAIOptionsList interface
- Date: Sun, 1 Jan 2012 16:33:38 +0000 (UTC)
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"><b>Items ordering</b></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"><b>Nautilus menu layout</b></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">●</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"><b>Execution in a terminal</b></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"><b>Desktop environment</b></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"><b>Relabeling items</b></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"><b>Assistants</b></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">●</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"><b>Auto-save</b></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"><b>Import mode</b></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"><b>Export format</b></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"><b>Default schemes</b></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"><b>Activation and priority</b></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]