summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorXizhi Zhu <xizhi.zhu@nokia.com>2011-05-06 14:44:19 +0300
committerXizhi Zhu <xizhi.zhu@nokia.com>2011-05-06 16:50:23 +0300
commitb22d9dc6f6a086cce8845ca4408729031aeafae7 (patch)
tree9d722b420c36fdffd0d9ea1243984fe461b17a69
parent41700066a246204b6151ab71f452aed8e3768b17 (diff)
Improve QSystemInfo a little bit.
Docs fixed. On Linux, /proc/sys/kernel/osrelease is returned as the firmware version, /etc/issue is used for OS version. Returning Qt version in the common code.
-rw-r--r--src/systeminfo/linux/qsysteminfo_linux_common.cpp81
-rw-r--r--src/systeminfo/qsystemgeneralinfo.cpp35
-rw-r--r--src/systeminfo/qsysteminfo_mac.mm6
-rw-r--r--src/systeminfo/qsysteminfo_maemo.cpp8
-rw-r--r--src/systeminfo/qsysteminfo_s60.cpp4
-rw-r--r--src/systeminfo/qsysteminfo_win.cpp6
-rw-r--r--tests/auto/qdeclarativesysteminfo/tst_qdeclarativesysteminfo.cpp38
7 files changed, 40 insertions, 138 deletions
diff --git a/src/systeminfo/linux/qsysteminfo_linux_common.cpp b/src/systeminfo/linux/qsysteminfo_linux_common.cpp
index 6907003082..57e02d3760 100644
--- a/src/systeminfo/linux/qsysteminfo_linux_common.cpp
+++ b/src/systeminfo/linux/qsysteminfo_linux_common.cpp
@@ -508,84 +508,39 @@ bool QSystemInfoLinuxCommonPrivate::hasHalUsbFeature(qint32 usbClass)
QString QSystemInfoLinuxCommonPrivate::version(QSystemInfo::Version type, const QString &parameter)
{
+ Q_UNUSED(parameter)
+
switch(type) {
case QSystemInfo::Firmware: {
-#if !defined(QT_NO_HAL)
- QHalDeviceInterface iface(QLatin1String("/org/freedesktop/Hal/devices/computer"));
- QString str;
- if (iface.isValid()) {
- str = iface.getPropertyString(QLatin1String("system.kernel.version"));
- if (!str.isEmpty())
- return str;
- if (parameter == "versionDate") {
- str = iface.getPropertyString(QLatin1String("system.firmware.release_date"));
- if (!str.isEmpty())
- return str;
- } else {
- str = iface.getPropertyString(QLatin1String("system.firmware.version"));
- if (str.isEmpty()) {
- if (!str.isEmpty())
- return str;
- }
- }
- }
+ QFile firmware("/proc/sys/kernel/osrelease");
+ if (firmware.open(QIODevice::ReadOnly))
+ return firmware.readAll().simplified();
break;
-#endif // QT_NO_HAL
}
case QSystemInfo::Os: {
- if (QFile::exists("/usr/bin/lsb_release")) {
- QProcess syscall;
- QString program = "/usr/bin/lsb_release";
- QStringList arguments;
- arguments << "-r";
- syscall.start(program, arguments);
- syscall.waitForFinished();
- QString desc = syscall.readAllStandardOutput();
- desc = desc.section(":",1,1);
- return desc.simplified();
- }
-
- QFile versionFile2("/etc/issue");
- if (!versionFile2.open(QIODevice::ReadOnly | QIODevice::Text)) {
- qDebug() << "File not opened";
- } else {
- QString line;
- QString strvalue;
- QTextStream in(&versionFile2);
- do {
- line = in.readLine();
- line.remove("\\n");
- line.remove("\\l");
- strvalue = line.simplified();
- break;
- } while (!line.isNull());
- versionFile2.close();
- if(!strvalue.isEmpty())
- return strvalue;
- }
-
- QFile versionFile3(QLatin1String("/proc/version"));
- if (!versionFile3.open(QIODevice::ReadOnly | QIODevice::Text)) {
- qDebug() << "File not opened";
- } else {
- QString strvalue;
- strvalue = QLatin1String(versionFile3.readAll().trimmed());
- versionFile3.close();
- return strvalue;
+ QFile os("/etc/issue");
+ if (os.open(QIODevice::ReadOnly)) {
+ QByteArray content = os.readAll();
+ if (!content.isEmpty()) {
+ QList<QByteArray> list(content.split(' '));
+ bool ok = false;
+ foreach (const QByteArray &field, list) {
+ field.toDouble(&ok);
+ if (ok)
+ return field;
+ }
+ }
}
break;
}
- case QSystemInfo::QtCore :
- return QString(qVersion());
-
default:
break;
};
- return QString("Not Available");
+ return QString();
}
QString QSystemInfoLinuxCommonPrivate::currentCountryCode() const
diff --git a/src/systeminfo/qsystemgeneralinfo.cpp b/src/systeminfo/qsystemgeneralinfo.cpp
index 0553f4eda4..b991f3f577 100644
--- a/src/systeminfo/qsystemgeneralinfo.cpp
+++ b/src/systeminfo/qsystemgeneralinfo.cpp
@@ -58,29 +58,6 @@ QSystemInfoPrivate *getSystemInfoPrivate() { return sysinfoPrivate(); }
\inmodule QtSystemInfo
\since 1.0
\brief The QSystemInfo class provides access to various general information from the system.
- \bold NOTE: In the future, parts of the QtSystemInfo API may be moved and renamed into an existing Qt class that provides similiar functionality.
-
- \table
- \header
- \o Class
- \row
- \o QSystemInfo::currentLanguage
- \row
- \o QSystemInfo::availableLanguages
- \row
- \o QSystemInfo::currentCountryCode
- \row
- \o QSystemDisplayInfo::displayBrightness
- \row
- \o QSystemDisplayInfo::colorDepth
- \row
- \o QSystemScreenSaver::screenSaverInhibited
- \row
- \o QSystemScreenSaver::setScreenSaverInhibit
- \endtable
-
- Platform notes: Some functionality may or may not be supported on various platforms, depending on if there
- is a reliable way to gather such information.
*/
/*!
@@ -188,20 +165,18 @@ QStringList QSystemInfo::availableLanguages()
}
/*!
- Returns the version of QSystemInfo::Version \a type,
- with optional platform dependent \a parameter as a string.
+ Returns the version of QSystemInfo::Version \a type, with optional platform dependent
+ \a parameter as a string.
- Version will be returned in "major.minor.build" form.
-
- In case a particular version does not use the "build" part, it is set to 0.
- If a particular element is not available at all, an error "Not Installed" will be returned by
- the API.
+ In case of error or not available, an empty string is returned.
*/
QString QSystemInfo::version(QSystemInfo::Version type, const QString &parameter)
{
switch(type) {
case QSystemInfo::QtMobility:
return QLatin1String(QTM_VERSION_STR);
+ case QSystemInfo::QtCore:
+ return QString(qVersion());
default:
return sysinfoPrivate()->version(type, parameter);
}
diff --git a/src/systeminfo/qsysteminfo_mac.mm b/src/systeminfo/qsysteminfo_mac.mm
index 6c25811e2c..282cb1fb0e 100644
--- a/src/systeminfo/qsysteminfo_mac.mm
+++ b/src/systeminfo/qsysteminfo_mac.mm
@@ -423,7 +423,6 @@ void QSystemInfoPrivate::disconnectNotify(const char *signal)
QString QSystemInfoPrivate::version(QSystemInfo::Version type, const QString &parameter)
{
Q_UNUSED(parameter);
- QString errorStr = "Not Available";
bool useDate = false;
if(parameter == QLatin1String("versionDate")) {
useDate = true;
@@ -437,9 +436,6 @@ QString QSystemInfoPrivate::version(QSystemInfo::Version type, const QString &p
return ver;
}
break;
- case QSystemInfo::QtCore:
- return qVersion();
- break;
case QSystemInfo::Firmware:
{
return QSystemDeviceInfoPrivate::model();
@@ -448,7 +444,7 @@ QString QSystemInfoPrivate::version(QSystemInfo::Version type, const QString &p
default:
break;
};
- return errorStr;
+ return QString();
}
diff --git a/src/systeminfo/qsysteminfo_maemo.cpp b/src/systeminfo/qsysteminfo_maemo.cpp
index 2635da0eba..5ca84201b7 100644
--- a/src/systeminfo/qsysteminfo_maemo.cpp
+++ b/src/systeminfo/qsysteminfo_maemo.cpp
@@ -183,14 +183,6 @@ QString QSystemInfoPrivate::currentCountryCode() const
QString QSystemInfoPrivate::version(QSystemInfo::Version type, const QString &parameter)
{
switch(type) {
- case QSystemInfo::Os: {
- QString sysinfodValue = sysinfodValueForKey("/device/sw-release-ver"); //("/device/content-ver");
- if (!sysinfodValue.isEmpty()) {
- sysinfodValue = sysinfodValue.section("_", 2, 4);
- return sysinfodValue;
- }
- }
-
case QSystemInfo::Firmware: {
QString sysinfodValue = sysinfodValueForKey("/device/sw-release-ver");
if (!sysinfodValue.isEmpty())
diff --git a/src/systeminfo/qsysteminfo_s60.cpp b/src/systeminfo/qsysteminfo_s60.cpp
index 109eb850fe..d0fda3ecf6 100644
--- a/src/systeminfo/qsysteminfo_s60.cpp
+++ b/src/systeminfo/qsysteminfo_s60.cpp
@@ -316,10 +316,6 @@ QString QSystemInfoPrivate::version(QSystemInfo::Version type, const QString &
{
return S60Version();
}
- case QSystemInfo::QtCore:
- {
- return qVersion();
- }
case QSystemInfo::Firmware:
{
QString versionText;
diff --git a/src/systeminfo/qsysteminfo_win.cpp b/src/systeminfo/qsysteminfo_win.cpp
index c833add372..8dc84f441c 100644
--- a/src/systeminfo/qsysteminfo_win.cpp
+++ b/src/systeminfo/qsysteminfo_win.cpp
@@ -512,7 +512,6 @@ QStringList QSystemInfoPrivate::availableLanguages() const
QString QSystemInfoPrivate::version(QSystemInfo::Version type, const QString &parameter)
{
Q_UNUSED(parameter);
- QString errorStr = "Not Available";
bool useDate = false;
if(parameter == "versionDate") {
useDate = true;
@@ -541,15 +540,12 @@ QString QSystemInfoPrivate::version(QSystemInfo::Version type, const QString &p
#endif
}
break;
- case QSystemInfo::QtCore :
- return qVersion();
- break;
case QSystemInfo::Firmware :
{
}
break;
};
- return errorStr;
+ return QString();
}
diff --git a/tests/auto/qdeclarativesysteminfo/tst_qdeclarativesysteminfo.cpp b/tests/auto/qdeclarativesysteminfo/tst_qdeclarativesysteminfo.cpp
index 25e1b298d5..1203b5aec2 100644
--- a/tests/auto/qdeclarativesysteminfo/tst_qdeclarativesysteminfo.cpp
+++ b/tests/auto/qdeclarativesysteminfo/tst_qdeclarativesysteminfo.cpp
@@ -43,7 +43,6 @@
#include <QtTest/QtTest>
#include "qdeclarativegeneralinfo_p.h"
-#include <QDebug>
QTM_USE_NAMESPACE
Q_DECLARE_METATYPE(QSystemInfo::Version);
@@ -91,7 +90,7 @@ void tst_QDeclarativeSystemInfo::tst_availableLanguages()
QDeclarativeGeneralInfo si;
QVERIFY(!si.availableLanguages().isEmpty());
QStringList available = si.availableLanguages();
- foreach(QString lang, available) {
+ foreach (QString lang, available) {
QCOMPARE(lang.length(), 2);
QVERIFY(lang == lang.toLower());
}
@@ -99,25 +98,21 @@ void tst_QDeclarativeSystemInfo::tst_availableLanguages()
void tst_QDeclarativeSystemInfo::tst_versions_data()
{
- QTest::addColumn<QSystemInfo::Version>("version");
- QTest::addColumn<QString>("parameter");
-
- QTest::newRow("Os") << QSystemInfo::Os << "";
- QTest::newRow("QtCore") << QSystemInfo::QtCore << "";
- QTest::newRow("Firmware") << QSystemInfo::Firmware << "";
+ QTest::addColumn<QSystemInfo::Version>("version");
+ QTest::addColumn<QString>("parameter");
+ QTest::newRow("Os") << QSystemInfo::Os << "";
+ QTest::newRow("QtCore") << QSystemInfo::QtCore << "";
+ QTest::newRow("Firmware") << QSystemInfo::Firmware << "";
}
void tst_QDeclarativeSystemInfo::tst_versions()
{
- {
- QFETCH(QSystemInfo::Version, version);
- QFETCH(QString, parameter);
- QDeclarativeGeneralInfo si;
- QString vers = si.version(version, parameter);
- QVERIFY(!vers.isEmpty()
- || vers.isEmpty());
- }
+ QFETCH(QSystemInfo::Version, version);
+ QFETCH(QString, parameter);
+ QDeclarativeGeneralInfo si;
+ QString vers = si.version(version, parameter);
+ QVERIFY(!vers.isEmpty() || vers.isEmpty());
}
void tst_QDeclarativeSystemInfo::tst_countryCode()
@@ -149,13 +144,10 @@ void tst_QDeclarativeSystemInfo::tst_hasFeatures_data()
void tst_QDeclarativeSystemInfo::tst_hasFeatures()
{
- {
- QFETCH(QSystemInfo::Feature, feature);
- QDeclarativeGeneralInfo si;
- qWarning() << si.hasFeatureSupported(feature);
- QVERIFY(si.hasFeatureSupported(feature) == false
- || si.hasFeatureSupported(feature) == true);
- }
+ QFETCH(QSystemInfo::Feature, feature);
+ QDeclarativeGeneralInfo si;
+ QVERIFY(si.hasFeatureSupported(feature) == false
+ || si.hasFeatureSupported(feature) == true);
}
void tst_QDeclarativeSystemInfo::tst_detailFeatures_data()