Kstars

kswizard.h
1/*
2 SPDX-FileCopyrightText: 2004 Jason Harris <kstars@30doradus.org>
3
4 SPDX-License-Identifier: GPL-2.0-or-later
5*/
6
7#pragma once
8
9#include <QDialog>
10#include <QDialogButtonBox>
11#include <QProcess>
12#include <QPlainTextEdit>
13#include <qsystemdetection.h>
14
15#include <QNetworkAccessManager>
16#include <QNetworkRequest>
17#include <QNetworkReply>
18
19#include "ui_wizwelcome.h"
20#include "ui_wizlocation.h"
21#include "ui_wizdownload.h"
22#include "ui_wizdata.h"
23#include "QProgressIndicator.h"
24
25class GeoLocation;
26class QStackedWidget;
27
28class WizWelcomeUI : public QFrame, public Ui::WizWelcome
29{
31
32 public:
33 explicit WizWelcomeUI(QWidget *parent = nullptr);
34};
35
36class WizLocationUI : public QFrame, public Ui::WizLocation
37{
39
40 public:
41 explicit WizLocationUI(QWidget *parent = nullptr);
42};
43
44class WizDataUI : public QFrame, public Ui::WizData
45{
47
48 public:
49 explicit WizDataUI(QWidget *parent = nullptr);
50};
51
52class WizDownloadUI : public QFrame, public Ui::WizDownload
53{
55
56 public:
57 explicit WizDownloadUI(QWidget *parent = nullptr);
58};
59
60/**
61 * @class KSWizard
62 * The Startup Wizard will be automatically opened when KStars runs
63 * for the first time. It allows the user to set up some basic parameters:
64 * @li Geographic Location
65 * @li Download extra data files
66 *
67 * @author Jason Harris
68 * @version 1.0
69 */
70class KSWizard : public QDialog
71{
73 public:
74 /**
75 * Constructor
76 * @param parent Pointer to the parent widget
77 */
78 explicit KSWizard(QWidget *parent = nullptr);
79
80 // Do NOT delete members of filteredCityList! They are not created by KSWizard.
81 ~KSWizard() override = default;
82
83 /** @return pointer to the geographic location selected by the user */
84 const GeoLocation *geo() const
85 {
86 return Geo;
87 }
88
89 private slots:
90 void slotNextPage();
91 void slotPrevPage();
92
93 /**
94 * Set the geo pointer to the user's selected city, and display
95 * its longitude and latitude in the window.
96 * @note called when the highlighted city in the list box changes
97 */
98 void slotChangeCity();
99
100 /**
101 * Display only those cities which meet the user's search criteria in the city list box.
102 * @note called when one of the name filters is modified
103 */
104 void slotFilterCities();
105
106 void slotDownload();
107
108 void slotInstallGSC();
109
110 void slotExtractGSC();
111
112 void slotGSCInstallerFinished();
113
114 void slotUpdateDataButtons();
115
116 void slotOpenOrCopyKStarsDataDirectory();
117
118 private:
119 /**
120 * @short Initialize the geographic location page.
121 * Populate the city list box, and highlight the current location in the list.
122 */
123 void initGeoPage();
124
125 /** @short set enabled/disable state of Next/Prev buttins based on current page */
126 void setButtonsEnabled();
127
128#ifdef Q_OS_OSX
129
130 bool GSCExists();
131 bool dataDirExists();
132
133
134 QProgressIndicator *gscMonitor { nullptr };
135 QTimer *downloadMonitor { nullptr };
137
138#endif
139
140 QStackedWidget *wizardStack { nullptr };
141 WizWelcomeUI *welcome { nullptr };
142 WizLocationUI *location { nullptr };
143 WizDataUI *data { nullptr };
144 QPushButton *nextB { nullptr };
145 QPushButton *backB { nullptr };
146 QPushButton *completeB { nullptr };
147 QDialogButtonBox *buttonBox { nullptr };
148 GeoLocation *Geo { nullptr };
149 QList<GeoLocation *> filteredCityList;
150};
Contains all relevant information for specifying a location on Earth: City Name, State/Province name,...
Definition geolocation.h:28
The Startup Wizard will be automatically opened when KStars runs for the first time.
Definition kswizard.h:71
const GeoLocation * geo() const
Definition kswizard.h:84
KSWizard(QWidget *parent=nullptr)
Constructor.
Definition kswizard.cpp:60
The QProgressIndicator class lets an application display a progress indicator to show that a long tas...
Q_OBJECTQ_OBJECT
QObject * parent() const const
This file is part of the KDE documentation.
Documentation copyright © 1996-2024 The KDE developers.
Generated on Tue Mar 26 2024 11:19:01 by doxygen 1.10.0 written by Dimitri van Heesch, © 1997-2006

KDE's Doxygen guidelines are available online.