Окно опций теперь QWidget 134/head
authorfsb4000 <fsb4000@yandex.ru>
Wed, 28 Jan 2015 08:48:18 +0000 (14:48 +0600)
committerfsb4000 <fsb4000@yandex.ru>
Wed, 28 Jan 2015 08:48:18 +0000 (14:48 +0600)
src/qt/bitcoingui.cpp
src/qt/bitcoingui.h
src/qt/forms/optionsdialog.ui
src/qt/optionsdialog.cpp
src/qt/optionsdialog.h

index 75a6510..d5ddc4a 100644 (file)
@@ -84,7 +84,8 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
     trayIcon(0),
     notificator(0),
     rpcConsole(0),
-    aboutDialog(0)
+    aboutDialog(0),
+    optionsDialog(0)
 {
     resize(850, 550);
     setWindowTitle(tr("NovaCoin") + " - " + tr("Wallet"));
@@ -202,6 +203,7 @@ BitcoinGUI::BitcoinGUI(QWidget *parent):
     connect(openRPCConsoleAction, SIGNAL(triggered()), rpcConsole, SLOT(show()));
 
     aboutDialog = new AboutDialog(0);
+    optionsDialog = new OptionsDialog(0);
 
     // Clicking on "Verify Message" in the address book sends you to the verify message tab
     connect(addressBookPage, SIGNAL(verifyMessage(QString)), this, SLOT(gotoVerifyMessageTab(QString)));
@@ -221,6 +223,7 @@ BitcoinGUI::~BitcoinGUI()
 
     delete rpcConsole;
     delete aboutDialog;
+    delete optionsDialog;
 }
 
 void BitcoinGUI::createActions()
@@ -538,9 +541,10 @@ void BitcoinGUI::optionsClicked()
 {
     if(!clientModel || !clientModel->getOptionsModel())
         return;
-    OptionsDialog dlg;
-    dlg.setModel(clientModel->getOptionsModel());
-    dlg.exec();
+
+    optionsDialog->setModel(clientModel->getOptionsModel());
+    optionsDialog->setWindowModality(Qt::ApplicationModal);
+    optionsDialog->show();
 }
 
 void BitcoinGUI::aboutClicked()
index 8b8daf9..d27151a 100644 (file)
@@ -17,6 +17,7 @@ class MultisigDialog;
 class Notificator;
 class RPCConsole;
 class AboutDialog;
+class OptionsDialog;
 
 QT_BEGIN_NAMESPACE
 class QLabel;
@@ -110,6 +111,7 @@ private:
     MintingView *mintingView;
     RPCConsole *rpcConsole;
     AboutDialog *aboutDialog;
+    OptionsDialog *optionsDialog;
 
     QMovie *syncIconMovie;
 
index 8427694..1258edc 100644 (file)
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8"?>
 <ui version="4.0">
  <class>OptionsDialog</class>
- <widget class="QDialog" name="OptionsDialog">
+ <widget class="QWidget" name="OptionsDialog">
   <property name="geometry">
    <rect>
     <x>0</x>
@@ -13,9 +13,6 @@
   <property name="windowTitle">
    <string>Options</string>
   </property>
-  <property name="modal">
-   <bool>true</bool>
-  </property>
   <layout class="QVBoxLayout" name="verticalLayout">
    <item>
     <widget class="QTabWidget" name="tabWidget">
index c964fc3..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),
@@ -216,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()
@@ -332,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
index c2a11df..cec9331 100644 (file)
@@ -1,7 +1,7 @@
 #ifndef OPTIONSDIALOG_H
 #define OPTIONSDIALOG_H
 
-#include <QDialog>
+#include <QWidget>
 
 namespace Ui {
 class OptionsDialog;
@@ -11,7 +11,7 @@ class MonitoredDataMapper;
 class QValidatedLineEdit;
 
 /** Preferences dialog. */
-class OptionsDialog : public QDialog
+class OptionsDialog : public QWidget
 {
     Q_OBJECT
 
@@ -24,6 +24,7 @@ public:
 
 protected:
     bool eventFilter(QObject *object, QEvent *event);
+    void keyPressEvent(QKeyEvent *);
 
 private slots:
     /* enable only apply button */