Browse Source

Added functionality for tracking currencies

The program now has functionality for tracking currencies (expiry dates) and showing them in the home widget.
Felix Turo 4 years ago
parent
commit
11e1c171a0

+ 16 - 3
src/classes/asettings.cpp

@@ -30,10 +30,23 @@ QMap<ASettings::Main, QString> ASettings::mainMap = {
 
 QMap<ASettings::UserData, QString> ASettings::userDataMap = {
     {UserData::DisplaySelfAs,           QStringLiteral("displayselfas")},
-    {UserData::AcftSortColumn,          QStringLiteral("acSortColumn")},  // [G]: inconsistent naming
-    {UserData::PilSortColumn,           QStringLiteral("pilSortColumn")},
-    {UserData::AcAllowIncomplete,       QStringLiteral("acAllowIncomplete")},
+    {UserData::TailSortColumn,          QStringLiteral("tailSortColumn")},
+    {UserData::PilotSortColumn,         QStringLiteral("pilotSortColumn")},
+    {UserData::AcftAllowIncomplete,     QStringLiteral("acftAllowIncomplete")},
     {UserData::FtlWarningThreshold,     QStringLiteral("ftlWarningThreshold")},
+    {UserData::ShowToLgdCurrency,       QStringLiteral("showToLdgCurrency")},
+    {UserData::ShowLicCurrency,         QStringLiteral("showLicCurrency")},
+    {UserData::ShowTrCurrency,          QStringLiteral("showTrCurrency")},
+    {UserData::ShowLckCurrency,         QStringLiteral("showLckCurrency")},
+    {UserData::ShowMedCurrency,         QStringLiteral("showMedCurrency")},
+    {UserData::ShowCustom1Currency,     QStringLiteral("showCustom1Currency")},
+    {UserData::ShowCustom2Currency,     QStringLiteral("showCustom2Currency")},
+    {UserData::LicCurrencyDate,         QStringLiteral("licCurrencyDate")},
+    {UserData::TrCurrencyDate,          QStringLiteral("trCurrencyDate")},
+    {UserData::LckCurrencyDate,         QStringLiteral("lckCurrencyDate")},
+    {UserData::MedCurrencyDate,         QStringLiteral("medCurrencyDate")},
+    {UserData::Custom1CurrencyDate,     QStringLiteral("custom1CurrencyDate")},
+    {UserData::Custom2CurrencyDate,     QStringLiteral("custom2CurrencyDate")},
 };
 
 QMap<ASettings::FlightLogging, QString> ASettings::flightLoggingMap = {

+ 16 - 3
src/classes/asettings.h

@@ -37,10 +37,23 @@ public:
 
     enum class UserData {
         DisplaySelfAs,
-        AcftSortColumn,
-        PilSortColumn,
-        AcAllowIncomplete,
+        TailSortColumn,
+        PilotSortColumn,
+        AcftAllowIncomplete,
         FtlWarningThreshold,
+        ShowToLgdCurrency,
+        ShowLicCurrency,
+        ShowTrCurrency,
+        ShowLckCurrency,
+        ShowMedCurrency,
+        ShowCustom1Currency,
+        ShowCustom2Currency,
+        LicCurrencyDate,
+        TrCurrencyDate,
+        LckCurrencyDate,
+        MedCurrencyDate,
+        Custom1CurrencyDate,
+        Custom2CurrencyDate,
     };
 
     enum class FlightLogging {

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

@@ -131,6 +131,7 @@ void FirstRunDialog::writeSettings()
     ASettings::write(ASettings::FlightLogging::PilotFlying, true);
     ASettings::write(ASettings::FlightLogging::FlightTimeFormat, Opl::Time::Default);
     ASettings::write(ASettings::UserData::DisplaySelfAs, ui->aliasComboBox->currentIndex());
+    ASettings::write(ASettings::UserData::ShowToLgdCurrency, true);
     // To Do: UI option
     ASettings::write(ASettings::UserData::FtlWarningThreshold, 0.8);
 }

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

@@ -266,7 +266,7 @@ void NewTailDialog::on_buttonBox_accepted()
     }
 
     if (!verify()) {
-        if (!ASettings::read(ASettings::UserData::AcAllowIncomplete).toInt()) {
+        if (!ASettings::read(ASettings::UserData::AcftAllowIncomplete).toInt()) {
             QMessageBox message_box(this);
             message_box.setIcon(QMessageBox::Warning);
             message_box.setText(tr("Some or all recommended fields are empty.<br>"

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

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

+ 52 - 9
src/gui/widgets/homewidget.cpp

@@ -38,9 +38,12 @@ HomeWidget::HomeWidget(QWidget *parent) :
     ui->welcomeLabel->setText(tr("Welcome to openPilotLog, %1!").arg(userName()));
 
 
-    displayLabels = {ui->TakeOffDisplayLabel, ui->LandingsDisplayLabel,
-                     ui->FlightTime28dDisplayLabel, ui->FlightTimeCalYearDisplayLabel,
-                     ui->FlightTime12mDisplayLabel};
+    limitationDisplayLabels = {
+        ui->TakeOffDisplayLabel,       ui->LandingsDisplayLabel,
+        ui->FlightTime28dDisplayLabel, ui->FlightTimeCalYearDisplayLabel,
+        ui->FlightTime12mDisplayLabel
+    };
+
     warningThreshold = ASettings::read(ASettings::UserData::FtlWarningThreshold).toDouble();
     DEB << "Filling Home Widget...";
     fillTotals();
@@ -55,11 +58,11 @@ HomeWidget::~HomeWidget()
 
 void HomeWidget::onHomeWidget_dataBaseUpdated()
 {
-    for (const auto &label : displayLabels)
+    for (const auto &label : limitationDisplayLabels)
         label->setStyleSheet(QString());
 
     fillTotals();
-    fillCurrency();
+    fillCurrencyTakeOffLanding();
     fillLimitations();
 }
 
@@ -73,6 +76,41 @@ void HomeWidget::fillTotals()
 }
 
 void HomeWidget::fillCurrency()
+{
+    fillCurrencyTakeOffLanding();
+    ASettings::read(ASettings::UserData::ShowLicCurrency).toBool() ?
+        ui->currLicDisplayLabel->setText(
+                    ASettings::read(ASettings::UserData::LicCurrencyDate
+                                    ).toDate().toString(Qt::TextDate))
+              : hideLabels(ui->currLicLabel, ui->currLicDisplayLabel);
+    ASettings::read(ASettings::UserData::ShowTrCurrency).toBool() ?
+                ui->currTrDisplayLabel->setText(
+                    ASettings::read(ASettings::UserData::TrCurrencyDate
+                                    ).toDate().toString(Qt::TextDate))
+              : hideLabels(ui->currTrLabel, ui->currTrDisplayLabel);
+    ASettings::read(ASettings::UserData::ShowLckCurrency).toBool() ?
+                ui->currLckDisplayLabel->setText(
+                    ASettings::read(ASettings::UserData::LckCurrencyDate
+                                    ).toDate().toString())
+              : hideLabels(ui->currLckLabel, ui->currLckDisplayLabel);
+    ASettings::read(ASettings::UserData::ShowMedCurrency).toBool() ?
+                ui->currMedDisplayLabel->setText(
+                    ASettings::read(ASettings::UserData::MedCurrencyDate
+                                    ).toDate().toString())
+              : hideLabels(ui->currMedLabel, ui->currMedDisplayLabel);
+    ASettings::read(ASettings::UserData::ShowCustom1Currency).toBool() ?
+                ui->currCustom1DisplayLabel->setText(
+                    ASettings::read(ASettings::UserData::Custom1CurrencyDate
+                    ).toDate().toString())
+              : hideLabels(ui->currCustom1Label, ui->currCustom1DisplayLabel);
+    ASettings::read(ASettings::UserData::ShowCustom2Currency).toBool() ?
+                ui->currCustom2DisplayLabel->setText(
+                    ASettings::read(ASettings::UserData::Custom2CurrencyDate
+                    ).toDate().toString())
+              : hideLabels(ui->currCustom2Label, ui->currCustom2DisplayLabel);
+}
+
+void HomeWidget::fillCurrencyTakeOffLanding()
 {
     auto takeoff_landings = AStat::countTakeOffLanding();
 
@@ -83,10 +121,15 @@ void HomeWidget::fillCurrency()
     if (takeoff_landings[1].toUInt() < 3)
         setLabelColour(ui->LandingsDisplayLabel, HomeWidget::Red);
 
-    QDate expiration_date = AStat::currencyTakeOffLandingExpiry();
-    if (expiration_date == QDate::currentDate())
-        setLabelColour(ui->currencyExpirationDisplayLabel, HomeWidget::Red);
-    ui->currencyExpirationDisplayLabel->setText(expiration_date.toString(Qt::TextDate));
+    if (ASettings::read(ASettings::UserData::ShowToLgdCurrency).toBool()) {
+        QDate expiration_date = AStat::currencyTakeOffLandingExpiry();
+        if (expiration_date == QDate::currentDate())
+            setLabelColour(ui->currToLdgDisplayLabel, HomeWidget::Red);
+        ui->currToLdgDisplayLabel->setText(expiration_date.toString(Qt::TextDate));
+    } else {
+        ui->currToLdgLabel->hide();
+        ui->currToLdgDisplayLabel->hide();
+    }
 }
 
 void HomeWidget::fillLimitations()

+ 8 - 1
src/gui/widgets/homewidget.h

@@ -43,11 +43,13 @@ private:
 
     void fillTotals();
     void fillCurrency();
+    void fillCurrencyTakeOffLanding();
     void fillLimitations();
 
     double warningThreshold;
 
-    QList<QLabel*> displayLabels;
+    QList<QLabel*> limitationDisplayLabels;
+    QList<QPair<QLabel*, QLabel*>> currencyLabels;
     /*!
      * \brief Retreives the users first name from the database.
      */
@@ -69,6 +71,11 @@ private:
             break;
         }
     }
+
+    inline void hideLabels(QLabel* label1, QLabel* label2) {
+        label1->hide();
+        label2->hide();
+    }
 public slots:
     void onHomeWidget_dataBaseUpdated();
 };

+ 361 - 207
src/gui/widgets/homewidget.ui

@@ -7,20 +7,26 @@
     <x>0</x>
     <y>0</y>
     <width>1087</width>
-    <height>652</height>
+    <height>777</height>
    </rect>
   </property>
   <property name="windowTitle">
    <string>Form</string>
   </property>
   <layout class="QGridLayout" name="gridLayout_4">
-   <item row="0" column="0">
-    <widget class="QLabel" name="welcomeLabel">
+   <item row="9" column="0">
+    <widget class="QLabel" name="limitationsLabel">
+     <property name="font">
+      <font>
+       <weight>75</weight>
+       <bold>true</bold>
+      </font>
+     </property>
      <property name="text">
-      <string>Welcome to openPilotLog!</string>
+      <string>Limitations</string>
      </property>
      <property name="alignment">
-      <set>Qt::AlignCenter</set>
+      <set>Qt::AlignBottom|Qt::AlignHCenter</set>
      </property>
     </widget>
    </item>
@@ -31,6 +37,22 @@
      </property>
     </widget>
    </item>
+   <item row="3" column="0">
+    <widget class="QLabel" name="totalsLabel">
+     <property name="font">
+      <font>
+       <weight>75</weight>
+       <bold>true</bold>
+      </font>
+     </property>
+     <property name="text">
+      <string>Your Totals</string>
+     </property>
+     <property name="alignment">
+      <set>Qt::AlignBottom|Qt::AlignHCenter</set>
+     </property>
+    </widget>
+   </item>
    <item row="2" column="0">
     <widget class="Line" name="line_7">
      <property name="orientation">
@@ -38,8 +60,324 @@
      </property>
     </widget>
    </item>
-   <item row="3" column="0">
-    <widget class="QLabel" name="totalsLabel">
+   <item row="8" column="0">
+    <layout class="QGridLayout" name="gridLayout_3">
+     <item row="0" column="0">
+      <widget class="QLabel" name="TakeOffLabel">
+       <property name="text">
+        <string>Take offs (last 90 days)</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLabel" name="TakeOffDisplayLabel">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="layoutDirection">
+        <enum>Qt::LeftToRight</enum>
+       </property>
+       <property name="text">
+        <string>0</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="LandingsLabel">
+       <property name="text">
+        <string>Landings (last 90 days)</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLabel" name="LandingsDisplayLabel">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="layoutDirection">
+        <enum>Qt::LeftToRight</enum>
+       </property>
+       <property name="text">
+        <string>0</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="0">
+      <widget class="QLabel" name="currToLdgLabel">
+       <property name="font">
+        <font>
+         <italic>false</italic>
+        </font>
+       </property>
+       <property name="text">
+        <string>Take-Off / Landing</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QLabel" name="currToLdgDisplayLabel">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="0">
+      <widget class="QLabel" name="currLicLabel">
+       <property name="font">
+        <font>
+         <italic>false</italic>
+        </font>
+       </property>
+       <property name="text">
+        <string>Licence</string>
+       </property>
+      </widget>
+     </item>
+     <item row="3" column="1">
+      <widget class="QLabel" name="currLicDisplayLabel">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="0">
+      <widget class="QLabel" name="currTrLabel">
+       <property name="font">
+        <font>
+         <italic>false</italic>
+        </font>
+       </property>
+       <property name="text">
+        <string>Type Rating</string>
+       </property>
+      </widget>
+     </item>
+     <item row="4" column="1">
+      <widget class="QLabel" name="currTrDisplayLabel">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="5" column="0">
+      <widget class="QLabel" name="currLckLabel">
+       <property name="font">
+        <font>
+         <italic>false</italic>
+        </font>
+       </property>
+       <property name="text">
+        <string>Line Check</string>
+       </property>
+      </widget>
+     </item>
+     <item row="5" column="1">
+      <widget class="QLabel" name="currLckDisplayLabel">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="6" column="0">
+      <widget class="QLabel" name="currMedLabel">
+       <property name="font">
+        <font>
+         <italic>false</italic>
+        </font>
+       </property>
+       <property name="text">
+        <string>Medical</string>
+       </property>
+      </widget>
+     </item>
+     <item row="6" column="1">
+      <widget class="QLabel" name="currMedDisplayLabel">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="7" column="0">
+      <widget class="QLabel" name="currCustom1Label">
+       <property name="font">
+        <font>
+         <italic>false</italic>
+        </font>
+       </property>
+       <property name="text">
+        <string>Custom1</string>
+       </property>
+      </widget>
+     </item>
+     <item row="7" column="1">
+      <widget class="QLabel" name="currCustom1DisplayLabel">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="8" column="0">
+      <widget class="QLabel" name="currCustom2Label">
+       <property name="font">
+        <font>
+         <italic>false</italic>
+        </font>
+       </property>
+       <property name="text">
+        <string>Custom2</string>
+       </property>
+      </widget>
+     </item>
+     <item row="8" column="1">
+      <widget class="QLabel" name="currCustom2DisplayLabel">
+       <property name="font">
+        <font>
+         <weight>75</weight>
+         <bold>true</bold>
+        </font>
+       </property>
+       <property name="text">
+        <string/>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item row="11" column="0">
+    <layout class="QGridLayout" name="gridLayout_2">
+     <item row="0" column="0">
+      <widget class="QLabel" name="FlightTime28dLabel">
+       <property name="text">
+        <string>Flight Time (last 28 days)</string>
+       </property>
+      </widget>
+     </item>
+     <item row="0" column="1">
+      <widget class="QLabel" name="FlightTime28dDisplayLabel">
+       <property name="layoutDirection">
+        <enum>Qt::LeftToRight</enum>
+       </property>
+       <property name="text">
+        <string>0</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="0">
+      <widget class="QLabel" name="FlightTimeCalYearLabel">
+       <property name="text">
+        <string>Flight Time (this calendar year)</string>
+       </property>
+      </widget>
+     </item>
+     <item row="1" column="1">
+      <widget class="QLabel" name="FlightTimeCalYearDisplayLabel">
+       <property name="layoutDirection">
+        <enum>Qt::LeftToRight</enum>
+       </property>
+       <property name="text">
+        <string>0</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="0">
+      <widget class="QLabel" name="FlightTime12mLabel">
+       <property name="text">
+        <string>Flight Time (last 12 calendar months)</string>
+       </property>
+      </widget>
+     </item>
+     <item row="2" column="1">
+      <widget class="QLabel" name="FlightTime12mDisplayLabel">
+       <property name="layoutDirection">
+        <enum>Qt::LeftToRight</enum>
+       </property>
+       <property name="text">
+        <string>0</string>
+       </property>
+       <property name="alignment">
+        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
+       </property>
+      </widget>
+     </item>
+    </layout>
+   </item>
+   <item row="6" column="0">
+    <widget class="QLabel" name="currencyLabel">
      <property name="font">
       <font>
        <weight>75</weight>
@@ -47,15 +385,22 @@
       </font>
      </property>
      <property name="text">
-      <string>Your Totals</string>
+      <string>Currency</string>
      </property>
      <property name="alignment">
       <set>Qt::AlignBottom|Qt::AlignHCenter</set>
      </property>
     </widget>
    </item>
-   <item row="4" column="0">
-    <widget class="Line" name="line">
+   <item row="10" column="0">
+    <widget class="Line" name="line_3">
+     <property name="orientation">
+      <enum>Qt::Horizontal</enum>
+     </property>
+    </widget>
+   </item>
+   <item row="7" column="0">
+    <widget class="Line" name="line_4">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
@@ -592,214 +937,23 @@
      </item>
     </layout>
    </item>
-   <item row="6" column="0">
-    <widget class="Line" name="line_5">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item row="7" column="0">
-    <widget class="QLabel" name="currencyLabel">
-     <property name="font">
-      <font>
-       <weight>75</weight>
-       <bold>true</bold>
-      </font>
-     </property>
-     <property name="text">
-      <string>Currency</string>
-     </property>
-     <property name="alignment">
-      <set>Qt::AlignBottom|Qt::AlignHCenter</set>
-     </property>
-    </widget>
-   </item>
-   <item row="8" column="0">
-    <widget class="Line" name="line_4">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item row="9" column="0">
-    <layout class="QGridLayout" name="gridLayout_3">
-     <item row="0" column="0">
-      <widget class="QLabel" name="TakeOffLabel">
-       <property name="text">
-        <string>Take offs (last 90 days)</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QLabel" name="TakeOffDisplayLabel">
-       <property name="font">
-        <font>
-         <weight>75</weight>
-         <bold>true</bold>
-        </font>
-       </property>
-       <property name="layoutDirection">
-        <enum>Qt::LeftToRight</enum>
-       </property>
-       <property name="text">
-        <string>0</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="LandingsLabel">
-       <property name="text">
-        <string>Landings (last 90 days)</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QLabel" name="LandingsDisplayLabel">
-       <property name="font">
-        <font>
-         <weight>75</weight>
-         <bold>true</bold>
-        </font>
-       </property>
-       <property name="layoutDirection">
-        <enum>Qt::LeftToRight</enum>
-       </property>
-       <property name="text">
-        <string>0</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0">
-      <widget class="QLabel" name="currencyExpirationLabel">
-       <property name="font">
-        <font>
-         <italic>false</italic>
-        </font>
-       </property>
-       <property name="text">
-        <string>Expires</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QLabel" name="currencyExpirationDisplayLabel">
-       <property name="font">
-        <font>
-         <weight>75</weight>
-         <bold>true</bold>
-        </font>
-       </property>
-       <property name="text">
-        <string/>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
-   <item row="10" column="0">
-    <widget class="Line" name="line_6">
-     <property name="orientation">
-      <enum>Qt::Horizontal</enum>
-     </property>
-    </widget>
-   </item>
-   <item row="11" column="0">
-    <widget class="QLabel" name="limitationsLabel">
-     <property name="font">
-      <font>
-       <weight>75</weight>
-       <bold>true</bold>
-      </font>
-     </property>
+   <item row="0" column="0">
+    <widget class="QLabel" name="welcomeLabel">
      <property name="text">
-      <string>Limitations</string>
+      <string>Welcome to openPilotLog!</string>
      </property>
      <property name="alignment">
-      <set>Qt::AlignBottom|Qt::AlignHCenter</set>
+      <set>Qt::AlignCenter</set>
      </property>
     </widget>
    </item>
-   <item row="12" column="0">
-    <widget class="Line" name="line_3">
+   <item row="4" column="0">
+    <widget class="Line" name="line">
      <property name="orientation">
       <enum>Qt::Horizontal</enum>
      </property>
     </widget>
    </item>
-   <item row="13" column="0">
-    <layout class="QGridLayout" name="gridLayout_2">
-     <item row="0" column="0">
-      <widget class="QLabel" name="FlightTime28dLabel">
-       <property name="text">
-        <string>Flight Time (last 28 days)</string>
-       </property>
-      </widget>
-     </item>
-     <item row="0" column="1">
-      <widget class="QLabel" name="FlightTime28dDisplayLabel">
-       <property name="layoutDirection">
-        <enum>Qt::LeftToRight</enum>
-       </property>
-       <property name="text">
-        <string>0</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="0">
-      <widget class="QLabel" name="FlightTimeCalYearLabel">
-       <property name="text">
-        <string>Flight Time (this calendar year)</string>
-       </property>
-      </widget>
-     </item>
-     <item row="1" column="1">
-      <widget class="QLabel" name="FlightTimeCalYearDisplayLabel">
-       <property name="layoutDirection">
-        <enum>Qt::LeftToRight</enum>
-       </property>
-       <property name="text">
-        <string>0</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="0">
-      <widget class="QLabel" name="FlightTime12mLabel">
-       <property name="text">
-        <string>Flight Time (last 12 calendar months)</string>
-       </property>
-      </widget>
-     </item>
-     <item row="2" column="1">
-      <widget class="QLabel" name="FlightTime12mDisplayLabel">
-       <property name="layoutDirection">
-        <enum>Qt::LeftToRight</enum>
-       </property>
-       <property name="text">
-        <string>0</string>
-       </property>
-       <property name="alignment">
-        <set>Qt::AlignRight|Qt::AlignTrailing|Qt::AlignVCenter</set>
-       </property>
-      </widget>
-     </item>
-    </layout>
-   </item>
   </layout>
  </widget>
  <resources/>

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

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

+ 166 - 8
src/gui/widgets/settingswidget.cpp

@@ -106,14 +106,38 @@ 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());
-
     ui->logbookViewComboBox->setCurrentIndex(ASettings::read(ASettings::Main::LogbookView).toInt());
+
+    /*
+     * Currencies Tab
+     */
+    ui->currToLdgCheckBox->setChecked(ASettings::read(ASettings::UserData::ShowToLgdCurrency).toBool());
+
+    ui->currLicDateEdit->setDate(ASettings::read(ASettings::UserData::LicCurrencyDate).toDate());
+    ui->currLicCheckBox->setChecked(ASettings::read(ASettings::UserData::ShowLicCurrency).toBool());
+
+    ui->currTrDateEdit->setDate(ASettings::read(ASettings::UserData::TrCurrencyDate).toDate());
+    ui->currTrCheckBox->setChecked(ASettings::read(ASettings::UserData::ShowTrCurrency).toBool());
+
+    ui->currLckDateEdit->setDate(ASettings::read(ASettings::UserData::LckCurrencyDate).toDate());
+    ui->currLckCheckBox->setChecked(ASettings::read(ASettings::UserData::ShowLckCurrency).toBool());
+
+    ui->currMedDateEdit->setDate(ASettings::read(ASettings::UserData::MedCurrencyDate).toDate());
+    ui->currMedCheckBox->setChecked(ASettings::read(ASettings::UserData::ShowMedCurrency).toBool());
+
+    ui->currCustom1DateEdit->setDate(ASettings::read(ASettings::UserData::Custom1CurrencyDate).toDate());
+    ui->currCustom1CheckBox->setChecked(ASettings::read(ASettings::UserData::ShowCustom1Currency).toBool());
+
+    ui->currCustom2DateEdit->setDate(ASettings::read(ASettings::UserData::Custom2CurrencyDate).toDate());
+    ui->currCustom2CheckBox->setChecked(ASettings::read(ASettings::UserData::ShowCustom2Currency).toBool());
+
+
     /*
      * Misc Tab
      */
-    ui->acSortComboBox->setCurrentIndex(ASettings::read(ASettings::UserData::AcftSortColumn).toInt());
-    ui->pilotSortComboBox->setCurrentIndex(ASettings::read(ASettings::UserData::PilSortColumn).toInt());
-    ui->acAllowIncompleteComboBox->setCurrentIndex(ASettings::read(ASettings::UserData::AcAllowIncomplete).toInt());
+    ui->acSortComboBox->setCurrentIndex(ASettings::read(ASettings::UserData::TailSortColumn).toInt());
+    ui->pilotSortComboBox->setCurrentIndex(ASettings::read(ASettings::UserData::PilotSortColumn).toInt());
+    ui->acAllowIncompleteComboBox->setCurrentIndex(ASettings::read(ASettings::UserData::AcftAllowIncomplete).toInt());
     ui->styleComboBox->setCurrentText(ASettings::read(ASettings::Main::Style).toString());
     {
         const QSignalBlocker font_blocker1(ui->fontSpinBox);
@@ -270,17 +294,17 @@ void SettingsWidget::on_logbookViewComboBox_currentIndexChanged(int index)
 }
 void SettingsWidget::on_pilotSortComboBox_currentIndexChanged(int index)
 {
-    ASettings::write(ASettings::UserData::PilSortColumn, index);
+    ASettings::write(ASettings::UserData::PilotSortColumn, index);
 }
 
 void SettingsWidget::on_acSortComboBox_currentIndexChanged(int index)
 {
-    ASettings::write(ASettings::UserData::AcftSortColumn, index);
+    ASettings::write(ASettings::UserData::TailSortColumn, index);
 }
 
 void SettingsWidget::on_acAllowIncompleteComboBox_currentIndexChanged(int index)
 {
-    ASettings::write(ASettings::UserData::AcAllowIncomplete, index);
+    ASettings::write(ASettings::UserData::AcftAllowIncomplete, index);
     if (index) {
         QMessageBox::StandardButton reply;
         reply = QMessageBox::warning(this, tr("Warning"),
@@ -292,7 +316,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(ASettings::UserData::AcAllowIncomplete, index);
+            ASettings::write(ASettings::UserData::AcftAllowIncomplete, index);
         } else {
             ui->acAllowIncompleteComboBox->setCurrentIndex(0);
         }
@@ -440,3 +464,137 @@ void SettingsWidget::on_resetStylePushButton_clicked()
     ui->styleComboBox->setCurrentText(AStyle::defaultStyle);
     ui->fontCheckBox->setChecked(true);
 }
+
+void SettingsWidget::on_currLicDateEdit_userDateChanged(const QDate &date)
+{
+    ASettings::write(ASettings::UserData::LicCurrencyDate, date);
+}
+
+void SettingsWidget::on_currTrDateEdit_userDateChanged(const QDate &date)
+{
+    ASettings::write(ASettings::UserData::TrCurrencyDate, date);
+}
+
+void SettingsWidget::on_currLckDateEdit_userDateChanged(const QDate &date)
+{
+    ASettings::write(ASettings::UserData::LckCurrencyDate, date);
+}
+
+void SettingsWidget::on_currMedDateEdit_userDateChanged(const QDate &date)
+{
+    ASettings::write(ASettings::UserData::MedCurrencyDate, date);
+}
+
+void SettingsWidget::on_currCustom1DateEdit_userDateChanged(const QDate &date)
+{
+    ASettings::write(ASettings::UserData::Custom1CurrencyDate, date);
+}
+
+void SettingsWidget::on_currCustom2DateEdit_userDateChanged(const QDate &date)
+{
+    ASettings::write(ASettings::UserData::Custom2CurrencyDate, date);
+}
+
+void SettingsWidget::on_currToLdgCheckBox_stateChanged(int arg1)
+{
+    switch (arg1) {
+    case Qt::CheckState::Checked:
+        ASettings::write(ASettings::UserData::ShowToLgdCurrency, true);
+        break;
+    case Qt::CheckState::Unchecked:
+        ASettings::write(ASettings::UserData::ShowToLgdCurrency, false);
+        break;
+    default:
+        break;
+    }
+}
+
+void SettingsWidget::on_currLicCheckBox_stateChanged(int arg1)
+{
+    switch (arg1) {
+    case Qt::CheckState::Checked:
+        ASettings::write(ASettings::UserData::ShowLicCurrency, true);
+        break;
+    case Qt::CheckState::Unchecked:
+        ASettings::write(ASettings::UserData::ShowLicCurrency, false);
+        break;
+    default:
+        break;
+    }
+    ASettings::write(ASettings::UserData::LicCurrencyDate, ui->currLicDateEdit->date());
+}
+
+void SettingsWidget::on_currTrCheckBox_stateChanged(int arg1)
+{
+    switch (arg1) {
+    case Qt::CheckState::Checked:
+        ASettings::write(ASettings::UserData::ShowTrCurrency, true);
+        break;
+    case Qt::CheckState::Unchecked:
+        ASettings::write(ASettings::UserData::ShowTrCurrency, false);
+        break;
+    default:
+        break;
+    }
+    ASettings::write(ASettings::UserData::TrCurrencyDate, ui->currTrDateEdit->date());
+}
+
+void SettingsWidget::on_currLckCheckBox_stateChanged(int arg1)
+{
+    switch (arg1) {
+    case Qt::CheckState::Checked:
+        ASettings::write(ASettings::UserData::ShowLckCurrency, true);
+        break;
+    case Qt::CheckState::Unchecked:
+        ASettings::write(ASettings::UserData::ShowLckCurrency, false);
+        break;
+    default:
+        break;
+    }
+    ASettings::write(ASettings::UserData::LckCurrencyDate, ui->currLckDateEdit->date());
+}
+
+void SettingsWidget::on_currMedCheckBox_stateChanged(int arg1)
+{
+    switch (arg1) {
+    case Qt::CheckState::Checked:
+        ASettings::write(ASettings::UserData::ShowMedCurrency, true);
+        break;
+    case Qt::CheckState::Unchecked:
+        ASettings::write(ASettings::UserData::ShowMedCurrency, false);
+        break;
+    default:
+        break;
+    }
+    ASettings::write(ASettings::UserData::MedCurrencyDate, ui->currMedDateEdit->date());
+}
+
+void SettingsWidget::on_currCustom1CheckBox_stateChanged(int arg1)
+{
+    switch (arg1) {
+    case Qt::CheckState::Checked:
+        ASettings::write(ASettings::UserData::ShowCustom1Currency, true);
+        break;
+    case Qt::CheckState::Unchecked:
+        ASettings::write(ASettings::UserData::ShowCustom1Currency, false);
+        break;
+    default:
+        break;
+    }
+    ASettings::write(ASettings::UserData::Custom1CurrencyDate, ui->currCustom1DateEdit->date());
+}
+
+void SettingsWidget::on_currCustom2CheckBox_stateChanged(int arg1)
+{
+    switch (arg1) {
+    case Qt::CheckState::Checked:
+        ASettings::write(ASettings::UserData::ShowCustom2Currency, true);
+        break;
+    case Qt::CheckState::Unchecked:
+        ASettings::write(ASettings::UserData::ShowCustom2Currency, false);
+        break;
+    default:
+        break;
+    }
+    ASettings::write(ASettings::UserData::Custom2CurrencyDate, ui->currCustom2DateEdit->date());
+}

+ 26 - 0
src/gui/widgets/settingswidget.h

@@ -70,6 +70,32 @@ private slots:
 
     void on_resetStylePushButton_clicked();
 
+    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_currToLdgCheckBox_stateChanged(int arg1);
+
+    void on_currLicCheckBox_stateChanged(int arg1);
+
+    void on_currTrCheckBox_stateChanged(int arg1);
+
+    void on_currLckCheckBox_stateChanged(int arg1);
+
+    void on_currMedCheckBox_stateChanged(int arg1);
+
+    void on_currCustom1CheckBox_stateChanged(int arg1);
+
+    void on_currCustom2CheckBox_stateChanged(int arg1);
+
 private:
     Ui::SettingsWidget *ui;
 

+ 115 - 6
src/gui/widgets/settingswidget.ui

@@ -454,9 +454,22 @@
            <height>0</height>
           </size>
          </property>
+         <property name="currentSection">
+          <enum>QDateTimeEdit::YearSection</enum>
+         </property>
+         <property name="displayFormat">
+          <string>MM/dd/yyyy</string>
+         </property>
          <property name="calendarPopup">
           <bool>true</bool>
          </property>
+         <property name="date">
+          <date>
+           <year>2020</year>
+           <month>1</month>
+           <day>1</day>
+          </date>
+         </property>
         </widget>
        </item>
        <item row="5" column="3">
@@ -496,9 +509,25 @@
            <height>0</height>
           </size>
          </property>
+         <property name="currentSection">
+          <enum>QDateTimeEdit::YearSection</enum>
+         </property>
+         <property name="displayFormat">
+          <string>MM/dd/yyyy</string>
+         </property>
          <property name="calendarPopup">
           <bool>true</bool>
          </property>
+         <property name="timeSpec">
+          <enum>Qt::UTC</enum>
+         </property>
+         <property name="date">
+          <date>
+           <year>2020</year>
+           <month>1</month>
+           <day>1</day>
+          </date>
+         </property>
         </widget>
        </item>
        <item row="6" column="3">
@@ -518,7 +547,7 @@
         </widget>
        </item>
        <item row="7" column="0">
-        <widget class="QLabel" name="currTRLabel">
+        <widget class="QLabel" name="currTrLabel">
          <property name="minimumSize">
           <size>
            <width>280</width>
@@ -531,20 +560,36 @@
         </widget>
        </item>
        <item row="7" column="2">
-        <widget class="QDateEdit" name="currTRDateEdit">
+        <widget class="QDateEdit" name="currTrDateEdit">
          <property name="minimumSize">
           <size>
            <width>140</width>
            <height>0</height>
           </size>
          </property>
+         <property name="currentSection">
+          <enum>QDateTimeEdit::YearSection</enum>
+         </property>
+         <property name="displayFormat">
+          <string>MM/dd/yyyy</string>
+         </property>
          <property name="calendarPopup">
           <bool>true</bool>
          </property>
+         <property name="timeSpec">
+          <enum>Qt::UTC</enum>
+         </property>
+         <property name="date">
+          <date>
+           <year>2020</year>
+           <month>1</month>
+           <day>1</day>
+          </date>
+         </property>
         </widget>
        </item>
        <item row="7" column="3">
-        <widget class="QCheckBox" name="currTRCheckBox">
+        <widget class="QCheckBox" name="currTrCheckBox">
          <property name="minimumSize">
           <size>
            <width>140</width>
@@ -560,7 +605,7 @@
         </widget>
        </item>
        <item row="8" column="0">
-        <widget class="QLabel" name="currLCKLabel">
+        <widget class="QLabel" name="currLckLabel">
          <property name="minimumSize">
           <size>
            <width>280</width>
@@ -573,20 +618,36 @@
         </widget>
        </item>
        <item row="8" column="2">
-        <widget class="QDateEdit" name="currLCKDateEdit">
+        <widget class="QDateEdit" name="currLckDateEdit">
          <property name="minimumSize">
           <size>
            <width>140</width>
            <height>0</height>
           </size>
          </property>
+         <property name="currentSection">
+          <enum>QDateTimeEdit::YearSection</enum>
+         </property>
+         <property name="displayFormat">
+          <string>MM/dd/yyyy</string>
+         </property>
          <property name="calendarPopup">
           <bool>true</bool>
          </property>
+         <property name="timeSpec">
+          <enum>Qt::UTC</enum>
+         </property>
+         <property name="date">
+          <date>
+           <year>2020</year>
+           <month>1</month>
+           <day>1</day>
+          </date>
+         </property>
         </widget>
        </item>
        <item row="8" column="3">
-        <widget class="QCheckBox" name="currLCKCheckBox">
+        <widget class="QCheckBox" name="currLckCheckBox">
          <property name="minimumSize">
           <size>
            <width>140</width>
@@ -622,9 +683,25 @@
            <height>0</height>
           </size>
          </property>
+         <property name="currentSection">
+          <enum>QDateTimeEdit::YearSection</enum>
+         </property>
+         <property name="displayFormat">
+          <string>MM/dd/yyyy</string>
+         </property>
          <property name="calendarPopup">
           <bool>true</bool>
          </property>
+         <property name="timeSpec">
+          <enum>Qt::UTC</enum>
+         </property>
+         <property name="date">
+          <date>
+           <year>2020</year>
+           <month>1</month>
+           <day>1</day>
+          </date>
+         </property>
         </widget>
        </item>
        <item row="9" column="3">
@@ -667,9 +744,25 @@
            <height>0</height>
           </size>
          </property>
+         <property name="currentSection">
+          <enum>QDateTimeEdit::YearSection</enum>
+         </property>
+         <property name="displayFormat">
+          <string>MM/dd/yyyy</string>
+         </property>
          <property name="calendarPopup">
           <bool>true</bool>
          </property>
+         <property name="timeSpec">
+          <enum>Qt::UTC</enum>
+         </property>
+         <property name="date">
+          <date>
+           <year>2020</year>
+           <month>1</month>
+           <day>1</day>
+          </date>
+         </property>
         </widget>
        </item>
        <item row="10" column="3">
@@ -709,9 +802,25 @@
            <height>0</height>
           </size>
          </property>
+         <property name="currentSection">
+          <enum>QDateTimeEdit::YearSection</enum>
+         </property>
+         <property name="displayFormat">
+          <string>MM/dd/yyyy</string>
+         </property>
          <property name="calendarPopup">
           <bool>true</bool>
          </property>
+         <property name="timeSpec">
+          <enum>Qt::UTC</enum>
+         </property>
+         <property name="date">
+          <date>
+           <year>2020</year>
+           <month>1</month>
+           <day>1</day>
+          </date>
+         </property>
         </widget>
        </item>
        <item row="11" column="3">