X-Git-Url: https://git.quassel-irc.org/?a=blobdiff_plain;f=src%2Fuisupport%2Ficonloader.cpp;h=d356b70a26566325bfa4633eb97d5735b34cc216;hb=dc9de5af386f61e6dc5537d04ccc8aceb8126b21;hp=688d0b112fbafdca9ea5af2301301adfd16e9396;hpb=e8e1f038e6bf4a7bc938e316774374d3116ff39a;p=quassel.git diff --git a/src/uisupport/iconloader.cpp b/src/uisupport/iconloader.cpp index 688d0b11..d356b70a 100644 --- a/src/uisupport/iconloader.cpp +++ b/src/uisupport/iconloader.cpp @@ -18,6 +18,9 @@ * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * ***************************************************************************/ +#ifndef HAVE_KDE + +#include #include #include #include @@ -50,7 +53,19 @@ void IconLoader::setTheme(const QString &theme) { _themedIconDirNames.clear(); _plainIconDirNames.clear(); QString path; - QStringList dataDirNames = QString(qgetenv("XDG_DATA_DIRS")).split(':'); + QStringList dataDirNames = QString(qgetenv("XDG_DATA_DIRS")).split(':', QString::SkipEmptyParts); + +// Provide a fallback +# ifdef Q_OS_UNIX + if(dataDirNames.isEmpty()) dataDirNames.append("/usr/share"); + // on UNIX, we always check our install prefix + QString appDir = QCoreApplication::applicationDirPath(); + int binpos = appDir.lastIndexOf("/bin"); + if(binpos >= 0) { + appDir.replace(binpos, 4, "/share"); + if(!dataDirNames.contains(appDir)) dataDirNames.append(appDir); + } +# endif // System theme in $data/icons/$theme foreach(QString dir, dataDirNames) { @@ -59,14 +74,14 @@ void IconLoader::setTheme(const QString &theme) { _themedIconDirNames.append(path); } // Resource for system theme :/icons/$theme - path = QString(":/icons/%2"); + path = QString(":/icons/%1").arg(theme); if(QFile::exists(path)) _themedIconDirNames.append(path); // Own icons in $data/apps/quassel/icons/hicolor // Also, plain icon dirs $data/apps/quassel/pics foreach(QString dir, dataDirNames) { - path = QString("%1/apps/quassel/icons/hicolor").arg(dir); + path = QString("%1/icons/hicolor").arg(dir); if(QFile::exists(path)) _themedIconDirNames.append(path); path = QString("%1/apps/quassel/pics").arg(dir); @@ -144,3 +159,5 @@ QPixmap SmallIcon(const QString& name, int force_size) { IconLoader *loader = IconLoader::global(); return loader->loadIcon(name, IconLoader::Small, force_size); } + +#endif