QTfrontend/ui/dialog/bandialog.cpp
author unc0rr
Sat, 01 Dec 2012 00:38:06 +0400
changeset 8157 695f1eef72c8
child 8159 e226be871b6e
permissions -rw-r--r--
Bans manager
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>
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
     9
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    10
#include "bandialog.h"
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    11
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    12
BanDialog::BanDialog(QWidget *parent) :
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    13
    QDialog(parent)
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    14
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    15
    QFormLayout * formLayout = new QFormLayout(this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    16
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    17
    rbIP = new QRadioButton(this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    18
    rbIP->setChecked(true);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    19
    rbNick = new QRadioButton(this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    20
    leId = new QLineEdit(this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    21
    leReason = new QLineEdit(this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    22
    cbTime = new QComboBox(this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    23
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    24
    cbTime->addItem(tr("10 minutes"), 5 * 60);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    25
    cbTime->addItem(tr("30 minutes"), 10 * 60);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    26
    cbTime->addItem(tr("1 hour"), 60 * 60);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    27
    cbTime->addItem(tr("3 hours"), 3 * 60 * 60);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    28
    cbTime->addItem(tr("5 hours"), 5 * 60 * 60);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    29
    cbTime->addItem(tr("24 hours"), 24 * 60 * 60);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    30
    cbTime->addItem(tr("3 days"), 72 * 60 * 60);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    31
    cbTime->addItem(tr("7 days"), 168 * 60 * 60);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    32
    cbTime->addItem(tr("14 days"), 336 * 60 * 60);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    33
    cbTime->addItem(tr("permanent"), 3650 * 60 * 60);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    34
    cbTime->setCurrentIndex(0);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    35
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    36
    formLayout->addRow(tr("IP"), rbIP);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    37
    formLayout->addRow(tr("Nick"), rbNick);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    38
    formLayout->addRow(tr("IP/Nick"), leId);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    39
    formLayout->addRow(tr("Reason"), leReason);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    40
    formLayout->addRow(tr("Duration"), cbTime);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    41
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    42
    formLayout->setLabelAlignment(Qt::AlignRight);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    43
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    44
    QHBoxLayout * hbox = new QHBoxLayout();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    45
    formLayout->addRow(hbox);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    46
    QPushButton * btnOk = new QPushButton(tr("Ok"), this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    47
    QPushButton * btnCancel = new QPushButton(tr("Cancel"), this);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    48
    hbox->addStretch();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    49
    hbox->addWidget(btnOk);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    50
    hbox->addWidget(btnCancel);
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    51
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    52
    connect(btnOk, SIGNAL(clicked()), this, SLOT(okClicked()));
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    53
    connect(btnCancel, SIGNAL(clicked()), this, SLOT(reject()));
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    54
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    55
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    56
bool BanDialog::byIP()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    57
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    58
    return rbIP->isChecked();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    59
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    60
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    61
int BanDialog::duration()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    62
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    63
    return cbTime->itemData(cbTime->currentIndex()).toInt();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    64
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    65
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    66
QString BanDialog::banId()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    67
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    68
    return leId->text();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    69
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    70
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    71
QString BanDialog::reason()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    72
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    73
    return leReason->text().isEmpty() ? tr("you know why") : leReason->text();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    74
}
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    75
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    76
void BanDialog::okClicked()
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    77
{
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    78
    if(leId->text().isEmpty())
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    79
    {
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    80
        QMessageBox::warning(this, tr("Warning"), tr("Please, specify %1").arg(byIP() ? tr("IP") : tr("nickname")));
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    81
        return;
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    82
    }
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    83
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    84
    accept();
695f1eef72c8 Bans manager
unc0rr
parents:
diff changeset
    85
}