[gtksourceview/gtksourcecompletion] Remove async filtering.



commit 62324249aa349a33fc4d866958ed3fd22ae7f25f
Author: Ignacio Casal Quinteiro <icq gnome org>
Date:   Thu Jun 4 14:31:00 2009 +0200

    Remove async filtering.

 docs/reference/tmpl/view.sgml            |    9 -
 gtksourceview/gtksourcecompletion.c      |  167 +++------------------
 gtksourceview/gtksourcecompletion.h      |    1 -
 gtksourceview/gtksourcecompletionmodel.c |  235 +++++++++---------------------
 gtksourceview/gtksourcecompletionmodel.h |   15 +--
 gtksourceview/gtksourceview.c            |    2 +-
 6 files changed, 95 insertions(+), 334 deletions(-)
---
diff --git a/docs/reference/tmpl/view.sgml b/docs/reference/tmpl/view.sgml
index f599bb8..c172bc9 100644
--- a/docs/reference/tmpl/view.sgml
+++ b/docs/reference/tmpl/view.sgml
@@ -448,12 +448,3 @@ a text view which syntax highlighting, undo/redo and text marks. Use a
 @Returns: 
 
 
-<!-- ##### FUNCTION gtk_source_view_show_completion ##### -->
-<para>
-
-</para>
-
- view: 
- proposals: 
-
-
diff --git a/gtksourceview/gtksourcecompletion.c b/gtksourceview/gtksourcecompletion.c
index f8cd7d2..192659f 100644
--- a/gtksourceview/gtksourcecompletion.c
+++ b/gtksourceview/gtksourcecompletion.c
@@ -107,13 +107,11 @@ struct _GtkSourceCompletionPrivate
 	
 	guint show_timed_out_id;
 	guint auto_complete_delay;
-	guint minimum_auto_complete_length;
 	
 	gint typing_line;
 	gint typing_line_offset;
 	
 	GtkSourceCompletionProvider *filter_provider;
-	gchar *filter_criteria;
 	
 	gboolean inserting_data;
 	gboolean is_interactive;
@@ -496,7 +494,7 @@ update_selection_label (GtkSourceCompletion *completion)
 	{
 		name = g_markup_escape_text (
 			gtk_source_completion_provider_get_name (completion->priv->filter_provider),
-			-1);
+								 -1);
 
 		gtk_image_set_from_pixbuf (GTK_IMAGE (completion->priv->selection_image),
                            (GdkPixbuf *)gtk_source_completion_provider_get_icon (completion->priv->filter_provider));
@@ -512,28 +510,12 @@ update_selection_label (GtkSourceCompletion *completion)
 	else
 	{
 		gtk_label_set_markup (GTK_LABEL (completion->priv->selection_label),
-		                      name);		                    
+		                      name);
 	}
 	
 	g_free (name);
 }
 
-static void
-do_refilter (GtkSourceCompletion *completion,
-             gboolean             hide_if_empty)
-{
-	gtk_source_completion_model_refilter (completion->priv->model_proposals);
-	
-	/* Check if there are any proposals left */
-	if (hide_if_empty && !completion->priv->inserting_data &&
-	    gtk_source_completion_model_is_empty (completion->priv->model_proposals, FALSE))
-	{
-		gtk_source_completion_hide (completion);
-	}
-	
-	update_selection_label (completion);
-}
-
 typedef GList * (*ListSelector)(GList *);
 
 static gboolean
@@ -565,7 +547,7 @@ select_provider (GtkSourceCompletion *completion,
 			completion->priv->filter_provider = NULL;
 			
 			update_selection_label (completion);
-			do_refilter (completion, FALSE);
+			//do_refilter (completion, FALSE);
 			
 			return TRUE;
 		}
@@ -633,7 +615,7 @@ select_provider (GtkSourceCompletion *completion,
 	}
 	
 	update_selection_label (completion);
-	do_refilter (completion, FALSE);	
+	//do_refilter (completion, FALSE);
 	
 	return TRUE;
 }
@@ -693,51 +675,6 @@ update_info_position (GtkSourceCompletion *completion)
 	gtk_window_move (GTK_WINDOW (completion->priv->info_window), x, y);
 }
 
