[nautilus-actions] Refactoring: update NactIConditionsTab interface
- From: Pierre Wieser <pwieser src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nautilus-actions] Refactoring: update NactIConditionsTab interface
- Date: Fri, 19 Feb 2010 02:28:42 +0000 (UTC)
commit d1e251e181bb263ddc97b2105e7332483e190abe
Author: Pierre Wieser <pwieser trychlos org>
Date: Wed Feb 17 14:34:25 2010 +0100
Refactoring: update NactIConditionsTab interface
ChangeLog | 5 ++++
src/api/na-core-utils.h | 1 +
src/core/na-core-utils.c | 31 +++++++++++++++++++++++++
src/nact/nact-iconditions-tab.c | 48 +++++++++++++++++++-------------------
4 files changed, 61 insertions(+), 24 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index c1f21b7..aac6522 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -2,6 +2,11 @@
* src/api/na-core-utils.h:
* src/core/na-core-utils.c:
+ * src/nact/nact-iconditions-tab.c:
+ Update NactIConditionsTab interface.
+
+ * src/api/na-core-utils.h:
+ * src/core/na-core-utils.c:
* src/core/na-iprefs.c:
* src/core/na-iprefs.h:
* src/nact/nact-icommand-tab.c:
diff --git a/src/api/na-core-utils.h b/src/api/na-core-utils.h
index 64ced8c..9c04fd4 100644
--- a/src/api/na-core-utils.h
+++ b/src/api/na-core-utils.h
@@ -57,6 +57,7 @@ void na_core_utils_slist_dump( GSList *list );
GSList *na_core_utils_slist_from_split( const gchar *string, const gchar *separator );
GSList *na_core_utils_slist_from_str_array( const gchar **str_array );
GSList *na_core_utils_slist_remove_string( GSList *list, const gchar *string );
+gchar *na_core_utils_slist_to_text( GSList *list );
gboolean na_core_utils_slist_find( GSList *list, const gchar *str );
gboolean na_core_utils_slist_are_equal( GSList *a, GSList *b );
void na_core_utils_slist_free( GSList *slist );
diff --git a/src/core/na-core-utils.c b/src/core/na-core-utils.c
index fb48191..b3d2de0 100644
--- a/src/core/na-core-utils.c
+++ b/src/core/na-core-utils.c
@@ -242,6 +242,37 @@ na_core_utils_slist_remove_string( GSList *list, const gchar *str )
}
/**
+ * na_core_utils_slist_to_text:
+ * @strlist: a list of strings.
+ *
+ * Concatenates a string list to a semi-colon-separated text
+ * suitable for an entry in the user interface
+ *
+ * Returns: a newly allocated string, which should be g_free() by the
+ * caller.
+ */
+gchar *
+na_core_utils_slist_to_text( GSList *strlist )
+{
+ GSList *ib;
+ gchar *tmp;
+ gchar *text = g_strdup( "" );
+
+ for( ib = strlist ; ib ; ib = ib->next ){
+ if( strlen( text )){
+ tmp = g_strdup_printf( "%s; ", text );
+ g_free( text );
+ text = tmp;
+ }
+ tmp = g_strdup_printf( "%s%s", text, ( gchar * ) ib->data );
+ g_free( text );
+ text = tmp;
+ }
+
+ return( text );
+}
+
+/**
* na_core_utils_slist_find:
* @list: the GSList of strings to be searched.
* @str: the searched string.
diff --git a/src/nact/nact-iconditions-tab.c b/src/nact/nact-iconditions-tab.c
index 7f12d96..4ee0d84 100644
--- a/src/nact/nact-iconditions-tab.c
+++ b/src/nact/nact-iconditions-tab.c
@@ -35,10 +35,9 @@
#include <glib/gi18n.h>
#include <string.h>
+#include <api/na-core-utils.h>
#include <api/na-object-api.h>
-#include <runtime/na-utils.h>
-
#include "base-iprefs.h"
#include "nact-main-window.h"
#include "nact-main-tab.h"
@@ -332,35 +331,35 @@ on_tab_updatable_selection_changed( NactIConditionsTab *instance, gint count_sel
enable_tab = tab_set_sensitive( instance );
basenames_widget = get_basenames_entry( instance );
- basenames = profile ? na_object_profile_get_basenames( profile ) : NULL;
- basenames_text = profile ? na_utils_string_list_to_text( basenames ) : g_strdup( "" );
+ basenames = profile ? na_object_get_basenames( profile ) : NULL;
+ basenames_text = profile ? na_core_utils_slist_to_text( basenames ) : g_strdup( "" );
gtk_entry_set_text( GTK_ENTRY( basenames_widget ), basenames_text );
g_free( basenames_text );
- na_utils_free_string_list( basenames );
+ na_core_utils_slist_free( basenames );
gtk_widget_set_sensitive( basenames_widget, item != NULL );
nact_gtk_utils_set_editable( GTK_OBJECT( basenames_widget ), editable );
matchcase_button = get_matchcase_button( instance );
- matchcase = profile ? na_object_profile_get_matchcase( profile ) : FALSE;
+ matchcase = profile ? na_object_is_matchcase( profile ) : FALSE;
gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( matchcase_button ), matchcase );
gtk_widget_set_sensitive( GTK_WIDGET( matchcase_button ), item != NULL );
nact_gtk_utils_set_editable( GTK_OBJECT( matchcase_button ), editable );
mimetypes_widget = get_mimetypes_entry( instance );
- mimetypes = profile ? na_object_profile_get_mimetypes( profile ) : NULL;
- mimetypes_text = profile ? na_utils_string_list_to_text( mimetypes ) : g_strdup( "" );
+ mimetypes = profile ? na_object_get_mimetypes( profile ) : NULL;
+ mimetypes_text = profile ? na_core_utils_slist_to_text( mimetypes ) : g_strdup( "" );
gtk_entry_set_text( GTK_ENTRY( mimetypes_widget ), mimetypes_text );
g_free( mimetypes_text );
- na_utils_free_string_list( mimetypes );
+ na_core_utils_slist_free( mimetypes );
gtk_widget_set_sensitive( mimetypes_widget, item != NULL );
nact_gtk_utils_set_editable( GTK_OBJECT( mimetypes_widget ), editable );
- isfile = profile ? na_object_profile_get_is_file( profile ) : FALSE;
- isdir = profile ? na_object_profile_get_is_dir( profile ) : FALSE;
+ isfile = profile ? na_object_is_file( profile ) : FALSE;
+ isdir = profile ? na_object_is_dir( profile ) : FALSE;
set_isfiledir( instance, isfile, isdir, editable );
multiple_button = get_multiple_button( instance );
- multiple = profile ? na_object_profile_get_multiple( profile ) : FALSE;
+ multiple = profile ? na_object_is_multiple( profile ) : FALSE;
gtk_toggle_button_set_active( GTK_TOGGLE_BUTTON( multiple_button ), multiple );
gtk_widget_set_sensitive( GTK_WIDGET( multiple_button ), item != NULL );
nact_gtk_utils_set_editable( GTK_OBJECT( multiple_button ), editable );
@@ -397,7 +396,7 @@ tab_set_sensitive( NactIConditionsTab *instance )
TAB_UPDATABLE_PROP_EDITED_PROFILE, &profile,
NULL );
- enable_tab = ( profile != NULL && na_object_action_is_target_selection( NA_OBJECT_ACTION( item )));
+ enable_tab = ( profile != NULL && na_object_is_target_selection( NA_OBJECT_ACTION( item )));
nact_main_tab_enable_page( NACT_MAIN_WINDOW( instance ), TAB_CONDITIONS, enable_tab );
return( enable_tab );
@@ -459,9 +458,9 @@ on_basenames_changed( GtkEntry *entry, NactIConditionsTab *instance )
if( edited ){
text = gtk_entry_get_text( entry );
- basenames = na_utils_text_to_string_list( text );
- na_object_profile_set_basenames( edited, basenames );
- na_utils_free_string_list( basenames );
+ basenames = na_core_utils_slist_from_split( text, ";" );
+ na_object_set_basenames( edited, basenames );
+ na_core_utils_slist_free( basenames );
g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
}
}
@@ -494,13 +493,14 @@ on_isfiledir_toggled( GtkToggleButton *button, NactIConditionsTab *instance )
if( editable ){
nact_iconditions_tab_get_isfiledir( instance, &isfile, &isdir );
- na_object_profile_set_isfiledir( edited, isfile, isdir );
+ na_object_set_isfile( edited, isfile );
+ na_object_set_isdir( edited, isdir );
g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
} else if( gtk_toggle_button_get_active( button )){
g_signal_handlers_block_by_func(( gpointer ) button, on_isfiledir_toggled, instance );
- isfile = na_object_profile_get_is_file( edited );
- isdir = na_object_profile_get_is_dir( edited );
+ isfile = na_object_is_file( edited );
+ isdir = na_object_is_dir( edited );
set_isfiledir( instance, isfile, isdir, !editable );
g_signal_handlers_unblock_by_func(( gpointer ) button, on_isfiledir_toggled, instance );
}
@@ -528,7 +528,7 @@ on_matchcase_toggled( GtkToggleButton *button, NactIConditionsTab *instance )
matchcase = gtk_toggle_button_get_active( button );
if( editable ){
- na_object_profile_set_matchcase( edited, matchcase );
+ na_object_set_matchcase( edited, matchcase );
g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
} else {
@@ -554,9 +554,9 @@ on_mimetypes_changed( GtkEntry *entry, NactIConditionsTab *instance )
if( edited ){
text = gtk_entry_get_text( entry );
- mimetypes = na_utils_text_to_string_list( text );
- na_object_profile_set_mimetypes( edited, mimetypes );
- na_utils_free_string_list( mimetypes );
+ mimetypes = na_core_utils_slist_from_split( text, ";" );
+ na_object_set_mimetypes( edited, mimetypes );
+ na_core_utils_slist_free( mimetypes );
g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
}
}
@@ -580,7 +580,7 @@ on_multiple_toggled( GtkToggleButton *button, NactIConditionsTab *instance )
multiple = gtk_toggle_button_get_active( button );
if( editable ){
- na_object_profile_set_multiple( edited, multiple );
+ na_object_set_multiple( edited, multiple );
g_signal_emit_by_name( G_OBJECT( instance ), TAB_UPDATABLE_SIGNAL_ITEM_UPDATED, edited, FALSE );
} else {
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]