13 QAbstractListModel(pr),
14 m_aircraftModel(acModel)
18 m_data = QUrl::fromStringList(urls);
21 this, &RecentAircraftModel::onModelContentsChanged);
32 return m_data.at(index);
37 return m_data.empty();
42 const QUrl uri = m_data.at(index.row());
43 if (role == Qt::DisplayRole) {
44 return m_aircraftModel->nameForAircraftURI(uri);
45 }
else if (role == Qt::UserRole) {
59 QHash<int, QByteArray> result = QAbstractListModel::roleNames();
60 result[Qt::DisplayRole] =
"display";
61 result[Qt::UserRole] =
"uri";
71 return m_data.front();
76 if (aircraftUrl.isEmpty())
79 int existingIndex = m_data.indexOf(aircraftUrl);
80 if (existingIndex == 0) {
85 if (existingIndex >= 0) {
86 beginRemoveRows(QModelIndex(), existingIndex, existingIndex);
87 m_data.removeAt(existingIndex);
91 beginInsertRows(QModelIndex(), 0, 0);
92 m_data.push_front(aircraftUrl);
105void RecentAircraftModel::onModelContentsChanged()
107 emit dataChanged(index(0), index(m_data.size() - 1));
const int MAX_RECENT_AIRCRAFT
const QString recentAircraftKey
RecentAircraftModel(AircraftItemModel *acModel, QObject *pr=nullptr)
int rowCount(const QModelIndex &parent) const override
void insert(QUrl aircraftUrl)
QVariant data(const QModelIndex &index, int role) const override
Q_INVOKABLE QUrl uriAt(int index) const
QHash< int, QByteArray > roleNames() const override