diff --git a/wallpapers/image/image.cpp b/wallpapers/image/image.cpp --- a/wallpapers/image/image.cpp +++ b/wallpapers/image/image.cpp @@ -151,7 +151,7 @@ if (m_mode == SlideShow) { if (m_slidePaths.isEmpty()) { - m_slidePaths << QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("share/wallpapers"), QStandardPaths::LocateDirectory); + m_slidePaths << QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("wallpapers"), QStandardPaths::LocateDirectory); } startSlideshow(); @@ -357,11 +357,21 @@ return; } + const QStringList defaultWallpaperPaths = QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("wallpapers"), QStandardPaths::LocateDirectory); + m_slidePaths = slidePaths; m_slidePaths.removeAll(QString()); if (m_slidePaths.isEmpty()) { - m_slidePaths << QStandardPaths::locateAll(QStandardPaths::GenericDataLocation, QStringLiteral("share/wallpapers"), QStandardPaths::LocateDirectory); + m_slidePaths << defaultWallpaperPaths; + } else { + // Replace 'preferred://wallpaperlocations' with real paths + for (QString &path : m_slidePaths) { + if (path == QLatin1String("preferred://wallpaperlocations")) { + m_slidePaths.append(defaultWallpaperPaths); + m_slidePaths.removeAll(path); + } + } } if (m_mode == SlideShow) { diff --git a/wallpapers/image/slideshowpackage/contents/config/main.xml b/wallpapers/image/slideshowpackage/contents/config/main.xml --- a/wallpapers/image/slideshowpackage/contents/config/main.xml +++ b/wallpapers/image/slideshowpackage/contents/config/main.xml @@ -24,7 +24,7 @@ - + preferred://wallpaperlocations