Browse Source

Completed refactor of ini keys NEEDS DEBUG

George 4 years ago
parent
commit
82531bfb09
5 changed files with 126 additions and 100 deletions
  1. 1 1
      main.cpp
  2. 71 52
      src/classes/asettings.cpp
  3. 22 18
      src/classes/asettings.h
  4. 4 0
      src/gui/dialogues/firstrundialog.cpp
  5. 28 29
      src/gui/widgets/settingswidget.cpp

+ 1 - 1
main.cpp

@@ -48,7 +48,7 @@ int main(int argc, char *argv[])
     }
 
     ASettings::setup();
-
+    DEB << "HELLO???????????";
     FirstRunDialog().exec();
     aDB()->connect();
 //    if (!ASettings::read("setup/setup_complete").toBool()) {

+ 71 - 52
src/classes/asettings.cpp

@@ -18,47 +18,54 @@
 #include "asettings.h"
 #include "src/astandardpaths.h"
 #include <QSettings>
+#include <algorithm>
+#include <iterator>
+
 
 QMap<ASettings::Main, QString> ASettings::mainMap = {
-    {Main::Theme, "theme"},
-    {Main::ThemeID, "theme_id"}, // inconsistent naming
+    {Main::Theme,   QStringLiteral("theme")},
+    {Main::ThemeID, QStringLiteral("theme_id")}, // inconsistent naming
+};
+
+QMap<ASettings::LogBook, QString> ASettings::logBookMap = {
+    {LogBook::View, QStringLiteral("view")},
 };
 
 QMap<ASettings::UserData, QString> ASettings::userDataMap = {
-    {UserData::LastName, "lastname"},
-    {UserData::FirstName, "firstname" },
-    {UserData::Company, "company"},
-    {UserData::EmployeeID, "employeeid"},
-    {UserData::Phone, "phone"},
-    {UserData::Email, "email"},
-    {UserData::DisplaySelfAs, "displayselfas"},
-    {UserData::Alias, "alias"},
-    {UserData::AcSortColumn, "acSortColumn"},  // [G]: inconsistent naming
-    {UserData::PilSortColumn, "pilSortColumn"},
-    {UserData::AcAllowIncomplete, "acAllowIncomplete"},
+    {UserData::LastName,          QStringLiteral("lastname")},
+    {UserData::FirstName,         QStringLiteral("firstname") },
+    {UserData::Company,           QStringLiteral("company")},
+    {UserData::EmployeeID,        QStringLiteral("employeeid")},
+    {UserData::Phone,             QStringLiteral("phone")},
+    {UserData::Email,             QStringLiteral("email")},
+    {UserData::DisplaySelfAs,     QStringLiteral("displayselfas")},
+    {UserData::Alias,             QStringLiteral("alias")},
+    {UserData::AcSortColumn,      QStringLiteral("acSortColumn")},  // [G]: inconsistent naming
+    {UserData::PilSortColumn,     QStringLiteral("pilSortColumn")},
+    {UserData::AcAllowIncomplete, QStringLiteral("acAllowIncomplete")},
 };
 
 QMap<ASettings::FlightLogging, QString> ASettings::flightLoggingMap = {
-    {FlightLogging::Function, "function"},
-    {FlightLogging::Approach, "approach"},
-    {FlightLogging::NightLogging, "nightlogging"},
-    {FlightLogging::LogIFR, "logIfr"},
-    {FlightLogging::FlightNumberPrefix, "flightnumberPrefix"},
-    {FlightLogging::NumberTakeoffs, "numberTakeoffs"},
-    {FlightLogging::NumberLandings, "numberLandings"},
-    {FlightLogging::PopupCalendar,  "popupCalendar"},
-    {FlightLogging::PilotFlying, "pilotFlying"},
-    {FlightLogging::NightAngle, "nightangle"},
-    {FlightLogging::Rules, "rules"},
+    {FlightLogging::Function,           QStringLiteral("function")},
+    {FlightLogging::Approach,           QStringLiteral("approach")},
+    {FlightLogging::NightLogging,       QStringLiteral("nightlogging")},
+    {FlightLogging::LogIFR,             QStringLiteral("logIfr")},
+    {FlightLogging::FlightNumberPrefix, QStringLiteral("flightnumberPrefix")},
+    {FlightLogging::NumberTakeoffs,     QStringLiteral("numberTakeoffs")},
+    {FlightLogging::NumberLandings,     QStringLiteral("numberLandings")},
+    {FlightLogging::PopupCalendar,      QStringLiteral("popupCalendar")},
+    {FlightLogging::PilotFlying,        QStringLiteral("pilotFlying")},
+    {FlightLogging::NightAngle,         QStringLiteral("nightangle")},
+    {FlightLogging::Rules,              QStringLiteral("rules")},
 };
 
 QMap<ASettings::Setup, QString> ASettings::setupMap = {
-    {Setup::SetupComplete, "setup_complete"},  // inconsistent naming
+    {Setup::SetupComplete, QStringLiteral("setup_complete")},  // inconsistent naming
 };
 
 QMap<ASettings::NewFlight, QString> ASettings::newFlightMap = {
-    {NewFlight::FunctionComboBox, "FunctionComboBox"},  // inconsistent naming
-    {NewFlight::CalendarCheckBox, "calendarCheckBox"},
+    {NewFlight::FunctionComboBox, QStringLiteral("FunctionComboBox")},  // inconsistent naming
+    {NewFlight::CalendarCheckBox, QStringLiteral("calendarCheckBox")},
 };
 
 void ASettings::setup()
