diff --git a/tools/chatgui/src/mainwindow.cpp b/tools/chatgui/src/mainwindow.cpp index b69b2f91..4ee0c402 100644 --- a/tools/chatgui/src/mainwindow.cpp +++ b/tools/chatgui/src/mainwindow.cpp @@ -216,6 +216,7 @@ MainWindow::~MainWindow() { delete GroupAvatarManager::instance(); gui_bridge_set_group_avatar_result_cb(nullptr); gui_bridge_set_feedback_changed_cb(nullptr); + gui_bridge_set_attachment_keys_cb(nullptr); gui_bridge_set_feedback_result_cb(nullptr); gui_bridge_set_msg_submitted_cb(nullptr); gui_bridge_set_avatar_result_cb(nullptr); @@ -470,6 +471,9 @@ void MainWindow::setupBridgeCallbacks() { gui_bridge_set_feedback_changed_cb([](const uint8_t* data, int length) { if (s_mainWindow && s_mainWindow->m_messageList) s_mainWindow->m_messageList->onFeedbackChanged(data, length); }); + gui_bridge_set_attachment_keys_cb([](const uint8_t* data, int length) { + if (s_mainWindow && s_mainWindow->m_messageList) s_mainWindow->m_messageList->onAttachmentKeysChanged(data, length); + }); gui_bridge_set_feedback_result_cb([](const uint8_t* data, int length) { if (s_mainWindow && s_mainWindow->m_messageList) s_mainWindow->m_messageList->onFeedbackResult(data, length); }); diff --git a/tools/chatgui/transport/gui_bridge.h b/tools/chatgui/transport/gui_bridge.h index a963ebc9..57a8e6c4 100644 --- a/tools/chatgui/transport/gui_bridge.h +++ b/tools/chatgui/transport/gui_bridge.h @@ -250,6 +250,8 @@ 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_attachment_keys_cb(gui_dm_messages_fn cb); void gui_bridge_set_feedback_result_cb(gui_dm_messages_fn cb); void gui_bridge_set_msg_submitted_cb(gui_dm_messages_fn cb); void gui_bridge_set_radio_mute_result_cb(gui_dm_messages_fn cb); diff --git a/tools/chatgui/transport/gui_bridge_impl.cpp b/tools/chatgui/transport/gui_bridge_impl.cpp index c6d5275e..cdd56992 100644 --- a/tools/chatgui/transport/gui_bridge_impl.cpp +++ b/tools/chatgui/transport/gui_bridge_impl.cpp @@ -74,6 +74,7 @@ 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_attachment_keys_cb = nullptr; static gui_dm_messages_fn g_feedback_result_cb = nullptr; static gui_dm_messages_fn g_msg_submitted_cb = nullptr; static gui_dm_messages_fn g_radio_mute_result_cb = nullptr; @@ -111,6 +112,9 @@ void GuiBridgeReceiver::processPost(int eventType, QByteArray data) { case CHAT_EVT_FEEDBACK_CHANGED: if (g_feedback_changed_cb) g_feedback_changed_cb(d, dlen); break; + case CHAT_EVT_ATTACHMENT_KEYS_CHANGED: + if (g_attachment_keys_cb) g_attachment_keys_cb(d, dlen); + break; case CHAT_EVT_FEEDBACK_RESULT: if (g_feedback_result_cb) g_feedback_result_cb(d, dlen); break; @@ -627,6 +631,7 @@ void gui_bridge_set_member_files_transfer_cb(gui_dm_messages_fn cb) { g_member_f 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_attachment_keys_cb(gui_dm_messages_fn cb) { g_attachment_keys_cb = cb; } void gui_bridge_set_feedback_result_cb(gui_dm_messages_fn cb) { g_feedback_result_cb = cb; } void gui_bridge_set_msg_submitted_cb(gui_dm_messages_fn cb) { g_msg_submitted_cb = cb; } void gui_bridge_set_radio_mute_result_cb(gui_dm_messages_fn cb) { g_radio_mute_result_cb = cb; }