| 81 |
81 |
| 82 return protocol; |
82 return protocol; |
| 83 } |
83 } |
| 84 |
84 |
| 85 gchar * |
85 gchar * |
| 86 pidgin_protocol_chooser_get_selected_name(PidginProtocolChooser *chooser) { |
86 pidgin_protocol_chooser_get_selected_id(PidginProtocolChooser *chooser) { |
| 87 GtkTreeIter iter; |
87 GtkTreeIter iter; |
| 88 gchar *name = NULL; |
88 gchar *id = NULL; |
| 89 |
89 |
| 90 g_return_val_if_fail(PIDGIN_IS_PROTOCOL_CHOOSER(chooser), NULL); |
90 g_return_val_if_fail(PIDGIN_IS_PROTOCOL_CHOOSER(chooser), NULL); |
| 91 |
91 |
| 92 if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(chooser), &iter)) { |
92 if(gtk_combo_box_get_active_iter(GTK_COMBO_BOX(chooser), &iter)) { |
| 93 gtk_tree_model_get(GTK_TREE_MODEL(chooser->model), &iter, |
93 gtk_tree_model_get(GTK_TREE_MODEL(chooser->model), &iter, |
| 94 PIDGIN_PROTOCOL_STORE_COLUMN_NAME, &name, |
94 PIDGIN_PROTOCOL_STORE_COLUMN_ID, &id, |
| 95 -1); |
95 -1); |
| 96 } |
96 } |
| 97 |
97 |
| 98 return name; |
98 return id; |
| 99 } |
99 } |
| 100 |
100 |
| 101 void |
101 void |
| 102 pidgin_protocol_chooser_set_selected_name(PidginProtocolChooser *chooser, |
102 pidgin_protocol_chooser_set_selected_id(PidginProtocolChooser *chooser, |
| 103 const gchar *name) |
103 const gchar *id) |
| 104 { |
104 { |
| 105 GtkTreeIter iter; |
105 GtkTreeIter iter; |
| 106 gchar *iter_name = NULL; |
106 gchar *iter_id = NULL; |
| 107 |
107 |
| 108 g_return_if_fail(PIDGIN_IS_PROTOCOL_CHOOSER(chooser)); |
108 g_return_if_fail(PIDGIN_IS_PROTOCOL_CHOOSER(chooser)); |
| 109 |
109 |
| 110 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(chooser->model), &iter)) { |
110 if (gtk_tree_model_get_iter_first(GTK_TREE_MODEL(chooser->model), &iter)) { |
| 111 do { |
111 do { |
| 112 gtk_tree_model_get(GTK_TREE_MODEL(chooser->model), &iter, |
112 gtk_tree_model_get(GTK_TREE_MODEL(chooser->model), &iter, |
| 113 PIDGIN_PROTOCOL_STORE_COLUMN_NAME, &iter_name, |
113 PIDGIN_PROTOCOL_STORE_COLUMN_ID, &iter_id, |
| 114 -1); |
114 -1); |
| 115 |
115 |
| 116 if(purple_strequal(iter_name, name)) { |
116 if(purple_strequal(iter_id, id)) { |
| 117 gtk_combo_box_set_active_iter(GTK_COMBO_BOX(chooser), &iter); |
117 gtk_combo_box_set_active_iter(GTK_COMBO_BOX(chooser), &iter); |
| 118 |
118 |
| 119 g_free(iter_name); |
119 g_free(iter_id); |
| 120 |
120 |
| 121 return; |
121 return; |
| 122 } |
122 } |
| 123 |
123 |
| 124 g_free(iter_name); |
124 g_free(iter_id); |
| 125 } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(chooser->model), |
125 } while(gtk_tree_model_iter_next(GTK_TREE_MODEL(chooser->model), |
| 126 &iter)); |
126 &iter)); |
| 127 } |
127 } |
| 128 } |
128 } |