r16348 - gnucash/branches/register-rewrite/src/gnome-utils - Set the copy of the model data used for autocompletion to be owned by the treeview instead of having different copies

Jeff Green jeff at cvs.gnucash.org
Sat Jul 21 23:13:57 EDT 2007


Author: jeff
Date: 2007-07-21 23:13:57 -0400 (Sat, 21 Jul 2007)
New Revision: 16348
Trac: http://svn.gnucash.org/trac/changeset/16348

Modified:
   gnucash/branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.c
Log:
Set the copy of the model data used for autocompletion to be owned by the treeview instead of having different copies 
for each cellrenderer.


Modified: gnucash/branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.c
===================================================================
--- gnucash/branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.c	2007-07-22 01:51:36 UTC (rev 16347)
+++ gnucash/branches/register-rewrite/src/gnome-utils/gnc-tree-view-transaction.c	2007-07-22 03:13:57 UTC (rev 16348)
@@ -977,14 +977,15 @@
 //model to use for autocompletion, so that the real tree model is
 //not altered by the autocompletion.
 static void
-model_copy(GtkCellRenderer *cell, gpointer data)
+model_copy(gpointer data)
 {
 	GtkListStore *list;
 	GtkTreeIter iter1, iter2;
 	gchar *string;
 	gboolean loop = TRUE;
-	gint column = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cell), 
-				"model_column"));
+	//gint column = GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cell), 
+	//			"model_column"));
+	gint column = GNC_TREE_MODEL_TRANSACTION_COL_DESCRIPTION;
 
 	list = gtk_list_store_new(1, G_TYPE_STRING);
 	gtk_tree_model_get_iter_first(GTK_TREE_MODEL(get_trans_model_from_view(data)), &iter1);
@@ -996,7 +997,7 @@
 		loop = gtk_tree_model_iter_next(GTK_TREE_MODEL(get_trans_model_from_view(data)), &iter1);
 	}//while
 
-	g_object_set_data(G_OBJECT(cell), "model_copy", list);
+	g_object_set_data(G_OBJECT(data), "model_copy", list);
 }//model_copy
 
 /* Connected to "edited" from cellrenderer. For reference, see
@@ -1063,9 +1064,9 @@
             xaccSplitSetMemo(split, new_text);
         if (is_trans)
             xaccTransSetDescription(trans, new_text);
-	gtk_list_store_append(GTK_LIST_STORE(g_object_get_data(G_OBJECT(cell),
+		gtk_list_store_append(GTK_LIST_STORE(g_object_get_data(G_OBJECT(tv),
 			"model_copy")), &copy_iter);
-	gtk_list_store_set(GTK_LIST_STORE(g_object_get_data(G_OBJECT(cell), 
+		gtk_list_store_set(GTK_LIST_STORE(g_object_get_data(G_OBJECT(tv), 
 			"model_copy")), &copy_iter, 0, new_text, -1);
         break;
     case COL_NOTES:
@@ -1385,7 +1386,7 @@
                               const gchar *path_string, gpointer user_data)
 {
     GncTreeViewTransaction *tv = GNC_TREE_VIEW_TRANSACTION(user_data);
-	GtkListStore *list = g_object_get_data(G_OBJECT(cr), "model_copy");
+	GtkListStore *list = g_object_get_data(G_OBJECT(tv), "model_copy");
 	GtkEntryCompletion *completion = gtk_entry_completion_new();
 
     g_print("start_edit");
@@ -1399,7 +1400,11 @@
 			//&& GTK_IS_ENTRY(editable))
 	{
 		gtk_entry_completion_set_model(completion, list);
+		//gtk_entry_completion_set_model(completion, 
+		//	GTK_TREE_MODEL(get_trans_model_from_view(tv)));
 		g_object_set(G_OBJECT(completion), "text-column", 0);
+		//g_object_set(G_OBJECT(completion), "text-column", 
+		//	GPOINTER_TO_INT(g_object_get_data(G_OBJECT(cr), "model_column")));
 		gtk_entry_completion_set_inline_completion(completion, TRUE);
 		gtk_entry_completion_set_popup_completion(completion, FALSE);
 		gtk_entry_set_completion(GTK_ENTRY(editable), completion);
@@ -1577,7 +1582,6 @@
 				GINT_TO_POINTER(def.modelcol));
        		g_signal_connect(G_OBJECT(cr), "editing-started",
         		(GCallback) def.editing_started_cb, tv);
-			model_copy(cr, tv);
         }
 
         // This can die when prefs are used.
@@ -1595,6 +1599,9 @@
         i++;
     }
 
+	//Make a copy of data from the treemodel to use for autocompletion
+	model_copy(tv);
+
     gnc_tree_view_configure_columns(GNC_TREE_VIEW(tv));
 
     //g_signal_connect(tv, "cursor-changed", G_CALLBACK(motion_cb), NULL);



More information about the gnucash-changes mailing list