[nautilus-actions] Define the four new tab interfaces



commit 3e5ece8ddedf4eec7345f90f394d37ec0e398295
Author: Pierre Wieser <pwieser trychlos org>
Date:   Mon May 31 07:01:57 2010 +0200

    Define the four new tab interfaces

 ChangeLog                                |   29 ++
 src/nact/nact-ibasenames-tab.c           |  710 ++----------------------------
 src/nact/nact-ibasenames-tab.h           |   42 +-
 src/nact/nact-icommand-tab.c             |    1 -
 src/nact/nact-ienvironment-tab.c         |  710 ++----------------------------
 src/nact/nact-ienvironment-tab.h         |   40 +-
 src/nact/nact-iexecution-tab.c           |  710 ++----------------------------
 src/nact/nact-iexecution-tab.h           |   40 +-
 src/nact/nact-ifolders-tab.c             |    3 +-
 src/nact/nact-imimetypes-tab.c           |  710 ++----------------------------
 src/nact/nact-imimetypes-tab.h           |   42 +-
 src/nact/nact-iproperties-tab.c          |    9 +-
 src/nact/nact-ischemes-tab.c             |    3 +-
 src/nact/nact-main-tab.h                 |    5 +-
 src/nact/nact-main-window.c              |  106 ++++-
 src/nact/nautilus-actions-config-tool.ui |  216 ++++++----
 16 files changed, 499 insertions(+), 2877 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 173b7de..507d93e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -6,6 +6,35 @@
 
 	* src/core/na-iabout.c: Update copyright notice.
 
+2010-05-30 Pierre Wieser <pwieser trychlos org>
+
+	* src/nact/nact-ibasenames-tab.c:
+	* src/nact/nact-ibasenames-tab.h: Define NactIBasenamesTabInterface interface.
+
+	* src/nact/nact-icommand-tab.c:
+	No more include removed	nact-iconditions-tab.h file.
+
+	* src/nact/nact-ienvironment-tab.c:
+	* src/nact/nact-ienvironment-tab.h: Define NactIEnvironmentTabInterface interface.
+
+	* src/nact/nact-iexecution-tab.c:
+	* src/nact/nact-iexecution-tab.h: Define NactIExecutionTabInterface interface.
+
+	* src/nact/nact-ifolders-tab.c (on_tab_updatable_selection_changed):
+	* src/nact/nact-ischemes-tab.c (on_tab_updatable_selection_changed):
+	tab_set_sensitive() returned value is not used here.
+
+	* src/nact/nact-imimetypes-tab.c:
+	* src/nact/nact-imimetypes-tab.h: Define NactIMimetypesTabInterface interface.
+
+	* src/nact/nact-iproperties-tab.c (on_tab_updatable_selection_changed):
+	Set a mnemonic in the tab label.
+
+	* src/nact/nact-main-tab.h:
+	* src/nact/nact-main-window.c: Add the four new tabs, remove the old one.
+
+	* src/nact/nautilus-actions-config-tool.ui: Fix some size groups.
+
 2010-05-29 Pierre Wieser <pwieser trychlos org>
 
 	* configure.ac: Define GSEAL_ENABLED.
diff --git a/src/nact/nact-ibasenames-tab.c b/src/nact/nact-ibasenames-tab.c
index 24401c8..0ae3255 100644
--- a/src/nact/nact-ibasenames-tab.c
+++ b/src/nact/nact-ibasenames-tab.c
@@ -32,75 +32,30 @@
 #include <config.h>
 #endif
 
-#include <glib/gi18n.h>
-#include <string.h>
-
-#include <api/na-core-utils.h>
 #include <api/na-object-api.h>
 
-#include <core/na-iprefs.h>
-
-#include "base-window.h"
-#include "base-iprefs.h"
-#include "nact-application.h"
-#include "nact-main-statusbar.h"
-#include "nact-gtk-utils.h"
-#include "nact-iprefs.h"
-#include "nact-iactions-list.h"
 #include "nact-main-tab.h"
-#include "nact-icommand-tab.h"
-#include "nact-iconditions-tab.h"
-#include "nact-ischemes-tab.h"
+#include "nact-ibasenames-tab.h"
 
 /* private interface data
  */
-struct NactICommandTabInterfacePrivate {
+struct NactIBasenamesTabInterfacePrivate {
 	void *empty;						/* so that gcc -pedantic is happy */
 };
 
-/* the GConf key used to read/write size and position of auxiliary dialogs
- */
-#define IPREFS_LEGEND_DIALOG				"icommand-legend-dialog"
-#define IPREFS_COMMAND_CHOOSER				"icommand-command-chooser"
-#define IPREFS_FOLDER_URI					"icommand-folder-uri"
-
-/* a data set in the LegendDialog GObject
- */
-#define ICOMMAND_TAB_LEGEND_VISIBLE			"nact-icommand-tab-legend-dialog-visible"
-#define ICOMMAND_TAB_STATUSBAR_CONTEXT		"nact-icommand-tab-statusbar-context"
-
 static gboolean st_initialized = FALSE;
 static gboolean st_finalized = FALSE;
 static gboolean st_on_selection_change = FALSE;
 
-static GType      register_type( void );
-static void       interface_base_init( NactICommandTabInterface *klass );
-static void       interface_base_finalize( NactICommandTabInterface *klass );
-
-static void       on_iactions_list_column_edited( NactICommandTab *instance, NAObject *object, gchar *text, gint column );
-static void       on_tab_updatable_selection_changed( NactICommandTab *instance, gint count_selected );
-static gboolean   tab_set_sensitive( NactICommandTab *instance );
-
-static void       check_for_label( NactICommandTab *instance, GtkEntry *entry, const gchar *label );
-static GtkWidget *get_label_entry( NactICommandTab *instance );
-static GtkButton *get_legend_button( NactICommandTab *instance );
-static GtkWindow *get_legend_dialog( NactICommandTab *instance );
-static GtkWidget *get_parameters_entry( NactICommandTab *instance );
-static GtkButton *get_path_button( NactICommandTab *instance );
-static GtkWidget *get_path_entry( NactICommandTab *instance );
-static void       legend_dialog_show( NactICommandTab *instance );
-static void       legend_dialog_hide( NactICommandTab *instance );
-static void       on_label_changed( GtkEntry *entry, NactICommandTab *instance );
-static void       on_legend_clicked( GtkButton *button, NactICommandTab *instance );
-static void       on_parameters_changed( GtkEntry *entry, NactICommandTab *instance );
-static void       on_path_browse( GtkButton *button, NactICommandTab *instance );
-static void       on_path_changed( GtkEntry *entry, NactICommandTab *instance );
-static gchar     *parse_parameters( NactICommandTab *instance );
-static void       set_label_label( NactICommandTab *instance, const gchar *color );
-static void       update_example_label( NactICommandTab *instance, NAObjectProfile *profile );
+static GType    register_type( void );
+static void     interface_base_init( NactIBasenamesTabInterface *klass );
+static void     interface_base_finalize( NactIBasenamesTabInterface *klass );
+
+static void     on_tab_updatable_selection_changed( NactIBasenamesTab *instance, gint count_selected );
+static gboolean tab_set_sensitive( NactIBasenamesTab *instance );
 
 GType
-nact_icommand_tab_get_type( void )
+nact_ibasenames_tab_get_type( void )
 {
 	static GType iface_type = 0;
 
@@ -114,11 +69,11 @@ nact_icommand_tab_get_type( void )
 static GType
 register_type( void )
 {
-	static const gchar *thisfn = "nact_icommand_tab_register_type";
+	static const gchar *thisfn = "nact_ibasenames_tab_register_type";
 	GType type;
 
 	static const GTypeInfo info = {
-		sizeof( NactICommandTabInterface ),
+		sizeof( NactIBasenamesTabInterface ),
 		( GBaseInitFunc ) interface_base_init,
 		( GBaseFinalizeFunc ) interface_base_finalize,
 		NULL,
@@ -131,7 +86,7 @@ register_type( void )
 
 	g_debug( "%s", thisfn );
 
-	type = g_type_register_static( G_TYPE_INTERFACE, "NactICommandTab", &info, 0 );
+	type = g_type_register_static( G_TYPE_INTERFACE, "NactIBasenamesTab", &info, 0 );
 
 	g_type_interface_add_prerequisite( type, BASE_WINDOW_TYPE );
 
@@ -139,24 +94,24 @@ register_type( void )
 }
 
 static void
-interface_base_init( NactICommandTabInterface *klass )
+interface_base_init( NactIBasenamesTabInterface *klass )
 {
-	static const gchar *thisfn = "nact_icommand_tab_interface_base_init";
+	static const gchar *thisfn = "nact_ibasenames_tab_interface_base_init";
 
 	if( !st_initialized ){
 
 		g_debug( "%s: klass=%p", thisfn, ( void * ) klass );
 
-		klass->private = g_new0( NactICommandTabInterfacePrivate, 1 );
+		klass->private = g_new0( NactIBasenamesTabInterfacePrivate, 1 );
 
 		st_initialized = TRUE;
 	}
 }
 
 static void
-interface_base_finalize( NactICommandTabInterface *klass )
+interface_base_finalize( NactIBasenamesTabInterface *klass )
 {
-	static const gchar *thisfn = "nact_icommand_tab_interface_base_finalize";
+	static const gchar *thisfn = "nact_ibasenames_tab_interface_base_finalize";
 
 	if( st_initialized && !st_finalized ){
 
@@ -169,213 +124,98 @@ interface_base_finalize( NactICommandTabInterface *klass )
 }
 
 /**
- * nact_icommand_tab_initial_load:
- * @window: this #NactICommandTab instance.
+ * nact_ibasenames_tab_initial_load:
+ * @window: this #NactIBasenamesTab instance.
  *
  * Initializes the tab widget at initial load.
- *
- * The GConf preference keys used in this tab were misnamed from v1.11.1
- * up to and including v1.12.0. Starting with v1.12.1, these are migrated
- * here, so that the normal code only makes use of 'good' keys.
  */
 void
-nact_icommand_tab_initial_load_toplevel( NactICommandTab *instance )
+nact_ibasenames_tab_initial_load_toplevel( NactIBasenamesTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_initial_load_toplevel";
+	static const gchar *thisfn = "nact_ibasenames_tab_initial_load_toplevel";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IBASENAMES_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
-
-		nact_iprefs_migrate_key( BASE_WINDOW( instance ), "iconditions-legend-dialog", IPREFS_LEGEND_DIALOG );
-		nact_iprefs_migrate_key( BASE_WINDOW( instance ), "iconditions-command-chooser", IPREFS_COMMAND_CHOOSER );
-		nact_iprefs_migrate_key( BASE_WINDOW( instance ), "iconditions-folder-uri", IPREFS_FOLDER_URI );
 	}
 }
 
 /**
- * nact_icommand_tab_runtime_init:
- * @window: this #NactICommandTab instance.
+ * nact_ibasenames_tab_runtime_init:
+ * @window: this #NactIBasenamesTab instance.
  *
  * Initializes the tab widget at each time the widget will be displayed.
  * Connect signals and setup runtime values.
  */
 void
-nact_icommand_tab_runtime_init_toplevel( NactICommandTab *instance )
+nact_ibasenames_tab_runtime_init_toplevel( NactIBasenamesTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_runtime_init_toplevel";
-	GtkWidget *label_entry, *path_entry, *parameters_entry;
-	GtkButton *path_button, *legend_button;
+	static const gchar *thisfn = "nact_ibasenames_tab_runtime_init_toplevel";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IBASENAMES_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
 
-		label_entry = get_label_entry( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( label_entry ),
-				"changed",
-				G_CALLBACK( on_label_changed ));
-
-		path_entry = get_path_entry( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( path_entry ),
-				"changed",
-				G_CALLBACK( on_path_changed ));
-
-		path_button = get_path_button( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( path_button ),
-				"clicked",
-				G_CALLBACK( on_path_browse ));
-
-		parameters_entry = get_parameters_entry( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( parameters_entry ),
-				"changed",
-				G_CALLBACK( on_parameters_changed ));
-
-		legend_button = get_legend_button( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( legend_button ),
-				"clicked",
-				G_CALLBACK( on_legend_clicked ));
-
 		base_window_signal_connect(
 				BASE_WINDOW( instance ),
 				G_OBJECT( instance ),
 				MAIN_WINDOW_SIGNAL_SELECTION_CHANGED,
 				G_CALLBACK( on_tab_updatable_selection_changed ));
-
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( instance ),
-				IACTIONS_LIST_SIGNAL_COLUMN_EDITED,
-				G_CALLBACK( on_iactions_list_column_edited ));
 	}
 }
 
 void
-nact_icommand_tab_all_widgets_showed( NactICommandTab *instance )
+nact_ibasenames_tab_all_widgets_showed( NactIBasenamesTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_all_widgets_showed";
+	static const gchar *thisfn = "nact_ibasenames_tab_all_widgets_showed";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IBASENAMES_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
 	}
 }
 
 /**
- * nact_icommand_tab_dispose:
- * @window: this #NactICommandTab instance.
+ * nact_ibasenames_tab_dispose:
+ * @window: this #NactIBasenamesTab instance.
  *
  * Called at instance_dispose time.
  */
 void
-nact_icommand_tab_dispose( NactICommandTab *instance )
+nact_ibasenames_tab_dispose( NactIBasenamesTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_dispose";
+	static const gchar *thisfn = "nact_ibasenames_tab_dispose";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IBASENAMES_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
-		legend_dialog_hide( instance );
 	}
 }
 
 static void
-on_iactions_list_column_edited( NactICommandTab *instance, NAObject *object, gchar *text, gint column )
+on_tab_updatable_selection_changed( NactIBasenamesTab *instance, gint count_selected )
 {
-	GtkWidget *label_widget;
-
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
-
-	if( st_initialized && !st_finalized ){
-
-		if( NA_IS_OBJECT_PROFILE( object )){
-			label_widget = get_label_entry( instance );
-			gtk_entry_set_text( GTK_ENTRY( label_widget ), text );
-		}
-	}
-}
-
-static void
-on_tab_updatable_selection_changed( NactICommandTab *instance, gint count_selected )
-{
-	static const gchar *thisfn = "nact_icommand_tab_on_tab_updatable_selection_changed";
-	NAObjectItem *item;
-	NAObjectProfile *profile;
-	gboolean enable_tab;
-	GtkWidget *label_entry, *path_entry, *parameters_entry;
-	gchar *label, *path, *parameters;
-	gboolean editable;
-	GtkButton *path_button;
-	GtkButton *legend_button;
+	static const gchar *thisfn = "nact_ibasenames_tab_on_tab_updatable_selection_changed";
 
 	g_debug( "%s: instance=%p, count_selected=%d", thisfn, ( void * ) instance, count_selected );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IBASENAMES_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
 
 		st_on_selection_change = TRUE;
 
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_ACTION, &item,
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &profile,
-				TAB_UPDATABLE_PROP_EDITABLE, &editable,
-				NULL );
-
-		enable_tab = tab_set_sensitive( instance );
-
-		label_entry = get_label_entry( instance );
-		label = profile ? na_object_get_label( profile ) : g_strdup( "" );
-		label = label ? label : g_strdup( "" );
-		gtk_entry_set_text( GTK_ENTRY( label_entry ), label );
-		check_for_label( instance, GTK_ENTRY( label_entry ), label );
-		g_free( label );
-		gtk_widget_set_sensitive( label_entry, profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( label_entry ), editable );
-
-		path_entry = get_path_entry( instance );
-		path = profile ? na_object_get_path( profile ) : g_strdup( "" );
-		path = path ? path : g_strdup( "" );
-		gtk_entry_set_text( GTK_ENTRY( path_entry ), path );
-		g_free( path );
-		gtk_widget_set_sensitive( path_entry, profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( path_entry ), editable );
-
-		path_button = get_path_button( instance );
-		gtk_widget_set_sensitive( GTK_WIDGET( path_button ), profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( path_button ), editable );
-
-		parameters_entry = get_parameters_entry( instance );
-		parameters = profile ? na_object_get_parameters( profile ) : g_strdup( "" );
-		parameters = parameters ? parameters : g_strdup( "" );
-		gtk_entry_set_text( GTK_ENTRY( parameters_entry ), parameters );
-		g_free( parameters );
-		gtk_widget_set_sensitive( parameters_entry, profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( parameters_entry ), editable );
-
-		legend_button = get_legend_button( instance );
-		gtk_widget_set_sensitive( GTK_WIDGET( legend_button ), profile != NULL );
+		tab_set_sensitive( instance );
 
 		st_on_selection_change = FALSE;
 	}
 }
 
 static gboolean
-tab_set_sensitive( NactICommandTab *instance )
+tab_set_sensitive( NactIBasenamesTab *instance )
 {
 	NAObjectProfile *profile;
 	gboolean enable_tab;
@@ -386,475 +226,7 @@ tab_set_sensitive( NactICommandTab *instance )
 			NULL );
 
 	enable_tab = ( profile != NULL );
-	nact_main_tab_enable_page( NACT_MAIN_WINDOW( instance ), TAB_COMMAND, enable_tab );
+	nact_main_tab_enable_page( NACT_MAIN_WINDOW( instance ), TAB_BASENAMES, enable_tab );
 
 	return( enable_tab );
 }
