From b024b47afdc56a642c7a602a5f74bfeb43f7d9bd Mon Sep 17 00:00:00 2001 From: Daniel <24928223+dnsge@users.noreply.github.com> Date: Sun, 6 Sep 2020 06:02:15 -0400 Subject: [PATCH] Changelog crash fix (macOS) (#1935) On macOS, trying to display a dialog before showing the main window (like when starting minimized) leads to a crash. The dialog will now show before the main window is opened, preventing this issue. --- CHANGELOG.md | 1 + src/Application.cpp | 18 ++++++++++++++++++ src/widgets/Window.cpp | 29 ----------------------------- src/widgets/Window.hpp | 1 - 4 files changed, 19 insertions(+), 30 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 3c473aca..623ad1ba 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,7 @@ - Bugfix: Fix bug preventing users from setting the highlight color of the second entry in the "User" highlights tab (#1898) - Bugfix: /usercard command will now respect the "Automatically close user popup" setting (#1918) - Bugfix: Handle symlinks properly when saving commands & settings (#1856, #1908) +- Bugfix: Starting Chatterino in a minimized state after an update will no longer cause a crash ## 2.2.0 diff --git a/src/Application.cpp b/src/Application.cpp index cf98b823..cdfc469c 100644 --- a/src/Application.cpp +++ b/src/Application.cpp @@ -3,6 +3,7 @@ #include #include "common/Args.hpp" +#include "common/Version.hpp" #include "controllers/accounts/AccountController.hpp" #include "controllers/commands/CommandController.hpp" #include "controllers/ignores/IgnoreController.hpp" @@ -70,6 +71,23 @@ void Application::initialize(Settings &settings, Paths &paths) assert(isAppInitialized == false); isAppInitialized = true; + // Show changelog + if (getSettings()->currentVersion.getValue() != "" && + getSettings()->currentVersion.getValue() != CHATTERINO_VERSION) + { + auto box = new QMessageBox(QMessageBox::Information, "Chatterino 2", + "Show changelog?", + QMessageBox::Yes | QMessageBox::No); + box->setAttribute(Qt::WA_DeleteOnClose); + if (box->exec() == QMessageBox::Yes) + { + QDesktopServices::openUrl( + QUrl("https://www.chatterino.com/changelog")); + } + } + + getSettings()->currentVersion.setValue(CHATTERINO_VERSION); + if (getSettings()->enableExperimentalIrc) { Irc::instance().load(); diff --git a/src/widgets/Window.cpp b/src/widgets/Window.cpp index c57eb910..6076d775 100644 --- a/src/widgets/Window.cpp +++ b/src/widgets/Window.cpp @@ -119,35 +119,6 @@ bool Window::event(QEvent *event) return BaseWindow::event(event); } -void Window::showEvent(QShowEvent *event) -{ - // Startup notification - /*if (getSettings()->startUpNotification.getValue() < 1) - { - getSettings()->startUpNotification = 1; - }*/ - - // Show changelog - if (getSettings()->currentVersion.getValue() != "" && - getSettings()->currentVersion.getValue() != CHATTERINO_VERSION) - { - auto box = new QMessageBox(QMessageBox::Information, "Chatterino 2", - "Show changelog?", - QMessageBox::Yes | QMessageBox::No); - box->setAttribute(Qt::WA_DeleteOnClose); - if (box->exec() == QMessageBox::Yes) - { - QDesktopServices::openUrl( - QUrl("https://www.chatterino.com/changelog")); - } - } - - getSettings()->currentVersion.setValue(CHATTERINO_VERSION); - - // -- - BaseWindow::showEvent(event); -} - void Window::closeEvent(QCloseEvent *) { if (this->type_ == WindowType::Main) diff --git a/src/widgets/Window.hpp b/src/widgets/Window.hpp index d2c1c192..0e6a7712 100644 --- a/src/widgets/Window.hpp +++ b/src/widgets/Window.hpp @@ -28,7 +28,6 @@ public: pajlada::Signals::NoArgSignal closed; protected: - void showEvent(QShowEvent *) override; void closeEvent(QCloseEvent *event) override; bool event(QEvent *event) override;