From d78f9f030b5dc197c90ef279cfa1f69214420d06 Mon Sep 17 00:00:00 2001 From: Thomas Tuegel Date: Fri, 2 Feb 2018 06:20:32 -0600 Subject: 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 +- pkgs/desktops/plasma-5/plasma-integration.nix | 17 --------------- .../plasma-5/plasma-integration/D9070.patch | 24 ++++++++++++++++++++++ .../plasma-5/plasma-integration/default.nix | 24 ++++++++++++++++++++++ 4 files changed, 49 insertions(+), 18 deletions(-) delete mode 100644 pkgs/desktops/plasma-5/plasma-integration.nix create mode 100644 pkgs/desktops/plasma-5/plasma-integration/D9070.patch create mode 100644 pkgs/desktops/plasma-5/plasma-integration/default.nix (limited to 'pkgs/desktops/plasma-5') 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.nix b/pkgs/desktops/plasma-5/plasma-integration.nix deleted file mode 100644 index f69644287624..000000000000 --- a/pkgs/desktops/plasma-5/plasma-integration.nix +++ /dev/null @@ -1,17 +0,0 @@ -{ - mkDerivation, - extra-cmake-modules, - breeze-qt5, kconfig, kconfigwidgets, kiconthemes, kio, knotifications, - kwayland, libXcursor, qtquickcontrols2 -}: - -# TODO: install Noto Sans and Oxygen Mono fonts with plasma-integration - -mkDerivation { - name = "plasma-integration"; - nativeBuildInputs = [ extra-cmake-modules ]; - buildInputs = [ - breeze-qt5 kconfig kconfigwidgets kiconthemes kio knotifications kwayland - libXcursor qtquickcontrols2 - ]; -} 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/default.nix b/pkgs/desktops/plasma-5/plasma-integration/default.nix new file mode 100644 index 000000000000..d33ecf050242 --- /dev/null +++ b/pkgs/desktops/plasma-5/plasma-integration/default.nix @@ -0,0 +1,24 @@ +{ + mkDerivation, + extra-cmake-modules, + breeze-qt5, kconfig, kconfigwidgets, kiconthemes, kio, knotifications, + kwayland, libXcursor, qtquickcontrols2 +}: + +# TODO: install Noto Sans and Oxygen Mono fonts with plasma-integration + +mkDerivation { + name = "plasma-integration"; + nativeBuildInputs = [ extra-cmake-modules ]; + buildInputs = [ + 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"; +} -- cgit 1.4.1