-
-static void
-check_for_label( NactICommandTab *instance, GtkEntry *entry, const gchar *label )
-{
-	NAObjectProfile *edited;
-
-	nact_main_statusbar_hide_status(
-			NACT_MAIN_WINDOW( instance ),
-			ICOMMAND_TAB_STATUSBAR_CONTEXT );
-
-	set_label_label( instance, "black" );
-
-	g_object_get(
-			G_OBJECT( instance ),
-			TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-			NULL );
-
-	if( edited && g_utf8_strlen( label, -1 ) == 0 ){
-
-		/* i18n: status bar message when the profile label is empty */
-		nact_main_statusbar_display_status(
-				NACT_MAIN_WINDOW( instance ),
-				ICOMMAND_TAB_STATUSBAR_CONTEXT,
-				_( "Caution: a label is mandatory for the profile." ));
-
-		set_label_label( instance, "red" );
-	}
-}
-
-static GtkWidget *
-get_label_entry( NactICommandTab *instance )
-{
-	return( base_window_get_widget( BASE_WINDOW( instance ), "ProfileLabelEntry" ));
-}
-
-static GtkButton *
-get_legend_button( NactICommandTab *instance )
-{
-	return( GTK_BUTTON( base_window_get_widget( BASE_WINDOW( instance ), "CommandLegendButton" )));
-}
-
-static GtkWindow *
-get_legend_dialog( NactICommandTab *instance )
-{
-	return( base_window_get_named_toplevel( BASE_WINDOW( instance ), "LegendDialog" ));
-}
-
-static GtkWidget *
-get_parameters_entry( NactICommandTab *instance )
-{
-	return( base_window_get_widget( BASE_WINDOW( instance ), "CommandParametersEntry" ));
-}
-
-static GtkButton *
-get_path_button( NactICommandTab *instance )
-{
-	return( GTK_BUTTON( base_window_get_widget( BASE_WINDOW( instance ), "CommandPathButton" )));
-}
-
-static GtkWidget *
-get_path_entry( NactICommandTab *instance )
-{
-	return( base_window_get_widget( BASE_WINDOW( instance ), "CommandPathEntry" ));
-}
-
-static void
-legend_dialog_hide( NactICommandTab *instance )
-{
-	GtkWindow *legend_dialog;
-	GtkButton *legend_button;
-	gboolean is_visible;
-
-	legend_dialog = get_legend_dialog( instance );
-	is_visible = ( gboolean ) GPOINTER_TO_INT(
-			g_object_get_data( G_OBJECT( legend_dialog ), ICOMMAND_TAB_LEGEND_VISIBLE ));
-
-	if( is_visible ){
-		g_assert( GTK_IS_WINDOW( legend_dialog ));
-		base_iprefs_save_named_window_position( BASE_WINDOW( instance ), legend_dialog, IPREFS_LEGEND_DIALOG );
-		gtk_widget_hide( GTK_WIDGET( legend_dialog ));
-
-		/* set the legend button state consistent for when the dialog is
-		 * hidden by another mean (eg. close the edit profile dialog)
-		 */
-		legend_button = get_legend_button( instance );
-		gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( legend_button ), FALSE );
-
-		g_object_set_data( G_OBJECT( legend_dialog ), ICOMMAND_TAB_LEGEND_VISIBLE, GINT_TO_POINTER( FALSE ));
-	}
-}
-
-static void
-legend_dialog_show( NactICommandTab *instance )
-{
-	GtkWindow *legend_dialog;
-	GtkWindow *toplevel;
-
-	legend_dialog = get_legend_dialog( instance );
-	gtk_window_set_deletable( legend_dialog, FALSE );
-
-	toplevel = base_window_get_toplevel( BASE_WINDOW( instance ));
-	gtk_window_set_transient_for( GTK_WINDOW( legend_dialog ), toplevel );
-
-	base_iprefs_position_named_window( BASE_WINDOW( instance ), legend_dialog, IPREFS_LEGEND_DIALOG );
-	gtk_widget_show( GTK_WIDGET( legend_dialog ));
-
-	g_object_set_data( G_OBJECT( legend_dialog ), ICOMMAND_TAB_LEGEND_VISIBLE, GINT_TO_POINTER( TRUE ));
-}
-
-static void
-on_label_changed( GtkEntry *entry, NactICommandTab *instance )
-{
-	NAObjectProfile *edited;
-	const gchar *label;
-
-	if( !st_on_selection_change ){
-
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-				NULL );
-
-		if( edited ){
-			label = gtk_entry_get_text( entry );
-			na_object_set_label( edited, label );
-			g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, TRUE );
-			check_for_label( instance, entry, label );
-		}
-	}
-}
-
-static void
-on_legend_clicked( GtkButton *button, NactICommandTab *instance )
-{
-	if( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( button ))){
-		legend_dialog_show( instance );
-
-	} else {
-		legend_dialog_hide( instance );
-	}
-}
-
-static void
-on_parameters_changed( GtkEntry *entry, NactICommandTab *instance )
-{
-	NAObjectProfile *edited;
-
-	if( !st_on_selection_change ){
-
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-				NULL );
-
-		if( edited ){
-			na_object_set_parameters( edited, gtk_entry_get_text( entry ));
-			g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
-			update_example_label( instance, edited );
-		}
-	}
-}
-
-static void
-on_path_browse( GtkButton *button, NactICommandTab *instance )
-{
-	gboolean set_current_location = FALSE;
-	gchar *uri = NULL;
-	NactApplication *application;
-	NAUpdater *updater;
-	GtkWindow *toplevel;
-	GtkWidget *dialog;
-	GtkWidget *path_entry;
-	const gchar *path;
-	gchar *filename;
-
-	application = NACT_APPLICATION( base_window_get_application( BASE_WINDOW( instance )));
-	updater = nact_application_get_updater( application );
-	toplevel = base_window_get_toplevel( BASE_WINDOW( instance ));
-
-	dialog = gtk_file_chooser_dialog_new(
-			_( "Choosing a command" ),
-			toplevel,
-			GTK_FILE_CHOOSER_ACTION_OPEN,
-			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-			GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
-			NULL
-			);
-
-	base_iprefs_position_named_window( BASE_WINDOW( instance ), GTK_WINDOW( dialog ), IPREFS_COMMAND_CHOOSER );
-
-	path_entry = get_path_entry( instance );
-	path = gtk_entry_get_text( GTK_ENTRY( path_entry ));
-
-	if( path && strlen( path )){
-		set_current_location = gtk_file_chooser_set_filename( GTK_FILE_CHOOSER( dialog ), path );
-
-	} else {
-		uri = na_iprefs_read_string( NA_IPREFS( updater ), IPREFS_FOLDER_URI, "file:///bin" );
-		gtk_file_chooser_set_current_folder_uri( GTK_FILE_CHOOSER( dialog ), uri );
-		g_free( uri );
-	}
-
-	if( gtk_dialog_run( GTK_DIALOG( dialog )) == GTK_RESPONSE_ACCEPT ){
-		filename = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( dialog ));
-		gtk_entry_set_text( GTK_ENTRY( path_entry ), filename );
-	    g_free (filename);
-	  }
-
-	uri = gtk_file_chooser_get_current_folder_uri( GTK_FILE_CHOOSER( dialog ));
-	nact_iprefs_write_string( BASE_WINDOW( instance ), IPREFS_FOLDER_URI, uri );
-	g_free( uri );
-
-	base_iprefs_save_named_window_position( BASE_WINDOW( instance ), GTK_WINDOW( dialog ), IPREFS_COMMAND_CHOOSER );
-
-	gtk_widget_destroy( dialog );
-}
-
-static void
-on_path_changed( GtkEntry *entry, NactICommandTab *instance )
-{
-	NAObjectProfile *edited;
-
-	if( !st_on_selection_change ){
-
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-				NULL );
-
-		if( edited ){
-
-			na_object_set_path( edited, gtk_entry_get_text( entry ));
-			g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
-			update_example_label( instance, edited );
-		}
-	}
-}
-
-/*
- * Valid parameters :
- *
- * %d : base dir of the (first) selected file(s)/folder(s)
- * %f : the name of the (firstà selected file/folder
- * %h : hostname of the (first) URI
- * %m : list of the basename of the selected files/directories separated by space.
- * %M : list of the selected files/directories with their complete path separated by space.
- * %p : port number of the (first) URI
- * %R : space-separated list of selected URIs
- * %s : scheme of the (first) URI
- * %u : (first) URI
- * %U : username of the (first) URI
- * %% : a percent sign
- */
-static gchar *
-parse_parameters( NactICommandTab *instance )
-{
-	GString *tmp_string = g_string_new( "" );
-
-	/* i18n notes: example strings for the command preview */
-	gchar *ex_path = _( "/path/to" );
-	gchar *ex_files[] = { N_( "file1.txt" ), N_( "file2.txt" ), NULL };
-	gchar *ex_dirs[] = { N_(" folder1" ), N_( "folder2" ), NULL };
-	gchar *ex_mixed[] = { N_(" file1.txt" ), N_( "folder1" ), NULL };
-	gchar *ex_scheme_default = "file";
-	gchar *ex_host_default = _( "test.example.net" );
-	gchar *ex_one_file = _( "file.txt" );
-	gchar *ex_one_dir = _( "folder" );
-	gchar *ex_port_default = _( "8080" );
-	gchar *ex_one = NULL;
-	gchar *ex_list = NULL;
-	gchar *ex_path_list = NULL;
-	gchar *ex_uri_file1 = _( "file:///path/to/file1.text" );
-	gchar *ex_uri_file2 = _( "file:///path/to/file2.text" );
-	gchar *ex_uri_folder1 = _( "file:///path/to/a/dir" );
-	gchar *ex_uri_folder2 = _( "file:///path/to/another/dir" );
-	gchar *ex_uri_list = NULL;
-	gchar *ex_scheme;
-	gchar *ex_host;
-	gboolean is_file, is_dir;
-	gboolean accept_multiple;
-	GSList *scheme_list;
-	guint iter_inc;
-
-	const gchar *command = gtk_entry_get_text( GTK_ENTRY( get_path_entry( instance )));
-	const gchar *param_template = gtk_entry_get_text( GTK_ENTRY( get_parameters_entry( instance )));
-
-	gchar *iter = g_strdup( param_template );
-	gchar *old_iter = iter;
-	gchar *tmp;
-	gchar *separator;
-	gchar *start;
-
-	g_string_append_printf( tmp_string, "%s ", command );
-
-	/*nact_iconditions_tab_get_isfiledir( NACT_ICONDITIONS_TAB( instance ), &is_file, &is_dir );
-	accept_multiple = nact_iconditions_tab_get_multiple( NACT_ICONDITIONS_TAB( instance ));*/
-	is_file = TRUE;
-	is_dir = TRUE;
-	accept_multiple = TRUE;
-
-	scheme_list = nact_ischemes_tab_get_schemes( NACT_ISCHEMES_TAB( instance ));
-
-	separator = g_strdup_printf( " %s/", ex_path );
-	start = g_strdup_printf( "%s/", ex_path );
-
-	if( accept_multiple ){
-		if( is_file && is_dir ){
-			ex_one = ex_files[0];
-			ex_list = na_core_utils_gstring_joinv( NULL, " ", ex_mixed );
-			ex_path_list = na_core_utils_gstring_joinv( start, separator, ex_mixed );
-			ex_uri_list = g_strjoin( " ", ex_uri_file1, ex_uri_folder1, NULL );
-
-		} else if( is_dir ){
-			ex_one = ex_dirs[0];
-			ex_list = na_core_utils_gstring_joinv( NULL, " ", ex_dirs );
-			ex_path_list = na_core_utils_gstring_joinv( start, separator, ex_dirs );
-			ex_uri_list = g_strjoin( " ", ex_uri_folder1, ex_uri_folder2, NULL );
-
-		} else if( is_file ){
-			ex_one = ex_files[0];
-			ex_list = na_core_utils_gstring_joinv( NULL, " ", ex_files );
-			ex_path_list = na_core_utils_gstring_joinv( start, separator, ex_files );
-			ex_uri_list = g_strjoin( " ", ex_uri_file1, ex_uri_file2, NULL );
-		}
-	} else {
-		if( is_dir && !is_file ){
-			ex_one = ex_one_dir;
-			ex_uri_list = g_strdup( ex_uri_folder1 );
-
-		} else {
-			ex_one = ex_one_file;
-			ex_uri_list = g_strdup( ex_uri_file1 );
-		}
-		ex_list = g_strdup( ex_one );
-		ex_path_list = g_strjoin( "/", ex_path, ex_one, NULL );
-	}
-
-	g_free (start);
-	g_free (separator);
-
-	if( scheme_list != NULL ){
-		ex_scheme = ( gchar * ) scheme_list->data;
-		if( g_ascii_strcasecmp( ex_scheme, "file" ) == 0 ){
-			if( g_slist_length( scheme_list ) > 1 ){
-				ex_scheme = ( gchar * ) scheme_list->next->data;
-				ex_host = ex_host_default;
-			} else {
-				ex_host = "";
-			}
-		} else {
-			ex_host = ex_host_default;
-		}
-	} else {
-		ex_scheme = ex_scheme_default;
-		ex_host = "";
-	}
-
-	while(( iter = g_strstr_len( iter, strlen( iter ), "%" ))){
-		tmp_string = g_string_append_len( tmp_string, old_iter, strlen( old_iter ) - strlen( iter ));
-		iter_inc = 1;
-		switch( iter[1] ){
-
-			case 'd': /* base dir of the (first) selected file(s)/folder(s) */
-				tmp_string = g_string_append( tmp_string, ex_path );
-				break;
-
-			case 'f': /* the basename of the (first) selected file/folder */
-				tmp_string = g_string_append( tmp_string, ex_one );
-				break;
-
-			case 'h': /* hostname of the (first) URI */
-				tmp_string = g_string_append( tmp_string, ex_host );
-				break;
-
-			case 'm': /* list of the basename of the selected files/directories separated by space */
-				tmp_string = g_string_append( tmp_string, ex_list );
-				break;
-
-			case 'M': /* list of the selected files/directories with their complete path separated by space. */
-				tmp_string = g_string_append( tmp_string, ex_path_list );
-				break;
-
-			case 'p': /* port number of the (first) URI */
-				tmp_string = g_string_append( tmp_string, ex_port_default );
-				break;
-
-			case 'R': /* space-separated list of selected URIs */
-				tmp_string = g_string_append( tmp_string, ex_uri_list );
-				break;
-
-			case 's': /* scheme of the (first) URI */
-				tmp_string = g_string_append( tmp_string, ex_scheme );
-				break;
-
-			case 'u': /* (first) URI */
-				tmp = g_strjoin( NULL, ex_scheme, "://", ex_path, "/", ex_one, NULL );
-				tmp_string = g_string_append( tmp_string, tmp );
-				g_free( tmp );
-				break;
-
-			case 'U': /* username of the GVfs URI */
-				tmp_string = g_string_append( tmp_string, "root" );
-				break;
-
-			case '%': /* a percent sign */
-				tmp_string = g_string_append_c( tmp_string, '%' );
-				break;
-
-			default:
-				iter_inc = 1;
-				break;
-		}
-		iter += iter_inc;				/* skip the % sign and the character after. */
-		old_iter = iter;				/* store the new start of the string */
-	}
-	tmp_string = g_string_append_len( tmp_string, old_iter, strlen( old_iter ));
-
-	na_core_utils_slist_free( scheme_list );
-
-	g_free( ex_list );
-	g_free( ex_path_list );
-	g_free( ex_uri_list );
-	g_free( iter );
-
-	return( g_string_free( tmp_string, FALSE ));
-}
-
-static void
-set_label_label( NactICommandTab *instance, const gchar *color_str )
-{
-	GtkWidget *label;
-	GdkColor color;
-
-	label = base_window_get_widget( BASE_WINDOW( instance ), "ProfileLabelLabel" );
-	gdk_color_parse( color_str, &color );
-	gtk_widget_modify_fg( label, GTK_STATE_NORMAL, &color );
-}
-
-static void
-update_example_label( NactICommandTab *instance, NAObjectProfile *profile )
-{
-	/*static const char *thisfn = "nact_iconditions_update_example_label";*/
-	gchar *newlabel;
-	gchar *parameters;
-	GtkWidget *example_widget;
-
-	example_widget = base_window_get_widget( BASE_WINDOW( instance ), "CommandExampleLabel" );
-
-	if( profile ){
-		parameters = parse_parameters( instance );
-		/*g_debug( "%s: parameters=%s", thisfn, parameters );*/
-
-		/* convert special xml chars (&, <, >,...) to avoid warnings
-		 * generated by Pango parser
-		 */
-		/* i18n: command-line example: e.g., /bin/ls file1.txt file2.txt */
-		newlabel = g_markup_printf_escaped(
-				"<i><b><span size=\"small\">%s %s</span></b></i>", _( "e.g.," ), parameters );
-
-		g_free( parameters );
-
-	} else {
-		newlabel = g_strdup( "" );
-	}
-
-	gtk_label_set_label( GTK_LABEL( example_widget ), newlabel );
-	g_free( newlabel );
-}
diff --git a/src/nact/nact-ibasenames-tab.h b/src/nact/nact-ibasenames-tab.h
index 122725d..342e15d 100644
--- a/src/nact/nact-ibasenames-tab.h
+++ b/src/nact/nact-ibasenames-tab.h
@@ -28,44 +28,44 @@
  *   ... and many others (see AUTHORS)
  */
 
-#ifndef __NACT_ICOMMAND_TAB_H__
-#define __NACT_ICOMMAND_TAB_H__
+#ifndef __NACT_IBASENAMES_TAB_H__
+#define __NACT_IBASENAMES_TAB_H__
 
 /**
- * SECTION: nact_icommand_tab
- * @short_description: #NactICommandTab interface declaration.
- * @include: nact/nact-icommand-tab.h
+ * SECTION: nact_ibasenames_tab
+ * @short_description: #NactIBasenamesTab interface declaration.
+ * @include: nact/nact-ibasenames-tab.h
  *
  * This interface implements all the widgets which define the
- * actual action to be executed.
+ * basenames-based conditions.
  */
 
 #include <glib-object.h>
 
 G_BEGIN_DECLS
 
-#define NACT_ICOMMAND_TAB_TYPE						( nact_icommand_tab_get_type())
-#define NACT_ICOMMAND_TAB( object )					( G_TYPE_CHECK_INSTANCE_CAST( object, NACT_ICOMMAND_TAB_TYPE, NactICommandTab ))
-#define NACT_IS_ICOMMAND_TAB( object )				( G_TYPE_CHECK_INSTANCE_TYPE( object, NACT_ICOMMAND_TAB_TYPE ))
-#define NACT_ICOMMAND_TAB_GET_INTERFACE( instance )	( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), NACT_ICOMMAND_TAB_TYPE, NactICommandTabInterface ))
+#define NACT_IBASENAMES_TAB_TYPE						( nact_ibasenames_tab_get_type())
+#define NACT_IBASENAMES_TAB( object )					( G_TYPE_CHECK_INSTANCE_CAST( object, NACT_IBASENAMES_TAB_TYPE, NactIBasenamesTab ))
+#define NACT_IS_IBASENAMES_TAB( object )				( G_TYPE_CHECK_INSTANCE_TYPE( object, NACT_IBASENAMES_TAB_TYPE ))
+#define NACT_IBASENAMES_TAB_GET_INTERFACE( instance )	( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), NACT_IBASENAMES_TAB_TYPE, NactIBasenamesTabInterface ))
 
-typedef struct NactICommandTab NactICommandTab;
+typedef struct NactIBasenamesTab                 NactIBasenamesTab;
 
-typedef struct NactICommandTabInterfacePrivate NactICommandTabInterfacePrivate;
+typedef struct NactIBasenamesTabInterfacePrivate NactIBasenamesTabInterfacePrivate;
 
 typedef struct {
-	GTypeInterface                   parent;
-	NactICommandTabInterfacePrivate *private;
+	GTypeInterface                     parent;
+	NactIBasenamesTabInterfacePrivate *private;
 }
-	NactICommandTabInterface;
+	NactIBasenamesTabInterface;
 
-GType    nact_icommand_tab_get_type( void );
+GType nact_ibasenames_tab_get_type( void );
 
-void     nact_icommand_tab_initial_load_toplevel( NactICommandTab *instance );
-void     nact_icommand_tab_runtime_init_toplevel( NactICommandTab *instance );
-void     nact_icommand_tab_all_widgets_showed( NactICommandTab *instance );
-void     nact_icommand_tab_dispose( NactICommandTab *instance );
+void  nact_ibasenames_tab_initial_load_toplevel( NactIBasenamesTab *instance );
+void  nact_ibasenames_tab_runtime_init_toplevel( NactIBasenamesTab *instance );
+void  nact_ibasenames_tab_all_widgets_showed   ( NactIBasenamesTab *instance );
+void  nact_ibasenames_tab_dispose              ( NactIBasenamesTab *instance );
 
 G_END_DECLS
 
-#endif /* __NACT_ICOMMAND_TAB_H__ */
+#endif /* __NACT_IBASENAMES_TAB_H__ */
diff --git a/src/nact/nact-icommand-tab.c b/src/nact/nact-icommand-tab.c
index 24401c8..ab39ed4 100644
--- a/src/nact/nact-icommand-tab.c
+++ b/src/nact/nact-icommand-tab.c
@@ -49,7 +49,6 @@
 #include "nact-iactions-list.h"
 #include "nact-main-tab.h"
 #include "nact-icommand-tab.h"
-#include "nact-iconditions-tab.h"
 #include "nact-ischemes-tab.h"
 
 /* private interface data
diff --git a/src/nact/nact-ienvironment-tab.c b/src/nact/nact-ienvironment-tab.c
index 24401c8..8951eef 100644
--- a/src/nact/nact-ienvironment-tab.c
+++ b/src/nact/nact-ienvironment-tab.c
@@ -32,75 +32,30 @@
 #include <config.h>
 #endif
 
-#include <glib/gi18n.h>
-#include <string.h>
-
-#include <api/na-core-utils.h>
 #include <api/na-object-api.h>
 
-#include <core/na-iprefs.h>
-
-#include "base-window.h"
-#include "base-iprefs.h"
-#include "nact-application.h"
-#include "nact-main-statusbar.h"
-#include "nact-gtk-utils.h"
-#include "nact-iprefs.h"
-#include "nact-iactions-list.h"
 #include "nact-main-tab.h"
-#include "nact-icommand-tab.h"
-#include "nact-iconditions-tab.h"
-#include "nact-ischemes-tab.h"
+#include "nact-ienvironment-tab.h"
 
 /* private interface data
  */
