diff options
author | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2021-05-10 23:53:12 +0300 |
---|---|---|
committer | Hennadii Stepanov <32963518+hebasto@users.noreply.github.com> | 2021-05-10 23:56:14 +0300 |
commit | a2bdbdb358dd48af8f5e190aee2b289892092d0c (patch) | |
tree | 309b34ba89a58432db2f42cf2042a106086a5129 | |
parent | 8d7125f80e2bc9d1b36d6c5e8ef96ff7a57d00fb (diff) | |
parent | 01d9586ae85e49efaa00f11c1f26c24c9b82b278 (diff) |
Merge bitcoin-core/gui#194: Save/restore RPCConsole geometry only for window
01d9586ae85e49efaa00f11c1f26c24c9b82b278 qt: Save/restore RPCConsole geometry only for window (Hennadii Stepanov)
Pull request description:
After using the GUI with `-disablewallet` the "Node window" inherits the geometry of the main window, that could be unexpected for users.
This PR provides independent geometry settings for `RPCConsole` in both modes:
- window sizes and `QSplitter` sizes when `-disablewallet=0`
- only `QSplitter` sizes when `-disablewallet=1`
ACKs for top commit:
Talkless:
tACK 01d9586ae85e49efaa00f11c1f26c24c9b82b278, tested on Debian Sid with Qt 5.15.2. I've managed to reproduce issue using https://github.com/bitcoin-core/gui/pull/194#issuecomment-782822663 instructions, and I see that this PR does detach main window and information window sizes. Built with `--enable-wallet` and `--disable-wallet`.
jarolrod:
ACK 01d9586ae85e49efaa00f11c1f26c24c9b82b278, tested on macOS 11.2 Qt 5.15.2
promag:
Code review ACK 01d9586ae85e49efaa00f11c1f26c24c9b82b278.
Tree-SHA512: 9934cf04d4d5070dfc4671ea950e225cda9988858227e5481dad1baafa14af477bdbf4f91307ca687fde0cad6e4e605a3a99377e70d67eb115a19955ce2516f5
-rw-r--r-- | src/qt/rpcconsole.cpp | 32 |
1 files changed, 25 insertions, 7 deletions
diff --git a/src/qt/rpcconsole.cpp b/src/qt/rpcconsole.cpp index 10ca86c0e3..58bca97c78 100644 --- a/src/qt/rpcconsole.cpp +++ b/src/qt/rpcconsole.cpp @@ -454,13 +454,21 @@ RPCConsole::RPCConsole(interfaces::Node& node, const PlatformStyle *_platformSty { ui->setupUi(this); QSettings settings; - if (!restoreGeometry(settings.value("RPCConsoleWindowGeometry").toByteArray())) { - // Restore failed (perhaps missing setting), center the window - move(QGuiApplication::primaryScreen()->availableGeometry().center() - frameGeometry().center()); +#ifdef ENABLE_WALLET + if (WalletModel::isWalletEnabled()) { + // RPCConsole widget is a window. + if (!restoreGeometry(settings.value("RPCConsoleWindowGeometry").toByteArray())) { + // Restore failed (perhaps missing setting), center the window + move(QGuiApplication::primaryScreen()->availableGeometry().center() - frameGeometry().center()); + } + ui->splitter->restoreState(settings.value("RPCConsoleWindowPeersTabSplitterSizes").toByteArray()); + } else +#endif // ENABLE_WALLET + { + // RPCConsole is a child widget. + ui->splitter->restoreState(settings.value("RPCConsoleWidgetPeersTabSplitterSizes").toByteArray()); } - ui->splitter->restoreState(settings.value("PeersTabSplitterSizes").toByteArray()); - constexpr QChar nonbreaking_hyphen(8209); const std::vector<QString> CONNECTION_TYPE_DOC{ tr("Inbound: initiated by peer"), @@ -522,8 +530,18 @@ RPCConsole::RPCConsole(interfaces::Node& node, const PlatformStyle *_platformSty RPCConsole::~RPCConsole() { QSettings settings; - settings.setValue("RPCConsoleWindowGeometry", saveGeometry()); - settings.setValue("PeersTabSplitterSizes", ui->splitter->saveState()); +#ifdef ENABLE_WALLET + if (WalletModel::isWalletEnabled()) { + // RPCConsole widget is a window. + settings.setValue("RPCConsoleWindowGeometry", saveGeometry()); + settings.setValue("RPCConsoleWindowPeersTabSplitterSizes", ui->splitter->saveState()); + } else +#endif // ENABLE_WALLET + { + // RPCConsole is a child widget. + settings.setValue("RPCConsoleWidgetPeersTabSplitterSizes", ui->splitter->saveState()); + } + m_node.rpcUnsetTimerInterface(rpcTimerInterface); delete rpcTimerInterface; delete ui; |