Browse Source

Some Database and BackupWidget tweaks

- More efficient retrieval of entry data in ADatabase::getEntryData
- Added some info boxes to BackupWidget to give more feedback to user
Felix Turo 3 years ago
parent
commit
8fde24a7b4

+ 7 - 7
l10n/openpilotlog_de.ts

@@ -4,27 +4,27 @@
 <context>
     <name>ADatabase</name>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="730"/>
+        <location filename="../src/database/adatabase.cpp" line="790"/>
         <source>&lt;tr&gt;&lt;td&gt;Total Time: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="731"/>
+        <location filename="../src/database/adatabase.cpp" line="791"/>
         <source>&lt;tr&gt;&lt;td&gt;Last Flight: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="732"/>
+        <location filename="../src/database/adatabase.cpp" line="792"/>
         <source>&lt;tr&gt;&lt;td&gt;Number of flights: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="733"/>
+        <location filename="../src/database/adatabase.cpp" line="793"/>
         <source>&lt;tr&gt;&lt;td&gt;Number of aircraft: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="734"/>
+        <location filename="../src/database/adatabase.cpp" line="794"/>
         <source>&lt;tr&gt;&lt;td&gt;Number of Pilots: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -346,12 +346,12 @@ Error: %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/debugwidget.cpp" line="158"/>
+        <location filename="../src/gui/widgets/debugwidget.cpp" line="187"/>
         <source>Open CSV File for import</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/debugwidget.cpp" line="160"/>
+        <location filename="../src/gui/widgets/debugwidget.cpp" line="189"/>
         <source>CSV files (*.csv)</source>
         <translation type="unfinished"></translation>
     </message>

+ 7 - 7
l10n/openpilotlog_en.ts

@@ -4,27 +4,27 @@
 <context>
     <name>ADatabase</name>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="730"/>
+        <location filename="../src/database/adatabase.cpp" line="790"/>
         <source>&lt;tr&gt;&lt;td&gt;Total Time: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="731"/>
+        <location filename="../src/database/adatabase.cpp" line="791"/>
         <source>&lt;tr&gt;&lt;td&gt;Last Flight: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="732"/>
+        <location filename="../src/database/adatabase.cpp" line="792"/>
         <source>&lt;tr&gt;&lt;td&gt;Number of flights: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="733"/>
+        <location filename="../src/database/adatabase.cpp" line="793"/>
         <source>&lt;tr&gt;&lt;td&gt;Number of aircraft: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="734"/>
+        <location filename="../src/database/adatabase.cpp" line="794"/>
         <source>&lt;tr&gt;&lt;td&gt;Number of Pilots: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -346,12 +346,12 @@ Error: %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/debugwidget.cpp" line="158"/>
+        <location filename="../src/gui/widgets/debugwidget.cpp" line="187"/>
         <source>Open CSV File for import</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/debugwidget.cpp" line="160"/>
+        <location filename="../src/gui/widgets/debugwidget.cpp" line="189"/>
         <source>CSV files (*.csv)</source>
         <translation type="unfinished"></translation>
     </message>

+ 7 - 7
l10n/openpilotlog_es.ts

@@ -4,27 +4,27 @@
 <context>
     <name>ADatabase</name>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="730"/>
+        <location filename="../src/database/adatabase.cpp" line="790"/>
         <source>&lt;tr&gt;&lt;td&gt;Total Time: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="731"/>
+        <location filename="../src/database/adatabase.cpp" line="791"/>
         <source>&lt;tr&gt;&lt;td&gt;Last Flight: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="732"/>
+        <location filename="../src/database/adatabase.cpp" line="792"/>
         <source>&lt;tr&gt;&lt;td&gt;Number of flights: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="733"/>
+        <location filename="../src/database/adatabase.cpp" line="793"/>
         <source>&lt;tr&gt;&lt;td&gt;Number of aircraft: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/database/adatabase.cpp" line="734"/>
+        <location filename="../src/database/adatabase.cpp" line="794"/>
         <source>&lt;tr&gt;&lt;td&gt;Number of Pilots: &lt;/td&gt;&lt;td&gt;%1&lt;/td&gt;</source>
         <translation type="unfinished"></translation>
     </message>
@@ -346,12 +346,12 @@ Error: %2</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/debugwidget.cpp" line="158"/>
+        <location filename="../src/gui/widgets/debugwidget.cpp" line="187"/>
         <source>Open CSV File for import</source>
         <translation type="unfinished"></translation>
     </message>
     <message>