-static GtkSourceCompletionModelFilterFlag
-proposals_filter_func (GtkSourceCompletionModel    *model,
-                       GtkSourceCompletionProvider *provider,
-                       GtkSourceCompletionProposal *proposal,
-                       GtkSourceCompletion         *completion)
-{
-	GtkSourceCompletionModelFilterFlag ret = GTK_SOURCE_COMPLETION_MODEL_NONE;
-	gboolean visible;
-	gboolean count;
-	GtkTextIter iter;
-	
-	/* Filter on provider */
-	if (completion->priv->filter_provider != NULL && completion->priv->filter_provider != provider)
-	{
-		visible = FALSE;
-		count = TRUE;
-	}
-	else if (completion->priv->filter_criteria == NULL)
-	{
-		visible = TRUE;
-		count = FALSE;
-	}
-	else
-	{
-		visible = gtk_source_completion_provider_filter_proposal (provider,
-	                                                                  proposal,
-	                                                                  &iter,
-	                                                                  completion->priv->filter_criteria);
-
-		count = FALSE;
-	}
-	
-	if (!visible)
-	{
-		ret |= GTK_SOURCE_COMPLETION_MODEL_FILTERED;
-		
-		if (count)
-		{
-			ret |= GTK_SOURCE_COMPLETION_MODEL_COUNT;
-		}
-	}
-	
-	return ret;
-}
-
 static void
 row_activated_cb (GtkTreeView         *tree_view,
 		  GtkTreePath         *path,
@@ -1038,20 +975,6 @@ view_key_press_event_cb (GtkSourceView       *view,
 }
 
 static void
-refilter_proposals_with_word (GtkSourceCompletion *completion)
-{
-	GtkTextView *view;
-	
-	g_free (completion->priv->filter_criteria);
-	view = GTK_TEXT_VIEW (completion->priv->view);
-	
-	completion->priv->filter_criteria = 
-		gtk_source_completion_utils_get_word (GTK_SOURCE_BUFFER (gtk_text_view_get_buffer (view)));
-	
-	do_refilter (completion, TRUE);
-}
-
-static void
 update_typing_offsets (GtkSourceCompletion *completion)
 {
 	GtkTextBuffer *buffer;
@@ -1106,10 +1029,9 @@ show_auto_completion (GtkSourceCompletion *completion)
 							  &end);
 	
 	/* Check minimum amount of characters */
-	if (g_utf8_strlen (word, -1) >= completion->priv->minimum_auto_complete_length)
+	if (g_utf8_strlen (word, -1) >= 1)
 	{
-		gtk_source_completion_show (completion, providers,
-					    word, &start);
+		gtk_source_completion_show (completion, providers, &start);
 		completion->priv->is_interactive = TRUE;
 	}
 
@@ -1149,14 +1071,14 @@ buffer_delete_range_cb (GtkTextBuffer       *buffer,
 	{
 		if (gtk_text_iter_get_line (start) != completion->priv->typing_line ||
 		    (completion->priv->is_interactive && 
-		     gtk_text_iter_get_line_offset (start) < completion->priv->typing_line_offset +
-		     completion->priv->minimum_auto_complete_length))
+		     gtk_text_iter_get_line_offset (start) < completion->priv->typing_line_offset + 1))
 		{
 			gtk_source_completion_hide (completion);
 		}
 		else
 		{
-			refilter_proposals_with_word (completion);
+			//FIXME create the context, remove items, and add new ones
+			//refilter_proposals_with_word (completion);
 		}
 	}
 	
@@ -1191,7 +1113,8 @@ buffer_insert_text_cb (GtkTextBuffer       *buffer,
 		}
 		else
 		{
-			refilter_proposals_with_word (completion);
+			//FIXME create the context, remove items, and add new ones
+			//refilter_proposals_with_word (completion);
 		}
 	}
 }
@@ -1288,8 +1211,6 @@ gtk_source_completion_finalize (GObject *object)
 	g_hash_table_destroy (completion->priv->capability_map);
 	g_list_free (completion->priv->providers);
 	
-	g_free (completion->priv->filter_criteria);
-	
 	G_OBJECT_CLASS (gtk_source_completion_parent_class)->finalize (object);
 }
 
