×
Namespaces

Variants
Actions
(Difference between revisions)

Working with QSystemStorageInfo - System Information API

From Nokia Developer Wiki
Jump to: navigation, search
hamishwillee (Talk | contribs)
m (Text replace - "Category:MeeGo" to "Category:MeeGo Harmattan")
hamishwillee (Talk | contribs)
m (Text replace - "<code cpp>" to "<code cpp-qt>")
 
Line 42: Line 42:
 
== 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 49: Line 49:
 
== Implementing QSystemStorageInfo API ==
 
== Implementing QSystemStorageInfo API ==
 
* QSystemStorageInfo API is a part of the QtMobility namespace. So declare the QtMobility namespace as shown below:
 
* QSystemStorageInfo 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 SYSTEMSTORAGEINFO_H
 
#ifndef SYSTEMSTORAGEINFO_H
 
#define SYSTEMSTORAGEINFO_H
 
#define SYSTEMSTORAGEINFO_H
Line 86: Line 86:
  
 
== Source file ==
 
== Source file ==
<code cpp>
+
<code cpp-qt>
 
#include "SystemStorageInfo.h"
 
#include "SystemStorageInfo.h"
  

Latest revision as of 04:23, 11 October 2012

Article Metadata
Code ExampleTested with
Devices(s): Nokia 5800 xPressMusic
Compatibility
Platform(s): S60 3rd Edition, FP1, FP2
Symbian
Platform Security
Signing Required: Self-Signed
Capabilities: None
Article
Keywords: QSystemStorageInfo, QString, QStringList, QButton, QLabel, QComboBox
Created: kiran10182 (10 Mar 2010)
Last edited: hamishwillee (11 Oct 2012)

Contents

[edit] Overview

This article shows how to use QSystemStorageInfo API which is a part of the System Information API from Qt Mobility project.


[edit] What is covered in QSystemStorageInfo API

  • It is a part of the System Information API.
  • This article covers information about
    • Available drives of the device
    • Available disc space of the particular drive
    • Total disc space of the particular drive
    • Type of the particular drive


[edit] Capabilities required

  • None

[edit] UI design (.ui file)

QSystemStorageInfo UI.png

[edit] Project configuration file (.Pro file)

  • Add the Qt Mobility project configuration option in the .Pro file as shown below
CONFIG += mobility
MOBILITY += systeminfo

[edit] Implementing QSystemStorageInfo API

  • QSystemStorageInfo API is a part of the QtMobility namespace. So declare the QtMobility namespace as shown below:
using namespace QtMobility;

[edit] Header file

#ifndef SYSTEMSTORAGEINFO_H
#define SYSTEMSTORAGEINFO_H
 
#include <QtGui/QWidget>
#include "ui_SystemStorageInfo.h"
#include <qsysteminfo.h>
 
using namespace QtMobility;
class SystemStorageInfo : public QWidget
{
Q_OBJECT
 
public:
SystemStorageInfo(QWidget *parent = 0);
~SystemStorageInfo();
 
public slots:
void listLogicalDrives();
void listDriveInformation(int aDriveIndex);
void resetAllFields();
 
private:
Ui::SystemStorageInfo ui;
QSystemStorageInfo* storageInfo;
};
 
#endif // SYSTEMSTORAGEINFO_H


[edit] Source file

#include "SystemStorageInfo.h"
 
SystemStorageInfo::SystemStorageInfo(QWidget *parent)
: QWidget(parent), storageInfo(NULL)
{
ui.setupUi(this);
 
storageInfo = new QSystemStorageInfo();
 
QObject::connect(ui.driveComboBox,
SIGNAL(currentIndexChanged(int)),
this,
SLOT(listDriveInformation(int)));
QObject::connect(ui.storageInfoButton,
SIGNAL(clicked()),
this,
SLOT(listLogicalDrives()));
QObject::connect(ui.resetButton,
SIGNAL(clicked()),
this,
SLOT(resetAllFields()));
}
 
SystemStorageInfo::~SystemStorageInfo()
{
delete storageInfo;
}
 
void SystemStorageInfo::listLogicalDrives()
{
if(ui.driveComboBox->count() > 1)
{
//this has been called previously and combo box contains data already
ui.driveComboBox->showPopup();
return;
}
QStringList list = storageInfo->logicalDrives();
ui.driveComboBox->addItems(list);
ui.driveComboBox->showPopup();
}
 
void SystemStorageInfo::listDriveInformation(int aDriveIndex)
{
if(aDriveIndex == 0)
{
resetAllFields();
return;
}
// Set available disc space label
QString textValue = ui.driveComboBox->itemText(aDriveIndex);
qlonglong availableSpace = storageInfo->availableDiskSpace(textValue);
QString str = QString::number(availableSpace);
ui.availabelDiscSpaceLabel->setText(str);
 
// Set total disc space label
qlonglong totalSpace = storageInfo->totalDiskSpace(textValue);
str = QString::number(totalSpace);
ui.totalDiscSpaceLabel->setText(str);
 
// Set drive type label
QString labelValue;
QSystemStorageInfo::DriveType drvType = storageInfo->typeForDrive(textValue);
switch(drvType)
{
case QSystemStorageInfo::NoDrive:
{
labelValue = ("No drive");
break;
}
case QSystemStorageInfo::InternalDrive:
{
labelValue = ("Internal Drive");
break;
}
case QSystemStorageInfo::RemovableDrive:
{
labelValue = ("Removable Drive");
break;
}
case QSystemStorageInfo::RemoteDrive:
{
labelValue = ("Remote Drive");
break;
}
case QSystemStorageInfo::CdromDrive:
{
labelValue = ("CD ROM Drive");
break;
}
default:
{
break;
}
}
ui.driveTypeLabel->setText(labelValue);
}
 
void SystemStorageInfo::resetAllFields()
{
ui.driveComboBox->setCurrentIndex(0);
ui.availabelDiscSpaceLabel->clear();
ui.totalDiscSpaceLabel->clear();
ui.driveTypeLabel->clear();
}

[edit] Output

QSystemStorageInfo device.jpg


[edit] Useful functions

  • QStringList logicalDrives ();
  • qlonglong availableDiskSpace ( const QString & volumeDrive );
  • qlonglong totalDiskSpace ( const QString & volumeDrive );
  • QSystemStorageInfo::DriveType typeForDrive ( const QString & driveVolume );

[edit] Headers

  • #include <qsysteminfo.h>

[edit] Classes

  • QSystemStorageInfo
  • QString
  • QStringList
  • QButton
  • QLabel
  • QComboBox


[edit] Example Application


[edit] Related articles

[edit] Reference links

This page was last modified on 11 October 2012, at 04:23.
103 page views in the last 30 days.
×