| 156 } |
156 } |
| 157 |
157 |
| 158 return g_variant_new_string(map[position]); |
158 return g_variant_new_string(map[position]); |
| 159 } |
159 } |
| 160 |
160 |
| |
161 static gboolean |
| |
162 pidgin_proxy_prefs_get_port_mapping(GValue *value, GVariant *variant, |
| |
163 G_GNUC_UNUSED gpointer data) |
| |
164 { |
| |
165 g_value_take_string(value, |
| |
166 g_strdup_printf("%d", g_variant_get_uint16(variant))); |
| |
167 |
| |
168 return TRUE; |
| |
169 } |
| |
170 |
| |
171 static GVariant * |
| |
172 pidgin_proxy_prefs_set_port_mapping(const GValue *value, |
| |
173 G_GNUC_UNUSED const GVariantType *expected_type, |
| |
174 G_GNUC_UNUSED gpointer data) |
| |
175 { |
| |
176 const char *current = g_value_get_string(value); |
| |
177 |
| |
178 if(current != NULL) { |
| |
179 return g_variant_new_uint16(atoi(current) & 0xFFFF); |
| |
180 } |
| |
181 |
| |
182 return NULL; |
| |
183 } |
| |
184 |
| 161 static void |
185 static void |
| 162 pidgin_proxy_prefs_init_gnome(PidginProxyPrefs *prefs) { |
186 pidgin_proxy_prefs_init_gnome(PidginProxyPrefs *prefs) { |
| 163 gchar *path = NULL; |
187 gchar *path = NULL; |
| 164 |
188 |
| 165 gtk_widget_set_visible(prefs->gnome, TRUE); |
189 gtk_widget_set_visible(prefs->gnome, TRUE); |
| 203 NULL, |
227 NULL, |
| 204 NULL); |
228 NULL); |
| 205 |
229 |
| 206 g_settings_bind(settings, "host", prefs->host, "text", |
230 g_settings_bind(settings, "host", prefs->host, "text", |
| 207 G_SETTINGS_BIND_DEFAULT); |
231 G_SETTINGS_BIND_DEFAULT); |
| 208 g_settings_bind(settings, "port", prefs->port, "value", |
232 g_settings_bind_with_mapping(settings, "port", |
| 209 G_SETTINGS_BIND_DEFAULT); |
233 prefs->port, "text", |
| |
234 G_SETTINGS_BIND_DEFAULT, |
| |
235 pidgin_proxy_prefs_get_port_mapping, |
| |
236 pidgin_proxy_prefs_set_port_mapping, |
| |
237 NULL, |
| |
238 NULL); |
| 210 g_settings_bind(settings, "username", prefs->username, "text", |
239 g_settings_bind(settings, "username", prefs->username, "text", |
| 211 G_SETTINGS_BIND_DEFAULT); |
240 G_SETTINGS_BIND_DEFAULT); |
| 212 g_settings_bind(settings, "password", prefs->password, "text", |
241 g_settings_bind(settings, "password", prefs->password, "text", |
| 213 G_SETTINGS_BIND_DEFAULT); |
242 G_SETTINGS_BIND_DEFAULT); |
| 214 |
243 |