@@ -1325,9 +1246,6 @@ gtk_source_completion_get_property (GObject    *object,
 		case PROP_AUTO_COMPLETE_DELAY:
 			g_value_set_uint (value, completion->priv->auto_complete_delay);
 			break;
-		case PROP_MINIMUM_AUTO_COMPLETE_LENGTH:
-			g_value_set_uint (value, completion->priv->minimum_auto_complete_length);
-			break;
 		default:
 			G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 			break;
@@ -1374,9 +1292,6 @@ gtk_source_completion_set_property (GObject      *object,
 		case PROP_AUTO_COMPLETE_DELAY:
 			completion->priv->auto_complete_delay = g_value_get_uint (value);
 			break;
-		case PROP_MINIMUM_AUTO_COMPLETE_LENGTH:
-			completion->priv->minimum_auto_complete_length = g_value_get_uint (value);
-			break;
 		default:
 			G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
 			break;
@@ -1395,9 +1310,6 @@ gtk_source_completion_hide_default (GtkSourceCompletion *completion)
 	g_list_free (completion->priv->active_providers);
 	completion->priv->active_providers = NULL;
 	
-	g_free (completion->priv->filter_criteria);
-	completion->priv->filter_criteria = NULL;
-	
 	completion->priv->info_visible = GTK_WIDGET_VISIBLE (completion->priv->info_window);
 	
 	gtk_widget_hide (completion->priv->info_window);
@@ -1520,21 +1432,6 @@ gtk_source_completion_class_init (GtkSourceCompletionClass *klass)
 							    G_MAXUINT,
 							    250,
 							    G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
-	/**
-	 * GtkSourceCompletion:min-len:
-	 *
-	 * The minimum word length to initiate interactive completion.
-	 *
-	 */
-	g_object_class_install_property (object_class,
-					 PROP_MINIMUM_AUTO_COMPLETE_LENGTH,
-					 g_param_spec_uint ("minimum-auto-complete-length",
-							    _("Minimum Auto Complete Length"),
-							    _("Minimum word length to initiate interactive completion"),
-							    0,
-							    G_MAXUINT,
-							    3,
-							    G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
 
 	/**
 	 * GtkSourceCompletion::show:
@@ -1735,9 +1632,11 @@ on_row_inserted_cb (GtkTreeModel *tree_model,
 		g_signal_emit (completion, signals[SHOW], 0);
 	}
 	
-	gtk_tree_view_scroll_to_point (GTK_TREE_VIEW (completion->priv->tree_view_proposals),
+	/* FIXME this fixes the header visibility but produces the problem of
+	* scrolling */
+	/*gtk_tree_view_scroll_to_point (GTK_TREE_VIEW (completion->priv->tree_view_proposals),
 	                               0,
-	                               0);
+	                               0);*/
 }
 
 static void
@@ -1753,17 +1652,6 @@ on_items_added_cb (GtkSourceCompletionModel *model,
 	}
 }
 
-static void
-on_filter_done_cb (GtkSourceCompletionModel *model,
-		   GtkSourceCompletion      *completion)
-{
-	/* Check if there are any completions */
-	if (gtk_source_completion_model_is_empty (model, FALSE))
-	{
-		gtk_source_completion_hide (completion);
-	}
-}
-
 static GtkWidget *
 initialize_proposals_ui (GtkSourceCompletion *completion)
 {
@@ -1773,20 +1661,13 @@ initialize_proposals_ui (GtkSourceCompletion *completion)
 	GtkWidget *scrolled_window;
 	GtkWidget *tree_view;
 	
-	completion->priv->model_proposals = 
-		gtk_source_completion_model_new ((GtkSourceCompletionModelVisibleFunc)proposals_filter_func, 
-		                                 completion);
-	
+	completion->priv->model_proposals = gtk_source_completion_model_new ();
+	g_warning ("1");
 	g_signal_connect (completion->priv->model_proposals,
 			  "items-added",
 			  G_CALLBACK (on_items_added_cb),
 			  completion);
 
-	g_signal_connect (completion->priv->model_proposals,
-			  "filter-done",
-			  G_CALLBACK (on_filter_done_cb),
-			  completion);
-
 	gtk_source_completion_model_set_show_headers (completion->priv->model_proposals,
 				                      completion->priv->show_headers);
 	tree_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL (completion->priv->model_proposals));
@@ -1851,7 +1732,7 @@ initialize_proposals_ui (GtkSourceCompletion *completion)
 	
 	gtk_container_add (GTK_CONTAINER (scrolled_window),
 			   tree_view);
-	
+	g_warning ("2");
 	return scrolled_window;
 }
 
@@ -2002,7 +1883,6 @@ gtk_source_completion_init (GtkSourceCompletion *completion)
 	                                                          g_str_equal,
 	                                                          (GDestroyNotify)g_free,
 	                                                          (GDestroyNotify)g_list_free);
-	                                                     
 
 	initialize_ui (completion);
 }
