1 // SPDX-License-Identifier: LGPL-2.1-or-later 2 // 3 // SPDX-FileCopyrightText: 2010 Dennis Nienhüser <nienhueser@kde.org> 4 // 5 6 #ifndef MARBLE_MONAVMAPSMODEL_H 7 #define MARBLE_MONAVMAPSMODEL_H 8 9 #include "MonavMap.h" 10 11 #include <QAbstractTableModel> 12 13 namespace Marble 14 { 15 16 class MonavMapsModel : public QAbstractTableModel 17 { 18 Q_OBJECT 19 20 public: 21 explicit MonavMapsModel( const QVector<MonavMap> &data, QObject * parent = nullptr ); 22 23 QVariant headerData ( int section, Qt::Orientation orientation, int role = Qt::DisplayRole ) const override; 24 25 QVariant data ( const QModelIndex & index, int role = Qt::DisplayRole ) const override; 26 27 int rowCount ( const QModelIndex & parent = QModelIndex() ) const override; 28 29 int columnCount ( const QModelIndex & parent = QModelIndex() ) const override; 30 31 static bool sortByName( const MonavMap &first, const MonavMap &second ); 32 33 void deleteMapFiles( int index ); 34 35 QString payload( int index ) const; 36 37 void setInstallableVersions( const QMap<QString, QString> &remoteMaps ); 38 39 private: 40 QVector<MonavMap> m_data; 41 42 QMap<QString, QString> m_remoteMaps; 43 }; 44 45 } 46 47 #endif // MARBLE_MONAVMAPSMODEL_H 48