From d78f9f030b5dc197c90ef279cfa1f69214420d06 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 2 Feb 2018 06:20:32 -0600 Subject: [PATCH] plasma-integration: Upstream patch for Qt 5.8 font style names Since Qt 5.8, font style names are handled in a way that prevents alternate styles (bold, italic, etc.) from being selected for user interface fonts. See also: https://phabricator.kde.org/D9070 --- pkgs/desktops/plasma-5/default.nix | 2 +- .../plasma-5/plasma-integration/D9070.patch | 24 +++++++++++++++++++ .../default.nix} | 7 ++++++ 3 files changed, 32 insertions(+), 1 deletion(-) create mode 100644 pkgs/desktops/plasma-5/plasma-integration/D9070.patch rename pkgs/desktops/plasma-5/{plasma-integration.nix => plasma-integration/default.nix} (66%) diff --git a/pkgs/desktops/plasma-5/default.nix b/pkgs/desktops/plasma-5/default.nix index 0972673b7b87..81f42a2adbe0 100644 --- a/pkgs/desktops/plasma-5/default.nix +++ b/pkgs/desktops/plasma-5/default.nix @@ -125,7 +125,7 @@ let milou = callPackage ./milou.nix {}; oxygen = callPackage ./oxygen.nix {}; plasma-desktop = callPackage ./plasma-desktop {}; - plasma-integration = callPackage ./plasma-integration.nix {}; + plasma-integration = callPackage ./plasma-integration {}; plasma-nm = callPackage ./plasma-nm {}; plasma-pa = callPackage ./plasma-pa.nix { inherit gconf; }; plasma-vault = callPackage ./plasma-vault {}; diff --git a/pkgs/desktops/plasma-5/plasma-integration/D9070.patch b/pkgs/desktops/plasma-5/plasma-integration/D9070.patch new file mode 100644 index 000000000000..66fef4712a7b --- /dev/null +++ b/pkgs/desktops/plasma-5/plasma-integration/D9070.patch @@ -0,0 +1,24 @@ +Index: src/platformtheme/kfontsettingsdata.cpp +=================================================================== +--- src/platformtheme/kfontsettingsdata.cpp ++++ src/platformtheme/kfontsettingsdata.cpp +@@ -70,15 +70,18 @@ + const KFontData &fontData = DefaultFontData[fontType]; + cachedFont = new QFont(QLatin1String(fontData.FontName), fontData.Size, fontData.Weight); + cachedFont->setStyleHint(fontData.StyleHint); +- cachedFont->setStyleName(QLatin1String(fontData.StyleName)); + + const KConfigGroup configGroup(mKdeGlobals, fontData.ConfigGroupKey); + QString fontInfo = configGroup.readEntry(fontData.ConfigKey, QString()); + + //If we have serialized information for this font, restore it + //NOTE: We are not using KConfig directly because we can't call QFont::QFont from here + if (!fontInfo.isEmpty()) { + cachedFont->fromString(fontInfo); ++ } else { ++ // set the canonical stylename here, where it cannot override ++ // user-specific font attributes if those do not include a stylename. ++ cachedFont->setStyleName(QLatin1String(fontData.StyleName)); + } + + mFonts[fontType] = cachedFont; diff --git a/pkgs/desktops/plasma-5/plasma-integration.nix b/pkgs/desktops/plasma-5/plasma-integration/default.nix similarity index 66% rename from pkgs/desktops/plasma-5/plasma-integration.nix rename to pkgs/desktops/plasma-5/plasma-integration/default.nix index f69644287624..d33ecf050242 100644 --- a/pkgs/desktops/plasma-5/plasma-integration.nix +++ b/pkgs/desktops/plasma-5/plasma-integration/default.nix @@ -14,4 +14,11 @@ mkDerivation { breeze-qt5 kconfig kconfigwidgets kiconthemes kio knotifications kwayland libXcursor qtquickcontrols2 ]; + patches = [ + # See also: https://phabricator.kde.org/D9070 + # ttuegel: The patch is checked into Nixpkgs because I could not get + # Phabricator to give me a stable link to it. + ./D9070.patch + ]; + patchFlags = "-p0"; }