35 #include <QApplication>
47 bool DataLocations::mTestMode =
false;
60 QString dataRootConfigFile = settingsPath +
"/data_root_location.txt";
61 if (QFileInfo(dataRootConfigFile).exists())
63 return readTestDataPathFromFile(dataRootConfigFile);
73 QString patientDatafolder =
settings()->
value(
"globalPatientDataFolder").toString();
74 return patientDatafolder +
"/NoPatient";
80 QString dataRootConfigFile = settingsPath +
"/large_data_root_location.txt";
81 if (QFileInfo(dataRootConfigFile).exists())
83 return readTestDataPathFromFile(dataRootConfigFile);
87 return CX_LARGE_DATA_ROOT;
95 path = QString(
"%1/%2/%3").arg(
getTestDataPath()).arg(pathRelativeToTestDataRoot).arg(filename);
96 if (QFileInfo(path).exists())
99 path = QString(
"%1/%2/%3").arg(
getLargeTestDataPath()).arg(pathRelativeToTestDataRoot).arg(filename);
100 if (QFileInfo(path).exists())
106 QString DataLocations::readTestDataPathFromFile(QString filename)
108 QFile file(filename);
109 file.open(QFile::ReadOnly);
110 QString cxDataRoot(file.readAll());
116 QString homepath = QDir::homePath() +
"/cx_settings";
135 QString path(qApp->applicationDirPath()+
"/../../..");
136 QString bundle = QDir(qApp->applicationDirPath()+
"/../..").canonicalPath();
137 if (QFileInfo(bundle).isBundle())
140 return qApp->applicationDirPath();
142 QString path(qApp->applicationDirPath());
151 QString appPath(qApp->applicationDirPath());
153 QString buildLocation = bundlePath +
"/plugins";
154 if (QFile(buildLocation).exists())
155 retval << buildLocation;
157 QString installLocation = appPath +
"/plugins";
158 if (QFile(installLocation).exists())
159 retval << installLocation;
161 QString fallbackInstallLocation = appPath;
162 if (QFile(fallbackInstallLocation).exists())
163 retval << fallbackInstallLocation;
173 return paths.front();
178 QString path =
getBundlePath() +
"/" + CX_CONFIG_ROOT_RELATIVE_INSTALLED;
179 if (QDir(path).exists())
180 return QStringList() << QDir(path).canonicalPath();
183 if (QDir(CX_CONFIG_ROOT).exists())
184 retval << QDir(CX_CONFIG_ROOT).canonicalPath();
185 if (QDir(CX_OPTIONAL_CONFIG_ROOT).exists())
186 retval << QDir(CX_OPTIONAL_CONFIG_ROOT).canonicalPath();
193 QString path =
getBundlePath() +
"/" + CX_DOC_ROOT_RELATIVE_INSTALLED;
194 if (QDir(path).exists())
195 return QDir(path).canonicalPath();
197 if (QDir(CX_DOC_ROOT).exists())
198 return QDir(CX_DOC_ROOT).canonicalPath();
206 for (
int i=0; i<root.size(); ++i)
207 retval << root[i] + suffix;
215 QStringList splitName = name.split(
".");
216 splitName[splitName.size()-1] = ext;
217 return splitName.join(
".");
229 return findConfigPath(
"", pathRelativeToConfigRoot, alternativeAbsolutePath);
234 QFileInfo filePath(
findConfigFilePath(fileName, pathRelativeToConfigRoot, alternativeAbsolutePath));
235 return filePath.absolutePath() +
"/";
243 QString path = root +
"/" + pathRelativeToConfigRoot +
"/" + fileName;
245 if (QFileInfo(path).exists())
249 QString path = QString(alternativeAbsolutePath +
"/" + fileName);
251 if (QFileInfo(path).exists())
254 reportWarning(
"DataLocations::findConfigFile. Error: Can't find " + fileName +
" in any of\n" + paths.join(
" \n"));
258 QString DataLocations::checkExecutableExist(QString path, QString filename)
261 path = QDir::cleanPath(path);
262 if (QDir(path).exists(filename))
272 result = DataLocations::checkExecutableExist(qApp->applicationDirPath(), filename);
273 if (!result.isEmpty())
278 if (!result.isEmpty())
286 QString url(
"http://custusx.org");
293 QString version(CustusX_VERSION_STRING);
294 if (version.contains(
"dev"))
296 QString url = QString(
"%1/uploads/user_doc/%2")
static QString getExistingTestData(QString pathRelativeToTestDataRoot, QString filename="")
Return full path to test data, both normal and large repositories are searched.
bool removeNonemptyDirRecursively(const QString &dirName)
static QString findConfigPath(QString fileName, QString pathRelativeToConfigRoot, QString alternativeAbsolutePath="")
static QString getWebsiteUserDocumentationURL()
static QString getLargeTestDataPath()
return path to test data folder containing large data sets
QVariant value(const QString &key, const QVariant &defaultValue=QVariant()) const
static QStringList getRootConfigPaths()
static QString findConfigFolder(QString pathRelativeToConfigRoot, QString alternativeAbsolutePath="")
void reportWarning(QString msg)
static QString getCachePath()
return path to a folder that is used during execution, will be cleared at start and stop...
static QString getWebsiteURL()
static QString findConfigFilePath(QString fileName, QString pathRelativeToConfigRoot, QString alternativeAbsolutePath="")
Settings * settings()
Shortcut for accessing the settings instance.
static QString getTestDataPath()
return path to test data folder
static QString getPersistentWritablePath()
Path to location usable for persistent and temporary storage of config. Do not use directly...
static QStringList getDefaultPluginsPath()
return the folder where plugins should be located, by default.
static QString getRootConfigPath()
return path to root config folder. May be replaced with getExistingConfigPath()
QString changeExtension(QString name, QString ext)
static QString findExecutableInStandardLocations(QString filename)
look for an exe in the same folder as the executable or bundle.
static QStringList appendStringToAllElements(QStringList root, QString suffix)
static void setTestMode()
set a testing mode that changes location of settings files to a temp folder.
static QString getNoPatientFolder()
static QString getDocPath()
return path to folder containing documentation files
static QString getBundlePath()
return the folder where the bundle or executable are located.