diff options
Diffstat (limited to 'src/dialog.cpp')
-rw-r--r-- | src/dialog.cpp | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/src/dialog.cpp b/src/dialog.cpp index 21c5620..8ff215e 100644 --- a/src/dialog.cpp +++ b/src/dialog.cpp @@ -5,6 +5,8 @@ #include <QRegExp> #include <QFile> #include <QProcess> +#include <QTimer> +#include <QDesktopWidget> #include "ui_dialog.h" #include "save_restore_session.h" @@ -18,6 +20,13 @@ Dialog::Dialog(QWidget *parent) pvsSettings_ = NULL; ui->PVSOptionsGroupBox->hide(); + + // Re-center dialog every second to account for resolution changes + QRect desktopRect = QApplication::desktop()->availableGeometry(this); + oldCenter_ = desktopRect.center(); + centerTimer_ = new QTimer(this); + connect(centerTimer_, SIGNAL(timeout()), this, SLOT(on_centerTimer())); + centerTimer_->start(1000); } Dialog::~Dialog() { @@ -212,3 +221,14 @@ void Dialog::setTheme() { ui->label_l->setStyleSheet(label_l_style); ui->label_r->setStyleSheet(label_r_style); } + +void Dialog::on_centerTimer() { + // center dialog on primary screen + QRect desktopRect = QApplication::desktop()->availableGeometry(this); + QPoint center = desktopRect.center(); + if (center != oldCenter_) { + this->move(center.x() - this->width() / 2, center.y() - this->height() / 2); + oldCenter_ = center; + } +} + |