summaryrefslogtreecommitdiff
path: root/src/settings.cpp
diff options
context:
space:
mode:
authorisanae <14251494+isanae@users.noreply.github.com>2019-09-23 18:21:39 -0400
committerisanae <14251494+isanae@users.noreply.github.com>2019-09-23 18:21:39 -0400
commit200b5283eb5a0eff5ed18e772930b99eea5e11ef (patch)
tree1ee8a5d22637304997eef70d9bfa51945c0bbdd2 /src/settings.cpp
parent829124d8b899101370e55eb2a9cb9164ffd68a55 (diff)
added center dialogs option
moved download list options to their own group box renamed confusing "Download Meta Information" to "Show Meta Information"
Diffstat (limited to 'src/settings.cpp')
-rw-r--r--src/settings.cpp34
1 files changed, 33 insertions, 1 deletions
diff --git a/src/settings.cpp b/src/settings.cpp
index 19eca5ec..c3e8781e 100644
--- a/src/settings.cpp
+++ b/src/settings.cpp
@@ -623,7 +623,13 @@ void GeometrySettings::saveGeometry(const QDialog* d)
bool GeometrySettings::restoreGeometry(QDialog* d) const
{
- return restoreWindowGeometry(d);
+ const auto r = restoreWindowGeometry(d);
+
+ if (centerDialogs()) {
+ centerOnParent(d);
+ }
+
+ return r;
}
void GeometrySettings::saveWindowGeometry(const QWidget* w)
@@ -829,6 +835,16 @@ void GeometrySettings::setModInfoTabOrder(const QString& names)
set(m_Settings, "Widgets", "ModInfoTabOrder", names);
}
+bool GeometrySettings::centerDialogs() const
+{
+ return get<bool>(m_Settings, "Settings", "center_dialogs", false);
+}
+
+void GeometrySettings::setCenterDialogs(bool b)
+{
+ set(m_Settings, "Settings", "center_dialogs", b);
+}
+
void GeometrySettings::centerOnMainWindowMonitor(QWidget* w)
{
const auto monitor = getOptional<int>(
@@ -850,6 +866,22 @@ void GeometrySettings::centerOnMonitor(QWidget* w, int monitor)
w->move(center - w->rect().center());
}
+void GeometrySettings::centerOnParent(QWidget* w, QWidget* parent)
+{
+ if (!parent) {
+ parent = w->parentWidget();
+
+ if (!parent) {
+ parent = qApp->activeWindow();
+ }
+ }
+
+ if (parent && parent->isVisible()) {
+ const auto pr = parent->geometry();
+ w->move(pr.center() - w->rect().center());
+ }
+}
+
void GeometrySettings::saveMainWindowMonitor(const QMainWindow* w)
{
if (auto* handle=w->windowHandle()) {