@@ -2015,7 +1895,7 @@ add_proposals (GtkSourceCompletion         *completion,
 	GList *item;
 	GtkSourceCompletionProposal *proposal;
 	GtkTextIter iter;
-
+g_warning ("3");
 	get_iter_at_insert (completion, &iter);
 	
 	proposals = gtk_source_completion_provider_get_proposals (provider, &iter);
@@ -2035,7 +1915,7 @@ add_proposals (GtkSourceCompletion         *completion,
 	}
 
 	gtk_source_completion_model_run_add_proposals (completion->priv->model_proposals);
-	
+	g_warning ("4");
 	g_list_free (proposals);
 }
 
@@ -2111,7 +1991,6 @@ remove_capabilities (GtkSourceCompletion          *completion,
  * gtk_source_completion_show:
  * @completion: A #GtkSourceCompletion
  * @providers: A list of #GtkSourceCompletionProvider
- * @criteria: The filter criteria
  * @place: The place where you want to position the popup window, or %NULL
  *
  * Shows the show completion window. If @place if %NULL the popup window will
@@ -2122,7 +2001,6 @@ remove_capabilities (GtkSourceCompletion          *completion,
 gboolean
 gtk_source_completion_show (GtkSourceCompletion *completion,
                             GList               *providers,
-                            const gchar         *criteria,
                             GtkTextIter         *place)
 {
 	GList *l;
@@ -2138,7 +2016,6 @@ gtk_source_completion_show (GtkSourceCompletion *completion,
 		return FALSE;
 	}
 	
-	completion->priv->filter_criteria = g_strdup (criteria);
 	update_typing_offsets (completion);
 
 	if (place == NULL)
@@ -2166,11 +2043,11 @@ gtk_source_completion_show (GtkSourceCompletion *completion,
 			add_proposals (completion, GTK_SOURCE_COMPLETION_PROVIDER (l->data));
 		}
 	}
-		
+g_warning ("5");
 	completion->priv->active_providers = 
 		g_list_reverse (completion->priv->active_providers);
 
-	completion->priv->is_interactive = FALSE;		
+	completion->priv->is_interactive = FALSE;
 
 	update_selection_label (completion);
 	
diff --git a/gtksourceview/gtksourcecompletion.h b/gtksourceview/gtksourcecompletion.h
index 8c3b638..bd439c4 100644
--- a/gtksourceview/gtksourcecompletion.h
+++ b/gtksourceview/gtksourcecompletion.h
@@ -88,7 +88,6 @@ GList		*gtk_source_completion_get_providers		(GtkSourceCompletion         *compl
                                                                  const gchar                 *capabilities);
 gboolean	 gtk_source_completion_show			(GtkSourceCompletion         *completion,
 								 GList                       *providers,
-								 const gchar                 *criteria,
 								 GtkTextIter                 *place);
 
 void		 gtk_source_completion_hide			(GtkSourceCompletion         *completion);
diff --git a/gtksourceview/gtksourcecompletionmodel.c b/gtksourceview/gtksourcecompletionmodel.c
index 4c90768..f53447c 100644
--- a/gtksourceview/gtksourcecompletionmodel.c
+++ b/gtksourceview/gtksourcecompletionmodel.c
@@ -23,7 +23,6 @@
 #include "gtksourcecompletionmodel.h"
 
 #define ITEMS_PER_CALLBACK 500
-#define FILTER_PER_CALLBACK 1000
 
 #define GTK_SOURCE_COMPLETION_MODEL_GET_PRIVATE(object)(G_TYPE_INSTANCE_GET_PRIVATE((object), GTK_TYPE_SOURCE_COMPLETION_MODEL, GtkSourceCompletionModelPrivate))
 
@@ -34,7 +33,6 @@ typedef struct
 	GtkSourceCompletionProvider *provider;
 	GtkSourceCompletionProposal *proposal;
 	
-	GtkSourceCompletionModelFilterFlag filtered;
 	gulong changed_id;
 } ProposalNode;
 
@@ -54,25 +52,16 @@ struct _GtkSourceCompletionModelPrivate
 	guint num;
 	GHashTable *num_per_provider;
 	
-	GtkSourceCompletionModelVisibleFunc filter;
-	gpointer filter_data;
-	
 	gboolean show_headers;
 	
 	guint idle_id;
 	GQueue *item_queue;
-	
-	guint idle_filter_id;
-
-	GList *next_filter_item;
-	GtkTreeRowReference *next_filter_path;
 };
 
 /* Signals */
 enum
 {
 	ITEMS_ADDED,
-	FILTER_DONE,
 	LAST_SIGNAL
 };
 
