Browse Source

Updated SettingsWidget and DebugWidget

Updated SettingsWidget and DebugWidget to use new DB API
Felix Turowsky 4 years ago
parent
commit
f1427ebb7d

+ 5 - 5
mainwindow.cpp

@@ -76,15 +76,15 @@ MainWindow::MainWindow(QWidget *parent)
     /// [F] I understand how it is annoying to not have the database
     /// working when something has changed. Hopefully this check
     /// helps to avoid that in the future!
-    const int DATABASE_REVISION_NUMBER = 13;
+    const int DATABASE_REVISION_NUMBER = 14;
     QSqlQuery query;
     query.prepare("SELECT COUNT (*) FROM changelog");
     query.exec();
     query.next();
-    if (query.value(0).toInt() < DATABASE_REVISION_NUMBER) {
+    if (query.value(0).toInt() != DATABASE_REVISION_NUMBER) {
         DEB("##########################################");
         DEB("Your database is out of date.");
-        DEB("Curren Revision: " << DATABASE_REVISION_NUMBER);
+        DEB("Current Revision:  " << DATABASE_REVISION_NUMBER);
         DEB("You have revision: " << query.value(0).toInt());
         DEB("Use of DebugWidget to udpate recommended.");
         DEB("##########################################");
@@ -139,8 +139,8 @@ void MainWindow::connectWidgets()
     QObject::connect(experimental::aDB(), &experimental::ADataBase::dataBaseUpdated,
                      aircraftWidget, &AircraftWidget::onDisplayModel_dataBaseUpdated);
 
-    QObject::connect(settingsWidget, &SettingsWidget::logbookViewSelectionChanged,
-                     logbookWidget, &LogbookWidget::on_logbookViewSelectionChanged);
+    QObject::connect(settingsWidget, &SettingsWidget::viewSelectionChanged,
+                     logbookWidget, &LogbookWidget::onLogbookWidget_viewSelectionChanged);
 }
 
 void MainWindow::on_actionSettings_triggered()

+ 18 - 15
src/gui/widgets/debugwidget.cpp

@@ -1,7 +1,7 @@
 #include "debugwidget.h"
 #include "ui_debugwidget.h"
 
-
+using namespace experimental;
 
 DebugWidget::DebugWidget(QWidget *parent) :
     QWidget(parent),
@@ -13,7 +13,6 @@ DebugWidget::DebugWidget(QWidget *parent) :
             ui->tableComboBox->addItem(table);
         }
     }
-
 }
 
 DebugWidget::~DebugWidget()
@@ -47,7 +46,9 @@ void DebugWidget::on_resetDatabasePushButton_clicked()
         dir.mkpath(".");
     // download latest csv
     QStringList templateTables = {"aircraft", "airports", "changelog"};
-    const auto& linkStub = "https://raw.githubusercontent.com/fiffty-50/openpilotlog/develop/assets/database/templates/";
+    QString linkStub = "https://raw.githubusercontent.com/fiffty-50/openpilotlog/";
+    linkStub.append(ui->branchLineEdit->text());
+    linkStub.append("/assets/database/templates/");
     for (const auto& table : templateTables) {
         QEventLoop loop;
         ADownload* dl = new ADownload;
@@ -59,7 +60,7 @@ void DebugWidget::on_resetDatabasePushButton_clicked()
         dl->deleteLater();
     }
     //close database connection
-    Db::disconnect();
+    aDB()->disconnect();
 
     // back up old database
     auto oldDatabase = QFile("data/logbook.db");
@@ -71,7 +72,7 @@ void DebugWidget::on_resetDatabasePushButton_clicked()
         }
     }
     // re-connct and create new database
-    Db::connect();
+    aDB()->connect();
 
     if (ADataBaseSetup::createDatabase()) {
         mb.setText("Database has been successfully reset.\n\nRestarting application.");
@@ -99,7 +100,10 @@ void DebugWidget::on_fillUserDataPushButton_clicked()
         dir.mkpath(".");
     // download latest csv
     QStringList userTables = {"pilots", "tails", "flights"};
-    const auto& linkStub = "https://raw.githubusercontent.com/fiffty-50/openpilotlog/develop/assets/database/templates/sample_";
+    QString linkStub = "https://raw.githubusercontent.com/fiffty-50/openpilotlog/";
+    linkStub.append(ui->branchLineEdit->text());
+    linkStub.append("/assets/database/templates/sample_");
+
     for (const auto& table : userTables) {
         QEventLoop loop;
         ADownload* dl = new ADownload;
@@ -110,19 +114,18 @@ void DebugWidget::on_fillUserDataPushButton_clicked()
         loop.exec(); // event loop waits for download done signal before allowing loop to continue
         dl->deleteLater();
     }
-    QVector<bool> allGood;
+    QBitArray allGood;
+    allGood.resize(userTables.size());
+
     for (const auto& table : userTables) {
         auto data = aReadCsv("data/templates/sample_" + table + ".csv");
-        allGood.append(ADataBaseSetup::commitData(data, table));
+        allGood.setBit(userTables.indexOf(table), ADataBaseSetup::commitData(data, table));
     }
 
-    for (const auto& item : allGood) {
-        if (!item) {
-            mb.setText("Errors have ocurred. Check console for details.");
-            mb.exec();
-            return;
-        }
-
+    if (allGood.count(true) != userTables.size()) {
+        mb.setText("Errors have ocurred. Check console for details.");
+        mb.exec();
+        return;
     }
 
     mb.setText("User tables successfully populated.\n\nRestarting app.");

+ 17 - 0
src/gui/widgets/debugwidget.ui

@@ -145,6 +145,23 @@
        <item row="5" column="3">
         <widget class="QLineEdit" name="debug2LineEdit"/>
        </item>
+       <item row="0" column="1">
+        <widget class="QLabel" name="branchLabel">
+         <property name="text">
+          <string>branch:</string>
+         </property>
+        </widget>
+       </item>
+       <item row="0" column="2">
+        <widget class="QLineEdit" name="branchLineEdit">
+         <property name="text">
+          <string>develop</string>
+         </property>
+         <property name="placeholderText">
+          <string>develop</string>
+         </property>
+        </widget>
+       </item>
       </layout>
      </widget>
     </widget>

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

@@ -299,7 +299,7 @@ void LogbookWidget::onDisplayModel_dataBaseUpdated()
     displayModel->select();
 }
 
-void LogbookWidget::on_logbookViewSelectionChanged(int view_id)
+void LogbookWidget::onLogbookWidget_viewSelectionChanged(int view_id)
 {
     prepareModelAndView(view_id);
 }

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

@@ -59,7 +59,7 @@ private slots:
 
 public slots:
     void onDisplayModel_dataBaseUpdated();
-    void on_logbookViewSelectionChanged(int);
+    void onLogbookWidget_viewSelectionChanged(int);
 
 private:
     Ui::LogbookWidget *ui;

+ 27 - 22
src/gui/widgets/settingswidget.cpp

@@ -41,6 +41,8 @@ static const auto LINE_EDIT_VALIDATORS = QVector({FIRSTNAME_VALID, LASTNAME_VALI
                                            COMPANY_VALID,     EMPLOYEENR_VALID,
                                            PREFIX_VALID});
 
+using namespace experimental;
+
 SettingsWidget::SettingsWidget(QWidget *parent) :
     QWidget(parent),
     ui(new Ui::SettingsWidget)
@@ -52,10 +54,12 @@ SettingsWidget::SettingsWidget(QWidget *parent) :
     themeGroup->addButton(ui->systemThemeCheckBox, 0);
     themeGroup->addButton(ui->lightThemeCheckBox, 1);
     themeGroup->addButton(ui->darkThemeCheckBox, 2);
-    connect(themeGroup, SIGNAL(buttonClicked(int)), this, SLOT(themeGroup_toggled(int)));
 
-    fillSettings();
+    readSettings();
     setupValidators();
+
+    QObject::connect(themeGroup, QOverload<int>::of(&QButtonGroup::buttonClicked),
+                     this, &SettingsWidget::on_themeGroup_buttonClicked);
 }
 
 SettingsWidget::~SettingsWidget()
@@ -63,7 +67,7 @@ SettingsWidget::~SettingsWidget()
     delete ui;
 }
 
-void SettingsWidget::fillSettings()
+void SettingsWidget::readSettings()
 {
     /*
      * Personal Tab
@@ -125,10 +129,10 @@ void SettingsWidget::updatePersonalDetails()
     QMap<QString,QString> data;
     switch (ui->aliasComboBox->currentIndex()) {
     case 0:
-        data.insert("displayname","self");
+        data.insert("alias","self");
         break;
     case 1:
-        data.insert("displayname","SELF");
+        data.insert("alias","SELF");
         break;
     case 2:{
         QString name;
@@ -136,7 +140,7 @@ void SettingsWidget::updatePersonalDetails()
         name.append(QLatin1String(", "));
         name.append(ui->picfirstnameLineEdit->text().left(1));
         name.append(QLatin1Char('.'));
-        data.insert("displayname",name);
+        data.insert("alias", name);
     }
         break;
     default:
@@ -149,9 +153,10 @@ void SettingsWidget::updatePersonalDetails()
     data.insert("phone",ui->phoneLineEdit->text());
     data.insert("email",ui->emailLineEdit->text());
 
-    Pilot pic(1);
+    auto pic = APilotEntry(1);
     pic.setData(data);
-    pic.commit();
+
+    aDB()->commit(pic);
 }
 
 /*
@@ -187,25 +192,25 @@ void SettingsWidget::on_picfirstnameLineEdit_editingFinished()
 
 void SettingsWidget::on_companyLineEdit_editingFinished()
 {
-    ASettings::write("userdata/company",ui->companyLineEdit->text());
+    ASettings::write("userdata/company", ui->companyLineEdit->text());
     updatePersonalDetails();
 }
 
 void SettingsWidget::on_employeeidLineEdit_editingFinished()
 {
-    ASettings::write("userdata/employeeid",ui->employeeidLineEdit->text());
+    ASettings::write("userdata/employeeid", ui->employeeidLineEdit->text());
     updatePersonalDetails();
 }
 
 void SettingsWidget::on_emailLineEdit_editingFinished()
 {
-    ASettings::write("userdata/email",ui->emailLineEdit->text());
+    ASettings::write("userdata/email", ui->emailLineEdit->text());
     updatePersonalDetails();
 }
 
 void SettingsWidget::on_phoneLineEdit_editingFinished()
 {
-    ASettings::write("userdata/phone",ui->phoneLineEdit->text());
+    ASettings::write("userdata/phone", ui->phoneLineEdit->text());
     updatePersonalDetails();
 }
 
@@ -215,7 +220,7 @@ void SettingsWidget::on_phoneLineEdit_editingFinished()
 
 void SettingsWidget::on_aliasComboBox_currentIndexChanged(int index)
 {
-    ASettings::write("userdata/displayselfas",index);
+    ASettings::write("userdata/displayselfas", index);
     updatePersonalDetails();
 }
 
@@ -239,13 +244,13 @@ void SettingsWidget::on_nightComboBox_currentIndexChanged(int index)
     ASettings::write("flightlogging/nightlogging", index);
     switch (index) {
     case 1:
-        ASettings::write("flightlogging/nightangle",-6);
+        ASettings::write("flightlogging/nightangle", -6);
         break;
     case 2:
-        ASettings::write("flightlogging/nightangle",0);
+        ASettings::write("flightlogging/nightangle", 0);
         break;
     default:
-        ASettings::write("flightlogging/nightangle",-6);
+        ASettings::write("flightlogging/nightangle", -6);
     }
 }
 
@@ -258,9 +263,9 @@ void SettingsWidget::on_prefixLineEdit_textChanged(const QString &arg1)
 /*
  * Misc Tab
  */
-void SettingsWidget::themeGroup_toggled(int id)
+void SettingsWidget::on_themeGroup_buttonClicked(int theme_id)
 {
-    ASettings::write("main/theme", id);
+    ASettings::write("main/theme", theme_id);
 
     QMessageBox::StandardButton reply;
     reply = QMessageBox::question(this, "Changing Themes",
@@ -279,7 +284,7 @@ void SettingsWidget::themeGroup_toggled(int id)
 void SettingsWidget::on_logbookViewComboBox_currentIndexChanged(int index)
 {
     ASettings::write("logbook/view", index);
-    emit logbookViewSelectionChanged(index);
+    emit viewSelectionChanged(index);
 }
 void SettingsWidget::on_pilotSortComboBox_currentIndexChanged(int index)
 {
@@ -319,7 +324,7 @@ void SettingsWidget::on_acAllowIncompleteComboBox_currentIndexChanged(int index)
 
 void SettingsWidget::on_aboutPushButton_clicked()
 {
-    auto mb = new QMessageBox(this);
+    auto message_box = QMessageBox(this);
     QString SQLITE_VERSION = DbInfo().version;
     QString text = QMessageBox::tr(
 
@@ -352,6 +357,6 @@ void SettingsWidget::on_aboutPushButton_clicked()
                          QLatin1String("qt.io"),
                          QLatin1String(QT_VERSION_STR),
                          QString(SQLITE_VERSION));
-    mb->setText(text);
-    mb->open();
+    message_box.setText(text);
+    message_box.exec();
 }

+ 5 - 5
src/gui/widgets/settingswidget.h

@@ -25,8 +25,8 @@
 #include <QProcess>
 #include <QDebug>
 #include "src/classes/asettings.h"
-#include "src/database/db.h"
-#include "src/classes/pilot.h"
+#include "src/experimental/adatabase.h"
+#include "src/experimental/apilotentry.h"
 
 namespace Ui {
 class SettingsWidget;
@@ -42,7 +42,7 @@ public:
 
 private slots:
 
-    void themeGroup_toggled(int id);
+    void on_themeGroup_buttonClicked(int theme_id);
     void on_aboutPushButton_clicked();
     void on_acSortComboBox_currentIndexChanged(int index);
     void on_acAllowIncompleteComboBox_currentIndexChanged(int index);
@@ -64,13 +64,13 @@ private slots:
 private:
     Ui::SettingsWidget *ui;
 
-    void fillSettings();
+    void readSettings();
 
     void setupValidators();
 
     void updatePersonalDetails();
 signals:
-    void logbookViewSelectionChanged(int view_id);
+    void viewSelectionChanged(int view_id);
 };
 
 #endif // SETTINGSWIDGET_H