commit 065a28a7d62fcc447945030f8ced35e15d0019e1
parent 5e9d5f99cc45982b72080702291ef1fd9439c13b
Author: Jacki <jacki@thejackimonster.de>
Date: Thu, 12 Jun 2025 23:17:35 +0200
Allow opening own notes feed
Signed-off-by: Jacki <jacki@thejackimonster.de>
Diffstat:
3 files changed, 76 insertions(+), 16 deletions(-)
diff --git a/resources/ui/contact_info.ui b/resources/ui/contact_info.ui
@@ -493,33 +493,79 @@ Author: Tobias Frisch
<property name="can-focus">True</property>
<property name="receives-default">True</property>
<child>
- <object class="GtkBox">
+ <object class="GtkStack" id="open_chat_stack">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="spacing">4</property>
<child>
- <object class="GtkImage">
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="icon-name">user-available-symbolic</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">user-available-symbolic</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-end">16</property>
+ <property name="label" translatable="yes">Open Private Chat</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="pack-type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
- <property name="expand">False</property>
- <property name="fill">True</property>
- <property name="position">0</property>
+ <property name="name">open_private_chat_page</property>
</packing>
</child>
<child>
- <object class="GtkLabel">
+ <object class="GtkBox">
<property name="visible">True</property>
<property name="can-focus">False</property>
- <property name="margin-end">16</property>
- <property name="label" translatable="yes">Open Private Chat</property>
+ <property name="spacing">4</property>
+ <child>
+ <object class="GtkImage">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="icon-name">view-paged-symbolic</property>
+ </object>
+ <packing>
+ <property name="expand">False</property>
+ <property name="fill">True</property>
+ <property name="position">0</property>
+ </packing>
+ </child>
+ <child>
+ <object class="GtkLabel">
+ <property name="visible">True</property>
+ <property name="can-focus">False</property>
+ <property name="margin-end">16</property>
+ <property name="label" translatable="yes">Open Notes</property>
+ </object>
+ <packing>
+ <property name="expand">True</property>
+ <property name="fill">True</property>
+ <property name="pack-type">end</property>
+ <property name="position">1</property>
+ </packing>
+ </child>
</object>
<packing>
- <property name="expand">True</property>
- <property name="fill">True</property>
- <property name="pack-type">end</property>
+ <property name="name">open_notes_page</property>
<property name="position">1</property>
</packing>
</child>
diff --git a/src/ui/contact_info.c b/src/ui/contact_info.c
@@ -1,6 +1,6 @@
/*
This file is part of GNUnet.
- Copyright (C) 2022--2024 GNUnet e.V.
+ Copyright (C) 2022--2025 GNUnet e.V.
GNUnet is free software: you can redistribute it and/or modify it
under the terms of the GNU Affero General Public License as published
@@ -1328,6 +1328,10 @@ ui_contact_info_dialog_init(MESSENGER_Application *app,
handle
);
+ handle->open_chat_stack = GTK_STACK(
+ gtk_builder_get_object(handle->builder, "open_chat_stack")
+ );
+
handle->back_button = GTK_BUTTON(
gtk_builder_get_object(handle->builder, "back_button")
);
@@ -1393,6 +1397,9 @@ ui_contact_info_dialog_update(UI_CONTACT_INFO_Handle *handle,
{
g_assert(handle);
+ if (!contact)
+ contact = GNUNET_CHAT_get_own_contact(handle->app->chat.messenger.handle);
+
const char *name = NULL;
const char *key = NULL;
@@ -1567,6 +1574,11 @@ ui_contact_info_dialog_update(UI_CONTACT_INFO_Handle *handle,
);
}
+ gtk_stack_set_visible_child_name(
+ handle->open_chat_stack,
+ editable? "open_notes_page" : "open_private_chat_page"
+ );
+
struct GNUNET_CHAT_Context *context = GNUNET_CHAT_contact_get_context(
contact
);
@@ -1578,7 +1590,7 @@ ui_contact_info_dialog_update(UI_CONTACT_INFO_Handle *handle,
gtk_widget_set_visible(
GTK_WIDGET(handle->open_chat_button),
- !editable
+ context? TRUE : FALSE
);
if (reveal)
diff --git a/src/ui/contact_info.h b/src/ui/contact_info.h
@@ -1,6 +1,6 @@
/*
This file is part of GNUnet.
- Copyright (C) 2022--2024 GNUnet e.V.
+ Copyright (C) 2022--2025 GNUnet e.V.
GNUnet is free software: you can redistribute it and/or modify it
under the terms of the GNU Affero General Public License as published
@@ -91,6 +91,8 @@ typedef struct UI_CONTACT_INFO_Handle
GtkButton *add_tag_button;
GtkButton *remove_tag_button;
+ GtkStack *open_chat_stack;
+
GtkButton *back_button;
GtkButton *close_button;