12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273 |
- /*
- *openPilotLog - A FOSS Pilot Logbook Application
- *Copyright (C) 2020-2023 Felix Turowsky
- *
- *This program is free software: you can redistribute it and/or modify
- *it under the terms of the GNU General Public License as published by
- *the Free Software Foundation, either version 3 of the License, or
- *(at your option) any later version.
- *
- *This program is distributed in the hope that it will be useful,
- *but WITHOUT ANY WARRANTY; without even the implied warranty of
- *MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- *GNU General Public License for more details.
- *
- *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 NEWPILOT_H
- #define NEWPILOT_H
- #include <QDialog>
- #include <QMessageBox>
- #include <QRegularExpression>
- #include <QRegularExpressionValidator>
- #include <QCompleter>
- #include "src/database/pilotentry.h"
- namespace Ui {
- class NewPilot;
- }
- /*!
- * \brief The NewPilotDialog enables adding new entries to the pilot table in the database
- * \details The NewPilotDialog offers two constructors, one is used to create a new Pilot Entry
- * from scratch, while the other one is used to edit an existing entry. The existing entry
- * is identified by its ROW ID in the database and is then retreived, its data being used
- * to pre-fill the UI to enable editing the existing data.
- *
- * A QCompleter provides in-line completion for the company field.
- *
- * No verification is done on the user input. Sqlite has full unicode support and names
- * come in all different forms and shapes around the world. In order to maintain a maximum
- * amount of flexibility, any unicode input is allowed.
- */
- class NewPilotDialog : public QDialog
- {
- Q_OBJECT
- public:
- explicit NewPilotDialog(QWidget *parent = nullptr);
- explicit NewPilotDialog(int rowId, QWidget *parent = nullptr);
- ~NewPilotDialog();
- private slots:
- void on_buttonBox_accepted();
- private:
- Ui::NewPilot *ui;
- OPL::PilotEntry pilotEntry;
- inline void setup();
- /*!
- * \brief formFiller - fills the line edits with the data retreived from the database.
- */
- void formFiller();
- /*!
- * \brief submitForm - retreives the input from the line edits and commits to the database.
- */
- void submitForm();
- };
- #endif // NEWPILOT_H
|