@@ -71,50 +78,62 @@ void ASettings::setup()
 // Read/Write
 //
 
-QVariant ASettings::read(const Main key)
-{ return QSettings().value(QStringLiteral("main/") + mainMap[key]); }
+QVariant ASettings::read(const FlightLogging key)
+{ return QSettings().value(stringOfKey(key)); }
 
-void ASettings::write(const Main key, const QVariant &val)
-{ QSettings().setValue(QStringLiteral("main/") + mainMap[key], val); }
+void ASettings::write(const FlightLogging key, const QVariant &val)
+{ QSettings().setValue(stringOfKey(key), val); }
 
-QVariant ASettings::read(const UserData key)
-{ return QSettings().value(QStringLiteral("userdata/") + userDataMap[key]); }
+QVariant ASettings::read(const LogBook key)
+{ return QSettings().value(stringOfKey(key)); }
 
-void ASettings::write(const UserData key, const QVariant &val)
-{ QSettings().setValue(QStringLiteral("userdata/") + userDataMap[key], val); }
+void ASettings::write(const LogBook key, const QVariant &val)
+{ QSettings().setValue(stringOfKey(key), val); }
 
-QVariant ASettings::read(const FlightLogging key)
-{ return QSettings().value(QStringLiteral("flightlogging/") + flightLoggingMap[key]); }
+QVariant ASettings::read(const Main key)
+{ return QSettings().value(stringOfKey(key)); }
 
-void ASettings::write(const FlightLogging key, const QVariant &val)
-{ QSettings().setValue(QStringLiteral("flightlogging/") + flightLoggingMap[key], val); }
+void ASettings::write(const Main key, const QVariant &val)
+{ QSettings().setValue(stringOfKey(key), val); }
 
 QVariant ASettings::read(const Setup key)
-{ return QSettings().value(QStringLiteral("setup/") + setupMap[key]); }
+{ return QSettings().value(stringOfKey(key)); }
 
 void ASettings::write(const Setup key, const QVariant &val)
-{ QSettings().setValue(QStringLiteral("setup/") + setupMap[key], val); }
+{ QSettings().setValue(stringOfKey(key), val); }
 
 QVariant ASettings::read(const NewFlight key)
-{ return QSettings().value(QStringLiteral("NewFlight/") + newFlightMap[key]); }
+{ return QSettings().value(stringOfKey(key)); }
 
 void ASettings::write(const NewFlight key, const QVariant &val)
-{ QSettings().setValue(QStringLiteral("NewFlight/") + newFlightMap[key], val); }
+{ QSettings().setValue(stringOfKey(key), val); }
+
+QVariant ASettings::read(const UserData key)
+{ return QSettings().value(stringOfKey(key)); }
+
+void ASettings::write(const UserData key, const QVariant &val)
+{ QSettings().setValue(stringOfKey(key), val); }
 
 //
-// to QString conversion
+// QString conversion
 //
-QString ASettings::stringOfKey(const Main key)
-{ return mainMap[key]; }
+QString ASettings::stringOfKey (const ASettings::FlightLogging key)
+{ return QStringLiteral("flightlogging/") + flightLoggingMap[key]; }
+
+QString ASettings::stringOfKey (const ASettings::LogBook key)
+{ return QStringLiteral("logbook/") + logBookMap[key]; }
+
+QString ASettings::stringOfKey (const ASettings::Main key)
+{ return QStringLiteral("main/") + mainMap[key]; }
 
