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