auto-connect + GUI per-channel indicators
- chat_core_connect_auto: direct ETCP connect from SQLite (no BGP) - auto_connect: parallel connect to peers with 3s timeout, retry 10s - RTT saved to node_addresses on disconnect - vertical status bar + circle badge with online count per channel - ChannelListView prevents deselection
This commit is contained in:
1 parent
1a0229fd4f
commit
dccf54b30b
22 files changed
+909
-10
No files matched your search
@@ -46,6 +46,17 @@ static void onMembersChangedCallback(const char* ch_id, int ch_id_len) {
|
||||
s_mainWindow->onMembersChanged(ch_id);
|
||||
}
|
||||
|
||||
static void onAutoConnectStatusCallback(uint8_t status, uint16_t total_tried,
|
||||
uint16_t node_count, uint16_t connected) {
|
||||
if (s_mainWindow)
|
||||
s_mainWindow->onAutoConnectStatus(status, total_tried, node_count, connected);
|
||||
}
|
||||
|
||||
static void onChannelPeersOnlineCallback(const char* ch_id, int ch_id_len, uint16_t online) {
|
||||
if (s_mainWindow)
|
||||
s_mainWindow->onChannelPeersOnline(ch_id, ch_id_len, online);
|
||||
}
|
||||
|
||||
MainWindow::MainWindow(QWidget *parent, DbManager* db, const QString& cfgPath,
|
||||
const QString& dbPath, const QString& debugFile,
|
||||
const QString& debugLevel, const QString& debugCategories)
|
||||
@@ -76,6 +87,8 @@ MainWindow::MainWindow(QWidget *parent, DbManager* db, const QString& cfgPath,
|
||||
qDebug("MainWindow: MY_NODE_ID setMyNodeId(%016llx)", (unsigned long long)nid);
|
||||
if (s_mainWindow && s_mainWindow->m_db) s_mainWindow->m_db->setMyNodeId((quint64)nid);
|
||||
});
|
||||
gui_bridge_set_auto_connect_status_cb(onAutoConnectStatusCallback);
|
||||
gui_bridge_set_channel_peers_online_cb(onChannelPeersOnlineCallback);
|
||||
|
||||
setupNode();
|
||||
setupMessaging();
|
||||
@@ -258,6 +271,20 @@ void MainWindow::onMembersChanged(const char* ch_id) {
|
||||
m_accountList->refresh();
|
||||
}
|
||||
|
||||
void MainWindow::onAutoConnectStatus(uint8_t status, uint16_t /*total_tried*/,
|
||||
uint16_t /*node_count*/, uint16_t /*connected*/) {
|
||||
if (m_channelList) {
|
||||
m_channelList->setAutoConnectActive(status == 0);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::onChannelPeersOnline(const char* ch_id, int ch_id_len, uint16_t online) {
|
||||
if (m_channelList) {
|
||||
QString cid = QString::fromUtf8(ch_id, ch_id_len);
|
||||
m_channelList->setChannelPeersOnline(cid, (int)online);
|
||||
}
|
||||
}
|
||||
|
||||
void MainWindow::reloadChannels() {
|
||||
if (m_channelList) {
|
||||
m_channelList->loadChannels();
|
||||
|
||||
Reference in new issue
Block a user