-QString ASettings::stringOfKey(const UserData key)
-{ return userDataMap[key]; }
+QString ASettings::stringOfKey (const ASettings::NewFlight key)
+{ return QStringLiteral("NewFlight/") + newFlightMap[key]; }
 
-QString ASettings::stringOfKey(const FlightLogging key)
-{ return flightLoggingMap[key]; }
+QString ASettings::stringOfKey (const ASettings::Setup key)
+{ return QStringLiteral("setup/") + setupMap[key]; }
 
-QString ASettings::stringOfKey(const Setup key)
-{ return setupMap[key]; }
+QString ASettings::stringOfKey (const ASettings::UserData key)
+{ return QStringLiteral("userdata/") + userDataMap[key]; }
 
 QSettings ASettings::settings()
 { return QSettings(); }

+ 22 - 18
src/classes/asettings.h

@@ -77,25 +77,33 @@ public:
      */
     static void setup();
 
-    static inline QVariant read(const Main key);
-    static inline void write(const Main key, const QVariant &val);
+    static QVariant read(const Setup key);
+    static void write(const Setup key, const QVariant &val);
 
-    static inline QVariant read(const FlightLogging key);
-    static inline void write(const UserData key, const QVariant &val);
+    static QVariant read(const LogBook key);
+    static void write(const LogBook key, const QVariant &val);
 
-    static inline QVariant read(const UserData key);
-    static inline void write(const FlightLogging key, const QVariant &val);
+    static QVariant read(const Main key);
+    static void write(const Main key, const QVariant &val);
 
-    static inline QVariant read(const Setup key);
-    static inline void write(const Setup key, const QVariant &val);
+    static QVariant read(const FlightLogging key);
+    static void write(const UserData key, const QVariant &val);
 
-    static inline QVariant read(const NewFlight key);
-    static inline void write(const NewFlight key, const QVariant &val);
+    static QVariant read(const UserData key);
+    static void write(const FlightLogging key, const QVariant &val);
 
-    static inline QString stringOfKey(const Main key);
-    static inline QString stringOfKey(const UserData key);
-    static inline QString stringOfKey(const FlightLogging key);
-    static inline QString stringOfKey(const Setup key);
+    static QVariant read(const NewFlight key);
+    static void write(const NewFlight key, const QVariant &val);
+
+    /*!
+     * \brief Return "ini_header/key"
+     */
+    static QString stringOfKey(const Main key);
+    static QString stringOfKey(const LogBook key);
+    static QString stringOfKey(const NewFlight key);
+    static QString stringOfKey(const FlightLogging key);
+    static QString stringOfKey(const Setup key);
+    static QString stringOfKey(const UserData key);
 
     static QSettings settings();
 
@@ -107,10 +115,6 @@ private:
     static QMap<Setup, QString> setupMap;
     static QMap<NewFlight, QString> newFlightMap;
 
-// [G]: no need for these anymore
-//	static QVariant read(const QString &key);
-//	static void write(const QString &key, const QVariant &val);
-
 };
 
 #endif // ASETTINGS_H

+ 4 - 0
src/gui/dialogues/firstrundialog.cpp

@@ -115,6 +115,7 @@ void FirstRunDialog::finish()
     if (!finishSetup()) {
         QMessageBox message_box(this);
         message_box.setText("Errors have ocurred creating the database. Without a working database The application will not be usable.");
+        message_box.exec();
     }
     ASettings::write(ASettings::Setup::SetupComplete, true);
     aDB()->disconnect(); // reset db connection to refresh layout after initial setup.
