Skip to content

Commit

Permalink
+ setup qss search paths
Browse files Browse the repository at this point in the history
  • Loading branch information
wwmayer committed Jun 19, 2015
1 parent 0ea7181 commit 72abf54
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 25 deletions.
7 changes: 7 additions & 0 deletions src/Gui/Application.cpp
Expand Up @@ -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"));
Expand Down
35 changes: 10 additions & 25 deletions src/Gui/DlgGeneralImp.cpp
Expand Up @@ -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<QString, QString>::iterator it = cssFiles.begin(); it != cssFiles.end(); ++it) {
this->StyleSheets->addItem(it.key(), it.value());
}
Expand Down

0 comments on commit 72abf54

Please sign in to comment.