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); }
AddFriendForm::AddFriendForm() : dns(this) { dns.setType(QDnsLookup::TXT); main = new QWidget(), head = new QWidget(); QFont bold; bold.setBold(true); headLabel.setText(tr("Add Friends")); headLabel.setFont(bold); toxIdLabel.setText(tr("Tox ID","Tox ID of the person you're sending a friend request to")); messageLabel.setText(tr("Message","The message you send in friend requests")); sendButton.setText(tr("Send friend request")); message.setPlaceholderText(tr("Tox me maybe?","Default message in friend requests if the field is left blank. Write something appropriate!")); main->setLayout(&layout); layout.addWidget(&toxIdLabel); layout.addWidget(&toxId); layout.addWidget(&messageLabel); layout.addWidget(&message); layout.addWidget(&sendButton); head->setLayout(&headLayout); headLayout.addWidget(&headLabel); connect(&sendButton, SIGNAL(clicked()), this, SLOT(onSendTriggered())); connect(&dns, SIGNAL(finished()), this, SLOT(handleDnsLookup())); }
GroupChatForm::GroupChatForm(Group* chatGroup) : group(chatGroup) { nusersLabel = new QLabel(); namesList = new QLabel(); fileButton->setEnabled(false); callButton->setVisible(false); videoButton->setVisible(false); volButton->setVisible(false); micButton->setVisible(false); QFont small; small.setPixelSize(10); nameLabel->setText(group->widget->getName()); nusersLabel->setFont(Style::getFont(Style::Medium)); nusersLabel->setText(GroupChatForm::tr("%1 users in chat","Number of users in chat").arg(group->peers.size())); QPalette pal; pal.setColor(QPalette::WindowText, Style::getColor(Style::MediumGrey)); nusersLabel->setPalette(pal); avatar->setPixmap(QPixmap(":/img/group_dark.png"), Qt::transparent); QString names; for (QString& s : group->peers) names.append(s+", "); names.chop(2); namesList->setText(names); namesList->setFont(small); msgEdit->setObjectName("group"); headTextLayout->addWidget(nusersLabel); headTextLayout->addWidget(namesList); headTextLayout->setMargin(0); headTextLayout->setSpacing(0); headTextLayout->addStretch(); connect(sendButton, SIGNAL(clicked()), this, SLOT(onSendTriggered())); connect(msgEdit, SIGNAL(enterPressed()), this, SLOT(onSendTriggered())); setAcceptDrops(true); }
AddFriendForm::AddFriendForm() { tabWidget = new QTabWidget(); main = new QWidget(tabWidget), head = new QWidget(); QFont bold; bold.setBold(true); headLabel.setFont(bold); toxIdLabel.setTextFormat(Qt::RichText); tabWidget->addTab(main, QString()); QScrollArea* scrollArea = new QScrollArea(tabWidget); QWidget* requestWidget = new QWidget(tabWidget); scrollArea->setWidget(requestWidget); scrollArea->setWidgetResizable(true); requestsLayout = new QVBoxLayout(requestWidget); requestsLayout->addStretch(1); tabWidget->addTab(scrollArea, QString()); main->setLayout(&layout); layout.addWidget(&toxIdLabel); layout.addWidget(&toxId); layout.addWidget(&messageLabel); layout.addWidget(&message); layout.addWidget(&sendButton); head->setLayout(&headLayout); headLayout.addWidget(&headLabel); connect(&toxId, &QLineEdit::returnPressed, this, &AddFriendForm::onSendTriggered); connect(&toxId, &QLineEdit::textChanged, this, &AddFriendForm::onIdChanged); connect(tabWidget, &QTabWidget::currentChanged, this, &AddFriendForm::onCurrentChanged); connect(&sendButton, SIGNAL(clicked()), this, SLOT(onSendTriggered())); connect(Nexus::getCore(), &Core::usernameSet, this, &AddFriendForm::onUsernameSet); retranslateUi(); Translator::registerHandler(std::bind(&AddFriendForm::retranslateUi, this), this); int size = Settings::getInstance().getFriendRequestSize(); for (int i = 0; i < size; ++i) { Settings::Request request = Settings::getInstance().getFriendRequest(i); addFriendRequestWidget(request.address, request.message); } }
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); }
GroupChatForm::GroupChatForm(Group* chatGroup) : group(chatGroup), curRow{0}, lockSliderToBottom{true} { main = new QWidget(), head = new QWidget(), chatAreaWidget = new QWidget(); headLayout = new QHBoxLayout(), mainFootLayout = new QHBoxLayout(); headTextLayout = new QVBoxLayout(), mainLayout = new QVBoxLayout(); mainChatLayout = new QGridLayout(); avatar = new QLabel(), name = new QLabel(), nusers = new QLabel(), namesList = new QLabel(); msgEdit = new ChatTextEdit(); sendButton = new QPushButton(); chatArea = new QScrollArea(); QFont bold; bold.setBold(true); QFont small; small.setPixelSize(10); name->setText(group->widget->name.text()); name->setFont(bold); nusers->setFont(small); nusers->setText(GroupChatForm::tr("%1 users in chat","Number of users in chat").arg(group->peers.size())); avatar->setPixmap(QPixmap(":/img/group.png")); QString names; for (QString& s : group->peers) names.append(s+", "); names.chop(2); namesList->setText(names); namesList->setFont(small); chatAreaWidget->setLayout(mainChatLayout); chatArea->setStyleSheet(Style::get(":/ui/chatArea/chatArea.css")); chatArea->setHorizontalScrollBarPolicy(Qt::ScrollBarAsNeeded); chatArea->setWidgetResizable(true); chatArea->setContextMenuPolicy(Qt::CustomContextMenu); chatArea->setFrameStyle(QFrame::NoFrame); mainChatLayout->setColumnStretch(1,1); mainChatLayout->setSpacing(10); msgEdit->setObjectName("group"); msgEdit->setStyleSheet(Style::get(":/ui/msgEdit/msgEdit.css")); msgEdit->setFixedHeight(50); msgEdit->setFrameStyle(QFrame::NoFrame); mainChatLayout->setColumnStretch(1,1); mainChatLayout->setHorizontalSpacing(10); sendButton->setStyleSheet(Style::get(":/ui/sendButton/sendButton.css")); sendButton->setFixedSize(50, 50); main->setLayout(mainLayout); mainLayout->addWidget(chatArea); mainLayout->addLayout(mainFootLayout); mainLayout->setMargin(0); mainFootLayout->addWidget(msgEdit); mainFootLayout->addWidget(sendButton); head->setLayout(headLayout); headLayout->addWidget(avatar); headLayout->addLayout(headTextLayout); headLayout->addStretch(); headLayout->setMargin(0); headTextLayout->addStretch(); headTextLayout->addWidget(name); headTextLayout->addWidget(nusers); headTextLayout->addWidget(namesList); headTextLayout->setMargin(0); headTextLayout->setSpacing(0); headTextLayout->addStretch(); chatArea->setWidget(chatAreaWidget); sendButton->setAttribute(Qt::WA_LayoutUsesWidgetRect); connect(sendButton, SIGNAL(clicked()), this, SLOT(onSendTriggered())); connect(msgEdit, SIGNAL(enterPressed()), this, SLOT(onSendTriggered())); connect(chatArea->verticalScrollBar(), SIGNAL(rangeChanged(int,int)), this, SLOT(onSliderRangeChanged())); connect(chatArea, SIGNAL(customContextMenuRequested(QPoint)), this, SLOT(onChatContextMenuRequested(QPoint))); }