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

@@ -296,9 +296,6 @@ MainWindow::MainWindow(Application *app,
#ifdef HAVE_DISCORD_RPC #ifdef HAVE_DISCORD_RPC
discord_rich_presence_(discord_rich_presence), discord_rich_presence_(discord_rich_presence),
#endif #endif
error_dialog_([this]() {
return new ErrorDialog(this);
}),
console_([app, this]() { console_([app, this]() {
Console *console = new Console(app->database()); Console *console = new Console(app->database());
QObject::connect(console, &Console::Error, this, &MainWindow::ShowErrorDialog); QObject::connect(console, &Console::Error, this, &MainWindow::ShowErrorDialog);

View File

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

View File

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