-struct NactICommandTabInterfacePrivate {
+struct NactIEnvironmentTabInterfacePrivate {
 	void *empty;						/* so that gcc -pedantic is happy */
 };
 
-/* the GConf key used to read/write size and position of auxiliary dialogs
- */
-#define IPREFS_LEGEND_DIALOG				"icommand-legend-dialog"
-#define IPREFS_COMMAND_CHOOSER				"icommand-command-chooser"
-#define IPREFS_FOLDER_URI					"icommand-folder-uri"
-
-/* a data set in the LegendDialog GObject
- */
-#define ICOMMAND_TAB_LEGEND_VISIBLE			"nact-icommand-tab-legend-dialog-visible"
-#define ICOMMAND_TAB_STATUSBAR_CONTEXT		"nact-icommand-tab-statusbar-context"
-
 static gboolean st_initialized = FALSE;
 static gboolean st_finalized = FALSE;
 static gboolean st_on_selection_change = FALSE;
 
-static GType      register_type( void );
-static void       interface_base_init( NactICommandTabInterface *klass );
-static void       interface_base_finalize( NactICommandTabInterface *klass );
-
-static void       on_iactions_list_column_edited( NactICommandTab *instance, NAObject *object, gchar *text, gint column );
-static void       on_tab_updatable_selection_changed( NactICommandTab *instance, gint count_selected );
-static gboolean   tab_set_sensitive( NactICommandTab *instance );
-
-static void       check_for_label( NactICommandTab *instance, GtkEntry *entry, const gchar *label );
-static GtkWidget *get_label_entry( NactICommandTab *instance );
-static GtkButton *get_legend_button( NactICommandTab *instance );
-static GtkWindow *get_legend_dialog( NactICommandTab *instance );
-static GtkWidget *get_parameters_entry( NactICommandTab *instance );
-static GtkButton *get_path_button( NactICommandTab *instance );
-static GtkWidget *get_path_entry( NactICommandTab *instance );
-static void       legend_dialog_show( NactICommandTab *instance );
-static void       legend_dialog_hide( NactICommandTab *instance );
-static void       on_label_changed( GtkEntry *entry, NactICommandTab *instance );
-static void       on_legend_clicked( GtkButton *button, NactICommandTab *instance );
-static void       on_parameters_changed( GtkEntry *entry, NactICommandTab *instance );
-static void       on_path_browse( GtkButton *button, NactICommandTab *instance );
-static void       on_path_changed( GtkEntry *entry, NactICommandTab *instance );
-static gchar     *parse_parameters( NactICommandTab *instance );
-static void       set_label_label( NactICommandTab *instance, const gchar *color );
-static void       update_example_label( NactICommandTab *instance, NAObjectProfile *profile );
+static GType    register_type( void );
+static void     interface_base_init( NactIEnvironmentTabInterface *klass );
+static void     interface_base_finalize( NactIEnvironmentTabInterface *klass );
+
+static void     on_tab_updatable_selection_changed( NactIEnvironmentTab *instance, gint count_selected );
+static gboolean tab_set_sensitive( NactIEnvironmentTab *instance );
 
 GType
-nact_icommand_tab_get_type( void )
+nact_ienvironment_tab_get_type( void )
 {
 	static GType iface_type = 0;
 
@@ -114,11 +69,11 @@ nact_icommand_tab_get_type( void )
 static GType
 register_type( void )
 {
-	static const gchar *thisfn = "nact_icommand_tab_register_type";
+	static const gchar *thisfn = "nact_ienvironment_tab_register_type";
 	GType type;
 
 	static const GTypeInfo info = {
-		sizeof( NactICommandTabInterface ),
+		sizeof( NactIEnvironmentTabInterface ),
 		( GBaseInitFunc ) interface_base_init,
 		( GBaseFinalizeFunc ) interface_base_finalize,
 		NULL,
@@ -131,7 +86,7 @@ register_type( void )
 
 	g_debug( "%s", thisfn );
 
-	type = g_type_register_static( G_TYPE_INTERFACE, "NactICommandTab", &info, 0 );
+	type = g_type_register_static( G_TYPE_INTERFACE, "NactIEnvironmentTab", &info, 0 );
 
 	g_type_interface_add_prerequisite( type, BASE_WINDOW_TYPE );
 
@@ -139,24 +94,24 @@ register_type( void )
 }
 
 static void
-interface_base_init( NactICommandTabInterface *klass )
+interface_base_init( NactIEnvironmentTabInterface *klass )
 {
-	static const gchar *thisfn = "nact_icommand_tab_interface_base_init";
+	static const gchar *thisfn = "nact_ienvironment_tab_interface_base_init";
 
 	if( !st_initialized ){
 
 		g_debug( "%s: klass=%p", thisfn, ( void * ) klass );
 
-		klass->private = g_new0( NactICommandTabInterfacePrivate, 1 );
+		klass->private = g_new0( NactIEnvironmentTabInterfacePrivate, 1 );
 
 		st_initialized = TRUE;
 	}
 }
 
 static void
-interface_base_finalize( NactICommandTabInterface *klass )
+interface_base_finalize( NactIEnvironmentTabInterface *klass )
 {
-	static const gchar *thisfn = "nact_icommand_tab_interface_base_finalize";
+	static const gchar *thisfn = "nact_ienvironment_tab_interface_base_finalize";
 
 	if( st_initialized && !st_finalized ){
 
@@ -169,213 +124,98 @@ interface_base_finalize( NactICommandTabInterface *klass )
 }
 
 /**
- * nact_icommand_tab_initial_load:
- * @window: this #NactICommandTab instance.
+ * nact_ienvironment_tab_initial_load:
+ * @window: this #NactIEnvironmentTab instance.
  *
  * Initializes the tab widget at initial load.
- *
- * The GConf preference keys used in this tab were misnamed from v1.11.1
- * up to and including v1.12.0. Starting with v1.12.1, these are migrated
- * here, so that the normal code only makes use of 'good' keys.
  */
 void
-nact_icommand_tab_initial_load_toplevel( NactICommandTab *instance )
+nact_ienvironment_tab_initial_load_toplevel( NactIEnvironmentTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_initial_load_toplevel";
+	static const gchar *thisfn = "nact_ienvironment_tab_initial_load_toplevel";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IENVIRONMENT_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
-
-		nact_iprefs_migrate_key( BASE_WINDOW( instance ), "iconditions-legend-dialog", IPREFS_LEGEND_DIALOG );
-		nact_iprefs_migrate_key( BASE_WINDOW( instance ), "iconditions-command-chooser", IPREFS_COMMAND_CHOOSER );
-		nact_iprefs_migrate_key( BASE_WINDOW( instance ), "iconditions-folder-uri", IPREFS_FOLDER_URI );
 	}
 }
 
 /**
- * nact_icommand_tab_runtime_init:
- * @window: this #NactICommandTab instance.
+ * nact_ienvironment_tab_runtime_init:
+ * @window: this #NactIEnvironmentTab instance.
  *
  * Initializes the tab widget at each time the widget will be displayed.
  * Connect signals and setup runtime values.
  */
 void
-nact_icommand_tab_runtime_init_toplevel( NactICommandTab *instance )
+nact_ienvironment_tab_runtime_init_toplevel( NactIEnvironmentTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_runtime_init_toplevel";
-	GtkWidget *label_entry, *path_entry, *parameters_entry;
-	GtkButton *path_button, *legend_button;
+	static const gchar *thisfn = "nact_ienvironment_tab_runtime_init_toplevel";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IENVIRONMENT_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
 
-		label_entry = get_label_entry( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( label_entry ),
-				"changed",
-				G_CALLBACK( on_label_changed ));
-
-		path_entry = get_path_entry( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( path_entry ),
-				"changed",
-				G_CALLBACK( on_path_changed ));
-
-		path_button = get_path_button( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( path_button ),
-				"clicked",
-				G_CALLBACK( on_path_browse ));
-
-		parameters_entry = get_parameters_entry( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( parameters_entry ),
-				"changed",
-				G_CALLBACK( on_parameters_changed ));
-
-		legend_button = get_legend_button( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( legend_button ),
-				"clicked",
-				G_CALLBACK( on_legend_clicked ));
-
 		base_window_signal_connect(
 				BASE_WINDOW( instance ),
 				G_OBJECT( instance ),
 				MAIN_WINDOW_SIGNAL_SELECTION_CHANGED,
 				G_CALLBACK( on_tab_updatable_selection_changed ));
-
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( instance ),
-				IACTIONS_LIST_SIGNAL_COLUMN_EDITED,
-				G_CALLBACK( on_iactions_list_column_edited ));
 	}
 }
 
 void
-nact_icommand_tab_all_widgets_showed( NactICommandTab *instance )
+nact_ienvironment_tab_all_widgets_showed( NactIEnvironmentTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_all_widgets_showed";
+	static const gchar *thisfn = "nact_ienvironment_tab_all_widgets_showed";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IENVIRONMENT_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
 	}
 }
 
 /**
- * nact_icommand_tab_dispose:
- * @window: this #NactICommandTab instance.
+ * nact_ienvironment_tab_dispose:
+ * @window: this #NactIEnvironmentTab instance.
  *
  * Called at instance_dispose time.
  */
 void
-nact_icommand_tab_dispose( NactICommandTab *instance )
+nact_ienvironment_tab_dispose( NactIEnvironmentTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_dispose";
+	static const gchar *thisfn = "nact_ienvironment_tab_dispose";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IENVIRONMENT_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
-		legend_dialog_hide( instance );
 	}
 }
 
 static void
-on_iactions_list_column_edited( NactICommandTab *instance, NAObject *object, gchar *text, gint column )
+on_tab_updatable_selection_changed( NactIEnvironmentTab *instance, gint count_selected )
 {
-	GtkWidget *label_widget;
-
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
-
-	if( st_initialized && !st_finalized ){
-
-		if( NA_IS_OBJECT_PROFILE( object )){
-			label_widget = get_label_entry( instance );
-			gtk_entry_set_text( GTK_ENTRY( label_widget ), text );
-		}
-	}
-}
-
-static void
-on_tab_updatable_selection_changed( NactICommandTab *instance, gint count_selected )
-{
-	static const gchar *thisfn = "nact_icommand_tab_on_tab_updatable_selection_changed";
-	NAObjectItem *item;
-	NAObjectProfile *profile;
-	gboolean enable_tab;
-	GtkWidget *label_entry, *path_entry, *parameters_entry;
-	gchar *label, *path, *parameters;
-	gboolean editable;
-	GtkButton *path_button;
-	GtkButton *legend_button;
+	static const gchar *thisfn = "nact_ienvironment_tab_on_tab_updatable_selection_changed";
 
 	g_debug( "%s: instance=%p, count_selected=%d", thisfn, ( void * ) instance, count_selected );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IENVIRONMENT_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
 
 		st_on_selection_change = TRUE;
 
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_ACTION, &item,
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &profile,
-				TAB_UPDATABLE_PROP_EDITABLE, &editable,
-				NULL );
-
-		enable_tab = tab_set_sensitive( instance );
-
-		label_entry = get_label_entry( instance );
-		label = profile ? na_object_get_label( profile ) : g_strdup( "" );
-		label = label ? label : g_strdup( "" );
-		gtk_entry_set_text( GTK_ENTRY( label_entry ), label );
-		check_for_label( instance, GTK_ENTRY( label_entry ), label );
-		g_free( label );
-		gtk_widget_set_sensitive( label_entry, profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( label_entry ), editable );
-
-		path_entry = get_path_entry( instance );
-		path = profile ? na_object_get_path( profile ) : g_strdup( "" );
-		path = path ? path : g_strdup( "" );
-		gtk_entry_set_text( GTK_ENTRY( path_entry ), path );
-		g_free( path );
-		gtk_widget_set_sensitive( path_entry, profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( path_entry ), editable );
-
-		path_button = get_path_button( instance );
-		gtk_widget_set_sensitive( GTK_WIDGET( path_button ), profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( path_button ), editable );
-
-		parameters_entry = get_parameters_entry( instance );
-		parameters = profile ? na_object_get_parameters( profile ) : g_strdup( "" );
-		parameters = parameters ? parameters : g_strdup( "" );
-		gtk_entry_set_text( GTK_ENTRY( parameters_entry ), parameters );
-		g_free( parameters );
-		gtk_widget_set_sensitive( parameters_entry, profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( parameters_entry ), editable );
-
-		legend_button = get_legend_button( instance );
-		gtk_widget_set_sensitive( GTK_WIDGET( legend_button ), profile != NULL );
+		tab_set_sensitive( instance );
 
 		st_on_selection_change = FALSE;
 	}
 }
 
 static gboolean
-tab_set_sensitive( NactICommandTab *instance )
+tab_set_sensitive( NactIEnvironmentTab *instance )
 {
 	NAObjectProfile *profile;
 	gboolean enable_tab;
@@ -386,475 +226,7 @@ tab_set_sensitive( NactICommandTab *instance )
 			NULL );
 
 	enable_tab = ( profile != NULL );
-	nact_main_tab_enable_page( NACT_MAIN_WINDOW( instance ), TAB_COMMAND, enable_tab );
+	nact_main_tab_enable_page( NACT_MAIN_WINDOW( instance ), TAB_ENVIRONMENT, enable_tab );
 
 	return( enable_tab );
 }
-
-static void
-check_for_label( NactICommandTab *instance, GtkEntry *entry, const gchar *label )
-{
-	NAObjectProfile *edited;
-
-	nact_main_statusbar_hide_status(
-			NACT_MAIN_WINDOW( instance ),
-			ICOMMAND_TAB_STATUSBAR_CONTEXT );
-
-	set_label_label( instance, "black" );
-
-	g_object_get(
-			G_OBJECT( instance ),
-			TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-			NULL );
-
-	if( edited && g_utf8_strlen( label, -1 ) == 0 ){
-
-		/* i18n: status bar message when the profile label is empty */
-		nact_main_statusbar_display_status(
-				NACT_MAIN_WINDOW( instance ),
-				ICOMMAND_TAB_STATUSBAR_CONTEXT,
-				_( "Caution: a label is mandatory for the profile." ));
-
-		set_label_label( instance, "red" );
-	}
-}
-
-static GtkWidget *
-get_label_entry( NactICommandTab *instance )
-{
-	return( base_window_get_widget( BASE_WINDOW( instance ), "ProfileLabelEntry" ));
-}
-
-static GtkButton *
-get_legend_button( NactICommandTab *instance )
-{
-	return( GTK_BUTTON( base_window_get_widget( BASE_WINDOW( instance ), "CommandLegendButton" )));
-}
-
-static GtkWindow *
-get_legend_dialog( NactICommandTab *instance )
-{
-	return( base_window_get_named_toplevel( BASE_WINDOW( instance ), "LegendDialog" ));
-}
-
-static GtkWidget *
-get_parameters_entry( NactICommandTab *instance )
-{
-	return( base_window_get_widget( BASE_WINDOW( instance ), "CommandParametersEntry" ));
-}
-
-static GtkButton *
-get_path_button( NactICommandTab *instance )
-{
-	return( GTK_BUTTON( base_window_get_widget( BASE_WINDOW( instance ), "CommandPathButton" )));
-}
-
-static GtkWidget *
-get_path_entry( NactICommandTab *instance )
-{
-	return( base_window_get_widget( BASE_WINDOW( instance ), "CommandPathEntry" ));
-}
-
-static void
-legend_dialog_hide( NactICommandTab *instance )
-{
-	GtkWindow *legend_dialog;
-	GtkButton *legend_button;
-	gboolean is_visible;
-
-	legend_dialog = get_legend_dialog( instance );
-	is_visible = ( gboolean ) GPOINTER_TO_INT(
-			g_object_get_data( G_OBJECT( legend_dialog ), ICOMMAND_TAB_LEGEND_VISIBLE ));
-
-	if( is_visible ){
-		g_assert( GTK_IS_WINDOW( legend_dialog ));
-		base_iprefs_save_named_window_position( BASE_WINDOW( instance ), legend_dialog, IPREFS_LEGEND_DIALOG );
-		gtk_widget_hide( GTK_WIDGET( legend_dialog ));
-
-		/* set the legend button state consistent for when the dialog is
-		 * hidden by another mean (eg. close the edit profile dialog)
-		 */
-		legend_button = get_legend_button( instance );
-		gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( legend_button ), FALSE );
-
-		g_object_set_data( G_OBJECT( legend_dialog ), ICOMMAND_TAB_LEGEND_VISIBLE, GINT_TO_POINTER( FALSE ));
-	}
-}
-
-static void
-legend_dialog_show( NactICommandTab *instance )
-{
-	GtkWindow *legend_dialog;
-	GtkWindow *toplevel;
-
-	legend_dialog = get_legend_dialog( instance );
-	gtk_window_set_deletable( legend_dialog, FALSE );
-
-	toplevel = base_window_get_toplevel( BASE_WINDOW( instance ));
-	gtk_window_set_transient_for( GTK_WINDOW( legend_dialog ), toplevel );
-
-	base_iprefs_position_named_window( BASE_WINDOW( instance ), legend_dialog, IPREFS_LEGEND_DIALOG );
-	gtk_widget_show( GTK_WIDGET( legend_dialog ));
-
-	g_object_set_data( G_OBJECT( legend_dialog ), ICOMMAND_TAB_LEGEND_VISIBLE, GINT_TO_POINTER( TRUE ));
-}
-
-static void
-on_label_changed( GtkEntry *entry, NactICommandTab *instance )
-{
-	NAObjectProfile *edited;
-	const gchar *label;
-
-	if( !st_on_selection_change ){
-
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-				NULL );
-
-		if( edited ){
-			label = gtk_entry_get_text( entry );
-			na_object_set_label( edited, label );
-			g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, TRUE );
-			check_for_label( instance, entry, label );
-		}
-	}
-}
-
-static void
-on_legend_clicked( GtkButton *button, NactICommandTab *instance )
-{
-	if( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( button ))){
-		legend_dialog_show( instance );
-
-	} else {
-		legend_dialog_hide( instance );
-	}
-}
-
-static void
-on_parameters_changed( GtkEntry *entry, NactICommandTab *instance )
-{
-	NAObjectProfile *edited;
-
-	if( !st_on_selection_change ){
-
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-				NULL );
-
-		if( edited ){
-			na_object_set_parameters( edited, gtk_entry_get_text( entry ));
-			g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
-			update_example_label( instance, edited );
-		}
-	}
-}
-
-static void
-on_path_browse( GtkButton *button, NactICommandTab *instance )
-{
-	gboolean set_current_location = FALSE;
-	gchar *uri = NULL;
-	NactApplication *application;
-	NAUpdater *updater;
-	GtkWindow *toplevel;
-	GtkWidget *dialog;
-	GtkWidget *path_entry;
-	const gchar *path;
-	gchar *filename;
-
-	application = NACT_APPLICATION( base_window_get_application( BASE_WINDOW( instance )));
-	updater = nact_application_get_updater( application );
-	toplevel = base_window_get_toplevel( BASE_WINDOW( instance ));
-
-	dialog = gtk_file_chooser_dialog_new(
-			_( "Choosing a command" ),
-			toplevel,
-			GTK_FILE_CHOOSER_ACTION_OPEN,
-			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-			GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
-			NULL
-			);
-
-	base_iprefs_position_named_window( BASE_WINDOW( instance ), GTK_WINDOW( dialog ), IPREFS_COMMAND_CHOOSER );
-
-	path_entry = get_path_entry( instance );
-	path = gtk_entry_get_text( GTK_ENTRY( path_entry ));
-
-	if( path && strlen( path )){
-		set_current_location = gtk_file_chooser_set_filename( GTK_FILE_CHOOSER( dialog ), path );
-
-	} else {
-		uri = na_iprefs_read_string( NA_IPREFS( updater ), IPREFS_FOLDER_URI, "file:///bin" );
-		gtk_file_chooser_set_current_folder_uri( GTK_FILE_CHOOSER( dialog ), uri );
-		g_free( uri );
-	}
-
-	if( gtk_dialog_run( GTK_DIALOG( dialog )) == GTK_RESPONSE_ACCEPT ){
-		filename = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( dialog ));
-		gtk_entry_set_text( GTK_ENTRY( path_entry ), filename );
-	    g_free (filename);
-	  }
-
-	uri = gtk_file_chooser_get_current_folder_uri( GTK_FILE_CHOOSER( dialog ));
-	nact_iprefs_write_string( BASE_WINDOW( instance ), IPREFS_FOLDER_URI, uri );
-	g_free( uri );
-
-	base_iprefs_save_named_window_position( BASE_WINDOW( instance ), GTK_WINDOW( dialog ), IPREFS_COMMAND_CHOOSER );
-
-	gtk_widget_destroy( dialog );
-}
-
-static void
-on_path_changed( GtkEntry *entry, NactICommandTab *instance )
-{
-	NAObjectProfile *edited;
-
-	if( !st_on_selection_change ){
-
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-				NULL );
-
-		if( edited ){
-
-			na_object_set_path( edited, gtk_entry_get_text( entry ));
-			g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
-			update_example_label( instance, edited );
-		}
-	}
-}
-
-/*
- * Valid parameters :
- *
- * %d : base dir of the (first) selected file(s)/folder(s)
- * %f : the name of the (firstà selected file/folder
- * %h : hostname of the (first) URI
- * %m : list of the basename of the selected files/directories separated by space.
- * %M : list of the selected files/directories with their complete path separated by space.
- * %p : port number of the (first) URI
- * %R : space-separated list of selected URIs
- * %s : scheme of the (first) URI
- * %u : (first) URI
- * %U : username of the (first) URI
- * %% : a percent sign
- */
-static gchar *
-parse_parameters( NactICommandTab *instance )
-{
-	GString *tmp_string = g_string_new( "" );
-
-	/* i18n notes: example strings for the command preview */
-	gchar *ex_path = _( "/path/to" );
-	gchar *ex_files[] = { N_( "file1.txt" ), N_( "file2.txt" ), NULL };
-	gchar *ex_dirs[] = { N_(" folder1" ), N_( "folder2" ), NULL };
-	gchar *ex_mixed[] = { N_(" file1.txt" ), N_( "folder1" ), NULL };
-	gchar *ex_scheme_default = "file";
-	gchar *ex_host_default = _( "test.example.net" );
-	gchar *ex_one_file = _( "file.txt" );
-	gchar *ex_one_dir = _( "folder" );
-	gchar *ex_port_default = _( "8080" );
-	gchar *ex_one = NULL;
-	gchar *ex_list = NULL;
-	gchar *ex_path_list = NULL;
-	gchar *ex_uri_file1 = _( "file:///path/to/file1.text" );
-	gchar *ex_uri_file2 = _( "file:///path/to/file2.text" );
-	gchar *ex_uri_folder1 = _( "file:///path/to/a/dir" );
-	gchar *ex_uri_folder2 = _( "file:///path/to/another/dir" );
-	gchar *ex_uri_list = NULL;
-	gchar *ex_scheme;
-	gchar *ex_host;
-	gboolean is_file, is_dir;
-	gboolean accept_multiple;
-	GSList *scheme_list;
-	guint iter_inc;
-
-	const gchar *command = gtk_entry_get_text( GTK_ENTRY( get_path_entry( instance )));
-	const gchar *param_template = gtk_entry_get_text( GTK_ENTRY( get_parameters_entry( instance )));
-
-	gchar *iter = g_strdup( param_template );
-	gchar *old_iter = iter;
-	gchar *tmp;
-	gchar *separator;
-	gchar *start;
-
-	g_string_append_printf( tmp_string, "%s ", command );
-
-	/*nact_iconditions_tab_get_isfiledir( NACT_ICONDITIONS_TAB( instance ), &is_file, &is_dir );
-	accept_multiple = nact_iconditions_tab_get_multiple( NACT_ICONDITIONS_TAB( instance ));*/
-	is_file = TRUE;
-	is_dir = TRUE;
-	accept_multiple = TRUE;
-
-	scheme_list = nact_ischemes_tab_get_schemes( NACT_ISCHEMES_TAB( instance ));
-
-	separator = g_strdup_printf( " %s/", ex_path );
-	start = g_strdup_printf( "%s/", ex_path );
-
-	if( accept_multiple ){
-		if( is_file && is_dir ){
-			ex_one = ex_files[0];
-			ex_list = na_core_utils_gstring_joinv( NULL, " ", ex_mixed );
-			ex_path_list = na_core_utils_gstring_joinv( start, separator, ex_mixed );
-			ex_uri_list = g_strjoin( " ", ex_uri_file1, ex_uri_folder1, NULL );
-
-		} else if( is_dir ){
-			ex_one = ex_dirs[0];
-			ex_list = na_core_utils_gstring_joinv( NULL, " ", ex_dirs );
-			ex_path_list = na_core_utils_gstring_joinv( start, separator, ex_dirs );
-			ex_uri_list = g_strjoin( " ", ex_uri_folder1, ex_uri_folder2, NULL );
-
-		} else if( is_file ){
-			ex_one = ex_files[0];
-			ex_list = na_core_utils_gstring_joinv( NULL, " ", ex_files );
-			ex_path_list = na_core_utils_gstring_joinv( start, separator, ex_files );
-			ex_uri_list = g_strjoin( " ", ex_uri_file1, ex_uri_file2, NULL );
-		}
-	} else {
-		if( is_dir && !is_file ){
-			ex_one = ex_one_dir;
-			ex_uri_list = g_strdup( ex_uri_folder1 );
-
-		} else {
-			ex_one = ex_one_file;
-			ex_uri_list = g_strdup( ex_uri_file1 );
-		}
-		ex_list = g_strdup( ex_one );
-		ex_path_list = g_strjoin( "/", ex_path, ex_one, NULL );
-	}
-
-	g_free (start);
-	g_free (separator);
-
-	if( scheme_list != NULL ){
-		ex_scheme = ( gchar * ) scheme_list->data;
-		if( g_ascii_strcasecmp( ex_scheme, "file" ) == 0 ){
-			if( g_slist_length( scheme_list ) > 1 ){
-				ex_scheme = ( gchar * ) scheme_list->next->data;
-				ex_host = ex_host_default;
-			} else {
-				ex_host = "";
-			}
-		} else {
-			ex_host = ex_host_default;
-		}
-	} else {
-		ex_scheme = ex_scheme_default;
-		ex_host = "";
-	}
-
-	while(( iter = g_strstr_len( iter, strlen( iter ), "%" ))){
-		tmp_string = g_string_append_len( tmp_string, old_iter, strlen( old_iter ) - strlen( iter ));
-		iter_inc = 1;
-		switch( iter[1] ){
-
-			case 'd': /* base dir of the (first) selected file(s)/folder(s) */
-				tmp_string = g_string_append( tmp_string, ex_path );
-				break;
-
-			case 'f': /* the basename of the (first) selected file/folder */
-				tmp_string = g_string_append( tmp_string, ex_one );
-				break;
-
-			case 'h': /* hostname of the (first) URI */
-				tmp_string = g_string_append( tmp_string, ex_host );
-				break;
-
-			case 'm': /* list of the basename of the selected files/directories separated by space */
-				tmp_string = g_string_append( tmp_string, ex_list );
-				break;
-
-			case 'M': /* list of the selected files/directories with their complete path separated by space. */
-				tmp_string = g_string_append( tmp_string, ex_path_list );
-				break;
-
-			case 'p': /* port number of the (first) URI */
-				tmp_string = g_string_append( tmp_string, ex_port_default );
-				break;
-
-			case 'R': /* space-separated list of selected URIs */
-				tmp_string = g_string_append( tmp_string, ex_uri_list );
-				break;
-
-			case 's': /* scheme of the (first) URI */
-				tmp_string = g_string_append( tmp_string, ex_scheme );
-				break;
-
-			case 'u': /* (first) URI */
-				tmp = g_strjoin( NULL, ex_scheme, "://", ex_path, "/", ex_one, NULL );
-				tmp_string = g_string_append( tmp_string, tmp );
-				g_free( tmp );
-				break;
-
-			case 'U': /* username of the GVfs URI */
-				tmp_string = g_string_append( tmp_string, "root" );
-				break;
-
-			case '%': /* a percent sign */
-				tmp_string = g_string_append_c( tmp_string, '%' );
-				break;
-
-			default:
-				iter_inc = 1;
-				break;
-		}
-		iter += iter_inc;				/* skip the % sign and the character after. */
-		old_iter = iter;				/* store the new start of the string */
-	}
-	tmp_string = g_string_append_len( tmp_string, old_iter, strlen( old_iter ));
-
-	na_core_utils_slist_free( scheme_list );
-
-	g_free( ex_list );
-	g_free( ex_path_list );
-	g_free( ex_uri_list );
-	g_free( iter );
-
-	return( g_string_free( tmp_string, FALSE ));
-}
-
-static void
-set_label_label( NactICommandTab *instance, const gchar *color_str )
-{
-	GtkWidget *label;
-	GdkColor color;
-
-	label = base_window_get_widget( BASE_WINDOW( instance ), "ProfileLabelLabel" );
-	gdk_color_parse( color_str, &color );
-	gtk_widget_modify_fg( label, GTK_STATE_NORMAL, &color );
-}
-
-static void
-update_example_label( NactICommandTab *instance, NAObjectProfile *profile )
-{
-	/*static const char *thisfn = "nact_iconditions_update_example_label";*/
-	gchar *newlabel;
-	gchar *parameters;
-	GtkWidget *example_widget;
-
-	example_widget = base_window_get_widget( BASE_WINDOW( instance ), "CommandExampleLabel" );
-
-	if( profile ){
-		parameters = parse_parameters( instance );
-		/*g_debug( "%s: parameters=%s", thisfn, parameters );*/
-
-		/* convert special xml chars (&, <, >,...) to avoid warnings
-		 * generated by Pango parser
-		 */
-		/* i18n: command-line example: e.g., /bin/ls file1.txt file2.txt */
-		newlabel = g_markup_printf_escaped(
-				"<i><b><span size=\"small\">%s %s</span></b></i>", _( "e.g.," ), parameters );
-
-		g_free( parameters );
-
-	} else {
-		newlabel = g_strdup( "" );
-	}
-
-	gtk_label_set_label( GTK_LABEL( example_widget ), newlabel );
-	g_free( newlabel );
-}
diff --git a/src/nact/nact-ienvironment-tab.h b/src/nact/nact-ienvironment-tab.h
index 122725d..9ca7092 100644
--- a/src/nact/nact-ienvironment-tab.h
+++ b/src/nact/nact-ienvironment-tab.h
@@ -28,13 +28,13 @@
  *   ... and many others (see AUTHORS)
  */
 
