chatgui: кнопка + для invite в каналах, автокопирование ссылки, автоподключение из буфера

- Замена контекстного меню 'Пригласить' на кнопку + (18x18) справа снизу каждого канала с hover-эффектом
- InviteDialog: авто-копирование ссылки в буфер (Clipboard + Selection) при открытии
- JoinDialog: параметр autoJoinLink — если в буфере валидная utun:// ссылка, диалог сразу стартует подключение
This commit is contained in:
Evgeny committed 2026-07-19 09:05:55 +03:00
1 parent 501b636d19
commit e3286d409f
8 files changed
+107 -27

No files matched your search

+15 -3
View File
@@ -13,6 +13,7 @@
#include <QSplitter>
#include <QCloseEvent>
#include <QApplication>
#include <QClipboard>
#include <QStyle>
#include <QMessageBox>
#include <QDebug>
@@ -253,10 +254,21 @@ void MainWindow::showJoinDialog() {
QMessageBox::warning(this, "Error", "Node is not running.");
return;
}
JoinDialog dlg(m_node, m_db, this);
if (dlg.exec() == QDialog::Accepted) {
m_channelList->loadChannels();
QString autoLink;
QClipboard* cb = QApplication::clipboard();
QString clipText = cb->text(QClipboard::Clipboard).trimmed();
if (clipText.startsWith("utun://") && decodeInviteLink(clipText).error.isEmpty())
autoLink = clipText;
else if (cb->supportsSelection()) {
QString selText = cb->text(QClipboard::Selection).trimmed();
if (selText.startsWith("utun://") && decodeInviteLink(selText).error.isEmpty())
autoLink = selText;
}
JoinDialog dlg(m_node, m_db, this, autoLink);
if (dlg.exec() == QDialog::Accepted)
m_channelList->loadChannels();
}
void MainWindow::showSettings() {