Prechádzať zdrojové kódy

Enabled Copy operator on entry

Enabled copy operator on entry and created a skeleton constructor for the NewPilotDialog using experimental::PilotEntry
Felix Turo 4 rokov pred
rodič
commit
a542f0c091

+ 5 - 3
src/experimental/Db.h

@@ -34,11 +34,12 @@ auto const DEFAULT_PILOT_POSITION = DataPosition("pilots", 0);
  */
 class Entry {
 public:
-    const DataPosition position;
+    DataPosition position;
 protected:
     TableData tableData;
 public:
-    Entry() = delete;
+    Entry() {};
+    Entry(const Entry&) = default;
     Entry(DataPosition position_) : position(position_) {}
     void setData(TableData data) { tableData = data; }
     const TableData& getData() { return tableData; }
@@ -50,8 +51,9 @@ public:
 // the only difference will be that we will subclass Entry to have specialised
 // constructor
 class PilotEntry : public Entry {
-    PilotEntry() = delete;
 public:
+    PilotEntry() {};
+    PilotEntry(const PilotEntry&) = default;
     PilotEntry(int row_id) : Entry::Entry(DataPosition("pilots", row_id)) {}
     PilotEntry(TableData fromNewPilotDialog) : Entry::Entry(DataPosition("pilots", 0)) {
         setData(fromNewPilotDialog);

+ 9 - 4
src/gui/dialogues/newpilotdialog.cpp

@@ -20,7 +20,6 @@
 #include "debug.h"
 
 #include "src/experimental/Db.h"
-#include "src/experimental/UserInput.h"
 
 /* Examples for names around the world:
  * José Eduardo Santos Tavares Melo Silva
@@ -84,6 +83,14 @@ NewPilotDialog::NewPilotDialog(Pilot existingEntry, Db::editRole edRole, QWidget
     ui->piclastnameLineEdit->setFocus();
 }
 
+NewPilotDialog::NewPilotDialog(experimental::PilotEntry oldEntry, Db::editRole, QWidget *parent) :
+    QDialog(parent),
+    ui(new Ui::NewPilot)
+{
+    oldPilotEntry = oldEntry;
+    //to do
+}
+
 NewPilotDialog::~NewPilotDialog()
 {
     DEB("Deleting New NewPilotDialog\n");
@@ -165,12 +172,11 @@ void NewPilotDialog::submitForm()
     newData.insert("displayname",displayName);
 
     using namespace experimental;
-    //auto uin = newPilotInput(newData);
 
     switch (role) {
     case Db::editExisting:
         oldEntry.setData(newData);
-        DB::commit(oldEntry); // to do: make oldEntry experimental::PilotEntry at the moment
+        DB::commit(oldPilotEntry);
         // to do: handle unsuccessful commit
         break;
     case Db::createNew:
@@ -179,5 +185,4 @@ void NewPilotDialog::submitForm()
         // to do: handle unsuccessful commit
         break;
     }
-
 }

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

@@ -25,6 +25,7 @@
 #include <QCompleter>
 #include "src/classes/pilot.h"
 #include "src/classes/completionlist.h"
+#include "src/experimental/Db.h"
 
 namespace Ui {
 class NewPilot;
@@ -37,6 +38,7 @@ class NewPilotDialog : public QDialog
 public:
     explicit NewPilotDialog(Db::editRole, QWidget *parent = nullptr);
     explicit NewPilotDialog(Pilot, Db::editRole, QWidget *parent = nullptr);
+    explicit NewPilotDialog(experimental::PilotEntry oldEntry, Db::editRole, QWidget *parent = nullptr);
     ~NewPilotDialog();
 
 private slots:
@@ -49,7 +51,7 @@ private:
 
     Pilot oldEntry;
 
-    QPair<QString, int> oldPosition;
+    experimental::PilotEntry oldPilotEntry;
 
     void setupValidators();