Files
utun2/tools/chatgui/src/creategroupdialog.cpp
T
evgeny 38c9f229bc stcp: ed25519 pubkey exchange in handshake, fix instance destroy segfault, fix chat_tcp_test
- u_async.c: process immediate_queue BEFORE epoll_wait in uasync_poll
- stcp_link.c: defensive NULL etcp_conn/etcp_link in stcp_link_close
- utun_instance.c: move stcp_server_list_destroy_all to Phase J (before ETCP),
  add deferred drain in both Phase J and L
- stcp.h/c: STCP_HS_ENC_CLIENT 6→38, STCP_HS_ENC_SERVER 7→39,
  exchange ed25519_pubkey in both handshake directions
- etcp_connections.c: copy peer_ed25519 from STCP to ETCP_CONN in
  etcp_link_enter_ready_tcp; guard link->etcp in tcp_link_close_cb
- chat_sync.c: fix lk->conn NULL dereference for TCP links
- test_stcp.c: update stcp_server_create/stcp_client_connect callsites
- tools/chat_tcp_test: change transport udp→tcp
2026-08-07 00:48:27 +03:00

52 lines
1.4 KiB
C++

#include "creategroupdialog.h"
#include <QVBoxLayout>
#include <QHBoxLayout>
#include <QLabel>
#include <QPushButton>
CreateGroupDialog::CreateGroupDialog(QWidget* parent)
: QDialog(parent)
, m_nameEdit(new QLineEdit(this))
{
setWindowTitle("Создать группу");
setMinimumWidth(350);
setModal(true);
auto* layout = new QVBoxLayout(this);
auto* nameLabel = new QLabel("Название группы:", this);
layout->addWidget(nameLabel);
m_nameEdit->setPlaceholderText("Введите название...");
m_nameEdit->setMaxLength(128);
layout->addWidget(m_nameEdit);
layout->addSpacing(12);
auto* btnLayout = new QHBoxLayout();
btnLayout->addStretch();
auto* cancelBtn = new QPushButton("Отмена", this);
connect(cancelBtn, &QPushButton::clicked, this, &QDialog::reject);
btnLayout->addWidget(cancelBtn);
auto* createBtn = new QPushButton("Создать", this);
createBtn->setDefault(true);
connect(createBtn, &QPushButton::clicked, this, [this]() {
if (m_nameEdit->text().trimmed().isEmpty()) {
m_nameEdit->setFocus();
return;
}
accept();
});
btnLayout->addWidget(createBtn);
layout->addLayout(btnLayout);
m_nameEdit->setFocus();
}
QString CreateGroupDialog::groupName() const {
return m_nameEdit->text().trimmed();
}