[Qt] the RPC Console should be a QWidget to make window more independent

- fix issue #5254
This commit is contained in:
Jonas Schnelli 2014-11-10 16:41:57 +01:00
parent 5406f61373
commit 4a8fc152a9
4 changed files with 17 additions and 11 deletions

View file

@ -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();
}
}

View file

@ -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>

View file

@ -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)

View file

@ -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);