Browse Source

chatgui: значок владельца канала (🔑) в шапке блока мемберов при наличии private key

v2
evgeny 4 weeks ago
parent
commit
7c95ddb09b
  1. 2
      AGENTS.md
  2. 19
      tools/chatgui/src/accountlist.cpp
  3. 1
      tools/chatgui/src/accountlist.h

2
AGENTS.md

@ -28,6 +28,8 @@ This file contains essential information for AI coding agents working in the uTu
Для поиска выстараивай информативные логи. По которым максимально чётко понятно что происходит. Если какие-то места которые могут иметь отношение к ошибке в логах пропущены - это повод доработать логи и прогнать еще раз. Для поиска выстараивай информативные логи. По которым максимально чётко понятно что происходит. Если какие-то места которые могут иметь отношение к ошибке в логах пропущены - это повод доработать логи и прогнать еще раз.
Всегда отладку выстраивай через доработку логов, пока точно и однозначно не будет видно в каком точно месте проблема. Всегда отладку выстраивай через доработку логов, пока точно и однозначно не будет видно в каком точно месте проблема.
По хорошей диагностике сразу должно быть понятно что происходит, в том числе точную причину проблемы. Если приходится догадываться или плохо понятно - это значит что надо улучшать диагностику.
## Quick Reference ## Quick Reference
**Repository:** uTun - Secure VPN tunnel with ETCP protocol **Repository:** uTun - Secure VPN tunnel with ETCP protocol

19
tools/chatgui/src/accountlist.cpp

@ -65,15 +65,16 @@ AccountList::AccountList(DbManager* db, QWidget *parent)
, m_model(new MemberListModel(this)) , m_model(new MemberListModel(this))
, m_db(db) , m_db(db)
, m_detailPanel(nullptr) , m_detailPanel(nullptr)
, m_header(nullptr)
{ {
auto *layout = new QVBoxLayout(this); auto *layout = new QVBoxLayout(this);
layout->setContentsMargins(0, 0, 0, 0); layout->setContentsMargins(0, 0, 0, 0);
layout->setSpacing(0); layout->setSpacing(0);
auto *header = new QLabel("Members", this); m_header = new QLabel("Members", this);
header->setAlignment(Qt::AlignCenter); m_header->setAlignment(Qt::AlignCenter);
header->setStyleSheet("font-weight: bold; padding: 8px; background: palette(window);"); m_header->setStyleSheet("font-weight: bold; padding: 8px; background: palette(window);");
layout->addWidget(header); layout->addWidget(m_header);
m_listView->setModel(m_model); m_listView->setModel(m_model);
m_listView->setItemDelegate(new AccountDelegate(m_listView)); m_listView->setItemDelegate(new AccountDelegate(m_listView));
@ -154,6 +155,16 @@ void AccountList::setChannel(const QString& channelId) {
m_detailNodeId = 0; m_detailNodeId = 0;
m_detailHeader->setText("Select a member"); m_detailHeader->setText("Select a member");
m_detailText->clear(); m_detailText->clear();
bool isOwner = false;
if (m_db && m_db->isOpen()) {
const auto chs = m_db->getChannels();
for (const auto& ch : chs) {
if (ch.channelId == channelId) { isOwner = (ch.ed25519_privkey.size() == 32); break; }
}
}
m_header->setText(isOwner ? QStringLiteral("Members \xF0\x9F\x94\x91") : QStringLiteral("Members"));
m_header->setToolTip(isOwner ? QStringLiteral("Channel owner (has private key)") : QString());
} }
void AccountList::refresh() { m_model->refresh(); } void AccountList::refresh() { m_model->refresh(); }

1
tools/chatgui/src/accountlist.h

@ -82,6 +82,7 @@ private:
QListView *m_listView; QListView *m_listView;
MemberListModel *m_model; MemberListModel *m_model;
DbManager *m_db; DbManager *m_db;
QLabel *m_header;
QWidget *m_detailPanel; QWidget *m_detailPanel;
QLabel *m_detailHeader; QLabel *m_detailHeader;
QTextEdit *m_detailText; QTextEdit *m_detailText;

Loading…
Cancel
Save