Add group invitation button to desktop PM header

This commit is contained in:
evgeny committed 2026-10-04 14:54:59 +02:00
1 parent 44e75e661e
commit 01aa692a56
2 files changed
+22

No files matched your search

+19
View File
@@ -365,6 +365,24 @@ MessageList::MessageList(DbManager* db, AudioRecorder* recorder, QWidget *parent
m_talkingLabel->hide();
hl->addWidget(m_talkingLabel);
m_inviteBtn = new QPushButton(QStringLiteral("+"), header);
m_inviteBtn->setAccessibleName(QStringLiteral("Пригласить в группу"));
m_inviteBtn->setToolTip(QStringLiteral("Пригласить в группу"));
m_inviteBtn->setFixedSize(34, 30);
m_inviteBtn->setCursor(Qt::PointingHandCursor);
m_inviteBtn->hide();
hl->addWidget(m_inviteBtn);
connect(m_inviteBtn, &QPushButton::clicked, this, [this]() {
if (!m_db || !isDmChannel(m_currentChannelId)) return;
for (const auto& conv : m_db->getDmConversations()) {
if (conv.convId == dmConvId(m_currentChannelId)) {
emit inviteRequested(QString(), conv.peerNodeId, m_channelTitle->text());
return;
}
}
GUI_ERROR("invite PM: conversation not found target=%s", qPrintable(m_currentChannelId));
});
m_callBtn = new QPushButton(QStringLiteral("☎"), header);
m_callBtn->setAccessibleName(QStringLiteral("Позвонить"));
m_callBtn->setFixedSize(34, 30);
@@ -625,6 +643,7 @@ void MessageList::loadChannel(const QString& channelId) {
m_currentChannelId = channelId;
clearDmCallRoute();
m_callBtn->setVisible(isDmChannel(channelId));
m_inviteBtn->setVisible(isDmChannel(channelId));
m_peerStatus->setVisible(isDmChannel(channelId));
m_radioBtn->setVisible(!isDmChannel(channelId));
m_inputBar->setRecordingContext(m_db ? m_db->dbPath() + "/media" : QString(), channelId);
+3
View File
@@ -44,6 +44,8 @@ signals:
void callRequested(const QString& target, quint64 peer, const QString& name);
void openVideoRequested(const QString& filePath);
void openImageRequested(const QString& filePath);
void inviteRequested(const QString& sourceChannel, quint64 peer, const QString& name);
void inviteLinkActivated(const QString& link);
private:
ChatView *m_view;
@@ -63,6 +65,7 @@ private:
QLabel* m_channelTitle = nullptr; /* шапка: название канала */
QLabel* m_talkingLabel = nullptr; /* шапка: кто говорит в рации */
QPushButton* m_callBtn = nullptr;
QPushButton* m_inviteBtn = nullptr;
quint64 m_callPeer = 0;
quint64 m_callGroup = 0;
QPushButton* m_radioBtn = nullptr; /* шапка: переключатель рации */