[nautilus-actions] Move item properties to their own tab
- From: Pierre Wieser <pwieser src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus-actions] Move item properties to their own tab
- Date: Thu, 10 Jun 2010 22:32:59 +0000 (UTC)
commit 6760cbcbda2ae7ceaba0df83e79c974965ca9c26
Author: Pierre Wieser <pwieser trychlos org>
Date: Mon Apr 12 06:11:02 2010 +0200
Move item properties to their own tab
ChangeLog | 12 +-
NEWS | 16 ++
TODO | 2 +-
src/nact/Makefile.am | 2 +
src/nact/nact-iaction-tab.c | 202 +--------------
src/nact/nact-iproperties-tab.c | 417 ++++++++++++++++++++++++++++++
src/nact/nact-iproperties-tab.h | 73 ++++++
src/nact/nact-main-tab.h | 3 +-
src/nact/nact-main-window.c | 23 ++
src/nact/nautilus-actions-config-tool.ui | 377 +++++++++++++++------------
10 files changed, 753 insertions(+), 374 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 39aa8c3..e8f3326 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -83,8 +83,16 @@
2010-04-12 Pierre Wieser <pwieser trychlos org>
- * src/plugin-menu/Makefile.am:
- * src/plugin-tracker/Makefile.am: Fix incorrect log domains.
+ Move item properties to their own tab.
+
+ * src/nact/nact-iproperties-tab.c:
+ * src/nact/nact-iproperties-tab.h: New files.
+
+ * src/nact/Makefile.am:
+ * src/nact/nact-iaction-tab.c:
+ * src/nact/nact-main-tab.h:
+ * src/nact/nact-main-window.c:
+ * src/nact/nautilus-actions-config-tool.ui: Updated accordingly.
2010-04-09 Pierre Wieser <pwieser trychlos org>
diff --git a/NEWS b/NEWS
index f2a256e..4803416 100644
--- a/NEWS
+++ b/NEWS
@@ -54,6 +54,22 @@ Version 2.30.2
es (Jorge González)
lt (Gintautas Miliauskas)
+=======
+[newdata branch]
+
+ Enhancements:
+
+ - Implement .desktop files as a new storage format, shareable with
+ most common willing-to desktop environments (KDE, XFCE, etc.)
+
+ - Implement new properties, both in GConf and .desktop files:
+ . a description of the item
+
+ UI modifications:
+
+ - Item properties have now their own 'Properties' tab
+ - 'Advanced conditions' tab is renamed as 'Schemes' tab
+>>>>>>> Move item properties to their own tab
Version 2.30.1
==============
diff --git a/TODO b/TODO
index 6459bf5..f22c4ed 100644
--- a/TODO
+++ b/TODO
@@ -132,6 +132,6 @@
not even in unstable library on the web
http://library.gnome.org/devel/gconf/unstable/gconf-gconf.html#gconf-concat-dir-and-key
-- "x-nautilus-desktop:///" is rather a scheme than a folder
+- "x-nautilus-desktop:///" is rather a scheme than a folder => actually is an URI
- enhancement.ui: add a 'why this item is invalid'
diff --git a/src/nact/Makefile.am b/src/nact/Makefile.am
index 572f01e..7b94580 100644
--- a/src/nact/Makefile.am
+++ b/src/nact/Makefile.am
@@ -103,6 +103,8 @@ nautilus_actions_config_tool_SOURCES = \
nact-iconditions-tab.h \
nact-iprefs.c \
nact-iprefs.h \
+ nact-iproperties-tab.c \
+ nact-iproperties-tab.h \
nact-main.c \
nact-main-menubar.c \
nact-main-menubar.h \
diff --git a/src/nact/nact-iaction-tab.c b/src/nact/nact-iaction-tab.c
index 7109943..63c084b 100644
--- a/src/nact/nact-iaction-tab.c
+++ b/src/nact/nact-iaction-tab.c
@@ -81,7 +81,6 @@ static void interface_base_finalize( NactIActionTabInterface *klass );
static void on_iactions_list_column_edited( NactIActionTab *instance, NAObject *object, gchar *text, gint column );
static void on_tab_updatable_selection_changed( NactIActionTab *instance, gint count_selected );
-static void on_tab_updatable_provider_changed( NactIActionTab *instance, NAObjectItem *item );
static void on_target_selection_toggled( GtkToggleButton *button, NactIActionTab *instance );
static void on_target_location_toggled( GtkToggleButton *button, NactIActionTab *instance );
@@ -109,13 +108,6 @@ static gint sort_stock_ids( gconstpointer a, gconstpointer b );
static gchar *strip_underscore( const gchar *text );
static void release_icon_combobox( NactIActionTab *instance );
-static GtkButton *get_enabled_button( NactIActionTab *instance );
-static void on_enabled_toggled( GtkToggleButton *button, NactIActionTab *instance );
-static void on_readonly_toggled( GtkToggleButton *button, NactIActionTab *instance );
-static void on_description_changed( GtkTextBuffer *buffer, NactIActionTab *instance );
-
-static void display_provider_name( NactIActionTab *instance, NAObjectItem *item );
-
GType
nact_iaction_tab_get_type( void )
{
@@ -232,9 +224,7 @@ nact_iaction_tab_runtime_init_toplevel( NactIActionTab *instance )
{
static const gchar *thisfn = "nact_iaction_tab_runtime_init_toplevel";
GtkWidget *label_widget, *tooltip_widget, *icon_widget;
- GtkButton *enabled_button;
GtkWidget *button;
- GtkTextBuffer *buffer;
g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
g_return_if_fail( NACT_IS_IACTION_TAB( instance ));
@@ -250,12 +240,6 @@ nact_iaction_tab_runtime_init_toplevel( NactIActionTab *instance )
base_window_signal_connect(
BASE_WINDOW( instance ),
G_OBJECT( instance ),
- TAB_UPDATABLE_SIGNAL_PROVIDER_CHANGED,
- G_CALLBACK( on_tab_updatable_provider_changed ));
-
- base_window_signal_connect(
- BASE_WINDOW( instance ),
- G_OBJECT( instance ),
IACTIONS_LIST_SIGNAL_COLUMN_EDITED,
G_CALLBACK( on_iactions_list_column_edited ));
@@ -321,28 +305,6 @@ nact_iaction_tab_runtime_init_toplevel( NactIActionTab *instance )
G_OBJECT( button ),
"clicked",
G_CALLBACK( on_icon_browse ));
-
- enabled_button = get_enabled_button( instance );
- base_window_signal_connect(
- BASE_WINDOW( instance ),
- G_OBJECT( enabled_button ),
- "toggled",
- G_CALLBACK( on_enabled_toggled ));
-
- button = base_window_get_widget( BASE_WINDOW( instance ), "ActionReadonlyButton" );
- base_window_signal_connect(
- BASE_WINDOW( instance ),
- G_OBJECT( button ),
- "toggled",
- G_CALLBACK( on_readonly_toggled ));
-
- label_widget = base_window_get_widget( BASE_WINDOW( instance ), "ActionDescriptionText" );
- buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW( label_widget ));
- base_window_signal_connect(
- BASE_WINDOW( instance ),
- G_OBJECT( buffer ),
- "changed",
- G_CALLBACK( on_description_changed ));
}
}
@@ -424,17 +386,11 @@ on_tab_updatable_selection_changed( NactIActionTab *instance, gint count_selecte
gboolean target_selection, target_location, target_toolbar;
gboolean enable_label;
gboolean same_label;
- GtkWidget *label_widget, *tooltip_widget, *icon_widget, *title_widget;
+ GtkWidget *label_widget, *tooltip_widget, *icon_widget;
gchar *label, *tooltip, *icon;
GtkButton *icon_button;
- GtkButton *enabled_button;
- GtkToggleButton *readonly_button;
- gboolean enabled_item;
GtkToggleButton *toggle;
gboolean editable;
- GtkNotebook *notebook;
- GtkWidget *page;
- GtkTextBuffer *buffer;
g_debug( "%s: instance=%p, count_selected=%d", thisfn, ( void * ) instance, count_selected );
g_return_if_fail( BASE_IS_WINDOW( instance ));
@@ -527,66 +483,11 @@ on_tab_updatable_selection_changed( NactIActionTab *instance, gint count_selecte
gtk_widget_set_sensitive( GTK_WIDGET( icon_button ), item != NULL );
nact_gtk_utils_set_editable( GTK_OBJECT( icon_button ), editable );
- if( enable_tab ){
- 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" );
- 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>" ));
- } else {
- gtk_notebook_set_tab_label_text( notebook, page, _( "Action" ));
- gtk_label_set_markup( GTK_LABEL( title_widget ), _( "<b>Action properties</b>" ));
- }
- }
-
- enabled_button = get_enabled_button( instance );
- enabled_item = item ? na_object_is_enabled( NA_OBJECT_ITEM( item )) : FALSE;
- gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( enabled_button ), enabled_item );
- gtk_widget_set_sensitive( GTK_WIDGET( enabled_button ), item != NULL );
- nact_gtk_utils_set_editable( GTK_OBJECT( enabled_button ), editable );
-
- /* read-only toggle only indicates the intrinsic writability status of this item
- * _not_ the writability status of the provider
- */
- readonly_button = GTK_TOGGLE_BUTTON( base_window_get_widget( BASE_WINDOW( instance ), "ActionReadonlyButton" ));
- gtk_toggle_button_set_active( readonly_button, item ? na_object_is_readonly( item ) : FALSE );
- gtk_widget_set_sensitive( GTK_WIDGET( readonly_button ), item != NULL );
- nact_gtk_utils_set_editable( GTK_OBJECT( readonly_button ), FALSE );
-
- label_widget = base_window_get_widget( BASE_WINDOW( instance ), "ActionDescriptionText" );
- buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW( label_widget ));
- label = item ? na_object_get_description( item ) : g_strdup( "" );
- gtk_text_buffer_set_text( buffer, label, -1 );
- g_free( label );
- gtk_widget_set_sensitive( label_widget, item != NULL );
-
- label_widget = base_window_get_widget( BASE_WINDOW( instance ), "ActionItemID" );
- label = item ? na_object_get_id( item ) : g_strdup( "" );
- gtk_label_set_text( GTK_LABEL( label_widget ), label );
- g_free( label );
- gtk_widget_set_sensitive( label_widget, item != NULL );
-
- display_provider_name( instance, item );
-
st_on_selection_change = FALSE;
}
}
static void
-on_tab_updatable_provider_changed( NactIActionTab *instance, NAObjectItem *item )
-{
- static const gchar *thisfn = "nact_iaction_tab_on_tab_updatable_provider_changed";
-
- g_debug( "%s: instance=%p, item=%p", thisfn, ( void * ) instance, ( void * ) item );
-
- if( st_initialized && !st_finalized ){
-
- display_provider_name( instance, item );
- }
-}
-
-static void
on_target_selection_toggled( GtkToggleButton *button, NactIActionTab *instance )
{
static const gchar *thisfn = "nact_iaction_tab_on_target_selection_toggled";
@@ -1092,104 +993,3 @@ release_icon_combobox( NactIActionTab *instance )
model = gtk_combo_box_get_model( GTK_COMBO_BOX( combo ));
gtk_list_store_clear( GTK_LIST_STORE( model ));
}
-
-static GtkButton *
-get_enabled_button( NactIActionTab *instance )
-{
- return( GTK_BUTTON( base_window_get_widget( BASE_WINDOW( instance ), "ActionEnabledButton" )));
-}
-
-static void
-on_enabled_toggled( GtkToggleButton *button, NactIActionTab *instance )
-{
- static const gchar *thisfn = "nact_iaction_tab_on_enabled_toggled";
- NAObjectItem *edited;
- gboolean enabled;
- gboolean editable;
-
- if( !st_on_selection_change ){
- g_debug( "%s: button=%p, instance=%p", thisfn, ( void * ) button, ( void * ) instance );
-
- g_object_get(
- G_OBJECT( instance ),
- TAB_UPDATABLE_PROP_EDITED_ACTION, &edited,
- TAB_UPDATABLE_PROP_EDITABLE, &editable,
- NULL );
-
- if( edited && NA_IS_OBJECT_ITEM( edited )){
-
- enabled = gtk_toggle_button_get_active( button );
-
- if( editable ){
- na_object_set_enabled( edited, enabled );
- g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
-
- } else {
- g_signal_handlers_block_by_func(( gpointer ) button, on_enabled_toggled, instance );
- gtk_toggle_button_set_active( button, !enabled );
- g_signal_handlers_unblock_by_func(( gpointer ) button, on_enabled_toggled, instance );
- }
- }
- }
-}
-
-static void
-on_readonly_toggled( GtkToggleButton *button, NactIActionTab *instance )
-{
- static const gchar *thisfn = "nact_iaction_tab_on_readonly_toggled";
- gboolean active;
-
- if( !st_on_selection_change ){
- g_debug( "%s: button=%p, instance=%p", thisfn, ( void * ) button, ( void * ) instance );
-
- active = gtk_toggle_button_get_active( button );
-
- g_signal_handlers_block_by_func(( gpointer ) button, on_readonly_toggled, instance );
- gtk_toggle_button_set_active( button, !active );
- g_signal_handlers_unblock_by_func(( gpointer ) button, on_readonly_toggled, instance );
- }
-}
-
-static void
-on_description_changed( GtkTextBuffer *buffer, NactIActionTab *instance )
-{
- NAObjectItem *edited;
- GtkTextIter start, end;
- gchar *text;
-
- g_object_get(
- G_OBJECT( instance ),
- TAB_UPDATABLE_PROP_EDITED_ACTION, &edited,
- NULL );
-
- if( edited ){
- gtk_text_buffer_get_start_iter( buffer, &start );
- gtk_text_buffer_get_end_iter( buffer, &end );
- text = gtk_text_buffer_get_text( buffer, &start, &end, TRUE );
- na_object_set_description( edited, text );
- g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
- }
-}
-
-static void
-display_provider_name( NactIActionTab *instance, NAObjectItem *item )
-{
- GtkWidget *label_widget;
- gchar *label;
- NAIOProvider *provider;
-
- label_widget = base_window_get_widget( BASE_WINDOW( instance ), "ActionItemProvider" );
- label = NULL;
- if( item ){
- provider = na_object_get_provider( item );
- if( provider ){
- label = na_io_provider_get_name( provider );
- }
- }
- if( !label ){
- label = g_strdup( "" );
- }
- gtk_label_set_text( GTK_LABEL( label_widget ), label );
- g_free( label );
- gtk_widget_set_sensitive( label_widget, item != NULL );
-}
diff --git a/src/nact/nact-iproperties-tab.c b/src/nact/nact-iproperties-tab.c
new file mode 100644
index 0000000..7e382f1
--- /dev/null
+++ b/src/nact/nact-iproperties-tab.c
@@ -0,0 +1,417 @@
+/*
+ * Nautilus Actions
+ * A Nautilus extension which offers configurable context menu actions.
+ *
+ * Copyright (C) 2005 The GNOME Foundation
+ * Copyright (C) 2006, 2007, 2008 Frederic Ruaudel and others (see AUTHORS)
+ * Copyright (C) 2009, 2010 Pierre Wieser and others (see AUTHORS)
+ *
+ * This Program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this Library; see the file COPYING. If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ * Frederic Ruaudel <grumz grumz net>
+ * Rodrigo Moya <rodrigo gnome-db org>
+ * Pierre Wieser <pwieser trychlos org>
+ * ... and many others (see AUTHORS)
+ */
+
+#ifdef HAVE_CONFIG_H
+#include <config.h>
+#endif
+
+#include <glib/gi18n.h>
+
+#include <api/na-object-api.h>
+
+#include <core/na-io-provider.h>
+
+#include "nact-gtk-utils.h"
+#include "nact-iproperties-tab.h"
+#include "nact-main-tab.h"
+
+/* private interface data
+ */
+struct NactIPropertiesTabInterfacePrivate {
+ void *empty; /* so that gcc -pedantic is happy */
+};
+
+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( NactIPropertiesTabInterface *klass );
+static void interface_base_finalize( NactIPropertiesTabInterface *klass );
+
+static void on_tab_updatable_selection_changed( NactIPropertiesTab *instance, gint count_selected );
+static void on_tab_updatable_provider_changed( NactIPropertiesTab *instance, NAObjectItem *item );
+
+static GtkButton *get_enabled_button( NactIPropertiesTab *instance );
+static void on_enabled_toggled( GtkToggleButton *button, NactIPropertiesTab *instance );
+static void on_readonly_toggled( GtkToggleButton *button, NactIPropertiesTab *instance );
+static void on_description_changed( GtkTextBuffer *buffer, NactIPropertiesTab *instance );
+
+static void display_provider_name( NactIPropertiesTab *instance, NAObjectItem *item );
+
+GType
+nact_iproperties_tab_get_type( void )
+{
+ static GType iface_type = 0;
+
+ if( !iface_type ){
+ iface_type = register_type();
+ }
+
+ return( iface_type );
+}
+
+static GType
+register_type( void )
+{
+ static const gchar *thisfn = "nact_iproperties_tab_register_type";
+ GType type;
+
+ static const GTypeInfo info = {
+ sizeof( NactIPropertiesTabInterface ),
+ ( GBaseInitFunc ) interface_base_init,
+ ( GBaseFinalizeFunc ) interface_base_finalize,
+ NULL,
+ NULL,
+ NULL,
+ 0,
+ 0,
+ NULL
+ };
+
+ g_debug( "%s", thisfn );
+
+ type = g_type_register_static( G_TYPE_INTERFACE, "NactIPropertiesTab", &info, 0 );
+
+ g_type_interface_add_prerequisite( type, BASE_WINDOW_TYPE );
+
+ return( type );
+}
+
+static void
+interface_base_init( NactIPropertiesTabInterface *klass )
+{
+ static const gchar *thisfn = "nact_iproperties_tab_interface_base_init";
+
+ if( !st_initialized ){
+
+ g_debug( "%s: klass=%p", thisfn, ( void * ) klass );
+
+ klass->private = g_new0( NactIPropertiesTabInterfacePrivate, 1 );
+
+ st_initialized = TRUE;
+ }
+}
+
+static void
+interface_base_finalize( NactIPropertiesTabInterface *klass )
+{
+ static const gchar *thisfn = "nact_iproperties_tab_interface_base_finalize";
+
+ if( st_initialized && !st_finalized ){
+
+ g_debug( "%s: klass=%p", thisfn, ( void * ) klass );
+
+ st_finalized = TRUE;
+
+ g_free( klass->private );
+ }
+}
+
+void
+nact_iproperties_tab_initial_load_toplevel( NactIPropertiesTab *instance )
+{
+ static const gchar *thisfn = "nact_iproperties_tab_initial_load_toplevel";
+
+ g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
+ g_return_if_fail( NACT_IS_IPROPERTIES_TAB( instance ));
+
+ if( st_initialized && !st_finalized ){
+ }
+}
+
+void
+nact_iproperties_tab_runtime_init_toplevel( NactIPropertiesTab *instance )
+{
+ static const gchar *thisfn = "nact_iproperties_tab_runtime_init_toplevel";
+ GtkButton *enabled_button;
+ GtkWidget *button;
+ GtkWidget *label_widget;
+ GtkTextBuffer *buffer;
+
+ g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
+ g_return_if_fail( NACT_IS_IPROPERTIES_TAB( instance ));
+
+ if( st_initialized && !st_finalized ){
+
+ 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 ),
+ TAB_UPDATABLE_SIGNAL_PROVIDER_CHANGED,
+ G_CALLBACK( on_tab_updatable_provider_changed ));
+
+ enabled_button = get_enabled_button( instance );
+ base_window_signal_connect(
+ BASE_WINDOW( instance ),
+ G_OBJECT( enabled_button ),
+ "toggled",
+ G_CALLBACK( on_enabled_toggled ));
+
+ button = base_window_get_widget( BASE_WINDOW( instance ), "ActionReadonlyButton" );
+ base_window_signal_connect(
+ BASE_WINDOW( instance ),
+ G_OBJECT( button ),
+ "toggled",
+ G_CALLBACK( on_readonly_toggled ));
+
+ label_widget = base_window_get_widget( BASE_WINDOW( instance ), "ActionDescriptionText" );
+ buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW( label_widget ));
+ base_window_signal_connect(
+ BASE_WINDOW( instance ),
+ G_OBJECT( buffer ),
+ "changed",
+ G_CALLBACK( on_description_changed ));
+ }
+}
+
+void
+nact_iproperties_tab_all_widgets_showed( NactIPropertiesTab *instance )
+{
+ static const gchar *thisfn = "nact_iproperties_tab_all_widgets_showed";
+
+ g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
+ g_return_if_fail( NACT_IS_IPROPERTIES_TAB( instance ));
+
+ if( st_initialized && !st_finalized ){
+ }
+}
+
+void
+nact_iproperties_tab_dispose( NactIPropertiesTab *instance )
+{
+ static const gchar *thisfn = "nact_iproperties_tab_dispose";
+
+ g_debug( "%s: instance=%p", thisfn, ( void * ) instance );
+ g_return_if_fail( NACT_IS_IPROPERTIES_TAB( instance ));
+
+ if( st_initialized && !st_finalized ){
+ }
+}
+
+static void
+on_tab_updatable_selection_changed( NactIPropertiesTab *instance, gint count_selected )
+{
+ static const gchar *thisfn = "nact_iproperties_tab_on_tab_updatable_selection_changed";
+ NAObjectItem *item;
+ gboolean editable;
+ gboolean enable_tab;
+ GtkNotebook *notebook;
+ GtkWidget *page;
+ GtkWidget *title_widget, *label_widget;
+ GtkButton *enabled_button;
+ gboolean enabled_item;
+ GtkToggleButton *readonly_button;
+ GtkTextBuffer *buffer;
+ gchar *label;
+
+ g_debug( "%s: instance=%p, count_selected=%d", thisfn, ( void * ) instance, count_selected );
+ g_return_if_fail( BASE_IS_WINDOW( instance ));
+ g_return_if_fail( NACT_IS_IPROPERTIES_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_EDITABLE, &editable,
+ NULL );
+
+ g_return_if_fail( !item || NA_IS_OBJECT_ITEM( item ));
+
+ enable_tab = ( count_selected == 1 );
+ nact_main_tab_enable_page( NACT_MAIN_WINDOW( instance ), TAB_PROPERTIES, enable_tab );
+
+ if( enable_tab ){
+ 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" );
+ 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>" ));
+ } else {
+ gtk_notebook_set_tab_label_text( notebook, page, _( "Action" ));
+ gtk_label_set_markup( GTK_LABEL( title_widget ), _( "<b>Action properties</b>" ));
+ }
+ }
+
+ enabled_button = get_enabled_button( instance );
+ enabled_item = item ? na_object_is_enabled( NA_OBJECT_ITEM( item )) : FALSE;
+ gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( enabled_button ), enabled_item );
+ gtk_widget_set_sensitive( GTK_WIDGET( enabled_button ), item != NULL );
+ nact_gtk_utils_set_editable( GTK_OBJECT( enabled_button ), editable );
+
+ /* read-only toggle only indicates the intrinsic writability status of this item
+ * _not_ the writability status of the provider
+ */
+ readonly_button = GTK_TOGGLE_BUTTON( base_window_get_widget( BASE_WINDOW( instance ), "ActionReadonlyButton" ));
+ gtk_toggle_button_set_active( readonly_button, item ? na_object_is_readonly( item ) : FALSE );
+ gtk_widget_set_sensitive( GTK_WIDGET( readonly_button ), item != NULL );
+ nact_gtk_utils_set_editable( GTK_OBJECT( readonly_button ), FALSE );
+
+ label_widget = base_window_get_widget( BASE_WINDOW( instance ), "ActionDescriptionText" );
+ buffer = gtk_text_view_get_buffer( GTK_TEXT_VIEW( label_widget ));
+ label = item ? na_object_get_description( item ) : g_strdup( "" );
+ gtk_text_buffer_set_text( buffer, label, -1 );
+ g_free( label );
+ gtk_widget_set_sensitive( label_widget, item != NULL );
+
+ label_widget = base_window_get_widget( BASE_WINDOW( instance ), "ActionItemID" );
+ label = item ? na_object_get_id( item ) : g_strdup( "" );
+ gtk_label_set_text( GTK_LABEL( label_widget ), label );
+ g_free( label );
+ gtk_widget_set_sensitive( label_widget, item != NULL );
+
+ display_provider_name( instance, item );
+
+ st_on_selection_change = FALSE;
+ }
+}
+
+static void
+on_tab_updatable_provider_changed( NactIPropertiesTab *instance, NAObjectItem *item )
+{
+ static const gchar *thisfn = "nact_iproperties_tab_on_tab_updatable_provider_changed";
+
+ g_debug( "%s: instance=%p, item=%p", thisfn, ( void * ) instance, ( void * ) item );
+
+ if( st_initialized && !st_finalized ){
+
+ display_provider_name( instance, item );
+ }
+}
+
+static GtkButton *
+get_enabled_button( NactIPropertiesTab *instance )
+{
+ return( GTK_BUTTON( base_window_get_widget( BASE_WINDOW( instance ), "ActionEnabledButton" )));
+}
+
+static void
+on_enabled_toggled( GtkToggleButton *button, NactIPropertiesTab *instance )
+{
+ static const gchar *thisfn = "nact_iproperties_tab_on_enabled_toggled";
+ NAObjectItem *edited;
+ gboolean enabled;
+ gboolean editable;
+
+ if( !st_on_selection_change ){
+ g_debug( "%s: button=%p, instance=%p", thisfn, ( void * ) button, ( void * ) instance );
+
+ g_object_get(
+ G_OBJECT( instance ),
+ TAB_UPDATABLE_PROP_EDITED_ACTION, &edited,
+ TAB_UPDATABLE_PROP_EDITABLE, &editable,
+ NULL );
+
+ if( edited && NA_IS_OBJECT_ITEM( edited )){
+
+ enabled = gtk_toggle_button_get_active( button );
+
+ if( editable ){
+ na_object_set_enabled( edited, enabled );
+ g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
+
+ } else {
+ g_signal_handlers_block_by_func(( gpointer ) button, on_enabled_toggled, instance );
+ gtk_toggle_button_set_active( button, !enabled );
+ g_signal_handlers_unblock_by_func(( gpointer ) button, on_enabled_toggled, instance );
+ }
+ }
+ }
+}
+
+static void
+on_readonly_toggled( GtkToggleButton *button, NactIPropertiesTab *instance )
+{
+ static const gchar *thisfn = "nact_iproperties_tab_on_readonly_toggled";
+ gboolean active;
+
+ if( !st_on_selection_change ){
+ g_debug( "%s: button=%p, instance=%p", thisfn, ( void * ) button, ( void * ) instance );
+
+ active = gtk_toggle_button_get_active( button );
+
+ g_signal_handlers_block_by_func(( gpointer ) button, on_readonly_toggled, instance );
+ gtk_toggle_button_set_active( button, !active );
+ g_signal_handlers_unblock_by_func(( gpointer ) button, on_readonly_toggled, instance );
+ }
+}
+
+static void
+on_description_changed( GtkTextBuffer *buffer, NactIPropertiesTab *instance )
+{
+ NAObjectItem *edited;
+ GtkTextIter start, end;
+ gchar *text;
+
+ g_object_get(
+ G_OBJECT( instance ),
+ TAB_UPDATABLE_PROP_EDITED_ACTION, &edited,
+ NULL );
+
+ if( edited ){
+ gtk_text_buffer_get_start_iter( buffer, &start );
+ gtk_text_buffer_get_end_iter( buffer, &end );
+ text = gtk_text_buffer_get_text( buffer, &start, &end, TRUE );
+ na_object_set_description( edited, text );
+ g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
+ }
+}
+
+static void
+display_provider_name( NactIPropertiesTab *instance, NAObjectItem *item )
+{
+ GtkWidget *label_widget;
+ gchar *label;
+ NAIOProvider *provider;
+
+ label_widget = base_window_get_widget( BASE_WINDOW( instance ), "ActionItemProvider" );
+ label = NULL;
+ if( item ){
+ provider = na_object_get_provider( item );
+ if( provider ){
+ label = na_io_provider_get_name( provider );
+ }
+ }
+ if( !label ){
+ label = g_strdup( "" );
+ }
+ gtk_label_set_text( GTK_LABEL( label_widget ), label );
+ g_free( label );
+ gtk_widget_set_sensitive( label_widget, item != NULL );
+}
diff --git a/src/nact/nact-iproperties-tab.h b/src/nact/nact-iproperties-tab.h
new file mode 100644
index 0000000..d19237a
--- /dev/null
+++ b/src/nact/nact-iproperties-tab.h
@@ -0,0 +1,73 @@
+/*
+ * Nautilus Actions
+ * A Nautilus extension which offers configurable context menu actions.
+ *
+ * Copyright (C) 2005 The GNOME Foundation
+ * Copyright (C) 2006, 2007, 2008 Frederic Ruaudel and others (see AUTHORS)
+ * Copyright (C) 2009, 2010 Pierre Wieser and others (see AUTHORS)
+ *
+ * This Program is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU General Public License as
+ * published by the Free Software Foundation; either version 2 of
+ * the License, or (at your option) any later version.
+ *
+ * This Program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public
+ * License along with this Library; see the file COPYING. If not,
+ * write to the Free Software Foundation, Inc., 59 Temple Place,
+ * Suite 330, Boston, MA 02111-1307, USA.
+ *
+ * Authors:
+ * Frederic Ruaudel <grumz grumz net>
+ * Rodrigo Moya <rodrigo gnome-db org>
+ * Pierre Wieser <pwieser trychlos org>
+ * ... and many others (see AUTHORS)
+ */
+
+#ifndef __NACT_IPROPERTIES_TAB_H__
+#define __NACT_IPROPERTIES_TAB_H__
+
+/**
+ * SECTION: nact_iproperties_tab
+ * @short_description: #NactIPropertiesTab interface definition.
+ * @include: nact/nact-iproperties-tab.h
+ *
+ * This interface implements the "Properties" tab of the notebook.
+ *
+ * Entry fields are enabled, as soon as an edited item has been set a a
+ * property of the main window,
+ */
+
+#include <glib-object.h>
+
+G_BEGIN_DECLS
+
+#define NACT_IPROPERTIES_TAB_TYPE ( nact_iproperties_tab_get_type())
+#define NACT_IPROPERTIES_TAB( object ) ( G_TYPE_CHECK_INSTANCE_CAST( object, NACT_IPROPERTIES_TAB_TYPE, NactIPropertiesTab ))
+#define NACT_IS_IPROPERTIES_TAB( object ) ( G_TYPE_CHECK_INSTANCE_TYPE( object, NACT_IPROPERTIES_TAB_TYPE ))
+#define NACT_IPROPERTIES_TAB_GET_INTERFACE( instance ) ( G_TYPE_INSTANCE_GET_INTERFACE(( instance ), NACT_IPROPERTIES_TAB_TYPE, NactIPropertiesTabInterface ))
+
+typedef struct NactIPropertiesTab NactIPropertiesTab;
+
+typedef struct NactIPropertiesTabInterfacePrivate NactIPropertiesTabInterfacePrivate;
+
+typedef struct {
+ GTypeInterface parent;
+ NactIPropertiesTabInterfacePrivate *private;
+}
+ NactIPropertiesTabInterface;
+
+GType nact_iproperties_tab_get_type( void );
+
+void nact_iproperties_tab_initial_load_toplevel( NactIPropertiesTab *instance );
+void nact_iproperties_tab_runtime_init_toplevel( NactIPropertiesTab *instance );
+void nact_iproperties_tab_all_widgets_showed( NactIPropertiesTab *instance );
+void nact_iproperties_tab_dispose( NactIPropertiesTab *instance );
+
+G_END_DECLS
+
+#endif /* __NACT_IPROPERTIES_TAB_H__ */
diff --git a/src/nact/nact-main-tab.h b/src/nact/nact-main-tab.h
index 54b85e6..674a1ae 100644
--- a/src/nact/nact-main-tab.h
+++ b/src/nact/nact-main-tab.h
@@ -63,7 +63,8 @@ enum {
TAB_COMMAND,
TAB_FOLDERS,
TAB_CONDITIONS,
- TAB_ADVANCED
+ TAB_ADVANCED,
+ TAB_PROPERTIES
};
void nact_main_tab_enable_page( NactMainWindow *window, gint page, gboolean enabled );
diff --git a/src/nact/nact-main-window.c b/src/nact/nact-main-window.c
index be909ee..90c0ade 100644
--- a/src/nact/nact-main-window.c
+++ b/src/nact/nact-main-window.c
@@ -52,6 +52,7 @@
#include "nact-ifolders-tab.h"
#include "nact-iconditions-tab.h"
#include "nact-iadvanced-tab.h"
+#include "nact-iproperties-tab.h"
#include "nact-main-tab.h"
#include "nact-main-menubar.h"
#include "nact-main-statusbar.h"
@@ -148,6 +149,7 @@ static void icommand_tab_iface_init( NactICommandTabInterface *iface );
static void ifolders_tab_iface_init( NactIFoldersTabInterface *iface );
static void iconditions_tab_iface_init( NactIConditionsTabInterface *iface );
static void iadvanced_tab_iface_init( NactIAdvancedTabInterface *iface );
+static void iproperties_tab_iface_init( NactIPropertiesTabInterface *iface );
static void iabout_iface_init( NAIAboutInterface *iface );
static void ipivot_consumer_iface_init( NAIPivotConsumerInterface *iface );
static void iprefs_base_iface_init( BaseIPrefsInterface *iface );
@@ -251,6 +253,12 @@ register_type( void )
NULL
};
+ static const GInterfaceInfo iproperties_tab_iface_info = {
+ ( GInterfaceInitFunc ) iproperties_tab_iface_init,
+ NULL,
+ NULL
+ };
+
static const GInterfaceInfo iabout_iface_info = {
( GInterfaceInitFunc ) iabout_iface_init,
NULL,
@@ -285,6 +293,8 @@ register_type( void )
g_type_add_interface_static( type, NACT_IADVANCED_TAB_TYPE, &iadvanced_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 );
g_type_add_interface_static( type, NA_IPIVOT_CONSUMER_TYPE, &ipivot_consumer_iface_info );
@@ -531,6 +541,14 @@ iadvanced_tab_iface_init( NactIAdvancedTabInterface *iface )
}
static void
+iproperties_tab_iface_init( NactIPropertiesTabInterface *iface )
+{
+ static const gchar *thisfn = "nact_main_window_iproperties_tab_iface_init";
+
+ g_debug( "%s: iface=%p", thisfn, ( void * ) iface );
+}
+
+static void
iabout_iface_init( NAIAboutInterface *iface )
{
static const gchar *thisfn = "nact_main_window_iabout_iface_init";
@@ -713,6 +731,7 @@ instance_dispose( GObject *window )
nact_ifolders_tab_dispose( NACT_IFOLDERS_TAB( window ));
nact_iconditions_tab_dispose( NACT_ICONDITIONS_TAB( window ));
nact_iadvanced_tab_dispose( NACT_IADVANCED_TAB( window ));
+ nact_iproperties_tab_dispose( NACT_IPROPERTIES_TAB( window ));
nact_main_menubar_dispose( self );
/* chain up to the parent class */
@@ -1036,6 +1055,7 @@ on_base_initial_load_toplevel( NactMainWindow *window, gpointer user_data )
nact_ifolders_tab_initial_load_toplevel( NACT_IFOLDERS_TAB( window ));
nact_iconditions_tab_initial_load_toplevel( NACT_ICONDITIONS_TAB( window ));
nact_iadvanced_tab_initial_load_toplevel( NACT_IADVANCED_TAB( window ));
+ nact_iproperties_tab_initial_load_toplevel( NACT_IPROPERTIES_TAB( window ));
nact_main_statusbar_initial_load_toplevel( window );
}
@@ -1073,6 +1093,7 @@ on_base_runtime_init_toplevel( NactMainWindow *window, gpointer user_data )
nact_ifolders_tab_runtime_init_toplevel( NACT_IFOLDERS_TAB( window ));
nact_iconditions_tab_runtime_init_toplevel( NACT_ICONDITIONS_TAB( window ));
nact_iadvanced_tab_runtime_init_toplevel( NACT_IADVANCED_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 ));
@@ -1112,6 +1133,7 @@ on_base_all_widgets_showed( NactMainWindow *window, gpointer user_data )
g_return_if_fail( NACT_IS_IFOLDERS_TAB( window ));
g_return_if_fail( NACT_IS_ICONDITIONS_TAB( window ));
g_return_if_fail( NACT_IS_IADVANCED_TAB( window ));
+ g_return_if_fail( NACT_IS_IPROPERTIES_TAB( window ));
if( !window->private->dispose_has_run ){
@@ -1120,6 +1142,7 @@ on_base_all_widgets_showed( NactMainWindow *window, gpointer user_data )
nact_ifolders_tab_all_widgets_showed( NACT_IFOLDERS_TAB( window ));
nact_iconditions_tab_all_widgets_showed( NACT_ICONDITIONS_TAB( window ));
nact_iadvanced_tab_all_widgets_showed( NACT_IADVANCED_TAB( window ));
+ nact_iproperties_tab_all_widgets_showed( NACT_IPROPERTIES_TAB( window ));
nact_iactions_list_all_widgets_showed( NACT_IACTIONS_LIST( window ));
nact_sort_buttons_all_widgets_showed( window );
diff --git a/src/nact/nautilus-actions-config-tool.ui b/src/nact/nautilus-actions-config-tool.ui
index d109ad1..d9417ed 100644
--- a/src/nact/nautilus-actions-config-tool.ui
+++ b/src/nact/nautilus-actions-config-tool.ui
@@ -458,164 +458,7 @@ Menus are never displayed in the toolbar.</property>
</packing>
</child>
<child>
- <object class="GtkFrame" id="frame8">
- <property name="visible">True</property>
- <property name="label_xalign">0</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkAlignment" id="alignment8">
- <property name="visible">True</property>
- <property name="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="table4">
- <property name="visible">True</property>
- <property name="n_rows">4</property>
- <property name="n_columns">2</property>
- <property name="column_spacing">5</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">2</property>
- <property name="bottom_attach">3</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">2</property>
- <property name="bottom_attach">3</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">3</property>
- <property name="bottom_attach">4</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">3</property>
- <property name="bottom_attach">4</property>
- </packing>
- </child>
- <child>
- <object class="GtkLabel" id="ActionDescriptionLabel">
- <property name="visible">True</property>
- <property name="xalign">1</property>
- <property name="yalign">0</property>
- <property name="label" translatable="yes">_Description :</property>
- <property name="use_underline">True</property>
- </object>
- <packing>
- <property name="x_options">GTK_FILL</property>
- </packing>
- </child>
- <child>
- <object class="GtkHBox" id="hbox10">
- <property name="visible">True</property>
- <property name="homogeneous">True</property>
- <child>
- <object class="GtkCheckButton" id="ActionEnabledButton">
- <property name="label" translatable="yes">E_nabled</property>
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="receives_default">False</property>
- <property name="use_underline">True</property>
- <property name="draw_indicator">True</property>
- </object>
- <packing>
- <property name="position">0</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="position">1</property>
- </packing>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- <property name="top_attach">1</property>
- <property name="bottom_attach">2</property>
- </packing>
- </child>
- <child>
- <object class="GtkScrolledWindow" id="scrolledwindow3">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="hscrollbar_policy">automatic</property>
- <property name="vscrollbar_policy">automatic</property>
- <property name="shadow_type">in</property>
- <child>
- <object class="GtkTextView" id="ActionDescriptionText">
- <property name="visible">True</property>
- <property name="can_focus">True</property>
- <property name="tooltip_text" translatable="yes">This description may be used when presenting your menu or action in a web site.</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="left_attach">1</property>
- <property name="right_attach">2</property>
- </packing>
- </child>
- <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"><b>Action properties</b></property>
- <property name="use_markup">True</property>
- </object>
- </child>
- </object>
- <packing>
- <property name="expand">False</property>
- <property name="position">1</property>
- </packing>
+ <placeholder/>
</child>
</object>
</child>
@@ -979,14 +822,14 @@ Defining several profiles lets you have several commands, each applying with a d
</packing>
</child>
<child type="tab">
- <object class="GtkLabel" id="label15">
+ <object class="GtkLabel" id="label16">
<property name="visible">True</property>
<property name="tooltip_text" translatable="yes">This tab lets you precisely choose in which folders this profile will apply.</property>
<property name="label" translatable="yes">_Folders</property>
<property name="use_underline">True</property>
</object>
<packing>
- <property name="position">4</property>
+ <property name="position">2</property>
<property name="tab_fill">False</property>
</packing>
</child>
@@ -1345,10 +1188,197 @@ Defining several profiles lets you have several commands, each applying with a d
</packing>
</child>
<child type="tab">
+ <object class="GtkLabel" id="label15">
+ <property name="visible">True</property>
+ <property name="tooltip_text" translatable="yes">This advanced tab lets you precisely choose on which schemes the selection will apply.</property>
+ <property name="label" translatable="yes">_Schemes</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="position">4</property>
+ <property name="tab_fill">False</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkVBox" id="vbox17">
+ <property name="visible">True</property>
+ <property name="border_width">6</property>
+ <property name="orientation">vertical</property>
+ <property name="spacing">10</property>
+ <child>
+ <object class="GtkFrame" id="frame8">
+ <property name="visible">True</property>
+ <property name="label_xalign">0</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkAlignment" id="alignment8">
+ <property name="visible">True</property>
+ <property name="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="table4">
+ <property name="visible">True</property>
+ <property name="n_rows">5</property>
+ <property name="n_columns">2</property>
+ <property name="column_spacing">5</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">3</property>
+ <property name="bottom_attach">4</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">3</property>
+ <property name="bottom_attach">4</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">4</property>
+ <property name="bottom_attach">5</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">4</property>
+ <property name="bottom_attach">5</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel" id="ActionDescriptionLabel">
+ <property name="visible">True</property>
+ <property name="xalign">1</property>
+ <property name="yalign">0</property>
+ <property name="label" translatable="yes">_Description :</property>
+ <property name="use_underline">True</property>
+ </object>
+ <packing>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ <property name="x_options">GTK_FILL</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkScrolledWindow" id="scrolledwindow3">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="hscrollbar_policy">automatic</property>
+ <property name="vscrollbar_policy">automatic</property>
+ <property name="shadow_type">in</property>
+ <child>
+ <object class="GtkTextView" id="ActionDescriptionText">
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ <property name="top_attach">1</property>
+ <property name="bottom_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkCheckButton" id="ActionEnabledButton">
+ <property name="label" translatable="yes">E_nabled</property>
+ <property name="visible">True</property>
+ <property name="can_focus">True</property>
+ <property name="receives_default">False</property>
+ <property name="use_underline">True</property>
+ <property name="draw_indicator">True</property>
+ </object>
+ <packing>
+ <property name="left_attach">1</property>
+ <property name="right_attach">2</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </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">2</property>
+ <property name="bottom_attach">3</property>
+ </packing>
+ </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"><b>Action properties</b></property>
+ <property name="use_markup">True</property>
+ </object>
+ </child>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ <child>
+ <placeholder/>
+ </child>
+ </object>
+ <packing>
+ <property name="position">5</property>
+ </packing>
+ </child>
+ <child type="tab">
<object class="GtkLabel" id="label50">
<property name="visible">True</property>
<property name="tooltip_text" translatable="yes">This advanced tab lets you precisely choose on which schemes the selection will apply.</property>
- <property name="label" translatable="yes">A_dvanced conditions</property>
+ <property name="label" translatable="yes">_Properties</property>
<property name="use_underline">True</property>
</object>
<packing>
@@ -1453,6 +1483,15 @@ Defining several profiles lets you have several commands, each applying with a d
<placeholder/>
</child>
<child>
+ <placeholder/>
+ </child>
+ <child>
+ <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>
@@ -1469,9 +1508,9 @@ Defining several profiles lets you have several commands, each applying with a d
<object class="GtkFileChooserWidget" id="ImportFileChooser">
<property name="visible">True</property>
<property name="preview_widget_active">False</property>
+ <property name="select_multiple">True</property>
<property name="local_only">False</property>
<property name="use_preview_label">False</property>
- <property name="select_multiple">True</property>
</object>
<packing>
<property name="position">0</property>
@@ -2265,24 +2304,24 @@ 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="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="ActionTooltipLabel"/>
<widget name="ActionIconLabel"/>
+ <widget name="ActionTooltipLabel"/>
+ <widget name="ActionIdLabel"/>
+ <widget name="ActionMenuLabelLabel"/>
+ <widget name="ActionToolbarLabelLabel"/>
</widgets>
</object>
</interface>
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]