Skip to content

Commit

Permalink
Disable update checks on versions before Windows 10
Browse files Browse the repository at this point in the history
On versions before Windows 10 the user is running the Qt5 build.
The next qBittorrent release will change to Qt6 as the default build.
It is counterintuitive to tell the user about available updates when they are
running an incompatible Windows version.
  • Loading branch information
sledgehammer999 committed Jul 10, 2023
1 parent c8763f0 commit 93204a6
Showing 1 changed file with 30 additions and 0 deletions.
30 changes: 30 additions & 0 deletions src/gui/mainwindow.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -31,6 +31,11 @@
#include <algorithm>
#include <chrono>

#if defined(Q_OS_WIN)
#include <Windows.h>
#include <versionhelpers.h> // must follow after Windows.h
#endif

#include <QActionGroup>
#include <QClipboard>
#include <QCloseEvent>
Expand Down Expand Up @@ -273,9 +278,15 @@ MainWindow::MainWindow(IGUIApplication *app, const State initialState)
#if defined(Q_OS_WIN) || defined(Q_OS_MACOS)
connect(m_ui->actionCheckForUpdates, &QAction::triggered, this, [this]() { checkProgramUpdate(true); });

#ifdef Q_OS_WIN
if (::IsWindows10OrGreater() && pref->isUpdateCheckEnabled())
checkProgramUpdate(false);
#else

// trigger an early check on startup
if (pref->isUpdateCheckEnabled())
checkProgramUpdate(false);
#endif
#else
m_ui->actionCheckForUpdates->setVisible(false);
#endif
Expand Down Expand Up @@ -1483,7 +1494,11 @@ void MainWindow::loadPreferences()
#if defined(Q_OS_WIN) || defined(Q_OS_MACOS)
if (pref->isUpdateCheckEnabled())
{
#ifdef Q_OS_WIN
if (::IsWindows10OrGreater() && !m_programUpdateTimer)
#else
if (!m_programUpdateTimer)
#endif
{
m_programUpdateTimer = new QTimer(this);
m_programUpdateTimer->setInterval(24h);
Expand Down Expand Up @@ -1919,6 +1934,21 @@ void MainWindow::updatePowerManagementState()
#if defined(Q_OS_WIN) || defined(Q_OS_MACOS)
void MainWindow::checkProgramUpdate(const bool invokedByUser)
{
#ifdef Q_OS_WIN
if (!::IsWindows10OrGreater())
{
if (invokedByUser) {
auto *msgBox = new QMessageBox {QMessageBox::Information, u"qBittorrent"_qs
, tr("This is the last supported version for your Windows version.")
, QMessageBox::Ok, this};
msgBox->setAttribute(Qt::WA_DeleteOnClose);
msgBox->show();
}

return;
}
#endif

if (m_programUpdateTimer)
m_programUpdateTimer->stop();

Expand Down

0 comments on commit 93204a6

Please sign in to comment.