QTfrontend/ui/dialog/bandialog.cpp
author dag10
Mon, 21 Jan 2013 00:30:18 -0500
changeset 8415 02acf6b92f52
parent 8411 cb371dac50c0
child 8417 790492abc004
permissions -rw-r--r--
Moved room name edit box from footer to top of page. Also shows room name when in slave mode. Temporarily increased HWForm's min height from 580 to 610.
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
8411
cb371dac50c0 reuse the same words with tr() and .arg() in bandialog
koda
parents: 8177
diff changeset
    25
    cbTime->addItem(HWApplication::tr("%1 minutes").arg("10"), 5 * 60);
cb371dac50c0 reuse the same words with tr() and .arg() in bandialog
koda
parents: 8177
diff changeset
    26
    cbTime->addItem(HWApplication::tr("%1 minutes").arg("30"), 10 * 60);
cb371dac50c0 reuse the same words with tr() and .arg() in bandialog
koda
parents: 8177
diff changeset
    27
    cbTime->addItem(HWApplication::tr("%1 hour").arg("10"), 60 * 60);
cb371dac50c0 reuse the same words with tr() and .arg() in bandialog
koda
parents: 8177
diff changeset
    28
    cbTime->addItem(HWApplication::tr("%1 hours").arg("3"), 3 * 60 * 60);
cb371dac50c0 reuse the same words with tr() and .arg() in bandialog
koda
parents: 8177
diff changeset
    29
    cbTime->addItem(HWApplication::tr("%1 hours").arg("5"), 5 * 60 * 60);
cb371dac50c0 reuse the same words with tr() and .arg() in bandialog
koda
parents: 8177
diff changeset
    30
    cbTime->addItem(HWApplication::tr("%1 hours").arg("12"), 12 * 60 * 60);
cb371dac50c0 reuse the same words with tr() and .arg() in bandialog
koda
parents: 8177
diff changeset
    31
    cbTime->addItem(HWApplication::tr("%1 day").arg("1"), 24 * 60 * 60);
cb371dac50c0 reuse the same words with tr() and .arg() in bandialog
koda
parents: 8177
diff changeset
    32
    cbTime->addItem(HWApplication::tr("%1 days").arg("3"), 72 * 60 * 60);
cb371dac50c0 reuse the same words with tr() and .arg() in bandialog
koda
parents: 8177
diff changeset
    33
    cbTime->addItem(HWApplication::tr("%1 days").arg("7"), 168 * 60 * 60);
cb371dac50c0 reuse the same words with tr() and .arg() in bandialog
koda
parents: 8177
diff changeset
    34
    cbTime->addItem(HWApplication::tr("%1 days").arg("14"), 336 * 60 * 60);
8177
1fc36c2168c4 Some fixes
unc0rr
parents: 8159
diff changeset
    35
    cbTime->addItem(tr("permanent"), 3650 * 24 * 60 * 60);
8157
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    36
    cbTime->setCurrentIndex(0);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    37
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    38
    formLayout->addRow(tr("IP"), rbIP);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    39
    formLayout->addRow(tr("Nick"), rbNick);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    40
    formLayout->addRow(tr("IP/Nick"), leId);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    41
    formLayout->addRow(tr("Reason"), leReason);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    42
    formLayout->addRow(tr("Duration"), cbTime);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    43
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    44
    formLayout->setLabelAlignment(Qt::AlignRight);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    45
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    46
    QHBoxLayout * hbox = new QHBoxLayout();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    47
    formLayout->addRow(hbox);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    48
    QPushButton * btnOk = new QPushButton(tr("Ok"), this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    49
    QPushButton * btnCancel = new QPushButton(tr("Cancel"), this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    50
    hbox->addStretch();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    51
    hbox->addWidget(btnOk);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    52
    hbox->addWidget(btnCancel);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    53
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    54
    connect(btnOk, SIGNAL(clicked()), this, SLOT(okClicked()));
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    55
    connect(btnCancel, SIGNAL(clicked()), this, SLOT(reject()));
8159
e226be871b6e set window modality for new ban dialogs
koda
parents: 8157
diff changeset
    56
e226be871b6e set window modality for new ban dialogs
koda
parents: 8157
diff changeset
    57
    this->setWindowModality(Qt::WindowModal);
8157
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    58
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    59
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    60
bool BanDialog::byIP()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    61
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    62
    return rbIP->isChecked();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    63
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    64
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    65
int BanDialog::duration()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    66
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    67
    return cbTime->itemData(cbTime->currentIndex()).toInt();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    68
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    69
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    70
QString BanDialog::banId()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    71
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    72
    return leId->text();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    73
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    74
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    75
QString BanDialog::reason()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    76
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    77
    return leReason->text().isEmpty() ? tr("you know why") : leReason->text();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    78
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    79
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    80
void BanDialog::okClicked()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    81
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    82
    if(leId->text().isEmpty())
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    83
    {
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    84
        QMessageBox::warning(this, tr("Warning"), tr("Please, specify %1").arg(byIP() ? tr("IP") : tr("nickname")));
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    85
        return;
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    86
    }
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    87
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    88
    accept();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    89
}