@@ -106,10 +95,10 @@ path_from_list (GtkSourceCompletionModel *model,
 	{
 		node = (ProposalNode *)ptr->data;
 		
-		if (!node->filtered)
-		{
+		/*if (!node->filtered)
+		{*/
 			++index;
-		}
+		//}
 		
 		ptr = g_list_next (ptr);
 	}
@@ -165,20 +154,7 @@ get_iter_from_index (GtkSourceCompletionModel *model,
 	
 	item = model->priv->store;
 	
-	while (item != NULL && index >= 0)
-	{
-		node = (ProposalNode *)item->data;
-		
-		if (!node->filtered)
-		{
-			--index;
-		}
-
-		if (index != -1)
-		{
-			item = g_list_next (item);
-		}
-	}
+	item = g_list_nth (item, index);
 	
 	if (item != NULL)
 	{
@@ -271,7 +247,7 @@ tree_model_get_value (GtkTreeModel *tree_model,
 			break;
 	}
 }
-
+/*
 static gboolean
 find_first_not_filtered (GList       *item,
                          GtkTreeIter *iter)
@@ -299,6 +275,23 @@ find_first_not_filtered (GList       *item,
 	{
 		return FALSE;
 	}
+}*/
+
+static gboolean
+get_next_element (GList *item,
+		   GtkTreeIter *iter)
+{
+	item = g_list_next (item);
+	
+	if (item != NULL)
+	{
+		iter->user_data = item;
+		return TRUE;
+	}
+	else
+	{
+		return FALSE;
+	}
 }
 
 static gboolean
@@ -310,9 +303,7 @@ tree_model_iter_next (GtkTreeModel *tree_model,
 	g_return_val_if_fail (GTK_IS_SOURCE_COMPLETION_MODEL (tree_model), FALSE);
 	g_return_val_if_fail (iter != NULL, FALSE);
 	
-	item = g_list_next ((GList *)iter->user_data);
-	
-	return find_first_not_filtered (item, iter);
+	return get_next_element ((GList *)iter->user_data, iter);
 }
 
 static gboolean
@@ -324,14 +315,7 @@ tree_model_iter_children (GtkTreeModel *tree_model,
 	g_return_val_if_fail (iter != NULL, FALSE);
 	g_return_val_if_fail (parent == NULL || parent->user_data != NULL, FALSE);
 	
-	if (parent != NULL)
-	{
-		return FALSE;
-	}
-	else
-	{
-		return find_first_not_filtered (GTK_SOURCE_COMPLETION_MODEL (tree_model)->priv->store, iter);
-	}
+	return get_next_element (GTK_SOURCE_COMPLETION_MODEL (tree_model)->priv->store, iter);
 }
 
 static gboolean
@@ -468,30 +452,11 @@ cancel_append (GtkSourceCompletionModel *model)
 }
 
 static void
-cancel_refilter (GtkSourceCompletionModel *model)
-{
-	if (model->priv->next_filter_path != NULL)
-	{
-		gtk_tree_row_reference_free (model->priv->next_filter_path);
-		model->priv->next_filter_path = NULL;
-	}
-	
-	if (model->priv->idle_filter_id != 0)
-	{
-		g_source_remove (model->priv->idle_filter_id);
-		model->priv->idle_filter_id = 0;
-		
-		g_signal_emit (model, signals[FILTER_DONE], 0);
-	}
-}
-
-static void
 gtk_source_completion_model_dispose (GObject *object)
 {
 	GtkSourceCompletionModel *model = GTK_SOURCE_COMPLETION_MODEL (object);
 
 	cancel_append (model);
-	cancel_refilter (model);
 	
 	if (model->priv->item_queue != NULL)
 	{
@@ -538,18 +503,6 @@ gtk_source_completion_model_class_init (GtkSourceCompletionModelClass *klass)
 			      g_cclosure_marshal_VOID__VOID, 
 			      G_TYPE_NONE,
 			      0);
-
-	signals[FILTER_DONE] =
-		g_signal_new ("filter-done",
-			      G_TYPE_FROM_CLASS (klass),
-			      G_SIGNAL_RUN_LAST | G_SIGNAL_ACTION,
-			      G_STRUCT_OFFSET (GtkSourceCompletionModelClass, filter_done),
-			      NULL, 
-			      NULL,
-			      g_cclosure_marshal_VOID__VOID, 
-			      G_TYPE_NONE,
-			      0);
-
 }
 
 static void
@@ -581,75 +534,43 @@ gtk_source_completion_model_init (GtkSourceCompletionModel *self)
 
 static void
 num_inc (GtkSourceCompletionModel           *model,
-         GtkSourceCompletionProvider        *provider,
-         gboolean                            inc_local,
-         gboolean                            inc_global)
+         GtkSourceCompletionProvider        *provider)
 {
 	HeaderInfo *info;
 	
 	info = g_hash_table_lookup (model->priv->num_per_provider, provider);
 	
-	if (inc_global)
-	{
+	/*if (inc_global)
+	{*/
 		++model->priv->num;
 		
 		if (info != NULL)
 		{
 			++info->visible_items;
+			++(info->num);
 		}
-	}
-	
-	if (inc_local && info != NULL)
-	{
-		++(info->num);
-	}
+	//}
 }
 
 static void
 num_dec (GtkSourceCompletionModel           *model,
-         GtkSourceCompletionProvider        *provider,
-         gboolean                            dec_local,
-         gboolean                            dec_global)
+         GtkSourceCompletionProvider        *provider)
 {
 	HeaderInfo *info;
 	
 	info = g_hash_table_lookup (model->priv->num_per_provider, provider);
 	
-	if (dec_global)
+	--model->priv->num;
+		
+	if (info != NULL)
 	{
-		--model->priv->num;
+		--info->visible_items;
 		
-		if (info != NULL)
+		if (info->num > 0)
 		{
-			--info->visible_items;
+			--(info->num);
 		}
 	}
-
-	if (dec_local && info != NULL && info->num > 0)
-	{
-		--(info->num);
-	}
-}
-
-static GtkSourceCompletionModelFilterFlag
-node_update_filter_state (GtkSourceCompletionModel *model, 
-                          ProposalNode             *node)
-{
-	GtkSourceCompletionModelFilterFlag ret;
-	
-	if (node->proposal == NULL)
-	{
-		return node->filtered;
-	}
-	
-	ret = node->filtered;
-	
-	node->filtered = model->priv->filter (model, 
-	                                      node->provider, 
-	                                      node->proposal, 
-	                                      model->priv->filter_data);
-
-	return ret;
 }
 
 static void
