Signed-off-by: Michele Calgaro <michele.calgaro@yahoo.it>pull/3/head
parent
63d63ad52b
commit
c529f9057e
@ -1,317 +0,0 @@
|
|||||||
/***************************************************************************
|
|
||||||
* Copyright (C) 2006-2012 by Thomas Schweitzer *
|
|
||||||
* thomas-schweitzer(at)arcor.de *
|
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
|
||||||
* it under the terms of the GNU General Public License version 2.0 as *
|
|
||||||
* published by the Free Software Foundation. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program in the file LICENSE.GPL; if not, write to the *
|
|
||||||
* Free Software Foundation, Inc., *
|
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
#include "UiGuiSystemInfo.h"
|
|
||||||
|
|
||||||
#include <tntqstring.h>
|
|
||||||
#include <tqsysinfo.h>
|
|
||||||
#include <tntqprocess.h>
|
|
||||||
#include <tntqfile.h>
|
|
||||||
|
|
||||||
UiGuiSystemInfo::UiGuiSystemInfo()
|
|
||||||
{
|
|
||||||
}
|
|
||||||
|
|
||||||
/*
|
|
||||||
\brief Returns the operating system UiGUI is currently running on as one string.
|
|
||||||
|
|
||||||
The String contains name and version of the os. E.g. Linux Ubuntu 9.04.
|
|
||||||
*/
|
|
||||||
TQString UiGuiSystemInfo::getOperatingSystem()
|
|
||||||
{
|
|
||||||
TQString operatingSystemString = "";
|
|
||||||
|
|
||||||
#if defined (Q_WS_WIN)
|
|
||||||
switch (TQSysInfo::WindowsVersion)
|
|
||||||
{
|
|
||||||
case TQSysInfo::WV_32s:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows 3.1 with Win 32s";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_95:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows 95";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_98:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows 98";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_Me:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows Me";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_NT:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows NT (operating system version 4.0)";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_2000:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows 2000 (operating system version 5.0)";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_XP:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows XP (operating system version 5.1)";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_2003:
|
|
||||||
{
|
|
||||||
operatingSystemString =
|
|
||||||
"Windows Server 2003, Windows Server 2003 R2, Windows Home Server, Windows XP Professional x64 Edition (operating system version 5.2)";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_VISTA:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows Vista, Windows Server 2008 (operating system version 6.0)";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_WINDOWS7:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows 7 (operating system version 6.1)";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_CE:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows CE";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_CENET:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows CE .NET";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_CE_5:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows CE 5.x";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::WV_CE_6:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Windows CE 6.x";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Unknown Windows operating system.";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#elif defined (Q_WS_MAC)
|
|
||||||
switch (TQSysInfo::MacintoshVersion)
|
|
||||||
{
|
|
||||||
case TQSysInfo::MV_9:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Mac OS 9 (unsupported)";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::MV_10_0:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Mac OS X 10.0 Cheetah (unsupported)";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::MV_10_1:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Mac OS X 10.1 Puma (unsupported)";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::MV_10_2:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Mac OS X 10.2 Jaguar (unsupported)";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::MV_10_3:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Mac OS X 10.3 Panther";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::MV_10_4:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Mac OS X 10.4 Tiger";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::MV_10_5:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Mac OS X 10.5 Leopard";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::MV_10_6:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Mac OS X 10.6 Snow Leopard";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
case TQSysInfo::MV_Unknown:
|
|
||||||
{
|
|
||||||
operatingSystemString = "An unknown and currently unsupported platform";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
default:
|
|
||||||
{
|
|
||||||
operatingSystemString = "Unknown Mac operating system.";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
//TODO: Detect Unix, Linux etc. distro as described on
|
|
||||||
// http://www.novell.com/coolsolutions/feature/11251.html
|
|
||||||
operatingSystemString = "Linux";
|
|
||||||
TQProcess process;
|
|
||||||
|
|
||||||
process.start("uname -s");
|
|
||||||
bool result = process.waitForFinished(1000);
|
|
||||||
TQString os = process.readAllStandardOutput().trimmed();
|
|
||||||
|
|
||||||
process.start("uname -r");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
TQString rev = process.readAllStandardOutput().trimmed();
|
|
||||||
|
|
||||||
process.start("uname -m");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
TQString mach = process.readAllStandardOutput().trimmed();
|
|
||||||
|
|
||||||
if (os == "SunOS")
|
|
||||||
{
|
|
||||||
os = "Solaris";
|
|
||||||
|
|
||||||
process.start("uname -p");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
TQString arch = process.readAllStandardOutput().trimmed();
|
|
||||||
|
|
||||||
process.start("uname -v");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
TQString timestamp = process.readAllStandardOutput().trimmed();
|
|
||||||
|
|
||||||
operatingSystemString = os + " " + rev + " (" + arch + " " + timestamp + ")";
|
|
||||||
}
|
|
||||||
else if (os == "AIX")
|
|
||||||
{
|
|
||||||
process.start("oslevel -r");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
TQString oslevel = process.readAllStandardOutput().trimmed();
|
|
||||||
|
|
||||||
operatingSystemString = os + "oslevel " + oslevel;
|
|
||||||
}
|
|
||||||
else if (os == "Linux")
|
|
||||||
{
|
|
||||||
TQString dist;
|
|
||||||
TQString pseudoname;
|
|
||||||
TQString kernel = rev;
|
|
||||||
|
|
||||||
if (TQFile::exists("/etc/redhat-release"))
|
|
||||||
{
|
|
||||||
dist = "RedHat";
|
|
||||||
|
|
||||||
process.start("sh -c \"cat /etc/redhat-release | sed s/.*\\(// | sed s/\\)//\"");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
pseudoname = process.readAllStandardOutput().trimmed();
|
|
||||||
|
|
||||||
process.start("sh -c \"cat /etc/redhat-release | sed s/.*release\\ // | sed s/\\ .*//\"");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
rev = process.readAllStandardOutput().trimmed();
|
|
||||||
}
|
|
||||||
else if (TQFile::exists("/etc/SUSE-release"))
|
|
||||||
{
|
|
||||||
process.start("sh -c \"cat /etc/SUSE-release | tr '\\n' ' '| sed s/VERSION.*//\"");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
dist = process.readAllStandardOutput().trimmed();
|
|
||||||
|
|
||||||
process.start("sh -c \"cat /etc/SUSE-release | tr '\\n' ' ' | sed s/.*=\\ //\"");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
rev = process.readAllStandardOutput().trimmed();
|
|
||||||
}
|
|
||||||
else if (TQFile::exists("/etc/mandrake-release"))
|
|
||||||
{
|
|
||||||
dist = "Mandrake";
|
|
||||||
|
|
||||||
process.start("sh -c \"cat /etc/mandrake-release | sed s/.*\\(// | sed s/\\)//\"");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
pseudoname = process.readAllStandardOutput().trimmed();
|
|
||||||
|
|
||||||
process.start("sh -c \"cat /etc/mandrake-release | sed s/.*release\\ // | sed s/\\ .*//\"");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
rev = process.readAllStandardOutput().trimmed();
|
|
||||||
}
|
|
||||||
else if (TQFile::exists("/etc/lsb-release"))
|
|
||||||
{
|
|
||||||
dist = "Ubuntu";
|
|
||||||
|
|
||||||
TQString processCall =
|
|
||||||
"sh -c \"cat /etc/lsb-release | tr '\\n' ' ' | sed s/.*DISTRIB_RELEASE=// | sed s/\\ .*//\"";
|
|
||||||
process.start(processCall);
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
rev = process.readAllStandardOutput().trimmed();
|
|
||||||
TQString errorStr = process.readAllStandardError();
|
|
||||||
|
|
||||||
process.start(
|
|
||||||
"sh -c \"cat /etc/lsb-release | tr '\\n' ' ' | sed s/.*DISTRIB_CODENAME=// | sed s/\\ .*//\"");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
pseudoname = process.readAllStandardOutput().trimmed();
|
|
||||||
}
|
|
||||||
else if (TQFile::exists("/etc/debian_version"))
|
|
||||||
{
|
|
||||||
dist = "Debian";
|
|
||||||
|
|
||||||
process.start("cat /etc/debian_version");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
dist += process.readAllStandardOutput().trimmed();
|
|
||||||
|
|
||||||
rev = "";
|
|
||||||
}
|
|
||||||
|
|
||||||
if (TQFile::exists("/etc/UnitedLinux-release"))
|
|
||||||
{
|
|
||||||
process.start("sh -c \"cat /etc/UnitedLinux-release | tr '\\n' ' ' | sed s/VERSION.*//\"");
|
|
||||||
result = process.waitForFinished(1000);
|
|
||||||
dist += process.readAllStandardOutput().trimmed();
|
|
||||||
}
|
|
||||||
|
|
||||||
operatingSystemString = os + " " + dist + " " + rev + " (" + pseudoname + " " + kernel + " " +
|
|
||||||
mach + ")";
|
|
||||||
}
|
|
||||||
#endif
|
|
||||||
|
|
||||||
return operatingSystemString;
|
|
||||||
}
|
|
@ -1,35 +0,0 @@
|
|||||||
/***************************************************************************
|
|
||||||
* Copyright (C) 2006-2012 by Thomas Schweitzer *
|
|
||||||
* thomas-schweitzer(at)arcor.de *
|
|
||||||
* *
|
|
||||||
* This program is free software; you can redistribute it and/or modify *
|
|
||||||
* it under the terms of the GNU General Public License version 2.0 as *
|
|
||||||
* published by the Free Software Foundation. *
|
|
||||||
* *
|
|
||||||
* This program is distributed in the hope that it will be useful, *
|
|
||||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of *
|
|
||||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
|
|
||||||
* GNU General Public License for more details. *
|
|
||||||
* *
|
|
||||||
* You should have received a copy of the GNU General Public License *
|
|
||||||
* along with this program in the file LICENSE.GPL; if not, write to the *
|
|
||||||
* Free Software Foundation, Inc., *
|
|
||||||
* 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. *
|
|
||||||
***************************************************************************/
|
|
||||||
|
|
||||||
#ifndef UIGUISYSTEMINFO_H
|
|
||||||
#define UIGUISYSTEMINFO_H
|
|
||||||
|
|
||||||
class TQString;
|
|
||||||
|
|
||||||
|
|
||||||
class UiGuiSystemInfo
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
static TQString getOperatingSystem();
|
|
||||||
|
|
||||||
private:
|
|
||||||
UiGuiSystemInfo();
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif // UIGUISYSTEMINFO_H
|
|
Loading…
Reference in new issue