Ver código fonte

Merge pull request #40 from fiffty-50/develop-firstrundialog-gk

Pulling into primary rework branch
Felix Turowsky 4 anos atrás
pai
commit
4aac6d9305

+ 4 - 2
main.cpp

@@ -48,9 +48,11 @@ int main(int argc, char *argv[])
     }
 
     ASettings::setup();
+    //Debug firstrundialog
+    ASettings::write(ASettings::Setup::SetupComplete, false);
 
     aDB()->connect();
-    if (!ASettings::read(QStringLiteral("setup/setup_complete")).toBool()) {
+    if (!ASettings::read(ASettings::Setup::SetupComplete).toBool()) {
         FirstRunDialog dialog;
         if(dialog.exec() == QDialog::Accepted) {
             qApp->quit();
@@ -62,7 +64,7 @@ int main(int argc, char *argv[])
     }
 
     //Theming
-    switch (ASettings::read(QStringLiteral("main/theme")).toInt()) {
+    switch (ASettings::read(ASettings::Main::Theme).toInt()) {
     case 1:{
         DEB << "main :: Loading light theme";
         QFile file(":light.qss");

+ 109 - 11
src/classes/asettings.cpp

@@ -18,6 +18,55 @@
 #include "asettings.h"
 #include "src/astandardpaths.h"
 #include <QSettings>
+#include <algorithm>
+#include <iterator>
+
+
+QMap<ASettings::Main, QString> ASettings::mainMap = {
+    {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,          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,           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, QStringLiteral("setup_complete")},  // inconsistent naming
+};
+
+QMap<ASettings::NewFlight, QString> ASettings::newFlightMap = {
+    {NewFlight::FunctionComboBox, QStringLiteral("FunctionComboBox")},  // inconsistent naming
+    {NewFlight::CalendarCheckBox, QStringLiteral("calendarCheckBox")},
+};
 
 void ASettings::setup()
 {
@@ -25,17 +74,66 @@ void ASettings::setup()
     QSettings();
 }
 
-QVariant ASettings::read(const QString &key)
-{
-    return QSettings().value(key);
-}
+//
+// Read/Write
+//
 
-void ASettings::write(const QString &key, const QVariant &val)
-{
-    QSettings().setValue(key, val);
-}
+QVariant ASettings::read(const FlightLogging key)
+{ return QSettings().value(stringOfKey(key)); }
+
+void ASettings::write(const FlightLogging key, const QVariant &val)
+{ QSettings().setValue(stringOfKey(key), val); }
+
+QVariant ASettings::read(const LogBook key)
+{ return QSettings().value(stringOfKey(key)); }
+
+void ASettings::write(const LogBook key, const QVariant &val)
+{ QSettings().setValue(stringOfKey(key), val); }
+
+QVariant ASettings::read(const Main key)
+{ return QSettings().value(stringOfKey(key)); }
+
+void ASettings::write(const Main key, const QVariant &val)
+{ QSettings().setValue(stringOfKey(key), val); }
+
+QVariant ASettings::read(const Setup key)
+{ return QSettings().value(stringOfKey(key)); }
+
+void ASettings::write(const Setup key, const QVariant &val)
+{ QSettings().setValue(stringOfKey(key), val); }
+
+QVariant ASettings::read(const NewFlight key)
+{ return QSettings().value(stringOfKey(key)); }
+
+void ASettings::write(const NewFlight key, const QVariant &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); }
+
+//
+// QString conversion
+//
+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 ASettings::NewFlight key)
+{ return QStringLiteral("NewFlight/") + newFlightMap[key]; }
+
+QString ASettings::stringOfKey (const ASettings::Setup key)
+{ return QStringLiteral("setup/") + setupMap[key]; }
+
+QString ASettings::stringOfKey (const ASettings::UserData key)
+{ return QStringLiteral("userdata/") + userDataMap[key]; }
 
 QSettings ASettings::settings()
-{
-    return QSettings();
-}
+{ return QSettings(); }

+ 87 - 10
src/classes/asettings.h

@@ -24,20 +24,97 @@
  * \brief Thin (namespace) wrapper for the QSettings class,
  * simplifying reading and writing of settings.
  */
-namespace ASettings
-{
+class ASettings {
+public:
+    enum class Setup {
+        SetupComplete,
+    };
 
-/*!
- * \brief Should be called after QCoreApplication::set...Name have been called.
- */
-void setup();
+    enum class Main {
+        Theme,
+        ThemeID,
+    };
+
+    enum class LogBook {
+        View,
+    };
+
+    enum class UserData {
+        LastName,
+        FirstName,
+        Company,
+        EmployeeID,
+        Phone,
+        Email,
+        DisplaySelfAs,
+        Alias,
+        AcSortColumn, // not sure what ac is
+        PilSortColumn,
+        AcAllowIncomplete,
+    };
+
+    enum class FlightLogging {
+        Function,
+        Approach,
+        NightLogging,
+        LogIFR,
+        FlightNumberPrefix,
+        NumberTakeoffs,
+        NumberLandings,
+        PopupCalendar,
+        PilotFlying,
+        NightAngle,
+        Rules,
+    };
+
+    enum class NewFlight {
+        FunctionComboBox,
+        CalendarCheckBox,
+    };
+
+    /*!
+     * \brief Should be called after QCoreApplication::set...Name have been called.
+     */
+    static void setup();
+
+    static QVariant read(const Setup key);
+    static void write(const Setup key, const QVariant &val);
+
+    static QVariant read(const LogBook key);
+    static void write(const LogBook key, const QVariant &val);
+
+    static QVariant read(const Main key);
+    static void write(const Main key, const QVariant &val);
+
+    static QVariant read(const FlightLogging key);
+    static void write(const UserData key, const QVariant &val);
+
+    static QVariant read(const UserData key);
+    static void write(const FlightLogging key, const QVariant &val);
+
+    static QVariant read(const NewFlight key);
+    static void write(const NewFlight key, const QVariant &val);
 
-QVariant read(const QString &key);
+    /*!
+     * \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);
 
-void write(const QString &key, const QVariant &val);
+    static QSettings settings();
 
-QSettings settings();
+private:
+    static QMap<Main, QString> mainMap;
+    static QMap<LogBook, QString> logBookMap;
+    static QMap<UserData, QString> userDataMap;
+    static QMap<FlightLogging, QString> flightLoggingMap;
+    static QMap<Setup, QString> setupMap;
+    static QMap<NewFlight, QString> newFlightMap;
 
-}
+};
 
 #endif // ASETTINGS_H

+ 1 - 1
src/functions/acalc.cpp

@@ -303,7 +303,7 @@ void ACalc::updateAutoTimes(int acft_id)
  */
 void ACalc::updateNightTimes()
 {
-    const int night_angle = ASettings::read(QStringLiteral("flightlogging/nightangle")).toInt();
+    const int night_angle = ASettings::read(ASettings::FlightLogging::NightAngle).toInt();
 
     //find all flights for aircraft
     auto statement = "SELECT ROWID FROM flights";

+ 28 - 38
src/gui/dialogues/firstrundialog.cpp

@@ -7,7 +7,6 @@
 #include "src/classes/adownload.h"
 #include "src/classes/asettings.h"
 #include "src/astandardpaths.h"
-//const auto TEMPLATE_URL = QStringLiteral("https://raw.githubusercontent.com/fiffty-50/openpilotlog/develop/assets/database/templates/");
 
 static inline
 void prompt_error_box(QString title, QString text, QWidget* parent = nullptr)
@@ -83,53 +82,42 @@ void FirstRunDialog::on_nextPushButton_clicked()
 
 void FirstRunDialog::on_themeGroup_toggled(int id)
 {
-    ASettings::write(QStringLiteral("main/theme"), id);
+    ASettings::write(ASettings::Main::Theme, id);
 }
 
 void FirstRunDialog::finish()
 {
-    ASettings::write(QStringLiteral("userdata/lastname"), ui->lastnameLineEdit->text());
-    ASettings::write(QStringLiteral("userdata/firstname"), ui->firstnameLineEdit->text());
-    ASettings::write(QStringLiteral("userdata/employeeid"), ui->employeeidLineEdit->text());
-    ASettings::write(QStringLiteral("userdata/phone"), ui->phoneLineEdit->text());
-    ASettings::write(QStringLiteral("userdata/email"), ui->emailLineEdit->text());
-
-    ASettings::write(QStringLiteral("flightlogging/function"), ui->functionComboBox->currentText());
-    ASettings::write(QStringLiteral("flightlogging/approach"), ui->approachComboBox->currentText());
-    ASettings::write(QStringLiteral("flightlogging/nightlogging"), ui->nightComboBox->currentIndex());
-    ASettings::write(QStringLiteral("flightlogging/logIfr"), ui->rulesComboBox->currentIndex());
-    ASettings::write(QStringLiteral("flightlogging/flightnumberPrefix"), ui->prefixLineEdit->text());
-
-    ASettings::write(QStringLiteral("flightlogging/numberTakeoffs"), 1);
-    ASettings::write(QStringLiteral("flightlogging/numberLandings"), 1);
-    ASettings::write(QStringLiteral("flightlogging/popupCalendar"), true);
-    ASettings::write(QStringLiteral("flightlogging/pilotFlying"), true);
+    ASettings::write(ASettings::UserData::LastName, ui->lastnameLineEdit->text());
+    ASettings::write(ASettings::UserData::FirstName, ui->firstnameLineEdit->text());
+    ASettings::write(ASettings::UserData::EmployeeID, ui->employeeidLineEdit->text());
+    ASettings::write(ASettings::UserData::Phone, ui->phoneLineEdit->text());
+    ASettings::write(ASettings::UserData::Email, ui->emailLineEdit->text());
+
+    ASettings::write(ASettings::FlightLogging::Function, ui->functionComboBox->currentText());
+    ASettings::write(ASettings::FlightLogging::Approach, ui->approachComboBox->currentText());
+    ASettings::write(ASettings::FlightLogging::NightLogging, ui->nightComboBox->currentIndex());
+    ASettings::write(ASettings::FlightLogging::LogIFR, ui->rulesComboBox->currentIndex());
+    ASettings::write(ASettings::FlightLogging::FlightNumberPrefix, ui->prefixLineEdit->text());
+    ASettings::write(ASettings::FlightLogging::NumberTakeoffs, 1);
+    ASettings::write(ASettings::FlightLogging::NumberLandings, 1);
+    ASettings::write(ASettings::FlightLogging::PopupCalendar, true);
+    ASettings::write(ASettings::FlightLogging::PilotFlying, true);
 
     QMap<QString, QVariant> data;
-    switch (ui->aliasComboBox->currentIndex()) {
-    case 0:
-        ASettings::write(QStringLiteral("userdata/displayselfas"), ui->aliasComboBox->currentIndex());
-        break;
-    case 1:
-        ASettings::write(QStringLiteral("userdata/displayselfas"), ui->aliasComboBox->currentIndex());
-        break;
-    case 2:
-        ASettings::write(QStringLiteral("userdata/displayselfas"), ui->aliasComboBox->currentIndex());
-        break;
-    default:
-        break;
-    }
-    data.insert(QStringLiteral("lastname"), ui->lastnameLineEdit->text());
-    data.insert(QStringLiteral("firstname"), ui->firstnameLineEdit->text());
-    data.insert(QStringLiteral("alias"), QStringLiteral("self"));
-    data.insert(QStringLiteral("employeeid"), ui->employeeidLineEdit->text());
-    data.insert(QStringLiteral("phone"), ui->phoneLineEdit->text());
-    data.insert(QStringLiteral("email"), ui->emailLineEdit->text());
+    ASettings::write(ASettings::UserData::DisplaySelfAs, ui->aliasComboBox->currentIndex());
+    data.insert(ASettings::stringOfKey(ASettings::UserData::LastName), ui->lastnameLineEdit->text());
+    data.insert(ASettings::stringOfKey(ASettings::UserData::FirstName), ui->firstnameLineEdit->text());
+    data.insert(ASettings::stringOfKey(ASettings::UserData::Alias), "self");
+    data.insert(ASettings::stringOfKey(ASettings::UserData::EmployeeID), ui->employeeidLineEdit->text());
+    data.insert(ASettings::stringOfKey(ASettings::UserData::Phone), ui->phoneLineEdit->text());
+    data.insert(ASettings::stringOfKey(ASettings::UserData::Email), ui->emailLineEdit->text());
 
     if (!setupDatabase()) {
         QMessageBox message_box(this);
         message_box.setText(QStringLiteral("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.
     aDB()->connect();
@@ -150,7 +138,9 @@ void FirstRunDialog::finish()
 
 bool FirstRunDialog::setupDatabase()
 {
+
     QMessageBox confirm;
+    DEB << "TESTETESTS";
     confirm.setStandardButtons(QMessageBox::Yes | QMessageBox::No);
     confirm.setDefaultButton(QMessageBox::No);
     confirm.setIcon(QMessageBox::Question);
@@ -172,7 +162,7 @@ bool FirstRunDialog::setupDatabase()
         return false;
     if(!ADataBaseSetup::importDefaultData())
         return false;
-    ASettings::write(QStringLiteral("setup/setup_complete"), true);
+    ASettings::write(ASettings::Setup::SetupComplete, true);
     return true;
 }
 

+ 20 - 20
src/gui/dialogues/newflightdialog.cpp

@@ -107,11 +107,11 @@ NewFlightDialog::NewFlightDialog(QWidget *parent) :
     ui->setupUi(this);
     flightEntry = AFlightEntry();
     setup();
-    if (ASettings::read("NewFlight/FunctionComboBox").toString() == "SIC") {
+    if (ASettings::read(ASettings::NewFlight::FunctionComboBox).toString() == "SIC") {
         ui->picNameLineEdit->setText(DB_NULL);
         ui->secondPilotNameLineEdit->setText("self");
     }
-    if(ASettings::read("NewFlight/FunctionComboBox").toString() == "PIC"){
+    if(ASettings::read(ASettings::NewFlight::FunctionComboBox).toString() == "PIC"){
         ui->picNameLineEdit->setText("self");
         emit ui->picNameLineEdit->editingFinished();
     }
@@ -160,26 +160,26 @@ void NewFlightDialog::readSettings()
 {
     DEB << "Reading Settings...";
     QSettings settings;
-    ui->FunctionComboBox->setCurrentText(ASettings::read("flightlogging/function").toString());
-    ui->ApproachComboBox->setCurrentText(ASettings::read("flightlogging/approach").toString());
+    ui->FunctionComboBox->setCurrentText(ASettings::read(ASettings::FlightLogging::Function).toString());
+    ui->ApproachComboBox->setCurrentText(ASettings::read(ASettings::FlightLogging::Approach).toString());
 
-    ASettings::read("flightlogging/pilotFlying").toBool() ? ui->PilotFlyingCheckBox->setChecked(true)
+    ASettings::read(ASettings::FlightLogging::PilotFlying).toBool() ? ui->PilotFlyingCheckBox->setChecked(true)
                                                           : ui->PilotMonitoringCheckBox->setChecked(true);
 
-    ui->TakeoffSpinBox->setValue(ASettings::read("flightlogging/numberTakeoffs").toInt());
+    ui->TakeoffSpinBox->setValue(ASettings::read(ASettings::FlightLogging::NumberTakeoffs).toInt());
     ui->TakeoffSpinBox->value() > 0 ? ui->TakeoffCheckBox->setChecked(true)
                                     : ui->TakeoffCheckBox->setChecked(false);
-    ui->LandingSpinBox->setValue(ASettings::read("flightlogging/numberLandings").toInt());
+    ui->LandingSpinBox->setValue(ASettings::read(ASettings::FlightLogging::NumberLandings).toInt());
     ui->LandingSpinBox->value() > 0 ? ui->LandingCheckBox->setChecked(true)
                                     : ui->LandingCheckBox->setChecked(false);
-    if (ASettings::read("flightlogging/logIfr").toBool()) {
+    if (ASettings::read(ASettings::FlightLogging::LogIFR).toBool()) {
         ui->IfrCheckBox->setChecked(true);
     } else {
         ui->VfrCheckBox->setChecked(true);
     }
 
-    ui->FlightNumberLineEdit->setText(ASettings::read("flightlogging/flightnumberPrefix").toString());
-    ui->calendarCheckBox->setChecked(ASettings::read("flightlogging/popupCalendar").toBool());
+    ui->FlightNumberLineEdit->setText(ASettings::read(ASettings::FlightLogging::FlightNumberPrefix).toString());
+    ui->calendarCheckBox->setChecked(ASettings::read(ASettings::FlightLogging::PopupCalendar).toBool());
 
 }
 
@@ -187,13 +187,13 @@ void NewFlightDialog::writeSettings()
 {
     DEB << "Writing Settings...";
 
-    ASettings::write("flightlogging/function", ui->FunctionComboBox->currentText());
-    ASettings::write("flightlogging/approach", ui->ApproachComboBox->currentText());
-    ASettings::write("flightlogging/pilotFlying", ui->PilotFlyingCheckBox->isChecked());
-    ASettings::write("flightlogging/numberTakeoffs", ui->TakeoffSpinBox->value());
-    ASettings::write("flightlogging/numberLandings", ui->LandingSpinBox->value());
-    ASettings::write("flightlogging/logIfr", ui->IfrCheckBox->isChecked());
-    ASettings::write("flightlogging/popupCalendar", ui->calendarCheckBox->isChecked());
+    ASettings::write(ASettings::FlightLogging::Function, ui->FunctionComboBox->currentText());
+    ASettings::write(ASettings::FlightLogging::Approach, ui->ApproachComboBox->currentText());
+    ASettings::write(ASettings::FlightLogging::PilotFlying, ui->PilotFlyingCheckBox->isChecked());
+    ASettings::write(ASettings::FlightLogging::NumberTakeoffs, ui->TakeoffSpinBox->value());
+    ASettings::write(ASettings::FlightLogging::NumberLandings, ui->LandingSpinBox->value());
+    ASettings::write(ASettings::FlightLogging::LogIFR, ui->IfrCheckBox->isChecked());
+    ASettings::write(ASettings::FlightLogging::PopupCalendar, ui->calendarCheckBox->isChecked());
 }
 
 void NewFlightDialog::setupButtonGroups()
@@ -442,7 +442,7 @@ void NewFlightDialog::fillDeductibleData()
     QString dept_date = ui->doftLineEdit->text() + 'T' + tofb.toString(TIME_FORMAT);
     QDateTime dept_date_time = QDateTime::fromString(dept_date,"yyyy-MM-ddThh:mm");
     int tblk = block_minutes.toInt();
-    const int night_angle = ASettings::read("flightlogging/nightangle").toInt();
+    const int night_angle = ASettings::read(ASettings::FlightLogging::NightAngle).toInt();
     QString night_minutes = QString::number(
                 ACalc::calculateNightTime(
                     ui->deptLocLineEdit->text(),
@@ -530,7 +530,7 @@ RowData NewFlightDialog::collectInput()
     const auto dept_date = ui->doftLineEdit->text() + QStringLiteral("T") + tofb.toString(TIME_FORMAT);
     const auto dept_date_time = QDateTime::fromString(dept_date, QStringLiteral("yyyy-MM-ddThh:mm"));
 
-    const auto night_angle = ASettings::read("flightlogging/nightangle").toInt();
+    const auto night_angle = ASettings::read(ASettings::FlightLogging::NightAngle).toInt();
     const auto night_minutes = ACalc::calculateNightTime(
                     ui->deptLocLineEdit->text(),
                     ui->destLocLineEdit->text(),
@@ -1063,7 +1063,7 @@ void NewFlightDialog::onDoftLineEdit_entered()
 
 void NewFlightDialog::on_calendarCheckBox_stateChanged(int arg1)
 {
-    ASettings::write("NewFlight/calendarCheckBox", ui->calendarCheckBox->isChecked());
+    ASettings::write(ASettings::NewFlight::CalendarCheckBox, ui->calendarCheckBox->isChecked());
     DEB << "Calendar check box state changed.";
     switch (arg1) {
     case 0: // unchecked

+ 1 - 1
src/gui/dialogues/newtaildialog.cpp

@@ -263,7 +263,7 @@ void NewTailDialog::on_buttonBox_accepted()
     }
 
     if (!verify()) {
-        if (!ASettings::read("userdata/acAllowIncomplete").toInt()) {
+        if (!ASettings::read(ASettings::UserData::AcAllowIncomplete).toInt()) {
             auto nope = QMessageBox(this);
             nope.setIcon(QMessageBox::Warning);
             nope.setText("Some or all recommended fields are empty.\nPlease go back and "

+ 2 - 2
src/gui/widgets/aircraftwidget.cpp

@@ -48,7 +48,7 @@ AircraftWidget::~AircraftWidget()
 
 void AircraftWidget::setupModelAndView()
 {
-    sortColumn = ASettings::read("userdata/acSortColumn").toInt();
+    sortColumn = ASettings::read(ASettings::UserData::AcSortColumn).toInt();
 
     model = new QSqlTableModel(this);
     model->setTable("viewTails");
@@ -199,7 +199,7 @@ void AircraftWidget::tableView_selectionChanged()
 void AircraftWidget::tableView_headerClicked(int column)
 {
     sortColumn = column;
-    ASettings::write("userdata/acSortColumn", column);
+    ASettings::write(ASettings::UserData::AcSortColumn, column);
 }
 
 void AircraftWidget::acft_editing_finished()

+ 1 - 1
src/gui/widgets/logbookwidget.cpp

@@ -48,7 +48,7 @@ LogbookWidget::LogbookWidget(QWidget *parent) :
     //Initialise message Box
     messageBox = new QMessageBox(this);
 
-    prepareModelAndView(ASettings::read("logbook/view").toInt());
+    prepareModelAndView(ASettings::read(ASettings::LogBook::View).toInt());
     connectSignalsAndSlots();
 }
 

+ 2 - 2
src/gui/widgets/pilotswidget.cpp

@@ -37,7 +37,7 @@ PilotsWidget::~PilotsWidget()
 
 void PilotsWidget::setupModelAndView()
 {
-    sortColumn = ASettings::read("userdata/pilSortColumn").toInt();
+    sortColumn = ASettings::read(ASettings::UserData::PilSortColumn).toInt();
 
     model = new QSqlTableModel(this);
     model->setTable("viewPilots");
@@ -115,7 +115,7 @@ void PilotsWidget::tableView_selectionChanged()//const QItemSelection &index, co
 void PilotsWidget::tableView_headerClicked(int column)
 {
     sortColumn = column;
-    ASettings::write("userdata/pilSortColumn", column);
+    ASettings::write(ASettings::UserData::PilSortColumn, column);
 }
 
 void PilotsWidget::on_newPilotButton_clicked()

+ 41 - 40
src/gui/widgets/settingswidget.cpp

@@ -73,25 +73,26 @@ void SettingsWidget::readSettings()
     /*
      * Personal Tab
      */
-    ui->lastnameLineEdit->setText(ASettings::read("userdata/lastname").toString());
-    ui->firstnameLineEdit->setText(ASettings::read("userdata/firstname").toString());
-    ui->companyLineEdit->setText(ASettings::read("userdata/company").toString());
-    ui->employeeidLineEdit->setText(ASettings::read("userdata/employeeid").toString());
-    ui->phoneLineEdit->setText(ASettings::read("userdata/phone").toString());
-    ui->emailLineEdit->setText(ASettings::read("userdata/email").toString());
+    ui->lastnameLineEdit->setText(ASettings::read(ASettings::UserData::LastName).toString());
+    ui->firstnameLineEdit->setText(ASettings::read(ASettings::UserData::FirstName).toString());
+    ui->companyLineEdit->setText(ASettings::read(ASettings::UserData::Company).toString());
+    ui->employeeidLineEdit->setText(ASettings::read(ASettings::UserData::EmployeeID).toString());
+    ui->phoneLineEdit->setText(ASettings::read(ASettings::UserData::Phone).toString());
+    ui->emailLineEdit->setText(ASettings::read(ASettings::UserData::Email).toString());
     /*
      * Flight Logging Tab
      */
-    ui->aliasComboBox->setCurrentIndex(ASettings::read("userdata/displayselfas").toInt());
-    ui->functionComboBox->setCurrentText(ASettings::read("flightlogging/function").toString());
-    ui->rulesComboBox->setCurrentText(ASettings::read("flightlogging/rules").toString());
-    ui->approachComboBox->setCurrentText(ASettings::read("flightlogging/approach").toString());
-    ui->nightComboBox->setCurrentIndex(ASettings::read("flightlogging/nightlogging").toInt());
-    ui->prefixLineEdit->setText(ASettings::read("flightlogging/flightnumberPrefix").toString());
+    ui->aliasComboBox->setCurrentIndex(ASettings::read(ASettings::UserData::DisplaySelfAs).toInt());
+    ui->functionComboBox->setCurrentText(ASettings::read(ASettings::FlightLogging::Function).toString());
+    ui->rulesComboBox->setCurrentText(ASettings::read(ASettings::FlightLogging::Rules).toString());
+    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());
+
     /*
      * Misc Tab
      */
-    switch (ASettings::read("main/theme").toInt()) {
+    switch (ASettings::read(ASettings::Main::Theme).toInt()) {
     case 0:
         ui->systemThemeCheckBox->setChecked(true);
         break;
@@ -101,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()
@@ -172,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();
     }
 }
@@ -183,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();
 }
 
@@ -221,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);
 
 }
 
@@ -266,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",
@@ -284,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",
@@ -311,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);
         }