diff options
Diffstat (limited to 'src/frontend/qt_sdl/PowerManagement/PowerManagementDialog.cpp')
-rw-r--r-- | src/frontend/qt_sdl/PowerManagement/PowerManagementDialog.cpp | 30 |
1 files changed, 29 insertions, 1 deletions
diff --git a/src/frontend/qt_sdl/PowerManagement/PowerManagementDialog.cpp b/src/frontend/qt_sdl/PowerManagement/PowerManagementDialog.cpp index 0cd204d..49b1a55 100644 --- a/src/frontend/qt_sdl/PowerManagement/PowerManagementDialog.cpp +++ b/src/frontend/qt_sdl/PowerManagement/PowerManagementDialog.cpp @@ -31,14 +31,25 @@ PowerManagementDialog* PowerManagementDialog::currentDlg = nullptr; PowerManagementDialog::PowerManagementDialog(QWidget* parent) : QDialog(parent), ui(new Ui::PowerManagementDialog) { + inited = false; + ui->setupUi(this); setAttribute(Qt::WA_DeleteOnClose); - if (NDS::ConsoleType) + if (NDS::ConsoleType == 1) + { ui->grpDSBattery->setEnabled(false); + + oldDSiBatteryCharging = DSi_BPTWL::GetBatteryCharging(); + oldDSiBatteryLevel = DSi_BPTWL::GetBatteryLevel(); + } else + { ui->grpDSiBattery->setEnabled(false); + oldDSBatteryLevel = SPI_Powerman::GetBatteryLevelOkay(); + } + updateDSBatteryLevelControls(); ui->cbDSiBatteryCharging->setChecked(DSi_BPTWL::GetBatteryCharging()); @@ -52,6 +63,8 @@ PowerManagementDialog::PowerManagementDialog(QWidget* parent) : QDialog(parent), case DSi_BPTWL::batteryLevel_Full: dsiBatterySliderPos = 4; break; } ui->sliderDSiBatteryLevel->setValue(dsiBatterySliderPos); + + inited = true; } PowerManagementDialog::~PowerManagementDialog() @@ -61,6 +74,19 @@ PowerManagementDialog::~PowerManagementDialog() void PowerManagementDialog::done(int r) { + if (r != QDialog::Accepted) + { + if (NDS::ConsoleType == 1) + { + DSi_BPTWL::SetBatteryCharging(oldDSiBatteryCharging); + DSi_BPTWL::SetBatteryLevel(oldDSiBatteryLevel); + } + else + { + SPI_Powerman::SetBatteryLevelOkay(oldDSBatteryLevel); + } + } + QDialog::done(r); closeDlg(); @@ -91,6 +117,8 @@ void PowerManagementDialog::on_cbDSiBatteryCharging_toggled() void PowerManagementDialog::on_sliderDSiBatteryLevel_valueChanged(int value) { + if (!inited) return; + u8 newBatteryLevel; switch (value) { |