From ceb240d01a3fe044e3e5f8e08f3161a742e0a5d8 Mon Sep 17 00:00:00 2001 From: yyc12345 Date: Mon, 19 Oct 2026 21:30:00 +0800 Subject: [PATCH] build: raise minimum Qt version to 6.8 and drop pre-6.8 fallbacks --- CMakeLists.txt | 2 +- app/graphicsscene.cpp | 9 +-------- app/graphicsview.cpp | 17 +---------------- app/mainwindow.cpp | 6 +----- app/navigatorview.cpp | 7 +------ app/settingsdialog.cpp | 16 ++++------------ 6 files changed, 9 insertions(+), 48 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 1b10a6d..1464d22 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -20,7 +20,7 @@ set (CMAKE_AUTOUIC ON) find_package(QT NAMES Qt6 REQUIRED COMPONENTS Core) -set (QT_MINIMUM_VERSION "6.5") +set (QT_MINIMUM_VERSION "6.8") find_package(Qt${QT_VERSION_MAJOR} ${QT_MINIMUM_VERSION} REQUIRED COMPONENTS Widgets Svg SvgWidgets LinguistTools diff --git a/app/graphicsscene.cpp b/app/graphicsscene.cpp index 3ea78a5..67475a3 100644 --- a/app/graphicsscene.cpp +++ b/app/graphicsscene.cpp @@ -21,17 +21,12 @@ static const QColor& ColorSchemaToTextForeground(Qt::ColorScheme colorScheme) { // YYC MARK: - // If we are using Windows 10 and lower system or Qt which do not support "Windows 11" - // theme (lower than Qt 6.7), we should only support light mode. + // If we are using Windows 10 and lower system, we should only support light mode. // Because Qt's dark-mode-aware "Windows 11" theme is only well-supported on Windows 11. #if defined(Q_OS_WIN) -#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0) - colorScheme = Qt::ColorScheme::Light; -#else if (QOperatingSystemVersion::current() < QOperatingSystemVersion::Windows11) { colorScheme = Qt::ColorScheme::Light; } -#endif // QT_VERSION < QT_VERSION_CHECK(6, 7, 0) #endif // defined(Q_OS_WIN) switch (colorScheme) { @@ -164,11 +159,9 @@ void GraphicsScene::showSvg(const QString &filepath) this->clear(); QGraphicsSvgItem * svgItem = new QGraphicsSvgItem(); QSvgRenderer * render = new QSvgRenderer(svgItem); -#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) if (Settings::instance()->svgTiny12Only()) { render->setOptions(QtSvg::Tiny12FeaturesOnly); } -#endif // QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) render->load(filepath); svgItem->setSharedRenderer(render); this->addItem(svgItem); diff --git a/app/graphicsview.cpp b/app/graphicsview.cpp index 976fbb1..7271509 100644 --- a/app/graphicsview.cpp +++ b/app/graphicsview.cpp @@ -57,7 +57,6 @@ void GraphicsView::showFileFromPath(const QString &filePath) } else if (!imageReader.canRead()) { showText(tr("Image data is invalid or currently unsupported")); } else { -#if QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) QImage && img = imageReader.read(); if (img.isNull()) { showText(tr("Image data is invalid or currently unsupported")); @@ -68,15 +67,6 @@ void GraphicsView::showFileFromPath(const QString &filePath) img.setDevicePixelRatio(devicePixelRatioF()); showImage(img); } -#else - QPixmap && pixmap = QPixmap::fromImageReader(&imageReader); - if (pixmap.isNull()) { - showText(tr("Image data is invalid or currently unsupported")); - } else { - pixmap.setDevicePixelRatio(devicePixelRatioF()); - showImage(pixmap); - } -#endif // QT_VERSION >= QT_VERSION_CHECK(6, 8, 0) } } } @@ -366,17 +356,12 @@ QTransform GraphicsView::resetScale(const QTransform & orig) void GraphicsView::updateStyle(Qt::ColorScheme colorScheme) { // YYC MARK: - // If we are using Windows 10 and lower system or Qt which do not support "Windows 11" - // theme (lower than Qt 6.7), we should only support light mode. + // If we are using Windows 10 and lower system, we should only support light mode. // Because Qt's dark-mode-aware "Windows 11" theme is only well-supported on Windows 11. #if defined(Q_OS_WIN) -#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0) - colorScheme = Qt::ColorScheme::Light; -#else if (QOperatingSystemVersion::current() < QOperatingSystemVersion::Windows11) { colorScheme = Qt::ColorScheme::Light; } -#endif // QT_VERSION < QT_VERSION_CHECK(6, 7, 0) #endif // defined(Q_OS_WIN) switch (colorScheme) { diff --git a/app/mainwindow.cpp b/app/mainwindow.cpp index e9bd138..30188a4 100644 --- a/app/mainwindow.cpp +++ b/app/mainwindow.cpp @@ -257,11 +257,7 @@ void MainWindow::galleryCurrent(bool fromFileWatcher) QStringList MainWindow::supportedImageFormats() { - QStringList formatFilters { -#if QT_VERSION < QT_VERSION_CHECK(6, 8, 0) - QStringLiteral("*.jfif") -#endif // QT_VERSION < QT_VERSION_CHECK(6, 8, 0) - }; + QStringList formatFilters; for (const QByteArray &item : QImageReader::supportedImageFormats()) { formatFilters.append(QStringLiteral("*.") % QString::fromLocal8Bit(item)); } diff --git a/app/navigatorview.cpp b/app/navigatorview.cpp index d7caf5a..15b03bb 100644 --- a/app/navigatorview.cpp +++ b/app/navigatorview.cpp @@ -43,17 +43,12 @@ void NavigatorView::updateMainViewportRegion() void NavigatorView::updateStyle(Qt::ColorScheme colorScheme) { // YYC MARK: - // If we are using Windows 10 and lower system or Qt which do not support "Windows 11" - // theme (lower than Qt 6.7), we should only support light mode. + // If we are using Windows 10 and lower system, we should only support light mode. // Because Qt's dark-mode-aware "Windows 11" theme is only well-supported on Windows 11. #if defined(Q_OS_WIN) -#if QT_VERSION < QT_VERSION_CHECK(6, 7, 0) - colorScheme = Qt::ColorScheme::Light; -#else if (QOperatingSystemVersion::current() < QOperatingSystemVersion::Windows11) { colorScheme = Qt::ColorScheme::Light; } -#endif // QT_VERSION < QT_VERSION_CHECK(6, 7, 0) #endif // defined(Q_OS_WIN) switch (colorScheme) { diff --git a/app/settingsdialog.cpp b/app/settingsdialog.cpp index 7011f54..f871383 100644 --- a/app/settingsdialog.cpp +++ b/app/settingsdialog.cpp @@ -98,27 +98,19 @@ SettingsDialog::SettingsDialog(QWidget *parent) Qt::HighDpiScaleFactorRoundingPolicy hidpi = settings->hiDpiScaleFactorBehavior(); ui->m_hiDpiRoundingPolicyBehavior->setCurrentIndex(HIDPI_OPTIONS.to_index(hidpi)); -#if QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) -# define QCHECKBOX_CHECKSTATECHANGED QCheckBox::checkStateChanged -# define QT_CHECKSTATE Qt::CheckState -#else -# define QCHECKBOX_CHECKSTATECHANGED QCheckBox::stateChanged -# define QT_CHECKSTATE int -#endif // QT_VERSION >= QT_VERSION_CHECK(6, 7, 0) - - connect(ui->m_showNavigatorView, &QCHECKBOX_CHECKSTATECHANGED, this, [ = ](QT_CHECKSTATE state){ + connect(ui->m_showNavigatorView, &QCheckBox::checkStateChanged, this, [ = ](Qt::CheckState state){ Settings::instance()->setShowNavigatorView(state == Qt::Checked); }); - connect(ui->m_useLightCheckerboard, &QCHECKBOX_CHECKSTATECHANGED, this, [ = ](QT_CHECKSTATE state){ + connect(ui->m_useLightCheckerboard, &QCheckBox::checkStateChanged, this, [ = ](Qt::CheckState state){ Settings::instance()->setUseLightCheckerboard(state == Qt::Checked); }); - connect(ui->m_loopGallery, &QCHECKBOX_CHECKSTATECHANGED, this, [ = ](QT_CHECKSTATE state){ + connect(ui->m_loopGallery, &QCheckBox::checkStateChanged, this, [ = ](Qt::CheckState state){ Settings::instance()->setLoopGallery(state == Qt::Checked); }); - connect(ui->m_svgTiny12Only, &QCHECKBOX_CHECKSTATECHANGED, this, [ = ](QT_CHECKSTATE state){ + connect(ui->m_svgTiny12Only, &QCheckBox::checkStateChanged, this, [ = ](Qt::CheckState state){ Settings::instance()->setSvgTiny12Only(state == Qt::Checked); });