swift
aircraftsituationlistmodel.cpp
1 // SPDX-FileCopyrightText: Copyright (C) 2018 swift Project Community / Contributors
2 // SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3 
5 
6 #include <Qt>
7 #include <QtGlobal>
8 
10 #include "gui/models/columns.h"
12 #include "misc/propertyindex.h"
13 
14 using namespace swift::misc;
15 using namespace swift::misc::aviation;
16 using namespace swift::misc::geo;
17 using namespace swift::misc::physical_quantities;
18 
19 namespace swift::gui::models
20 {
21  CAircraftSituationListModel::CAircraftSituationListModel(QObject *parent)
22  : CListModelTimestampWithOffsetObjects<CAircraftSituationList, true>("ViewAircraftPartsList", parent)
23  {
25 
26  m_columns.addColumn(CColumn("altitude", CAircraftSituation::IndexAltitude, new CAltitudeFormatter()));
27  m_columns.addColumn(CColumn("CG", CAircraftSituation::IndexCG,
28  new CPhysiqalQuantiyFormatter<CLengthUnit, CLength>(CLengthUnit::ft(), 1)));
29  m_columns.addColumn(CColumn("latitude", CAircraftSituation::IndexLatitude, new CLatLonFormatter()));
30  m_columns.addColumn(CColumn("longitude", CAircraftSituation::IndexLongitude, new CLatLonFormatter()));
31  m_columns.addColumn(CColumn("gs.", CAircraftSituation::IndexGroundSpeed, new CSpeedKtsFormatter()));
32  m_columns.addColumn(CColumn::standardValueObject("gnd factor", CAircraftSituation::IndexIsOnGroundInfo,
34  m_columns.addColumn(CColumn::standardString("PBH", "pitch bank heading", CAircraftSituation::IndexPBHInfo));
35  m_columns.addColumn(CColumn::standardString("gnd.elv.", CAircraftSituation::IndexGroundElevationPlusInfo));
36  m_columns.addColumn(CColumn::standardString("gnd.elv.alt.", { CAircraftSituation::IndexGroundElevationPlane,
37  CElevationPlane::IndexGeodeticHeightAsString }));
38  m_columns.addColumn(CColumn("elv.radius",
39  { CAircraftSituation::IndexGroundElevationPlane, CElevationPlane::IndexRadius },
40  new CPhysiqalQuantiyFormatter<CLengthUnit, CLength>(CLengthUnit::m(), 1)));
42  "cs.", "callsign", { CAircraftSituation::IndexCallsign, CCallsign::IndexCallsignStringAsSet }));
43 
44  // default sort order
45  this->setSortColumnByPropertyIndex(CAircraftSituation::IndexAdjustedMsWithOffset);
46  m_sortOrder = Qt::DescendingOrder;
47  }
48 } // namespace swift::gui::models
Formatter when column contains an altitude.
Single column.
Definition: columns.h:26
static CColumn standardValueObject(const QString &headerName, const swift::misc::CPropertyIndex &propertyIndex, int alignment=CDefaultFormatter::alignDefault())
Get a standard value object formatted column.
Definition: columns.cpp:46
static CColumn standardString(const QString &headerName, const swift::misc::CPropertyIndex &propertyIndex, int alignment=CDefaultFormatter::alignDefault())
Get a standard string object formatted column.
Definition: columns.cpp:57
void addColumn(const CColumn &column)
Add a column.
Definition: columns.cpp:100
static int alignRightVCenter()
Align right/vertically centered.
Latitude or Longitude formatter.
virtual bool setSortColumnByPropertyIndex(const swift::misc::CPropertyIndex &propertyIndex)
Set column for sorting.
List model for timestamp based objects with offset.
Formatter for physical quantities.
Models to be used with views, mainly QTableView.
Free functions in swift::misc.