diff options
Diffstat (limited to 'media-sound/clementine/files/clementine-1.4.0_rc2-projectm-dir.patch')
-rw-r--r-- | media-sound/clementine/files/clementine-1.4.0_rc2-projectm-dir.patch | 53 |
1 files changed, 53 insertions, 0 deletions
diff --git a/media-sound/clementine/files/clementine-1.4.0_rc2-projectm-dir.patch b/media-sound/clementine/files/clementine-1.4.0_rc2-projectm-dir.patch new file mode 100644 index 000000000000..8f92766193d6 --- /dev/null +++ b/media-sound/clementine/files/clementine-1.4.0_rc2-projectm-dir.patch @@ -0,0 +1,53 @@ +Read visualisations from subdirs + +https://bugs.gentoo.org/917064 +https://github.com/clementine-player/Clementine/issues/7151 + +--- a/src/visualisations/projectmpresetmodel.cpp ++++ b/src/visualisations/projectmpresetmodel.cpp +@@ -27,22 +27,26 @@ + #endif + + #include <QDir> ++#include <QDirIterator> + #include <QtDebug> ++#include <set> + + ProjectMPresetModel::ProjectMPresetModel(ProjectMVisualisation* vis, + QObject* parent) + : QAbstractItemModel(parent), vis_(vis) { + // Find presets +- QDir preset_dir(vis_->preset_url()); +- QStringList presets( +- preset_dir.entryList(QStringList() << "*.milk" +- << "*.prjm", ++ QDirIterator it(vis_->preset_url(), ++ QStringList() << "*.milk" << "*.prjm", + QDir::Files | QDir::NoDotAndDotDot | QDir::Readable, +- QDir::Name | QDir::IgnoreCase)); ++ QDirIterator::Subdirectories); ++ std::set<std::pair<QString, QString>> files; ++ while (it.hasNext()) { ++ it.next(); ++ files.insert({it.filePath(), it.fileName()}); ++ } + +- for (const QString& filename : presets) { +- all_presets_ << Preset(preset_dir.absoluteFilePath(filename), filename, +- false); ++ for (const auto& [filePath, fileName] : files) { ++ all_presets_ << Preset(filePath, fileName, false); + } + } + +--- a/src/visualisations/projectmvisualisation.cpp ++++ b/src/visualisations/projectmvisualisation.cpp +@@ -93,7 +93,7 @@ void ProjectMVisualisation::InitProjectM() { + if (!QFile::exists(path)) continue; + + // Don't use empty directories +- if (QDir(path).entryList(QDir::Files | QDir::NoDotAndDotDot).isEmpty()) ++ if (QDir(path).entryList(QDir::Dirs | QDir::Files | QDir::NoDotAndDotDot).isEmpty()) + continue; + + preset_path = path; |