ErrorDialog: Use QApplication::activeWindow

This commit is contained in:
Jonas Kvinge
2025-12-16 22:32:11 +01:00
parent fc0ec91652
commit a8ba420d72
3 changed files with 7 additions and 10 deletions

View File

@@ -24,6 +24,7 @@
#include <utility>
#include <QWidget>
#include <QApplication>
#include <QString>
#include <QIcon>
#include <QPalette>
@@ -40,9 +41,8 @@
using namespace Qt::Literals::StringLiterals;
ErrorDialog::ErrorDialog(QWidget *mainwindow, QWidget *parent)
ErrorDialog::ErrorDialog(QWidget *parent)
: QDialog(parent),
mainwindow_(mainwindow),
ui_(new Ui_ErrorDialog) {
ui_->setupUi(this);
@@ -64,8 +64,9 @@ ErrorDialog::~ErrorDialog() {
void ErrorDialog::ShowDialog() {
if (screen() && mainwindow_->screen() && screen() != mainwindow_->screen()) {
Utilities::CenterWidgetOnScreen(mainwindow_->screen(), this);
QWidget *active_window = QApplication::activeWindow();
if (active_window && screen() && active_window->screen() && screen() != active_window->screen()) {
Utilities::CenterWidgetOnScreen(active_window->screen(), this);
}
setWindowState((windowState() & ~Qt::WindowMinimized) | Qt::WindowActive);
show();
@@ -81,7 +82,7 @@ void ErrorDialog::ShowMessage(const QString &message) {
current_messages_ << message;
UpdateContent();
if (mainwindow_->isActiveWindow()) {
if (QApplication::activeWindow()) {
ShowDialog();
}
else if (!isVisible()) {

View File

@@ -37,7 +37,7 @@ class ErrorDialog : public QDialog {
Q_OBJECT
public:
explicit ErrorDialog(QWidget *mainwindow, QWidget *parent = nullptr);
explicit ErrorDialog(QWidget *parent = nullptr);
~ErrorDialog() override;
public Q_SLOTS:
@@ -50,7 +50,6 @@ class ErrorDialog : public QDialog {
private:
void UpdateContent();
QWidget *mainwindow_;
Ui_ErrorDialog *ui_;
QStringList current_messages_;