10 #include <QStandardItem>
11 #include <QStandardItemModel>
30 using namespace swift::misc::physical_quantities;
31 using namespace swift::misc::aviation;
32 using namespace swift::misc::network;
36 CAtcStationTreeModel::CAtcStationTreeModel(QObject *parent) : QStandardItemModel(parent) {}
41 if (stations.
isEmpty()) {
return; }
46 QStandardItemModel::clear();
48 int visibleColumns = 0;
49 for (
const QString &suffix : std::as_const(m_suffixes))
52 QStandardItem *typeFolderFirstColumn =
53 new QStandardItem(CCallsign::atcSuffixToIcon(suffix).toQIcon(), suffix);
54 typeFolderFirstColumn->setEditable(
false);
55 this->invisibleRootItem()->appendRow(typeFolderFirstColumn);
57 for (
const CAtcStation &station : m_stationsBySuffix[suffix])
60 QList<QStandardItem *> stationRow;
64 const CVariant v(station.propertyByIndex(i));
66 QStandardItem *si =
nullptr;
67 if (column.getFormatter()->supportsRole(Qt::DecorationRole))
69 const QIcon icon = column.getFormatter()->decorationRole(v).toPixmap();
70 si =
new QStandardItem(icon, QString());
72 else if (column.getFormatter()->supportsRole(Qt::DisplayRole))
74 const CVariant f = column.getFormatter()->displayRole(v);
75 si =
new QStandardItem(f.
toQString(
true));
77 if (!si) {
continue; }
79 si->setEditable(
false);
80 stationRow.push_back(si);
84 if (stationRow.isEmpty()) {
continue; }
85 typeFolderFirstColumn->appendRow(stationRow);
86 visibleColumns = qMax(visibleColumns, colCount);
89 this->setColumnCount(visibleColumns);
95 m_stationsBySuffix.clear();
97 QStandardItemModel::clear();
void clear()
Clear everything.
void updateContainer(const swift::misc::aviation::CAtcStationList &stations)
Update container.
void changedAtcStationConnectionStatus(const swift::misc::aviation::CAtcStation &station, bool added)
Used to quickly update single station (better response for the user)
const QList< CColumn > & columns() const
Columns.
void clear()
Removes all elements in the sequence.
bool isEmpty() const
Synonym for empty.
Wrapper around QVariant which provides transparent access to CValueObject methods of the contained ob...
Value object encapsulating information about an ATC station.
Value object for a list of ATC stations.
QHash< QString, CAtcStationList > splitPerSuffix(bool sort=true) const
Split per suffix.
CAtcStationList sortedByAtcSuffixSortOrderAndDistance() const
Sorted by ATC suffix sort order and distance.
QStringList getSuffixes() const
All suffixes, in the order of the list.
QString toQString(bool i18n=false) const
Cast as QString.
Models to be used with views, mainly QTableView.
Free functions in swift::misc.