messenger-gtk

Gtk+3 graphical user interfaces for GNUnet Messenger
Log | Files | Refs | Submodules | README | LICENSE

commit 68dc9951534988d9ac21358f51ee72c0a81e2a9d
parent 8b9553de982477e80ae9465e1eafb50eaa532a7c
Author: Jacki <jacki@thejackimonster.de>
Date:   Fri, 19 Jan 2024 00:48:49 +0100

Add documentation comments to header and code cleanup

Signed-off-by: Jacki <jacki@thejackimonster.de>

Diffstat:
Msrc/application.c | 2++
Msrc/contact.h | 2+-
Msrc/request.c | 12++++++++++++
Msrc/request.h | 58++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
Msrc/ui/new_contact.c | 2++
Msrc/ui/settings.c | 2++
6 files changed, 77 insertions(+), 1 deletion(-)

diff --git a/src/application.c b/src/application.c @@ -351,6 +351,8 @@ _request_background_callback(GObject *source_object, portal, result, &error ); + request_drop(request); + if (error) { g_printerr("ERROR: %s\n", error->message); g_error_free(error); diff --git a/src/contact.h b/src/contact.h @@ -63,7 +63,7 @@ contact_destroy_info(struct GNUNET_CHAT_Contact *contact); */ void contact_set_last_message_to_info(const struct GNUNET_CHAT_Contact *contact, - void *message); + void *message); /** * Returns the latest join/leave UI message handle of diff --git a/src/request.c b/src/request.c @@ -118,6 +118,18 @@ request_cleanup(MESSENGER_Request *request) } void +request_drop(MESSENGER_Request *request) +{ + if (request->application->requests) + request->application->requests = g_list_remove( + request->application->requests, + request + ); + + request_delete(request); +} + +void request_delete(MESSENGER_Request *request) { request_cleanup(request); diff --git a/src/request.h b/src/request.h @@ -36,29 +36,87 @@ typedef struct MESSENGER_Request { gpointer user_data; } MESSENGER_Request; +/** + * Creates a new request for the messsenger + * application for a certain permission. + * + * The request object will automatically be + * added to the list of the messenger application. + * + * @param application Messenger application + * @param cancellable Cancellable object (optional) + * @param user_data User data (optional) + * @return New request object + */ MESSENGER_Request* request_new(MESSENGER_Application *application, GCancellable *cancellable, gpointer user_data); +/** + * Creates a new request for the messsenger + * application for a background permission. + * + * @param application Messenger application + * @param flags Background flags + * @param callback Callback + * @param user_data User data + * @return New background request object + */ MESSENGER_Request* request_new_background(MESSENGER_Application *application, XdpBackgroundFlags flags, GAsyncReadyCallback callback, gpointer user_data); +/** + * Creates a new request for the messsenger + * application for a camera permission. + * + * @param application Messenger application + * @param flags Camera flags + * @param callback Callback + * @param user_data User data + * @return New camera request object + */ MESSENGER_Request* request_new_camera(MESSENGER_Application *application, XdpCameraFlags flags, GAsyncReadyCallback callback, gpointer user_data); +/** + * Cancel a request object if possible. + * + * @param request Request object + */ void request_cancel(MESSENGER_Request *request); +/** + * Cleanup a request object and its owned + * resources. + * + * @param request Request object + */ void request_cleanup(MESSENGER_Request *request); +/** + * Drop a request object from the messenger + * application list of requests. + * + * @param request Request object + */ +void +request_drop(MESSENGER_Request *request); + +/** + * Delete a request object and its owned + * resources. + * + * @param request Request object + */ void request_delete(MESSENGER_Request *request); diff --git a/src/ui/new_contact.c b/src/ui/new_contact.c @@ -291,6 +291,8 @@ _request_camera_callback(GObject *source_object, portal, result, &error ); + request_drop(request); + if (error) { g_printerr("ERROR: %s\n", error->message); g_error_free(error); diff --git a/src/ui/settings.c b/src/ui/settings.c @@ -59,6 +59,8 @@ _request_background_callback(GObject *source_object, portal, result, &error ); + request_drop(request); + if (error) { g_printerr("ERROR: %s\n", error->message); g_error_free(error);