settingswidget.cpp 2.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485
  1. #include "settingswidget.h"
  2. #include "ui_settingswidget.h"
  3. #include "dbman.cpp"
  4. #include <QButtonGroup>
  5. #include <QRegExp>
  6. #include <QValidator>
  7. #include <QMessageBox>
  8. #include <QDebug>
  9. settingsWidget::settingsWidget(QWidget *parent) :
  10. QWidget(parent),
  11. ui(new Ui::settingsWidget)
  12. {
  13. ui->setupUi(this);
  14. /*
  15. * General Tab
  16. */
  17. auto *themeGroup = new QButtonGroup;
  18. themeGroup->addButton(ui->systemThemeCheckBox, 0);
  19. themeGroup->addButton(ui->lightThemeCheckBox, 1);
  20. themeGroup->addButton(ui->darkThemeCheckBox, 2);
  21. /*connect(themeGroup,
  22. SIGNAL(idToggled(int)),
  23. this,
  24. SLOT(themeGroup_toggled(int)));*/
  25. /*connect(themeGroup,
  26. SIGNAL(idToggled(int)),
  27. SLOT(themeGroup_toggled(int)));*/
  28. connect(themeGroup, SIGNAL(buttonClicked(int)), this, SLOT(themeGroup_toggled(int)));
  29. switch (dbSettings::retreiveSetting(10).toInt()) {
  30. case 0:
  31. qDebug() << "System Theme";
  32. ui->systemThemeCheckBox->setChecked(true);
  33. break;
  34. case 1:
  35. qDebug() << "Light Theme";
  36. ui->lightThemeCheckBox->setChecked(true);
  37. break;
  38. case 2:
  39. qDebug() << "Dark Theme";
  40. ui->darkThemeCheckBox->setChecked(true);
  41. }
  42. /*
  43. * Flight Logging Tab
  44. */
  45. QString storedPrefix = dbSettings::retreiveSetting(50);
  46. if (storedPrefix.length() != 0){
  47. ui->flightNumberPrefixLineEdit->setText(storedPrefix);
  48. }
  49. QRegExp flightNumberPrefix_rx("[a-zA-Z]?[a-zA-Z]?[a-zA-Z]?[a-zA-Z]"); // allow max 4 letters (upper and lower)
  50. QValidator *flightNumberPrefixValidator = new QRegExpValidator(flightNumberPrefix_rx, this);
  51. ui->flightNumberPrefixLineEdit->setValidator(flightNumberPrefixValidator);
  52. }
  53. settingsWidget::~settingsWidget()
  54. {
  55. delete ui;
  56. }
  57. /*
  58. * Slots
  59. */
  60. void settingsWidget::on_flightNumberPrefixLineEdit_textEdited(const QString &arg1)
  61. {
  62. dbSettings::storeSetting(50, arg1);
  63. }
  64. void settingsWidget::themeGroup_toggled(int id)
  65. {
  66. dbSettings::storeSetting(10,QString::number(id));
  67. QMessageBox *info = new QMessageBox(this);
  68. info->setText("Theme change will take effect next time you start the application.");
  69. info->exec();
  70. }