File indexing completed on 2024-04-28 03:49:30

0001 // SPDX-License-Identifier: LGPL-2.1-or-later
0002 //
0003 // SPDX-FileCopyrightText: 2010 Niko Sams <niko.sams@gmail.com>
0004 //
0005 
0006 
0007 #ifndef MARBLE_ROUTINGPROFILESETTINGSDIALOG_H
0008 #define MARBLE_ROUTINGPROFILESETTINGSDIALOG_H
0009 
0010 #include <QDialog>
0011 
0012 #include "RoutingRunnerPlugin.h"
0013 
0014 class QStandardItemModel;
0015 class QHBoxLayout;
0016 class Ui_RoutingProfileSettingsDialog;
0017 
0018 namespace Marble {
0019 
0020 class PluginManager;
0021 class RoutingProfilesModel;
0022 
0023 class RoutingProfileSettingsDialog : public QDialog
0024 {
0025     Q_OBJECT
0026 public:
0027     RoutingProfileSettingsDialog( const PluginManager *pluginManager, RoutingProfilesModel *profilesModel, QWidget *parent = nullptr );
0028     ~RoutingProfileSettingsDialog() override;
0029 
0030     void editProfile( int profileIndex );
0031 
0032 private Q_SLOTS:
0033     void updateConfigWidget();
0034 
0035     void openConfigDialog();
0036 
0037 private:
0038     RoutingProfilesModel *m_profilesModel;
0039 
0040     QList<RoutingRunnerPlugin*> m_plugins;
0041     QHash<RoutingRunnerPlugin*, RoutingRunnerPlugin::ConfigWidget*> m_configWidgets;
0042 
0043     Ui_RoutingProfileSettingsDialog *m_ui;
0044     QStandardItemModel *m_servicesModel;
0045 
0046     QDialog* m_dialog;
0047     QHBoxLayout* m_dialogLayout;
0048 };
0049 
0050 }
0051 
0052 #endif