File indexing completed on 2024-05-05 03:49:19
0001 // SPDX-License-Identifier: LGPL-2.1-or-later 0002 // 0003 // SPDX-FileCopyrightText: 2017 Sergey Popov <sergobot@protonmail.com> 0004 // 0005 0006 #ifndef MARBLE_DECLARATIVE_ROUTERELATIONMODEL_H 0007 #define MARBLE_DECLARATIVE_ROUTERELATIONMODEL_H 0008 0009 #include <QAbstractListModel> 0010 #include <QSet> 0011 0012 #include "GeoDataRelation.h" 0013 0014 namespace Marble { 0015 0016 class RouteRelationModel : public QAbstractListModel 0017 { 0018 Q_OBJECT 0019 0020 public: 0021 enum RouteRelationRoles { 0022 IconSource = Qt::UserRole + 1, 0023 Description, 0024 Network, 0025 RouteColor, 0026 TextColor, 0027 RouteFrom, 0028 RouteTo, 0029 RouteRef, 0030 RouteVia, 0031 OsmId, 0032 RouteVisible 0033 }; 0034 0035 explicit RouteRelationModel(QObject* parent = nullptr); 0036 0037 void setRelations(const QSet<const GeoDataRelation *> &relations); 0038 0039 int rowCount(const QModelIndex & parent = QModelIndex()) const override; 0040 0041 QVariant data(const QModelIndex & index, int role = Qt::DisplayRole) const override; 0042 0043 protected: 0044 QHash<int, QByteArray> roleNames() const override; 0045 0046 private: 0047 static QString svgFile(const QString &path); 0048 0049 QVector<const Marble::GeoDataRelation*> m_relations; 0050 QMap<QString, QString> m_networks; 0051 }; 0052 0053 } 0054 0055 #endif // ROUTERELATIONMODEL