Browse Source

added qcompleter for company

fiffty-50 4 years ago
parent
commit
ce4b451f16

+ 11 - 6
src/classes/completionlist.cpp

@@ -34,10 +34,6 @@ CompletionList::CompletionList(CompleterTarget::targets type)
     QVector<QString> result;
 
     switch (type) {
-    case CompleterTarget::pilots:
-        query.append("SELECT piclastname||', '||picfirstname FROM pilots");
-        result = Db::customQuery(query, 1);
-        break;
     case CompleterTarget::airports:
         columns.append("icao");
         columns.append("iata");
@@ -47,12 +43,21 @@ CompletionList::CompletionList(CompleterTarget::targets type)
         columns.append("registration");
         result = Db::multiSelect(columns, "tails");
         break;
+    case CompleterTarget::companies:
+        columns.append("company");
+        result = Db::multiSelect(columns, "pilots");
+        break;
+    case CompleterTarget::pilots:
+        query.append("SELECT piclastname||', '||picfirstname FROM pilots");
+        result = Db::customQuery(query, 1);
+        break;
     case CompleterTarget::aircraft:
         query.append("SELECT make||' '||model||'-'||variant FROM aircraft");
         result = Db::customQuery(query, 1);
         break;
     }
 
-    CompletionList::list = result.toList();
-    CompletionList::list.removeAll(QString(""));
+    list = result.toList();
+    list.removeAll(QString(""));
+    list.removeDuplicates();
 }

+ 1 - 1
src/classes/completionlist.h

@@ -24,7 +24,7 @@
 class CompleterTarget
 {
 public:
-    enum targets {airports, pilots, registrations, aircraft};
+    enum targets {airports, pilots, registrations, aircraft, companies};
 };
 
 

+ 14 - 0
src/gui/dialogues/newpilot.cpp

@@ -47,6 +47,7 @@ NewPilot::NewPilot(Db::editRole edRole, QWidget *parent) :
     role = edRole;
     ui->setupUi(this);
     setupValidators();
+    setupCompleter();
 }
 // For editing an existing entry
 NewPilot::NewPilot(Pilot existingEntry, Db::editRole edRole, QWidget *parent) :
@@ -57,6 +58,7 @@ NewPilot::NewPilot(Pilot existingEntry, Db::editRole edRole, QWidget *parent) :
     role = edRole;
     ui->setupUi(this);
     setupValidators();
+    setupCompleter();
 
     formFiller();
     ui->piclastnameLineEdit->setFocus();
@@ -93,6 +95,18 @@ void NewPilot::setupValidators()
     }
 }
 
+void NewPilot::setupCompleter()
+{
+    DEB("Setting up completer...");
+
+    auto companies = new CompletionList(CompleterTarget::companies);
+    auto completer = new QCompleter(companies->list, ui->companyLineEdit);
+    completer->setCompletionMode(QCompleter::InlineCompletion);
+    completer->setCaseSensitivity(Qt::CaseSensitive);
+
+    ui->companyLineEdit->setCompleter(completer);
+}
+
 void NewPilot::formFiller()
 {
     DEB("Filling Form...");

+ 4 - 0
src/gui/dialogues/newpilot.h

@@ -22,7 +22,9 @@
 #include <QMessageBox>
 #include <QRegularExpression>
 #include <QRegularExpressionValidator>
+#include <QCompleter>
 #include "src/classes/pilot.h"
+#include "src/classes/completionlist.h"
 
 namespace Ui {
 class NewPilot;
@@ -49,6 +51,8 @@ private:
 
     void setupValidators();
 
+    void setupCompleter();
+
     void formFiller();
 
     void submitForm();