QTfrontend/ui/dialog/bandialog.cpp
changeset 8157 695f1eef72c8
child 8159 e226be871b6e
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/QTfrontend/ui/dialog/bandialog.cpp	Sat Dec 01 00:38:06 2012 +0400
@@ -0,0 +1,85 @@
+#include <QFormLayout>
+#include <QComboBox>
+#include <QRadioButton>
+#include <QLineEdit>
+#include <QLabel>
+#include <QPushButton>
+#include <QHBoxLayout>
+#include <QMessageBox>
+
+#include "bandialog.h"
+
+BanDialog::BanDialog(QWidget *parent) :
+    QDialog(parent)
+{
+    QFormLayout * formLayout = new QFormLayout(this);
+
+    rbIP = new QRadioButton(this);
+    rbIP->setChecked(true);
+    rbNick = new QRadioButton(this);
+    leId = new QLineEdit(this);
+    leReason = new QLineEdit(this);
+    cbTime = new QComboBox(this);
+
+    cbTime->addItem(tr("10 minutes"), 5 * 60);
+    cbTime->addItem(tr("30 minutes"), 10 * 60);
+    cbTime->addItem(tr("1 hour"), 60 * 60);
+    cbTime->addItem(tr("3 hours"), 3 * 60 * 60);
+    cbTime->addItem(tr("5 hours"), 5 * 60 * 60);
+    cbTime->addItem(tr("24 hours"), 24 * 60 * 60);
+    cbTime->addItem(tr("3 days"), 72 * 60 * 60);
+    cbTime->addItem(tr("7 days"), 168 * 60 * 60);
+    cbTime->addItem(tr("14 days"), 336 * 60 * 60);
+    cbTime->addItem(tr("permanent"), 3650 * 60 * 60);
+    cbTime->setCurrentIndex(0);
+
+    formLayout->addRow(tr("IP"), rbIP);
+    formLayout->addRow(tr("Nick"), rbNick);
+    formLayout->addRow(tr("IP/Nick"), leId);
+    formLayout->addRow(tr("Reason"), leReason);
+    formLayout->addRow(tr("Duration"), cbTime);
+
+    formLayout->setLabelAlignment(Qt::AlignRight);
+
+    QHBoxLayout * hbox = new QHBoxLayout();
+    formLayout->addRow(hbox);
+    QPushButton * btnOk = new QPushButton(tr("Ok"), this);
+    QPushButton * btnCancel = new QPushButton(tr("Cancel"), this);
+    hbox->addStretch();
+    hbox->addWidget(btnOk);
+    hbox->addWidget(btnCancel);
+
+    connect(btnOk, SIGNAL(clicked()), this, SLOT(okClicked()));
+    connect(btnCancel, SIGNAL(clicked()), this, SLOT(reject()));
+}
+
+bool BanDialog::byIP()
+{
+    return rbIP->isChecked();
+}
+
+int BanDialog::duration()
+{
+    return cbTime->itemData(cbTime->currentIndex()).toInt();
+}
+
+QString BanDialog::banId()
+{
+    return leId->text();
+}
+
+QString BanDialog::reason()
+{
+    return leReason->text().isEmpty() ? tr("you know why") : leReason->text();
+}
+
+void BanDialog::okClicked()
+{
+    if(leId->text().isEmpty())
+    {
+        QMessageBox::warning(this, tr("Warning"), tr("Please, specify %1").arg(byIP() ? tr("IP") : tr("nickname")));
+        return;
+    }
+
+    accept();
+}