1 /*
2     SPDX-FileCopyrightText: 2003 Jasem Mutlaq <mutlaqja@ikarustech.com>
3 
4     SPDX-License-Identifier: GPL-2.0-or-later
5 */
6 
7 #pragma once
8 
9 #include "ui_telescopewizard.h"
10 #include "indi/indistd.h"
11 
12 #include <QHash>
13 #include <QStringList>
14 
15 #include <memory>
16 
17 class DriverInfo;
18 
19 class QProgressDialog;
20 
21 class telescopeWizardProcess : public QDialog
22 {
23     Q_OBJECT
24 
25   public:
26     explicit telescopeWizardProcess(QWidget *parent = nullptr);
27     ~telescopeWizardProcess();
28 
29     unsigned int currentPage;
30     enum
31     {
32         INTRO_P     = 0,
33         MODEL_P     = 1,
34         TELESCOPE_P = 2,
35         LOCAL_P     = 3,
36         PORT_P      = 4
37     };
38 
39 private:
40     void establishLink();
41     void Reset();
42 
43 public slots:
44     void cancelCheck();
45     void processNext();
46     void processBack();
47     void newTime();
48     void newLocation();
49     void processTelescope(ISD::GDInterface *);
50     void scanPorts();
51     void linkSuccess();
52 
53 private:
54     std::unique_ptr<Ui::telescopeWizard> ui;
55     ISD::GDInterface *scopeDevice { nullptr };
56     QProgressDialog *progressScan { nullptr };
57     QStringList portList;
58     int currentPort { -1 };
59     bool INDIMessageBar { false };
60     bool linkRejected { false };
61     QHash<QString, DriverInfo *> driversList;
62     QList<DriverInfo *> managedDevice;
63 };
64