Browse Source

Integration of Currency->DB into FirstRunDialog

FirstRunDialog now writes the currencies to the database, as per user selection.
Felix Turo 4 years ago
parent
commit
b91888c79d

+ 6 - 5
assets/icons.qrc

@@ -18,10 +18,11 @@
         <file>opl-icons/pilot.png</file>
         <file>opl-icons/aircraft.png</file>
         <file>opl-icons/new_flight.png</file>
-	<file>opl-icons/icon_main.svg</file>
-	<file>opl-icons/icon_ios.svg</file>
-	<file>opl-icons/icon_linux.svg</file>
-	<file>opl-icons/icon_linux_light.svg</file>
-	<file>opl-icons/icon_about.png</file>
+	    <file>opl-icons/icon_main.svg</file>
+	    <file>opl-icons/icon_ios.svg</file>
+	    <file>opl-icons/icon_linux.svg</file>
+	    <file>opl-icons/icon_linux_light.svg</file>
+	    <file>opl-icons/icon_about.png</file>
+	    <file>opl-icons/icon_backup.svg</file>
     </qresource>
 </RCC>

+ 1 - 1
src/database/adatabasesetup.cpp

@@ -286,7 +286,7 @@ bool ADataBaseSetup::createDatabase()
 
     aDB->updateLayout();
 
-    DEB << "Database successfully created!";
+    LOG << "Database successfully created!\n";
     return true;
 }
 

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

@@ -50,6 +50,9 @@ FirstRunDialog::FirstRunDialog(QWidget *parent) :
     ui->styleComboBox->addItem(QStringLiteral("Dark-Palette"));
     ui->styleComboBox->model()->sort(0);
     ui->styleComboBox->setCurrentText(AStyle::defaultStyle);
+    // Set Date Edits for currencies
+    for (const auto date_edit : this->findChildren<QDateEdit *>())
+        date_edit->setDate(QDate::currentDate());
 }
 
 FirstRunDialog::~FirstRunDialog()
@@ -146,6 +149,15 @@ bool FirstRunDialog::finishSetup()
         message_box.exec();
         return false;
     }
+
+    if (!writeCurrencies()) {
+        QMessageBox message_box(QMessageBox::Critical, tr("Database setup failed"),
+                                tr("Unable to execute database query<br>"
+                                   "The following error has occured:<br>%1"
+                                   ).arg(aDB->lastError.text()));
+        message_box.exec();
+        return false;
+    }
     aDB->disconnect(); // connection will be re-established by main()
     return true;
 }
@@ -218,7 +230,6 @@ bool FirstRunDialog::setupDatabase()
         useRessourceData = true;
     }
 
-    // [F]: todo: handle unsuccessful steps
     if(!ADataBaseSetup::createDatabase())
         return false;
 
@@ -233,12 +244,12 @@ bool FirstRunDialog::setupDatabase()
 bool FirstRunDialog::createUserEntry()
 {
     QMap<QString, QVariant> data;
-    data.insert(Opl::Db::PILOTS_LASTNAME, ui->lastnameLineEdit->text());
-    data.insert(Opl::Db::PILOTS_FIRSTNAME, ui->firstnameLineEdit->text());
-    data.insert(Opl::Db::PILOTS_ALIAS, QStringLiteral("self"));
+    data.insert(Opl::Db::PILOTS_LASTNAME,   ui->lastnameLineEdit->text());
+    data.insert(Opl::Db::PILOTS_FIRSTNAME,  ui->firstnameLineEdit->text());
+    data.insert(Opl::Db::PILOTS_ALIAS,      QStringLiteral("self"));
     data.insert(Opl::Db::PILOTS_EMPLOYEEID, ui->employeeidLineEdit->text());
-    data.insert(Opl::Db::PILOTS_PHONE, ui->phoneLineEdit->text());
-    data.insert(Opl::Db::PILOTS_EMAIL, ui->emailLineEdit->text());
+    data.insert(Opl::Db::PILOTS_PHONE,      ui->phoneLineEdit->text());
+    data.insert(Opl::Db::PILOTS_EMAIL,      ui->emailLineEdit->text());
 
     auto pilot = APilotEntry(1);
     pilot.setData(data);
@@ -246,6 +257,29 @@ bool FirstRunDialog::createUserEntry()
     return aDB->commit(pilot);
 }
 
