Окно опций теперь QWidget
[novacoin.git] / src / qt / optionsdialog.cpp
index 671b18c..4fc9ab8 100644 (file)
 #include <QMessageBox>
 #include <QRegExp>
 #include <QRegExpValidator>
+#include <QKeyEvent>
 
 OptionsDialog::OptionsDialog(QWidget *parent) :
-    QDialog(parent, DIALOGWINDOWHINTS),
+    QWidget(parent, DIALOGWINDOWHINTS),
     ui(new Ui::OptionsDialog),
     model(0),
     mapper(0),
@@ -41,6 +42,7 @@ OptionsDialog::OptionsDialog(QWidget *parent) :
     ui->torPort->setEnabled(false);
     ui->torPort->setValidator(new QIntValidator(1, 65535, this));
     ui->TorOnly->setEnabled(false);
+    ui->torName->setEnabled(false);
 
     ui->socksVersion->setEnabled(false);
     ui->socksVersion->addItem("5", 5);
@@ -56,6 +58,7 @@ OptionsDialog::OptionsDialog(QWidget *parent) :
     connect(ui->connectTor, SIGNAL(toggled(bool)), ui->torIp, SLOT(setEnabled(bool)));
     connect(ui->connectTor, SIGNAL(toggled(bool)), ui->torPort, SLOT(setEnabled(bool)));
     connect(ui->connectTor, SIGNAL(toggled(bool)), ui->TorOnly, SLOT(setEnabled(bool)));
+    connect(ui->connectTor, SIGNAL(toggled(bool)), ui->torName, SLOT(setEnabled(bool)));
     connect(ui->TorOnly, SIGNAL(toggled(bool)), ui->connectSocks, SLOT(setDisabled(bool)));
 
     ui->proxyIp->installEventFilter(this);
@@ -166,6 +169,8 @@ void OptionsDialog::setMapper()
     mapper->addMapping(ui->torIp, OptionsModel::TorIP);
     mapper->addMapping(ui->torPort, OptionsModel::TorPort);
     mapper->addMapping(ui->TorOnly, OptionsModel::TorOnly);
+    mapper->addMapping(ui->torName, OptionsModel::TorName);
+
 
     /* Window */
 #ifndef Q_OS_MAC
@@ -212,12 +217,14 @@ void OptionsDialog::setSaveButtonState(bool fState)
 void OptionsDialog::on_okButton_clicked()
 {
     mapper->submit();
-    accept();
+//    accept();
+    close();
 }
 
 void OptionsDialog::on_cancelButton_clicked()
 {
-    reject();
+//    reject();
+    close();
 }
 
 void OptionsDialog::on_applyButton_clicked()
@@ -328,5 +335,20 @@ bool OptionsDialog::eventFilter(QObject *object, QEvent *event)
             emit torIpValid(ui->torIp, LookupNumeric(ui->torIp->text().toStdString().c_str(), addr));
         }
     }
-    return QDialog::eventFilter(object, event);
+    return QWidget::eventFilter(object, event);
 }
+
+void OptionsDialog::keyPressEvent(QKeyEvent *event)
+{
+#ifdef ANDROID
+    if(windowType() != Qt::Widget && event->key() == Qt::Key_Back)
+    {
+        close();
+    }
+#else
+    if(windowType() != Qt::Widget && event->key() == Qt::Key_Escape)
+    {
+        close();
+    }
+#endif
+}
\ No newline at end of file