summaryrefslogtreecommitdiff
path: root/pidgin
diff options
context:
space:
mode:
authorElliott Sales de Andrade <quantum.analyst@gmail.com>2023-03-07 01:04:42 -0600
committerElliott Sales de Andrade <quantum.analyst@gmail.com>2023-03-07 01:04:42 -0600
commita82fc1d0f0e040d201d31e12b1352329b6b6e0b8 (patch)
tree9ad482b2e8742f748895fbc29e3245ca582ae387 /pidgin
parent66dc29947dff7a229eee65749dafa6c6d314a0b2 (diff)
downloadpidgin-a82fc1d0f0e040d201d31e12b1352329b6b6e0b8.tar.gz
Convert PurpleRequestPage into a GObject
And rename it from `PurpleRequestFields`. Also, implements `GListModel` for the groups, but nothing uses it that way get. Testing Done: Compiled, and opened Request Fields from Demo protocol. Reviewed at https://reviews.imfreedom.org/r/2323/
Diffstat (limited to 'pidgin')
-rw-r--r--pidgin/gtkdialogs.c41
-rw-r--r--pidgin/gtkrequest.c40
-rw-r--r--pidgin/pidginmooddialog.c18
3 files changed, 48 insertions, 51 deletions
diff --git a/pidgin/gtkdialogs.c b/pidgin/gtkdialogs.c
index f5f047c5f8..6b3b00feb1 100644
--- a/pidgin/gtkdialogs.c
+++ b/pidgin/gtkdialogs.c
@@ -47,30 +47,29 @@ struct _PidginGroupMergeObject {
};
static void
-pidgin_dialogs_im_cb(G_GNUC_UNUSED gpointer data, PurpleRequestFields *fields)
-{
+pidgin_dialogs_im_cb(G_GNUC_UNUSED gpointer data, PurpleRequestPage *page) {
PurpleAccount *account;
const char *username;
- account = purple_request_fields_get_account(fields, "account");
- username = purple_request_fields_get_string(fields, "screenname");
+ account = purple_request_page_get_account(page, "account");
+ username = purple_request_page_get_string(page, "screenname");
pidgin_dialogs_im_with_user(account, username);
}
static gboolean
pidgin_dialogs_im_name_validator(G_GNUC_UNUSED PurpleRequestField *field,
- char **errmsg, gpointer _fields)
+ char **errmsg, gpointer data)
{
- PurpleRequestFields *fields = _fields;
+ PurpleRequestPage *page = data;
PurpleAccount *account;
PurpleProtocol *protocol;
const char *username;
gboolean valid = FALSE;
- account = purple_request_fields_get_account(fields, "account");
+ account = purple_request_page_get_account(page, "account");
protocol = purple_account_get_protocol(account);
- username = purple_request_fields_get_string(fields, "screenname");
+ username = purple_request_page_get_string(page, "screenname");
if (username) {
valid = purple_validate(protocol, username);
@@ -85,19 +84,19 @@ pidgin_dialogs_im_name_validator(G_GNUC_UNUSED PurpleRequestField *field,
void
pidgin_dialogs_im(void)
{
- PurpleRequestFields *fields;
+ PurpleRequestPage *page;
PurpleRequestGroup *group;
PurpleRequestField *field;
- fields = purple_request_fields_new();
+ page = purple_request_page_new();
group = purple_request_group_new(NULL);
- purple_request_fields_add_group(fields, group);
+ purple_request_page_add_group(page, group);
field = purple_request_field_string_new("screenname", _("_Name"), NULL, FALSE);
purple_request_field_set_type_hint(field, "screenname");
purple_request_field_set_required(field, TRUE);
- purple_request_field_set_validator(field, pidgin_dialogs_im_name_validator, fields);
+ purple_request_field_set_validator(field, pidgin_dialogs_im_name_validator, page);
purple_request_group_add_field(group, field);
field = purple_request_field_account_new("account", _("_Account"), NULL);
@@ -112,7 +111,7 @@ pidgin_dialogs_im(void)
purple_blist_get_default(), _("New Instant Message"), NULL,
_("Please enter the username or alias of the person "
"you would like to IM."),
- fields, _("OK"), G_CALLBACK(pidgin_dialogs_im_cb), _("Cancel"),
+ page, _("OK"), G_CALLBACK(pidgin_dialogs_im_cb), _("Cancel"),
NULL, NULL, NULL);
}
@@ -137,16 +136,14 @@ pidgin_dialogs_im_with_user(PurpleAccount *account, const char *username)
}
static void
-pidgin_dialogs_info_cb(G_GNUC_UNUSED gpointer data,
- PurpleRequestFields *fields)
-{
+pidgin_dialogs_info_cb(G_GNUC_UNUSED gpointer data, PurpleRequestPage *page) {
char *username;
PurpleAccount *account;
const gchar *screenname = NULL;
- account = purple_request_fields_get_account(fields, "account");
+ account = purple_request_page_get_account(page, "account");
- screenname = purple_request_fields_get_string(fields, "screenname");
+ screenname = purple_request_page_get_string(page, "screenname");
username = g_strdup(purple_normalize(account, screenname));
if(username != NULL && *username != '\0' && account != NULL) {
@@ -160,14 +157,14 @@ pidgin_dialogs_info_cb(G_GNUC_UNUSED gpointer data,
void
pidgin_dialogs_info(void)
{
- PurpleRequestFields *fields;
+ PurpleRequestPage *page;
PurpleRequestGroup *group;
PurpleRequestField *field;
- fields = purple_request_fields_new();
+ page = purple_request_page_new();
group = purple_request_group_new(NULL);
- purple_request_fields_add_group(fields, group);
+ purple_request_page_add_group(page, group);
field = purple_request_field_string_new("screenname", _("_Name"), NULL, FALSE);
purple_request_field_set_type_hint(field, "screenname");
@@ -186,7 +183,7 @@ pidgin_dialogs_info(void)
purple_blist_get_default(), _("Get User Info"), NULL,
_("Please enter the username or alias of the person "
"whose info you would like to view."),
- fields, _("OK"), G_CALLBACK(pidgin_dialogs_info_cb),
+ page, _("OK"), G_CALLBACK(pidgin_dialogs_info_cb),
_("Cancel"), NULL, NULL, NULL);
}
diff --git a/pidgin/gtkrequest.c b/pidgin/gtkrequest.c
index d91e868f8f..478c1402a2 100644
--- a/pidgin/gtkrequest.c
+++ b/pidgin/gtkrequest.c
@@ -65,7 +65,7 @@ typedef struct
struct
{
- PurpleRequestFields *fields;
+ PurpleRequestPage *page;
} multifield;
@@ -226,16 +226,16 @@ req_field_changed_common(G_GNUC_UNUSED GtkWidget *widget,
PurpleRequestField *field)
{
PurpleRequestGroup *group;
- PurpleRequestFields *fields;
+ PurpleRequestPage *page;
PidginRequestData *req_data;
group = purple_request_field_get_group(field);
- fields = purple_request_group_get_fields_list(group);
- req_data = purple_request_fields_get_ui_data(fields);
+ page = purple_request_group_get_page(group);
+ req_data = purple_request_page_get_ui_data(page);
gtk_widget_set_sensitive(req_data->ok_button,
- purple_request_fields_all_required_filled(fields) &&
- purple_request_fields_all_valid(fields));
+ purple_request_page_all_required_filled(page) &&
+ purple_request_page_all_valid(page));
}
static void
@@ -283,7 +283,7 @@ multifield_ok_cb(GtkWidget *button, PidginRequestData *data)
if (data->cbs[0] != NULL)
((PurpleRequestFieldsCb)data->cbs[0])(data->user_data,
- data->u.multifield.fields);
+ data->u.multifield.page);
purple_request_close(PURPLE_REQUEST_FIELDS, data);
}
@@ -295,7 +295,7 @@ multifield_cancel_cb(G_GNUC_UNUSED GtkWidget *button, PidginRequestData *data)
if (data->cbs[1] != NULL)
((PurpleRequestFieldsCb)data->cbs[1])(data->user_data,
- data->u.multifield.fields);
+ data->u.multifield.page);
purple_request_close(PURPLE_REQUEST_FIELDS, data);
}
@@ -310,7 +310,7 @@ multifield_extra_cb(GtkWidget *button, PidginRequestData *data)
cb = g_object_get_data(G_OBJECT(button), "extra-cb");
if (cb != NULL)
- cb(data->user_data, data->u.multifield.fields);
+ cb(data->user_data, data->u.multifield.page);
purple_request_close(PURPLE_REQUEST_FIELDS, data);
}
@@ -1879,7 +1879,7 @@ create_datasheet_field(PurpleRequestField *field, GtkSizeGroup *buttons_sg)
static void *
pidgin_request_fields(const char *title, const char *primary,
- const char *secondary, PurpleRequestFields *fields, const char *ok_text,
+ const char *secondary, PurpleRequestPage *page, const char *ok_text,
GCallback ok_cb, const char *cancel_text, GCallback cancel_cb,
PurpleRequestCommonParameters *cpar, void *user_data)
{
@@ -1905,9 +1905,9 @@ pidgin_request_fields(const char *title, const char *primary,
data = g_new0(PidginRequestData, 1);
data->type = PURPLE_REQUEST_FIELDS;
data->user_data = user_data;
- data->u.multifield.fields = fields;
+ data->u.multifield.page = page;
- purple_request_fields_set_ui_data(fields, data);
+ purple_request_page_set_ui_data(page, data);
extra_actions = purple_request_cpar_get_extra_actions(cpar);
@@ -2005,10 +2005,7 @@ pidgin_request_fields(const char *title, const char *primary,
gtk_box_append(GTK_BOX(vbox), label);
}
- for (gl = purple_request_fields_get_groups(fields);
- gl != NULL;
- gl = gl->next)
- {
+ for(gl = purple_request_page_get_groups(page); gl != NULL; gl = gl->next) {
GList *field_list;
size_t field_count = 0;
size_t cols = 1;
@@ -2199,11 +2196,13 @@ pidgin_request_fields(const char *title, const char *primary,
g_object_unref(sg);
g_object_unref(datasheet_buttons_sg);
- if (!purple_request_fields_all_required_filled(fields))
+ if(!purple_request_page_all_required_filled(page)) {
gtk_widget_set_sensitive(data->ok_button, FALSE);
+ }
- if (!purple_request_fields_all_valid(fields))
+ if(!purple_request_page_all_valid(page)) {
gtk_widget_set_sensitive(data->ok_button, FALSE);
+ }
pidgin_auto_parent_window(win);
@@ -2424,8 +2423,9 @@ pidgin_close_request(PurpleRequestType type, void *ui_handle)
gtk_window_destroy(GTK_WINDOW(data->dialog));
}
- if (type == PURPLE_REQUEST_FIELDS)
- purple_request_fields_destroy(data->u.multifield.fields);
+ if(type == PURPLE_REQUEST_FIELDS) {
+ g_clear_object(&data->u.multifield.page);
+ }
g_free(data);
}
diff --git a/pidgin/pidginmooddialog.c b/pidgin/pidginmooddialog.c
index 870ac3a3f0..dbb8bb4111 100644
--- a/pidgin/pidginmooddialog.c
+++ b/pidgin/pidginmooddialog.c
@@ -57,19 +57,19 @@ update_status_with_mood(PurpleAccount *account, const gchar *mood,
/*< private
* pidgin_mood_edit_cb:
* @connection: The #PurpleConnection instance.
- * @fields: The #PurpleRequestFields
+ * @page: The #PurpleRequestPage
*
* This a callback function for when the request dialog has been accepted.
*/
static void
pidgin_mood_dialog_edit_cb(PurpleConnection *connection,
- PurpleRequestFields *fields)
+ PurpleRequestPage *page)
{
PurpleRequestField *mood_field = NULL;
GList *l = NULL;
const gchar *mood = NULL;
- mood_field = purple_request_fields_get_field(fields, "mood");
+ mood_field = purple_request_page_get_field(page, "mood");
l = purple_request_field_list_get_selected(mood_field);
if(l == NULL) {
@@ -87,7 +87,7 @@ pidgin_mood_dialog_edit_cb(PurpleConnection *connection,
if (flags & PURPLE_CONNECTION_FLAG_SUPPORT_MOOD_MESSAGES) {
PurpleRequestField *text_field = NULL;
- text_field = purple_request_fields_get_field(fields, "text");
+ text_field = purple_request_page_get_field(page, "text");
text = purple_request_field_string_get_value(text_field);
} else {
text = NULL;
@@ -245,7 +245,7 @@ pidgin_mood_get_global_status(void) {
void
pidgin_mood_dialog_show(PurpleAccount *account) {
const gchar *current_mood;
- PurpleRequestFields *fields;
+ PurpleRequestPage *page;
PurpleRequestGroup *g;
PurpleRequestField *f;
PurpleConnection *gc = NULL;
@@ -264,7 +264,7 @@ pidgin_mood_dialog_show(PurpleAccount *account) {
current_mood = pidgin_mood_get_global_status();
}
- fields = purple_request_fields_new();
+ page = purple_request_page_new();
g = purple_request_group_new(NULL);
f = purple_request_field_list_new("mood", _("Please select your mood from the list"));
@@ -299,7 +299,7 @@ pidgin_mood_dialog_show(PurpleAccount *account) {
}
purple_request_group_add_field(g, f);
- purple_request_fields_add_group(fields, g);
+ purple_request_page_add_group(page, g);
/* if the connection allows setting a mood message */
if (gc && (purple_connection_get_flags(gc) & PURPLE_CONNECTION_FLAG_SUPPORT_MOOD_MESSAGES)) {
@@ -307,11 +307,11 @@ pidgin_mood_dialog_show(PurpleAccount *account) {
f = purple_request_field_string_new("text",
_("Message (optional)"), NULL, FALSE);
purple_request_group_add_field(g, f);
- purple_request_fields_add_group(fields, g);
+ purple_request_page_add_group(page, g);
}
purple_request_fields(gc, _("Edit User Mood"), _("Edit User Mood"),
- NULL, fields,
+ NULL, page,
_("OK"), G_CALLBACK(pidgin_mood_dialog_edit_cb),
_("Cancel"), NULL,
purple_request_cpar_from_connection(gc), gc);