2
0

settingswidget.cpp 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475
  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, SIGNAL(buttonClicked(int)), this, SLOT(themeGroup_toggled(int)));
  22. switch (dbSettings::retreiveSetting(10).toInt()) {
  23. case 0:
  24. qDebug() << "System Theme";
  25. ui->systemThemeCheckBox->setChecked(true);
  26. break;
  27. case 1:
  28. qDebug() << "Light Theme";
  29. ui->lightThemeCheckBox->setChecked(true);
  30. break;
  31. case 2:
  32. qDebug() << "Dark Theme";
  33. ui->darkThemeCheckBox->setChecked(true);
  34. }
  35. /*
  36. * Flight Logging Tab
  37. */
  38. QString storedPrefix = dbSettings::retreiveSetting(50);
  39. if (storedPrefix.length() != 0){
  40. ui->flightNumberPrefixLineEdit->setText(storedPrefix);
  41. }
  42. QRegExp flightNumberPrefix_rx("[a-zA-Z0-9]?[a-zA-Z0-9]?[a-zA-Z0-9]"); // allow max 3 letters (upper and lower) and numbers
  43. QValidator *flightNumberPrefixValidator = new QRegExpValidator(flightNumberPrefix_rx, this);
  44. ui->flightNumberPrefixLineEdit->setValidator(flightNumberPrefixValidator);
  45. }
  46. settingsWidget::~settingsWidget()
  47. {
  48. delete ui;
  49. }
  50. /*
  51. * Slots
  52. */
  53. void settingsWidget::on_flightNumberPrefixLineEdit_textEdited(const QString &arg1)
  54. {
  55. dbSettings::storeSetting(50, arg1);
  56. }
  57. void settingsWidget::themeGroup_toggled(int id)
  58. {
  59. dbSettings::storeSetting(10,QString::number(id));
  60. QMessageBox *info = new QMessageBox(this);
  61. info->setText("Theme change will take effect next time you start the application.");
  62. info->exec();
  63. }