Working with QSystemInfo - System Information API - Part 2
hamishwillee
(Talk | contribs) m (Hamishwillee - Bot update - Add ArticleMetaData) |
hamishwillee
(Talk | contribs) m (Text replace - "<code cpp>" to "<code cpp-qt>") |
||
| Line 73: | Line 73: | ||
= Project configuration file (.Pro file) = | = Project configuration file (.Pro file) = | ||
* Add the Qt Mobility project configuration option in the .Pro file as shown below | * Add the Qt Mobility project configuration option in the .Pro file as shown below | ||
| − | <code cpp> | + | <code cpp-qt> |
CONFIG += mobility | CONFIG += mobility | ||
MOBILITY += systeminfo | MOBILITY += systeminfo | ||
| Line 79: | Line 79: | ||
* Add Qt-specific configuration options in .pro file as shown below | * Add Qt-specific configuration options in .pro file as shown below | ||
| − | <code cpp> | + | <code cpp-qt> |
QT += network | QT += network | ||
</code> | </code> | ||
* Add required capability in .pro file as shown below: | * Add required capability in .pro file as shown below: | ||
| − | <code cpp> | + | <code cpp-qt> |
symbian:TARGET.CAPABILITY = ReadDeviceData | symbian:TARGET.CAPABILITY = ReadDeviceData | ||
</code> | </code> | ||
| Line 91: | Line 91: | ||
= Implementing QSystemInfo API = | = Implementing QSystemInfo API = | ||
* QSystemInfo API is a part of the QtMobility namespace. So declare the QtMobility namespace as shown below: | * QSystemInfo API is a part of the QtMobility namespace. So declare the QtMobility namespace as shown below: | ||
| − | <code cpp> | + | <code cpp-qt> |
using namespace QtMobility; | using namespace QtMobility; | ||
</code> | </code> | ||
== Header file== | == Header file== | ||
| − | <code cpp> | + | <code cpp-qt> |
#ifndef SYSTEMFEATUREINFO_H | #ifndef SYSTEMFEATUREINFO_H | ||
#define SYSTEMFEATUREINFO_H | #define SYSTEMFEATUREINFO_H | ||
| Line 128: | Line 128: | ||
== Source file == | == Source file == | ||
| − | <code cpp> | + | <code cpp-qt> |
#include "SystemFeatureInfo.h" | #include "SystemFeatureInfo.h" | ||
Latest revision as of 04:23, 11 October 2012
Article Metadata
Code Example
Source file: Media:SystemFeatureInfo.zip
Article
Created: kiran10182
(08 Mar 2010)
Last edited: hamishwillee
(11 Oct 2012)
| ID | Creation date | 8-March-2010 | |
| Platform | S60 3rd Edition, FP1, FP2
S60 5th Edition |
Tested on devices | Nokia 5800 xPressMusic |
| Category | Qt | Subcategory | Qt Mobility API |
| Keywords (APIs, classes, methods, functions): QSystemInfo, QString, QStringList, QButton, QLabel, QComboBox, |
Tip:
- Please read this article before moving forward: Archived:Setting up environment for Qt Mobility API
- Setup Carbide.c++ IDE as explained in this article: Working with Carbide.c++ IDE for Qt Mobility APIs
Contents |
Overview
This is a part 2 of the QSystemInfo API which is a part of the System Information API from Qt Mobility project.
What is covered in QSystemInfo API Part 2
- It is a part of the System Information API.
- This article covers information about
- Available features of the device
- Version information of the OS
- Current firmware information of the device
Capabilities required
- ReadDeviceData
UI design (.ui file)
Project configuration file (.Pro file)
- Add the Qt Mobility project configuration option in the .Pro file as shown below
CONFIG += mobility
MOBILITY += systeminfo
- Add Qt-specific configuration options in .pro file as shown below
QT += network- Add required capability in .pro file as shown below:
symbian:TARGET.CAPABILITY = ReadDeviceData
Implementing QSystemInfo API
- QSystemInfo API is a part of the QtMobility namespace. So declare the QtMobility namespace as shown below:
using namespace QtMobility;
Header file
#ifndef SYSTEMFEATUREINFO_H
#define SYSTEMFEATUREINFO_H
#include <QtGui/QWidget>
#include "ui_SystemFeatureInfo.h"
#include <qsysteminfo.h>
using namespace QtMobility;
class SystemFeatureInfo : public QWidget
{
Q_OBJECT
public:
SystemFeatureInfo(QWidget *parent = 0);
~SystemFeatureInfo();
public slots:
void checkFeatureAvailability(int aIndex);
void listFirmwareInformation();
void resetAllFields();
private:
Ui::SystemFeatureInfo ui;
QSystemInfo* sysInfo;
};
#endif // SYSTEMFEATUREINFO_H
Source file
#include "SystemFeatureInfo.h"
SystemFeatureInfo::SystemFeatureInfo(QWidget *parent)
: QWidget(parent), sysInfo(NULL)
{
ui.setupUi(this);
sysInfo = new QSystemInfo();
QObject::connect(ui.featureComboBox,
SIGNAL(currentIndexChanged(int)),
this,
SLOT(checkFeatureAvailability(int)));
QObject::connect(ui.listVersionInfoButton,
SIGNAL(clicked()),
this,
SLOT(listFirmwareInformation()));
QObject::connect(ui.resetButton,
SIGNAL(clicked()),
this,
SLOT(resetAllFields()));
}
SystemFeatureInfo::~SystemFeatureInfo()
{
delete sysInfo;
sysInfo = NULL;
}
void SystemFeatureInfo::checkFeatureAvailability(int aIndex)
{
ASSERT(aIndex >=0 && aIndex <=13);
if(! aIndex)
{
ui.label->clear();
return;
}
bool val = sysInfo->hasFeatureSupported((QSystemInfo::Feature)(aIndex-1));
if(val)
{
ui.label->setText("Available");
}
else
{
ui.label->setText("Not available");
}
}
void SystemFeatureInfo::listFirmwareInformation()
{
if(sysInfo)
{
QString os = sysInfo->version(QSystemInfo::Os);
ui.OSlabel->setText(sysInfo->version(QSystemInfo::Os));
ui.qtLabel->setText(sysInfo->version(QSystemInfo::QtCore));
ui.firmwareLabel->setText(sysInfo->version(QSystemInfo::Firmware));
}
}
void SystemFeatureInfo::resetAllFields()
{
ui.featureComboBox->setCurrentIndex(0);
ui.label->clear();
ui.OSlabel->clear();
ui.qtLabel->clear();
ui.firmwareLabel->clear();
}
Output
Useful functions
- bool hasFeatureSupported(QSystemInfo::Feature feature);
- QString version(QSystemInfo::Version type, const QString & parameter = QString());
Keywords
Headers
- #include <qsysteminfo.h>
Classes
- QSystemInfo
- QString
- QStringList
- QButton
- QLabel
- QComboBox
Example Application
- A working example application is available to download from here: QSystemInfo part2.zip
Related articles
- Getting started with Qt Mobility APIs
- Archived:Setting up environment for Qt Mobility API
- Working with Carbide.c++ IDE for Qt Mobility APIs
- Working with QSystemInfo - System Information API - Part 1
- Working with QSystemDeviceInfo - System Information API - Part 1
- Working with QSystemStorageInfo - System Information API
- Working with QSystemDisplayInfo - System Information API
- Working with QSystemNetworkInfo - System Information API - Part 1
- Working with QSystemNetworkInfo - System Information API - Part 2



