ErrorDialog: Use QApplication::activeWindow
This commit is contained in:
@@ -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);
|
||||||
|
|||||||
@@ -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()) {
|
||||||
|
|||||||
@@ -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_;
|
||||||
|
|||||||
Reference in New Issue
Block a user