diff options
author | Christian Kandeler <christian.kandeler@digia.com> | 2013-08-15 16:08:16 +0200 |
---|---|---|
committer | hjk <hjk121@nokiamail.com> | 2013-08-16 08:05:41 +0200 |
commit | 6d6842202606bd153bf8614bb4699ed45ac13d3e (patch) | |
tree | 21ff9cd97e419205cafaadbe277ab7f9b9cf15e0 /src/libs/utils/hostosinfo.h | |
parent | ffae1fcb24de9f39e860bd289b2f3b443e940c45 (diff) |
Utils: Introduce new class OsSpecificAspects.
This is basically a generalization of HostOsInfo for
a system that might not be the host system. HostOsInfo
is now implemented in terms of the new class.
Prospective use case: Untie Utils::Environment from
the host system.
Change-Id: If333b96674652109fcb0ad79f75aaaf5e86e17e3
Reviewed-by: hjk <hjk121@nokiamail.com>
Reviewed-by: Daniel Teske <daniel.teske@digia.com>
Diffstat (limited to 'src/libs/utils/hostosinfo.h')
-rw-r--r-- | src/libs/utils/hostosinfo.h | 41 |
1 files changed, 21 insertions, 20 deletions
diff --git a/src/libs/utils/hostosinfo.h b/src/libs/utils/hostosinfo.h index 0bb642561bf..10ad8785c87 100644 --- a/src/libs/utils/hostosinfo.h +++ b/src/libs/utils/hostosinfo.h @@ -32,10 +32,12 @@ #include "utils_global.h" +#include "osspecificaspects.h" + #include <QString> #ifdef Q_OS_WIN -#define QTC_HOST_EXE_SUFFIX ".exe" +#define QTC_HOST_EXE_SUFFIX QTC_WIN_EXE_SUFFIX #else #define QTC_HOST_EXE_SUFFIX "" #endif // Q_OS_WIN @@ -45,55 +47,54 @@ namespace Utils { class QTCREATOR_UTILS_EXPORT HostOsInfo { public: - // Add more as needed. - enum HostOs { HostOsWindows, HostOsLinux, HostOsMac, HostOsOtherUnix, HostOsOther }; - static inline HostOs hostOs(); + static inline OsType hostOs(); enum HostArchitecture { HostArchitectureX86, HostArchitectureAMD64, HostArchitectureItanium, HostArchitectureArm, HostArchitectureUnknown }; static HostArchitecture hostArchitecture(); - static bool isWindowsHost() { return hostOs() == HostOsWindows; } - static bool isLinuxHost() { return hostOs() == HostOsLinux; } - static bool isMacHost() { return hostOs() == HostOsMac; } + static bool isWindowsHost() { return hostOs() == OsTypeWindows; } + static bool isLinuxHost() { return hostOs() == OsTypeLinux; } + static bool isMacHost() { return hostOs() == OsTypeMac; } static inline bool isAnyUnixHost(); static QString withExecutableSuffix(const QString &executable) { - QString finalName = executable; - if (isWindowsHost()) - finalName += QLatin1String(QTC_HOST_EXE_SUFFIX); - return finalName; + return hostOsAspects().withExecutableSuffix(executable); } static Qt::CaseSensitivity fileNameCaseSensitivity() { - return isWindowsHost() ? Qt::CaseInsensitive: Qt::CaseSensitive; + return hostOsAspects().fileNameCaseSensitivity(); } static QChar pathListSeparator() { - return isWindowsHost() ? QLatin1Char(';') : QLatin1Char(':'); + return hostOsAspects().pathListSeparator(); } static Qt::KeyboardModifier controlModifier() { - return isMacHost() ? Qt::MetaModifier : Qt::ControlModifier; + return hostOsAspects().controlModifier(); } + +private: + static OsSpecificAspects hostOsAspects() { return OsSpecificAspects(hostOs()); } }; -HostOsInfo::HostOs HostOsInfo::hostOs() + +OsType HostOsInfo::hostOs() { #if defined(Q_OS_WIN) - return HostOsWindows; + return OsTypeWindows; #elif defined(Q_OS_LINUX) - return HostOsLinux; + return OsTypeLinux; #elif defined(Q_OS_MAC) - return HostOsMac; + return OsTypeMac; #elif defined(Q_OS_UNIX) - return HostOsOtherUnix; + return OsTypeOtherUnix; #else - return HostOsOther; + return OsTypeOther; #endif } |