@@ -682,15 +603,15 @@ update_show_headers (GtkSourceCompletionModel *model,
 			node = (ProposalNode *)info->item->data;
 			++num;
 			
-			if (show && node->filtered)
+			/*if (show && node->filtered)
 			{
 				items = g_list_append (items, info);
 			}
 			
 			if (!show && !node->filtered)
-			{
+			{*/
 				items = g_list_append (items, info);
-			}
+			//}
 		}
 	}
 
@@ -701,10 +622,9 @@ update_show_headers (GtkSourceCompletionModel *model,
 			info = (HeaderInfo *)item->data;
 			node = (ProposalNode *)info->item->data;
 			
-			node->filtered = GTK_SOURCE_COMPLETION_MODEL_NONE;
 			iter.user_data = info->item;
 			
-			num_inc (model, node->provider, FALSE, TRUE);
+			num_inc (model, node->provider);
 
 			path = path_from_list (model, info->item);
 			gtk_tree_model_row_inserted (GTK_TREE_MODEL (model),
@@ -719,9 +639,8 @@ update_show_headers (GtkSourceCompletionModel *model,
 		info = (HeaderInfo *)items->data;
 		node = (ProposalNode *)info->item->data;
 		
-		num_dec (model, node->provider, FALSE, TRUE);
+		num_dec (model, node->provider);
 
-		node->filtered = GTK_SOURCE_COMPLETION_MODEL_FILTERED;
 		path = path_from_list (model, info->item);
 		gtk_tree_model_row_deleted (GTK_TREE_MODEL (model), path);
 		gtk_tree_path_free (path);
@@ -729,7 +648,7 @@ update_show_headers (GtkSourceCompletionModel *model,
 
 	g_list_free (items);
 }
-
+/*
 static void
 refilter_headers (GtkSourceCompletionModel *model)
 {
@@ -763,18 +682,12 @@ refilter_headers (GtkSourceCompletionModel *model)
 		return;
 	}
 }
-
+*/
 /* Public */
 GtkSourceCompletionModel*
-gtk_source_completion_model_new (GtkSourceCompletionModelVisibleFunc func,
-                                 gpointer                            userdata)
+gtk_source_completion_model_new (void)
 {
-	GtkSourceCompletionModel *model = g_object_new (GTK_TYPE_SOURCE_COMPLETION_MODEL, NULL);
-	
-	model->priv->filter = func;
-	model->priv->filter_data = userdata;
-
-	return model;
+	return g_object_new (GTK_TYPE_SOURCE_COMPLETION_MODEL, NULL);
 }
 
 static void
@@ -805,8 +718,8 @@ on_proposal_changed (GtkSourceCompletionProposal *proposal,
 	ProposalNode *node = (ProposalNode *)item->data;
 	GtkTreePath *path;
 
-	if (!node->filtered)
-	{
+	/*if (!node->filtered)
+	{*/
 		iter.user_data = node;
 		path = path_from_list (node->model, item);
 
@@ -814,7 +727,7 @@ on_proposal_changed (GtkSourceCompletionProposal *proposal,
 		                            path,
 		                            &iter);
 		gtk_tree_path_free (path);
-	}
+	//}
 }
 
 static gboolean
@@ -843,12 +756,11 @@ idle_append (gpointer data)
 		}
 		
 		/* Check if it is a header */
-		if (g_hash_table_lookup (model->priv->num_per_provider, node->provider) == NULL)
+		/*if (g_hash_table_lookup (model->priv->num_per_provider, node->provider) == NULL)
 		{
 			header = g_slice_new (ProposalNode);
 			header->provider = g_object_ref (node->provider);
 			header->proposal = NULL;
-			header->filtered = GTK_SOURCE_COMPLETION_MODEL_FILTERED;
 			
 			append_list (model, header);
 			
@@ -858,9 +770,9 @@ idle_append (gpointer data)
 			info->visible_items = 0;
 			
 			g_hash_table_insert (model->priv->num_per_provider, node->provider, info);
-		}
+		}*/
 		
-		node_update_filter_state (model, node);
+		//node_update_filter_state (model, node);
 		
 		append_list (model, node);
 		
@@ -868,27 +780,25 @@ idle_append (gpointer data)
 		iter.user_data = item;
 
 		num_inc (model, 
-			 node->provider, 
-			 !node->filtered || (node->filtered & GTK_SOURCE_COMPLETION_MODEL_COUNT),
-			 !node->filtered);
+			 node->provider);
 
-		if (!node->filtered)
-		{
+		/*if (!node->filtered)
+		{*/
 			path = path_from_list (model, item);
 			gtk_tree_model_row_inserted (GTK_TREE_MODEL (model), path, &iter);
 			gtk_tree_path_free (path);
 			
 			if (header != NULL)
 			{
-				update_show_headers (model, TRUE);
+				//update_show_headers (model, TRUE);
 			}
-		}
+		//}
 		
 		node->changed_id = g_signal_connect (node->proposal, 
 	                                             "changed", 
 	                                             G_CALLBACK (on_proposal_changed),
 	                                             item);
-		
+	
 		i++;
 	}
 	
