swift
src
gui
components
installxswiftbuscomponent.h
Go to the documentation of this file.
1
// SPDX-FileCopyrightText: Copyright (C) 2017 swift Project Community / Contributors
2
// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-swift-pilot-client-1
3
5
6
#ifndef SWIFT_GUI_COMPONENTS_INSTALLXSWIFTBUSCOMPONENT_H
7
#define SWIFT_GUI_COMPONENTS_INSTALLXSWIFTBUSCOMPONENT_H
8
9
#include <QFileDialog>
10
#include <QNetworkReply>
11
#include <QScopedPointer>
12
#include <QWizard>
13
14
#include "
core/application/applicationsettings.h
"
15
#include "
core/application/updatesettings.h
"
16
#include "
gui/loadindicator.h
"
17
#include "
gui/overlaymessagesframe.h
"
18
#include "
misc/db/updateinfo.h
"
19
#include "
misc/network/remotefilelist.h
"
20
#include "
misc/simulation/settings/simulatorsettings.h
"
21
22
namespace
Ui
23
{
24
class
CInstallXSwiftBusComponent;
25
}
26
namespace
swift::gui::components
27
{
31
class
CInstallXSwiftBusComponent
:
public
COverlayMessagesFrame
,
public
CLoadIndicatorEnabled
32
{
33
Q_OBJECT
34
35
public
:
37
explicit
CInstallXSwiftBusComponent
(
QWidget
*
parent
=
nullptr
);
38
40
virtual
~CInstallXSwiftBusComponent
();
41
43
void
setDefaultDownloadName
(
const
QString
&defaultDownload);
44
45
private
:
46
static
constexpr std::chrono::milliseconds OverlayMsgTimeout { 5000 };
47
48
QScopedPointer<Ui::CInstallXSwiftBusComponent>
ui;
49
swift::misc::simulation::settings::CMultiSimulatorSettings
m_simulatorSettings {
50
this
51
};
52
swift::misc::CDataReadOnly<swift::misc::db::TUpdateInfo>
m_updates {
53
this
, &CInstallXSwiftBusComponent::updatesChanged
54
};
55
swift::misc::CSettingReadOnly<swift::core::application::TUpdatePreferences>
m_updateSettings {
56
this
57
};
58
const
QFileDialog::Options
m_fileDialogOptions {
QFileDialog::ShowDirsOnly
|
QFileDialog::ReadOnly
|
59
QFileDialog::DontResolveSymlinks
};
60
61
// the xSwiftBus artifacts
62
QString
m_defaultDownloadName;
63
swift::misc::db::CArtifactList
m_xSwiftBusArtifacts;
64
66
void
selectPluginDirectory();
67
69
void
selectDownloadDirectory();
70
72
void
installXSwiftBus();
73
75
void
triggerDownloadingOfXSwiftBusFile();
76
78
void
downloadedXSwiftBusFile(
const
swift::misc::CStatusMessage
&status);
79
81
swift::misc::network::CRemoteFile
getRemoteFileSelected()
const
;
82
84
QString
downloadDir()
const
;
85
87
QString
xSwiftBusDir()
const
;
88
90
bool
existsDownloadDir()
const
;
91
93
bool
existsXSwiftBusPluginDir()
const
;
94
96
QString
getXPlanePluginDirectory()
const
;
97
99
void
updatesChanged();
100
102
void
openInstallDir();
103
105
void
openDownloadDir();
106
};
107
111
class
CInstallXSwiftBusWizardPage
:
public
QWizardPage
112
{
113
Q_OBJECT
114
115
public
:
117
using
QWizardPage::QWizardPage
;
118
120
void
setConfigComponent
(
CInstallXSwiftBusComponent
*config) { m_config = config; }
121
123
virtual
bool
validatePage
()
override
;
124
125
private
:
126
CInstallXSwiftBusComponent
*m_config =
nullptr
;
127
};
128
}
// namespace swift::gui::components
129
#endif
// SWIFT_GUI_COMPONENTS_INSTALLXSWIFTBUSCOMPONENT_H
applicationsettings.h
swift::gui::CLoadIndicatorEnabled
Enable widget class for load indicator.
Definition:
loadindicator.h:121
swift::gui::COverlayMessagesFrame
Using this class provides a QFrame with the overlay functionality already integrated.
Definition:
overlaymessagesframe.h:381
swift::gui::components::CInstallXSwiftBusComponent
Download and install xswiftbus.
Definition:
installxswiftbuscomponent.h:32
swift::gui::components::CInstallXSwiftBusComponent::setDefaultDownloadName
void setDefaultDownloadName(const QString &defaultDownload)
Set a default name for download.
Definition:
installxswiftbuscomponent.cpp:60
swift::gui::components::CInstallXSwiftBusComponent::~CInstallXSwiftBusComponent
virtual ~CInstallXSwiftBusComponent()
Dtor.
Definition:
installxswiftbuscomponent.cpp:58
swift::gui::components::CInstallXSwiftBusComponent::CInstallXSwiftBusComponent
CInstallXSwiftBusComponent(QWidget *parent=nullptr)
Default constructor.
Definition:
installxswiftbuscomponent.cpp:36
swift::gui::components::CInstallXSwiftBusWizardPage
Wizard page for CInstallXSwiftBusWizardPage.
Definition:
installxswiftbuscomponent.h:112
swift::gui::components::CInstallXSwiftBusWizardPage::validatePage
virtual bool validatePage()
Definition:
installxswiftbuscomponent.cpp:388
swift::gui::components::CInstallXSwiftBusWizardPage::setConfigComponent
void setConfigComponent(CInstallXSwiftBusComponent *config)
Set config.
Definition:
installxswiftbuscomponent.h:120
swift::misc::CDataReadOnly< swift::misc::db::TUpdateInfo >
swift::misc::CSettingReadOnly< swift::core::application::TUpdatePreferences >
swift::misc::CStatusMessage
Streamable status message, e.g.
Definition:
statusmessage.h:394
swift::misc::db::CArtifactList
Multiple artifacts.
Definition:
artifactlist.h:29
swift::misc::network::CRemoteFile
Remote file, i.e.
Definition:
remotefile.h:28
swift::misc::simulation::settings::CMultiSimulatorSettings
Bundle of settings for all simulators.
Definition:
simulatorsettings.h:485
loadindicator.h
swift::gui::components
High level reusable GUI components.
Definition:
aboutdialog.cpp:13
overlaymessagesframe.h
QFileDialog::Options
typedef Options
QObject::Q_OBJECT
Q_OBJECTQ_OBJECT
QObject::parent
QObject * parent() const const
QScopedPointer< Ui::CInstallXSwiftBusComponent >
QString
QWidget
QWizardPage
QWizardPage::QWizardPage
QWizardPage(QWidget *parent)
remotefilelist.h
simulatorsettings.h
updateinfo.h
updatesettings.h
Generated on Mon Oct 20 2025 21:37:33 for swift by
1.9.1