-#ifndef __NACT_ICOMMAND_TAB_H__
-#define __NACT_ICOMMAND_TAB_H__
+#ifndef __NACT_IENVIRONMENT_TAB_H__
+#define __NACT_IENVIRONMENT_TAB_H__
 
 /**
- * SECTION: nact_icommand_tab
- * @short_description: #NactICommandTab interface declaration.
- * @include: nact/nact-icommand-tab.h
+ * SECTION: nact_ienvironment_tab
+ * @short_description: #NactIEnvironmentTab interface declaration.
+ * @include: nact/nact-ienvironment-tab.h
  *
  * This interface implements all the widgets which define the
  * actual action to be executed.
@@ -44,28 +44,28 @@
 
 G_BEGIN_DECLS
 
-#define NACT_ICOMMAND_TAB_TYPE						( nact_icommand_tab_get_type())
-#define NACT_ICOMMAND_TAB( object )					( G_TYPE_CHECK_INSTANCE_CAST( object, NACT_ICOMMAND_TAB_TYPE, NactICommandTab ))
-#define NACT_IS_ICOMMAND_TAB( object )				( G_TYPE_CHECK_INSTANCE_TYPE( object, NACT_ICOMMAND_TAB_TYPE ))
-#define NACT_ICOMMAND_TAB_GET_INTERFACE( instance )	( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), NACT_ICOMMAND_TAB_TYPE, NactICommandTabInterface ))
+#define NACT_IENVIRONMENT_TAB_TYPE						( nact_ienvironment_tab_get_type())
+#define NACT_IENVIRONMENT_TAB( object )					( G_TYPE_CHECK_INSTANCE_CAST( object, NACT_IENVIRONMENT_TAB_TYPE, NactIEnvironmentTab ))
+#define NACT_IS_IENVIRONMENT_TAB( object )				( G_TYPE_CHECK_INSTANCE_TYPE( object, NACT_IENVIRONMENT_TAB_TYPE ))
+#define NACT_IENVIRONMENT_TAB_GET_INTERFACE( instance )	( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), NACT_IENVIRONMENT_TAB_TYPE, NactIEnvironmentTabInterface ))
 
-typedef struct NactICommandTab NactICommandTab;
+typedef struct NactIEnvironmentTab                 NactIEnvironmentTab;
 
-typedef struct NactICommandTabInterfacePrivate NactICommandTabInterfacePrivate;
+typedef struct NactIEnvironmentTabInterfacePrivate NactIEnvironmentTabInterfacePrivate;
 
 typedef struct {
-	GTypeInterface                   parent;
-	NactICommandTabInterfacePrivate *private;
+	GTypeInterface                       parent;
+	NactIEnvironmentTabInterfacePrivate *private;
 }
-	NactICommandTabInterface;
+	NactIEnvironmentTabInterface;
 
-GType    nact_icommand_tab_get_type( void );
+GType nact_ienvironment_tab_get_type( void );
 
-void     nact_icommand_tab_initial_load_toplevel( NactICommandTab *instance );
-void     nact_icommand_tab_runtime_init_toplevel( NactICommandTab *instance );
-void     nact_icommand_tab_all_widgets_showed( NactICommandTab *instance );
-void     nact_icommand_tab_dispose( NactICommandTab *instance );
+void  nact_ienvironment_tab_initial_load_toplevel( NactIEnvironmentTab *instance );
+void  nact_ienvironment_tab_runtime_init_toplevel( NactIEnvironmentTab *instance );
+void  nact_ienvironment_tab_all_widgets_showed   ( NactIEnvironmentTab *instance );
+void  nact_ienvironment_tab_dispose              ( NactIEnvironmentTab *instance );
 
 G_END_DECLS
 
-#endif /* __NACT_ICOMMAND_TAB_H__ */
+#endif /* __NACT_IENVIRONMENT_TAB_H__ */
diff --git a/src/nact/nact-iexecution-tab.c b/src/nact/nact-iexecution-tab.c
index 24401c8..52b444e 100644
--- a/src/nact/nact-iexecution-tab.c
+++ b/src/nact/nact-iexecution-tab.c
@@ -32,75 +32,30 @@
 #include <config.h>
 #endif
 
-#include <glib/gi18n.h>
-#include <string.h>
-
-#include <api/na-core-utils.h>
 #include <api/na-object-api.h>
 
-#include <core/na-iprefs.h>
-
-#include "base-window.h"
-#include "base-iprefs.h"
-#include "nact-application.h"
-#include "nact-main-statusbar.h"
-#include "nact-gtk-utils.h"
-#include "nact-iprefs.h"
-#include "nact-iactions-list.h"
 #include "nact-main-tab.h"
-#include "nact-icommand-tab.h"
-#include "nact-iconditions-tab.h"
-#include "nact-ischemes-tab.h"
+#include "nact-iexecution-tab.h"
 
 /* private interface data
  */
-struct NactICommandTabInterfacePrivate {
+struct NactIExecutionTabInterfacePrivate {
 	void *empty;						/* so that gcc -pedantic is happy */
 };
 
-/* the GConf key used to read/write size and position of auxiliary dialogs
- */
-#define IPREFS_LEGEND_DIALOG				"icommand-legend-dialog"
-#define IPREFS_COMMAND_CHOOSER				"icommand-command-chooser"
-#define IPREFS_FOLDER_URI					"icommand-folder-uri"
-
-/* a data set in the LegendDialog GObject
- */
-#define ICOMMAND_TAB_LEGEND_VISIBLE			"nact-icommand-tab-legend-dialog-visible"
-#define ICOMMAND_TAB_STATUSBAR_CONTEXT		"nact-icommand-tab-statusbar-context"
-
 static gboolean st_initialized = FALSE;
 static gboolean st_finalized = FALSE;
 static gboolean st_on_selection_change = FALSE;
 
-static GType      register_type( void );
-static void       interface_base_init( NactICommandTabInterface *klass );
-static void       interface_base_finalize( NactICommandTabInterface *klass );
-
-static void       on_iactions_list_column_edited( NactICommandTab *instance, NAObject *object, gchar *text, gint column );
-static void       on_tab_updatable_selection_changed( NactICommandTab *instance, gint count_selected );
-static gboolean   tab_set_sensitive( NactICommandTab *instance );
-
-static void       check_for_label( NactICommandTab *instance, GtkEntry *entry, const gchar *label );
-static GtkWidget *get_label_entry( NactICommandTab *instance );
-static GtkButton *get_legend_button( NactICommandTab *instance );
-static GtkWindow *get_legend_dialog( NactICommandTab *instance );
-static GtkWidget *get_parameters_entry( NactICommandTab *instance );
-static GtkButton *get_path_button( NactICommandTab *instance );
-static GtkWidget *get_path_entry( NactICommandTab *instance );
-static void       legend_dialog_show( NactICommandTab *instance );
-static void       legend_dialog_hide( NactICommandTab *instance );
-static void       on_label_changed( GtkEntry *entry, NactICommandTab *instance );
-static void       on_legend_clicked( GtkButton *button, NactICommandTab *instance );
-static void       on_parameters_changed( GtkEntry *entry, NactICommandTab *instance );
-static void       on_path_browse( GtkButton *button, NactICommandTab *instance );
-static void       on_path_changed( GtkEntry *entry, NactICommandTab *instance );
-static gchar     *parse_parameters( NactICommandTab *instance );
-static void       set_label_label( NactICommandTab *instance, const gchar *color );
-static void       update_example_label( NactICommandTab *instance, NAObjectProfile *profile );
+static GType    register_type( void );
+static void     interface_base_init( NactIExecutionTabInterface *klass );
+static void     interface_base_finalize( NactIExecutionTabInterface *klass );
+
+static void     on_tab_updatable_selection_changed( NactIExecutionTab *instance, gint count_selected );
+static gboolean tab_set_sensitive( NactIExecutionTab *instance );
 
 GType
-nact_icommand_tab_get_type( void )
+nact_iexecution_tab_get_type( void )
 {
 	static GType iface_type = 0;
 
@@ -114,11 +69,11 @@ nact_icommand_tab_get_type( void )
 static GType
 register_type( void )
 {
-	static const gchar *thisfn = "nact_icommand_tab_register_type";
+	static const gchar *thisfn = "nact_iexecution_tab_register_type";
 	GType type;
 
 	static const GTypeInfo info = {
-		sizeof( NactICommandTabInterface ),
+		sizeof( NactIExecutionTabInterface ),
 		( GBaseInitFunc ) interface_base_init,
 		( GBaseFinalizeFunc ) interface_base_finalize,
 		NULL,
@@ -131,7 +86,7 @@ register_type( void )
 
 	g_debug( "%s", thisfn );
 
-	type = g_type_register_static( G_TYPE_INTERFACE, "NactICommandTab", &info, 0 );
+	type = g_type_register_static( G_TYPE_INTERFACE, "NactIExecutionTab", &info, 0 );
 
 	g_type_interface_add_prerequisite( type, BASE_WINDOW_TYPE );
 
@@ -139,24 +94,24 @@ register_type( void )
 }
 
 static void
-interface_base_init( NactICommandTabInterface *klass )
+interface_base_init( NactIExecutionTabInterface *klass )
 {
-	static const gchar *thisfn = "nact_icommand_tab_interface_base_init";
+	static const gchar *thisfn = "nact_iexecution_tab_interface_base_init";
 
 	if( !st_initialized ){
 
 		g_debug( "%s: klass=%p", thisfn, ( void * ) klass );
 
-		klass->private = g_new0( NactICommandTabInterfacePrivate, 1 );
+		klass->private = g_new0( NactIExecutionTabInterfacePrivate, 1 );
 
 		st_initialized = TRUE;
 	}
 }
 
 static void
-interface_base_finalize( NactICommandTabInterface *klass )
+interface_base_finalize( NactIExecutionTabInterface *klass )
 {
-	static const gchar *thisfn = "nact_icommand_tab_interface_base_finalize";
+	static const gchar *thisfn = "nact_iexecution_tab_interface_base_finalize";
 
 	if( st_initialized && !st_finalized ){
 
@@ -169,213 +124,98 @@ interface_base_finalize( NactICommandTabInterface *klass )
 }
 
 /**
- * nact_icommand_tab_initial_load:
- * @window: this #NactICommandTab instance.
+ * nact_iexecution_tab_initial_load:
+ * @window: this #NactIExecutionTab instance.
  *
  * Initializes the tab widget at initial load.
- *
- * The GConf preference keys used in this tab were misnamed from v1.11.1
- * up to and including v1.12.0. Starting with v1.12.1, these are migrated
- * here, so that the normal code only makes use of 'good' keys.
  */
 void
-nact_icommand_tab_initial_load_toplevel( NactICommandTab *instance )
+nact_iexecution_tab_initial_load_toplevel( NactIExecutionTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_initial_load_toplevel";
+	static const gchar *thisfn = "nact_iexecution_tab_initial_load_toplevel";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IEXECUTION_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
-
-		nact_iprefs_migrate_key( BASE_WINDOW( instance ), "iconditions-legend-dialog", IPREFS_LEGEND_DIALOG );
-		nact_iprefs_migrate_key( BASE_WINDOW( instance ), "iconditions-command-chooser", IPREFS_COMMAND_CHOOSER );
-		nact_iprefs_migrate_key( BASE_WINDOW( instance ), "iconditions-folder-uri", IPREFS_FOLDER_URI );
 	}
 }
 
 /**
- * nact_icommand_tab_runtime_init:
- * @window: this #NactICommandTab instance.
+ * nact_iexecution_tab_runtime_init:
+ * @window: this #NactIExecutionTab instance.
  *
  * Initializes the tab widget at each time the widget will be displayed.
  * Connect signals and setup runtime values.
  */
 void
-nact_icommand_tab_runtime_init_toplevel( NactICommandTab *instance )
+nact_iexecution_tab_runtime_init_toplevel( NactIExecutionTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_runtime_init_toplevel";
-	GtkWidget *label_entry, *path_entry, *parameters_entry;
-	GtkButton *path_button, *legend_button;
+	static const gchar *thisfn = "nact_iexecution_tab_runtime_init_toplevel";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IEXECUTION_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
 
-		label_entry = get_label_entry( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( label_entry ),
-				"changed",
-				G_CALLBACK( on_label_changed ));
-
-		path_entry = get_path_entry( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( path_entry ),
-				"changed",
-				G_CALLBACK( on_path_changed ));
-
-		path_button = get_path_button( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( path_button ),
-				"clicked",
-				G_CALLBACK( on_path_browse ));
-
-		parameters_entry = get_parameters_entry( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( parameters_entry ),
-				"changed",
-				G_CALLBACK( on_parameters_changed ));
-
-		legend_button = get_legend_button( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( legend_button ),
-				"clicked",
-				G_CALLBACK( on_legend_clicked ));
-
 		base_window_signal_connect(
 				BASE_WINDOW( instance ),
 				G_OBJECT( instance ),
 				MAIN_WINDOW_SIGNAL_SELECTION_CHANGED,
 				G_CALLBACK( on_tab_updatable_selection_changed ));
-
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( instance ),
-				IACTIONS_LIST_SIGNAL_COLUMN_EDITED,
-				G_CALLBACK( on_iactions_list_column_edited ));
 	}
 }
 
 void
-nact_icommand_tab_all_widgets_showed( NactICommandTab *instance )
+nact_iexecution_tab_all_widgets_showed( NactIExecutionTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_all_widgets_showed";
+	static const gchar *thisfn = "nact_iexecution_tab_all_widgets_showed";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IEXECUTION_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
 	}
 }
 
 /**
- * nact_icommand_tab_dispose:
- * @window: this #NactICommandTab instance.
+ * nact_iexecution_tab_dispose:
+ * @window: this #NactIExecutionTab instance.
  *
  * Called at instance_dispose time.
  */
 void
-nact_icommand_tab_dispose( NactICommandTab *instance )
+nact_iexecution_tab_dispose( NactIExecutionTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_dispose";
+	static const gchar *thisfn = "nact_iexecution_tab_dispose";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IEXECUTION_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
-		legend_dialog_hide( instance );
 	}
 }
 
 static void
-on_iactions_list_column_edited( NactICommandTab *instance, NAObject *object, gchar *text, gint column )
+on_tab_updatable_selection_changed( NactIExecutionTab *instance, gint count_selected )
 {
-	GtkWidget *label_widget;
-
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
-
-	if( st_initialized && !st_finalized ){
-
-		if( NA_IS_OBJECT_PROFILE( object )){
-			label_widget = get_label_entry( instance );
-			gtk_entry_set_text( GTK_ENTRY( label_widget ), text );
-		}
-	}
-}
-
-static void
-on_tab_updatable_selection_changed( NactICommandTab *instance, gint count_selected )
-{
-	static const gchar *thisfn = "nact_icommand_tab_on_tab_updatable_selection_changed";
-	NAObjectItem *item;
-	NAObjectProfile *profile;
-	gboolean enable_tab;
-	GtkWidget *label_entry, *path_entry, *parameters_entry;
-	gchar *label, *path, *parameters;
-	gboolean editable;
-	GtkButton *path_button;
-	GtkButton *legend_button;
+	static const gchar *thisfn = "nact_iexecution_tab_on_tab_updatable_selection_changed";
 
 	g_debug( "%s: instance=%p, count_selected=%d", thisfn, ( void * ) instance, count_selected );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IEXECUTION_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
 
 		st_on_selection_change = TRUE;
 
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_ACTION, &item,
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &profile,
-				TAB_UPDATABLE_PROP_EDITABLE, &editable,
-				NULL );
-
-		enable_tab = tab_set_sensitive( instance );
-
-		label_entry = get_label_entry( instance );
-		label = profile ? na_object_get_label( profile ) : g_strdup( "" );
-		label = label ? label : g_strdup( "" );
-		gtk_entry_set_text( GTK_ENTRY( label_entry ), label );
-		check_for_label( instance, GTK_ENTRY( label_entry ), label );
-		g_free( label );
-		gtk_widget_set_sensitive( label_entry, profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( label_entry ), editable );
-
-		path_entry = get_path_entry( instance );
-		path = profile ? na_object_get_path( profile ) : g_strdup( "" );
-		path = path ? path : g_strdup( "" );
-		gtk_entry_set_text( GTK_ENTRY( path_entry ), path );
-		g_free( path );
-		gtk_widget_set_sensitive( path_entry, profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( path_entry ), editable );
-
-		path_button = get_path_button( instance );
-		gtk_widget_set_sensitive( GTK_WIDGET( path_button ), profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( path_button ), editable );
-
-		parameters_entry = get_parameters_entry( instance );
-		parameters = profile ? na_object_get_parameters( profile ) : g_strdup( "" );
-		parameters = parameters ? parameters : g_strdup( "" );
-		gtk_entry_set_text( GTK_ENTRY( parameters_entry ), parameters );
-		g_free( parameters );
-		gtk_widget_set_sensitive( parameters_entry, profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( parameters_entry ), editable );
-
-		legend_button = get_legend_button( instance );
-		gtk_widget_set_sensitive( GTK_WIDGET( legend_button ), profile != NULL );
+		tab_set_sensitive( instance );
 
 		st_on_selection_change = FALSE;
 	}
 }
 
 static gboolean
