GroupChatForm::GroupChatForm(Group* chatGroup) : group(chatGroup), inCall{false} { nusersLabel = new QLabel(); tabber = new TabCompleter(msgEdit, group); fileButton->setEnabled(false); if (group->isAvGroupchat()) { videoButton->setEnabled(false); videoButton->setObjectName("grey"); } else { videoButton->setVisible(false); callButton->setVisible(false); volButton->setVisible(false); micButton->setVisible(false); } nameLabel->setText(group->getGroupWidget()->getName()); nusersLabel->setFont(Style::getFont(Style::Medium)); nusersLabel->setText(GroupChatForm::tr("%1 users in chat","Number of users in chat").arg(group->getPeersCount())); nusersLabel->setObjectName("statusLabel"); avatar->setPixmap(Style::scaleSvgImage(":/img/group_dark.svg", avatar->width(), avatar->height()), Qt::transparent); msgEdit->setObjectName("group"); namesListLayout = new FlowLayout(0,5,0); QStringList names(group->getPeerList()); for (const QString& name : names) { QLabel *l = new QLabel(name); l->setTextFormat(Qt::PlainText); namesListLayout->addWidget(l); } headTextLayout->addWidget(nusersLabel); headTextLayout->addLayout(namesListLayout); headTextLayout->addStretch(); nameLabel->setMinimumHeight(12); nusersLabel->setMinimumHeight(12); connect(sendButton, SIGNAL(clicked()), this, SLOT(onSendTriggered())); connect(msgEdit, SIGNAL(enterPressed()), this, SLOT(onSendTriggered())); connect(msgEdit, &ChatTextEdit::tabPressed, tabber, &TabCompleter::complete); connect(msgEdit, &ChatTextEdit::keyPressed, tabber, &TabCompleter::reset); connect(callButton, &QPushButton::clicked, this, &GroupChatForm::onCallClicked); connect(micButton, SIGNAL(clicked()), this, SLOT(onMicMuteToggle())); connect(volButton, SIGNAL(clicked()), this, SLOT(onVolMuteToggle())); connect(nameLabel, &CroppingLabel::textChanged, this, [=](QString text, QString orig) {if (text != orig) emit groupTitleChanged(group->getGroupId(), text.left(128));} ); setAcceptDrops(true); }
void Core::changeGroupTitle(int groupId, const QString& title) { CString cTitle(title); int err = tox_group_set_title(tox, groupId, cTitle.data(), cTitle.size()); if (!err) emit groupTitleChanged(groupId, getUsername(), title); }
void Core::changeGroupTitle(int groupId, const QString& title) { ToxString cTitle(title); TOX_ERR_CONFERENCE_TITLE error; bool success = tox_conference_set_title(tox, groupId, cTitle.data(), cTitle.size(), &error); if (success && error == TOX_ERR_CONFERENCE_TITLE_OK) { emit groupTitleChanged(groupId, getUsername(), title); return; } qCritical() << "Fail of tox_conference_set_title"; switch (error) { case TOX_ERR_CONFERENCE_TITLE_CONFERENCE_NOT_FOUND: qCritical() << "Conference not found"; break; case TOX_ERR_CONFERENCE_TITLE_FAIL_SEND: qCritical() << "Conference title failed to send"; break; case TOX_ERR_CONFERENCE_TITLE_INVALID_LENGTH: qCritical() << "Invalid length"; break; default: break; } }
GroupChatForm::GroupChatForm(Group* chatGroup) : group(chatGroup), inCall{false} { nusersLabel = new QLabel(); tabber = new TabCompleter(msgEdit, group); fileButton->setEnabled(false); if (group->isAvGroupchat()) { videoButton->setEnabled(false); videoButton->setObjectName("grey"); } else { videoButton->setVisible(false); callButton->setVisible(false); volButton->setVisible(false); micButton->setVisible(false); } nameLabel->setText(group->getGroupWidget()->getName()); nusersLabel->setFont(Style::getFont(Style::Medium)); nusersLabel->setObjectName("statusLabel"); retranslateUi(); avatar->setPixmap(Style::scaleSvgImage(":/img/group_dark.svg", avatar->width(), avatar->height())); msgEdit->setObjectName("group"); namesListLayout = new FlowLayout(0,5,0); QStringList names(group->getPeerList()); for (QString& name : names) { QLabel *l = new QLabel(); QString tooltip = correctNames(name); if (tooltip.isNull()) { l->setToolTip(tooltip); } l->setText(name); l->setTextFormat(Qt::PlainText); namesListLayout->addWidget(l); } headTextLayout->addWidget(nusersLabel); headTextLayout->addLayout(namesListLayout); headTextLayout->addStretch(); nameLabel->setMinimumHeight(12); nusersLabel->setMinimumHeight(12); connect(sendButton, SIGNAL(clicked()), this, SLOT(onSendTriggered())); connect(msgEdit, SIGNAL(enterPressed()), this, SLOT(onSendTriggered())); connect(msgEdit, &ChatTextEdit::tabPressed, tabber, &TabCompleter::complete); connect(msgEdit, &ChatTextEdit::keyPressed, tabber, &TabCompleter::reset); connect(callButton, &QPushButton::clicked, this, &GroupChatForm::onCallClicked); connect(micButton, SIGNAL(clicked()), this, SLOT(onMicMuteToggle())); connect(volButton, SIGNAL(clicked()), this, SLOT(onVolMuteToggle())); connect(nameLabel, &CroppingLabel::editFinished, this, [=](const QString& newName) { if (!newName.isEmpty()) { nameLabel->setText(newName); emit groupTitleChanged(group->getGroupId(), newName.left(128)); } }); setAcceptDrops(true); Translator::registerHandler(std::bind(&GroupChatForm::retranslateUi, this), this); }