From 04046b941540ccab735cf16c8b00debdbe7d593e Mon Sep 17 00:00:00 2001 From: Bill Somerville Date: Thu, 10 Dec 2015 21:06:58 +0000 Subject: [PATCH] Handle disappearing displays correctly Qt makes sure a widget's window is displayed on a display if the display configuration changes while it is running. If the display configuration changes while the application is not running then only QWidget::saveGeometry() and QWidget::restoreGeometry() will ensure that the widget's window is correctly displayed if the original display is no longer present. Merged from ^/branches/wsjtx. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/branches/wsjtx-1.6@6259 ab8295b8-cf94-4d9e-aec4-7959e3be5d79 --- Configuration.cpp | 7 ++----- messageaveraging.cpp | 4 ++-- 2 files changed, 4 insertions(+), 7 deletions(-) diff --git a/Configuration.cpp b/Configuration.cpp index cf3798516..85a5b6cad 100644 --- a/Configuration.cpp +++ b/Configuration.cpp @@ -1082,8 +1082,7 @@ void Configuration::impl::done (int r) { // do this here since window is still on screen at this point SettingsGroup g {settings_, "Configuration"}; - settings_->setValue ("window/size", size ()); - settings_->setValue ("window/pos", pos ()); + settings_->setValue ("window/geometry", saveGeometry ()); QDialog::done (r); } @@ -1091,9 +1090,7 @@ void Configuration::impl::done (int r) void Configuration::impl::read_settings () { SettingsGroup g {settings_, "Configuration"}; - - resize (settings_->value ("window/size", size ()).toSize ()); - move (settings_->value ("window/pos", pos ()).toPoint ()); + restoreGeometry (settings_->value ("window/geometry").toByteArray ()); my_callsign_ = settings_->value ("MyCall", "").toString (); my_grid_ = settings_->value ("MyGrid", "").toString (); diff --git a/messageaveraging.cpp b/messageaveraging.cpp index 0518f6aa6..9cc2969a4 100644 --- a/messageaveraging.cpp +++ b/messageaveraging.cpp @@ -28,14 +28,14 @@ void MessageAveraging::closeEvent (QCloseEvent * e) void MessageAveraging::read_settings () { settings_->beginGroup ("MessageAveraging"); - move (settings_->value ("window/pos", pos ()).toPoint ()); + restoreGeometry (settings_->value ("window/geometry").toByteArray ()); settings_->endGroup (); } void MessageAveraging::write_settings () { settings_->beginGroup ("MessageAveraging"); - settings_->setValue ("window/pos", pos ()); + settings_->setValue ("window/geometry", saveGeometry ()); settings_->endGroup (); }