QTfrontend/ui/dialog/bandialog.cpp
author S.D.
Tue, 27 Sep 2022 14:59:03 +0300
changeset 15878 fc3cb23fd26f
parent 12475 d7414e3b3bbb
permissions -rw-r--r--
Allow to see rooms of incompatible versions in the lobby For the new clients the room version is shown in a separate column. There is also a hack for previous versions clients: the room vesion specifier is prepended to the room names for rooms of incompatible versions, and the server shows 'incompatible version' error if the client tries to join them.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
8157
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
     1
#include <QFormLayout>
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
     2
#include <QComboBox>
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
     3
#include <QRadioButton>
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
     4
#include <QLineEdit>
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
     5
#include <QLabel>
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
     6
#include <QPushButton>
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
     7
#include <QHBoxLayout>
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
     8
#include <QMessageBox>
8411
cb371dac50c0 reuse the same words with tr() and .arg() in bandialog
koda
parents: 8177
diff changeset
     9
#include "HWApplication.h"
8157
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    10
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    11
#include "bandialog.h"
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    12
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    13
BanDialog::BanDialog(QWidget *parent) :
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    14
    QDialog(parent)
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    15
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    16
    QFormLayout * formLayout = new QFormLayout(this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    17
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    18
    rbIP = new QRadioButton(this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    19
    rbIP->setChecked(true);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    20
    rbNick = new QRadioButton(this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    21
    leId = new QLineEdit(this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    22
    leReason = new QLineEdit(this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    23
    cbTime = new QComboBox(this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    24
10079
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    25
    const int min = 60;
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    26
    const int hour = 60 * min;
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    27
    const int day = 24 * hour;
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    28
    cbTime->addItem(HWApplication::tr("%1 minutes", 0, 10).arg(10), 10 * min);
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    29
    cbTime->addItem(HWApplication::tr("%1 minutes", 0, 30).arg(30), 30 * min);
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    30
    cbTime->addItem(HWApplication::tr("%1 hour", 0, 1).arg(1), 1 * hour);
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    31
    cbTime->addItem(HWApplication::tr("%1 hours", 0, 3).arg(3), 3 * hour);
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    32
    cbTime->addItem(HWApplication::tr("%1 hours", 0, 5).arg(5), 5 * hour);
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    33
    cbTime->addItem(HWApplication::tr("%1 hours", 0, 12).arg(12), 12 * hour);
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    34
    cbTime->addItem(HWApplication::tr("%1 day", 0, 1).arg(1), 1 * day);
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    35
    cbTime->addItem(HWApplication::tr("%1 days", 0, 3).arg(3), 3 * day);
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    36
    cbTime->addItem(HWApplication::tr("%1 days", 0, 7).arg(7), 7 * day);
c88e38a0f478 Fix times
unc0rr
parents: 8417
diff changeset
    37
    cbTime->addItem(HWApplication::tr("%1 days", 0, 14).arg(14), 14 * day);
8177
1fc36c2168c4 Some fixes
unc0rr
parents: 8159
diff changeset
    38
    cbTime->addItem(tr("permanent"), 3650 * 24 * 60 * 60);
8157
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    39
    cbTime->setCurrentIndex(0);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    40
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    41
    formLayout->addRow(tr("IP"), rbIP);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    42
    formLayout->addRow(tr("Nick"), rbNick);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    43
    formLayout->addRow(tr("IP/Nick"), leId);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    44
    formLayout->addRow(tr("Reason"), leReason);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    45
    formLayout->addRow(tr("Duration"), cbTime);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    46
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    47
    formLayout->setLabelAlignment(Qt::AlignRight);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    48
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    49
    QHBoxLayout * hbox = new QHBoxLayout();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    50
    formLayout->addRow(hbox);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    51
    QPushButton * btnOk = new QPushButton(tr("Ok"), this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    52
    QPushButton * btnCancel = new QPushButton(tr("Cancel"), this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    53
    hbox->addStretch();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    54
    hbox->addWidget(btnOk);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    55
    hbox->addWidget(btnCancel);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    56
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    57
    connect(btnOk, SIGNAL(clicked()), this, SLOT(okClicked()));
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    58
    connect(btnCancel, SIGNAL(clicked()), this, SLOT(reject()));
8159
e226be871b6e set window modality for new ban dialogs
koda
parents: 8157
diff changeset
    59
e226be871b6e set window modality for new ban dialogs
koda
parents: 8157
diff changeset
    60
    this->setWindowModality(Qt::WindowModal);
11490
fb7817a5c2b1 Add window titles for title-less windows
Wuzzy <almikes@aol.com>
parents: 10079
diff changeset
    61
    this->setWindowTitle(tr("Ban player"));
8157
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    62
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    63
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    64
bool BanDialog::byIP()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    65
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    66
    return rbIP->isChecked();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    67
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    68
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    69
int BanDialog::duration()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    70
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    71
    return cbTime->itemData(cbTime->currentIndex()).toInt();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    72
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    73
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    74
QString BanDialog::banId()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    75
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    76
    return leId->text();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    77
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    78
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    79
QString BanDialog::reason()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    80
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    81
    return leReason->text().isEmpty() ? tr("you know why") : leReason->text();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    82
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    83
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    84
void BanDialog::okClicked()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    85
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    86
    if(leId->text().isEmpty())
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    87
    {
12475
d7414e3b3bbb Rewrite missing IP/nick warning of the ban dialog
Wuzzy <almikes@aol.com>
parents: 11490
diff changeset
    88
        QString warning_text;
d7414e3b3bbb Rewrite missing IP/nick warning of the ban dialog
Wuzzy <almikes@aol.com>
parents: 11490
diff changeset
    89
        if (byIP())
d7414e3b3bbb Rewrite missing IP/nick warning of the ban dialog
Wuzzy <almikes@aol.com>
parents: 11490
diff changeset
    90
            warning_text = QString(tr("Please specify an IP address."));
d7414e3b3bbb Rewrite missing IP/nick warning of the ban dialog
Wuzzy <almikes@aol.com>
parents: 11490
diff changeset
    91
        else
d7414e3b3bbb Rewrite missing IP/nick warning of the ban dialog
Wuzzy <almikes@aol.com>
parents: 11490
diff changeset
    92
            warning_text = QString(tr("Please specify a nickname."));
d7414e3b3bbb Rewrite missing IP/nick warning of the ban dialog
Wuzzy <almikes@aol.com>
parents: 11490
diff changeset
    93
d7414e3b3bbb Rewrite missing IP/nick warning of the ban dialog
Wuzzy <almikes@aol.com>
parents: 11490
diff changeset
    94
        QMessageBox::warning(this, tr("Warning"), warning_text);
8157
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    95
        return;
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    96
    }
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    97
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    98
    accept();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    99
}