Explorar o código

Compiles. DataBase as Singleton, Entry, Decl added

Georgios Kotzampopoulos %!s(int64=4) %!d(string=hai) anos
pai
achega
4a5cd0bf37

+ 2 - 2
src/database/entry.h

@@ -15,8 +15,8 @@
  *You should have received a copy of the GNU General Public License
  *along with this program.  If not, see <https://www.gnu.org/licenses/>.
  */
-#ifndef ENTRY_H
-#define ENTRY_H
+#ifndef ENTRY1_H
+#define ENTRY1_H
 
 #include <QCoreApplication>
 #include "db.h"

+ 0 - 2
src/experimental/DataBase.cpp

@@ -7,8 +7,6 @@ DataBase* DataBase::instance = nullptr;
 DataBase* DataBase::getInstance()
 {
     return instance ?: new DataBase();
-//    if(!instance)
-//    return instance;
 }
 
 bool DataBase::connect()

+ 4 - 7
src/experimental/DataBase.h

@@ -9,28 +9,25 @@
 #include "src/database/dbinfo.h"
 #include "debug.h"
 
-#include "src/experimental/UserInput.h"
-//#include "Decl.h"
 #include "Entry.h"
 
 namespace experimental {
 
-/// [F] ideas for functions of db class:
-/// https://github.com/fiffty-50/openpilotlog/wiki/New-DB-class-brainstorming    
+// [F] ideas for functions of db class:
+// https://github.com/fiffty-50/openpilotlog/wiki/New-DB-class-brainstorming
 
 /*!
  * \brief The DB class encapsulates the SQL database by providing fast access
  * to hot database data.
  */
+
+
 class DataBase {
 private:
     QStringList tableNames;
     QMap<QString, QStringList> tableColumns;
     static DataBase* instance;
     DataBase() = default;
-signals:
-    void commitSuccessful();
-    void commitUnsuccessful(QString message);
 public:
     // Ensure DB is not copiable or assignable
     DataBase(const DataBase&) = delete;

+ 4 - 3
src/experimental/Decl.h

@@ -22,14 +22,15 @@ struct DataPosition : QPair<QString, int> {
     QString& tableName;
     int& rowId;
     DataPosition()
-        : QPair<QString, int>(), tableName(first), rowId(second)
+        : QPair<QString, int>::QPair(), tableName(first), rowId(second)
     {}
     DataPosition(QString tn, int ri)
-        : QPair<QString, int>(tn, ri), tableName(first), rowId(second)
+        : QPair<QString, int>::QPair(tn, ri), tableName(first), rowId(second)
     {}
 };
 
-auto const DEFAULT_PILOT_POSITION = DataPosition("pilots", 0);
+auto const DEFAULT_PILOT_POSITION = QPair<QString, int>("pilots", 0);
+
 }
 
 #endif // DECL_H

+ 14 - 2
src/experimental/Entry.cpp

@@ -2,10 +2,16 @@
 
 namespace experimental {
 
-Entry::Entry(DataPosition position_)
+Entry::Entry(QPair<QString, int> position_)
     : position(position_)
 {}
 
+void Entry::operator=(const Entry& e)
+{
+    position = e.position;
+    tableData = e.tableData;
+}
+
 void Entry::setData(QMap<QString, QString> data)
 {
     tableData = data;
@@ -20,8 +26,14 @@ PilotEntry::PilotEntry(const PilotEntry& pe)
     : Entry::Entry(pe)
 {}
 
+void PilotEntry::operator=(const PilotEntry& pe)
+{
+    position = pe.position;
+    tableData = pe.tableData;
+}
+
 PilotEntry::PilotEntry(int row_id)
-    : Entry::Entry(DataPosition("pilots", row_id))
+    : Entry::Entry(QPair<QString, int>("pilots", row_id))
 {}
 
 PilotEntry::PilotEntry(QMap<QString, QString> fromNewPilotDialog)

+ 5 - 2
src/experimental/Entry.h

@@ -16,21 +16,24 @@ namespace experimental {
  */
 class Entry {
 public:
-    DataPosition position;
+    QPair<QString, int> position;
 protected:
     QMap<QString, QString> tableData;
 public:
     Entry() = default;
     Entry(const Entry&) = default;
-    Entry(DataPosition position_);
+    void operator=(const Entry&);
+    Entry(QPair<QString, int> position_);
     void setData(QMap<QString, QString> data);
     const QMap<QString, QString>& getData();
+
 };
 
 class PilotEntry : public Entry {
 public:
     PilotEntry() = default;
     PilotEntry(const PilotEntry& pe);
+    void operator=(const PilotEntry& pe);
     PilotEntry(int row_id);
     PilotEntry(QMap<QString, QString> fromNewPilotDialog);
 };

+ 5 - 5
src/gui/dialogues/newpilotdialog.cpp

@@ -20,7 +20,7 @@
 #include "debug.h"
 
 #include "src/experimental/DataBase.h"
-
+#include "src/experimental/Entry.h"
 /* Examples for names around the world:
  * José Eduardo Santos Tavares Melo Silva
  * María José Carreño Quiñones
@@ -88,8 +88,8 @@ NewPilotDialog::NewPilotDialog(experimental::PilotEntry oldEntry, Db::editRole,
     ui(new Ui::NewPilot)
 {
     using namespace experimental;
-    connect(DB(), &DataBase::commitUnsuccessful,
-            this, &NewPilotDialog::onCommitUnsuccessful);
+//    connect(DB(), &DataBase::commitUnsuccessful,
+//            this, &NewPilotDialog::onCommitUnsuccessful);
     oldPilotEntry = oldEntry;
     //to do
 }
@@ -179,12 +179,12 @@ void NewPilotDialog::submitForm()
     switch (role) {
     case Db::editExisting:
         oldEntry.setData(newData);
-        DataBase::commit(oldPilotEntry);
+        DB()->commit(oldPilotEntry);
         // to do: handle unsuccessful commit
         break;
     case Db::createNew:
         auto newEntry = PilotEntry(newData);
-        DataBase::commit(newEntry);
+        experimental::DB()->commit(oldPilotEntry);
         // to do: handle unsuccessful commit
         break;
     }

+ 4 - 3
src/gui/dialogues/newpilotdialog.h

@@ -25,7 +25,10 @@
 #include <QCompleter>
 #include "src/classes/pilot.h"
 #include "src/classes/completionlist.h"
-#include "src/experimental/Entry.h"
+
+#include "src/experimental/DataBase.h"
+//#include "src/experimental/Entry.h"
+//#include "src/experimental/Decl.h"
 
 namespace Ui {
 class NewPilot;
@@ -34,7 +37,6 @@ class NewPilot;
 class NewPilotDialog : public QDialog
 {
     Q_OBJECT
-
 public:
     explicit NewPilotDialog(Db::editRole, QWidget *parent = nullptr);
     explicit NewPilotDialog(Pilot, Db::editRole, QWidget *parent = nullptr);
@@ -42,7 +44,6 @@ public:
     ~NewPilotDialog();
 private slots:
     void on_buttonBox_accepted();
-    void onCommitUnsuccessful();
 private:
     Ui::NewPilot *ui;