PilotsWidget Class Reference

The PilotsWidget is used to view, edit, delete or add new pilots. More...

`#include <pilotswidget.h>`

Inheritance diagram for PilotsWidget:

## 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.

## Detailed Description

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

The documentation for this class was generated from the following files:

- src/gui/widgets/pilotswidget.h
- src/gui/widgets/pilotswidget.cpp