10#if !defined(Q_OS_WIN32)
11#include <sys/utsname.h>
24 return info.Name_ +
' ' +
info.Version_;
36 if (
proc.waitForStarted ())
40 while (
proc.waitForReadyRead ())
44 return ret.remove (
'"').trimmed ();
72 static const auto osptr = std::to_array<OsInfo> ({
89 if (f.open (QIODevice::ReadOnly))
92 return os.name.isEmpty () ?
137 return retVer (
"Unknown version");
138#elif defined(Q_OS_WIN32)
143 .
Arch_ = QSysInfo::WordSize == 64 ?
"x86_64" :
"x86",
149 switch (QSysInfo::WindowsVersion)
151 case QSysInfo::WV_95:
153 case QSysInfo::WV_98:
155 case QSysInfo::WV_Me:
157 case QSysInfo::WV_DOS_based:
159 case QSysInfo::WV_NT:
161 case QSysInfo::WV_2000:
163 case QSysInfo::WV_XP:
165 case QSysInfo::WV_2003:
167 case QSysInfo::WV_VISTA:
169 case QSysInfo::WV_WINDOWS7:
177 case QSysInfo::WV_NT_based:
178 return retVer (
"NT-based");
196 .Version_ =
QString (
"%1 %2 %3").arg (
u.machine,
u.release,
u.version),
197 .Flavour_ =
u.sysname,
201 return { .Arch_ =
"Unknown arch", .Name_ =
"Unknown OS", .Version_ =
"Unknown version", .Flavour_ = {} };
OSInfo GetOSInfo()
Returns more precise information about OS name and version.
QString GetOSName()
Returns a string of OS name and version joined together.
Container< T > Filter(const Container< T > &c, F f)
Describes the OS running LeechCraft.
QString Arch_
Describes the CPU architecture of the OS.