diff options
author | Arisotura <thetotalworm@gmail.com> | 2021-11-18 20:24:37 +0100 |
---|---|---|
committer | Arisotura <thetotalworm@gmail.com> | 2021-11-18 20:24:37 +0100 |
commit | 1fc775d964e7397efe4f896f6abaf7baffe8fdc3 (patch) | |
tree | 4d8d068e19423a1086bacd8118433a88f904f9b7 | |
parent | 08eda46706456f15e5e0080a816b6395a20d607b (diff) |
better suited entry method for the firmware birthday
-rw-r--r-- | src/frontend/qt_sdl/FirmwareSettingsDialog.cpp | 40 | ||||
-rw-r--r-- | src/frontend/qt_sdl/FirmwareSettingsDialog.h | 18 | ||||
-rw-r--r-- | src/frontend/qt_sdl/FirmwareSettingsDialog.ui | 66 |
3 files changed, 85 insertions, 39 deletions
diff --git a/src/frontend/qt_sdl/FirmwareSettingsDialog.cpp b/src/frontend/qt_sdl/FirmwareSettingsDialog.cpp index 698e20c..3924463 100644 --- a/src/frontend/qt_sdl/FirmwareSettingsDialog.cpp +++ b/src/frontend/qt_sdl/FirmwareSettingsDialog.cpp @@ -33,8 +33,15 @@ FirmwareSettingsDialog::FirmwareSettingsDialog(QWidget* parent) : QDialog(parent ui->languageBox->addItems(languages); ui->languageBox->setCurrentIndex(Config::FirmwareLanguage); - QDate birthDate = QDate(QDate::currentDate().year(), Config::FirmwareBirthdayMonth, Config::FirmwareBirthdayDay); - ui->birthdayEdit->setDate(birthDate); + for (int i = 1; i <= 31; i++) + { + ui->cbxBirthdayDay->addItem(QString("%1").arg(i)); + } + + ui->cbxBirthdayMonth->addItems(months); + ui->cbxBirthdayMonth->setCurrentIndex(Config::FirmwareBirthdayMonth - 1); + + ui->cbxBirthdayDay->setCurrentIndex(Config::FirmwareBirthdayDay - 1); for (int i = 0; i < 16; i++) { @@ -62,8 +69,8 @@ void FirmwareSettingsDialog::on_FirmwareSettingsDialog_accepted() Config::FirmwareLanguage = ui->languageBox->currentIndex(); Config::FirmwareFavouriteColour = ui->colorsEdit->currentIndex(); - Config::FirmwareBirthdayDay = ui->birthdayEdit->date().day(); - Config::FirmwareBirthdayMonth = ui->birthdayEdit->date().month(); + Config::FirmwareBirthdayDay = ui->cbxBirthdayDay->currentIndex() + 1; + Config::FirmwareBirthdayMonth = ui->cbxBirthdayMonth->currentIndex() + 1; Config::FirmwareOverrideSettings = ui->overrideFirmwareBox->isChecked(); std::string newMessage = ui->messageEdit->text().toStdString(); @@ -77,3 +84,28 @@ void FirmwareSettingsDialog::on_FirmwareSettingsDialog_rejected() { closeDlg(); } + +void FirmwareSettingsDialog::on_cbxBirthdayMonth_currentIndexChanged(int idx) +{ + // the DS firmware caps the birthday day depending on the birthday month + // for February, the limit is 29 + const int ndays[12] = {31, 29, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31}; + + int nday_old = ui->cbxBirthdayDay->count(); + int nday_cur = ndays[idx]; + + if (nday_cur > nday_old) + { + for (int i = nday_old+1; i <= nday_cur; i++) + { + ui->cbxBirthdayDay->insertItem(i-1, QString("%1").arg(i)); + } + } + else if (nday_cur < nday_old) + { + for (int i = nday_old; i >= nday_cur+1; i--) + { + ui->cbxBirthdayDay->removeItem(i-1); + } + } +} diff --git a/src/frontend/qt_sdl/FirmwareSettingsDialog.h b/src/frontend/qt_sdl/FirmwareSettingsDialog.h index af9d6fd..518274e 100644 --- a/src/frontend/qt_sdl/FirmwareSettingsDialog.h +++ b/src/frontend/qt_sdl/FirmwareSettingsDialog.h @@ -80,6 +80,22 @@ public: "Spanish" }; + const QStringList months + { + "January", + "February", + "March", + "April", + "May", + "June", + "July", + "August", + "September", + "October", + "November", + "December" + }; + explicit FirmwareSettingsDialog(QWidget* parent); ~FirmwareSettingsDialog(); @@ -105,6 +121,8 @@ private slots: void on_FirmwareSettingsDialog_accepted(); void on_FirmwareSettingsDialog_rejected(); + void on_cbxBirthdayMonth_currentIndexChanged(int idx); + private: Ui::FirmwareSettingsDialog* ui; }; diff --git a/src/frontend/qt_sdl/FirmwareSettingsDialog.ui b/src/frontend/qt_sdl/FirmwareSettingsDialog.ui index 6377e94..5a270e7 100644 --- a/src/frontend/qt_sdl/FirmwareSettingsDialog.ui +++ b/src/frontend/qt_sdl/FirmwareSettingsDialog.ui @@ -7,7 +7,7 @@ <x>0</x> <y>0</y> <width>511</width> - <height>272</height> + <height>196</height> </rect> </property> <property name="sizePolicy"> @@ -24,7 +24,10 @@ <enum>QLayout::SetFixedSize</enum> </property> <item> - <layout class="QFormLayout" name="formLayout"> + <layout class="QGridLayout" name="gridLayout"> + <item row="2" column="1"> + <widget class="QComboBox" name="cbxBirthdayDay"/> + </item> <item row="0" column="0"> <widget class="QLabel" name="usernameLabel"> <property name="text"> @@ -32,16 +35,17 @@ </property> </widget> </item> - <item row="0" column="1"> - <widget class="QLineEdit" name="usernameEdit"> + <item row="4" column="0"> + <widget class="QLabel" name="label_3"> <property name="text"> - <string>melonDS</string> - </property> - <property name="maxLength"> - <number>10</number> + <string>Message:</string> </property> - <property name="clearButtonEnabled"> - <bool>false</bool> + </widget> + </item> + <item row="3" column="0"> + <widget class="QLabel" name="label_2"> + <property name="text"> + <string>Color:</string> </property> </widget> </item> @@ -52,9 +56,6 @@ </property> </widget> </item> - <item row="1" column="1"> - <widget class="QComboBox" name="languageBox"/> - </item> <item row="2" column="0"> <widget class="QLabel" name="label_4"> <property name="text"> @@ -62,37 +63,32 @@ </property> </widget> </item> - <item row="2" column="1"> - <widget class="QDateEdit" name="birthdayEdit"> - <property name="displayFormat"> - <string>dd/MM</string> - </property> - <property name="calendarPopup"> - <bool>true</bool> - </property> - </widget> + <item row="2" column="2"> + <widget class="QComboBox" name="cbxBirthdayMonth"/> </item> - <item row="3" column="0"> - <widget class="QLabel" name="label_2"> + <item row="1" column="1" colspan="2"> + <widget class="QComboBox" name="languageBox"/> + </item> + <item row="0" column="1" colspan="2"> + <widget class="QLineEdit" name="usernameEdit"> <property name="text"> - <string>Color:</string> + <string>melonDS</string> + </property> + <property name="maxLength"> + <number>10</number> + </property> + <property name="clearButtonEnabled"> + <bool>false</bool> </property> </widget> </item> - <item row="3" column="1"> + <item row="3" column="1" colspan="2"> <widget class="QComboBox" name="colorsEdit"/> </item> - <item row="4" column="0"> - <widget class="QLabel" name="label_3"> - <property name="text"> - <string>Message:</string> - </property> - </widget> - </item> - <item row="4" column="1"> + <item row="4" column="1" colspan="2"> <widget class="QLineEdit" name="messageEdit"/> </item> - <item row="5" column="0" colspan="2"> + <item row="5" column="0" colspan="3"> <widget class="QCheckBox" name="overrideFirmwareBox"> <property name="text"> <string>Override settings from external firmware</string> |