@@ -932,13 +842,11 @@ gtk_source_completion_model_clear (GtkSourceCompletionModel *model)
 	GtkTreePath *path;
 	ProposalNode *node;
 	GList *list;
-	GtkSourceCompletionModelFilterFlag filtered;
 	
 	g_return_if_fail (GTK_IS_SOURCE_COMPLETION_MODEL (model));
 	
 	/* Clear the queue of missing elements to append */
 	cancel_append (model);
-	cancel_refilter (model);
 	
 	path = gtk_tree_path_new_first ();
 	list = model->priv->store;
@@ -946,7 +854,7 @@ gtk_source_completion_model_clear (GtkSourceCompletionModel *model)
 	while (model->priv->store)
 	{
 		node = (ProposalNode *)model->priv->store->data;
-		filtered = node->filtered;
+		//filtered = node->filtered;
 
 		free_node (node);
 		
@@ -958,14 +866,12 @@ gtk_source_completion_model_clear (GtkSourceCompletionModel *model)
 		}
 		
 		num_dec (model, 
-		         node->provider, 
-		         (!filtered || (filtered & GTK_SOURCE_COMPLETION_MODEL_COUNT)) && node->proposal != NULL,
-		         !filtered);
+		         node->provider);
 		
-		if (!filtered)
-		{
+		/*if (!filtered)
+		{*/
 			gtk_tree_model_row_deleted (GTK_TREE_MODEL (model), path);
-		}
+		//}
 	}
 	
 	g_list_free (list);
@@ -973,7 +879,7 @@ gtk_source_completion_model_clear (GtkSourceCompletionModel *model)
 	
 	g_hash_table_remove_all (model->priv->num_per_provider);
 }
