Skip to content

Fix Windows CI build and start-page theme colors (Qt 6.7.3)#976

Open
Nicolas01 wants to merge 6 commits into
Murmele:masterfrom
Nicolas01:fix/qt-version-windows-build
Open

Fix Windows CI build and start-page theme colors (Qt 6.7.3)#976
Nicolas01 wants to merge 6 commits into
Murmele:masterfrom
Nicolas01:fix/qt-version-windows-build

Conversation

@Nicolas01

@Nicolas01 Nicolas01 commented Jun 15, 2026

Copy link
Copy Markdown

Problem

The Windows CI build (build win64) had been failing on master for a long stretch, while Linux and macOS passed. The failure was a Qt header error during compilation of src/cli/Installer.cpp:

qvarlengtharray.h(963): error C3861: 'stdext': identifier not found
qvarlengtharray.h(963): error C2065: 'stdext': undeclared identifier

Root cause

The CI matrix pinned Qt 6.6.0 but runs on windows-latest, which GitHub rolled forward to the VS2026 / Windows Server 2025 image. Recent MSVC STL versions removed the Microsoft stdext::* array-iterator extension that Qt 6.6.0's qvarlengtharray.h still references under Q_CC_MSVC. Only MSVC enters that code path, which is why Linux (GCC) and macOS (clang) were unaffected. This is environment bit-rot, not a code regression.

Fix

Bump the CI Qt version 6.6.0 -> 6.7.3 (the stdext usage was removed from Qt in 6.6.2). Validating that bump on a fork surfaced several further incompatibilities with Qt 6.7 and the current runner images, each fixed here:

  1. Windows stdext build error — bump Qt to 6.7.3.
  2. Linux Qt install — aqt renamed the desktop arch in 6.7; gcc_64 -> linux_gcc_64.
  3. Windows Configure failureQWindowsVistaStylePlugin was renamed to QModernWindowsStylePlugin in Qt 6.7. Also made the pack/ plugin loop skip a missing target on all platforms (previously it only continue()d on UNIX/APPLE, so a missing target hard-failed configure on Windows).
  4. Linux Configure failureQt6PrintSupport now needs CUPS on Ubuntu 24.04; install libcups2-dev.
  5. Linux AppImage — aqt downloads the linux_gcc_64 package but extracts it to gcc_64, so the hand-built QTDIR pointed at a nonexistent dir; use the QT_ROOT_DIR exported by install-qt-action.
  6. publish jobgh release failed with not a git repository because the job has no checkout; pass --repo ${{ github.repository }}.

Windows theme regression fix

With the Windows build restored, the produced app showed unreadable white-on-white text on the start page (the "theme bug" that previously led to the Windows .exe being dropped from releases).

Root cause: on Windows, Application sets an explicit base palette (setPalette(style()->standardPalette())) before installing the theme style. Qt then treats that palette as user-defined and does not re-polish it on setStyle(), so the theme's palette remaps (notably BrightText, used by the start-page buttons) are lost. The start page draws its button text with palette(bright-text) over a Base (white) background, giving white-on-white.

Fix: after setStyle(), polish the application palette through the style ourselves and re-apply it (Windows only). This re-runs each theme's polish(), restoring the correct colors for all themes (System, Default, Dark). Verified visually on a packaged Windows build across the three themes.

Validation

Validated on a fork by pushing to its master (which exercises the full matrix incl. publish). All builds are green: Linux, macOS, Windows, Flatpak, Formatting, with 27/27 unit tests passing on Linux. The packaged Windows app was extracted and run to confirm the start page renders correctly in all three themes.

@Nicolas01 Nicolas01 changed the title Fix Windows CI build by bumping Qt to 6.7.3 Fix CI: bump Qt to 6.7.3 and repair Qt 6.7 / runner-image breakage Jun 15, 2026
@Nicolas01 Nicolas01 force-pushed the fix/qt-version-windows-build branch from 1f8121e to db5e00e Compare June 15, 2026 22:00
@Nicolas01 Nicolas01 changed the title Fix CI: bump Qt to 6.7.3 and repair Qt 6.7 / runner-image breakage Fix Windows CI build and start-page theme colors (Qt 6.7.3) Jun 16, 2026
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant