fix(updater): add parent to dialog to fix issues in tilling WMs

QProgressDialog without parents in Qt tend to cause graphical issues on
some systems, so we add the main window as a parent here!

Signed-off-by: flow <flowlnlnln@gmail.com>
This commit is contained in:
flow 2023-06-29 19:09:52 -03:00 committed by Rachel Powers
parent a6c8a37a5d
commit 494483fd2b
No known key found for this signature in database
GPG Key ID: E10E321EB160949B
3 changed files with 25 additions and 22 deletions

View File

@ -857,17 +857,6 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv)
qDebug() << "<> Translations loaded.";
}
// initialize the updater
if (updaterEnabled()) {
qDebug() << "Initializing updater";
#ifdef Q_OS_MAC
m_updater.reset(new MacSparkleUpdater());
#else
m_updater.reset(new PrismExternalUpdater(applicationDirPath(), m_dataPath));
#endif
qDebug() << "<> Updater started.";
}
// Instance icons
{
auto setting = APPLICATION->settings()->getSetting("IconsDir");
@ -968,6 +957,25 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv)
applyCurrentlySelectedTheme(true);
updateCapabilities();
if (createSetupWizard()) {
return;
}
performMainStartupAction();
// initialize the updater
if (updaterEnabled()) {
qDebug() << "Initializing updater";
#ifdef Q_OS_MAC
m_updater.reset(new MacSparkleUpdater());
#else
m_updater.reset(new PrismExternalUpdater(m_mainWindow, applicationDirPath(), m_dataPath));
#endif
qDebug() << "<> Updater started.";
}
// check update locks
{
auto update_log_path = FS::PathCombine(m_dataPath, "logs", "prism_launcher_update.log");
@ -1063,14 +1071,6 @@ Application::Application(int& argc, char** argv) : QApplication(argc, argv)
FS::deletePath(update_success_marker.absoluteFilePath());
}
}
updateCapabilities();
if (createSetupWizard()) {
return;
}
performMainStartupAction();
}
bool Application::createSetupWizard()

View File

@ -48,9 +48,11 @@ class PrismExternalUpdater::Private {
double updateInterval;
QDateTime lastCheck;
std::unique_ptr<QSettings> settings;
QWidget* parent;
};
PrismExternalUpdater::PrismExternalUpdater(const QString& binDir, const QString& dataDir)
PrismExternalUpdater::PrismExternalUpdater(QWidget* parent, const QString& binDir, const QString& dataDir)
{
priv = new PrismExternalUpdater::Private();
priv->binDir = QDir(binDir);
@ -68,6 +70,7 @@ PrismExternalUpdater::PrismExternalUpdater(const QString& binDir, const QString&
if (!last_check.isNull() && last_check.isValid()) {
priv->lastCheck = QDateTime::fromString(last_check.toString(), Qt::ISODate);
}
priv->parent = parent;
connectTimer();
resetAutoCheckTimer();
}
@ -83,7 +86,7 @@ PrismExternalUpdater::~PrismExternalUpdater()
void PrismExternalUpdater::checkForUpdates()
{
QProgressDialog progress(tr("Checking for updates..."), "", 0, 0);
QProgressDialog progress(tr("Checking for updates..."), "", 0, 0, priv->parent);
progress.setCancelButton(nullptr);
progress.show();
QCoreApplication::processEvents();

View File

@ -34,7 +34,7 @@ class PrismExternalUpdater : public ExternalUpdater {
Q_OBJECT
public:
PrismExternalUpdater(const QString& appDir, const QString& dataDir);
PrismExternalUpdater(QWidget* parent, const QString& appDir, const QString& dataDir);
~PrismExternalUpdater() override;
/*!