swift
updateinfocomponent.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_UPDATEINFOCOMPONENT_H
7 #define SWIFT_GUI_COMPONENTS_UPDATEINFOCOMPONENT_H
8 
9 #include <QFrame>
10 
12 #include "gui/swiftguiexport.h"
13 #include "misc/db/artifact.h"
14 #include "misc/db/updateinfo.h"
15 #include "misc/digestsignal.h"
16 #include "misc/settingscache.h"
17 
18 namespace Ui
19 {
20  class CUpdateInfoComponent;
21 }
22 namespace swift::gui::components
23 {
24  class CInstallXSwiftBusDialog;
25  class CDownloadDialog;
26 
30  class SWIFT_GUI_EXPORT CUpdateInfoComponent : public QFrame
31  {
32  Q_OBJECT
33 
34  public:
36  explicit CUpdateInfoComponent(QWidget *parent = nullptr);
37 
39  virtual ~CUpdateInfoComponent() override;
40 
42  swift::misc::db::CArtifact getLatestAvailablePilotClientArtifactForSelection() const;
43 
45  bool isNewPilotClientVersionAvailable() const;
46 
48  void triggerDownload();
49 
52  {
53  return this->getSelectedOrDefaultDistribution();
54  }
55 
56  signals:
59 
61  void newerPilotClientAvailable(const swift::misc::db::CArtifact &latestPilotClient);
62 
65 
66  private:
67  QScopedPointer<Ui::CUpdateInfoComponent> ui;
68  QScopedPointer<CInstallXSwiftBusDialog> m_installXSwiftBusDialog;
69  QScopedPointer<CDownloadDialog> m_downloadDialog;
71  this, &CUpdateInfoComponent::changedUpdateInfo
72  };
74  this
75  };
77  std::chrono::milliseconds(15000), 2 };
78 
80  void requestLoadOfSetup();
81 
83  void changedUpdateInfo();
84 
86  void channelChanged();
87 
89  void platformChanged();
90 
92  void uiSelectionChanged();
93 
95  void downloadXSwiftBusDialog();
96 
98  void downloadInstallerDialog();
99 
101  void saveSettings();
102 
104  const swift::misc::CPlatform &getSelectedOrDefaultPlatform() const;
105 
107  swift::misc::db::CDistribution getSelectedOrDefaultDistribution() const;
108  };
109 } // namespace swift::gui::components
110 #endif // SWIFT_GUI_COMPONENTS_UPDATEINFOCOMPONENT_H
Update info (distributions, artifacts etc.)
void updateInfoAvailable()
Update info loaded.
void selectionChanged()
New platfrom or channel.
swift::misc::db::CDistribution getCurrentDistribution() const
Current distribution.
void newerPilotClientAvailable(const swift::misc::db::CArtifact &latestPilotClient)
A newer pilot client is available.
Receive 1..n signals, collect them over time, and resend afer n milliseconds.
Definition: digestsignal.h:18
Platform (i.e.
Definition: platform.h:24
Artifacts ("our software" products)
Definition: artifact.h:23
Distributions for channel.
Definition: distribution.h:27
High level reusable GUI components.
Definition: aboutdialog.cpp:13
#define SWIFT_GUI_EXPORT
Export a class or function from the library.