-tab_set_sensitive( NactICommandTab *instance )
+tab_set_sensitive( NactIExecutionTab *instance )
 {
 	NAObjectProfile *profile;
 	gboolean enable_tab;
@@ -386,475 +226,7 @@ tab_set_sensitive( NactICommandTab *instance )
 			NULL );
 
 	enable_tab = ( profile != NULL );
-	nact_main_tab_enable_page( NACT_MAIN_WINDOW( instance ), TAB_COMMAND, enable_tab );
+	nact_main_tab_enable_page( NACT_MAIN_WINDOW( instance ), TAB_EXECUTION, enable_tab );
 
 	return( enable_tab );
 }
-
-static void
-check_for_label( NactICommandTab *instance, GtkEntry *entry, const gchar *label )
-{
-	NAObjectProfile *edited;
-
-	nact_main_statusbar_hide_status(
-			NACT_MAIN_WINDOW( instance ),
-			ICOMMAND_TAB_STATUSBAR_CONTEXT );
-
-	set_label_label( instance, "black" );
-
-	g_object_get(
-			G_OBJECT( instance ),
-			TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-			NULL );
-
-	if( edited && g_utf8_strlen( label, -1 ) == 0 ){
-
-		/* i18n: status bar message when the profile label is empty */
-		nact_main_statusbar_display_status(
-				NACT_MAIN_WINDOW( instance ),
-				ICOMMAND_TAB_STATUSBAR_CONTEXT,
-				_( "Caution: a label is mandatory for the profile." ));
-
-		set_label_label( instance, "red" );
-	}
-}
-
-static GtkWidget *
-get_label_entry( NactICommandTab *instance )
-{
-	return( base_window_get_widget( BASE_WINDOW( instance ), "ProfileLabelEntry" ));
-}
-
-static GtkButton *
-get_legend_button( NactICommandTab *instance )
-{
-	return( GTK_BUTTON( base_window_get_widget( BASE_WINDOW( instance ), "CommandLegendButton" )));
-}
-
-static GtkWindow *
-get_legend_dialog( NactICommandTab *instance )
-{
-	return( base_window_get_named_toplevel( BASE_WINDOW( instance ), "LegendDialog" ));
-}
-
-static GtkWidget *
-get_parameters_entry( NactICommandTab *instance )
-{
-	return( base_window_get_widget( BASE_WINDOW( instance ), "CommandParametersEntry" ));
-}
-
-static GtkButton *
-get_path_button( NactICommandTab *instance )
-{
-	return( GTK_BUTTON( base_window_get_widget( BASE_WINDOW( instance ), "CommandPathButton" )));
-}
-
-static GtkWidget *
-get_path_entry( NactICommandTab *instance )
-{
-	return( base_window_get_widget( BASE_WINDOW( instance ), "CommandPathEntry" ));
-}
-
-static void
-legend_dialog_hide( NactICommandTab *instance )
-{
-	GtkWindow *legend_dialog;
-	GtkButton *legend_button;
-	gboolean is_visible;
-
-	legend_dialog = get_legend_dialog( instance );
-	is_visible = ( gboolean ) GPOINTER_TO_INT(
-			g_object_get_data( G_OBJECT( legend_dialog ), ICOMMAND_TAB_LEGEND_VISIBLE ));
-
-	if( is_visible ){
-		g_assert( GTK_IS_WINDOW( legend_dialog ));
-		base_iprefs_save_named_window_position( BASE_WINDOW( instance ), legend_dialog, IPREFS_LEGEND_DIALOG );
-		gtk_widget_hide( GTK_WIDGET( legend_dialog ));
-
-		/* set the legend button state consistent for when the dialog is
-		 * hidden by another mean (eg. close the edit profile dialog)
-		 */
-		legend_button = get_legend_button( instance );
-		gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( legend_button ), FALSE );
-
-		g_object_set_data( G_OBJECT( legend_dialog ), ICOMMAND_TAB_LEGEND_VISIBLE, GINT_TO_POINTER( FALSE ));
-	}
-}
-
-static void
-legend_dialog_show( NactICommandTab *instance )
-{
-	GtkWindow *legend_dialog;
-	GtkWindow *toplevel;
-
-	legend_dialog = get_legend_dialog( instance );
-	gtk_window_set_deletable( legend_dialog, FALSE );
-
-	toplevel = base_window_get_toplevel( BASE_WINDOW( instance ));
-	gtk_window_set_transient_for( GTK_WINDOW( legend_dialog ), toplevel );
-
-	base_iprefs_position_named_window( BASE_WINDOW( instance ), legend_dialog, IPREFS_LEGEND_DIALOG );
-	gtk_widget_show( GTK_WIDGET( legend_dialog ));
-
-	g_object_set_data( G_OBJECT( legend_dialog ), ICOMMAND_TAB_LEGEND_VISIBLE, GINT_TO_POINTER( TRUE ));
-}
-
-static void
-on_label_changed( GtkEntry *entry, NactICommandTab *instance )
-{
-	NAObjectProfile *edited;
-	const gchar *label;
-
-	if( !st_on_selection_change ){
-
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-				NULL );
-
-		if( edited ){
-			label = gtk_entry_get_text( entry );
-			na_object_set_label( edited, label );
-			g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, TRUE );
-			check_for_label( instance, entry, label );
-		}
-	}
-}
-
-static void
-on_legend_clicked( GtkButton *button, NactICommandTab *instance )
-{
-	if( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( button ))){
-		legend_dialog_show( instance );
-
-	} else {
-		legend_dialog_hide( instance );
-	}
-}
-
-static void
-on_parameters_changed( GtkEntry *entry, NactICommandTab *instance )
-{
-	NAObjectProfile *edited;
-
-	if( !st_on_selection_change ){
-
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-				NULL );
-
-		if( edited ){
-			na_object_set_parameters( edited, gtk_entry_get_text( entry ));
-			g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
-			update_example_label( instance, edited );
-		}
-	}
-}
-
-static void
-on_path_browse( GtkButton *button, NactICommandTab *instance )
-{
-	gboolean set_current_location = FALSE;
-	gchar *uri = NULL;
-	NactApplication *application;
-	NAUpdater *updater;
-	GtkWindow *toplevel;
-	GtkWidget *dialog;
-	GtkWidget *path_entry;
-	const gchar *path;
-	gchar *filename;
-
-	application = NACT_APPLICATION( base_window_get_application( BASE_WINDOW( instance )));
-	updater = nact_application_get_updater( application );
-	toplevel = base_window_get_toplevel( BASE_WINDOW( instance ));
-
-	dialog = gtk_file_chooser_dialog_new(
-			_( "Choosing a command" ),
-			toplevel,
-			GTK_FILE_CHOOSER_ACTION_OPEN,
-			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-			GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
-			NULL
-			);
-
-	base_iprefs_position_named_window( BASE_WINDOW( instance ), GTK_WINDOW( dialog ), IPREFS_COMMAND_CHOOSER );
-
-	path_entry = get_path_entry( instance );
-	path = gtk_entry_get_text( GTK_ENTRY( path_entry ));
-
-	if( path && strlen( path )){
-		set_current_location = gtk_file_chooser_set_filename( GTK_FILE_CHOOSER( dialog ), path );
-
-	} else {
-		uri = na_iprefs_read_string( NA_IPREFS( updater ), IPREFS_FOLDER_URI, "file:///bin" );
-		gtk_file_chooser_set_current_folder_uri( GTK_FILE_CHOOSER( dialog ), uri );
-		g_free( uri );
-	}
-
-	if( gtk_dialog_run( GTK_DIALOG( dialog )) == GTK_RESPONSE_ACCEPT ){
-		filename = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( dialog ));
-		gtk_entry_set_text( GTK_ENTRY( path_entry ), filename );
-	    g_free (filename);
-	  }
-
-	uri = gtk_file_chooser_get_current_folder_uri( GTK_FILE_CHOOSER( dialog ));
-	nact_iprefs_write_string( BASE_WINDOW( instance ), IPREFS_FOLDER_URI, uri );
-	g_free( uri );
-
-	base_iprefs_save_named_window_position( BASE_WINDOW( instance ), GTK_WINDOW( dialog ), IPREFS_COMMAND_CHOOSER );
-
-	gtk_widget_destroy( dialog );
-}
-
-static void
-on_path_changed( GtkEntry *entry, NactICommandTab *instance )
-{
-	NAObjectProfile *edited;
-
-	if( !st_on_selection_change ){
-
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-				NULL );
-
-		if( edited ){
-
-			na_object_set_path( edited, gtk_entry_get_text( entry ));
-			g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
-			update_example_label( instance, edited );
-		}
-	}
-}
-
-/*
- * Valid parameters :
- *
- * %d : base dir of the (first) selected file(s)/folder(s)
- * %f : the name of the (firstà selected file/folder
- * %h : hostname of the (first) URI
- * %m : list of the basename of the selected files/directories separated by space.
- * %M : list of the selected files/directories with their complete path separated by space.
- * %p : port number of the (first) URI
- * %R : space-separated list of selected URIs
- * %s : scheme of the (first) URI
- * %u : (first) URI
- * %U : username of the (first) URI
- * %% : a percent sign
- */
-static gchar *
-parse_parameters( NactICommandTab *instance )
-{
-	GString *tmp_string = g_string_new( "" );
-
-	/* i18n notes: example strings for the command preview */
-	gchar *ex_path = _( "/path/to" );
-	gchar *ex_files[] = { N_( "file1.txt" ), N_( "file2.txt" ), NULL };
-	gchar *ex_dirs[] = { N_(" folder1" ), N_( "folder2" ), NULL };
-	gchar *ex_mixed[] = { N_(" file1.txt" ), N_( "folder1" ), NULL };
-	gchar *ex_scheme_default = "file";
-	gchar *ex_host_default = _( "test.example.net" );
-	gchar *ex_one_file = _( "file.txt" );
-	gchar *ex_one_dir = _( "folder" );
-	gchar *ex_port_default = _( "8080" );
-	gchar *ex_one = NULL;
-	gchar *ex_list = NULL;
-	gchar *ex_path_list = NULL;
-	gchar *ex_uri_file1 = _( "file:///path/to/file1.text" );
-	gchar *ex_uri_file2 = _( "file:///path/to/file2.text" );
-	gchar *ex_uri_folder1 = _( "file:///path/to/a/dir" );
-	gchar *ex_uri_folder2 = _( "file:///path/to/another/dir" );
-	gchar *ex_uri_list = NULL;
-	gchar *ex_scheme;
-	gchar *ex_host;
-	gboolean is_file, is_dir;
-	gboolean accept_multiple;
-	GSList *scheme_list;
-	guint iter_inc;
-
-	const gchar *command = gtk_entry_get_text( GTK_ENTRY( get_path_entry( instance )));
-	const gchar *param_template = gtk_entry_get_text( GTK_ENTRY( get_parameters_entry( instance )));
-
-	gchar *iter = g_strdup( param_template );
-	gchar *old_iter = iter;
-	gchar *tmp;
-	gchar *separator;
-	gchar *start;
-
-	g_string_append_printf( tmp_string, "%s ", command );
-
-	/*nact_iconditions_tab_get_isfiledir( NACT_ICONDITIONS_TAB( instance ), &is_file, &is_dir );
-	accept_multiple = nact_iconditions_tab_get_multiple( NACT_ICONDITIONS_TAB( instance ));*/
-	is_file = TRUE;
-	is_dir = TRUE;
-	accept_multiple = TRUE;
-
-	scheme_list = nact_ischemes_tab_get_schemes( NACT_ISCHEMES_TAB( instance ));
-
-	separator = g_strdup_printf( " %s/", ex_path );
-	start = g_strdup_printf( "%s/", ex_path );
-
-	if( accept_multiple ){
-		if( is_file && is_dir ){
-			ex_one = ex_files[0];
-			ex_list = na_core_utils_gstring_joinv( NULL, " ", ex_mixed );
-			ex_path_list = na_core_utils_gstring_joinv( start, separator, ex_mixed );
-			ex_uri_list = g_strjoin( " ", ex_uri_file1, ex_uri_folder1, NULL );
-
-		} else if( is_dir ){
-			ex_one = ex_dirs[0];
-			ex_list = na_core_utils_gstring_joinv( NULL, " ", ex_dirs );
-			ex_path_list = na_core_utils_gstring_joinv( start, separator, ex_dirs );
-			ex_uri_list = g_strjoin( " ", ex_uri_folder1, ex_uri_folder2, NULL );
-
-		} else if( is_file ){
-			ex_one = ex_files[0];
-			ex_list = na_core_utils_gstring_joinv( NULL, " ", ex_files );
-			ex_path_list = na_core_utils_gstring_joinv( start, separator, ex_files );
-			ex_uri_list = g_strjoin( " ", ex_uri_file1, ex_uri_file2, NULL );
-		}
-	} else {
-		if( is_dir && !is_file ){
-			ex_one = ex_one_dir;
-			ex_uri_list = g_strdup( ex_uri_folder1 );
-
-		} else {
-			ex_one = ex_one_file;
-			ex_uri_list = g_strdup( ex_uri_file1 );
-		}
-		ex_list = g_strdup( ex_one );
-		ex_path_list = g_strjoin( "/", ex_path, ex_one, NULL );
-	}
-
-	g_free (start);
-	g_free (separator);
-
-	if( scheme_list != NULL ){
-		ex_scheme = ( gchar * ) scheme_list->data;
-		if( g_ascii_strcasecmp( ex_scheme, "file" ) == 0 ){
-			if( g_slist_length( scheme_list ) > 1 ){
-				ex_scheme = ( gchar * ) scheme_list->next->data;
-				ex_host = ex_host_default;
-			} else {
-				ex_host = "";
-			}
-		} else {
-			ex_host = ex_host_default;
-		}
-	} else {
-		ex_scheme = ex_scheme_default;
-		ex_host = "";
-	}
-
-	while(( iter = g_strstr_len( iter, strlen( iter ), "%" ))){
-		tmp_string = g_string_append_len( tmp_string, old_iter, strlen( old_iter ) - strlen( iter ));
-		iter_inc = 1;
-		switch( iter[1] ){
-
-			case 'd': /* base dir of the (first) selected file(s)/folder(s) */
-				tmp_string = g_string_append( tmp_string, ex_path );
-				break;
-
-			case 'f': /* the basename of the (first) selected file/folder */
-				tmp_string = g_string_append( tmp_string, ex_one );
-				break;
-
-			case 'h': /* hostname of the (first) URI */
-				tmp_string = g_string_append( tmp_string, ex_host );
-				break;
-
-			case 'm': /* list of the basename of the selected files/directories separated by space */
-				tmp_string = g_string_append( tmp_string, ex_list );
-				break;
-
-			case 'M': /* list of the selected files/directories with their complete path separated by space. */
-				tmp_string = g_string_append( tmp_string, ex_path_list );
-				break;
-
-			case 'p': /* port number of the (first) URI */
-				tmp_string = g_string_append( tmp_string, ex_port_default );
-				break;
-
-			case 'R': /* space-separated list of selected URIs */
-				tmp_string = g_string_append( tmp_string, ex_uri_list );
-				break;
-
-			case 's': /* scheme of the (first) URI */
-				tmp_string = g_string_append( tmp_string, ex_scheme );
-				break;
-
-			case 'u': /* (first) URI */
-				tmp = g_strjoin( NULL, ex_scheme, "://", ex_path, "/", ex_one, NULL );
-				tmp_string = g_string_append( tmp_string, tmp );
-				g_free( tmp );
-				break;
-
-			case 'U': /* username of the GVfs URI */
-				tmp_string = g_string_append( tmp_string, "root" );
-				break;
-
-			case '%': /* a percent sign */
-				tmp_string = g_string_append_c( tmp_string, '%' );
-				break;
-
-			default:
-				iter_inc = 1;
-				break;
-		}
-		iter += iter_inc;				/* skip the % sign and the character after. */
-		old_iter = iter;				/* store the new start of the string */
-	}
-	tmp_string = g_string_append_len( tmp_string, old_iter, strlen( old_iter ));
-
-	na_core_utils_slist_free( scheme_list );
-
-	g_free( ex_list );
-	g_free( ex_path_list );
-	g_free( ex_uri_list );
-	g_free( iter );
-
-	return( g_string_free( tmp_string, FALSE ));
-}
-
-static void
-set_label_label( NactICommandTab *instance, const gchar *color_str )
-{
-	GtkWidget *label;
-	GdkColor color;
-
-	label = base_window_get_widget( BASE_WINDOW( instance ), "ProfileLabelLabel" );
-	gdk_color_parse( color_str, &color );
-	gtk_widget_modify_fg( label, GTK_STATE_NORMAL, &color );
-}
-
-static void
-update_example_label( NactICommandTab *instance, NAObjectProfile *profile )
-{
-	/*static const char *thisfn = "nact_iconditions_update_example_label";*/
-	gchar *newlabel;
-	gchar *parameters;
-	GtkWidget *example_widget;
-
-	example_widget = base_window_get_widget( BASE_WINDOW( instance ), "CommandExampleLabel" );
-
-	if( profile ){
-		parameters = parse_parameters( instance );
-		/*g_debug( "%s: parameters=%s", thisfn, parameters );*/
-
-		/* convert special xml chars (&, <, >,...) to avoid warnings
-		 * generated by Pango parser
-		 */
-		/* i18n: command-line example: e.g., /bin/ls file1.txt file2.txt */
-		newlabel = g_markup_printf_escaped(
-				"<i><b><span size=\"small\">%s %s</span></b></i>", _( "e.g.," ), parameters );
-
-		g_free( parameters );
-
-	} else {
-		newlabel = g_strdup( "" );
-	}
-
-	gtk_label_set_label( GTK_LABEL( example_widget ), newlabel );
-	g_free( newlabel );
-}
diff --git a/src/nact/nact-iexecution-tab.h b/src/nact/nact-iexecution-tab.h
index 122725d..d42fbc2 100644
--- a/src/nact/nact-iexecution-tab.h
+++ b/src/nact/nact-iexecution-tab.h
@@ -28,13 +28,13 @@
  *   ... and many others (see AUTHORS)
  */
 
