[anjuta] language-support-cpp-java: reapplied previous commit. bgo#610397 bgo#610404



commit 56c371bdbe061f5cfb1d1433305e1d9ed6ce100b
Author: Massimo Corà <mcora src gnome org>
Date:   Fri Feb 19 17:22:29 2010 +0100

    language-support-cpp-java: reapplied previous commit. bgo#610397 bgo#610404
    
    Ref commit a0a6e6519ef369d069f33185b969756966899db7. Now cpp-assist can cancel
    async queries.

 .../language-support-cpp-java/cpp-java-assist.c    |   30 +++++++++++++++++--
 1 files changed, 26 insertions(+), 4 deletions(-)
---
diff --git a/plugins/language-support-cpp-java/cpp-java-assist.c b/plugins/language-support-cpp-java/cpp-java-assist.c
index b047f35..a3bb433 100644
--- a/plugins/language-support-cpp-java/cpp-java-assist.c
+++ b/plugins/language-support-cpp-java/cpp-java-assist.c
@@ -82,6 +82,10 @@ struct _CppJavaAssistPriv {
 	gboolean async_file : 1;
 	gboolean async_system : 1;
 	gboolean async_project : 1;
+
+	GCancellable* cancel_system;
+	GCancellable* cancel_file;
+	GCancellable* cancel_project;	
 };
 
 static gchar*
@@ -430,16 +434,25 @@ cpp_java_assist_create_word_completion_cache (CppJavaAssist *assist)
 	cpp_java_assist_destroy_completion_cache (assist);
 	if (assist->priv->async_file)
 	{
+		g_cancellable_cancel (assist->priv->cancel_file);
 		assist->priv->async_file = FALSE;
 	}
+	g_cancellable_reset (assist->priv->cancel_file);
+	
 	if (assist->priv->async_system)
 	{
+		g_cancellable_cancel (assist->priv->cancel_system);
 		assist->priv->async_system = FALSE;
 	}
+	g_cancellable_reset (assist->priv->cancel_system);
+	
 	if (assist->priv->async_project)
 	{
+		g_cancellable_cancel (assist->priv->cancel_project);
 		assist->priv->async_project = FALSE;
 	}
+	g_cancellable_reset (assist->priv->cancel_project);
+	
 	if (!assist->priv->pre_word || strlen(assist->priv->pre_word) < 3)
 		return;
 
@@ -460,7 +473,8 @@ cpp_java_assist_create_word_completion_cache (CppJavaAssist *assist)
 			                                          							 IANJUTA_SYMBOL_FIELD_TYPE|
 			                                          							 IANJUTA_SYMBOL_FIELD_ACCESS|
 			                                          							 IANJUTA_SYMBOL_FIELD_KIND,
-																				 pattern, file, -1, -1, NULL,
+																				 pattern, file, -1, -1, 
+			    																 assist->priv->cancel_file,
 																				 notify, (IAnjutaSymbolManagerSearchCallback) on_query_data, assist,
 																				 NULL);
 			g_object_unref (file);
@@ -480,7 +494,7 @@ cpp_java_assist_create_word_completion_cache (CppJavaAssist *assist)
 			                                 IANJUTA_SYMBOL_FIELD_ACCESS|
 			                                 IANJUTA_SYMBOL_FIELD_KIND,
 											 pattern, IANJUTA_SYMBOL_MANAGER_SEARCH_FS_PUBLIC, -1, -1, 
-											 NULL,
+											 assist->priv->cancel_project,
 											 notify, (IAnjutaSymbolManagerSearchCallback) on_query_data, assist,
 											 NULL);
 		
@@ -498,14 +512,15 @@ cpp_java_assist_create_word_completion_cache (CppJavaAssist *assist)
 			                                 IANJUTA_SYMBOL_FIELD_ACCESS|
 			                                 IANJUTA_SYMBOL_FIELD_KIND,
 											 pattern, IANJUTA_SYMBOL_MANAGER_SEARCH_FS_PUBLIC, -1, -1,
-											 NULL,
+											 assist->priv->cancel_system,
 											 notify, (IAnjutaSymbolManagerSearchCallback) on_query_data, assist,
 		                                            NULL);
 	}
 	g_free (pattern);
 	g_free (assist->priv->search_cache);
 	assist->priv->search_cache = g_strdup (assist->priv->pre_word);
-	// Take a reference on CppJavaAssist until queries finish
+
+	/* Take a reference on CppJavaAssist until queries finish */
 	g_object_ref (assist);
 	DEBUG_PRINT ("Started async search for: %s", assist->priv->pre_word);
 }
@@ -1131,6 +1146,10 @@ static void
 cpp_java_assist_init (CppJavaAssist *assist)
 {
 	assist->priv = g_new0 (CppJavaAssistPriv, 1);
+	
+	assist->priv->cancel_file = g_cancellable_new();
+	assist->priv->cancel_project = g_cancellable_new();
+	assist->priv->cancel_system = g_cancellable_new();	
 }
 
 static void
@@ -1143,6 +1162,9 @@ cpp_java_assist_finalize (GObject *object)
 	{
 		g_free (assist->priv->calltip_context);
 		assist->priv->calltip_context = NULL;
+		g_object_unref (assist->priv->cancel_file);
+		g_object_unref (assist->priv->cancel_project);
+		g_object_unref (assist->priv->cancel_system);		
 	}
 	g_free (assist->priv);
 	G_OBJECT_CLASS (cpp_java_assist_parent_class)->finalize (object);



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