messenger-gtk

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

commit 1e86c50e857ce0e6c28236652417206353e70b08
parent 7b869a2a7479c5e48e1944678fb343dc66bb7233
Author: Jacki <jacki@thejackimonster.de>
Date:   Mon, 15 Apr 2024 02:05:21 +0200

Implement attribute deletion on empty value

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

Diffstat:
Msrc/ui/contact_info.c | 13+++++++++++--
1 file changed, 11 insertions(+), 2 deletions(-)

diff --git a/src/ui/contact_info.c b/src/ui/contact_info.c @@ -31,6 +31,7 @@ #include <gnunet/gnunet_chat_lib.h> #include <gnunet/gnunet_common.h> #include <gnunet/gnunet_time_lib.h> +#include <string.h> static void handle_contact_edit_button_click(UNUSED GtkButton *button, @@ -455,8 +456,16 @@ handle_value_renderer_edit(GtkCellRendererText *renderer, const gchar *name = g_value_get_string(&value); - GNUNET_CHAT_set_attribute(chat, name, new_text, GNUNET_TIME_relative_get_forever_()); - gtk_list_store_set(handle->attributes_list, &iter, 1, new_text, -1); + if ((new_text) && (strlen(new_text))) + { + GNUNET_CHAT_set_attribute(chat, name, new_text, GNUNET_TIME_relative_get_forever_()); + gtk_list_store_set(handle->attributes_list, &iter, 1, new_text, -1); + } + else + { + GNUNET_CHAT_delete_attribute(chat, name); + gtk_list_store_remove(handle->attributes_list, &iter); + } g_value_unset(&value); }