-#ifndef __NACT_ICOMMAND_TAB_H__
-#define __NACT_ICOMMAND_TAB_H__
+#ifndef __NACT_IEXECUTION_TAB_H__
+#define __NACT_IEXECUTION_TAB_H__
 
 /**
- * SECTION: nact_icommand_tab
- * @short_description: #NactICommandTab interface declaration.
- * @include: nact/nact-icommand-tab.h
+ * SECTION: nact_iexecution_tab
+ * @short_description: #NactIExecutionTab interface declaration.
+ * @include: nact/nact-iexecution-tab.h
  *
  * This interface implements all the widgets which define the
  * actual action to be executed.
@@ -44,28 +44,28 @@
 
 G_BEGIN_DECLS
 
-#define NACT_ICOMMAND_TAB_TYPE						( nact_icommand_tab_get_type())
-#define NACT_ICOMMAND_TAB( object )					( G_TYPE_CHECK_INSTANCE_CAST( object, NACT_ICOMMAND_TAB_TYPE, NactICommandTab ))
-#define NACT_IS_ICOMMAND_TAB( object )				( G_TYPE_CHECK_INSTANCE_TYPE( object, NACT_ICOMMAND_TAB_TYPE ))
-#define NACT_ICOMMAND_TAB_GET_INTERFACE( instance )	( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), NACT_ICOMMAND_TAB_TYPE, NactICommandTabInterface ))
+#define NACT_IEXECUTION_TAB_TYPE						( nact_iexecution_tab_get_type())
+#define NACT_IEXECUTION_TAB( object )					( G_TYPE_CHECK_INSTANCE_CAST( object, NACT_IEXECUTION_TAB_TYPE, NactIExecutionTab ))
+#define NACT_IS_IEXECUTION_TAB( object )				( G_TYPE_CHECK_INSTANCE_TYPE( object, NACT_IEXECUTION_TAB_TYPE ))
+#define NACT_IEXECUTION_TAB_GET_INTERFACE( instance )	( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), NACT_IEXECUTION_TAB_TYPE, NactIExecutionTabInterface ))
 
-typedef struct NactICommandTab NactICommandTab;
+typedef struct NactIExecutionTab                 NactIExecutionTab;
 
-typedef struct NactICommandTabInterfacePrivate NactICommandTabInterfacePrivate;
+typedef struct NactIExecutionTabInterfacePrivate NactIExecutionTabInterfacePrivate;
 
 typedef struct {
-	GTypeInterface                   parent;
-	NactICommandTabInterfacePrivate *private;
+	GTypeInterface                     parent;
+	NactIExecutionTabInterfacePrivate *private;
 }
-	NactICommandTabInterface;
+	NactIExecutionTabInterface;
 
-GType    nact_icommand_tab_get_type( void );
+GType nact_iexecution_tab_get_type( void );
 
-void     nact_icommand_tab_initial_load_toplevel( NactICommandTab *instance );
-void     nact_icommand_tab_runtime_init_toplevel( NactICommandTab *instance );
-void     nact_icommand_tab_all_widgets_showed( NactICommandTab *instance );
-void     nact_icommand_tab_dispose( NactICommandTab *instance );
+void  nact_iexecution_tab_initial_load_toplevel( NactIExecutionTab *instance );
+void  nact_iexecution_tab_runtime_init_toplevel( NactIExecutionTab *instance );
+void  nact_iexecution_tab_all_widgets_showed   ( NactIExecutionTab *instance );
+void  nact_iexecution_tab_dispose              ( NactIExecutionTab *instance );
 
 G_END_DECLS
 
-#endif /* __NACT_ICOMMAND_TAB_H__ */
+#endif /* __NACT_IEXECUTION_TAB_H__ */
diff --git a/src/nact/nact-ifolders-tab.c b/src/nact/nact-ifolders-tab.c
index b1666a5..5926184 100644
--- a/src/nact/nact-ifolders-tab.c
+++ b/src/nact/nact-ifolders-tab.c
@@ -294,7 +294,6 @@ on_tab_updatable_selection_changed( NactIFoldersTab *instance, gint count_select
 	static const gchar *thisfn = "nact_ifolders_tab_on_tab_updatable_selection_changed";
 	NAObjectItem *item;
 	NAObjectProfile *profile;
-	gboolean enable_tab;
 	gboolean editable;
 	GtkTreeView *treeview;
 	GtkTreeViewColumn *column;
@@ -318,7 +317,7 @@ on_tab_updatable_selection_changed( NactIFoldersTab *instance, gint count_select
 
 		g_return_if_fail( !item || NA_IS_OBJECT_ITEM( item ));
 
-		enable_tab = tab_set_sensitive( instance );
+		tab_set_sensitive( instance );
 
 		if( item && NA_IS_OBJECT_ACTION( item )){
 			setup_folders( instance );
diff --git a/src/nact/nact-imimetypes-tab.c b/src/nact/nact-imimetypes-tab.c
index 24401c8..70eb112 100644
--- a/src/nact/nact-imimetypes-tab.c
+++ b/src/nact/nact-imimetypes-tab.c
@@ -32,75 +32,30 @@
 #include <config.h>
 #endif
 
-#include <glib/gi18n.h>
-#include <string.h>
-
-#include <api/na-core-utils.h>
 #include <api/na-object-api.h>
 
-#include <core/na-iprefs.h>
-
-#include "base-window.h"
-#include "base-iprefs.h"
-#include "nact-application.h"
-#include "nact-main-statusbar.h"
-#include "nact-gtk-utils.h"
-#include "nact-iprefs.h"
-#include "nact-iactions-list.h"
 #include "nact-main-tab.h"
-#include "nact-icommand-tab.h"
-#include "nact-iconditions-tab.h"
-#include "nact-ischemes-tab.h"
+#include "nact-imimetypes-tab.h"
 
 /* private interface data
  */
-struct NactICommandTabInterfacePrivate {
+struct NactIMimetypesTabInterfacePrivate {
 	void *empty;						/* so that gcc -pedantic is happy */
 };
 
-/* the GConf key used to read/write size and position of auxiliary dialogs
- */
-#define IPREFS_LEGEND_DIALOG				"icommand-legend-dialog"
-#define IPREFS_COMMAND_CHOOSER				"icommand-command-chooser"
-#define IPREFS_FOLDER_URI					"icommand-folder-uri"
-
-/* a data set in the LegendDialog GObject
- */
-#define ICOMMAND_TAB_LEGEND_VISIBLE			"nact-icommand-tab-legend-dialog-visible"
-#define ICOMMAND_TAB_STATUSBAR_CONTEXT		"nact-icommand-tab-statusbar-context"
-
 static gboolean st_initialized = FALSE;
 static gboolean st_finalized = FALSE;
 static gboolean st_on_selection_change = FALSE;
 
-static GType      register_type( void );
-static void       interface_base_init( NactICommandTabInterface *klass );
-static void       interface_base_finalize( NactICommandTabInterface *klass );
-
-static void       on_iactions_list_column_edited( NactICommandTab *instance, NAObject *object, gchar *text, gint column );
-static void       on_tab_updatable_selection_changed( NactICommandTab *instance, gint count_selected );
-static gboolean   tab_set_sensitive( NactICommandTab *instance );
-
-static void       check_for_label( NactICommandTab *instance, GtkEntry *entry, const gchar *label );
-static GtkWidget *get_label_entry( NactICommandTab *instance );
-static GtkButton *get_legend_button( NactICommandTab *instance );
-static GtkWindow *get_legend_dialog( NactICommandTab *instance );
-static GtkWidget *get_parameters_entry( NactICommandTab *instance );
-static GtkButton *get_path_button( NactICommandTab *instance );
-static GtkWidget *get_path_entry( NactICommandTab *instance );
-static void       legend_dialog_show( NactICommandTab *instance );
-static void       legend_dialog_hide( NactICommandTab *instance );
-static void       on_label_changed( GtkEntry *entry, NactICommandTab *instance );
-static void       on_legend_clicked( GtkButton *button, NactICommandTab *instance );
-static void       on_parameters_changed( GtkEntry *entry, NactICommandTab *instance );
-static void       on_path_browse( GtkButton *button, NactICommandTab *instance );
-static void       on_path_changed( GtkEntry *entry, NactICommandTab *instance );
-static gchar     *parse_parameters( NactICommandTab *instance );
-static void       set_label_label( NactICommandTab *instance, const gchar *color );
-static void       update_example_label( NactICommandTab *instance, NAObjectProfile *profile );
+static GType    register_type( void );
+static void     interface_base_init( NactIMimetypesTabInterface *klass );
+static void     interface_base_finalize( NactIMimetypesTabInterface *klass );
+
+static void     on_tab_updatable_selection_changed( NactIMimetypesTab *instance, gint count_selected );
+static gboolean tab_set_sensitive( NactIMimetypesTab *instance );
 
 GType
-nact_icommand_tab_get_type( void )
+nact_imimetypes_tab_get_type( void )
 {
 	static GType iface_type = 0;
 
@@ -114,11 +69,11 @@ nact_icommand_tab_get_type( void )
 static GType
 register_type( void )
 {
-	static const gchar *thisfn = "nact_icommand_tab_register_type";
+	static const gchar *thisfn = "nact_imimetypes_tab_register_type";
 	GType type;
 
 	static const GTypeInfo info = {
-		sizeof( NactICommandTabInterface ),
+		sizeof( NactIMimetypesTabInterface ),
 		( GBaseInitFunc ) interface_base_init,
 		( GBaseFinalizeFunc ) interface_base_finalize,
 		NULL,
@@ -131,7 +86,7 @@ register_type( void )
 
 	g_debug( "%s", thisfn );
 
-	type = g_type_register_static( G_TYPE_INTERFACE, "NactICommandTab", &info, 0 );
+	type = g_type_register_static( G_TYPE_INTERFACE, "NactIMimetypesTab", &info, 0 );
 
 	g_type_interface_add_prerequisite( type, BASE_WINDOW_TYPE );
 
@@ -139,24 +94,24 @@ register_type( void )
 }
 
 static void
-interface_base_init( NactICommandTabInterface *klass )
+interface_base_init( NactIMimetypesTabInterface *klass )
 {
-	static const gchar *thisfn = "nact_icommand_tab_interface_base_init";
+	static const gchar *thisfn = "nact_imimetypes_tab_interface_base_init";
 
 	if( !st_initialized ){
 
 		g_debug( "%s: klass=%p", thisfn, ( void * ) klass );
 
-		klass->private = g_new0( NactICommandTabInterfacePrivate, 1 );
+		klass->private = g_new0( NactIMimetypesTabInterfacePrivate, 1 );
 
 		st_initialized = TRUE;
 	}
 }
 
 static void
-interface_base_finalize( NactICommandTabInterface *klass )
+interface_base_finalize( NactIMimetypesTabInterface *klass )
 {
-	static const gchar *thisfn = "nact_icommand_tab_interface_base_finalize";
+	static const gchar *thisfn = "nact_imimetypes_tab_interface_base_finalize";
 
 	if( st_initialized && !st_finalized ){
 
@@ -169,213 +124,98 @@ interface_base_finalize( NactICommandTabInterface *klass )
 }
 
 /**
- * nact_icommand_tab_initial_load:
- * @window: this #NactICommandTab instance.
+ * nact_imimetypes_tab_initial_load:
+ * @window: this #NactIMimetypesTab instance.
  *
  * Initializes the tab widget at initial load.
- *
- * The GConf preference keys used in this tab were misnamed from v1.11.1
- * up to and including v1.12.0. Starting with v1.12.1, these are migrated
- * here, so that the normal code only makes use of 'good' keys.
  */
 void
-nact_icommand_tab_initial_load_toplevel( NactICommandTab *instance )
+nact_imimetypes_tab_initial_load_toplevel( NactIMimetypesTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_initial_load_toplevel";
+	static const gchar *thisfn = "nact_imimetypes_tab_initial_load_toplevel";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IMIMETYPES_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
-
-		nact_iprefs_migrate_key( BASE_WINDOW( instance ), "iconditions-legend-dialog", IPREFS_LEGEND_DIALOG );
-		nact_iprefs_migrate_key( BASE_WINDOW( instance ), "iconditions-command-chooser", IPREFS_COMMAND_CHOOSER );
-		nact_iprefs_migrate_key( BASE_WINDOW( instance ), "iconditions-folder-uri", IPREFS_FOLDER_URI );
 	}
 }
 
 /**
- * nact_icommand_tab_runtime_init:
- * @window: this #NactICommandTab instance.
+ * nact_imimetypes_tab_runtime_init:
+ * @window: this #NactIMimetypesTab instance.
  *
  * Initializes the tab widget at each time the widget will be displayed.
  * Connect signals and setup runtime values.
  */
 void
-nact_icommand_tab_runtime_init_toplevel( NactICommandTab *instance )
+nact_imimetypes_tab_runtime_init_toplevel( NactIMimetypesTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_runtime_init_toplevel";
-	GtkWidget *label_entry, *path_entry, *parameters_entry;
-	GtkButton *path_button, *legend_button;
+	static const gchar *thisfn = "nact_imimetypes_tab_runtime_init_toplevel";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IMIMETYPES_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
 
-		label_entry = get_label_entry( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( label_entry ),
-				"changed",
-				G_CALLBACK( on_label_changed ));
-
-		path_entry = get_path_entry( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( path_entry ),
-				"changed",
-				G_CALLBACK( on_path_changed ));
-
-		path_button = get_path_button( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( path_button ),
-				"clicked",
-				G_CALLBACK( on_path_browse ));
-
-		parameters_entry = get_parameters_entry( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( parameters_entry ),
-				"changed",
-				G_CALLBACK( on_parameters_changed ));
-
-		legend_button = get_legend_button( instance );
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( legend_button ),
-				"clicked",
-				G_CALLBACK( on_legend_clicked ));
-
 		base_window_signal_connect(
 				BASE_WINDOW( instance ),
 				G_OBJECT( instance ),
 				MAIN_WINDOW_SIGNAL_SELECTION_CHANGED,
 				G_CALLBACK( on_tab_updatable_selection_changed ));
-
-		base_window_signal_connect(
-				BASE_WINDOW( instance ),
-				G_OBJECT( instance ),
-				IACTIONS_LIST_SIGNAL_COLUMN_EDITED,
-				G_CALLBACK( on_iactions_list_column_edited ));
 	}
 }
 
 void
-nact_icommand_tab_all_widgets_showed( NactICommandTab *instance )
+nact_imimetypes_tab_all_widgets_showed( NactIMimetypesTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_all_widgets_showed";
+	static const gchar *thisfn = "nact_imimetypes_tab_all_widgets_showed";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IMIMETYPES_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
 	}
 }
 
 /**
- * nact_icommand_tab_dispose:
- * @window: this #NactICommandTab instance.
+ * nact_imimetypes_tab_dispose:
+ * @window: this #NactIMimetypesTab instance.
  *
  * Called at instance_dispose time.
  */
 void
-nact_icommand_tab_dispose( NactICommandTab *instance )
+nact_imimetypes_tab_dispose( NactIMimetypesTab *instance )
 {
-	static const gchar *thisfn = "nact_icommand_tab_dispose";
+	static const gchar *thisfn = "nact_imimetypes_tab_dispose";
 
 	g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IMIMETYPES_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
-		legend_dialog_hide( instance );
 	}
 }
 
 static void
-on_iactions_list_column_edited( NactICommandTab *instance, NAObject *object, gchar *text, gint column )
+on_tab_updatable_selection_changed( NactIMimetypesTab *instance, gint count_selected )
 {
-	GtkWidget *label_widget;
-
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
-
-	if( st_initialized && !st_finalized ){
-
-		if( NA_IS_OBJECT_PROFILE( object )){
-			label_widget = get_label_entry( instance );
-			gtk_entry_set_text( GTK_ENTRY( label_widget ), text );
-		}
-	}
-}
-
-static void
-on_tab_updatable_selection_changed( NactICommandTab *instance, gint count_selected )
-{
-	static const gchar *thisfn = "nact_icommand_tab_on_tab_updatable_selection_changed";
-	NAObjectItem *item;
-	NAObjectProfile *profile;
-	gboolean enable_tab;
-	GtkWidget *label_entry, *path_entry, *parameters_entry;
-	gchar *label, *path, *parameters;
-	gboolean editable;
-	GtkButton *path_button;
-	GtkButton *legend_button;
+	static const gchar *thisfn = "nact_imimetypes_tab_on_tab_updatable_selection_changed";
 
 	g_debug( "%s: instance=%p, count_selected=%d", thisfn, ( void * ) instance, count_selected );
-	g_return_if_fail( NACT_IS_ICOMMAND_TAB( instance ));
+	g_return_if_fail( NACT_IS_IMIMETYPES_TAB( instance ));
 
 	if( st_initialized && !st_finalized ){
 
 		st_on_selection_change = TRUE;
 
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_ACTION, &item,
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &profile,
-				TAB_UPDATABLE_PROP_EDITABLE, &editable,
-				NULL );
-
-		enable_tab = tab_set_sensitive( instance );
-
-		label_entry = get_label_entry( instance );
-		label = profile ? na_object_get_label( profile ) : g_strdup( "" );
-		label = label ? label : g_strdup( "" );
-		gtk_entry_set_text( GTK_ENTRY( label_entry ), label );
-		check_for_label( instance, GTK_ENTRY( label_entry ), label );
-		g_free( label );
-		gtk_widget_set_sensitive( label_entry, profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( label_entry ), editable );
-
-		path_entry = get_path_entry( instance );
-		path = profile ? na_object_get_path( profile ) : g_strdup( "" );
-		path = path ? path : g_strdup( "" );
-		gtk_entry_set_text( GTK_ENTRY( path_entry ), path );
-		g_free( path );
-		gtk_widget_set_sensitive( path_entry, profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( path_entry ), editable );
-
-		path_button = get_path_button( instance );
-		gtk_widget_set_sensitive( GTK_WIDGET( path_button ), profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( path_button ), editable );
-
-		parameters_entry = get_parameters_entry( instance );
-		parameters = profile ? na_object_get_parameters( profile ) : g_strdup( "" );
-		parameters = parameters ? parameters : g_strdup( "" );
-		gtk_entry_set_text( GTK_ENTRY( parameters_entry ), parameters );
-		g_free( parameters );
-		gtk_widget_set_sensitive( parameters_entry, profile != NULL );
-		nact_gtk_utils_set_editable( GTK_OBJECT( parameters_entry ), editable );
-
-		legend_button = get_legend_button( instance );
-		gtk_widget_set_sensitive( GTK_WIDGET( legend_button ), profile != NULL );
+		tab_set_sensitive( instance );
 
 		st_on_selection_change = FALSE;
 	}
 }
 
 static gboolean
-tab_set_sensitive( NactICommandTab *instance )
+tab_set_sensitive( NactIMimetypesTab *instance )
 {
 	NAObjectProfile *profile;
 	gboolean enable_tab;
@@ -386,475 +226,7 @@ tab_set_sensitive( NactICommandTab *instance )
 			NULL );
 
 	enable_tab = ( profile != NULL );
-	nact_main_tab_enable_page( NACT_MAIN_WINDOW( instance ), TAB_COMMAND, enable_tab );
+	nact_main_tab_enable_page( NACT_MAIN_WINDOW( instance ), TAB_MIMETYPES, enable_tab );
 
 	return( enable_tab );
 }
