diff options
author | Philip Kaufmann <phil.kaufmann@t-online.de> | 2013-07-13 13:14:23 +0200 |
---|---|---|
committer | Philip Kaufmann <phil.kaufmann@t-online.de> | 2013-07-29 16:22:46 +0200 |
commit | c431e9f1f03023d216db0ff48d3d598e705c97f9 (patch) | |
tree | 6132628aa34888e6e9af93982c77d8afcff2f045 | |
parent | c4316fefa5f56d62eeceb710ee18313bd9be1128 (diff) |
Bitcoin-Qt: save and restore position of debug window
- move the code for saving and restoring window positions from BitcoinGUI
to GUIUtil, make it more generic and also use it for saving/restoring
debug window positions
-rw-r--r-- | src/qt/bitcoingui.cpp | 28 | ||||
-rw-r--r-- | src/qt/bitcoingui.h | 4 | ||||
-rw-r--r-- | src/qt/guiutil.cpp | 25 | ||||
-rw-r--r-- | src/qt/guiutil.h | 5 | ||||
-rw-r--r-- | src/qt/rpcconsole.cpp | 2 |
5 files changed, 34 insertions, 30 deletions
diff --git a/src/qt/bitcoingui.cpp b/src/qt/bitcoingui.cpp index 11767cf312..15541f914d 100644 --- a/src/qt/bitcoingui.cpp +++ b/src/qt/bitcoingui.cpp @@ -49,8 +49,6 @@ #endif #include <QMimeData> #include <QStyle> -#include <QSettings> -#include <QDesktopWidget> #include <QListWidget> #include <iostream> @@ -68,7 +66,7 @@ BitcoinGUI::BitcoinGUI(bool fIsTestnet, QWidget *parent) : rpcConsole(0), prevBlocks(0) { - restoreWindowGeometry(); + GUIUtil::restoreWindowGeometry("nWindow", QSize(850, 550), this); #ifndef Q_OS_MAC if (!fIsTestnet) @@ -166,7 +164,7 @@ BitcoinGUI::BitcoinGUI(bool fIsTestnet, QWidget *parent) : BitcoinGUI::~BitcoinGUI() { - saveWindowGeometry(); + GUIUtil::saveWindowGeometry("nWindow", this); if(trayIcon) // Hide tray icon, as deleting will let it linger until quit (on Ubuntu) trayIcon->hide(); #ifdef Q_OS_MAC @@ -425,28 +423,6 @@ void BitcoinGUI::trayIconActivated(QSystemTrayIcon::ActivationReason reason) } #endif -void BitcoinGUI::saveWindowGeometry() -{ - QSettings settings; - settings.setValue("nWindowPos", pos()); - settings.setValue("nWindowSize", size()); -} - -void BitcoinGUI::restoreWindowGeometry() -{ - QSettings settings; - QPoint pos = settings.value("nWindowPos").toPoint(); - QSize size = settings.value("nWindowSize", QSize(850, 550)).toSize(); - if (!pos.x() && !pos.y()) - { - QRect screen = QApplication::desktop()->screenGeometry(); - pos.setX((screen.width()-size.width())/2); - pos.setY((screen.height()-size.height())/2); - } - resize(size); - move(pos); -} - void BitcoinGUI::optionsClicked() { if(!clientModel || !clientModel->getOptionsModel()) diff --git a/src/qt/bitcoingui.h b/src/qt/bitcoingui.h index 685ce8b430..6b9161539c 100644 --- a/src/qt/bitcoingui.h +++ b/src/qt/bitcoingui.h @@ -122,10 +122,6 @@ private: void createTrayIcon(bool fIsTestnet); /** Create system tray menu (or setup the dock menu) */ void createTrayIconMenu(); - /** Save window size and position */ - void saveWindowGeometry(); - /** Restore window size and position */ - void restoreWindowGeometry(); public slots: /** Set number of connections shown in the UI */ diff --git a/src/qt/guiutil.cpp b/src/qt/guiutil.cpp index 521d9bddd8..d51b68e040 100644 --- a/src/qt/guiutil.cpp +++ b/src/qt/guiutil.cpp @@ -24,6 +24,8 @@ #include <QFileDialog> #include <QDesktopServices> #include <QThread> +#include <QSettings> +#include <QDesktopWidget> #include <boost/filesystem.hpp> #include <boost/filesystem/fstream.hpp> @@ -487,6 +489,29 @@ bool SetStartOnSystemStartup(bool fAutoStart) { return false; } #endif +void saveWindowGeometry(const QString& strSetting, QWidget *parent) +{ + QSettings settings; + settings.setValue(strSetting + "Pos", parent->pos()); + settings.setValue(strSetting + "Size", parent->size()); +} + +void restoreWindowGeometry(const QString& strSetting, const QSize& defaultSize, QWidget *parent) +{ + QSettings settings; + QPoint pos = settings.value(strSetting + "Pos").toPoint(); + QSize size = settings.value(strSetting + "Size", defaultSize).toSize(); + + if (!pos.x() && !pos.y()) { + QRect screen = QApplication::desktop()->screenGeometry(); + pos.setX((screen.width() - size.width()) / 2); + pos.setY((screen.height() - size.height()) / 2); + } + + parent->resize(size); + parent->move(pos); +} + HelpMessageBox::HelpMessageBox(QWidget *parent) : QMessageBox(parent) { diff --git a/src/qt/guiutil.h b/src/qt/guiutil.h index e2c7d18aa2..ca3e7fe91d 100644 --- a/src/qt/guiutil.h +++ b/src/qt/guiutil.h @@ -96,6 +96,11 @@ namespace GUIUtil bool GetStartOnSystemStartup(); bool SetStartOnSystemStartup(bool fAutoStart); + /** Save window size and position */ + void saveWindowGeometry(const QString& strSetting, QWidget *parent); + /** Restore window size and position */ + void restoreWindowGeometry(const QString& strSetting, const QSize &defaultSizeIn, QWidget *parent); + /** Help message for Bitcoin-Qt, shown with --help. */ class HelpMessageBox : public QMessageBox { diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp index ef72b17201..8953c36579 100644 --- a/src/qt/rpcconsole.cpp +++ b/src/qt/rpcconsole.cpp @@ -187,6 +187,7 @@ RPCConsole::RPCConsole(QWidget *parent) : historyPtr(0) { ui->setupUi(this); + GUIUtil::restoreWindowGeometry("nRPCConsoleWindow", this->size(), this); #ifndef Q_OS_MAC ui->openDebugLogfileButton->setIcon(QIcon(":/icons/export")); @@ -209,6 +210,7 @@ RPCConsole::RPCConsole(QWidget *parent) : RPCConsole::~RPCConsole() { + GUIUtil::saveWindowGeometry("nRPCConsoleWindow", this); emit stopExecutor(); delete ui; } |