From: Richard L. <rl...@us...> - 2005-11-19 15:19:44
|
Update of /cvsroot/gaim/gaim/src In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv17672/src Modified Files: gtkplugin.c gtksavedstatuses.c Log Message: SF Patch #1361020 from Sadrul 'Double click to (1)"Use" a saved-status (2) Load Plugin-pref Double-click to use a saved-status in the saved-status dialog, and double-click to load a plugin and open it's preference-dialog.' I ask, he writes. Wow! :) Index: gtkplugin.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtkplugin.c,v retrieving revision 1.28 retrieving revision 1.29 diff -u -d -p -r1.28 -r1.29 --- gtkplugin.c 13 Nov 2005 01:32:31 -0000 1.28 +++ gtkplugin.c 19 Nov 2005 15:19:35 -0000 1.29 @@ -334,6 +334,34 @@ static void plugin_dialog_response_cb(Gt } } +static void +show_plugin_prefs_cb(GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *column, gpointer null) +{ + GtkTreeSelection *sel; + GtkTreeIter iter; + GaimPlugin *plugin; + GtkTreeModel *model; + + sel = gtk_tree_view_get_selection(view); + + if (!gtk_tree_selection_get_selected(sel, &model, &iter)) + return; + + gtk_tree_model_get(model, &iter, 2, &plugin, -1); + + /* If the plugin is not loaded, then load it first. */ + if (!gaim_plugin_is_loaded(plugin)) + { + GtkTreePath *path = gtk_tree_model_get_path(model, &iter); + gchar *pth = gtk_tree_path_to_string(path); + gtk_tree_path_free(path); + plugin_load(NULL, pth, model); + g_free(pth); + } + /* Now show the pref-dialog for the plugin */ + plugin_dialog_response_cb(NULL, 98121, sel); +} + void gaim_gtk_plugin_dialog_show() { GtkWidget *sw; @@ -372,6 +400,9 @@ void gaim_gtk_plugin_dialog_show() event_view = gtk_tree_view_new_with_model (GTK_TREE_MODEL(ls)); + g_signal_connect(G_OBJECT(event_view), "row-activated", + G_CALLBACK(show_plugin_prefs_cb), event_view); + rend = gtk_cell_renderer_toggle_new(); sel = gtk_tree_view_get_selection (GTK_TREE_VIEW (event_view)); Index: gtksavedstatuses.c =================================================================== RCS file: /cvsroot/gaim/gaim/src/gtksavedstatuses.c,v retrieving revision 1.26 retrieving revision 1.27 diff -u -d -p -r1.26 -r1.27 --- gtksavedstatuses.c 14 Nov 2005 07:20:22 -0000 1.26 +++ gtksavedstatuses.c 19 Nov 2005 15:19:35 -0000 1.27 @@ -387,6 +387,12 @@ search_func(GtkTreeModel *model, gint co return result; } +static void +use_savedstatus_cb(GtkTreeView *view, GtkTreePath *path, GtkTreeViewColumn *column, StatusWindow *dialog) +{ + status_window_use_cb(NULL, dialog); +} + static GtkWidget * create_saved_status_list(StatusWindow *dialog) { @@ -415,6 +421,8 @@ create_saved_status_list(StatusWindow *d treeview = gtk_tree_view_new_with_model(GTK_TREE_MODEL(dialog->model)); dialog->treeview = treeview; gtk_tree_view_set_rules_hint(GTK_TREE_VIEW(treeview), TRUE); + g_signal_connect(G_OBJECT(treeview), "row-activated", + G_CALLBACK(use_savedstatus_cb), dialog); sel = gtk_tree_view_get_selection(GTK_TREE_VIEW(treeview)); gtk_tree_selection_set_mode(sel, GTK_SELECTION_MULTIPLE); |