From 72abf54d12476e7534802d7cfb2a10b727c0b0d4 Mon Sep 17 00:00:00 2001 From: wmayer Date: Fri, 19 Jun 2015 23:27:39 +0200 Subject: [PATCH] + setup qss search paths --- src/Gui/Application.cpp | 7 +++++++ src/Gui/DlgGeneralImp.cpp | 35 ++++++++++------------------------- 2 files changed, 17 insertions(+), 25 deletions(-) diff --git a/src/Gui/Application.cpp b/src/Gui/Application.cpp index cf8afcb7e..0a41afb46 100644 --- a/src/Gui/Application.cpp +++ b/src/Gui/Application.cpp @@ -1636,6 +1636,13 @@ void Application::runApplication(void) plugin += QLatin1String("/plugins"); QCoreApplication::addLibraryPath(plugin); + // setup the search paths for Qt style sheets + QStringList qssPaths; + qssPaths << QString::fromUtf8((App::Application::getUserAppDataDir() + "Gui/Stylesheets/").c_str()) + << QString::fromUtf8((App::Application::getResourceDir() + "Gui/Stylesheets/").c_str()) + << QLatin1String(":/stylesheets"); + QDir::setSearchPaths(QString::fromLatin1("qss"), qssPaths); + // check for OpenGL if (!QGLFormat::hasOpenGL()) { QMessageBox::critical(0, QObject::tr("No OpenGL"), QObject::tr("This system does not support OpenGL")); diff --git a/src/Gui/DlgGeneralImp.cpp b/src/Gui/DlgGeneralImp.cpp index 6459ed5d0..cb651dd3e 100644 --- a/src/Gui/DlgGeneralImp.cpp +++ b/src/Gui/DlgGeneralImp.cpp @@ -251,35 +251,20 @@ void DlgGeneralImp::loadSettings() filter << QString::fromAscii("*.css"); QFileInfoList fileNames; - // read from user directory - dir.setPath(QString::fromUtf8((App::Application::getUserAppDataDir() + "Gui/Stylesheets/").c_str())); - fileNames = dir.entryInfoList(filter, QDir::Files, QDir::Name); - for (QFileInfoList::iterator it = fileNames.begin(); it != fileNames.end(); ++it) { - if (cssFiles.find(it->baseName()) == cssFiles.end()) { - cssFiles[it->baseName()] = it->absoluteFilePath(); - } - } - - // read from resource directory - dir.setPath(QString::fromUtf8((App::Application::getResourceDir() + "Gui/Stylesheets/").c_str())); - fileNames = dir.entryInfoList(QStringList(filter), QDir::Files, QDir::Name); - for (QFileInfoList::iterator it = fileNames.begin(); it != fileNames.end(); ++it) { - if (cssFiles.find(it->baseName()) == cssFiles.end()) { - cssFiles[it->baseName()] = it->absoluteFilePath(); - } - } - - // read from the built-in directory - dir.setPath(QLatin1String(":/stylesheets")); - fileNames = dir.entryInfoList(QStringList(filter), QDir::Files, QDir::Name); - this->StyleSheets->addItem(tr("No style sheet"), QString::fromAscii("")); - for (QFileInfoList::iterator it = fileNames.begin(); it != fileNames.end(); ++it) { - if (cssFiles.find(it->baseName()) == cssFiles.end()) { - cssFiles[it->baseName()] = it->absoluteFilePath(); + // read from user, resource and built-in directory + QStringList qssPaths = QDir::searchPaths(QString::fromLatin1("qss")); + for (QStringList::iterator it = qssPaths.begin(); it != qssPaths.end(); ++it) { + dir.setPath(*it); + fileNames = dir.entryInfoList(filter, QDir::Files, QDir::Name); + for (QFileInfoList::iterator jt = fileNames.begin(); jt != fileNames.end(); ++jt) { + if (cssFiles.find(jt->baseName()) == cssFiles.end()) { + cssFiles[jt->baseName()] = jt->absoluteFilePath(); + } } } // now add all unique items + this->StyleSheets->addItem(tr("No style sheet"), QString::fromAscii("")); for (QMap::iterator it = cssFiles.begin(); it != cssFiles.end(); ++it) { this->StyleSheets->addItem(it.key(), it.value()); }