00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023 #ifndef __DATAPATHS_H__
00024 #define __DATAPATHS_H__
00025
00026 #include "global.h"
00027 #include <QDir>
00028 #include <QString>
00029 #include <QStringList>
00030
00039 class MAIN_EXPORT DataPaths
00040 {
00041 public:
00042 enum MachineType
00043 {
00044 x86,
00045 x64,
00046 Preferred
00047 };
00048
00049 static const QString PROGRAMS_APPDATA_DIR_NAME;
00050 static const QString PROGRAMS_APPDATASUPPORT_DIR_NAME;
00051 static const QString DEMOS_DIR_NAME;
00052 static const QString TRANSLATIONS_DIR_NAME;
00053 static const QString UPDATE_PACKAGES_DIR_NAME;
00054 static const QString UPDATE_PACKAGE_FILENAME_PREFIX;
00055
00066 static QString programFilesDirectory(MachineType machineType);
00067
00079 static QStringList staticDataSearchDirs(const QString& subdir = QString());
00080
00081 DataPaths(bool bPortableModeOn = false);
00082
00088 QStringList canWrite() const;
00089
00101 bool createDirectories();
00102
00103 QString demosDirectoryPath() const;
00104
00110 QStringList directoriesExist() const;
00111
00112 const QString& directoryNameForProgram() const { return programsDirectoryName; }
00113
00127 QString localDataLocationPath(const QString& subpath = QString()) const;
00128
00138 QString programsDataDirectoryPath() const;
00139
00145 QString programsDataSupportDirectoryPath() const;
00146
00147 bool isPortableModeOn() const { return bIsPortableModeOn; }
00148
00149 void setPortableModeOn(bool b) { bIsPortableModeOn = b; }
00150 void setDirectoryNameForProgram(const QString& name) { programsDirectoryName = name; }
00151
00168 QString systemAppDataDirectory(QString append = QString()) const;
00169
00174 bool validateAppDataDirectory();
00175
00176 protected:
00181 static bool validateDir(const QString& path);
00182
00183 bool bIsPortableModeOn;
00184
00188 QString programsDirectoryName;
00189 QString programsSupportDirectoryName;
00190 QString demosDirectoryName;
00191
00195 bool tryCreateDirectory(const QDir& rootDir, const QString& dirToCreate) const;
00196 };
00197
00198 #endif