--- a/pidgin/pidginpluginsdialog.c Fri Nov 01 00:37:38 2019 -0500
+++ b/pidgin/pidginpluginsdialog.c Fri Nov 01 00:38:08 2019 -0500
@@ -25,10 +25,16 @@
+#include <gplugin-gtk.h> struct _PidginPluginsDialog {
+ GtkWidget *plugin_info; + GtkListStore *plugin_store; /******************************************************************************
@@ -43,6 +49,25 @@
gtk_widget_destroy(GTK_WIDGET(data));
+pidgin_plugins_dialog_selection_cb(GtkTreeSelection *sel, gpointer data) { + PidginPluginsDialog *dialog = PIDGIN_PLUGINS_DIALOG(data); + GPluginPlugin *plugin = NULL; + GtkTreeModel *model = NULL; + if(gtk_tree_selection_get_selected(sel, &model, &iter)) { + gtk_tree_model_get(model, &iter, + GPLUGIN_GTK_STORE_PLUGIN_COLUMN, &plugin, + gplugin_gtk_plugin_info_set_plugin( + GPLUGIN_GTK_PLUGIN_INFO(dialog->plugin_info), /******************************************************************************
*****************************************************************************/
@@ -58,6 +83,10 @@
gtk_widget_class_bind_template_child(widget_class, PidginPluginsDialog, close_button);
+ gtk_widget_class_bind_template_child(widget_class, PidginPluginsDialog, plugin_info); + gtk_widget_class_bind_template_child(widget_class, PidginPluginsDialog, plugin_store); + gtk_widget_class_bind_template_callback(widget_class, pidgin_plugins_dialog_selection_cb); @@ -71,6 +100,13 @@
G_CALLBACK(pidgin_plugins_dialog_close),
+ /* set the sort column for the plugin_store */ + gtk_tree_sortable_set_sort_column_id( + GTK_TREE_SORTABLE(dialog->plugin_store), + GPLUGIN_GTK_STORE_MARKUP_COLUMN, --- a/pidgin/resources/Plugins/dialog.ui Fri Nov 01 00:37:38 2019 -0500
+++ b/pidgin/resources/Plugins/dialog.ui Fri Nov 01 00:38:08 2019 -0500
@@ -3,8 +3,11 @@
<requires lib="gtk+" version="3.20"/>
<requires lib="gplugin-gtk" version="0.28"/>
- <object class="GPluginGtkStore" id="pluginstore"/>
- <template class="PidginPluginDialog" parent="GtkDialog">
+ <object class="GPluginGtkStore" id="raw_plugin_store"/> + <object class="GtkTreeModelSort" id="plugin_store"> + <property name="model">raw_plugin_store</property> + <template class="PidginPluginsDialog" parent="GtkDialog"> <property name="can_focus">False</property>
<property name="type_hint">dialog</property>
@@ -66,11 +69,12 @@
<object class="GPluginGtkView">
<property name="visible">True</property>
<property name="can_focus">True</property>
- <property name="model">pluginstore</property>
- <property name="headers_visible">False</property>
+ <property name="model">plugin_store</property> <property name="headers_clickable">False</property>
<child internal-child="selection">
- <object class="GtkTreeSelection"/>
+ <object class="GtkTreeSelection"> + <signal name="changed" handler="pidgin_plugins_dialog_selection_cb" object="PidginPluginDialog" swapped="no"/> @@ -82,7 +86,7 @@
- <object class="GPluginGtkPluginInfo">
+ <object class="GPluginGtkPluginInfo" id="plugin_info"> <property name="visible">True</property>
<property name="can_focus">False</property>
<property name="orientation">vertical</property>