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)      { |