-
-static void
-check_for_label( NactICommandTab *instance, GtkEntry *entry, const gchar *label )
-{
-	NAObjectProfile *edited;
-
-	nact_main_statusbar_hide_status(
-			NACT_MAIN_WINDOW( instance ),
-			ICOMMAND_TAB_STATUSBAR_CONTEXT );
-
-	set_label_label( instance, "black" );
-
-	g_object_get(
-			G_OBJECT( instance ),
-			TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-			NULL );
-
-	if( edited && g_utf8_strlen( label, -1 ) == 0 ){
-
-		/* i18n: status bar message when the profile label is empty */
-		nact_main_statusbar_display_status(
-				NACT_MAIN_WINDOW( instance ),
-				ICOMMAND_TAB_STATUSBAR_CONTEXT,
-				_( "Caution: a label is mandatory for the profile." ));
-
-		set_label_label( instance, "red" );
-	}
-}
-
-static GtkWidget *
-get_label_entry( NactICommandTab *instance )
-{
-	return( base_window_get_widget( BASE_WINDOW( instance ), "ProfileLabelEntry" ));
-}
-
-static GtkButton *
-get_legend_button( NactICommandTab *instance )
-{
-	return( GTK_BUTTON( base_window_get_widget( BASE_WINDOW( instance ), "CommandLegendButton" )));
-}
-
-static GtkWindow *
-get_legend_dialog( NactICommandTab *instance )
-{
-	return( base_window_get_named_toplevel( BASE_WINDOW( instance ), "LegendDialog" ));
-}
-
-static GtkWidget *
-get_parameters_entry( NactICommandTab *instance )
-{
-	return( base_window_get_widget( BASE_WINDOW( instance ), "CommandParametersEntry" ));
-}
-
-static GtkButton *
-get_path_button( NactICommandTab *instance )
-{
-	return( GTK_BUTTON( base_window_get_widget( BASE_WINDOW( instance ), "CommandPathButton" )));
-}
-
-static GtkWidget *
-get_path_entry( NactICommandTab *instance )
-{
-	return( base_window_get_widget( BASE_WINDOW( instance ), "CommandPathEntry" ));
-}
-
-static void
-legend_dialog_hide( NactICommandTab *instance )
-{
-	GtkWindow *legend_dialog;
-	GtkButton *legend_button;
-	gboolean is_visible;
-
-	legend_dialog = get_legend_dialog( instance );
-	is_visible = ( gboolean ) GPOINTER_TO_INT(
-			g_object_get_data( G_OBJECT( legend_dialog ), ICOMMAND_TAB_LEGEND_VISIBLE ));
-
-	if( is_visible ){
-		g_assert( GTK_IS_WINDOW( legend_dialog ));
-		base_iprefs_save_named_window_position( BASE_WINDOW( instance ), legend_dialog, IPREFS_LEGEND_DIALOG );
-		gtk_widget_hide( GTK_WIDGET( legend_dialog ));
-
-		/* set the legend button state consistent for when the dialog is
-		 * hidden by another mean (eg. close the edit profile dialog)
-		 */
-		legend_button = get_legend_button( instance );
-		gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( legend_button ), FALSE );
-
-		g_object_set_data( G_OBJECT( legend_dialog ), ICOMMAND_TAB_LEGEND_VISIBLE, GINT_TO_POINTER( FALSE ));
-	}
-}
-
-static void
-legend_dialog_show( NactICommandTab *instance )
-{
-	GtkWindow *legend_dialog;
-	GtkWindow *toplevel;
-
-	legend_dialog = get_legend_dialog( instance );
-	gtk_window_set_deletable( legend_dialog, FALSE );
-
-	toplevel = base_window_get_toplevel( BASE_WINDOW( instance ));
-	gtk_window_set_transient_for( GTK_WINDOW( legend_dialog ), toplevel );
-
-	base_iprefs_position_named_window( BASE_WINDOW( instance ), legend_dialog, IPREFS_LEGEND_DIALOG );
-	gtk_widget_show( GTK_WIDGET( legend_dialog ));
-
-	g_object_set_data( G_OBJECT( legend_dialog ), ICOMMAND_TAB_LEGEND_VISIBLE, GINT_TO_POINTER( TRUE ));
-}
-
-static void
-on_label_changed( GtkEntry *entry, NactICommandTab *instance )
-{
-	NAObjectProfile *edited;
-	const gchar *label;
-
-	if( !st_on_selection_change ){
-
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-				NULL );
-
-		if( edited ){
-			label = gtk_entry_get_text( entry );
-			na_object_set_label( edited, label );
-			g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, TRUE );
-			check_for_label( instance, entry, label );
-		}
-	}
-}
-
-static void
-on_legend_clicked( GtkButton *button, NactICommandTab *instance )
-{
-	if( gtk_toggle_button_get_active( GTK_TOGGLE_BUTTON( button ))){
-		legend_dialog_show( instance );
-
-	} else {
-		legend_dialog_hide( instance );
-	}
-}
-
-static void
-on_parameters_changed( GtkEntry *entry, NactICommandTab *instance )
-{
-	NAObjectProfile *edited;
-
-	if( !st_on_selection_change ){
-
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-				NULL );
-
-		if( edited ){
-			na_object_set_parameters( edited, gtk_entry_get_text( entry ));
-			g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
-			update_example_label( instance, edited );
-		}
-	}
-}
-
-static void
-on_path_browse( GtkButton *button, NactICommandTab *instance )
-{
-	gboolean set_current_location = FALSE;
-	gchar *uri = NULL;
-	NactApplication *application;
-	NAUpdater *updater;
-	GtkWindow *toplevel;
-	GtkWidget *dialog;
-	GtkWidget *path_entry;
-	const gchar *path;
-	gchar *filename;
-
-	application = NACT_APPLICATION( base_window_get_application( BASE_WINDOW( instance )));
-	updater = nact_application_get_updater( application );
-	toplevel = base_window_get_toplevel( BASE_WINDOW( instance ));
-
-	dialog = gtk_file_chooser_dialog_new(
-			_( "Choosing a command" ),
-			toplevel,
-			GTK_FILE_CHOOSER_ACTION_OPEN,
-			GTK_STOCK_CANCEL, GTK_RESPONSE_CANCEL,
-			GTK_STOCK_OPEN, GTK_RESPONSE_ACCEPT,
-			NULL
-			);
-
-	base_iprefs_position_named_window( BASE_WINDOW( instance ), GTK_WINDOW( dialog ), IPREFS_COMMAND_CHOOSER );
-
-	path_entry = get_path_entry( instance );
-	path = gtk_entry_get_text( GTK_ENTRY( path_entry ));
-
-	if( path && strlen( path )){
-		set_current_location = gtk_file_chooser_set_filename( GTK_FILE_CHOOSER( dialog ), path );
-
-	} else {
-		uri = na_iprefs_read_string( NA_IPREFS( updater ), IPREFS_FOLDER_URI, "file:///bin" );
-		gtk_file_chooser_set_current_folder_uri( GTK_FILE_CHOOSER( dialog ), uri );
-		g_free( uri );
-	}
-
-	if( gtk_dialog_run( GTK_DIALOG( dialog )) == GTK_RESPONSE_ACCEPT ){
-		filename = gtk_file_chooser_get_filename( GTK_FILE_CHOOSER( dialog ));
-		gtk_entry_set_text( GTK_ENTRY( path_entry ), filename );
-	    g_free (filename);
-	  }
-
-	uri = gtk_file_chooser_get_current_folder_uri( GTK_FILE_CHOOSER( dialog ));
-	nact_iprefs_write_string( BASE_WINDOW( instance ), IPREFS_FOLDER_URI, uri );
-	g_free( uri );
-
-	base_iprefs_save_named_window_position( BASE_WINDOW( instance ), GTK_WINDOW( dialog ), IPREFS_COMMAND_CHOOSER );
-
-	gtk_widget_destroy( dialog );
-}
-
-static void
-on_path_changed( GtkEntry *entry, NactICommandTab *instance )
-{
-	NAObjectProfile *edited;
-
-	if( !st_on_selection_change ){
-
-		g_object_get(
-				G_OBJECT( instance ),
-				TAB_UPDATABLE_PROP_EDITED_PROFILE, &edited,
-				NULL );
-
-		if( edited ){
-
-			na_object_set_path( edited, gtk_entry_get_text( entry ));
-			g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
-			update_example_label( instance, edited );
-		}
-	}
-}
-
-/*
- * Valid parameters :
- *
- * %d : base dir of the (first) selected file(s)/folder(s)
- * %f : the name of the (firstà selected file/folder
- * %h : hostname of the (first) URI
- * %m : list of the basename of the selected files/directories separated by space.
- * %M : list of the selected files/directories with their complete path separated by space.
- * %p : port number of the (first) URI
- * %R : space-separated list of selected URIs
- * %s : scheme of the (first) URI
- * %u : (first) URI
- * %U : username of the (first) URI
- * %% : a percent sign
- */
-static gchar *
-parse_parameters( NactICommandTab *instance )
-{
-	GString *tmp_string = g_string_new( "" );
-
-	/* i18n notes: example strings for the command preview */
-	gchar *ex_path = _( "/path/to" );
-	gchar *ex_files[] = { N_( "file1.txt" ), N_( "file2.txt" ), NULL };
-	gchar *ex_dirs[] = { N_(" folder1" ), N_( "folder2" ), NULL };
-	gchar *ex_mixed[] = { N_(" file1.txt" ), N_( "folder1" ), NULL };
-	gchar *ex_scheme_default = "file";
-	gchar *ex_host_default = _( "test.example.net" );
-	gchar *ex_one_file = _( "file.txt" );
-	gchar *ex_one_dir = _( "folder" );
-	gchar *ex_port_default = _( "8080" );
-	gchar *ex_one = NULL;
-	gchar *ex_list = NULL;
-	gchar *ex_path_list = NULL;
-	gchar *ex_uri_file1 = _( "file:///path/to/file1.text" );
-	gchar *ex_uri_file2 = _( "file:///path/to/file2.text" );
-	gchar *ex_uri_folder1 = _( "file:///path/to/a/dir" );
-	gchar *ex_uri_folder2 = _( "file:///path/to/another/dir" );
-	gchar *ex_uri_list = NULL;
-	gchar *ex_scheme;
-	gchar *ex_host;
-	gboolean is_file, is_dir;
-	gboolean accept_multiple;
-	GSList *scheme_list;
-	guint iter_inc;
-
-	const gchar *command = gtk_entry_get_text( GTK_ENTRY( get_path_entry( instance )));
-	const gchar *param_template = gtk_entry_get_text( GTK_ENTRY( get_parameters_entry( instance )));
-
-	gchar *iter = g_strdup( param_template );
-	gchar *old_iter = iter;
-	gchar *tmp;
-	gchar *separator;
-	gchar *start;
-
-	g_string_append_printf( tmp_string, "%s ", command );
-
-	/*nact_iconditions_tab_get_isfiledir( NACT_ICONDITIONS_TAB( instance ), &is_file, &is_dir );
-	accept_multiple = nact_iconditions_tab_get_multiple( NACT_ICONDITIONS_TAB( instance ));*/
-	is_file = TRUE;
-	is_dir = TRUE;
-	accept_multiple = TRUE;
-
-	scheme_list = nact_ischemes_tab_get_schemes( NACT_ISCHEMES_TAB( instance ));
-
-	separator = g_strdup_printf( " %s/", ex_path );
-	start = g_strdup_printf( "%s/", ex_path );
-
-	if( accept_multiple ){
-		if( is_file && is_dir ){
-			ex_one = ex_files[0];
-			ex_list = na_core_utils_gstring_joinv( NULL, " ", ex_mixed );
-			ex_path_list = na_core_utils_gstring_joinv( start, separator, ex_mixed );
-			ex_uri_list = g_strjoin( " ", ex_uri_file1, ex_uri_folder1, NULL );
-
-		} else if( is_dir ){
-			ex_one = ex_dirs[0];
-			ex_list = na_core_utils_gstring_joinv( NULL, " ", ex_dirs );
-			ex_path_list = na_core_utils_gstring_joinv( start, separator, ex_dirs );
-			ex_uri_list = g_strjoin( " ", ex_uri_folder1, ex_uri_folder2, NULL );
-
-		} else if( is_file ){
-			ex_one = ex_files[0];
-			ex_list = na_core_utils_gstring_joinv( NULL, " ", ex_files );
-			ex_path_list = na_core_utils_gstring_joinv( start, separator, ex_files );
-			ex_uri_list = g_strjoin( " ", ex_uri_file1, ex_uri_file2, NULL );
-		}
-	} else {
-		if( is_dir && !is_file ){
-			ex_one = ex_one_dir;
-			ex_uri_list = g_strdup( ex_uri_folder1 );
-
-		} else {
-			ex_one = ex_one_file;
-			ex_uri_list = g_strdup( ex_uri_file1 );
-		}
-		ex_list = g_strdup( ex_one );
-		ex_path_list = g_strjoin( "/", ex_path, ex_one, NULL );
-	}
-
-	g_free (start);
-	g_free (separator);
-
-	if( scheme_list != NULL ){
-		ex_scheme = ( gchar * ) scheme_list->data;
-		if( g_ascii_strcasecmp( ex_scheme, "file" ) == 0 ){
-			if( g_slist_length( scheme_list ) > 1 ){
-				ex_scheme = ( gchar * ) scheme_list->next->data;
-				ex_host = ex_host_default;
-			} else {
-				ex_host = "";
-			}
-		} else {
-			ex_host = ex_host_default;
-		}
-	} else {
-		ex_scheme = ex_scheme_default;
-		ex_host = "";
-	}
-
-	while(( iter = g_strstr_len( iter, strlen( iter ), "%" ))){
-		tmp_string = g_string_append_len( tmp_string, old_iter, strlen( old_iter ) - strlen( iter ));
-		iter_inc = 1;
-		switch( iter[1] ){
-
-			case 'd': /* base dir of the (first) selected file(s)/folder(s) */
-				tmp_string = g_string_append( tmp_string, ex_path );
-				break;
-
-			case 'f': /* the basename of the (first) selected file/folder */
-				tmp_string = g_string_append( tmp_string, ex_one );
-				break;
-
-			case 'h': /* hostname of the (first) URI */
-				tmp_string = g_string_append( tmp_string, ex_host );
-				break;
-
-			case 'm': /* list of the basename of the selected files/directories separated by space */
-				tmp_string = g_string_append( tmp_string, ex_list );
-				break;
-
-			case 'M': /* list of the selected files/directories with their complete path separated by space. */
-				tmp_string = g_string_append( tmp_string, ex_path_list );
-				break;
-
-			case 'p': /* port number of the (first) URI */
-				tmp_string = g_string_append( tmp_string, ex_port_default );
-				break;
-
-			case 'R': /* space-separated list of selected URIs */
-				tmp_string = g_string_append( tmp_string, ex_uri_list );
-				break;
-
-			case 's': /* scheme of the (first) URI */
-				tmp_string = g_string_append( tmp_string, ex_scheme );
-				break;
-
-			case 'u': /* (first) URI */
-				tmp = g_strjoin( NULL, ex_scheme, "://", ex_path, "/", ex_one, NULL );
-				tmp_string = g_string_append( tmp_string, tmp );
-				g_free( tmp );
-				break;
-
-			case 'U': /* username of the GVfs URI */
-				tmp_string = g_string_append( tmp_string, "root" );
-				break;
-
-			case '%': /* a percent sign */
-				tmp_string = g_string_append_c( tmp_string, '%' );
-				break;
-
-			default:
-				iter_inc = 1;
-				break;
-		}
-		iter += iter_inc;				/* skip the % sign and the character after. */
-		old_iter = iter;				/* store the new start of the string */
-	}
-	tmp_string = g_string_append_len( tmp_string, old_iter, strlen( old_iter ));
-
-	na_core_utils_slist_free( scheme_list );
-
-	g_free( ex_list );
-	g_free( ex_path_list );
-	g_free( ex_uri_list );
-	g_free( iter );
-
-	return( g_string_free( tmp_string, FALSE ));
-}
-
-static void
-set_label_label( NactICommandTab *instance, const gchar *color_str )
-{
-	GtkWidget *label;
-	GdkColor color;
-
-	label = base_window_get_widget( BASE_WINDOW( instance ), "ProfileLabelLabel" );
-	gdk_color_parse( color_str, &color );
-	gtk_widget_modify_fg( label, GTK_STATE_NORMAL, &color );
-}
-
-static void
-update_example_label( NactICommandTab *instance, NAObjectProfile *profile )
-{
-	/*static const char *thisfn = "nact_iconditions_update_example_label";*/
-	gchar *newlabel;
-	gchar *parameters;
-	GtkWidget *example_widget;
-
-	example_widget = base_window_get_widget( BASE_WINDOW( instance ), "CommandExampleLabel" );
-
-	if( profile ){
-		parameters = parse_parameters( instance );
-		/*g_debug( "%s: parameters=%s", thisfn, parameters );*/
-
-		/* convert special xml chars (&, <, >,...) to avoid warnings
-		 * generated by Pango parser
-		 */
-		/* i18n: command-line example: e.g., /bin/ls file1.txt file2.txt */
-		newlabel = g_markup_printf_escaped(
-				"<i><b><span size=\"small\">%s %s</span></b></i>", _( "e.g.," ), parameters );
-
-		g_free( parameters );
-
-	} else {
-		newlabel = g_strdup( "" );
-	}
-
-	gtk_label_set_label( GTK_LABEL( example_widget ), newlabel );
-	g_free( newlabel );
-}
diff --git a/src/nact/nact-imimetypes-tab.h b/src/nact/nact-imimetypes-tab.h
index 122725d..ae2ffbd 100644
--- a/src/nact/nact-imimetypes-tab.h
+++ b/src/nact/nact-imimetypes-tab.h
@@ -28,44 +28,44 @@
  *   ... and many others (see AUTHORS)
  */
 
-#ifndef __NACT_ICOMMAND_TAB_H__
-#define __NACT_ICOMMAND_TAB_H__
+#ifndef __NACT_IMIMETYPES_TAB_H__
+#define __NACT_IMIMETYPES_TAB_H__
 
 /**
- * SECTION: nact_icommand_tab
- * @short_description: #NactICommandTab interface declaration.
- * @include: nact/nact-icommand-tab.h
+ * SECTION: nact_imimetypes_tab
+ * @short_description: #NactIMimetypesTab interface declaration.
+ * @include: nact/nact-imimetypes-tab.h
  *
  * This interface implements all the widgets which define the
- * actual action to be executed.
+ * mimetypes-based conditions.
  */
 
 #include <glib-object.h>
 
 G_BEGIN_DECLS
 
-#define NACT_ICOMMAND_TAB_TYPE						( nact_icommand_tab_get_type())
-#define NACT_ICOMMAND_TAB( object )					( G_TYPE_CHECK_INSTANCE_CAST( object, NACT_ICOMMAND_TAB_TYPE, NactICommandTab ))
-#define NACT_IS_ICOMMAND_TAB( object )				( G_TYPE_CHECK_INSTANCE_TYPE( object, NACT_ICOMMAND_TAB_TYPE ))
-#define NACT_ICOMMAND_TAB_GET_INTERFACE( instance )	( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), NACT_ICOMMAND_TAB_TYPE, NactICommandTabInterface ))
+#define NACT_IMIMETYPES_TAB_TYPE						( nact_imimetypes_tab_get_type())
+#define NACT_IMIMETYPES_TAB( object )					( G_TYPE_CHECK_INSTANCE_CAST( object, NACT_IMIMETYPES_TAB_TYPE, NactIMimetypesTab ))
+#define NACT_IS_IMIMETYPES_TAB( object )				( G_TYPE_CHECK_INSTANCE_TYPE( object, NACT_IMIMETYPES_TAB_TYPE ))
+#define NACT_IMIMETYPES_TAB_GET_INTERFACE( instance )	( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), NACT_IMIMETYPES_TAB_TYPE, NactIMimetypesTabInterface ))
 
-typedef struct NactICommandTab NactICommandTab;
+typedef struct NactIMimetypesTab                 NactIMimetypesTab;
 
-typedef struct NactICommandTabInterfacePrivate NactICommandTabInterfacePrivate;
+typedef struct NactIMimetypesTabInterfacePrivate NactIMimetypesTabInterfacePrivate;
 
 typedef struct {
-	GTypeInterface                   parent;
-	NactICommandTabInterfacePrivate *private;
+	GTypeInterface                     parent;
+	NactIMimetypesTabInterfacePrivate *private;
 }
-	NactICommandTabInterface;
+	NactIMimetypesTabInterface;
 
-GType    nact_icommand_tab_get_type( void );
+GType nact_imimetypes_tab_get_type( void );
 
-void     nact_icommand_tab_initial_load_toplevel( NactICommandTab *instance );
-void     nact_icommand_tab_runtime_init_toplevel( NactICommandTab *instance );
-void     nact_icommand_tab_all_widgets_showed( NactICommandTab *instance );
-void     nact_icommand_tab_dispose( NactICommandTab *instance );
+void  nact_imimetypes_tab_initial_load_toplevel( NactIMimetypesTab *instance );
+void  nact_imimetypes_tab_runtime_init_toplevel( NactIMimetypesTab *instance );
+void  nact_imimetypes_tab_all_widgets_showed   ( NactIMimetypesTab *instance );
+void  nact_imimetypes_tab_dispose              ( NactIMimetypesTab *instance );
 
 G_END_DECLS
 
-#endif /* __NACT_ICOMMAND_TAB_H__ */
+#endif /* __NACT_IMIMETYPES_TAB_H__ */
diff --git a/src/nact/nact-iproperties-tab.c b/src/nact/nact-iproperties-tab.c
index 7e382f1..f31d3fe 100644
--- a/src/nact/nact-iproperties-tab.c
+++ b/src/nact/nact-iproperties-tab.c
@@ -260,12 +260,13 @@ on_tab_updatable_selection_changed( NactIPropertiesTab *instance, gint count_sel
 			notebook = GTK_NOTEBOOK( base_window_get_widget( BASE_WINDOW( instance ), "MainNotebook" ));
 			page = gtk_notebook_get_nth_page( notebook, TAB_ACTION );
 			title_widget = base_window_get_widget( BASE_WINDOW( instance ), "ActionPropertiesTitle" );
+			label_widget = gtk_notebook_get_tab_label( notebook, page );
 			if( item && NA_IS_OBJECT_MENU( item )){
-				gtk_notebook_set_tab_label_text( notebook, page, _( "Menu" ));
-				gtk_label_set_markup( GTK_LABEL( title_widget ), _( "<b>Menu properties</b>" ));
+				gtk_label_set_label( GTK_LABEL( label_widget ), _( "Me_nu" ));
+				gtk_label_set_markup( GTK_LABEL( title_widget ), _( "<b>Menu editable properties</b>" ));
 			} else {
-				gtk_notebook_set_tab_label_text( notebook, page, _( "Action" ));
-				gtk_label_set_markup( GTK_LABEL( title_widget ), _( "<b>Action properties</b>" ));
+				gtk_label_set_label( GTK_LABEL( label_widget ), _( "_Action" ));
+				gtk_label_set_markup( GTK_LABEL( title_widget ), _( "<b>Action editable properties</b>" ));
 			}
 		}
 
