31 #if !defined(Q_OS_WIN32)
32 #include <sys/utsname.h>
36 #include <QTextStream>
49 return pair.first +
' ' + pair.second;
57 QSysInfo::MacVersion v = QSysInfo::MacintoshVersion;
58 if (v == QSysInfo::MV_10_3)
60 else if (v == QSysInfo::MV_10_4)
62 else if (v == QSysInfo::MV_10_5)
64 else if (v == QSysInfo::MV_10_6)
66 else if (v == QSysInfo::MV_10_7)
70 #elif defined(Q_OS_WIN32)
71 QSysInfo::WinVersion v = QSysInfo::WindowsVersion;
72 if (v == QSysInfo::WV_95)
74 else if (v == QSysInfo::WV_98)
76 else if (v == QSysInfo::WV_Me)
78 else if (v == QSysInfo::WV_DOS_based)
80 else if (v == QSysInfo::WV_NT)
82 else if (v == QSysInfo::WV_2000)
84 else if (v == QSysInfo::WV_XP)
86 else if (v == QSysInfo::WV_2003)
88 else if (v == QSysInfo::WV_VISTA)
90 else if (v == QSysInfo::WV_WINDOWS7)
94 else if (v == QSysInfo::WV_NT_based)
100 proc.start (QString (
"/bin/sh"),
101 QStringList (
"-c") <<
"lsb_release -ds", QIODevice::ReadOnly);
102 if (proc.waitForStarted ())
104 QTextStream stream (&proc);
106 while (proc.waitForReadyRead ())
107 ret += stream.readAll ();
110 osName = ret.remove (
'"').trimmed ();
113 if (osName.isEmpty ())
121 {
"/etc/mandrake-release",
"Mandrake Linux" },
122 {
"/etc/debian_version",
"Debian GNU/Linux" },
123 {
"/etc/gentoo-release",
"Gentoo Linux" },
124 {
"/etc/exherbo-release",
"Exherbo" },
125 {
"/etc/arch-release",
"Arch Linux" },
126 {
"/etc/slackware-version",
"Slackware Linux" },
127 {
"/etc/pld-release",
"" },
128 {
"/etc/lfs-release",
"LFS" },
129 {
"/etc/SuSE-release",
"SuSE linux" },
130 {
"/etc/conectiva-release",
"Connectiva" },
131 {
"/etc/.installed",
"" },
132 {
"/etc/redhat-release",
"" },
135 OsInfo_t *osptr = OsInfo;
136 while (!osptr->path.isEmpty ())
138 QFileInfo fi (osptr->path);
141 QFile f (osptr->path);
142 f.open (QIODevice::ReadOnly);
143 QString data = QString (f.read (1024)).trimmed ();
144 if (osptr->name.isEmpty ())
147 osName = QString (
"%1 (%2)")
159 return qMakePair (osName.isEmpty () ? QString (u.sysname) : osName,
160 QString (
"%1 %2 %3").arg (u.machine, u.release, u.version));
163 return qMakePair (QString (
"Unknown OS"), QString (
"Unknown version"));
QPair< QString, QString > GetOSNameSplit()
Returns a pair of OS name and version.
QString GetOSName()
Returns a string of OS name and version joined together.
QPair< QString, QString > SplitInfo_t