QTfrontend/ui/dialog/bandialog.cpp
author unc0rr
Mon, 21 Jan 2013 12:22:33 +0400
changeset 8417 790492abc004
parent 8411 cb371dac50c0
child 10079 c88e38a0f478
permissions -rw-r--r--
Learn to properly localize strings with numbers pleeeeaaaase
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
8417
790492abc004 Learn to properly localize strings with numbers pleeeeaaaase
unc0rr
parents: 8411
diff changeset
    25
    cbTime->addItem(HWApplication::tr("%1 minutes", 0, 10).arg("10"), 5 * 60);
790492abc004 Learn to properly localize strings with numbers pleeeeaaaase
unc0rr
parents: 8411
diff changeset
    26
    cbTime->addItem(HWApplication::tr("%1 minutes", 0, 30).arg("30"), 10 * 60);
790492abc004 Learn to properly localize strings with numbers pleeeeaaaase
unc0rr
parents: 8411
diff changeset
    27
    cbTime->addItem(HWApplication::tr("%1 hour", 0, 10).arg("10"), 60 * 60);
790492abc004 Learn to properly localize strings with numbers pleeeeaaaase
unc0rr
parents: 8411
diff changeset
    28
    cbTime->addItem(HWApplication::tr("%1 hours", 0, 3).arg("3"), 3 * 60 * 60);
790492abc004 Learn to properly localize strings with numbers pleeeeaaaase
unc0rr
parents: 8411
diff changeset
    29
    cbTime->addItem(HWApplication::tr("%1 hours", 0, 5).arg("5"), 5 * 60 * 60);
790492abc004 Learn to properly localize strings with numbers pleeeeaaaase
unc0rr
parents: 8411
diff changeset
    30
    cbTime->addItem(HWApplication::tr("%1 hours", 0, 12).arg("12"), 12 * 60 * 60);
790492abc004 Learn to properly localize strings with numbers pleeeeaaaase
unc0rr
parents: 8411
diff changeset
    31
    cbTime->addItem(HWApplication::tr("%1 day", 0, 1).arg("1"), 24 * 60 * 60);
790492abc004 Learn to properly localize strings with numbers pleeeeaaaase
unc0rr
parents: 8411
diff changeset
    32
    cbTime->addItem(HWApplication::tr("%1 days", 0, 3).arg("3"), 72 * 60 * 60);
790492abc004 Learn to properly localize strings with numbers pleeeeaaaase
unc0rr
parents: 8411
diff changeset
    33
    cbTime->addItem(HWApplication::tr("%1 days", 0, 7).arg("7"), 168 * 60 * 60);
790492abc004 Learn to properly localize strings with numbers pleeeeaaaase
unc0rr
parents: 8411
diff changeset
    34
    cbTime->addItem(HWApplication::tr("%1 days", 0, 14).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
}