+ setup qss search paths

This commit is contained in:
wmayer 2015-06-19 23:27:39 +02:00
parent 0ea718177d
commit 72abf54d12
2 changed files with 17 additions and 25 deletions

View File

@ -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"));

View File

@ -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());
}