diff options
author | Lorn Potter <lorn.potter@nokia.com> | 2010-11-17 15:43:01 +1000 |
---|---|---|
committer | Lorn Potter <lorn.potter@nokia.com> | 2010-11-17 15:43:01 +1000 |
commit | 23c010b46e9c8a413cf8b0c3f5f5ee458e713f86 (patch) | |
tree | 2de43f7916ebf948192db98b759e4214a9cf7d23 /examples/sysinfo/dialog.cpp | |
parent | 6f9f84f80989cdb93465995763ee06e1b01d59fd (diff) |
update examples app
Diffstat (limited to 'examples/sysinfo/dialog.cpp')
-rw-r--r-- | examples/sysinfo/dialog.cpp | 189 |
1 files changed, 129 insertions, 60 deletions
diff --git a/examples/sysinfo/dialog.cpp b/examples/sysinfo/dialog.cpp index 180a643916..4446786169 100644 --- a/examples/sysinfo/dialog.cpp +++ b/examples/sysinfo/dialog.cpp @@ -44,7 +44,7 @@ Dialog::Dialog() : QWidget(), - saver(NULL), systemInfo(NULL), di(NULL), ni(NULL),sti(NULL) + saver(NULL), systemInfo(NULL), di(NULL), ni(NULL),sti(NULL),bi(NULL) { setupUi(this); setupGeneral(); @@ -95,7 +95,7 @@ void Dialog::tabChanged(int index) setupDevice(); break; case 4: - setupDevice(); + setupBattery(); break; case 5: setupDisplay(); @@ -137,24 +137,7 @@ void Dialog::setupDevice() //! [createdi] di = new QSystemDeviceInfo(this); //! [createdi] -//! [batteryLevel] - int level = di->batteryLevel(); - batteryLevelBar->setValue(level); - lcdNumber->display(level); -//! [batteryLevel] - -//! [sig batteryLevelChanged] - connect(di,SIGNAL(batteryLevelChanged(int)), - this,SLOT(updateBatteryStatus(int))); -//! [sig batteryLevelChanged] - - connect(di,SIGNAL(batteryStatusChanged(QSystemDeviceInfo::BatteryStatus)), - this,SLOT(displayBatteryStatus(QSystemDeviceInfo::BatteryStatus))); - connect(di,SIGNAL(powerStateChanged(QSystemDeviceInfo::PowerState)), - this,SLOT(updatePowerState(QSystemDeviceInfo::PowerState))); - - currentBatStat = di->batteryStatus(); ImeiLabel->setText(di->imei()); imsiLabel->setText(di->imsi()); @@ -174,16 +157,6 @@ void Dialog::setupDevice() connect(di, SIGNAL(currentProfileChanged(QSystemDeviceInfo::Profile)), this, SLOT(updateProfile(QSystemDeviceInfo::Profile))); - currentPowerState = di->currentPowerState(); - if(currentPowerState == QSystemDeviceInfo::BatteryPower) { - radioButton_2->setChecked(true); - } else if(currentPowerState == QSystemDeviceInfo::WallPower) { - radioButton_3->setChecked(true); - } else if(currentPowerState == QSystemDeviceInfo::WallPowerChargingBattery) { - radioButton_4->setChecked(true); - } else { - radioButton->setChecked(true); - } //! [inputMethod flags] QSystemDeviceInfo::InputMethodFlags methods = di->inputMethodType(); @@ -505,7 +478,7 @@ void Dialog::setSaverEnabled(bool b) } -void Dialog::updateBatteryStatus(int level) +void Dialog::updateBatteryStatus(qint32 level) { batteryLevelBar->setValue(level); lcdNumber->display(level); @@ -513,62 +486,68 @@ void Dialog::updateBatteryStatus(int level) void Dialog::updatePowerState(QSystemDeviceInfo::PowerState newState) { - currentPowerState = newState; - switch (newState) { - case QSystemDeviceInfo::BatteryPower: - { - radioButton_2->setChecked(true); - } - break; - case QSystemDeviceInfo::WallPower: - { - radioButton_3->setChecked(true); - } - break; - case QSystemDeviceInfo::WallPowerChargingBattery: - { - radioButton_4->setChecked(true); - } - break; - case QSystemDeviceInfo::NoBatteryLevel: - { - radioButton->setChecked(true); - } - break; - }; +// currentPowerState = newState; +// switch (newState) { +// case QSystemDeviceInfo::BatteryPower: +// { +// radioButton_2->setChecked(true); +// } +// break; +// case QSystemDeviceInfo::WallPower: +// { +// radioButton_3->setChecked(true); +// } +// break; +// case QSystemDeviceInfo::WallPowerChargingBattery: +// { +// radioButton_4->setChecked(true); +// } +// break; +// case QSystemDeviceInfo::NoBatteryLevel: +// { +// radioButton->setChecked(true); +// } +// break; +// }; } -void Dialog::displayBatteryStatus(QSystemDeviceInfo::BatteryStatus status) +void Dialog::displayBatteryStatus(QSystemBatteryInfo::BatteryStatus status) { - if(currentBatStat == status || currentPowerState != QSystemDeviceInfo::BatteryPower) + if(currentBatStat == status) return; QString msg; switch(status) { - case QSystemDeviceInfo::BatteryCritical: + case QSystemBatteryInfo::BatteryEmpty: + { + msg = "Battery is Empty (0%), shutting down."; + QMessageBox::critical(this,"QSystemInfo",msg); + } + break; + case QSystemBatteryInfo::BatteryCritical: { msg = "Battery is Critical (4% or less), please save your work or plug in the charger."; QMessageBox::critical(this,"QSystemInfo",msg); } break; - case QSystemDeviceInfo::BatteryVeryLow: + case QSystemBatteryInfo::BatteryVeryLow: { msg = "Battery is Very Low (10%), please plug in the charger soon"; QMessageBox::warning(this,"QSystemInfo",msg); } break; - case QSystemDeviceInfo::BatteryLow: + case QSystemBatteryInfo::BatteryLow: { msg = "Battery is Low (40% or less)"; QMessageBox::information(this,"QSystemInfo",msg); } break; - case QSystemDeviceInfo::BatteryNormal: + case QSystemBatteryInfo::BatteryOk: { msg = "Battery is Normal (greater than 40%)"; QMessageBox::information(this,"QSystemInfo",msg); } break; - case QSystemDeviceInfo::NoBatteryLevel: + case QSystemBatteryInfo::BatteryUnknown: { } @@ -849,3 +828,93 @@ void Dialog::bluetoothChanged(bool b) bluetoothPowerLabel->setText((b ? "On" : "Off")); } +void Dialog::setupBattery() +{ + delete bi; + bi = new QSystemBatteryInfo(this); + + connect(bi,SIGNAL(remainingCapacityPercentChanged(qint32)), + this,SLOT(updateBatteryStatus(qint32))); + + connect(bi,SIGNAL(batteryStatusChanged(QSystemBatteryInfo::BatteryStatus)), + this,SLOT(displayBatteryStatus(QSystemBatteryInfo::BatteryStatus))); + +// connect(bi,SIGNAL(powerStateChanged(QSystemDeviceInfo::PowerState)), +// this,SLOT(updatePowerState(QSystemDeviceInfo::PowerState))); + + connect(bi,SIGNAL(chargingStateChanged(QSystemBatteryInfo::ChargingState)), + this,SLOT(chargingStateChanged(QSystemBatteryInfo::ChargingState))); + + connect(bi,SIGNAL(chargerTypeChanged(QSystemBatteryInfo::ChargerType)), + this,SLOT(chargerTypeChanged(QSystemBatteryInfo::ChargerType))); + + connect(startMeasurementPushButton,SIGNAL(clicked()), + this,SLOT(startCurrentPushed())); + + + chargerTypeChanged(bi->chargerType()); + + + currentBatStat = bi->batteryStatus(); + + chargingStateChanged(bi->chargingState()); + + NominalCaplcdNumber->display(bi->nominalCapacity()); + + int level = bi->remainingCapacityPercent(); + batteryLevelBar->setValue(level); + lcdNumber->display(level); + + remainCaplcdNumber->display(bi->remainingCapacity()); + + voltagelcdNumber->display(bi->voltage()); + chargeTimelcdNumber->display(bi->remainingChargingTime()); + currentFLowlcdNumber->display(bi->currentFlow()); + remainingCapBarslcdNumber->display(bi->remainingCapacityBars()); + maxBarslcdNumber->display(bi->maxBars()); + + if (bi->energyMeasurementUnit() == QSystemBatteryInfo::UnitmAh) { + energyMeasurementUnit->setText("mAh"); + } else if (bi->energyMeasurementUnit() == QSystemBatteryInfo::UnitmWh) { + energyMeasurementUnit->setText("mWh"); + } else { + energyMeasurementUnit->setText("Unknown"); + } + +} + +void Dialog::chargingStateChanged(QSystemBatteryInfo::ChargingState chargingState) +{ + if(chargingState == QSystemBatteryInfo::NotCharging) { + chargingCheckBox->setChecked(false); + } else { + chargingCheckBox->setChecked(false); + } + + currentChargingState = chargingState; +} + +void Dialog::chargerTypeChanged(QSystemBatteryInfo::ChargerType chargerType) +{ + if(chargerType == QSystemBatteryInfo::BatteryEmpty) { + radioButton_2->setChecked(true); + } else if(chargerType == QSystemBatteryInfo::WallCharger) { + radioButton_3->setChecked(true); + } else if(chargerType == QSystemBatteryInfo::USBCharger) { + radioButton_4->setChecked(true); + } else if(chargerType == QSystemBatteryInfo::USB_500mACharger) { + radioButton_5->setChecked(true); + } else if(chargerType == QSystemBatteryInfo::USB_100mACharger) { + radioButton_6->setChecked(true); + } else if(chargerType == QSystemBatteryInfo::VariableCurrentCharger) { + radioButton_7->setChecked(true); + } else { + radioButton->setChecked(true); + } + currentChargerType = chargerType; +} + +void Dialog::startCurrentPushed() +{ + bi->startCurrentMeasurement(currentMeasurementSpinBox->value()); +} |