2008-09-12 [colin] 3.5.0cvs103
[claws.git] / src / prefs_template.c
index 44739dfde21ef5eb72fd72a69fb8b19650d1ebd3..dc2ff11ff28f79cedd214a676e6058522cd75559 100644 (file)
@@ -99,6 +99,10 @@ static gint prefs_template_deleted_cb                (GtkWidget      *widget,
 static gboolean prefs_template_key_pressed_cb  (GtkWidget      *widget,
                                                 GdkEventKey    *event,
                                                 gpointer        data);
+static gboolean prefs_template_search_func_cb (GtkTreeModel *model, gint column, 
+                                               const gchar *key, GtkTreeIter *iter, 
+                                               gpointer search_data);
+
 static void prefs_template_cancel_cb           (gpointer action, gpointer data);
 static void prefs_template_ok_cb               (gpointer action, gpointer data);
 static void prefs_template_register_cb         (gpointer action, gpointer data);
@@ -519,6 +523,29 @@ static gboolean prefs_template_key_pressed_cb(GtkWidget *widget,
        return FALSE;
 }
 
+static gboolean prefs_template_search_func_cb (GtkTreeModel *model, gint column, const gchar *key, 
+                                               GtkTreeIter *iter, gpointer search_data) 
+{
+       gchar *store_string;
+       gint key_len;
+       gboolean retval;
+       GtkTreePath *path;
+
+       gtk_tree_model_get (model, iter, column, &store_string, -1);
+
+       if (!store_string || !key) return FALSE;
+
+       key_len = strlen (key);
+       retval = (strncmp (key, store_string, key_len) != 0);
+
+       g_free(store_string);
+       debug_print("selecting row\n");
+       path = gtk_tree_model_get_path(model, iter);
+       prefs_template_select_row(GTK_TREE_VIEW(templates.list_view), path);
+       gtk_tree_path_free(path);
+
+       return retval;
+}
 static void prefs_template_address_completion_end(void)
 {
        gint i;
@@ -654,7 +681,7 @@ gboolean prefs_template_string_is_valid(gchar *string, gint *line, gboolean esca
                        tmp = g_strdup(string);
                }
                memset(&dummyinfo, 0, sizeof(MsgInfo));
-#ifdef USE_ASPELL
+#ifdef USE_ENCHANT
                quote_fmt_init(&dummyinfo, NULL, NULL, TRUE, account, FALSE, NULL);
 #else
                quote_fmt_init(&dummyinfo, NULL, NULL, TRUE, account, FALSE);
@@ -1176,6 +1203,7 @@ static void prefs_template_create_list_view_columns(GtkWidget *list_view)
                         "text", TEMPL_TEXT,
                         NULL);
        gtk_tree_view_append_column(GTK_TREE_VIEW(list_view), column);          
+       gtk_tree_view_set_search_equal_func(GTK_TREE_VIEW(list_view), prefs_template_search_func_cb , NULL, NULL);
 }
 
  /*!