+bool FirstRunDialog::writeCurrencies()
+{
+    const QList<QPair<ACurrencyEntry::CurrencyName, QDateEdit*>> currencies_list = {
+        {ACurrencyEntry::CurrencyName::Licence,     ui->currLicDateEdit},
+        {ACurrencyEntry::CurrencyName::TypeRating,  ui->currTrDateEdit},
+        {ACurrencyEntry::CurrencyName::LineCheck,   ui->currLckDateEdit},
+        {ACurrencyEntry::CurrencyName::Medical,     ui->currMedDateEdit},
+        {ACurrencyEntry::CurrencyName::Custom1,     ui->currCustom1DateEdit},
+        {ACurrencyEntry::CurrencyName::Custom2,     ui->currCustom1DateEdit},
+    };
+
+    QDate today = QDate::currentDate();
+    for (const auto &pair : currencies_list) {
+        // only write dates that have been edited
+        if (pair.second->date() != today) {
+            ACurrencyEntry entry(pair.first, pair.second->date());
+            if (!aDB->commit(entry))
+                return false;
+        }
+    }
+    return true;
+}
+
 void FirstRunDialog::reject()
 {
     QMessageBox confirm(QMessageBox::Critical,
@@ -305,38 +339,6 @@ void FirstRunDialog::on_currWarningThresholdSpinBox_valueChanged(int arg1)
 {
     ASettings::write(ASettings::UserData::CurrWarningThreshold, arg1);
 }
-// [F:] To Do - WIP
-/*
-void FirstRunDialog::on_currLicDateEdit_userDateChanged(const QDate &date)
-{
-    ASettings::write(ASettings::UserData::LicCurrencyDate, date);
-}
-
-void FirstRunDialog::on_currTrDateEdit_userDateChanged(const QDate &date)
-{
-    ASettings::write(ASettings::UserData::TrCurrencyDate, date);
-}
-
-void FirstRunDialog::on_currLckDateEdit_userDateChanged(const QDate &date)
-{
-    ASettings::write(ASettings::UserData::LckCurrencyDate, date);
-}
-
-void FirstRunDialog::on_currMedDateEdit_userDateChanged(const QDate &date)
-{
-    ASettings::write(ASettings::UserData::MedCurrencyDate, date);
-}
-
-void FirstRunDialog::on_currCustom1DateEdit_userDateChanged(const QDate &date)
-{
-    ASettings::write(ASettings::UserData::Custom1CurrencyDate, date);
-}
-
-void FirstRunDialog::on_currCustom2DateEdit_userDateChanged(const QDate &date)
-{
-    ASettings::write(ASettings::UserData::Custom2CurrencyDate, date);
-}
-*/
 
 void FirstRunDialog::on_currCustom1LineEdit_editingFinished()
 {

+ 1 - 12
src/gui/dialogues/firstrundialog.h

@@ -47,18 +47,6 @@ private slots:
 
     void on_currWarningThresholdSpinBox_valueChanged(int arg1);
 
-    //void on_currLicDateEdit_userDateChanged(const QDate &date);
-    //
-    //void on_currTrDateEdit_userDateChanged(const QDate &date);
-    //
-    //void on_currLckDateEdit_userDateChanged(const QDate &date);
-    //
-    //void on_currMedDateEdit_userDateChanged(const QDate &date);
-    //
-    //void on_currCustom1DateEdit_userDateChanged(const QDate &date);
-    //
-    //void on_currCustom2DateEdit_userDateChanged(const QDate &date);
-
     void on_currCustom1LineEdit_editingFinished();
 
     void on_currCustom2LineEdit_editingFinished();
@@ -70,6 +58,7 @@ private:
     void writeSettings();
     bool setupDatabase();
     bool createUserEntry();
+    bool writeCurrencies();
     bool finishSetup();
 
     void reject() override;

+ 3 - 0
src/gui/widgets/homewidget.cpp

@@ -64,6 +64,8 @@ HomeWidget::~HomeWidget()
 void HomeWidget::onHomeWidget_dataBaseUpdated()
 {
     DEB << "Updating HomeWidget...";
+    for (const auto label : this->findChildren<QLabel *>())
+        label->setVisible(true);
     currWarningThreshold = ASettings::read(ASettings::UserData::CurrWarningThreshold).toInt();
     for (const auto &label : limitationDisplayLabels)
         label->setStyleSheet(QString());
@@ -106,6 +108,7 @@ void HomeWidget::fillCurrency(ACurrencyEntry::CurrencyName currency_name, QLabel
 void HomeWidget::fillAllCurrencies()
 {
     fillCurrencyTakeOffLanding();
+    DEB << "Show med currency?" << ASettings::read(ASettings::UserData::ShowMedCurrency).toBool();
 
     ASettings::read(ASettings::UserData::ShowLicCurrency).toBool() ?
                 fillCurrency(ACurrencyEntry::CurrencyName::Licence, ui->currLicDisplayLabel)

+ 6 - 1
src/gui/widgets/settingswidget.cpp

@@ -496,37 +496,42 @@ void SettingsWidget::on_currLicDateEdit_userDateChanged(const QDate &date)
 {
     ACurrencyEntry entry(ACurrencyEntry::CurrencyName::Licence, date);
     aDB->commit(entry);
-
+    emit settingChanged(HomeWidget);
 }
 
 void SettingsWidget::on_currTrDateEdit_userDateChanged(const QDate &date)
 {
     ACurrencyEntry entry(ACurrencyEntry::CurrencyName::TypeRating, date);
     aDB->commit(entry);
+    emit settingChanged(HomeWidget);
 }
 
 void SettingsWidget::on_currLckDateEdit_userDateChanged(const QDate &date)
 {
     ACurrencyEntry entry(ACurrencyEntry::CurrencyName::LineCheck, date);
     aDB->commit(entry);
+    emit settingChanged(HomeWidget);
 }
 
 void SettingsWidget::on_currMedDateEdit_userDateChanged(const QDate &date)
 {
     ACurrencyEntry entry(ACurrencyEntry::CurrencyName::Medical, date);
     aDB->commit(entry);
+    emit settingChanged(HomeWidget);
 }
 
 void SettingsWidget::on_currCustom1DateEdit_userDateChanged(const QDate &date)
 {
     ACurrencyEntry entry(ACurrencyEntry::CurrencyName::Custom1, date);
     aDB->commit(entry);
+    emit settingChanged(HomeWidget);
 }
 
 void SettingsWidget::on_currCustom2DateEdit_userDateChanged(const QDate &date)
 {
     ACurrencyEntry entry(ACurrencyEntry::CurrencyName::Custom2, date);
     aDB->commit(entry);
+    emit settingChanged(HomeWidget);
 }
 
 void SettingsWidget::on_currToLdgCheckBox_stateChanged(int arg1)

+ 7 - 7
src/oplconstants.h

@@ -176,13 +176,13 @@ static const auto DEFAULT_AIRCRAFT_POSITION = DataPosition(TABLE_AIRCRAFT, 0);
 
 namespace Assets {
 
-static const auto LOGO = QLatin1String(":/icons/opl-icons/opl_logo.svg");
-static const auto ICON_APPICON = QLatin1String(":/icons/opl-icons/icon_main.svg");
-static const auto ICON_ABOUT = QLatin1String(":/icons/opl-icons/icon_about.png");
-static const auto ICON_PILOT = QLatin1String(":/icons/opl-icons/pilot.png");
-static const auto ICON_NEW_FLIGHT = QLatin1String(":/icons/opl-icons/new_flight.png");
-static const auto ICON_AIRCRAFT = QLatin1String(":/icons/opl-icons/aircraft.png");
-
+static const auto LOGO                  = QLatin1String(":/icons/opl-icons/opl_logo.svg");
+static const auto ICON_APPICON          = QLatin1String(":/icons/opl-icons/icon_main.svg");
+static const auto ICON_ABOUT            = QLatin1String(":/icons/opl-icons/icon_about.png");
+static const auto ICON_PILOT            = QLatin1String(":/icons/opl-icons/pilot.png");
+static const auto ICON_NEW_FLIGHT       = QLatin1String(":/icons/opl-icons/new_flight.png");
+static const auto ICON_AIRCRAFT         = QLatin1String(":/icons/opl-icons/aircraft.png");
+static const auto ICON_BACKUP           = QLatin1String(":/icons/opl-icons/icon_backup.svg");
 }
 
 } // namespace opl