pidgin/prefs/pidginproxyprefs.c

changeset 41859
ed82ab63d15a
parent 41856
3c3901fbe549
child 42575
580339aa47cc
equal deleted inserted replaced
41858:38e61d11b89f 41859:ed82ab63d15a
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

mercurial