openPilotLog
|
The PilotsWidget is used to view, edit, delete or add new pilots. More...
#include <pilotswidget.h>
Public Slots | |
void | onPilotsWidget_settingChanged (SettingsWidget::SettingSignal signal) |
invokes setupModelAndView() to account for changes the user has made in the SettingsWidget | |
void | onPilotsWidget_databaseUpdated () |
Refreshes the view if the Database has been altered from outside the AircraftWidget. | |
void | repopulateModel () |
PilotsWidget::repopulateModel (public slot) - re-populates the model to cater for a change to the database connection (for example, when a backup is created) | |
Public Member Functions | |
PilotsWidget (QWidget *parent=nullptr) | |
Protected Member Functions | |
void | changeEvent (QEvent *event) override |
Handles change events, like updating the UI to new localisation. | |
The PilotsWidget is used to view, edit, delete or add new pilots.
The widget consists of two main parts, a QTableView on the left side and a QStackedWidget on the right side.
In the QTableView, a QSqlTableModel is used to access a view from the database, which holds a Pilots' Last Name, First name and Company.
The welcome page shown on the QStackedWidget on the right side has a QLineEdit that functions as a search box and a QCombobox holding the possible columns that can be used to filter what is displayed. The text of the QLineEdit is used as a filter for the QSqlTableModel, so the view is updated in real time.
The NewPilotDialog is used for creating a new entry as well as for editing an existing entry. If the user selects a row in the QTableView, the NewPilotDialog is displayed on the right side of the Widget, inside the QStackedWidget. In order to avoid leaks from any previously made selections, existing Dialogs are deleted before a new one is created. The NewPilotDialog's accepted
and rejected
signals are connected to refresh the view as required.
The logbook owner is not shown in the QTableView as an editable Pilot since self
is a special reserved alias for the pilot with ROWID #1 as a way to identify and adequately display the logbook owner in the logbook. Editing personal details is done via the SettingsWidget