examples/sysinfo/dialog.cpp
changeset 0 876b1a06bc25
equal deleted inserted replaced
-1:000000000000 0:876b1a06bc25
       
     1 /****************************************************************************
       
     2 **
       
     3 ** Copyright (C) 2010 Nokia Corporation and/or its subsidiary(-ies).
       
     4 ** All rights reserved.
       
     5 ** Contact: Nokia Corporation (qt-info@nokia.com)
       
     6 **
       
     7 ** This file is part of the Qt Mobility Components.
       
     8 **
       
     9 ** $QT_BEGIN_LICENSE:BSD$
       
    10 ** You may use this file under the terms of the BSD license as follows:
       
    11 **
       
    12 ** "Redistribution and use in source and binary forms, with or without
       
    13 ** modification, are permitted provided that the following conditions are
       
    14 ** met:
       
    15 **   * Redistributions of source code must retain the above copyright
       
    16 **     notice, this list of conditions and the following disclaimer.
       
    17 **   * Redistributions in binary form must reproduce the above copyright
       
    18 **     notice, this list of conditions and the following disclaimer in
       
    19 **     the documentation and/or other materials provided with the
       
    20 **     distribution.
       
    21 **   * Neither the name of Nokia Corporation and its Subsidiary(-ies) nor
       
    22 **     the names of its contributors may be used to endorse or promote
       
    23 **     products derived from this software without specific prior written
       
    24 **     permission.
       
    25 **
       
    26 ** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
       
    27 ** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
       
    28 ** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
       
    29 ** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
       
    30 ** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
       
    31 ** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
       
    32 ** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
       
    33 ** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
       
    34 ** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
       
    35 ** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
       
    36 ** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE."
       
    37 ** $QT_END_LICENSE$
       
    38 **
       
    39 ****************************************************************************/
       
    40 
       
    41 #include "dialog.h"
       
    42 #include <QMessageBox>
       
    43 #include <QTimer>
       
    44 
       
    45 Dialog::Dialog() :
       
    46     QWidget(),
       
    47     saver(NULL), systemInfo(NULL), di(NULL), ni(NULL)
       
    48 {
       
    49     setupUi(this);
       
    50     setupGeneral();
       
    51 
       
    52     connect(tabWidget,SIGNAL(currentChanged(int)),this,SLOT(tabChanged(int)));
       
    53     connect(versionComboBox,SIGNAL(activated(int)), this,SLOT(getVersion(int)));
       
    54     connect(featureComboBox,SIGNAL(activated(int)), this,SLOT(getFeature(int)));
       
    55     updateDeviceLockedState();
       
    56     QTimer *timer = new QTimer(this);
       
    57     connect(timer, SIGNAL(timeout()), this, SLOT(updateDeviceLockedState()));
       
    58     timer->start(1000);
       
    59 }
       
    60 
       
    61 Dialog::~Dialog()
       
    62 {
       
    63     delete systemInfo;
       
    64     delete di;
       
    65     delete saver;
       
    66 }
       
    67 
       
    68 void Dialog::changeEvent(QEvent *e)
       
    69 {
       
    70     QWidget::changeEvent(e);
       
    71     switch (e->type()) {
       
    72     case QEvent::LanguageChange:
       
    73         retranslateUi(this);
       
    74         break;
       
    75     default:
       
    76         break;
       
    77     }
       
    78 }
       
    79 
       
    80 void Dialog::tabChanged(int index)
       
    81 {
       
    82 #ifdef QTM_EXAMPLES_SMALL_SCREEN
       
    83     switch(index) {
       
    84     case 0:
       
    85         setupGeneral();
       
    86         break;
       
    87     case 1:
       
    88         setupGeneral();
       
    89         break;
       
    90     case 2:
       
    91         setupDevice();
       
    92         break;
       
    93     case 3:
       
    94         setupDevice();
       
    95         break;
       
    96     case 4:
       
    97         setupDevice();
       
    98         break;
       
    99     case 5:
       
   100         setupDisplay();
       
   101         break;
       
   102     case 6:
       
   103         setupStorage();
       
   104         break;
       
   105     case 7:
       
   106         setupNetwork();
       
   107         break;
       
   108     case 8:
       
   109         setupNetwork();
       
   110         break;
       
   111     case 9:
       
   112         setupNetwork();
       
   113         break;
       
   114     case 10:
       
   115         setupSaver();
       
   116         break;
       
   117     };
       
   118 #else
       
   119     switch(index) {
       
   120     case 0:
       
   121         setupGeneral();
       
   122         break;
       
   123     case 1:
       
   124         setupDevice();
       
   125         break;
       
   126     case 2:
       
   127         setupDisplay();
       
   128         break;
       
   129     case 3:
       
   130         setupStorage();
       
   131         break;
       
   132     case 4:
       
   133         setupNetwork();
       
   134         break;
       
   135     case 5:
       
   136         setupSaver();
       
   137         break;
       
   138     };
       
   139 #endif
       
   140 }
       
   141 
       
   142 void Dialog::setupGeneral()
       
   143 {
       
   144     delete systemInfo;
       
   145 //! [lang]
       
   146     systemInfo = new QSystemInfo(this);
       
   147     curLanguageLineEdit->setText( systemInfo->currentLanguage());
       
   148 //! [lang]
       
   149     languagesComboBox->clear();
       
   150     languagesComboBox->insertItems(0,systemInfo->availableLanguages());
       
   151     countryCodeLabel->setText(systemInfo->currentCountryCode());
       
   152 }
       
   153 
       
   154 void Dialog::setupDevice()
       
   155 {
       
   156     delete di;
       
   157 //! [createdi]
       
   158     di = new QSystemDeviceInfo(this);
       
   159 //! [createdi]
       
   160 //! [batteryLevel]
       
   161     batteryLevelBar->setValue(di->batteryLevel());
       
   162 //! [batteryLevel]
       
   163 
       
   164 //! [sig batteryLevelChanged]
       
   165     connect(di,SIGNAL(batteryLevelChanged(int)),
       
   166             this,SLOT(updateBatteryStatus(int)));
       
   167 //! [sig batteryLevelChanged]
       
   168 
       
   169     connect(di,SIGNAL(batteryStatusChanged(QSystemDeviceInfo::BatteryStatus)),
       
   170             this,SLOT(displayBatteryStatus(QSystemDeviceInfo::BatteryStatus)));
       
   171 
       
   172     connect(di,SIGNAL(powerStateChanged(QSystemDeviceInfo::PowerState)),
       
   173             this,SLOT(updatePowerState(QSystemDeviceInfo::PowerState)));
       
   174 
       
   175     ImeiLabel->setText(di->imei());
       
   176     imsiLabel->setText(di->imsi());
       
   177 //! [manuf-id]
       
   178     manufacturerLabel->setText(di->manufacturer());
       
   179 //! [manuf-id]
       
   180     modelLabel->setText(di->model());
       
   181 //! [productName]
       
   182     productLabel->setText(di->productName());
       
   183 //! [productName]
       
   184 
       
   185     deviceLockPushButton->setChecked(di->isDeviceLocked());
       
   186 
       
   187     updateSimStatus();
       
   188     updateProfile();
       
   189 
       
   190     connect(di, SIGNAL(currentProfileChanged(QSystemDeviceInfo::Profile)),
       
   191         this, SLOT(updateProfile(QSystemDeviceInfo::Profile)));
       
   192 
       
   193     if(di->currentPowerState() == QSystemDeviceInfo::BatteryPower) {
       
   194         radioButton_2->setChecked(true);
       
   195     } else  if(di->currentPowerState() == QSystemDeviceInfo::WallPower) {
       
   196         radioButton_3->setChecked(true);
       
   197     } else if(di->currentPowerState() == QSystemDeviceInfo::WallPowerChargingBattery) {
       
   198         radioButton_4->setChecked(true);
       
   199     } else {
       
   200         radioButton->setChecked(true);
       
   201     }
       
   202 
       
   203 //! [inputMethod flags]
       
   204     QSystemDeviceInfo::InputMethodFlags methods = di->inputMethodType();
       
   205     QStringList inputs;
       
   206     if((methods & QSystemDeviceInfo::Keys)){
       
   207         inputs << "Keys";
       
   208     }
       
   209     if((methods & QSystemDeviceInfo::Keypad)) {
       
   210         inputs << "Keypad";
       
   211     }
       
   212 //! [inputMethod flags]
       
   213     if((methods & QSystemDeviceInfo::Keyboard)) {
       
   214         inputs << "Keyboard";
       
   215     }
       
   216     if((methods & QSystemDeviceInfo::SingleTouch)) {
       
   217         inputs << "Touch Screen";
       
   218     }
       
   219     if((methods & QSystemDeviceInfo::MultiTouch)) {
       
   220         inputs << "Multi touch";
       
   221     }
       
   222     if((methods & QSystemDeviceInfo::Mouse)){
       
   223         inputs << "Mouse";
       
   224     }
       
   225 
       
   226     inputMethodLabel->setText(inputs.join(" "));
       
   227 }
       
   228 
       
   229 void Dialog::updateDeviceLockedState()
       
   230 {
       
   231     if (di)
       
   232         deviceLockPushButton->setChecked(di->isDeviceLocked());
       
   233 }
       
   234 
       
   235 void Dialog::updateProfile(QSystemDeviceInfo::Profile /*profile*/)
       
   236 {
       
   237    updateProfile();
       
   238 }
       
   239 
       
   240 
       
   241 void Dialog::setupDisplay()
       
   242 {
       
   243     QSystemDisplayInfo di;
       
   244     brightnessLineEdit->setText(QString::number(di.displayBrightness(0)));
       
   245     colorDepthLineEdit->setText(QString::number(di.colorDepth((0))));
       
   246 
       
   247 }
       
   248 
       
   249 void Dialog::setupStorage()
       
   250 {
       
   251     QSystemStorageInfo mi;
       
   252     storageTreeWidget->clear();
       
   253     storageTreeWidget->header()->setResizeMode(QHeaderView::ResizeToContents);
       
   254 
       
   255     QStringList vols = mi.logicalDrives();
       
   256     foreach(QString volName, vols) {
       
   257         QString type;
       
   258         QSystemStorageInfo::DriveType volType;
       
   259         volType = mi.typeForDrive(volName);
       
   260         if(volType == QSystemStorageInfo::InternalDrive) {
       
   261             type =  "Internal";
       
   262         }
       
   263 
       
   264         if(volType == QSystemStorageInfo::RemovableDrive) {
       
   265             type = "Removable";
       
   266         }
       
   267         if(volType == QSystemStorageInfo::CdromDrive) {
       
   268             type =  "Cdrom";
       
   269         }
       
   270         if(volType == QSystemStorageInfo::RemoteDrive) {
       
   271             type =  "Network";
       
   272         }
       
   273         QStringList items;
       
   274         items << volName;
       
   275         items << type;
       
   276         items << QString::number(mi.totalDiskSpace(volName));
       
   277         items << QString::number(mi.availableDiskSpace(volName));
       
   278         QTreeWidgetItem *item = new QTreeWidgetItem(items);
       
   279         storageTreeWidget->addTopLevelItem(item);
       
   280     }
       
   281 }
       
   282 
       
   283 void Dialog::setupNetwork()
       
   284 {
       
   285     delete ni;
       
   286 //! [networkInfo]
       
   287     ni = new QSystemNetworkInfo(this);
       
   288 //! [networkInfo]
       
   289 
       
   290     connect(netStatusComboBox,SIGNAL(activated(int)),
       
   291             this, SLOT(netStatusComboActivated(int)));
       
   292 
       
   293 //! [sig strength]
       
   294     connect(ni,SIGNAL(networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode, int)),
       
   295             this,SLOT(networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode,int)));
       
   296 //! [sig strength]
       
   297 
       
   298     connect(ni,SIGNAL(networkNameChanged(QSystemNetworkInfo::NetworkMode,QString)),
       
   299             this,SLOT(networkNameChanged(QSystemNetworkInfo::NetworkMode,QString)));
       
   300 
       
   301     connect(ni,SIGNAL(networkStatusChanged(QSystemNetworkInfo::NetworkMode,QSystemNetworkInfo::NetworkStatus)),
       
   302             this,SLOT(networkStatusChanged(QSystemNetworkInfo::NetworkMode,QSystemNetworkInfo::NetworkStatus)));
       
   303 
       
   304     connect(ni,SIGNAL(networkModeChanged(QSystemNetworkInfo::NetworkMode)),
       
   305             this,SLOT(networkModeChanged(QSystemNetworkInfo::NetworkMode)));
       
   306 
       
   307     cellIdLabel->setText(QString::number(ni->cellId()));
       
   308     locationAreaCodeLabel->setText(QString::number(ni->locationAreaCode()));
       
   309     currentMMCLabel->setText(ni->currentMobileCountryCode());
       
   310     currentMNCLabel->setText(ni->currentMobileNetworkCode());
       
   311 
       
   312     homeMMCLabel->setText(ni->homeMobileCountryCode());
       
   313     homeMNCLabel->setText(ni->homeMobileNetworkCode());
       
   314 
       
   315     networkModeChanged(ni->currentMode());
       
   316 
       
   317 }
       
   318 void Dialog::netStatusComboActivated(int index)
       
   319 {
       
   320     QString status;
       
   321     int reIndex = index;
       
   322 
       
   323     displayNetworkStatus(ni->networkStatus((QSystemNetworkInfo::NetworkMode)reIndex));
       
   324 
       
   325     macAddressLabel->setText(ni->macAddress((QSystemNetworkInfo::NetworkMode)reIndex));
       
   326 
       
   327     int strength = ni->networkSignalStrength((QSystemNetworkInfo::NetworkMode)reIndex);
       
   328     if(strength < 0)
       
   329         strength = 0;
       
   330     signalLevelProgressBar->setValue(strength);
       
   331 
       
   332     InterfaceLabel->setText(ni->interfaceForMode((QSystemNetworkInfo::NetworkMode)reIndex).humanReadableName());
       
   333 
       
   334     operatorNameLabel->setText(ni->networkName((QSystemNetworkInfo::NetworkMode)reIndex));
       
   335 }
       
   336 
       
   337 void Dialog::getVersion(int index)
       
   338 {
       
   339     QSystemInfo::Version version;
       
   340     switch(index) {
       
   341     case 0:
       
   342         versionLineEdit->setText("");
       
   343         break;
       
   344     case 1:
       
   345 //! [OS ver]
       
   346         version = QSystemInfo::Os;
       
   347 //! [OS ver]
       
   348         break;
       
   349     case 2:
       
   350 //! [Qt ver]
       
   351         version = QSystemInfo::QtCore;
       
   352 //! [Qt ver]
       
   353         break;
       
   354     case 3:
       
   355 //! [Firm ver]
       
   356         version = QSystemInfo::Firmware;
       
   357 //! [Firm ver]
       
   358         break;
       
   359     };
       
   360 
       
   361     QSystemInfo si;
       
   362     versionLineEdit->setText(si.version(version));
       
   363 }
       
   364 
       
   365 void Dialog::getFeature(int index)
       
   366 {
       
   367 //! [feature]
       
   368     QSystemInfo::Feature feature;
       
   369     switch(index) {
       
   370 //! [feature]
       
   371     case 0:
       
   372         return;
       
   373         break;
       
   374 //! [feature-bluetooth]
       
   375     case 1:
       
   376         feature = QSystemInfo::BluetoothFeature;
       
   377 //! [feature-bluetooth]
       
   378         break;
       
   379     case 2:
       
   380         feature = QSystemInfo::CameraFeature;
       
   381         break;
       
   382     case 3:
       
   383         feature = QSystemInfo::FmradioFeature;
       
   384         break;
       
   385     case 4:
       
   386         feature = QSystemInfo::IrFeature;
       
   387         break;
       
   388     case 5:
       
   389         feature = QSystemInfo::LedFeature;
       
   390         break;
       
   391     case 6:
       
   392         feature = QSystemInfo::MemcardFeature;
       
   393         break;
       
   394     case 7:
       
   395         feature = QSystemInfo::UsbFeature;
       
   396         break;
       
   397     case 8:
       
   398         feature = QSystemInfo::VibFeature;
       
   399         break;
       
   400     case 9:
       
   401         feature = QSystemInfo::WlanFeature;
       
   402         break;
       
   403     case 10:
       
   404         feature = QSystemInfo::SimFeature;
       
   405         break;
       
   406     case 11:
       
   407         feature = QSystemInfo::LocationFeature;
       
   408         break;
       
   409     case 12:
       
   410         feature = QSystemInfo::VideoOutFeature;
       
   411         break;
       
   412     case 13:
       
   413         feature = QSystemInfo::HapticsFeature;
       
   414         break;
       
   415     };
       
   416 //! [feature test]
       
   417     QSystemInfo si;
       
   418     featuresLineEdit->setText((si.hasFeatureSupported(feature) ? "true":"false" ));
       
   419 //! [feature test]
       
   420 }
       
   421 
       
   422 void Dialog::setupSaver()
       
   423 {
       
   424     if (!saver) {
       
   425         saver = new QSystemScreenSaver(this);
       
   426     }
       
   427 
       
   428     bool saverEnabled = saver->screenSaverInhibited();
       
   429 
       
   430 
       
   431     connect( saverInhibitedCheckBox, SIGNAL(clicked(bool)),
       
   432              this,SLOT(setSaverEnabled(bool)));
       
   433 
       
   434     saverInhibitedCheckBox->setChecked(saverEnabled);
       
   435 }
       
   436 
       
   437 
       
   438 void Dialog::setSaverEnabled(bool b)
       
   439 {
       
   440     if (b) {
       
   441         if (!saver) {
       
   442             saver = new QSystemScreenSaver(this);
       
   443         }
       
   444        if(saver->setScreenSaverInhibit()) {
       
   445         }
       
   446     } else {
       
   447         delete saver;
       
   448         saver = NULL;
       
   449     }
       
   450 }
       
   451 
       
   452 
       
   453 void Dialog::updateBatteryStatus(int level)
       
   454 {
       
   455     batteryLevelBar->setValue(level);
       
   456 }
       
   457 
       
   458 void Dialog::updatePowerState(QSystemDeviceInfo::PowerState newState)
       
   459 {
       
   460 
       
   461     switch (newState) {
       
   462     case QSystemDeviceInfo::BatteryPower:
       
   463         {
       
   464             radioButton_2->setChecked(true);
       
   465         }
       
   466         break;
       
   467     case QSystemDeviceInfo::WallPower:
       
   468         {
       
   469             radioButton_3->setChecked(true);
       
   470         }
       
   471         break;
       
   472     case QSystemDeviceInfo::WallPowerChargingBattery:
       
   473         {
       
   474             radioButton_4->setChecked(true);
       
   475         }
       
   476         break;
       
   477     case QSystemDeviceInfo::NoBatteryLevel:
       
   478         {
       
   479             radioButton->setChecked(true);
       
   480         }
       
   481         break;
       
   482     };
       
   483 }
       
   484 
       
   485 void Dialog::displayBatteryStatus(QSystemDeviceInfo::BatteryStatus status)
       
   486 {
       
   487     // this wont annoy users will it?
       
   488     QString msg;
       
   489 //    if(di->isBatteryCharging()) {
       
   490         switch(status) {
       
   491         case QSystemDeviceInfo::BatteryCritical:
       
   492             {
       
   493                 msg = " Battery is Critical (4% or less), please save your work or plug in the charger.";
       
   494                 QMessageBox::critical(this,"QSystemInfo",msg);
       
   495             }
       
   496             break;
       
   497         case QSystemDeviceInfo::BatteryVeryLow:
       
   498             {
       
   499                 msg = "Battery is Very Low (10%), please plug in the charger soon";
       
   500                 QMessageBox::warning(this,"QSystemInfo",msg);
       
   501             }
       
   502             break;
       
   503         case QSystemDeviceInfo::BatteryLow:
       
   504             {
       
   505                 msg = "Battery is Low (40% or less)";
       
   506                 QMessageBox::information(this,"QSystemInfo",msg);
       
   507 
       
   508             }
       
   509             break;
       
   510         case QSystemDeviceInfo::BatteryNormal:
       
   511             {
       
   512                 msg = "Battery is Normal (greater than 40%)";
       
   513                 QMessageBox::information(this,"QSystemInfo",msg);
       
   514             }
       
   515             break;
       
   516         case QSystemDeviceInfo::NoBatteryLevel:
       
   517             {
       
   518 
       
   519             }
       
   520             break;
       
   521         };
       
   522   //  }
       
   523 
       
   524 }
       
   525 
       
   526 void Dialog::networkSignalStrengthChanged(QSystemNetworkInfo::NetworkMode mode , int strength)
       
   527 {
       
   528     if(mode == QSystemNetworkInfo::WlanMode) {
       
   529         if(netStatusComboBox->currentText() == "Wlan") {
       
   530             signalLevelProgressBar->setValue(strength);
       
   531         }
       
   532     }
       
   533 
       
   534     if(mode == QSystemNetworkInfo::EthernetMode) {
       
   535         if(netStatusComboBox->currentText() == "Ethernet") {
       
   536             signalLevelProgressBar->setValue(strength);
       
   537         }
       
   538     }
       
   539 
       
   540     if(mode == QSystemNetworkInfo::GsmMode) {
       
   541         if(netStatusComboBox->currentText() == "Gsm") {
       
   542             signalLevelProgressBar->setValue(strength);
       
   543         }
       
   544     }
       
   545 
       
   546     if(mode == QSystemNetworkInfo::CdmaMode) {
       
   547         if(netStatusComboBox->currentText() == "Cdma") {
       
   548             signalLevelProgressBar->setValue(strength);
       
   549         }
       
   550     }
       
   551 
       
   552     if(mode == QSystemNetworkInfo::WcdmaMode) {
       
   553         if(netStatusComboBox->currentText() == "Wcdma") {
       
   554             signalLevelProgressBar->setValue(strength);
       
   555         }
       
   556     }
       
   557 
       
   558 }
       
   559 
       
   560 void Dialog::networkNameChanged(QSystemNetworkInfo::NetworkMode mode,const QString &text)
       
   561 {
       
   562     if(mode == QSystemNetworkInfo::WlanMode) {
       
   563         if(netStatusComboBox->currentText() == "Wlan") {
       
   564             operatorNameLabel->setText(text);
       
   565         }
       
   566     }
       
   567 
       
   568     if(mode == QSystemNetworkInfo::EthernetMode) {
       
   569         if(netStatusComboBox->currentText() == "Ethernet") {
       
   570             operatorNameLabel->setText(text);
       
   571         }
       
   572     }
       
   573 
       
   574     if(mode == QSystemNetworkInfo::GsmMode) {
       
   575         if(netStatusComboBox->currentText() == "Gsm") {
       
   576             operatorNameLabel->setText(text);
       
   577         }
       
   578     }
       
   579 
       
   580     if(mode == QSystemNetworkInfo::CdmaMode) {
       
   581         if(netStatusComboBox->currentText() == "Cdma") {
       
   582             operatorNameLabel->setText(text);
       
   583         }
       
   584     }
       
   585 
       
   586     if(mode == QSystemNetworkInfo::WcdmaMode) {
       
   587         if(netStatusComboBox->currentText() == "Wcdma") {
       
   588             operatorNameLabel->setText(text);
       
   589         }
       
   590     }
       
   591 
       
   592 }
       
   593 
       
   594 void Dialog::networkStatusChanged(QSystemNetworkInfo::NetworkMode mode , QSystemNetworkInfo::NetworkStatus status)
       
   595 {
       
   596     if(mode == QSystemNetworkInfo::WlanMode) {
       
   597         if(netStatusComboBox->currentText() == "Wlan") {
       
   598            displayNetworkStatus(status);
       
   599         }
       
   600     }
       
   601 
       
   602     if(mode == QSystemNetworkInfo::EthernetMode) {
       
   603         if(netStatusComboBox->currentText() == "Ethernet") {
       
   604            displayNetworkStatus(status);
       
   605         }
       
   606     }
       
   607 
       
   608     if(mode == QSystemNetworkInfo::GsmMode) {
       
   609         if(netStatusComboBox->currentText() == "Gsm") {
       
   610             displayNetworkStatus(status);
       
   611         }
       
   612     }
       
   613 
       
   614     if(mode == QSystemNetworkInfo::CdmaMode) {
       
   615         if(netStatusComboBox->currentText() == "Cdma") {
       
   616             displayNetworkStatus(status);
       
   617         }
       
   618     }
       
   619 
       
   620     if(mode == QSystemNetworkInfo::WcdmaMode) {
       
   621         if(netStatusComboBox->currentText() == "Wcdma") {
       
   622             displayNetworkStatus(status);
       
   623         }
       
   624     }
       
   625 
       
   626 }
       
   627 
       
   628 void Dialog::networkModeChanged(QSystemNetworkInfo::NetworkMode mode)
       
   629 {
       
   630     if(mode == QSystemNetworkInfo::WlanMode) {
       
   631         primaryModeLabel->setText("Wlan");
       
   632     }
       
   633 
       
   634     if(mode == QSystemNetworkInfo::EthernetMode) {
       
   635         primaryModeLabel->setText("Ethernet");
       
   636     }
       
   637 
       
   638     if(mode == QSystemNetworkInfo::GsmMode) {
       
   639         primaryModeLabel->setText("Gsm");
       
   640     }
       
   641 
       
   642     if(mode == QSystemNetworkInfo::CdmaMode) {
       
   643         primaryModeLabel->setText("Cdma");
       
   644     }
       
   645 
       
   646     if(mode == QSystemNetworkInfo::WcdmaMode) {
       
   647         primaryModeLabel->setText("Wcdma");
       
   648     }
       
   649     if(mode == QSystemNetworkInfo::UnknownMode) {
       
   650         primaryModeLabel->setText("None");
       
   651     }
       
   652 }
       
   653 
       
   654 
       
   655 void Dialog::displayNetworkStatus(QSystemNetworkInfo::NetworkStatus status)
       
   656 {
       
   657     QString stat;
       
   658     switch(status) {
       
   659     case QSystemNetworkInfo::UndefinedStatus:
       
   660         stat = "Undefined";
       
   661         break;
       
   662     case QSystemNetworkInfo::NoNetworkAvailable:
       
   663         stat = "No Network Available";
       
   664         break;
       
   665     case QSystemNetworkInfo::EmergencyOnly:
       
   666         stat = "Emergency Only";
       
   667         break;
       
   668     case QSystemNetworkInfo::Searching:
       
   669         stat = "Searching or Connecting";
       
   670         break;
       
   671     case QSystemNetworkInfo::Busy:
       
   672         stat = "Busy";
       
   673         break;
       
   674     case QSystemNetworkInfo::Connected:
       
   675         stat = "Connected";
       
   676         break;
       
   677     case QSystemNetworkInfo::HomeNetwork:
       
   678         stat = "Home Network";
       
   679         break;
       
   680     case QSystemNetworkInfo::Denied:
       
   681         stat = "Denied";
       
   682         break;
       
   683     case QSystemNetworkInfo::Roaming:
       
   684         stat = "Roaming";
       
   685         break;
       
   686     };
       
   687     cellNetworkStatusLabel->setText(stat);
       
   688 }
       
   689 
       
   690 void Dialog::updateProfile()
       
   691 {
       
   692     if(di) {
       
   693         QString profilestring;
       
   694         switch(di->currentProfile()) {
       
   695             case QSystemDeviceInfo::UnknownProfile:
       
   696             {
       
   697                 profilestring = "Unknown";
       
   698             }
       
   699             break;
       
   700             case QSystemDeviceInfo::SilentProfile:
       
   701             {
       
   702                 profilestring = "Silent";
       
   703             }
       
   704             break;
       
   705             case QSystemDeviceInfo::NormalProfile:
       
   706             {
       
   707                 profilestring = "Normal";
       
   708             }
       
   709             break;
       
   710             case QSystemDeviceInfo::LoudProfile:
       
   711             {
       
   712                 profilestring = "Loud";
       
   713             }
       
   714             break;
       
   715             case QSystemDeviceInfo::VibProfile:
       
   716             {
       
   717                 profilestring = "Vibrate";
       
   718             }
       
   719             break;
       
   720             case QSystemDeviceInfo::OfflineProfile:
       
   721             {
       
   722                 profilestring = "Offline";
       
   723             }
       
   724             break;
       
   725             case QSystemDeviceInfo::PowersaveProfile:
       
   726             {
       
   727                 profilestring = "Powersave";
       
   728             }
       
   729             break;
       
   730             case QSystemDeviceInfo::CustomProfile:
       
   731                 {
       
   732                     profilestring = "custom";
       
   733                 }
       
   734                 break;
       
   735         };
       
   736         profileLabel->setText(profilestring);
       
   737     }
       
   738 }
       
   739 
       
   740 
       
   741 void Dialog::updateSimStatus()
       
   742 {
       
   743     if(di) {
       
   744         QString simstring;
       
   745         switch(di->simStatus()) {
       
   746         case QSystemDeviceInfo::SimLocked:
       
   747             {
       
   748                 simstring = "Sim Locked";
       
   749             }
       
   750             break;
       
   751         case QSystemDeviceInfo::SimNotAvailable:
       
   752             {
       
   753                 simstring = "Sim not available";
       
   754             }
       
   755             break;
       
   756         case QSystemDeviceInfo::SingleSimAvailable:
       
   757             {
       
   758                 simstring = "Single Sim Available";
       
   759 
       
   760             }
       
   761             break;
       
   762         case QSystemDeviceInfo::DualSimAvailable:
       
   763             {
       
   764                 simstring = "Dual Sim available";
       
   765             }
       
   766             break;
       
   767 
       
   768         };
       
   769         simStatusLabel->setText(simstring);
       
   770     }
       
   771 }
       
   772 
       
   773