-
+#if 0
 static gboolean
 idle_refilter (GtkSourceCompletionModel *model)
 {
@@ -1061,6 +967,7 @@ idle_refilter (GtkSourceCompletionModel *model)
 	return TRUE;
 }
 
+
 void
 gtk_source_completion_model_refilter (GtkSourceCompletionModel *model)
 {
@@ -1077,7 +984,7 @@ gtk_source_completion_model_refilter (GtkSourceCompletionModel *model)
 		                                          model);
 	}
 }
-
+#endif
 gboolean
 gtk_source_completion_model_is_empty (GtkSourceCompletionModel *model,
                                       gboolean                  invisible)
@@ -1125,7 +1032,7 @@ gtk_source_completion_model_set_show_headers (GtkSourceCompletionModel *model,
 	if (model->priv->show_headers != show_headers)
 	{
 		model->priv->show_headers = show_headers;
-		refilter_headers (model);
+		//refilter_headers (model);
 	}
 }
 
@@ -1152,10 +1059,10 @@ gtk_source_completion_model_iter_previous (GtkSourceCompletionModel *model,
 	
 	item = iter->user_data;
 	
-	do
-	{
+	/*do
+	{*/
 		item = g_list_previous (item);
-	} while (item && ((ProposalNode *)item->data)->filtered);
+	//} while (item && ((ProposalNode *)item->data)->filtered);
 
 	
 	if (item != NULL)
@@ -1181,11 +1088,11 @@ gtk_source_completion_model_iter_last (GtkSourceCompletionModel *model,
 	item = model->priv->last;
 	iter->user_data = item;
 
-	if (!((ProposalNode *)item->data)->filtered)
+	/*if (!((ProposalNode *)item->data)->filtered)
 	{
 		return TRUE;
 	}
-	else if (item != NULL)
+	else*/ if (item != NULL)
 	{
 		return gtk_source_completion_model_iter_previous (model, iter);
 	}
diff --git a/gtksourceview/gtksourcecompletionmodel.h b/gtksourceview/gtksourcecompletionmodel.h
index bb112ae..05c2039 100644
--- a/gtksourceview/gtksourcecompletionmodel.h
+++ b/gtksourceview/gtksourcecompletionmodel.h
@@ -54,13 +54,6 @@ struct _GtkSourceCompletionModelClass {
 	void	(*filter_done)		(GtkSourceCompletionModel *model);
 };
 
-typedef enum
-{
-	GTK_SOURCE_COMPLETION_MODEL_NONE,
-	GTK_SOURCE_COMPLETION_MODEL_FILTERED = 1 << 0,
-	GTK_SOURCE_COMPLETION_MODEL_COUNT = 1 << 1
-} GtkSourceCompletionModelFilterFlag;
-
 enum
 {
 	GTK_SOURCE_COMPLETION_MODEL_COLUMN_LABEL,
@@ -71,16 +64,10 @@ enum
 	GTK_SOURCE_COMPLETION_MODEL_N_COLUMNS
 };
 
-typedef GtkSourceCompletionModelFilterFlag (* GtkSourceCompletionModelVisibleFunc) (GtkSourceCompletionModel    *model,
-                                                          GtkSourceCompletionProvider *provider,
-                                                          GtkSourceCompletionProposal *proposal,
-                                                          gpointer                     userdata);
-
 GType gtk_source_completion_model_get_type (void) G_GNUC_CONST;
 
 GtkSourceCompletionModel *
-		gtk_source_completion_model_new 	(GtkSourceCompletionModelVisibleFunc func,
-							 gpointer                            userdata);
+		gtk_source_completion_model_new 	(void);
 
 void		gtk_source_completion_model_run_add_proposals (GtkSourceCompletionModel *model);
 
diff --git a/gtksourceview/gtksourceview.c b/gtksourceview/gtksourceview.c
index 4dbb012..41fbbde 100644
--- a/gtksourceview/gtksourceview.c
+++ b/gtksourceview/gtksourceview.c
@@ -1021,7 +1021,7 @@ gtk_source_view_show_completion_real (GtkSourceView *view)
 	word = gtk_source_completion_utils_get_word (
 			GTK_SOURCE_BUFFER (gtk_text_view_get_buffer (GTK_TEXT_VIEW (view))));
 
-	gtk_source_completion_show (completion, providers, word, NULL);
+	gtk_source_completion_show (completion, providers, NULL);
 
 	g_free (word);
 	g_list_foreach (providers, (GFunc)g_object_unref, NULL);



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