aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJonas Schnelli <jonas.schnelli@include7.ch>2014-11-10 16:41:57 +0100
committerJonas Schnelli <jonas.schnelli@include7.ch>2014-11-13 12:57:24 +0100
commit4a8fc152a957e54e6dd910de4382678f5c405198 (patch)
treef53a5bce4ceb32071adcadf0bdba172d0c369b96
parent5406f61373fe93326ab1f546e4da9f4528236cc7 (diff)
[Qt] the RPC Console should be a QWidget to make window more independent
- fix issue #5254
-rw-r--r--src/qt/bitcoingui.cpp7
-rw-r--r--src/qt/forms/rpcconsole.ui2
-rw-r--r--src/qt/rpcconsole.cpp13
-rw-r--r--src/qt/rpcconsole.h6
4 files changed, 17 insertions, 11 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp
index 77cfdceef0..cc799609a7 100644
--- a/src/qt/bitcoingui.cpp
+++ b/src/qt/bitcoingui.cpp
@@ -128,7 +128,7 @@ BitcoinGUI::BitcoinGUI(const NetworkStyle *networkStyle, QWidget *parent) :
setUnifiedTitleAndToolBarOnMac(true);
#endif
- rpcConsole = new RPCConsole(enableWallet ? this : 0);
+ rpcConsole = new RPCConsole(0);
#ifdef ENABLE_WALLET
if(enableWallet)
{
@@ -234,6 +234,8 @@ BitcoinGUI::~BitcoinGUI()
delete appMenuBar;
MacDockIconHandler::instance()->setMainWindow(NULL);
#endif
+
+ delete rpcConsole;
}
void BitcoinGUI::createActions(const NetworkStyle *networkStyle)
@@ -831,6 +833,9 @@ void BitcoinGUI::closeEvent(QCloseEvent *event)
if(!clientModel->getOptionsModel()->getMinimizeToTray() &&
!clientModel->getOptionsModel()->getMinimizeOnClose())
{
+ // close rpcConsole in case it was open to make some space for the shutdown window
+ rpcConsole->close();
+
QApplication::quit();
}
}
diff --git a/src/qt/forms/rpcconsole.ui b/src/qt/forms/rpcconsole.ui
index c5ac371619..a8b94354da 100644
--- a/src/qt/forms/rpcconsole.ui
+++ b/src/qt/forms/rpcconsole.ui
@@ -1,7 +1,7 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>RPCConsole</class>
- <widget class="QDialog" name="RPCConsole">
+ <widget class="QWidget" name="RPCConsole">
<property name="geometry">
<rect>
<x>0</x>
diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp
index 2d2d448b49..2defdf8bb4 100644
--- a/src/qt/rpcconsole.cpp
+++ b/src/qt/rpcconsole.cpp
@@ -200,7 +200,7 @@ void RPCExecutor::request(const QString &command)
}
RPCConsole::RPCConsole(QWidget *parent) :
- QDialog(parent),
+ QWidget(parent),
ui(new Ui::RPCConsole),
clientModel(0),
historyPtr(0),
@@ -278,7 +278,7 @@ bool RPCConsole::eventFilter(QObject* obj, QEvent *event)
}
}
}
- return QDialog::eventFilter(obj, event);
+ return QWidget::eventFilter(obj, event);
}
void RPCConsole::setClientModel(ClientModel *model)
@@ -366,11 +366,12 @@ void RPCConsole::clear()
tr("Type <b>help</b> for an overview of available commands.")), true);
}
-void RPCConsole::reject()
+void RPCConsole::keyPressEvent(QKeyEvent *event)
{
- // Ignore escape keypress if this is not a seperate window
- if(windowType() != Qt::Widget)
- QDialog::reject();
+ if(windowType() != Qt::Widget && event->key() == Qt::Key_Escape)
+ {
+ close();
+ }
}
void RPCConsole::message(int category, const QString &message, bool html)
diff --git a/src/qt/rpcconsole.h b/src/qt/rpcconsole.h
index 4bb9b62e93..fae254b336 100644
--- a/src/qt/rpcconsole.h
+++ b/src/qt/rpcconsole.h
@@ -10,7 +10,7 @@
#include "net.h"
-#include <QDialog>
+#include <QWidget>
class ClientModel;
@@ -23,7 +23,7 @@ class QItemSelection;
QT_END_NAMESPACE
/** Local Bitcoin RPC console. */
-class RPCConsole: public QDialog
+class RPCConsole: public QWidget
{
Q_OBJECT
@@ -43,6 +43,7 @@ public:
protected:
virtual bool eventFilter(QObject* obj, QEvent *event);
+ void keyPressEvent(QKeyEvent *);
private slots:
void on_lineEdit_returnPressed();
@@ -59,7 +60,6 @@ private slots:
public slots:
void clear();
- void reject();
void message(int category, const QString &message, bool html = false);
/** Set number of connections shown in the UI */
void setNumConnections(int count);