[nautilus-actions] Prepare with XDS drag and drop
- From: Pierre Wieser <pwieser src gnome org>
- To: svn-commits-list gnome org
- Cc:
- Subject: [nautilus-actions] Prepare with XDS drag and drop
- Date: Fri, 2 Oct 2009 22:42:40 +0000 (UTC)
commit 9c6604ecf0985b1d77a1ff28a95fd86f5634e1f0
Author: Pierre Wieser <pwieser trychlos org>
Date: Thu Oct 1 19:59:28 2009 +0200
Prepare with XDS drag and drop
ChangeLog | 29 +++++++++++++++++++++++++++++
src/common/na-utils.c | 31 ++++++++++++++++++++++++++++---
src/common/na-utils.h | 1 +
src/nact/base-window.c | 37 ++++++++++++++++++++++++++++---------
src/nact/base-window.h | 1 +
5 files changed, 87 insertions(+), 12 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 3b93c48..6b87967 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,32 @@
+2009-10-01 Pierre Wieser <pwieser trychlos org>
+
+ * src/common/na-utils.c:
+ * src/common/na-utils.h (na_utils_lines_to_string_list):
+ New function to handle uri lists.
+
+ * src/common/na-iio-provider.c:
+ * src/common/na-pivot.c:
+ * src/common/na-iprefs.c:
+ * src/common/na-iprefs.h:
+ * src/nact/nact-assistant-import.c:
+ * src/nact/nact-preferences-editor.c:
+ All preferences managed here are renamed as IPREFS_xxx.
+
+ * src/common/na-iprefs.c:
+ * src/common/na-iprefs.h (na_iprefs_get_import_mode,
+ na_iprefs_set_import_mode): New functions.
+
+ * src/common/na-xml-writer.c:
+ Replace g_assert() with g_return_if_fail().
+
+ * src/nact/base-window.c:
+ * src/nact/base-window.h (base_window_signal_connect_after):
+ New function.
+
+ * src/nact/nact-preferences-editor.c:
+ * src/nact/nautilus-actions-config-tool.ui:
+ Display in Preferences editor import mode preferences.
+
2009-09-30 Pierre Wieser <pwieser trychlos org>
* data/nautilus-actions.schemas.in:
diff --git a/src/common/na-utils.c b/src/common/na-utils.c
index a9b055c..f54bfef 100644
--- a/src/common/na-utils.c
+++ b/src/common/na-utils.c
@@ -38,6 +38,8 @@
#include "na-utils.h"
+static GSList *text_to_string_list( const gchar *text, const gchar *separator, const gchar *default_value );
+
/**
* na_utils_find_in_list:
* @list: the GSList of strings to be searched.
@@ -195,17 +197,40 @@ na_utils_string_list_to_text( GSList *strlist )
GSList *
na_utils_text_to_string_list( const gchar *text )
{
+ return( text_to_string_list( text, ";", "*" ));
+}
+
+/**
+ * na_utils_lines_to_string_list:
+ * @text: a buffer which contains embedded newlines.
+ *
+ * Returns: a list of strings from the buffer.
+ *
+ * The returned list should be na_utils_free_string_list() by the caller.
+ */
+GSList *
+na_utils_lines_to_string_list( const gchar *text )
+{
+ return( text_to_string_list( text, "\n", NULL ));
+}
+
+/*
+ * split a text buffer in lines
+ */
+static GSList *
+text_to_string_list( const gchar *text, const gchar *separator, const gchar *default_value )
+{
GSList *strlist = NULL;
gchar **tokens, **iter;
gchar *tmp;
gchar *source = g_strdup( text );
tmp = g_strstrip( source );
- if( !strlen( tmp )){
- strlist = g_slist_append( strlist, g_strdup( "*" ));
+ if( !strlen( tmp ) && default_value ){
+ strlist = g_slist_append( strlist, g_strdup( default_value ));
} else {
- tokens = g_strsplit( source, ";", -1 );
+ tokens = g_strsplit( source, separator, -1 );
iter = tokens;
while( *iter ){
diff --git a/src/common/na-utils.h b/src/common/na-utils.h
index daeb19f..eecb1ac 100644
--- a/src/common/na-utils.h
+++ b/src/common/na-utils.h
@@ -45,6 +45,7 @@ GSList *na_utils_remove_ascii_from_string_list( GSList *list, const gchar *text
void na_utils_free_string_list( GSList *list );
gchar *na_utils_string_list_to_text( GSList *list );
GSList *na_utils_text_to_string_list( const gchar *text );
+GSList *na_utils_lines_to_string_list( const gchar *text );
void na_utils_dump_string_list( GSList *list );
gchar *na_utils_gslist_to_schema( GSList *list );
diff --git a/src/nact/base-window.c b/src/nact/base-window.c
index 3e28e57..9cfb4ec 100644
--- a/src/nact/base-window.c
+++ b/src/nact/base-window.c
@@ -132,6 +132,8 @@ static GtkWidget *search_for_child_widget( GtkContainer *container, const
static void set_toplevel_initialized( BaseWindow *window, GtkWindow *toplevel, gboolean init );
static void setup_builder( BaseWindow *window );
+static void record_connected_signal( BaseWindow *window, GObject *instance, gulong handler_id );
+
GType
base_window_get_type( void )
{
@@ -1202,22 +1204,24 @@ base_window_yesno_dlg( BaseWindow *window, GtkMessageType type, const gchar *fir
void
base_window_signal_connect( BaseWindow *window, GObject *instance, const gchar *signal, GCallback fn )
{
- static const gchar *thisfn = "base_window_signal_connect";
-
g_return_if_fail( BASE_IS_WINDOW( window ));
if( !window->private->dispose_has_run ){
gulong handler_id = g_signal_connect( instance, signal, fn, window );
+ record_connected_signal( window, instance, handler_id );
+ }
+}
- BaseWindowRecordedSignal *str = g_new0( BaseWindowRecordedSignal, 1 );
- str->instance = instance;
- str->handler_id = handler_id;
- window->private->signals = g_slist_prepend( window->private->signals, str );
+void
+base_window_signal_connect_after( BaseWindow *window, GObject *instance, const gchar *signal, GCallback fn )
+{
+ g_return_if_fail( BASE_IS_WINDOW( window ));
- if( st_debug_signal_connect ){
- g_debug( "%s: connecting signal handler %p:%lu", thisfn, ( void * ) instance, handler_id );
- }
+ if( !window->private->dispose_has_run ){
+
+ gulong handler_id = g_signal_connect_after( instance, signal, fn, window );
+ record_connected_signal( window, instance, handler_id );
}
}
@@ -1235,3 +1239,18 @@ base_window_signal_connect_by_name( BaseWindow *window, const gchar *name, const
}
}
}
+
+static void
+record_connected_signal( BaseWindow *window, GObject *instance, gulong handler_id )
+{
+ static const gchar *thisfn = "base_window_record_connected_signal";
+
+ BaseWindowRecordedSignal *str = g_new0( BaseWindowRecordedSignal, 1 );
+ str->instance = instance;
+ str->handler_id = handler_id;
+ window->private->signals = g_slist_prepend( window->private->signals, str );
+
+ if( st_debug_signal_connect ){
+ g_debug( "%s: connecting signal handler %p:%lu", thisfn, ( void * ) instance, handler_id );
+ }
+}
diff --git a/src/nact/base-window.h b/src/nact/base-window.h
index 80ffa2d..2f30019 100644
--- a/src/nact/base-window.h
+++ b/src/nact/base-window.h
@@ -88,6 +88,7 @@ void base_window_error_dlg( BaseWindow *window, GtkMessageType type,
gboolean base_window_yesno_dlg( BaseWindow *window, GtkMessageType type, const gchar *first, const gchar *second );
void base_window_signal_connect( BaseWindow *window, GObject *instance, const gchar *signal, GCallback fn );
+void base_window_signal_connect_after( BaseWindow *window, GObject *instance, const gchar *signal, GCallback fn );
void base_window_signal_connect_by_name( BaseWindow *window, const gchar *name, const gchar *signal, GCallback fn );
G_END_DECLS
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]