qTox  Version: nightly | Commit: bc751c8e1cac455f9690654fcfe0f560d2d7dfdd
groupinvitewidget.cpp
Go to the documentation of this file.
1 /*
2  Copyright © 2017-2019 by The qTox Project Contributors
3 
4  This file is part of qTox, a Qt-based graphical interface for Tox.
5 
6  qTox is libre software: you can redistribute it and/or modify
7  it under the terms of the GNU General Public License as published by
8  the Free Software Foundation, either version 3 of the License, or
9  (at your option) any later version.
10 
11  qTox is distributed in the hope that it will be useful,
12  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  GNU General Public License for more details.
15 
16  You should have received a copy of the GNU General Public License
17  along with qTox. If not, see <http://www.gnu.org/licenses/>.
18 */
19 
20 #include "groupinvitewidget.h"
21 
22 #include "src/core/core.h"
23 #include "src/nexus.h"
26 
27 #include <QHBoxLayout>
28 #include <QPushButton>
29 #include <QSignalMapper>
30 
38 GroupInviteWidget::GroupInviteWidget(QWidget* parent, const GroupInvite& invite)
39  : QWidget(parent)
40  , acceptButton(new QPushButton(this))
41  , rejectButton(new QPushButton(this))
42  , inviteMessageLabel(new CroppingLabel(this))
43  , widgetLayout(new QHBoxLayout(this))
44  , inviteInfo(invite)
45 {
46  connect(acceptButton, &QPushButton::clicked, [=]() { emit accepted(inviteInfo); });
47  connect(rejectButton, &QPushButton::clicked, [=]() { emit rejected(inviteInfo); });
48  widgetLayout->addWidget(inviteMessageLabel);
49  widgetLayout->addWidget(acceptButton);
50  widgetLayout->addWidget(rejectButton);
51  setLayout(widgetLayout);
52  retranslateUi();
53 }
54 
59 {
61  QDateTime inviteDate = inviteInfo.getInviteDate();
62  QString date = inviteDate.toString(Settings::getInstance().getDateFormat());
63  QString time = inviteDate.toString(Settings::getInstance().getTimestampFormat());
64 
66  tr("Invited by %1 on %2 at %3.").arg("<b>%1</b>").arg(name.toHtmlEscaped(), date, time));
67  acceptButton->setText(tr("Join"));
68  rejectButton->setText(tr("Decline"));
69 }
70 
76 {
77  return inviteInfo;
78 }
Core::getFriendUsername
QString getFriendUsername(uint32_t friendNumber) const
Get the username of a friend.
Definition: core.cpp:1740
GroupInviteWidget::accepted
void accepted(const GroupInvite &invite)
GroupInviteWidget::inviteMessageLabel
CroppingLabel * inviteMessageLabel
Definition: groupinvitewidget.h:46
settings.h
GroupInviteWidget::widgetLayout
QHBoxLayout * widgetLayout
Definition: groupinvitewidget.h:47
groupinvitewidget.h
CroppingLabel
Definition: croppinglabel.h:26
GroupInviteWidget::getInviteInfo
const GroupInvite getInviteInfo() const
Returns infomation about invitation - e.g., who and when sent.
Definition: groupinvitewidget.cpp:75
GroupInvite
This class contains information needed to create a group invite.
Definition: groupinvite.h:26
CroppingLabel::setText
void setText(const QString &text)
Definition: croppinglabel.cpp:81
GroupInviteWidget::rejectButton
QPushButton * rejectButton
Definition: groupinvitewidget.h:45
GroupInviteWidget::inviteInfo
GroupInvite inviteInfo
Definition: groupinvitewidget.h:48
GroupInviteWidget::rejected
void rejected(const GroupInvite &invite)
croppinglabel.h
GroupInviteWidget::GroupInviteWidget
GroupInviteWidget(QWidget *parent, const GroupInvite &invite)
Definition: groupinvitewidget.cpp:38
GroupInviteWidget::retranslateUi
void retranslateUi()
Retranslate all elements in the form.
Definition: groupinvitewidget.cpp:58
Settings::getInstance
static Settings & getInstance()
Returns the singleton instance.
Definition: settings.cpp:88
GroupInviteWidget::acceptButton
QPushButton * acceptButton
Definition: groupinvitewidget.h:44
GroupInvite::getFriendId
uint32_t getFriendId() const
Definition: groupinvite.cpp:42
core.h
Nexus::getCore
static Core * getCore()
Get core instance.
Definition: nexus.cpp:277
nexus.h
GroupInvite::getInviteDate
QDateTime getInviteDate() const
Definition: groupinvite.cpp:57