From 814e7ee7621b54881a3fe95577a1fb96022eee92 Mon Sep 17 00:00:00 2001 From: Nicolas LLOBERA Date: Mon, 15 Jun 2026 20:27:06 +0200 Subject: [PATCH 1/6] Bump CI Qt to 6.7.3 to fix Windows build (stdext removed in recent MSVC) --- .github/workflows/build.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index e3eb3af0c..1649b1c46 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -120,7 +120,7 @@ jobs: fail-fast: false matrix: qt: - - version: 6.6.0 + - version: 6.7.3 env: - name: linux From 0668cbed68e9ff981568204624b2cd3749542de7 Mon Sep 17 00:00:00 2001 From: Nicolas LLOBERA Date: Mon, 15 Jun 2026 21:09:51 +0200 Subject: [PATCH 2/6] Fix Qt 6.7 packaging: linux_gcc_64 arch and renamed Windows style plugin --- .github/workflows/build.yml | 2 +- pack/CMakeLists.txt | 6 ++---- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 1649b1c46..91ed45f66 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -127,7 +127,7 @@ jobs: os: ubuntu-latest ninja_platform: linux qt_platform: linux - qt_arch: gcc_64 + qt_arch: linux_gcc_64 openssl_arch: linux-x86_64 ld_library_arch: linux-x86-64 cmake_flags: "-DGENERATE_APPDATA=ON -DCMAKE_INSTALL_PREFIX=/usr -DENABLE_UPDATE_OVER_GUI=OFF -DUSE_SSH=ON" diff --git a/pack/CMakeLists.txt b/pack/CMakeLists.txt index d39e4977f..da279bb9f 100644 --- a/pack/CMakeLists.txt +++ b/pack/CMakeLists.txt @@ -20,7 +20,7 @@ if(APPLE) set(QT_PLUGINS ${QT_PLUGINS} QCocoaIntegrationPlugin QMacStylePlugin) elseif(GITTYUP_PACK_WIN64) set(QT_PLUGINS ${QT_PLUGINS} QWindowsIntegrationPlugin - QWindowsVistaStylePlugin) + QModernWindowsStylePlugin) else() set(QT_PLUGINS ${QT_PLUGINS} QXcbIntegrationPlugin QComposePlatformInputContextPlugin) @@ -39,9 +39,7 @@ if(FLATPAK) elseif(NOT USE_SYSTEM_QT) foreach(QT_PLUGIN ${QT_PLUGINS}) if(NOT TARGET Qt6::${QT_PLUGIN}) - if(UNIX OR APPLE) - continue() - endif() + continue() endif() get_target_property(PLUGIN Qt6::${QT_PLUGIN} LOCATION_${CMAKE_BUILD_TYPE}) From 2463ebef91058102f61adfb8402cc303ba4c0e0f Mon Sep 17 00:00:00 2001 From: Nicolas LLOBERA Date: Mon, 15 Jun 2026 21:52:47 +0200 Subject: [PATCH 3/6] Install libcups2-dev on Linux CI for Qt 6.7 PrintSupport --- .github/workflows/build.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 91ed45f66..3e3ecd9be 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -186,6 +186,7 @@ jobs: sudo apt-get update sudo apt-get -y install libssh2-1 sudo apt-get -y install libssh2-1-dev + sudo apt-get -y install libcups2-dev - name: Install Qt uses: jurplel/install-qt-action@v4.3.0 From 16a1d6370aeac37ef2f3c817dd89cbfe34b2890f Mon Sep 17 00:00:00 2001 From: Nicolas LLOBERA Date: Mon, 15 Jun 2026 22:04:43 +0200 Subject: [PATCH 4/6] Use QT_ROOT_DIR for AppImage QTDIR (aqt extracts linux_gcc_64 to gcc_64) --- .github/workflows/build.yml | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 3e3ecd9be..2f99a171b 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -313,7 +313,10 @@ jobs: mkdir -p AppDir DESTDIR=AppDir ninja install - export QTDIR=$RUNNER_WORKSPACE/Qt/${{ matrix.qt.version }}/${{ matrix.env.qt_arch }} + # install-qt-action exports QT_ROOT_DIR to the actual install dir. + # aqt downloads the "linux_gcc_64" package but extracts it to "gcc_64", + # so the arch id and the on-disk dir name differ; prefer QT_ROOT_DIR. + export QTDIR=${QT_ROOT_DIR:-$RUNNER_WORKSPACE/Qt/${{ matrix.qt.version }}/${{ matrix.env.qt_arch }}} export QT_ROOT_DIR=$QTDIR rm -rf ./AppDir/usr/include/ From db5e00ee91e17888d07d1c1cd60be75a24999aa5 Mon Sep 17 00:00:00 2001 From: Nicolas LLOBERA Date: Mon, 15 Jun 2026 23:02:29 +0200 Subject: [PATCH 5/6] Pass --repo to gh release so publish works without a git checkout --- .github/workflows/build.yml | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 2f99a171b..f381491c3 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -386,14 +386,15 @@ jobs: echo "No Flatpak or AppImage assets to upload." exit 1 fi - if ! gh release view development >/dev/null 2>&1; then + if ! gh release view development --repo "${{ github.repository }}" >/dev/null 2>&1; then gh release create development \ + --repo "${{ github.repository }}" \ --prerelease \ --title "Latest Build (Development)" \ --target "${{ github.sha }}" \ "${files[@]}" else - gh release upload development "${files[@]}" --clobber + gh release upload development "${files[@]}" --repo "${{ github.repository }}" --clobber fi - name: Update GitHub release (version tag) @@ -411,13 +412,14 @@ jobs: echo "No Flatpak or AppImage assets to upload." exit 1 fi - if ! gh release view "$TAG" >/dev/null 2>&1; then + if ! gh release view "$TAG" --repo "${{ github.repository }}" >/dev/null 2>&1; then gh release create "$TAG" \ + --repo "${{ github.repository }}" \ --title "Gittyup Release ${{ steps.version.outputs.VERSION }}" \ --target "${{ github.sha }}" \ "${files[@]}" else - gh release upload "$TAG" "${files[@]}" --clobber + gh release upload "$TAG" "${files[@]}" --repo "${{ github.repository }}" --clobber fi # needed otherwise the docs folder is not available From 567925b9a63100d5dbdd41bc9d2e9e37dbfdf6f6 Mon Sep 17 00:00:00 2001 From: Nicolas LLOBERA Date: Tue, 16 Jun 2026 18:30:45 +0200 Subject: [PATCH 6/6] Re-polish palette through style on Windows so theme colors apply --- src/app/Application.cpp | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/src/app/Application.cpp b/src/app/Application.cpp index 06c3764af..4c0e0646e 100644 --- a/src/app/Application.cpp +++ b/src/app/Application.cpp @@ -29,6 +29,7 @@ #include #include #include +#include #include #include #include @@ -162,6 +163,18 @@ Application::Application(int &argc, char **argv, bool haltOnParseError) setStyle(mTheme->style()); setStyleSheet(mTheme->styleSheet()); +#if defined(Q_OS_WIN) + // Qt normally re-polishes the application palette through the style on + // setStyle(), but the explicit base palette set above is treated as + // user-defined and is not re-polished, dropping the theme's color remaps + // (e.g. BrightText, which leaves white-on-white text on the start page). + // Polish the palette through the style ourselves so all themes render + // correctly. + QPalette palette = QApplication::palette(); + style()->polish(palette); + QApplication::setPalette(palette); +#endif + #if defined(Q_OS_WIN) // Set default font style and hinting. QFont font = QApplication::font();