diff options
author | gnidorah <gnidorah@users.noreply.github.com> | 2017-12-22 17:39:37 +0300 |
---|---|---|
committer | gnidorah <gnidorah@users.noreply.github.com> | 2017-12-24 12:54:19 +0300 |
commit | 998f9578f66be622f772bc59ba92a4aca9c1c34a (patch) | |
tree | ba54cbac239f69720ded534ed6c6da7b35a75f4c /pkgs | |
parent | 3c80e17ee166ea47c27b5a700942eb86af20a97d (diff) | |
download | nixlib-998f9578f66be622f772bc59ba92a4aca9c1c34a.tar nixlib-998f9578f66be622f772bc59ba92a4aca9c1c34a.tar.gz nixlib-998f9578f66be622f772bc59ba92a4aca9c1c34a.tar.bz2 nixlib-998f9578f66be622f772bc59ba92a4aca9c1c34a.tar.lz nixlib-998f9578f66be622f772bc59ba92a4aca9c1c34a.tar.xz nixlib-998f9578f66be622f772bc59ba92a4aca9c1c34a.tar.zst nixlib-998f9578f66be622f772bc59ba92a4aca9c1c34a.zip |
kdeApplications.grantleetheme: fix build
Diffstat (limited to 'pkgs')
-rw-r--r-- | pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch | 144 |
1 files changed, 71 insertions, 73 deletions
diff --git a/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch b/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch index 6275bb84c17b..fe8b15febf2e 100644 --- a/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch +++ b/pkgs/applications/kde/grantleetheme/grantlee-merge-theme-dirs.patch @@ -11,11 +11,72 @@ Index: grantleetheme-17.04.0/src/grantleetheme_p.h QString author; QString email; -Index: grantleetheme-17.04.0/src/grantleetheme.cpp +Index: grantleetheme-17.04.0/src/grantleetheme.h +=================================================================== +--- grantleetheme-17.04.0.orig/src/grantleetheme.h ++++ grantleetheme-17.04.0/src/grantleetheme.h +@@ -50,11 +50,14 @@ public: + QStringList displayExtraVariables() const; + QString dirName() const; + QString absolutePath() const; ++ QStringList absolutePaths() const; + QString author() const; + QString authorEmail() const; + + QString render(const QString &templateName, const QVariantHash &data, const QByteArray &applicationDomain = QByteArray()); + ++ void addThemeDir(const QString&); ++ + static void addPluginPath(const QString &path); + + private: +Index: grantleetheme-17.04.0/src/grantleethememanager.cpp =================================================================== ---- grantleetheme-17.04.0.orig/src/grantleetheme.cpp -+++ grantleetheme-17.04.0/src/grantleetheme.cpp -@@ -45,7 +45,7 @@ ThemePrivate::ThemePrivate(const ThemePr +--- grantleetheme-17.04.0.orig/src/grantleethememanager.cpp ++++ grantleetheme-17.04.0/src/grantleethememanager.cpp +@@ -142,25 +142,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<QString, GrantleeTheme::Theme>::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()"<<theme.name(); + } + } + watch->addDir(directory); +@@ -374,7 +367,7 @@ QString ThemeManager::pathFromThemes(con + GrantleeTheme::Theme theme = loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName); + if (theme.isValid()) { + if (dirName == themeName) { +- return theme.absolutePath(); ++ return theme.absolutePaths().first(); + } + } + } +--- src/grantleetheme.cpp.orig 2017-12-22 16:11:39.863598126 +0300 ++++ ./src/grantleetheme.cpp 2017-12-22 16:16:14.045664607 +0300 +@@ -46,7 +46,7 @@ ThemePrivate::ThemePrivate(const ThemePr , description(other.description) , name(other.name) , dirName(other.dirName) @@ -24,7 +85,7 @@ Index: grantleetheme-17.04.0/src/grantleetheme.cpp , author(other.author) , email(other.email) , loader(other.loader) -@@ -63,12 +63,15 @@ void ThemePrivate::setupEngine() +@@ -64,12 +64,15 @@ void ThemePrivate::setupEngine() void ThemePrivate::setupLoader() { @@ -38,13 +99,13 @@ Index: grantleetheme-17.04.0/src/grantleetheme.cpp + templateDirs << dir.absolutePath(); + } - loader = QSharedPointer<Grantlee::FileSystemTemplateLoader>::create(); + loader = QSharedPointer<GrantleeTheme::QtResourceTemplateLoader>::create(); - loader->setTemplateDirs({ dir.absolutePath() }); + loader->setTemplateDirs(templateDirs); loader->setTheme(dirName); if (!sEngine) { -@@ -122,7 +123,7 @@ Theme::Theme(const QString &themePath, c +@@ -121,7 +124,7 @@ Theme::Theme(const QString &themePath, c KConfigGroup group(&config, QStringLiteral("Desktop Entry")); if (group.isValid()) { d->dirName = dirName; @@ -53,7 +114,7 @@ Index: grantleetheme-17.04.0/src/grantleetheme.cpp d->name = group.readEntry("Name", QString()); d->description = group.readEntry("Description", QString()); d->themeFileName = group.readEntry("FileName", QString()); -@@ -141,7 +142,7 @@ Theme::~Theme() +@@ -140,7 +143,7 @@ Theme::~Theme() bool Theme::operator==(const Theme &other) const { @@ -62,7 +123,7 @@ Index: grantleetheme-17.04.0/src/grantleetheme.cpp } Theme &Theme::operator=(const Theme &other) -@@ -185,7 +186,12 @@ QString Theme::dirName() const +@@ -184,7 +187,12 @@ QString Theme::dirName() const QString Theme::absolutePath() const { @@ -76,7 +137,7 @@ Index: grantleetheme-17.04.0/src/grantleetheme.cpp } QString Theme::author() const -@@ -224,6 +230,13 @@ QString Theme::render(const QString &tem +@@ -223,6 +231,13 @@ QString Theme::render(const QString &tem return result; } @@ -90,66 +151,3 @@ Index: grantleetheme-17.04.0/src/grantleetheme.cpp void Theme::addPluginPath(const QString &path) { if (!ThemePrivate::sEngine) { -Index: grantleetheme-17.04.0/src/grantleetheme.h -=================================================================== ---- grantleetheme-17.04.0.orig/src/grantleetheme.h -+++ grantleetheme-17.04.0/src/grantleetheme.h -@@ -50,11 +50,14 @@ public: - QStringList displayExtraVariables() const; - QString dirName() const; - QString absolutePath() const; -+ QStringList absolutePaths() const; - QString author() const; - QString authorEmail() const; - - QString render(const QString &templateName, const QVariantHash &data, const QByteArray &applicationDomain = QByteArray()); - -+ void addThemeDir(const QString&); -+ - static void addPluginPath(const QString &path); - - private: -Index: grantleetheme-17.04.0/src/grantleethememanager.cpp -=================================================================== ---- grantleetheme-17.04.0.orig/src/grantleethememanager.cpp -+++ grantleetheme-17.04.0/src/grantleethememanager.cpp -@@ -142,25 +142,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<QString, GrantleeTheme::Theme>::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()"<<theme.name(); - } - } - watch->addDir(directory); -@@ -374,7 +367,7 @@ QString ThemeManager::pathFromThemes(con - GrantleeTheme::Theme theme = loadTheme(dirIt.filePath(), dirName, defaultDesktopFileName); - if (theme.isValid()) { - if (dirName == themeName) { -- return theme.absolutePath(); -+ return theme.absolutePaths().first(); - } - } - } |