chatgui-android: invite-ссылки с выбором узла входа в GUI + desktop dialog layout

This commit is contained in:
evgeny committed 2026-09-07 22:36:27 +03:00
1 parent ba557e2b9d
commit c8bd5975ae
8 files changed
+225 -52

No files matched your search

+15 -8
View File
@@ -26,7 +26,7 @@ ShareInviteDialog::ShareInviteDialog(const QString& channelId, DbManager* db, QW
, m_db(db)
{
setWindowTitle(QString::fromUtf8("Пригласительная ссылка"));
setMinimumWidth(420);
setMinimumSize(420, 560);
setModal(true);
auto *layout = new QVBoxLayout(this);
@@ -34,21 +34,23 @@ ShareInviteDialog::ShareInviteDialog(const QString& channelId, DbManager* db, QW
auto *nodeLabel = new QLabel(QString::fromUtf8("Узел входа:"), this);
nodeLabel->setStyleSheet("font-size: 12px; color: palette(window-text);");
layout->addWidget(nodeLabel);
m_nodeCombo = new QComboBox(this);
m_nodeCombo->setStyleSheet(
"QComboBox { border: 1px solid palette(mid); border-radius: 4px;"
" padding: 6px 10px; font-size: 13px; background: palette(base); }");
layout->addWidget(m_nodeCombo);
auto *nodeRow = new QHBoxLayout();
nodeRow->setSpacing(8);
nodeRow->addWidget(nodeLabel);
nodeRow->addWidget(m_nodeCombo, 1);
layout->addLayout(nodeRow);
m_linkEdit = new QLineEdit(this);
m_linkEdit->setReadOnly(true);
m_linkEdit->setPlaceholderText(QString::fromUtf8("Генерация ссылки..."));
m_linkEdit->setStyleSheet("padding: 6px; font-family: monospace;");
layout->addWidget(m_linkEdit);
auto *btnLayout = new QHBoxLayout();
auto *copyBtn = new QPushButton(QString::fromUtf8("Копировать"), this);
connect(copyBtn, &QPushButton::clicked, this, [this]() {
QClipboard* cb = QApplication::clipboard();
@@ -57,12 +59,16 @@ ShareInviteDialog::ShareInviteDialog(const QString& channelId, DbManager* db, QW
cb->setText(m_linkEdit->text(), QClipboard::Selection);
m_linkEdit->setFocus();
});
btnLayout->addWidget(copyBtn);
btnLayout->addStretch();
layout->addLayout(btnLayout);
auto *linkRow = new QHBoxLayout();
linkRow->setSpacing(8);
linkRow->addWidget(m_linkEdit, 1);
linkRow->addWidget(copyBtn);
layout->addLayout(linkRow);
m_qrLabel = new QLabel(this);
m_qrLabel->setAlignment(Qt::AlignCenter);
m_qrLabel->setMinimumSize(180, 180);
layout->addWidget(m_qrLabel, 0, Qt::AlignCenter);
auto *closeBtn = new QPushButton("OK", this);
@@ -120,6 +126,7 @@ void ShareInviteDialog::setLink(const QString& link) {
if (!qrImage.isNull())
m_qrLabel->setPixmap(QPixmap::fromImage(qrImage).scaled(
180, 180, Qt::KeepAspectRatio, Qt::SmoothTransformation));
adjustSize();
}
void ShareInviteDialog::onCandidates(const char* chId, int chIdLen, const uint8_t* data, int len) {