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_MONAVCONFIGWIDGET_H
7 #define MARBLE_MONAVCONFIGWIDGET_H
8 
9 #include "ui_MonavConfigWidget.h"
10 #include "RoutingRunnerPlugin.h"
11 
12 #include <QWidget>
13 
14 class QNetworkReply;
15 
16 namespace Marble
17 {
18 
19 class MonavPlugin;
20 class MonavConfigWidgetPrivate;
21 
22 class MonavConfigWidget : public RoutingRunnerPlugin::ConfigWidget, private Ui::MonavConfigWidget
23 {
24     Q_OBJECT
25 
26 public:
27     explicit MonavConfigWidget( MonavPlugin* plugin );
28 
29     ~MonavConfigWidget() override;
30 
31     void loadSettings( const QHash<QString, QVariant> &settings ) override;
32 
33     QHash<QString, QVariant> settings() const override;
34 
35 protected:
36     void showEvent ( QShowEvent * event ) override;
37 
38 private Q_SLOTS:
39     void retrieveMapList( QNetworkReply *reply );
40 
41     void retrieveData();
42 
43     void updateComboBoxes();
44 
45     void updateStates();
46 
47     void updateRegions();
48 
49     void downloadMap();
50 
51     void updateProgressBar( qint64 bytesReceived, qint64 bytesTotal );
52 
53     void mapInstalled( int exitStatus );
54 
55     void updateTransportTypeFilter( const QString &filter );
56 
57     void removeMap( int index );
58 
59     void upgradeMap( int index );
60 
61     void cancelOperation();
62 
63 private:
64     friend class MonavConfigWidgetPrivate;
65     MonavConfigWidgetPrivate* const d;
66 };
67 
68 }
69 
70 #endif // MARBLE_MONAVCONFIGWIDGET_H
71