@@ -129,12 +130,15 @@ void FirstRunDialog::finish()
     } else {
         QMessageBox message_box(this);
         message_box.setText("Errors have ocurred creating the database. Without a working database The application will not be usable.");
+        message_box.exec();
     }
 }
 
 bool FirstRunDialog::finishSetup()
 {
+
     QMessageBox confirm;
+    DEB << "TESTETESTS";
     confirm.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
     confirm.setDefaultButton(QMessageBox::No);
     confirm.setIcon(QMessageBox::Question);

+ 28 - 29
src/gui/widgets/settingswidget.cpp

@@ -88,12 +88,11 @@ void SettingsWidget::readSettings()
     ui->approachComboBox->setCurrentText(ASettings::read(ASettings::FlightLogging::Approach).toString());
     ui->nightComboBox->setCurrentIndex(ASettings::read(ASettings::FlightLogging::NightLogging).toInt());
     ui->prefixLineEdit->setText(ASettings::read(ASettings::FlightLogging::FlightNumberPrefix).toString());
-    //////////////////// CONTINUE changin "setup/setup_complete" to enum of ASETTINGS
 
     /*
      * Misc Tab
      */
-    switch (ASettings::read("main/theme").toInt()) {
+    switch (ASettings::read(ASettings::Main::Theme).toInt()) {
     case 0:
         ui->systemThemeCheckBox->setChecked(true);
         break;
@@ -103,13 +102,13 @@ void SettingsWidget::readSettings()
     case 2:
         ui->darkThemeCheckBox->setChecked(true);
     }
-    ui->logbookViewComboBox->setCurrentIndex(ASettings::read("logbook/view").toInt());
+    ui->logbookViewComboBox->setCurrentIndex(ASettings::read(ASettings::LogBook::View).toInt());
     /*
      * Aircraft Tab
      */
-    ui->acSortComboBox->setCurrentIndex(ASettings::read("userdata/acSortColumn").toInt());
-    ui->pilotSortComboBox->setCurrentIndex(ASettings::read("userdata/pilSortColumn").toInt());
-    ui->acAllowIncompleteComboBox->setCurrentIndex(ASettings::read("userdata/acAllowIncomplete").toInt());
+    ui->acSortComboBox->setCurrentIndex(ASettings::read(ASettings::UserData::AcSortColumn).toInt());
+    ui->pilotSortComboBox->setCurrentIndex(ASettings::read(ASettings::UserData::PilSortColumn).toInt());
+    ui->acAllowIncompleteComboBox->setCurrentIndex(ASettings::read(ASettings::UserData::AcAllowIncomplete).toInt());
 }
 
 void SettingsWidget::setupValidators()
@@ -174,10 +173,10 @@ void SettingsWidget::updatePersonalDetails()
 void SettingsWidget::on_lastnameLineEdit_editingFinished()
 {
     if(ui->lastnameLineEdit->text().isEmpty()){
-        ui->lastnameLineEdit->setText(ASettings::read("userdata/lastname").toString());
+        ui->lastnameLineEdit->setText(ASettings::read(ASettings::UserData::LastName).toString());
         ui->lastnameLineEdit->setFocus();
     } else {
-        ASettings::write("userdata/lastname",ui->lastnameLineEdit->text());
+        ASettings::write(ASettings::UserData::LastName, ui->lastnameLineEdit->text());
         updatePersonalDetails();
     }
 }
@@ -185,35 +184,35 @@ void SettingsWidget::on_lastnameLineEdit_editingFinished()
 void SettingsWidget::on_firstnameLineEdit_editingFinished()
 {
     if(ui->firstnameLineEdit->text().isEmpty()){
-        ui->firstnameLineEdit->setText(ASettings::read("userdata/firstname").toString());
+        ui->firstnameLineEdit->setText(ASettings::read(ASettings::UserData::FirstName).toString());
         ui->firstnameLineEdit->setFocus();
     } else {
-        ASettings::write("userdata/firstname",ui->firstnameLineEdit->text());
+        ASettings::write(ASettings::UserData::FirstName,ui->firstnameLineEdit->text());
         updatePersonalDetails();
     }
 }
 
 void SettingsWidget::on_companyLineEdit_editingFinished()
 {
-    ASettings::write("userdata/company", ui->companyLineEdit->text());
+    ASettings::write(ASettings::UserData::Company, ui->companyLineEdit->text());
     updatePersonalDetails();
 }
 
 void SettingsWidget::on_employeeidLineEdit_editingFinished()
 {
-    ASettings::write("userdata/employeeid", ui->employeeidLineEdit->text());
+    ASettings::write(ASettings::UserData::EmployeeID, ui->employeeidLineEdit->text());
     updatePersonalDetails();
 }
 
 void SettingsWidget::on_emailLineEdit_editingFinished()
 {
-    ASettings::write("userdata/email", ui->emailLineEdit->text());
+    ASettings::write(ASettings::UserData::Email, ui->emailLineEdit->text());
     updatePersonalDetails();
 }
 
 void SettingsWidget::on_phoneLineEdit_editingFinished()
 {
-    ASettings::write("userdata/phone", ui->phoneLineEdit->text());
+    ASettings::write(ASettings::UserData::Phone, ui->phoneLineEdit->text());
     updatePersonalDetails();
 }
 
@@ -223,43 +222,43 @@ void SettingsWidget::on_phoneLineEdit_editingFinished()
 
 void SettingsWidget::on_aliasComboBox_currentIndexChanged(int index)
 {
-    ASettings::write("userdata/displayselfas", index);
+    ASettings::write(ASettings::UserData::DisplaySelfAs, index);
     updatePersonalDetails();
 }
 
 void SettingsWidget::on_functionComboBox_currentIndexChanged(const QString &arg1)
 {
-    ASettings::write("flightlogging/function", arg1);
+    ASettings::write(ASettings::FlightLogging::Function, arg1);
 }
 
 void SettingsWidget::on_rulesComboBox_currentIndexChanged(const QString &arg1)
 {
-    ASettings::write("flightlogging/rules", arg1);
+    ASettings::write(ASettings::FlightLogging::Rules, arg1);
 }
 
 void SettingsWidget::on_approachComboBox_currentIndexChanged(const QString &arg1)
 {
-    ASettings::write("flightlogging/approach", arg1);
+    ASettings::write(ASettings::FlightLogging::Approach, arg1);
 }
 
 void SettingsWidget::on_nightComboBox_currentIndexChanged(int index)
 {
-    ASettings::write("flightlogging/nightlogging", index);
+    ASettings::write(ASettings::FlightLogging::NightLogging, index);
     switch (index) {
     case 1:
-        ASettings::write("flightlogging/nightangle", -6);
+        ASettings::write(ASettings::FlightLogging::NightAngle, -6);
         break;
     case 2:
-        ASettings::write("flightlogging/nightangle", 0);
+        ASettings::write(ASettings::FlightLogging::NightAngle, 0);
         break;
     default:
-        ASettings::write("flightlogging/nightangle", -6);
+        ASettings::write(ASettings::FlightLogging::NightAngle, -6);
     }
 }
 
 void SettingsWidget::on_prefixLineEdit_textChanged(const QString &arg1)
 {
-    ASettings::write("flightlogging/flightnumberPrefix", arg1);
+    ASettings::write(ASettings::FlightLogging::FlightNumberPrefix, arg1);
 
 }
 
@@ -268,7 +267,7 @@ void SettingsWidget::on_prefixLineEdit_textChanged(const QString &arg1)
  */
 void SettingsWidget::onThemeGroup_buttonClicked(int theme_id)
 {
-    ASettings::write("main/theme", theme_id);
+    ASettings::write(ASettings::Main::Theme, theme_id);
 
     QMessageBox::StandardButton reply;
     reply = QMessageBox::question(this, "Changing Themes",
@@ -286,22 +285,22 @@ void SettingsWidget::onThemeGroup_buttonClicked(int theme_id)
 }
 void SettingsWidget::on_logbookViewComboBox_currentIndexChanged(int index)
 {
-    ASettings::write("logbook/view", index);
+    ASettings::write(ASettings::LogBook::View, index);
     emit viewSelectionChanged(index);
 }
 void SettingsWidget::on_pilotSortComboBox_currentIndexChanged(int index)
 {
-    ASettings::write("userdata/pilSortColumn", index);
+    ASettings::write(ASettings::UserData::PilSortColumn, index);
 }
 
 void SettingsWidget::on_acSortComboBox_currentIndexChanged(int index)
 {
-    ASettings::write("userdata/acSortColumn", index);
+    ASettings::write(ASettings::UserData::AcSortColumn, index);
 }
 
 void SettingsWidget::on_acAllowIncompleteComboBox_currentIndexChanged(int index)
 {
-    ASettings::write("userdata/acAllowIncomplete", index);
+    ASettings::write(ASettings::UserData::AcAllowIncomplete, index);
     if (index) {
         QMessageBox::StandardButton reply;
         reply = QMessageBox::warning(this, "Warning",
@@ -313,7 +312,7 @@ void SettingsWidget::on_acAllowIncompleteComboBox_currentIndexChanged(int index)
                                       "Are you sure you want to proceed?",
                                       QMessageBox::Yes | QMessageBox::No);
         if (reply == QMessageBox::Yes) {
-            ASettings::write("userdata/acAllowIncomplete", index);
+            ASettings::write(ASettings::UserData::AcAllowIncomplete, index);
         } else {
             ui->acAllowIncompleteComboBox->setCurrentIndex(0);
         }