summaryrefslogtreecommitdiff
path: root/src/settings.h
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-09-23 17:52:46 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-09-23 17:52:46 -0400
commit829124d8b899101370e55eb2a9cb9164ffd68a55 (patch)
treeeaff00bafee0c07e7ab00d04a5e4c23de55004ca /src/settings.h
parentd0099f577e9eabc7575321e68754fd41663827fe (diff)
ensure windows are on screen
Diffstat (limited to 'src/settings.h')
-rw-r--r--src/settings.h51
1 files changed, 35 insertions, 16 deletions
diff --git a/src/settings.h b/src/settings.h
index cd478a5b..b5366911 100644
--- a/src/settings.h
+++ b/src/settings.h
@@ -41,20 +41,6 @@ class ServerList;
class Settings;
-// helper class that calls restoreGeometry() in the constructor and
-// saveGeometry() in the destructor
-//
-class GeometrySaver
-{
-public:
- GeometrySaver(Settings& s, QDialog* dialog);
- ~GeometrySaver();
-
-private:
- Settings& m_settings;
- QDialog* m_dialog;
-};
-
// setting for the currently managed game
//
@@ -141,8 +127,11 @@ public:
void resetIfNeeded();
- void saveGeometry(const QWidget* w);
- bool restoreGeometry(QWidget* w) const;
+ void saveGeometry(const QMainWindow* w);
+ bool restoreGeometry(QMainWindow* w) const;
+
+ void saveGeometry(const QDialog* d);
+ bool restoreGeometry(QDialog* d) const;
void saveState(const QMainWindow* window);
bool restoreState(QMainWindow* window) const;
@@ -182,6 +171,12 @@ public:
private:
QSettings& m_Settings;
bool m_Reset;
+
+ void saveWindowGeometry(const QWidget* w);
+ bool restoreWindowGeometry(QWidget* w) const;
+
+ void ensureWindowOnScreen(QWidget* w) const;
+ static void centerOnMonitor(QWidget* w, int monitor);
};
@@ -764,4 +759,28 @@ private:
DiagnosticsSettings m_Diagnostics;
};
+
+// helper class that calls restoreGeometry() in the constructor and
+// saveGeometry() in the destructor
+//
+template <class W>
+class GeometrySaver
+{
+public:
+ GeometrySaver(Settings& s, W* w)
+ : m_settings(s), m_widget(w)
+ {
+ m_settings.geometry().restoreGeometry(m_widget);
+ }
+
+ ~GeometrySaver()
+ {
+ m_settings.geometry().saveGeometry(m_widget);
+ }
+
+private:
+ Settings& m_settings;
+ W* m_widget;
+};
+
#endif // SETTINGS_H