Go to the documentation of this file.00001
00006 #include "static.h"
00007 #include <QCoreApplication>
00008 #include <QDir>
00009 #include <QFile>
00010 #include <QString>
00011
00012 QString Static::configDir=0;
00013
00014 TemplateLoader* Static::templateLoader=0;
00015
00016 HttpSessionStore* Static::sessionStore=0;
00017
00018 StaticFileController* Static::staticFileController=0;
00019
00020 QString Static::getConfigFileName() {
00021 return QString("%1/%2.ini").arg(getConfigDir()).arg(QCoreApplication::applicationName());
00022 }
00023
00024 QString Static::getConfigDir() {
00025 if (!configDir.isNull()) {
00026 return configDir;
00027 }
00028
00029
00030 QString binDir=QCoreApplication::applicationDirPath();
00031 QString organization=QCoreApplication::organizationName();
00032 QString configFileName=QCoreApplication::applicationName()+".ini";
00033
00034 QStringList searchList;
00035 searchList.append(QDir::cleanPath(binDir));
00036 searchList.append(QDir::cleanPath(binDir+"/../etc"));
00037 searchList.append(QDir::cleanPath(binDir+"/../../etc"));
00038 searchList.append(QDir::rootPath()+"etc/xdg/"+organization);
00039 searchList.append(QDir::rootPath()+"etc/opt");
00040 searchList.append(QDir::rootPath()+"etc");
00041
00042 foreach (QString dir, searchList) {
00043 QFile file(dir+"/"+configFileName);
00044 if (file.exists()) {
00045
00046 configDir=dir;
00047 qDebug("Using config file %s",qPrintable(file.fileName()));
00048 return configDir;
00049 }
00050 }
00051
00052
00053 foreach (QString dir, searchList) {
00054 qWarning("%s/%s not found",qPrintable(dir),qPrintable(configFileName));
00055 }
00056 qFatal("Cannot find config file %s",qPrintable(configFileName));
00057 return 0;
00058 }
00059