diff --git a/src/nact/nact-ischemes-tab.c b/src/nact/nact-ischemes-tab.c
index 0532195..9f8f1ec 100644
--- a/src/nact/nact-ischemes-tab.c
+++ b/src/nact/nact-ischemes-tab.c
@@ -234,7 +234,6 @@ on_tab_updatable_selection_changed( NactISchemesTab *instance, gint count_select
 	static const gchar *thisfn = "nact_ischemes_tab_on_tab_updatable_selection_changed";
 	NAObjectItem *item;
 	NAObjectProfile *profile;
-	gboolean enable_tab;
 	GSList *schemes;
 	gboolean editable;
 
@@ -251,7 +250,7 @@ on_tab_updatable_selection_changed( NactISchemesTab *instance, gint count_select
 				TAB_UPDATABLE_PROP_EDITABLE, &editable,
 				NULL );
 
-		enable_tab = tab_set_sensitive( instance );
+		tab_set_sensitive( instance );
 
 		if( profile ){
 			schemes = na_object_get_schemes( profile );
diff --git a/src/nact/nact-main-tab.h b/src/nact/nact-main-tab.h
index 657d4b1..6edf574 100644
--- a/src/nact/nact-main-tab.h
+++ b/src/nact/nact-main-tab.h
@@ -61,9 +61,12 @@
 enum {
 	TAB_ACTION = 0,
 	TAB_COMMAND,
+	TAB_BASENAMES,
+	TAB_MIMETYPES,
 	TAB_FOLDERS,
-	TAB_CONDITIONS,
 	TAB_SCHEMES,
+	TAB_ENVIRONMENT,
+	TAB_EXECUTION,
 	TAB_PROPERTIES
 };
 
diff --git a/src/nact/nact-main-window.c b/src/nact/nact-main-window.c
index 48e7dc0..1817d0b 100644
--- a/src/nact/nact-main-window.c
+++ b/src/nact/nact-main-window.c
@@ -49,10 +49,13 @@
 #include "nact-iactions-list.h"
 #include "nact-iaction-tab.h"
 #include "nact-icommand-tab.h"
+#include "nact-ibasenames-tab.h"
+#include "nact-imimetypes-tab.h"
 #include "nact-ifolders-tab.h"
-#include "nact-iconditions-tab.h"
-#include "nact-iproperties-tab.h"
 #include "nact-ischemes-tab.h"
+#include "nact-ienvironment-tab.h"
+#include "nact-iexecution-tab.h"
+#include "nact-iproperties-tab.h"
 #include "nact-main-tab.h"
 #include "nact-main-menubar.h"
 #include "nact-main-statusbar.h"
@@ -146,9 +149,12 @@ static void     class_init( NactMainWindowClass *klass );
 static void     iactions_list_iface_init( NactIActionsListInterface *iface );
 static void     iaction_tab_iface_init( NactIActionTabInterface *iface );
 static void     icommand_tab_iface_init( NactICommandTabInterface *iface );
+static void     ibasenames_tab_iface_init( NactIBasenamesTabInterface *iface );
+static void     imimetypes_tab_iface_init( NactIMimetypesTabInterface *iface );
 static void     ifolders_tab_iface_init( NactIFoldersTabInterface *iface );
-static void     iconditions_tab_iface_init( NactIConditionsTabInterface *iface );
 static void     ischemes_tab_iface_init( NactISchemesTabInterface *iface );
+static void     ienvironment_tab_iface_init( NactIEnvironmentTabInterface *iface );
+static void     iexecution_tab_iface_init( NactIExecutionTabInterface *iface );
 static void     iproperties_tab_iface_init( NactIPropertiesTabInterface *iface );
 static void     iabout_iface_init( NAIAboutInterface *iface );
 static void     ipivot_consumer_iface_init( NAIPivotConsumerInterface *iface );
@@ -235,14 +241,20 @@ register_type( void )
 		NULL
 	};
 
-	static const GInterfaceInfo ifolders_tab_iface_info = {
-		( GInterfaceInitFunc ) ifolders_tab_iface_init,
+	static const GInterfaceInfo ibasenames_tab_iface_info = {
+		( GInterfaceInitFunc ) ibasenames_tab_iface_init,
+		NULL,
+		NULL
+	};
+
+	static const GInterfaceInfo imimetypes_tab_iface_info = {
+		( GInterfaceInitFunc ) imimetypes_tab_iface_init,
 		NULL,
 		NULL
 	};
 
-	static const GInterfaceInfo iconditions_tab_iface_info = {
-		( GInterfaceInitFunc ) iconditions_tab_iface_init,
+	static const GInterfaceInfo ifolders_tab_iface_info = {
+		( GInterfaceInitFunc ) ifolders_tab_iface_init,
 		NULL,
 		NULL
 	};
@@ -253,6 +265,18 @@ register_type( void )
 		NULL
 	};
 
+	static const GInterfaceInfo ienvironment_tab_iface_info = {
+		( GInterfaceInitFunc ) ienvironment_tab_iface_init,
+		NULL,
+		NULL
+	};
+
+	static const GInterfaceInfo iexecution_tab_iface_info = {
+		( GInterfaceInitFunc ) iexecution_tab_iface_init,
+		NULL,
+		NULL
+	};
+
 	static const GInterfaceInfo iproperties_tab_iface_info = {
 		( GInterfaceInitFunc ) iproperties_tab_iface_init,
 		NULL,
@@ -287,12 +311,18 @@ register_type( void )
 
 	g_type_add_interface_static( type, NACT_ICOMMAND_TAB_TYPE, &icommand_tab_iface_info );
 
-	g_type_add_interface_static( type, NACT_IFOLDERS_TAB_TYPE, &ifolders_tab_iface_info );
+	g_type_add_interface_static( type, NACT_IBASENAMES_TAB_TYPE, &ibasenames_tab_iface_info );
+
+	g_type_add_interface_static( type, NACT_IMIMETYPES_TAB_TYPE, &imimetypes_tab_iface_info );
 
-	g_type_add_interface_static( type, NACT_ICONDITIONS_TAB_TYPE, &iconditions_tab_iface_info );
+	g_type_add_interface_static( type, NACT_IFOLDERS_TAB_TYPE, &ifolders_tab_iface_info );
 
 	g_type_add_interface_static( type, NACT_ISCHEMES_TAB_TYPE, &ischemes_tab_iface_info );
 
+	g_type_add_interface_static( type, NACT_IENVIRONMENT_TAB_TYPE, &ienvironment_tab_iface_info );
+
+	g_type_add_interface_static( type, NACT_IEXECUTION_TAB_TYPE, &iexecution_tab_iface_info );
+
 	g_type_add_interface_static( type, NACT_IPROPERTIES_TAB_TYPE, &iproperties_tab_iface_info );
 
 	g_type_add_interface_static( type, NA_IABOUT_TYPE, &iabout_iface_info );
@@ -517,17 +547,25 @@ icommand_tab_iface_init( NactICommandTabInterface *iface )
 }
 
 static void
-ifolders_tab_iface_init( NactIFoldersTabInterface *iface )
+ibasenames_tab_iface_init( NactIBasenamesTabInterface *iface )
 {
-	static const gchar *thisfn = "nact_main_window_ifolders_tab_iface_init";
+	static const gchar *thisfn = "nact_main_window_ibasenames_tab_iface_init";
+
+	g_debug( "%s: iface=%p", thisfn, ( void * ) iface );
+}
+
+static void
+imimetypes_tab_iface_init( NactIMimetypesTabInterface *iface )
+{
+	static const gchar *thisfn = "nact_main_window_imimetypes_tab_iface_init";
 
 	g_debug( "%s: iface=%p", thisfn, ( void * ) iface );
 }
 
 static void
-iconditions_tab_iface_init( NactIConditionsTabInterface *iface )
+ifolders_tab_iface_init( NactIFoldersTabInterface *iface )
 {
-	static const gchar *thisfn = "nact_main_window_iconditions_tab_iface_init";
+	static const gchar *thisfn = "nact_main_window_ifolders_tab_iface_init";
 
 	g_debug( "%s: iface=%p", thisfn, ( void * ) iface );
 }
@@ -541,6 +579,22 @@ ischemes_tab_iface_init( NactISchemesTabInterface *iface )
 }
 
 static void
+ienvironment_tab_iface_init( NactIEnvironmentTabInterface *iface )
+{
+	static const gchar *thisfn = "nact_main_window_ienvironment_tab_iface_init";
+
+	g_debug( "%s: iface=%p", thisfn, ( void * ) iface );
+}
+
+static void
+iexecution_tab_iface_init( NactIExecutionTabInterface *iface )
+{
+	static const gchar *thisfn = "nact_main_window_iexecution_tab_iface_init";
+
+	g_debug( "%s: iface=%p", thisfn, ( void * ) iface );
+}
+
+static void
 iproperties_tab_iface_init( NactIPropertiesTabInterface *iface )
 {
 	static const gchar *thisfn = "nact_main_window_iproperties_tab_iface_init";
@@ -728,9 +782,12 @@ instance_dispose( GObject *window )
 		nact_sort_buttons_dispose( self );
 		nact_iaction_tab_dispose( NACT_IACTION_TAB( window ));
 		nact_icommand_tab_dispose( NACT_ICOMMAND_TAB( window ));
+		nact_ibasenames_tab_dispose( NACT_IBASENAMES_TAB( window ));
+		nact_imimetypes_tab_dispose( NACT_IMIMETYPES_TAB( window ));
 		nact_ifolders_tab_dispose( NACT_IFOLDERS_TAB( window ));
-		nact_iconditions_tab_dispose( NACT_ICONDITIONS_TAB( window ));
 		nact_ischemes_tab_dispose( NACT_ISCHEMES_TAB( window ));
+		nact_ienvironment_tab_dispose( NACT_IENVIRONMENT_TAB( window ));
+		nact_iexecution_tab_dispose( NACT_IEXECUTION_TAB( window ));
 		nact_iproperties_tab_dispose( NACT_IPROPERTIES_TAB( window ));
 		nact_main_menubar_dispose( self );
 
@@ -1052,9 +1109,12 @@ on_base_initial_load_toplevel( NactMainWindow *window, gpointer user_data )
 
 		nact_iaction_tab_initial_load_toplevel( NACT_IACTION_TAB( window ));
 		nact_icommand_tab_initial_load_toplevel( NACT_ICOMMAND_TAB( window ));
+		nact_ibasenames_tab_initial_load_toplevel( NACT_IBASENAMES_TAB( window ));
+		nact_imimetypes_tab_initial_load_toplevel( NACT_IMIMETYPES_TAB( window ));
 		nact_ifolders_tab_initial_load_toplevel( NACT_IFOLDERS_TAB( window ));
-		nact_iconditions_tab_initial_load_toplevel( NACT_ICONDITIONS_TAB( window ));
 		nact_ischemes_tab_initial_load_toplevel( NACT_ISCHEMES_TAB( window ));
+		nact_ienvironment_tab_initial_load_toplevel( NACT_IENVIRONMENT_TAB( window ));
+		nact_iexecution_tab_initial_load_toplevel( NACT_IEXECUTION_TAB( window ));
 		nact_iproperties_tab_initial_load_toplevel( NACT_IPROPERTIES_TAB( window ));
 
 		nact_main_statusbar_initial_load_toplevel( window );
@@ -1090,10 +1150,14 @@ on_base_runtime_init_toplevel( NactMainWindow *window, gpointer user_data )
 
 		nact_iaction_tab_runtime_init_toplevel( NACT_IACTION_TAB( window ));
 		nact_icommand_tab_runtime_init_toplevel( NACT_ICOMMAND_TAB( window ));
+		nact_ibasenames_tab_runtime_init_toplevel( NACT_IBASENAMES_TAB( window ));
+		nact_imimetypes_tab_runtime_init_toplevel( NACT_IMIMETYPES_TAB( window ));
 		nact_ifolders_tab_runtime_init_toplevel( NACT_IFOLDERS_TAB( window ));
-		nact_iconditions_tab_runtime_init_toplevel( NACT_ICONDITIONS_TAB( window ));
 		nact_ischemes_tab_runtime_init_toplevel( NACT_ISCHEMES_TAB( window ));
+		nact_ienvironment_tab_runtime_init_toplevel( NACT_IENVIRONMENT_TAB( window ));
+		nact_iexecution_tab_runtime_init_toplevel( NACT_IEXECUTION_TAB( window ));
 		nact_iproperties_tab_runtime_init_toplevel( NACT_IPROPERTIES_TAB( window ));
+
 		nact_main_menubar_runtime_init( window );
 
 		order_mode = na_iprefs_get_order_mode( NA_IPREFS( updater ));
@@ -1130,18 +1194,24 @@ on_base_all_widgets_showed( NactMainWindow *window, gpointer user_data )
 	g_return_if_fail( NACT_IS_IACTIONS_LIST( window ));
 	g_return_if_fail( NACT_IS_IACTION_TAB( window ));
 	g_return_if_fail( NACT_IS_ICOMMAND_TAB( window ));
+	g_return_if_fail( NACT_IS_IBASENAMES_TAB( window ));
+	g_return_if_fail( NACT_IS_IMIMETYPES_TAB( window ));
 	g_return_if_fail( NACT_IS_IFOLDERS_TAB( window ));
-	g_return_if_fail( NACT_IS_ICONDITIONS_TAB( window ));
 	g_return_if_fail( NACT_IS_ISCHEMES_TAB( window ));
+	g_return_if_fail( NACT_IS_IENVIRONMENT_TAB( window ));
+	g_return_if_fail( NACT_IS_IEXECUTION_TAB( window ));
 	g_return_if_fail( NACT_IS_IPROPERTIES_TAB( window ));
 
 	if( !window->private->dispose_has_run ){
 
 		nact_iaction_tab_all_widgets_showed( NACT_IACTION_TAB( window ));
 		nact_icommand_tab_all_widgets_showed( NACT_ICOMMAND_TAB( window ));
+		nact_ibasenames_tab_all_widgets_showed( NACT_IBASENAMES_TAB( window ));
+		nact_imimetypes_tab_all_widgets_showed( NACT_IMIMETYPES_TAB( window ));
 		nact_ifolders_tab_all_widgets_showed( NACT_IFOLDERS_TAB( window ));
-		nact_iconditions_tab_all_widgets_showed( NACT_ICONDITIONS_TAB( window ));
 		nact_ischemes_tab_all_widgets_showed( NACT_ISCHEMES_TAB( window ));
+		nact_ienvironment_tab_all_widgets_showed( NACT_IENVIRONMENT_TAB( window ));
+		nact_iexecution_tab_all_widgets_showed( NACT_IEXECUTION_TAB( window ));
 		nact_iproperties_tab_all_widgets_showed( NACT_IPROPERTIES_TAB( window ));
 
 		nact_iactions_list_all_widgets_showed( NACT_IACTIONS_LIST( window ));
diff --git a/src/nact/nautilus-actions-config-tool.ui b/src/nact/nautilus-actions-config-tool.ui
index e1b9955..84c055c 100644
--- a/src/nact/nautilus-actions-config-tool.ui
+++ b/src/nact/nautilus-actions-config-tool.ui
@@ -210,7 +210,6 @@ Menus are always candidate if they contain at least one action.</property>
                                             <property name="top_attach">2</property>
                                             <property name="bottom_attach">3</property>
                                             <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
                                           </packing>
                                         </child>
                                         <child>
@@ -342,7 +341,6 @@ Menus are never displayed in the toolbar.</property>
                                           </object>
                                           <packing>
                                             <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
                                           </packing>
                                         </child>
                                         <child>
@@ -357,7 +355,6 @@ Menus are never displayed in the toolbar.</property>
                                             <property name="top_attach">1</property>
                                             <property name="bottom_attach">2</property>
                                             <property name="x_options">GTK_FILL</property>
-                                            <property name="y_options"></property>
                                           </packing>
                                         </child>
                                         <child>
@@ -2420,63 +2417,12 @@ Defining several profiles lets you have several commands, each applying with a d
                                 <child>
                                   <object class="GtkTable" id="table4">
                                     <property name="visible">True</property>
-                                    <property name="n_rows">6</property>
+                                    <property name="n_rows">3</property>
                                     <property name="n_columns">2</property>
                                     <property name="column_spacing">6</property>
                                     <property name="row_spacing">3</property>
                                     <child>
-                                      <object class="GtkLabel" id="ActionItemID">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                        <property name="yalign">1</property>
-                                        <property name="ypad">6</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
-                                        <property name="top_attach">4</property>
-                                        <property name="bottom_attach">5</property>
-                                        <property name="y_options">GTK_FILL</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="ActionIdLabel">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">Id. :</property>
-                                      </object>
-                                      <packing>
-                                        <property name="top_attach">4</property>
-                                        <property name="bottom_attach">5</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="label19">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">1</property>
-                                        <property name="label" translatable="yes">I/O provider :</property>
-                                      </object>
-                                      <packing>
-                                        <property name="top_attach">5</property>
-                                        <property name="bottom_attach">6</property>
-                                        <property name="x_options">GTK_FILL</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="ActionItemProvider">
-                                        <property name="visible">True</property>
-                                        <property name="xalign">0</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
-                                        <property name="top_attach">5</property>
-                                        <property name="bottom_attach">6</property>
-                                      </packing>
-                                    </child>
-                                    <child>
-                                      <object class="GtkLabel" id="ActionDescriptionLabel">
+                                      <object class="GtkLabel" id="label18">
                                         <property name="visible">True</property>
                                         <property name="xalign">1</property>
                                         <property name="yalign">0</property>
@@ -2525,22 +2471,6 @@ Defining several profiles lets you have several commands, each applying with a d
                                       </packing>
                                     </child>
                                     <child>
-                                      <object class="GtkCheckButton" id="ActionReadonlyButton">
-                                        <property name="label" translatable="yes">Read-only</property>
-                                        <property name="visible">True</property>
-                                        <property name="can_focus">True</property>
-                                        <property name="receives_default">False</property>
-                                        <property name="focus_on_click">False</property>
-                                        <property name="draw_indicator">True</property>
-                                      </object>
-                                      <packing>
-                                        <property name="left_attach">1</property>
-                                        <property name="right_attach">2</property>
-                                        <property name="top_attach">3</property>
-                                        <property name="bottom_attach">4</property>
-                                      </packing>
-                                    </child>
-                                    <child>
                                       <object class="GtkLabel" id="label39">
                                         <property name="visible">True</property>
                                         <property name="xalign">1</property>
@@ -2550,6 +2480,7 @@ Defining several profiles lets you have several commands, each applying with a d
                                       <packing>
                                         <property name="top_attach">2</property>
                                         <property name="bottom_attach">3</property>
+                                        <property name="x_options">GTK_FILL</property>
                                       </packing>
                                     </child>
                                     <child>
@@ -2581,6 +2512,106 @@ Defining several profiles lets you have several commands, each applying with a d
                                     <child>
                                       <placeholder/>
                                     </child>
+                                  </object>
+                                </child>
+                              </object>
+                            </child>
+                            <child type="label">
+                              <object class="GtkLabel" id="ActionPropertiesTitle">
+                                <property name="visible">True</property>
+                                <property name="xpad">5</property>
+                                <property name="label" translatable="yes">&lt;b&gt;Action editable properties&lt;/b&gt;</property>
+                                <property name="use_markup">True</property>
+                              </object>
+                            </child>
+                          </object>
+                          <packing>
+                            <property name="expand">False</property>
+                            <property name="position">0</property>
+                          </packing>
+                        </child>
+                        <child>
+                          <object class="GtkFrame" id="frame6">
+                            <property name="visible">True</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="top_padding">6</property>
+                                <property name="bottom_padding">6</property>
+                                <property name="left_padding">12</property>
+                                <property name="right_padding">6</property>
+                                <child>
+                                  <object class="GtkTable" id="table3">
+                                    <property name="visible">True</property>
+                                    <property name="n_rows">3</property>
+                                    <property name="n_columns">2</property>
+                                    <property name="column_spacing">6</property>
+                                    <property name="row_spacing">6</property>
+                                    <child>
+                                      <object class="GtkLabel" id="ActionItemID">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="y_options">GTK_FILL</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label49">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">Id. :</property>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">1</property>
+                                        <property name="bottom_attach">2</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="label19">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">1</property>
+                                        <property name="label" translatable="yes">I/O provider :</property>
+                                      </object>
+                                      <packing>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
+                                        <property name="x_options">GTK_FILL</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkLabel" id="ActionItemProvider">
+                                        <property name="visible">True</property>
+                                        <property name="xalign">0</property>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                        <property name="top_attach">2</property>
+                                        <property name="bottom_attach">3</property>
+                                      </packing>
+                                    </child>
+                                    <child>
+                                      <object class="GtkCheckButton" id="ActionReadonlyButton">
+                                        <property name="label" translatable="yes">Read-only</property>
+                                        <property name="visible">True</property>
+                                        <property name="can_focus">True</property>
+                                        <property name="receives_default">False</property>
+                                        <property name="focus_on_click">False</property>
+                                        <property name="draw_indicator">True</property>
+                                      </object>
+                                      <packing>
+                                        <property name="left_attach">1</property>
+                                        <property name="right_attach">2</property>
+                                      </packing>
+                                    </child>
                                     <child>
                                       <placeholder/>
                                     </child>
@@ -2589,17 +2620,17 @@ Defining several profiles lets you have several commands, each applying with a d
                               </object>
                             </child>
                             <child type="label">
-                              <object class="GtkLabel" id="ActionPropertiesTitle">
+                              <object class="GtkLabel" id="label10">
                                 <property name="visible">True</property>
                                 <property name="xpad">5</property>
-                                <property name="label" translatable="yes">&lt;b&gt;Action properties&lt;/b&gt;</property>
+                                <property name="label" translatable="yes">&lt;b&gt;Read-only properties&lt;/b&gt;</property>
                                 <property name="use_markup">True</property>
                               </object>
                             </child>
                           </object>
                           <packing>
                             <property name="expand">False</property>
-                            <property name="position">0</property>
+                            <property name="position">1</property>
                           </packing>
                         </child>
                       </object>
@@ -2763,6 +2794,9 @@ Defining several profiles lets you have several commands, each applying with a d
       <placeholder/>
     </child>
     <child>
+      <placeholder/>
+    </child>
+    <child>
       <object class="GtkLabel" id="label3">
         <property name="visible">True</property>
         <property name="label" translatable="yes">This assistant will guide you through the process of importing items, actions or menus.</property>
@@ -2778,10 +2812,10 @@ Defining several profiles lets you have several commands, each applying with a d
         <child>
           <object class="GtkFileChooserWidget" id="ImportFileChooser">
             <property name="visible">True</property>
-            <property name="preview_widget_active">False</property>
             <property name="local_only">False</property>
-            <property name="select_multiple">True</property>
+            <property name="preview_widget_active">False</property>
             <property name="use_preview_label">False</property>
+            <property name="select_multiple">True</property>
           </object>
           <packing>
             <property name="position">0</property>
@@ -3587,39 +3621,39 @@ Be warned: this mode may be dangerous. You will not be prompted another time.</p
   </object>
   <object class="GtkSizeGroup" id="CommandLabelSizeGroup">
     <widgets>
-      <widget name="ProfileLabelLabel"/>
-      <widget name="CommandPathLabel"/>
-      <widget name="CommandParametersLabel"/>
       <widget name="label4"/>
+      <widget name="CommandParametersLabel"/>
+      <widget name="CommandPathLabel"/>
+      <widget name="ProfileLabelLabel"/>
     </widgets>
   </object>
   <object class="GtkSizeGroup" id="CommandButtonSizeGroup">
     <widgets>
-      <widget name="CommandPathButton"/>
       <widget name="CommandLegendButton"/>
+      <widget name="CommandPathButton"/>
     </widgets>
   </object>
   <object class="GtkSizeGroup" id="ActionLabelSizeGroup">
     <widgets>
-      <widget name="ActionToolbarLabelLabel"/>
       <widget name="ActionMenuLabelLabel"/>
-      <widget name="ActionIdLabel"/>
+      <widget name="ActionToolbarLabelLabel"/>
       <widget name="ActionTooltipLabel"/>
       <widget name="ActionIconLabel"/>
     </widgets>
   </object>
-  <object class="GtkSizeGroup" id="ConditionsLabelSizeGroup">
+  <object class="GtkSizeGroup" id="ExecutionModeSizeGroup">
     <widgets>
-      <widget name="label17"/>
-      <widget name="ConditionsMimetypesLabel"/>
-      <widget name="ConditionsFilenamesLabel"/>
+      <widget name="label43"/>
+      <widget name="label44"/>
+      <widget name="label45"/>
     </widgets>
   </object>
-  <object class="GtkSizeGroup" id="ExecutionModeSizeGroup">
+  <object class="GtkSizeGroup" id="PropertiesLabelSizeGroup">
     <widgets>
-      <widget name="label45"/>
-      <widget name="label44"/>
-      <widget name="label43"/>
+      <widget name="label18"/>
+      <widget name="label39"/>
+      <widget name="label49"/>
+      <widget name="label19"/>
     </widgets>
   </object>
 </interface>



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