| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
| |
And go through with the renaming of `PurpleRequestFieldGroup` to `PurpleRequestGroup`.
Also, this now implements `GListModel`, but nothing is yet updated to use that.
Testing Done:
Compiled, and opened Request Fields from Demo protocol.
Reviewed at https://reviews.imfreedom.org/r/2322/
|
|
|
|
|
|
|
| |
Testing Done:
Compiled and opened Request Fields from Demo protocol.
Reviewed at https://reviews.imfreedom.org/r/2321/
|
|
|
|
|
|
|
|
|
|
|
| |
This is just a straight conversion with not much attempt to make things nice.
Also, this leaves `PurpleRequestField` as a multi-type object, but derivable, so we can change to a bunch of subclasses after.
Testing Done:
Compiled and opened Request Fields from Demo protocol.
Reviewed at https://reviews.imfreedom.org/r/2320/
|
|
|
|
|
|
|
|
|
| |
The setter does not have the extra "field" in the name.
Testing Done:
Compiled.
Reviewed at https://reviews.imfreedom.org/r/2319/
|
|
|
|
|
|
|
|
|
|
| |
I left in the preferences widgets for now as these will be wired to traversity
at some point.
Testing Done:
Opened the preferences dialog and made sure it worked as expected.
Reviewed at https://reviews.imfreedom.org/r/2309/
|
|
|
|
|
|
|
|
|
|
|
| |
Nothing sets a sensitivity callback, and this induces a lot of bookkeeping to
track. When things are GObject, then interested parties can connect to property
notification instead of these callbacks.
Testing Done:
Compiled only.
Reviewed at https://reviews.imfreedom.org/r/2310/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes two leaks from the debug window:
```
22 bytes in 1 blocks are definitely lost in loss record 7,038 of 41,972
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4980168: g_malloc (gmem.c:130)
by 0x4995602: g_strdup (gstrfuncs.c:363)
by 0x4CFB782: purple_prefs_connect_callback (prefs.c:1301)
by 0x48AA524: pidgin_debug_init (pidgindebug.c:918)
by 0x48B8F9E: pidgin_ui_start (pidginui.c:146)
by 0x4D37B01: purple_ui_start (purpleui.c:397)
by 0x4CE3BA6: purple_core_init (core.c:211)
by 0x48A384F: pidgin_application_startup (pidginapplication.c:820)
by 0x4DD3553: UnknownInlinedFun (gclosure.c:895)
by 0x4DD3553: g_signal_emit_valist (gsignal.c:3456)
by 0x4DD3632: g_signal_emit (gsignal.c:3606)
by 0x5815B82: g_application_register (gapplication.c:2211)
```
and
```
32 bytes in 1 blocks are definitely lost in loss record 15,308 of 41,972
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4980168: g_malloc (gmem.c:130)
by 0x4997AB5: g_slice_alloc (gslice.c:1074)
by 0x495E14C: UnknownInlinedFun (gdatetime.c:678)
by 0x495E14C: g_date_time_from_instant (gdatetime.c:774)
by 0x495F4E9: g_date_time_new_now_local (gdatetime.c:989)
by 0x48A82F9: save_response_cb (pidgindebug.c:136)
by 0x4DB4375: g_cclosure_marshal_VOID__INTv (gmarshal.c:596)
by 0x4DD3553: UnknownInlinedFun (gclosure.c:895)
by 0x4DD3553: g_signal_emit_valist (gsignal.c:3456)
by 0x4DD3632: g_signal_emit (gsignal.c:3606)
by 0x4DB5FBF: g_closure_invoke (gclosure.c:832)
by 0x4DE3D85: signal_emit_unlocked_R.isra.0 (gsignal.c:3796)
by 0x4DD3419: g_signal_emit_valist (gsignal.c:3549)
```
Testing Done:
Ran in valgrind, saved the debug logs to a file, and the above leaks were gone.
Reviewed at https://reviews.imfreedom.org/r/2304/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This fixes two leaks (of various amounts):
```
90 bytes in 5 blocks are definitely lost in loss record 27,394 of 41,972
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4980168: g_malloc (gmem.c:130)
by 0x4995602: g_strdup (gstrfuncs.c:363)
by 0x4DE1EEC: value_lcopy_string.lto_priv.0 (gvaluetypes.c:315)
by 0x4DC7F13: g_object_get_valist (gobject.c:2893)
by 0x4DC8243: g_object_get (gobject.c:2988)
by 0x4CF53A1: purple_media_element_info_get_name (mediamanager.c:2404)
by 0x48BE32A: populate_vv_device_menuitems (pidginvvprefs.c:87)
by 0x48BF440: bind_vv_dropdown (pidginvvprefs.c:443)
by 0x48BF48B: bind_vv_frame (pidginvvprefs.c:454)
by 0x48BFA7F: pidgin_vv_prefs_init (pidginvvprefs.c:574)
by 0x4DDF0E7: g_type_create_instance (gtype.c:1931)
```
```
121 bytes in 5 blocks are definitely lost in loss record 31,627 of 41,972
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4980168: g_malloc (gmem.c:130)
by 0x4995602: g_strdup (gstrfuncs.c:363)
by 0x4DE1EEC: value_lcopy_string.lto_priv.0 (gvaluetypes.c:315)
by 0x4DC7F13: g_object_get_valist (gobject.c:2893)
by 0x4DC8243: g_object_get (gobject.c:2988)
by 0x4CF5334: purple_media_element_info_get_id (mediamanager.c:2395)
by 0x48BE33A: populate_vv_device_menuitems (pidginvvprefs.c:88)
by 0x48BF440: bind_vv_dropdown (pidginvvprefs.c:443)
by 0x48BF48B: bind_vv_frame (pidginvvprefs.c:454)
by 0x48BFA7F: pidgin_vv_prefs_init (pidginvvprefs.c:574)
by 0x4DDF0E7: g_type_create_instance (gtype.c:1931)
```
Testing Done:
Ran with valgrind, opened the Preferences window, and the leaks were gone.
Reviewed at https://reviews.imfreedom.org/r/2303/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fix the leak of the GObject wrapper
```
580 (72 direct, 508 indirect) bytes in 3 blocks are definitely lost in loss record 30,987 of 34,328
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4980168: g_malloc (gmem.c:130)
by 0x4997AB5: g_slice_alloc (gslice.c:1074)
by 0x49980EC: g_slice_alloc0 (gslice.c:1100)
by 0x4DDF04B: g_type_create_instance (gtype.c:1913)
by 0x4DC4C1F: g_object_new_internal (gobject.c:2228)
by 0x4DC6247: g_object_new_with_properties (gobject.c:2391)
by 0x4DC6FF0: g_object_new (gobject.c:2037)
by 0x48B79DF: pidgin_status_manager_add (pidginstatusmanager.c:138)
by 0x48B7B2A: pidgin_status_manager_populate_helper (pidginstatusmanager.c:158)
by 0x496801F: g_list_foreach (glist.c:1092)
by 0x48B7B74: pidgin_status_manager_refresh (pidginstatusmanager.c:169)
```
Testing Done:
Ran valgrind, opened Statuses and an editor for a status, and the leak was gone.
Reviewed at https://reviews.imfreedom.org/r/2301/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes a leak for images in requests:
```
3,627 bytes in 1 blocks are definitely lost in loss record 35,636 of 36,499
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4980168: g_malloc (gmem.c:130)
by 0x4995723: UnknownInlinedFun (gstrfuncs.c:426)
by 0x4995723: g_memdup2 (gstrfuncs.c:419)
by 0x4D3E534: purple_request_field_image_new (request.c:1677)
by 0x1CA970B1: purple_demo_protocol_request_fields_activate (purpledemoprotocolactions.c:553)
by 0x4DB5FBF: g_closure_invoke (gclosure.c:832)
by 0x4DE3D85: signal_emit_unlocked_R.isra.0 (gsignal.c:3796)
by 0x4DD3419: g_signal_emit_valist (gsignal.c:3549)
by 0x4DD3632: g_signal_emit (gsignal.c:3606)
by 0x581C784: g_simple_action_activate (gsimpleaction.c:227)
by 0x581B132: g_action_activate (gaction.c:399)
by 0x51221B6: UnknownInlinedFun (gtkmenutrackeritem.c:842)
by 0x51221B6: gtk_popover_item_activate.lto_priv.0 (gtkmenusectionbox.c:200)
```
and leak of the GObject wrapper for request fields:
```
4 bytes in 1 blocks are possibly lost in loss record 713 of 36,499
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4980168: g_malloc (gmem.c:130)
by 0x4995602: g_strdup (gstrfuncs.c:363)
by 0x488B324: create_list_field (gtkrequest.c:1504)
by 0x488D1D7: pidgin_request_fields (gtkrequest.c:2160)
by 0x4D3FFB8: purple_request_fields (request.c:2283)
by 0x1CA971D6: purple_demo_protocol_request_fields_activate (purpledemoprotocolactions.c:562)
by 0x4DB5FBF: g_closure_invoke (gclosure.c:832)
by 0x4DE3D85: signal_emit_unlocked_R.isra.0 (gsignal.c:3796)
by 0x4DD3419: g_signal_emit_valist (gsignal.c:3549)
by 0x4DD3632: g_signal_emit (gsignal.c:3606)
by 0x581C784: g_simple_action_activate (gsimpleaction.c:227)
56 bytes in 1 blocks are possibly lost in loss record 19,209 of 36,499
at 0x48486AF: realloc (vg_replace_malloc.c:1451)
by 0x498071F: g_realloc (gmem.c:201)
by 0x49592C4: g_data_set_internal (gdataset.c:474)
by 0x488B347: create_list_field (gtkrequest.c:1504)
by 0x488D1D7: pidgin_request_fields (gtkrequest.c:2160)
by 0x4D3FFB8: purple_request_fields (request.c:2283)
by 0x1CA971D6: purple_demo_protocol_request_fields_activate (purpledemoprotocolactions.c:562)
by 0x4DB5FBF: g_closure_invoke (gclosure.c:832)
by 0x4DE3D85: signal_emit_unlocked_R.isra.0 (gsignal.c:3796)
by 0x4DD3419: g_signal_emit_valist (gsignal.c:3549)
by 0x4DD3632: g_signal_emit (gsignal.c:3606)
by 0x581C784: g_simple_action_activate (gsimpleaction.c:227)
614 (192 direct, 422 indirect) bytes in 8 blocks are definitely lost in loss record 33,122 of 36,499
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4980168: g_malloc (gmem.c:130)
by 0x4997AB5: g_slice_alloc (gslice.c:1074)
by 0x49980EC: g_slice_alloc0 (gslice.c:1100)
by 0x4DDF04B: g_type_create_instance (gtype.c:1913)
by 0x4DC4C1F: g_object_new_internal (gobject.c:2228)
by 0x4DC6247: g_object_new_with_properties (gobject.c:2391)
by 0x4DC6FF0: g_object_new (gobject.c:2037)
by 0x488B2D5: create_list_field (gtkrequest.c:1499)
by 0x488D1D7: pidgin_request_fields (gtkrequest.c:2160)
by 0x4D3FFB8: purple_request_fields (request.c:2283)
by 0x1CA971D6: purple_demo_protocol_request_fields_activate (purpledemoprotocolactions.c:562)
```
and a request label:
```
128 bytes in 1 blocks are definitely lost in loss record 27,735 of 36,499
at 0x484378A: malloc (vg_replace_malloc.c:392)
by 0x484870B: realloc (vg_replace_malloc.c:1451)
by 0x498071F: g_realloc (gmem.c:201)
by 0x499A343: g_string_maybe_expand (gstring.c:92)
by 0x499A3BF: g_string_sized_new (gstring.c:116)
by 0x4981BCB: g_markup_escape_text (gmarkup.c:2323)
by 0x4887D8A: pidgin_request_escape (gtkrequest.c:360)
by 0x488CED9: pidgin_request_fields (gtkrequest.c:2105)
by 0x4D3FFB8: purple_request_fields (request.c:2283)
by 0x1CA971D6: purple_demo_protocol_request_fields_activate (purpledemoprotocolactions.c:562)
by 0x4DB5FBF: g_closure_invoke (gclosure.c:832)
by 0x4DE3D85: signal_emit_unlocked_R.isra.0 (gsignal.c:3796)
```
and one in the demo protocol:
```
40 bytes in 1 blocks are definitely lost in loss record 15,277 of 36,499
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4AE3017: __vasprintf_internal (vasprintf.c:71)
by 0x49C2E81: UnknownInlinedFun (stdio2.h:169)
by 0x49C2E81: g_vasprintf (gprintf.c:340)
by 0x4998EA0: g_strdup_vprintf (gstrfuncs.c:553)
by 0x4998F5C: g_strdup_printf (gstrfuncs.c:583)
by 0x1CA9584E: purple_demo_protocol_request_input_activate (purpledemoprotocolactions.c:203)
by 0x4DB5FBF: g_closure_invoke (gclosure.c:832)
by 0x4DE3D85: signal_emit_unlocked_R.isra.0 (gsignal.c:3796)
by 0x4DD3419: g_signal_emit_valist (gsignal.c:3549)
by 0x4DD3632: g_signal_emit (gsignal.c:3606)
by 0x581C784: g_simple_action_activate (gsimpleaction.c:227)
by 0x581B132: g_action_activate (gaction.c:399)
```
Testing Done:
Ran valgrind and confirmed above leaks were not there after opening Request Input and Request Fields.
Reviewed at https://reviews.imfreedom.org/r/2300/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Fixes two leaks:
```
10,463 (48 direct, 10,415 indirect) bytes in 1 blocks are definitely lost in loss record 34,138 of 34,479
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4980168: g_malloc (gmem.c:130)
by 0x4997AB5: g_slice_alloc (gslice.c:1074)
by 0x49980EC: g_slice_alloc0 (gslice.c:1100)
by 0x4DDF04B: g_type_create_instance (gtype.c:1913)
by 0x4DC4C1F: g_object_new_internal (gobject.c:2228)
by 0x4DC6247: g_object_new_with_properties (gobject.c:2391)
by 0x4DC6FF0: g_object_new (gobject.c:2037)
by 0x1CA978CF: purple_demo_protocol_get_menu (purpledemoprotocolactions.c:750)
by 0x4D2DB1F: purple_protocol_actions_get_menu (purpleprotocolactions.c:110)
by 0x489F74C: pidgin_accounts_enabled_menu_get_item_links (pidginaccountsenabledmenu.c:279)
by 0x5817C3F: g_menu_model_real_get_item_link (gmenumodel.c:397)
```
and
```
2,051 (144 direct, 1,907 indirect) bytes in 3 blocks are definitely lost in loss record 33,018 of 34,479
at 0x484386F: malloc (vg_replace_malloc.c:393)
by 0x4980168: g_malloc (gmem.c:130)
by 0x4997AB5: g_slice_alloc (gslice.c:1074)
by 0x49980EC: g_slice_alloc0 (gslice.c:1100)
by 0x4DDF04B: g_type_create_instance (gtype.c:1913)
by 0x4DC4C1F: g_object_new_internal (gobject.c:2228)
by 0x4DC6247: g_object_new_with_properties (gobject.c:2391)
by 0x4DC6FF0: g_object_new (gobject.c:2037)
by 0x581E9EE: g_menu_item_new_section (gmenu.c:1256)
by 0x48B465F: pidgin_plugins_menu_get_item_links (pidginpluginsmenu.c:204)
by 0x5817C3F: g_menu_model_real_get_item_link (gmenumodel.c:397)
by 0x5124B78: gtk_menu_tracker_add_items (gtkmenutracker.c:313)
```
Testing Done:
Ran in `valgrind --leak-check=full` and confirmed that the leak was gone.
Reviewed at https://reviews.imfreedom.org/r/2298/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This uses the same "trick" used elsewhere of a plain `GObject` to store the
data we need in the list model.
Note this does not change datasheets.
Testing Done:
Opened a request with a list field and confirmed that the selected options were correct upon accepting the dialog.
Bugs closed: PIDGIN-17750
Reviewed at https://reviews.imfreedom.org/r/2294/
|
|
|
|
|
|
|
|
|
|
|
| |
Because the request was previously only closed when the Cancel button was
clicked, the request was dangling if the user clicked the window Close button,
or pressed Escape.
Testing Done:
Opened a wait request, then closed the dialog with Escape/the close button, and confirmed the cancel callback was triggered.
Reviewed at https://reviews.imfreedom.org/r/2293/
|
|
|
|
|
|
|
|
|
|
| |
`gtk_file_chooser_get_current_name` returns the value entered by the user, but
is _not_ the path selected. It also only works in a save dialog.
Testing Done:
Requested a file/folder and confirmed that the callback received the selected paths from the dialog.
Reviewed at https://reviews.imfreedom.org/r/2292/
|
|
|
|
|
|
|
|
|
|
|
| |
This also fixes the actual response as well.
Unlike before, the choice field no longer differentiates between "many" choices/compact choices vs "few", and just always uses a drop down.
Testing Done:
Opened a choice request, as well as a request field with a choice in it. Confirmed that selected choices were returned from the dialog.
Reviewed at https://reviews.imfreedom.org/r/2290/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The `GtkSpinButton` does not have an `activates-default` property, and so this
warned when creating an integer request field.
But `setup_entry_field` is only called in two places, so we can inline the
property setting to the place that needs it.
Testing Done:
Opened a request with an int field.
Reviewed at https://reviews.imfreedom.org/r/2291/
|
|
|
|
|
|
|
| |
Testing Done:
Compiled, ran, and veried the status editor and about dialogs worked as expected.
Reviewed at https://reviews.imfreedom.org/r/2279/
|
|
|
|
|
|
|
| |
Testing Done:
Compiled and ran with /r/2128, opened Plugins dialog and nothing crashed.
Reviewed at https://reviews.imfreedom.org/r/2130/
|
|
|
|
|
|
|
| |
Testing Done:
Compiled.
Reviewed at https://reviews.imfreedom.org/r/2280/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
As with the other ports to GtkColumnView, this drops the popover and the tooltip.
Connecting to the expanded property (in order to lazy-load children) is a bit weird, but seems to be the only way I could find to do it.
Testing Done:
Browsed `pidgin.im`, double-clicked `conference.pidgin.im`/clicked the expander, and the rooms were loaded. Double-clicked all the rooms and confirmed the Add Chat dialog was correctly filled. Also clicked the Add button after selecting one and confirmed the same.
Bugs closed: PIDGIN-17747
Reviewed at https://reviews.imfreedom.org/r/2256/
|
|
|
|
|
|
|
|
|
|
|
| |
I find it weird that the name of chats ends up in the Name column, so that you don't get the JID.
So move it to the Description, and put the JID back in the Name column.
Testing Done:
Browsed to `pidgin.im`, and expanded `conference.pidgin.im`.
Reviewed at https://reviews.imfreedom.org/r/2275/
|
|
|
|
|
|
|
| |
Testing Done:
Turned the warning level up to 2, compiled, and verified the warnings were gone.
Reviewed at https://reviews.imfreedom.org/r/2252/
|
|
|
|
|
|
|
|
|
|
| |
Testing Done:
I compiled this on Debian unstable, FreeBSD 13 amd64 and i386, OpenBSD 7.2
amd64 and i386, RaspberryPI OS unstable, Windows 11, and macOS Monterey and all
compiled without issue. As for MSVC, support was added for C11 and C17 in
Visual Studio 2019 so we should be fine there as well.
Reviewed at https://reviews.imfreedom.org/r/2248/
|
|
|
|
|
|
|
|
|
|
|
| |
This is how we handle displaying other dialogs and apparently the preferences
window just got missed. We also make it transient for whatever window is active
which means it won't fill an entire cell in a tiling window manager.
Testing Done:
Opened the preferences dialog in i3 and verified it was no longer a full tile and that everything worked as expected.
Reviewed at https://reviews.imfreedom.org/r/2242/
|
|
|
|
|
|
|
|
|
| |
history api
Testing Done:
Joined a MUC and verified that that history was still displayed and that sending messages and stuff worked.
Reviewed at https://reviews.imfreedom.org/r/2238/
|
|
|
|
|
|
|
|
|
|
|
|
| |
This removes the memberlist, the typing stuff, the send history, as well as
the history loading. The memberlist will be it's on widget in the near
future with libpurple managing the list model, send history will talk to the
history api, and the rest either is or will be implemented in talkatu.
Testing Done:
Joined a MUC and verified that the chat functioned as expected.
Reviewed at https://reviews.imfreedom.org/r/2237/
|
|
|
|
|
|
|
| |
Testing Done:
Compiled and Windows and verified the warnings were gone.
Reviewed at https://reviews.imfreedom.org/r/2247/
|
|
|
|
|
|
|
|
|
|
| |
Include pidgindisplaywindow.h in gtkwin32dep.c which was causing the build to
fail.
Testing Done:
Compiled and ran on Windows.
Reviewed at https://reviews.imfreedom.org/r/2246/
|
|
|
|
|
|
|
|
|
| |
Somehow I made a mess of the `NULL` handling here so this just cleans it all up.
Testing Done:
Navigated away and back to the contact list a few times and verified the warnings were gone.
Reviewed at https://reviews.imfreedom.org/r/2243/
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
When we move the DisplayWindow to GtkListView, we moved to using an AdwBin as
the container widget and just set the child to what should be displayed. When
this happens to a ListView, each item gets deleted and for some reason the
bound property closures in the factory get called with an item that is set to
NULL. So if we get passed NULL, we just need to bail.
Testing Done:
Ran under `gdb` with `G_DEBUG=fatal-warnings` and verified that it didn't break when I switched the display window from contacts to conversations.
Reviewed at https://reviews.imfreedom.org/r/2233/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
PidginContactList is functional enough for us to start adding features and
since GtkTreeView is being deprecated, now seemed like a great time to purge
PidginBlist.
There's a few remaining pieces in gtkblist.[ch] relating to the join chat and
im buddy dialogs, as well as the PurpleBlist subclass we need to work out yet.
I also removed the gtkbuddynote plugin as all it did was add the buddy note to
the tooltip. My future plans here will have this built in to the ui because a
few protocols support this already and we can mock it for those that don't.
Testing Done:
Launched Pidgin 3 and verified stuff worked!
Bugs closed: PIDGIN-17751
Reviewed at https://reviews.imfreedom.org/r/2228/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This searches everything in `PurplePerson` and all of it's contacts, but does not yet cover tags. I am planning on covering that in another review request.
Right now the matching is just using `strstr`, but will will update this as part of [PIDGIN-17737](https://issues.imfreedom.org/issue/PIDGIN-17737/).
I also tried to figure out how to get focus back to the list view, but didn't come up with any viable solutions.
Testing Done:
Ran the unit tests and did a bunch of searches in the contact list with the demo protocol plugin.
Bugs closed: PIDGIN-17717
Reviewed at https://reviews.imfreedom.org/r/2211/
|
|
|
|
|
|
|
|
|
| |
Testing Done:
Ran the unit tests and verified everything looks looks right in the contact list.
Bugs closed: PIDGIN-17735
Reviewed at https://reviews.imfreedom.org/r/2232/
|
|
|
|
|
|
|
|
|
|
|
|
| |
This will first return the alias of the person if set. If there is no alias set
on the person but there is a priority contact info, the value of
purple_contact_info_get_name_for_display will be called on the priority contact
info, otherwise NULL will be returned.
Testing Done:
Verified everything looked right in the contact list and verified everything looked alright in the docs and ran the unit tests.
Reviewed at https://reviews.imfreedom.org/r/2205/
|
|
|
|
|
|
|
|
|
| |
Testing Done:
Connected the demo protocol plugin and verified everything looked correct.
Bugs closed: PIDGIN-17754
Reviewed at https://reviews.imfreedom.org/r/2231/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The traditional pattern of using a TreeView and Notebook/stack has been
removed. This now use a ListView with a model that contains the child widgets,
and an AdwBin where we swap the children in and out.
I didn't implement everything, as now that this window is a bit more mixed
content, things aren't as clear cut. I left some TODO's in the code describing
these scenarios.
Testing Done:
Tested opening and closing chats in the ui. Verified the keybinds work for navigating everything thing.
Bugs closed: PIDGIN-17752
Reviewed at https://reviews.imfreedom.org/r/2227/
|
|
|
|
|
|
|
|
|
|
|
| |
I can't think of a good reason why we shouldn't expose the error property on
Accounts. But I would like to be able to set the error from the UI when there
is an error in the settings for example.
Testing Done:
Built the docs, ran the tests, used the prune connection action in the demo protocol plugin and verified everything was still working.
Reviewed at https://reviews.imfreedom.org/r/2216/
|
|
|
|
|
|
|
|
|
|
|
| |
This will enable porting things to binding/expression lookup.
I probably didn't _really_ need to make everything properties, but that was easier to do than figure out which ones would really be needed.
Testing Done:
Ran discovery on `pidgin.im`; saw `conference.pidgin.im` show up, then expanded it and the various rooms appeared, as they should. Clicked Add on a few and verified that the Add Chat dialog appeared with the correct values.
Reviewed at https://reviews.imfreedom.org/r/2210/
|
|
|
|
|
|
|
|
|
|
|
| |
Note, this removes the tooltip. It's not super easy to get the cell that the mouse is over, plus all it showed was the Name, which is pretty redundant.
It also removes the popup menu, for the same reason, as it just duplicates the response buttons, and on a `ColumnView`, right-clicking does not select the hovered row anyway.
Testing Done:
Fetched room list for `conference.pidgin.im`, clicked on the rows, and saw that the buttons were enabled (though I think all responses were chats so they were always enabled once one was selected.) Typed some bit of the names and they were filtered.
Reviewed at https://reviews.imfreedom.org/r/2209/
|
|
|
|
|
|
|
|
|
|
|
| |
None of the listed headers define any public & used enums, so they can be removed from the Meson list.
But actually, none of the headers in Pidgin define any enums, so remove the whole `pidginenums.h`. We can re-add it later if needed.
Testing Done:
Compiled only.
Reviewed at https://reviews.imfreedom.org/r/2208/
|
|
|
|
|
|
|
|
|
| |
This will make it easier to move away from `GtkTreeView`.
Testing Done:
Fetched discovery results from `pidgin.im` and the entries had icons (though I think only chats exist on there.)
Reviewed at https://reviews.imfreedom.org/r/2207/
|
|
|
|
|
|
|
| |
Testing Done:
Compiled
Reviewed at https://reviews.imfreedom.org/r/2161/
|
|
|
|
|
|
|
| |
Testing Done:
Compiled and verified the network preferences page still functioned properly.
Reviewed at https://reviews.imfreedom.org/r/2160/
|
|
|
|
|
|
|
| |
Testing Done:
Ran and verified the changes.
Reviewed at https://reviews.imfreedom.org/r/2204/
|
|
|
|
|
|
|
|
|
|
|
| |
Moves to a nicely spaced `GtkListBox`. The avatar is implemented using `AdwAvatar` solely for the autogenerated colour for accounts without an icon to give them some uniqueness, but it could be moved to `PidginAvatar`.
As a followup, I'd probably move the Account Editors from a separate dialog to stack within the manager, similar to how the Plugin dialog works. Neither the previous manager nor this one prevents you from opening two editors for an account, but this would remove that issue as well.
Testing Done:
Toggled enabled/disabled to check that account status worked and was displayed. Added a few bogus accounts to confirm that errors are shown. Activated a row to show the editor. Hit the delete button and cancelled/approved and confirmed that account was kept/removed.
Reviewed at https://reviews.imfreedom.org/r/2079/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
There is a (big or small, up to you) hack in this implementation: `PidginSavedStatus` is a boxed type and so cannot be placed in a `GListModel`. Thus the model uses a dummy `GObject` instance for each row that works similar to each `GtkTreeModel` row. This is annoying, but means the rest of the `.ui` remains _similar_ to how it would be with a non-boxed type.
Compared to before, this is only missing search.
Like the account manager, we might want to redesign this entirely, but this is just a straight move away from `GtkTreeView` due to its impending deprecation. Also, now I have some idea how `GtkColumnView` works at least.
Testing Done:
Double-clicked a few saved statuses to confirm the editor dialogs opened, then clicked Modify to confirm that it opened the existing editor dialog.
Added a new saved status and confirmed that they were in the view.
Deleted a saved status and confirmed it was no longer in the view.
Closed the manager window with editor dialogs opened and confirmed all the editor dialogs closed as they used to.
Confirmed that Remove button was disabled when selecting an in-use status.
Clicked the column headers and confirmed that the statuses were sorted by them.
Reviewed at https://reviews.imfreedom.org/r/2199/
|
|
|
|
|
|
|
|
|
|
| |
I also had to remove an unnecessary g_date_time_unref in the demo protocol
plugin for testing.
Testing Done:
Using the demo protocol plugin, I opened a conversation to `Echo` and sent a message. I then went to the buddy list window and double clicked on `Echo` again. I saw history got loaded, which I'll be removing in the near future, but I was able to send messages correctly.
Reviewed at https://reviews.imfreedom.org/r/2201/
|
|
|
|
|
|
|
|
|
| |
Also fix some formatting in the text of the General page.
Testing Done:
Opened the about dialog and verified the changes.
Reviewed at https://reviews.imfreedom.org/r/2200/
|
|
|
|
|
|
|
|
|
|
|
|
| |
These buttons on each group allow exporting the sections to the clipboard in a markdown format.
The Copy All button allows exporting everything.
Note that this information is purposely _not_ translated as I expect it to primarily be used for debugging by us in bug reports.
Testing Done:
Opened About dialog, clicked all the Copy buttons and confirmed their contents; clicked the Copy All button and confirmed everything was there.
Reviewed at https://reviews.imfreedom.org/r/2196/
|
|
|
|
|
|
|
|
|
| |
This makes it look similar to the Adwaita-styled boxed on the other pages.
Testing Done:
Opened About page and checked main page.
Reviewed at https://reviews.imfreedom.org/r/2195/
|