From c8f87b418cac12c503a5d7b2cb0487648a995b64 Mon Sep 17 00:00:00 2001 From: Petr Hodina Date: Tue, 21 Jun 2022 04:56:08 +0200 Subject: [PATCH v4 20/73] gnu: grantleetheme: Update to 21.12.3. * gnu/packages/kde.scm (grantleetheme): Update to 21.12.3. * gnu/local.mk: Remove patch. * gnu/packages/patches/grantlee-merge-theme-dirs.patch: Remove file. diff --git a/gnu/local.mk b/gnu/local.mk index 4c93bd07bf..cb270aae6f 100644 --- a/gnu/local.mk +++ b/gnu/local.mk @@ -1233,7 +1233,6 @@ dist_patch_DATA = \ %D%/packages/patches/gpm-glibc-2.26.patch \ %D%/packages/patches/gpodder-disable-updater.patch \ %D%/packages/patches/gpsbabel-fix-i686-test.patch \ - %D%/packages/patches/grantlee-merge-theme-dirs.patch \ %D%/packages/patches/grep-timing-sensitive-test.patch \ %D%/packages/patches/grfcodec-gcc-compat.patch \ %D%/packages/patches/gromacs-tinyxml2.patch \ diff --git a/gnu/packages/kde.scm b/gnu/packages/kde.scm index aa742df80f..949a2cf44c 100644 --- a/gnu/packages/kde.scm +++ b/gnu/packages/kde.scm @@ -124,15 +124,14 @@ (define-public baloo-widgets (define-public grantleetheme (package (name "grantleetheme") - (version "20.04.1") + (version "21.12.3") (source (origin (method url-fetch) (uri (string-append "mirror://kde/stable/release-service/" version "/src/grantleetheme-" version ".tar.xz")) (sha256 - (base32 "0gabc5cb0sf00s7m5v2jnq55qsrdbrq6nqd15y1i15p788zifsjx")) - (patches (search-patches "grantlee-merge-theme-dirs.patch")))) + (base32 "1w83slbkj2y1wk78srq2k95ybs66sb4mbaa0zm7fl9pkwhqxbnb7")))) (build-system qt-build-system) (arguments `(#:tests? #f)) ; unexpected error in the test suite. (native-inputs diff --git a/gnu/packages/patches/grantlee-merge-theme-dirs.patch b/gnu/packages/patches/grantlee-merge-theme-dirs.patch deleted file mode 100644 index 96a15a387b..0000000000 --- a/gnu/packages/patches/grantlee-merge-theme-dirs.patch +++ /dev/null @@ -1,163 +0,0 @@ -Taken from nixpkgs, see -grantleetheme: merge themes across multiple prefixes - - - -diff --git a/src/grantleetheme.cpp b/src/grantleetheme.cpp -index 27d5bc8..8d43140 100644 ---- a/src/grantleetheme.cpp -+++ b/src/grantleetheme.cpp -@@ -46,7 +46,7 @@ ThemePrivate::ThemePrivate(const ThemePrivate &other) - , description(other.description) - , name(other.name) - , dirName(other.dirName) -- , absolutePath(other.absolutePath) -+ , absolutePaths(other.absolutePaths) - , author(other.author) - , email(other.email) - , loader(other.loader) -@@ -64,12 +64,15 @@ void ThemePrivate::setupEngine() - - void ThemePrivate::setupLoader() - { -- // Get the parent dir with themes, we set the theme directory separately -- QDir dir(absolutePath); -- dir.cdUp(); -+ QStringList templateDirs; -+ for (const QString& path : absolutePaths) { -+ QDir dir(path); -+ dir.cdUp(); -+ templateDirs << dir.absolutePath(); -+ } - - loader = QSharedPointer::create(); -- loader->setTemplateDirs({ dir.absolutePath() }); -+ loader->setTemplateDirs(templateDirs); - loader->setTheme(dirName); - - if (!sEngine) { -@@ -121,7 +124,7 @@ Theme::Theme(const QString &themePath, const QString &dirName, const QString &de - KConfigGroup group(&config, QStringLiteral("Desktop Entry")); - if (group.isValid()) { - d->dirName = dirName; -- d->absolutePath = themePath; -+ d->absolutePaths = QStringList(themePath); - d->name = group.readEntry("Name", QString()); - d->description = group.readEntry("Description", QString()); - d->themeFileName = group.readEntry("FileName", QString()); -@@ -140,7 +143,7 @@ Theme::~Theme() - - bool Theme::operator==(const Theme &other) const - { -- return isValid() && other.isValid() && d->absolutePath == other.absolutePath(); -+ return isValid() && other.isValid() && d->absolutePaths == other.absolutePaths(); - } - - Theme &Theme::operator=(const Theme &other) -@@ -184,7 +187,15 @@ QString Theme::dirName() const - - QString Theme::absolutePath() const - { -- return d->absolutePath; -+ if (! d->absolutePaths.isEmpty()) { -+ return d->absolutePaths.first(); -+ }; -+ return QString(); -+} -+ -+QStringList Theme::absolutePaths() const -+{ -+ return d->absolutePaths; - } - - QString Theme::author() const -@@ -223,6 +231,13 @@ QString Theme::render(const QString &templateName, const QVariantHash &data, con - return result; - } - -+void Theme::addThemeDir(const QString& path) -+{ -+ QDir dir(path); -+ dir.cdUp(); -+ d->absolutePaths << dir.absolutePath(); -+} -+ - void Theme::addPluginPath(const QString &path) - { - if (!ThemePrivate::sEngine) { -diff --git a/src/grantleetheme.h b/src/grantleetheme.h -index a25c27b..be38299 100644 ---- a/src/grantleetheme.h -+++ b/src/grantleetheme.h -@@ -48,11 +48,14 @@ public: - Q_REQUIRED_RESULT QStringList displayExtraVariables() const; - Q_REQUIRED_RESULT QString dirName() const; - Q_REQUIRED_RESULT QString absolutePath() const; -+ Q_REQUIRED_RESULT QStringList absolutePaths() const; - Q_REQUIRED_RESULT QString author() const; - Q_REQUIRED_RESULT QString authorEmail() const; - - Q_REQUIRED_RESULT QString render(const QString &templateName, const QVariantHash &data, const QByteArray &applicationDomain = QByteArray()); - -+ void addThemeDir(const QString&); -+ - static void addPluginPath(const QString &path); - - private: -diff --git a/src/grantleetheme_p.h b/src/grantleetheme_p.h -index eb73dcb..00510e9 100644 ---- a/src/grantleetheme_p.h -+++ b/src/grantleetheme_p.h -@@ -43,7 +43,7 @@ public: - QString description; - QString name; - QString dirName; -- QString absolutePath; -+ QStringList absolutePaths; - QString author; - QString email; - -diff --git a/src/grantleethememanager.cpp b/src/grantleethememanager.cpp -index 606d717..dc99041 100644 ---- a/src/grantleethememanager.cpp -+++ b/src/grantleethememanager.cpp -@@ -125,25 +125,18 @@ public: - - for (const QString &directory : qAsConst(themesDirectories)) { - QDirIterator dirIt(directory, QStringList(), QDir::AllDirs | QDir::NoDotAndDotDot); -- QStringList alreadyLoadedThemeName; - while (dirIt.hasNext()) { - dirIt.next(); - const QString dirName = dirIt.fileName(); - GrantleeTheme::Theme theme = q->loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName); - if (theme.isValid()) { - QString themeName = theme.name(); -- if (alreadyLoadedThemeName.contains(themeName)) { -- int i = 2; -- const QString originalName(theme.name()); -- while (alreadyLoadedThemeName.contains(themeName)) { -- themeName = originalName + QStringLiteral(" (%1)").arg(i); -- ++i; -- } -- theme.d->name = themeName; -+ QMap::iterator i = themes.find(dirName); -+ if (i != themes.end()) { -+ i.value().addThemeDir(dirIt.filePath()); -+ } else { -+ themes.insert(dirName, theme); - } -- alreadyLoadedThemeName << themeName; -- themes.insert(dirName, theme); -- //qDebug()<<" theme.name()"<addDir(directory); -@@ -366,7 +359,7 @@ QString ThemeManager::pathFromThemes(const QString &themesRelativePath, const QS - GrantleeTheme::Theme theme = loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName); - if (theme.isValid()) { - if (dirName == themeName) { -- return theme.absolutePath(); -+ return theme.absolutePaths().first(); - } - } - } -- 2.37.0