Skip to content

Commit

Permalink
Merge branch 'xdg-icon-theme-paths'
Browse files Browse the repository at this point in the history
* xdg-icon-theme-paths:
  xdgIconThemePaths: Use QString::SkipEmptyParts
  xdgIconThemePaths: Remove duplicated paths
  Adds $XDG_DATA_HOME to the XdgIconThemePaths
  • Loading branch information
luis-pereira committed Apr 27, 2016
2 parents 2b494a5 + 8761ada commit 4a3d790
Showing 1 changed file with 20 additions and 7 deletions.
27 changes: 20 additions & 7 deletions src/lxqtplatformtheme.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -298,18 +298,31 @@ QVariant LXQtPlatformTheme::themeHint(ThemeHint hint) const {
QStringList LXQtPlatformTheme::xdgIconThemePaths() const
{
QStringList paths;
QStringList xdgDirs;

// Add home directory first in search path
const QFileInfo homeIconDir(QDir::homePath() + QStringLiteral("/.icons"));
if (homeIconDir.isDir())
paths.prepend(homeIconDir.absoluteFilePath());

QString xdgDirString = QFile::decodeName(qgetenv("XDG_DATA_DIRS"));
if (xdgDirString.isEmpty())
xdgDirString = QLatin1String("/usr/local/share/:/usr/share/");
foreach (const QString &xdgDir, xdgDirString.split(QLatin1Char(':'))) {
const QFileInfo xdgIconsDir(xdgDir + QStringLiteral("/icons"));
if (xdgIconsDir.isDir())
paths.append(xdgIconsDir.absoluteFilePath());
QString xdgDataHome = QFile::decodeName(qgetenv("XDG_DATA_HOME"));
if (xdgDataHome.isEmpty())
xdgDataHome = QDir::homePath() + QLatin1String("/.local/share");
xdgDirs.append(xdgDataHome);

QString xdgDataDirs = QFile::decodeName(qgetenv("XDG_DATA_DIRS"));
if (xdgDataDirs.isEmpty())
xdgDataDirs = QLatin1String("/usr/local/share/:/usr/share/");
xdgDirs.append(xdgDataDirs);

foreach (const QString &s, xdgDirs) {
const QStringList r = s.split(QLatin1Char(':'), QString::SkipEmptyParts);
foreach (const QString &xdgDir, r) {
const QFileInfo xdgIconsDir(xdgDir + QStringLiteral("/icons"));
if (xdgIconsDir.isDir())
paths.append(xdgIconsDir.absoluteFilePath());
}
}
paths.removeDuplicates();
return paths;
}

0 comments on commit 4a3d790

Please sign in to comment.