Browse Source

Deliver group avatar publication results through the GUI bridge

master
evgeny 5 days ago
parent
commit
8e3ff6fd81
  1. 7
      tools/chatgui/src/mainwindow.cpp
  2. 1
      tools/chatgui/transport/gui_bridge.h
  3. 5
      tools/chatgui/transport/gui_bridge_impl.cpp

7
tools/chatgui/src/mainwindow.cpp

@ -16,6 +16,7 @@
#include "imageviewer_window.h"
#include "member_files/browser.h"
#include "avatars/avatarmanager.h"
#include "avatars/groupavatarmanager.h"
extern "C" {
#include "chat/chat_member.h"
}
@ -157,6 +158,7 @@ MainWindow::MainWindow(QWidget *parent, DbManager* db, const QString& cfgPath,
resize(900, 600);
if (m_db) m_db->setDbPath(m_cfgDbPath);
new AvatarManager(m_db, this);
new GroupAvatarManager(m_db, this);
setupUi();
setupTray();
setupSoundFromConfig();
@ -180,6 +182,8 @@ MainWindow::MainWindow(QWidget *parent, DbManager* db, const QString& cfgPath,
MainWindow::~MainWindow() {
s_mainWindow = nullptr;
delete AvatarManager::instance();
delete GroupAvatarManager::instance();
gui_bridge_set_group_avatar_result_cb(nullptr);
gui_bridge_set_avatar_result_cb(nullptr);
if (m_fileBrowser) delete m_fileBrowser.data();
gui_bridge_set_member_files_response_cb(nullptr);
@ -410,6 +414,9 @@ void MainWindow::setupBridgeCallbacks() {
gui_bridge_set_avatar_result_cb([](const uint8_t* data, int length) {
if (AvatarManager::instance()) AvatarManager::instance()->onPublished(data, length);
});
gui_bridge_set_group_avatar_result_cb([](const uint8_t* data, int length) {
if (GroupAvatarManager::instance()) GroupAvatarManager::instance()->onResult(data, length);
});
gui_bridge_set_msg_received_cb(onMsgReceivedCallback);
gui_bridge_set_channel_updated_cb(onChannelUpdatedCallback);
gui_bridge_set_member_list_cb(onMemberListCallback);

1
tools/chatgui/transport/gui_bridge.h

@ -242,6 +242,7 @@ void gui_bridge_set_dm_invite_result_cb(gui_dm_messages_fn cb);
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);
/* CHAT_EVT_ATTACHMENT_PREPARATION: target + job UUID + state. */
void gui_bridge_set_attachment_preparation_cb(gui_dm_messages_fn cb);

5
tools/chatgui/transport/gui_bridge_impl.cpp

@ -69,6 +69,7 @@ static gui_dm_messages_fn g_dm_invite_result_cb = nullptr;
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_network_changed_fn g_network_changed_cb = nullptr;
static struct UASYNC* g_ua = nullptr;
static struct UTUN_INSTANCE* g_inst = nullptr;
@ -83,6 +84,9 @@ 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_GROUP_AVATAR_RESULT:
if (g_group_avatar_result_cb) g_group_avatar_result_cb(d, dlen);
break;
case CHAT_EVT_AVATAR_RESULT:
if (g_avatar_result_cb) g_avatar_result_cb(d, dlen);
break;
@ -576,6 +580,7 @@ void gui_bridge_set_dm_invite_result_cb(gui_dm_messages_fn cb) { g_dm_invite_res
void gui_bridge_set_member_files_response_cb(gui_dm_messages_fn cb) { g_member_files_response_cb = cb; }
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_dm_conv_updated_cb(gui_dm_conv_updated_fn cb) {
g_dm_conv_updated_cb = cb;

Loading…
Cancel
Save