[anjuta] symbol-db: Do not notify command-finished also after search command is canceled



commit cbe30266f26b604a9d4189578036201f68c249a0
Author: Naba Kumar <naba gnome org>
Date:   Sat Feb 20 12:30:49 2010 +0200

    symbol-db: Do not notify command-finished also after search command is canceled

 plugins/symbol-db/symbol-db-iface.c          |   21 +++++++++++++++------
 plugins/symbol-db/symbol-db-search-command.c |    7 +++++++
 plugins/symbol-db/symbol-db-search-command.h |    3 +++
 3 files changed, 25 insertions(+), 6 deletions(-)
---
diff --git a/plugins/symbol-db/symbol-db-iface.c b/plugins/symbol-db/symbol-db-iface.c
index d66bffd..32776bc 100644
--- a/plugins/symbol-db/symbol-db-iface.c
+++ b/plugins/symbol-db/symbol-db-iface.c
@@ -355,6 +355,15 @@ on_sdb_search_command_data_arrived (AnjutaCommand *command,
 	callback (cmd_id, IANJUTA_ITERABLE (iterator), callback_user_data);
 }
 
+static void
+on_sdb_search_command_finished (SymbolDBSearchCommand *search_command,
+    							guint return_code,
+								AnjutaAsyncNotify *notify)
+{
+	if (!symbol_db_search_command_get_cancelled (search_command))
+		anjuta_async_notify_notify_finished (notify);
+}
+
 static gint
 do_search_prj_glb_async (SymbolDBSearchCommand *search_command, guint cmd_id, 
                          GCancellable* cancel, AnjutaAsyncNotify *notify, 
@@ -392,9 +401,9 @@ do_search_prj_glb_async (SymbolDBSearchCommand *search_command, guint cmd_id,
 	
 	if (notify)
 	{
-		g_signal_connect_swapped (G_OBJECT (search_command), "command-finished",
-								  G_CALLBACK (anjuta_async_notify_notify_finished),
-								  notify);
+		g_signal_connect (G_OBJECT (search_command), "command-finished",
+						  G_CALLBACK (on_sdb_search_command_finished),
+						  notify);
 	}
 	
 	anjuta_command_start (ANJUTA_COMMAND (search_command));	
@@ -604,9 +613,9 @@ isymbol_manager_search_file_async (IAnjutaSymbolManager *sm, IAnjutaSymbolType m
 	
 	if (notify)
 	{
-		g_signal_connect_swapped (G_OBJECT (search_command), "command-finished",
-								  G_CALLBACK (anjuta_async_notify_notify_finished),
-								  notify);
+		g_signal_connect (G_OBJECT (search_command), "command-finished",
+						  G_CALLBACK (on_sdb_search_command_finished),
+						  notify);
 	}
 	
 	anjuta_command_start (ANJUTA_COMMAND (search_command));	
diff --git a/plugins/symbol-db/symbol-db-search-command.c b/plugins/symbol-db/symbol-db-search-command.c
index 60ebc85..bb35087 100644
--- a/plugins/symbol-db/symbol-db-search-command.c
+++ b/plugins/symbol-db/symbol-db-search-command.c
@@ -317,3 +317,10 @@ symbol_db_search_command_get_iterator_result (SymbolDBSearchCommand* sdbsc)
 
 	return priv->iterator_result;
 }
+
+gboolean
+symbol_db_search_command_get_cancelled (SymbolDBSearchCommand *sdbsc)
+{
+	return sdbsc->priv->is_cancelled;
+}
+
diff --git a/plugins/symbol-db/symbol-db-search-command.h b/plugins/symbol-db/symbol-db-search-command.h
index 522af8c..c57c3af 100644
--- a/plugins/symbol-db/symbol-db-search-command.h
+++ b/plugins/symbol-db/symbol-db-search-command.h
@@ -82,6 +82,9 @@ symbol_db_search_command_set_session_packages (SymbolDBSearchCommand* sdbsc,
 SymbolDBEngineIterator *
 symbol_db_search_command_get_iterator_result (SymbolDBSearchCommand* sdbsc);
 
+/** Returns whether the command has been canceled */
+gboolean
+symbol_db_search_command_get_cancelled (SymbolDBSearchCommand *sdbsc);
 
 G_END_DECLS
 



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