aircraftwidget.h
/*
*openPilotLog - A FOSS Pilot Logbook Application
*Copyright (C) 2020-2022 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 AIRCRAFTWIDGET_H
#define AIRCRAFTWIDGET_H
#include <QWidget>
#include <QItemSelection>
#include <QSqlTableModel>
#include <QTableView>
#include "src/gui/widgets/settingswidget.h"
#include "src/gui/dialogues/newtaildialog.h"
namespace Ui {
class AircraftWidget;
}
class AircraftWidget : public QWidget
{
Q_OBJECT
public:
explicit AircraftWidget(QWidget *parent = nullptr);
~AircraftWidget();
private slots:
void tableView_selectionChanged();
void tableView_headerClicked(int column);
void on_deleteAircraftButton_clicked();
void on_newAircraftButton_clicked();
void onNewTailDialog_editingFinished();
void on_aircraftSearchLineEdit_textChanged(const QString &arg1);
public slots:
void onAircraftWidget_settingChanged(SettingsWidget::SettingSignal signal);
void onAircraftWidget_dataBaseUpdated();
void repopulateModel();
private:
Ui::AircraftWidget *ui;
QSqlTableModel *model;
QTableView *view;
QItemSelectionModel* selection;
qint32 sortColumn;
QVector<qint32> selectedTails;
const QString getAircraftTypeString(const OPL::Row &row) const;
const QString getFlightSummary(const OPL::FlightEntry &flight) const;
void setupModelAndView();
void connectSignalsAndSlots();
void onDeleteUnsuccessful();
inline void refreshView(){model->select();}
protected:
void changeEvent(QEvent* event) override;
};
#endif // AIRCRAFTWIDGET_H
AircraftWidget
The AircraftWidget is used to view, edit, delete or add new tails.
Definition: aircraftwidget.h:54
AircraftWidget::repopulateModel
void repopulateModel()
AircraftWidget::repopulateModel (public slot) - re-populates the model to cater for a change to the d...
Definition: aircraftwidget.cpp:249
AircraftWidget::onAircraftWidget_settingChanged
void onAircraftWidget_settingChanged(SettingsWidget::SettingSignal signal)
invokes setupModelAndView() to account for changes the user has made in the SettingsWidget
Definition: aircraftwidget.cpp:82
AircraftWidget::changeEvent
void changeEvent(QEvent *event) override
Handles change events, like updating the UI to new localisation.
Definition: aircraftwidget.cpp:95
AircraftWidget::onAircraftWidget_dataBaseUpdated
void onAircraftWidget_dataBaseUpdated()
Refreshes the view if the Database has been altered from outside the AircraftWidget.
Definition: aircraftwidget.cpp:90
OPL::FlightEntry
A Row representing a Flight entry. See Row class for details.
Definition: row.h:133
OPL::Row
The Row class provides an interface for retreiving and submitting entries from the database.
Definition: row.h:46
SettingsWidget::SettingSignal
SettingSignal
enumerates Widgets that need to receive a signal when a setting is updated.
Definition: settingswidget.h:51