Route feedback state and command results to the desktop thread

This commit is contained in:
evgeny committed 2026-10-06 21:34:38 +02:00
1 parent 0a05a2095e
commit c1048686d1
2 files changed
+13

No files matched your search

+3
View File
@@ -243,6 +243,9 @@ void gui_bridge_set_member_files_response_cb(gui_dm_messages_fn cb);
void gui_bridge_set_member_files_transfer_cb(gui_dm_messages_fn cb);
void gui_bridge_set_avatar_result_cb(gui_dm_messages_fn cb);
void gui_bridge_set_group_avatar_result_cb(gui_dm_messages_fn cb);
/* Опросы/реакции: адресное изменение и коррелированный ответ команды, в GUI-потоке. */
void gui_bridge_set_feedback_changed_cb(gui_dm_messages_fn cb);
void gui_bridge_set_feedback_result_cb(gui_dm_messages_fn cb);
/* CHAT_EVT_ATTACHMENT_PREPARATION: target + job UUID + state. */
void gui_bridge_set_attachment_preparation_cb(gui_dm_messages_fn cb);
@@ -70,6 +70,8 @@ static gui_dm_messages_fn g_member_files_response_cb = nullptr;
static gui_dm_messages_fn g_member_files_transfer_cb = nullptr;
static gui_dm_messages_fn g_avatar_result_cb = nullptr;
static gui_dm_messages_fn g_group_avatar_result_cb = nullptr;
static gui_dm_messages_fn g_feedback_changed_cb = nullptr;
static gui_dm_messages_fn g_feedback_result_cb = nullptr;
static gui_network_changed_fn g_network_changed_cb = nullptr;
static struct UASYNC* g_ua = nullptr;
static struct UTUN_INSTANCE* g_inst = nullptr;
@@ -84,6 +86,12 @@ void GuiBridgeReceiver::processPost(int eventType, QByteArray data) {
eventType == 16 || eventType == 17 || eventType == 24 || eventType == 25 || eventType == 31 || eventType == 33))
g_network_changed_cb(eventType);
switch (eventType) {
case CHAT_EVT_FEEDBACK_CHANGED:
if (g_feedback_changed_cb) g_feedback_changed_cb(d, dlen);
break;
case CHAT_EVT_FEEDBACK_RESULT:
if (g_feedback_result_cb) g_feedback_result_cb(d, dlen);
break;
case CHAT_EVT_GROUP_AVATAR_RESULT:
if (g_group_avatar_result_cb) g_group_avatar_result_cb(d, dlen);
break;
@@ -581,6 +589,8 @@ void gui_bridge_set_member_files_response_cb(gui_dm_messages_fn cb) { g_member_f
void gui_bridge_set_member_files_transfer_cb(gui_dm_messages_fn cb) { g_member_files_transfer_cb = cb; }
void gui_bridge_set_avatar_result_cb(gui_dm_messages_fn cb) { g_avatar_result_cb = cb; }
void gui_bridge_set_group_avatar_result_cb(gui_dm_messages_fn cb) { g_group_avatar_result_cb = cb; }
void gui_bridge_set_feedback_changed_cb(gui_dm_messages_fn cb) { g_feedback_changed_cb = cb; }
void gui_bridge_set_feedback_result_cb(gui_dm_messages_fn cb) { g_feedback_result_cb = cb; }
void gui_bridge_set_dm_conv_updated_cb(gui_dm_conv_updated_fn cb) {
g_dm_conv_updated_cb = cb;