Unverified Commit 72a8c494 authored by Nick Cao's avatar Nick Cao Committed by GitHub
Browse files

Merge pull request #222311 from NickCao/qt6-vf

qt6.qtbase: add patch to fix handling of variable fonts
parents 165a7c6e f4385d60
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -488,6 +488,7 @@ in {
  nomad = handleTest ./nomad.nix {};
  non-default-filesystems = handleTest ./non-default-filesystems.nix {};
  noto-fonts = handleTest ./noto-fonts.nix {};
  noto-fonts-cjk-qt-default-weight = handleTest ./noto-fonts-cjk-qt-default-weight.nix {};
  novacomd = handleTestOn ["x86_64-linux"] ./novacomd.nix {};
  nscd = handleTest ./nscd.nix {};
  nsd = handleTest ./nsd.nix {};
+30 −0
Original line number Diff line number Diff line
import ./make-test-python.nix ({ pkgs, lib, ... }: {
  name = "noto-fonts-cjk-qt";
  meta.maintainers = with lib.maintainers; [ oxalica ];

  nodes.machine = {
    imports = [ ./common/x11.nix ];
    fonts = {
      enableDefaultFonts = false;
      fonts = [ pkgs.noto-fonts-cjk-sans ];
    };
  };

  testScript =
    let
      script = pkgs.writers.writePython3 "qt-default-weight" {
        libraries = [ pkgs.python3Packages.pyqt6 ];
      } ''
        from PyQt6.QtWidgets import QApplication
        from PyQt6.QtGui import QFont, QRawFont

        app = QApplication([])
        f = QRawFont.fromFont(QFont("Noto Sans CJK SC", 20))

        assert f.styleName() == "Regular", f.styleName()
      '';
    in ''
      machine.wait_for_x()
      machine.succeed("${script}")
    '';
})
+1 −0
Original line number Diff line number Diff line
@@ -59,6 +59,7 @@ let
          ./patches/qtbase-qmake-mkspecs-mac.patch
          ./patches/qtbase-qmake-pkg-config.patch
          ./patches/qtbase-tzdir.patch
          ./patches/qtbase-variable-fonts.patch
          # Remove symlink check causing build to bail out and fail.
          # https://gitlab.kitware.com/cmake/cmake/-/issues/23251
          (fetchpatch {
+26 −0
Original line number Diff line number Diff line
From 9ba9c690fb16188ff524b53def104e68e45cf5c3 Mon Sep 17 00:00:00 2001
From: Nick Cao <nickcao@nichi.co>
Date: Tue, 21 Mar 2023 15:48:49 +0800
Subject: [PATCH] Deal with a font face at index 0 as Regular for Variable
 fonts

Reference: https://bugreports.qt.io/browse/QTBUG-111994
---
 src/gui/text/unix/qfontconfigdatabase.cpp | 1 +
 1 file changed, 1 insertion(+)

diff --git a/src/gui/text/unix/qfontconfigdatabase.cpp b/src/gui/text/unix/qfontconfigdatabase.cpp
index 9b60cf2963..5a42ef6a68 100644
--- a/src/gui/text/unix/qfontconfigdatabase.cpp
+++ b/src/gui/text/unix/qfontconfigdatabase.cpp
@@ -554,6 +554,7 @@ void QFontconfigDatabase::populateFontDatabase()
             FcObjectSetAdd(os, *p);
             ++p;
         }
+        FcPatternAddBool(pattern, FC_VARIABLE, FcFalse);
         fonts = FcFontList(nullptr, pattern, os);
         FcObjectSetDestroy(os);
         FcPatternDestroy(pattern);
-- 
2.39.2