|
@@ -1,6 +1,9 @@
|
|
|
#include "debugwidget.h"
|
|
|
#include "ui_debugwidget.h"
|
|
|
#include "src/classes/astandardpaths.h"
|
|
|
+#include "src/gui/widgets/logbookwidget.h"
|
|
|
+#include "src/gui/widgets/pilotswidget.h"
|
|
|
+#include "src/gui/widgets/aircraftwidget.h"
|
|
|
|
|
|
DebugWidget::DebugWidget(QWidget *parent) :
|
|
|
QWidget(parent),
|
|
@@ -24,10 +27,9 @@ void DebugWidget::on_resetUserTablesPushButton_clicked()
|
|
|
ATimer timer(this);
|
|
|
QMessageBox result;
|
|
|
if (ADataBaseSetup::resetToDefault()){
|
|
|
- result.setText("Database successfully reset.\n\nRestarting app.");
|
|
|
+ result.setText("Database successfully reset");
|
|
|
result.exec();
|
|
|
- qApp->quit();
|
|
|
- QProcess::startDetached(qApp->arguments()[0], qApp->arguments());
|
|
|
+ touchDatabase();
|
|
|
} else {
|
|
|
result.setText("Errors have occurred. Check console for Debug output. ");
|
|
|
result.exec();
|
|
@@ -37,52 +39,47 @@ void DebugWidget::on_resetUserTablesPushButton_clicked()
|
|
|
void DebugWidget::on_resetDatabasePushButton_clicked()
|
|
|
{
|
|
|
ATimer timer(this);
|
|
|
- QMessageBox mb(this);
|
|
|
- //check if template dir exists and create if needed.
|
|
|
- QDir dir("data/templates");
|
|
|
- DEB << dir.path();
|
|
|
- if (!dir.exists())
|
|
|
- dir.mkpath(".");
|
|
|
+ QMessageBox message_box(this);
|
|
|
+
|
|
|
// download latest csv
|
|
|
- QStringList templateTables = {"aircraft", "airports", "changelog"};
|
|
|
- QString linkStub = "https://raw.githubusercontent.com/fiffty-50/openpilotlog/";
|
|
|
- linkStub.append(ui->branchLineEdit->text());
|
|
|
- linkStub.append("/assets/database/templates/");
|
|
|
- for (const auto& table : templateTables) {
|
|
|
+ QString link_stub = "https://raw.githubusercontent.com/fiffty-50/openpilotlog/";
|
|
|
+ link_stub.append(ui->branchLineEdit->text()); // optionally select branch for development
|
|
|
+ link_stub.append("/assets/database/templates/");
|
|
|
+
|
|
|
+ QStringList template_tables = {"aircraft", "airports", "changelog"};
|
|
|
+ QDir template_dir(AStandardPaths::absPathOf(AStandardPaths::Templates));
|
|
|
+ for (const auto& table : template_tables) {
|
|
|
QEventLoop loop;
|
|
|
ADownload* dl = new ADownload;
|
|
|
- connect(dl, &ADownload::done, &loop, &QEventLoop::quit );
|
|
|
- dl->setTarget(QUrl(linkStub + table + ".csv"));
|
|
|
- dl->setFileName("data/templates/" + table + ".csv");
|
|
|
+ QObject::connect(dl, &ADownload::done, &loop, &QEventLoop::quit );
|
|
|
+ dl->setTarget(QUrl(link_stub % table % QStringLiteral(".csv")));
|
|
|
+ dl->setFileName(template_dir.filePath(table % QStringLiteral(".csv")));
|
|
|
dl->download();
|
|
|
loop.exec(); // event loop waits for download done signal before allowing loop to continue
|
|
|
dl->deleteLater();
|
|
|
}
|
|
|
|
|
|
- //close database connection
|
|
|
+ // back up old db
|
|
|
aDB()->disconnect();
|
|
|
+ ADataBaseSetup::backupOldData();
|
|
|
|
|
|
- // back up and remove old database
|
|
|
- auto oldDatabase = QFile("data/logbook.db");
|
|
|
- if (oldDatabase.exists()) {
|
|
|
- auto dateString = QDateTime::currentDateTime().toString(Qt::ISODate);
|
|
|
- DEB << "Backing up old database as: " << "logbook-backup-" + dateString + ".db";
|
|
|
- if (oldDatabase.copy("data/logbook-backup-" + dateString + ".db")) {
|
|
|
- oldDatabase.remove();
|
|
|
- DEB << "Old Database removed.";
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
// re-connct and create new database
|
|
|
aDB()->connect();
|
|
|
-
|
|
|
if (ADataBaseSetup::createDatabase()) {
|
|
|
- mb.setText("Database has been successfully reset.\n\nRestarting application.");
|
|
|
- mb.exec();
|
|
|
- qApp->quit();
|
|
|
- QProcess::startDetached(qApp->arguments()[0], qApp->arguments());
|
|
|
+ DEB << "Database has been successfully created.";
|
|
|
+ } else {
|
|
|
+ message_box.setText("Errors have ocurred creating the database.<br>"
|
|
|
+ "Check console for details.");
|
|
|
+ message_box.exec();
|
|
|
+ }
|
|
|
+ if (ADataBaseSetup::importDefaultData()) {
|
|
|
+ message_box.setText("Database has been successfully reset.");
|
|
|
+ touchDatabase();
|
|
|
+ message_box.exec();
|
|
|
} else {
|
|
|
- mb.setText("Errors have ocurred. Check console for details.");
|
|
|
+ message_box.setText("Errors have ocurred while importing templates.<br>"
|
|
|
+ "Check console for details.");
|
|
|
+ message_box.exec();
|
|
|
}
|
|
|
}
|
|
|
|
|
@@ -94,24 +91,21 @@ void DebugWidget::downloadFinished()
|
|
|
void DebugWidget::on_fillUserDataPushButton_clicked()
|
|
|
{
|
|
|
ATimer timer(this);
|
|
|
- QMessageBox mb(this);
|
|
|
- //check if template dir exists and create if needed.
|
|
|
- QDir dir("data/templates");
|
|
|
- DEB << dir.path();
|
|
|
- if (!dir.exists())
|
|
|
- dir.mkpath(".");
|
|
|
+ QMessageBox message_box(this);
|
|
|
// download latest csv
|
|
|
QStringList userTables = {"pilots", "tails", "flights"};
|
|
|
QString linkStub = "https://raw.githubusercontent.com/fiffty-50/openpilotlog/";
|
|
|
linkStub.append(ui->branchLineEdit->text());
|
|
|
linkStub.append("/assets/database/templates/sample_");
|
|
|
+ QDir template_dir(AStandardPaths::absPathOf(AStandardPaths::Templates));
|
|
|
|
|
|
for (const auto& table : userTables) {
|
|
|
QEventLoop loop;
|
|
|
ADownload* dl = new ADownload;
|
|
|
connect(dl, &ADownload::done, &loop, &QEventLoop::quit );
|
|
|
dl->setTarget(QUrl(linkStub + table + ".csv"));
|
|
|
- dl->setFileName("data/templates/sample_" + table + ".csv");
|
|
|
+ dl->setFileName(template_dir.filePath("sample_" + table % QStringLiteral(".csv")));
|
|
|
+ //dl->setFileName("data/templates/sample_" + table + ".csv");
|
|
|
dl->download();
|
|
|
loop.exec(); // event loop waits for download done signal before allowing loop to continue
|
|
|
dl->deleteLater();
|
|
@@ -120,26 +114,28 @@ void DebugWidget::on_fillUserDataPushButton_clicked()
|
|
|
allGood.resize(userTables.size());
|
|
|
|
|
|
for (const auto& table : userTables) {
|
|
|
- auto data = aReadCsv("data/templates/sample_" + table + ".csv");
|
|
|
+ auto data = aReadCsv(AStandardPaths::absPathOf(AStandardPaths::Templates)
|
|
|
+ + "/sample_" + table + ".csv");
|
|
|
allGood.setBit(userTables.indexOf(table), ADataBaseSetup::commitData(data, table));
|
|
|
}
|
|
|
|
|
|
if (allGood.count(true) != userTables.size()) {
|
|
|
- mb.setText("Errors have ocurred. Check console for details.");
|
|
|
- mb.exec();
|
|
|
+ message_box.setText("Errors have ocurred. Check console for details.");
|
|
|
+ message_box.exec();
|
|
|
return;
|
|
|
}
|
|
|
|
|
|
- mb.setText("User tables successfully populated.\n\nRestarting app.");
|
|
|
- mb.exec();
|
|
|
- qApp->quit();
|
|
|
- QProcess::startDetached(qApp->arguments()[0], qApp->arguments());
|
|
|
+ message_box.setText("User tables successfully populated.");
|
|
|
+ message_box.exec();
|
|
|
+ touchDatabase();
|
|
|
}
|
|
|
|
|
|
void DebugWidget::on_selectCsvPushButton_clicked()
|
|
|
{
|
|
|
auto fileName = QFileDialog::getOpenFileName(this,
|
|
|
- tr("Open CSV File for import"), QDir::homePath(), tr("CSV files (*.csv)"));
|
|
|
+ tr("Open CSV File for import"),
|
|
|
+ AStandardPaths::absPathOf(AStandardPaths::Templates),
|
|
|
+ tr("CSV files (*.csv)"));
|
|
|
ui->importCsvLineEdit->setText(fileName);
|
|
|
}
|
|
|
|
|
@@ -169,7 +165,20 @@ void DebugWidget::on_importCsvPushButton_clicked()
|
|
|
|
|
|
void DebugWidget::on_debugPushButton_clicked()
|
|
|
{
|
|
|
- DEB << AStandardPaths::allPaths()[AStandardPaths::Database ];
|
|
|
+ touchDatabase();
|
|
|
+}
|
|
|
+
|
|
|
+/*!
|
|
|
+ * \brief Acess the database to trigger aDB()::databaseUpdated
|
|
|
+ */
|
|
|
+void DebugWidget::touchDatabase()
|
|
|
+{
|
|
|
+ QMap<QString, QVariant> debugData;
|
|
|
+ debugData.insert("lastname","debugLastName");
|
|
|
+ debugData.insert("firstname","debugFirstName");
|
|
|
+ auto pilot = APilotEntry(1);
|
|
|
+ pilot.setData(debugData);
|
|
|
+ aDB()->commit(pilot);
|
|
|
}
|
|
|
|
|
|
/* //Comparing two functions template
|