pidgin/gtkdialogs.c

changeset 42159
1a481edc6307
parent 42149
4de5a514b8ba
child 42328
cc9493cdb323
equal deleted inserted replaced
42158:4a65f0fbc3dc 42159:1a481edc6307
56 56
57 pidgin_dialogs_im_with_user(account, username); 57 pidgin_dialogs_im_with_user(account, username);
58 } 58 }
59 59
60 static gboolean 60 static gboolean
61 pidgin_dialogs_im_name_validator(G_GNUC_UNUSED PurpleRequestField *field, 61 pidgin_dialogs_im_name_validator(PurpleRequestField *field, char **errmsg,
62 char **errmsg, gpointer data) 62 gpointer data)
63 { 63 {
64 PurpleRequestPage *page = data; 64 PurpleRequestFieldAccount *account_field = data;
65 PurpleAccount *account; 65 PurpleAccount *account;
66 PurpleProtocol *protocol; 66 PurpleProtocol *protocol;
67 const char *username; 67 const char *username;
68 gboolean valid = FALSE; 68 gboolean valid = FALSE;
69 69
70 account = purple_request_page_get_account(page, "account"); 70 account = purple_request_field_account_get_value(account_field);
71 protocol = purple_account_get_protocol(account); 71 protocol = purple_account_get_protocol(account);
72 username = purple_request_page_get_string(page, "screenname"); 72 username = purple_request_field_string_get_value(PURPLE_REQUEST_FIELD_STRING(field));
73 73
74 if (username) { 74 if (username) {
75 valid = purple_validate(protocol, username); 75 valid = purple_validate(protocol, username);
76 } 76 }
77 77
84 void 84 void
85 pidgin_dialogs_im(void) 85 pidgin_dialogs_im(void)
86 { 86 {
87 PurpleRequestPage *page; 87 PurpleRequestPage *page;
88 PurpleRequestGroup *group; 88 PurpleRequestGroup *group;
89 PurpleRequestField *field; 89 PurpleRequestField *username_field = NULL;
90 PurpleRequestField *account_field = NULL;
90 91
91 page = purple_request_page_new(); 92 page = purple_request_page_new();
92 93
93 group = purple_request_group_new(NULL); 94 group = purple_request_group_new(NULL);
94 purple_request_page_add_group(page, group); 95 purple_request_page_add_group(page, group);
95 96
96 field = purple_request_field_string_new("screenname", _("_Name"), NULL, FALSE); 97 username_field = purple_request_field_string_new("screenname", _("_Name"),
97 purple_request_field_set_type_hint(field, "screenname"); 98 NULL, FALSE);
98 purple_request_field_set_required(field, TRUE); 99 purple_request_field_set_type_hint(username_field, "screenname");
99 purple_request_field_set_validator(field, pidgin_dialogs_im_name_validator, 100 purple_request_field_set_required(username_field, TRUE);
100 page, NULL); 101 purple_request_group_add_field(group, username_field);
101 purple_request_group_add_field(group, field); 102
102 103 account_field = purple_request_field_account_new("account", _("_Account"),
103 field = purple_request_field_account_new("account", _("_Account"), NULL); 104 NULL);
104 purple_request_field_set_type_hint(field, "account"); 105 purple_request_field_set_type_hint(account_field, "account");
105 purple_request_field_set_visible(field, 106 purple_request_field_set_visible(account_field,
106 (purple_connections_get_all() != NULL && 107 (purple_connections_get_all() != NULL &&
107 purple_connections_get_all()->next != NULL)); 108 purple_connections_get_all()->next != NULL));
108 purple_request_field_set_required(field, TRUE); 109 purple_request_field_set_required(account_field, TRUE);
109 purple_request_group_add_field(group, field); 110 purple_request_group_add_field(group, account_field);
111
112 purple_request_field_set_validator(username_field,
113 pidgin_dialogs_im_name_validator,
114 account_field, NULL);
110 115
111 purple_request_fields( 116 purple_request_fields(
112 purple_blist_get_default(), _("New Instant Message"), NULL, 117 purple_blist_get_default(), _("New Instant Message"), NULL,
113 _("Please enter the username or alias of the person " 118 _("Please enter the username or alias of the person "
114 "you would like to IM."), 119 "you would like to IM."),

mercurial