-        <location filename="../src/gui/widgets/debugwidget.cpp" line="160"/>
+        <location filename="../src/gui/widgets/debugwidget.cpp" line="189"/>
         <source>CSV files (*.csv)</source>
         <translation type="unfinished"></translation>
     </message>

+ 10 - 7
src/database/adatabase.cpp

@@ -328,7 +328,7 @@ bool ADatabase::insert(AEntry new_entry)
     QString statement = QLatin1String("INSERT INTO ") + new_entry.getPosition().tableName + QLatin1String(" (");
     QMap<QString, QVariant>::iterator i;
     for (i = data.begin(); i != data.end(); ++i) {
-        statement.append(i.key() + ',');
+        statement.append(i.key() + QLatin1Char(','));
     }
     statement.chop(1);
     statement += QLatin1String(") VALUES (");
@@ -337,7 +337,7 @@ bool ADatabase::insert(AEntry new_entry)
         statement += QLatin1String("?,");
     }
     statement.chop(1);
-    statement += ')';
+    statement += QLatin1Char(')');
 
     QSqlQuery query;
     query.prepare(statement);
@@ -413,14 +413,17 @@ RowData_T ADatabase::getEntryData(DataPosition data_position)
         DEB << "SQL error: " << select_query.lastError().text();
         DEB << "Statement: " << statement;
         lastError = select_query.lastError().text();
-        return RowData_T();
+        return {};
     }
 
-    select_query.next();
     RowData_T entry_data;
-
-    for (const auto &column : getTableColumns(data_position.tableName)) {
-        entry_data.insert(column, select_query.value(column));
+    if(select_query.next()) { // retreive records
+        auto r = select_query.record();
+        for (int i = 0; i < r.count(); i++){
+            if(!r.value(i).isNull()) {
+                entry_data.insert(r.fieldName(i), r.value(i));
+            }
+        }
     }
     return entry_data;
 }

+ 1 - 2
src/database/adatabase.h

@@ -43,7 +43,7 @@
 #define SQLITE_DRIVER QStringLiteral("QSQLITE")
 
 /*!
- * \brief Convinience macro that returns instance of DataBase.
+ * \brief Convenience macro that returns instance of DataBase.
  * Instead of this:
  * DataBase::getInstance().commit(...)
  * Write this:
@@ -57,7 +57,6 @@
  */
 enum class ADatabaseTarget
 {
-
     airport_identifier_icao,
     airport_identifier_iata,
     airport_identifier_all,

+ 8 - 0
src/gui/widgets/backupwidget.cpp

@@ -106,6 +106,8 @@ void BackupWidget::on_createLocalPushButton_clicked()
     if(!aDB->createBackup(filename)) {
         WARN(tr("Could not create local file: %1").arg(filename));
         return;
+    } else {
+        INFO(tr("Backup successfully created."));
     }
 
     QFileIconProvider provider;
@@ -145,6 +147,8 @@ void BackupWidget::on_restoreLocalPushButton_clicked()
 
     if(!aDB->restoreBackup(backup_name)) {
        WARN(tr("Unable to restore Backup file: %1").arg(backup_name));
+    } else {
+        INFO(tr("Backup successfully restored."));
     }
 
     view->clearSelection();
@@ -182,6 +186,8 @@ void BackupWidget::on_deleteSelectedPushButton_clicked()
     if(!file.remove()) {
         WARN(tr("Unable to remove file %1\nError: %2").arg(filename.fileName(),file.errorString()));
         return;
+    } else {
+        INFO(tr("Backup successfully deleted."));
     }
 
     model->removeRow(selectedFileInfo->row());
@@ -209,6 +215,8 @@ void BackupWidget::on_createExternalPushButton_clicked()
     if(!aDB->createBackup(filename)) {
         WARN(tr("Unable to backup file:").arg(filename));
         return;
+    } else {
+        INFO(tr("Backup successfully created."));
     }
 }
 

+ 1 - 3
src/gui/widgets/debugwidget.cpp

@@ -31,9 +31,7 @@
 #include "src/classes/ajson.h"
 void DebugWidget::on_debugPushButton_clicked()
 {
-
-    AJson::exportDatabase();
-    DEB << AStandardPaths::asChildOfDir(AStandardPaths::JSON,"file_name");
+    DEB << aDB->getEntryData(DataPosition("tails",1));
 }
 
 DebugWidget::DebugWidget(QWidget *parent) :