AusweisApp
Lade ...
Suche ...
Keine Treffer
UIPlugInQml.h
gehe zur Dokumentation dieser Datei
9#pragma once
10
11#include "GlobalStatus.h"
12#include "ProxyCredentials.h"
13#include "TrayIcon.h"
14#include "UIPlugIn.h"
15
16#include <QQmlApplicationEngine>
17#include <QQuickWindow>
18#include <QScopedPointer>
19#if defined (Q_OS_MACOS)
20 #include <QMenuBar>
21#endif
22
23#ifdef Q_OS_IOS
24Q_FORWARD_DECLARE_OBJC_CLASS(FontChangeTracker);
25#endif
26
27
28class test_UIPlugInQml;
29
30
31namespace governikus
32{
33
35 : public UIPlugIn
36{
37 Q_OBJECT
38 Q_PLUGIN_METADATA(IID "governikus.UIPlugIn" FILE "metadata.json")
39 Q_INTERFACES(governikus::UIPlugIn)
40 Q_PROPERTY(QString platformStyle READ getPlatformStyle CONSTANT FINAL)
41 Q_PROPERTY(bool debugBuild READ isDebugBuild CONSTANT)
42 Q_PROPERTY(bool developerVersion READ isDeveloperVersion CONSTANT)
43 Q_PROPERTY(QString dominator READ getDominator NOTIFY fireDominatorChanged)
44 Q_PROPERTY(bool dominated READ isDominated NOTIFY fireDominatorChanged)
45 Q_PROPERTY(QVariantMap safeAreaMargins READ getSafeAreaMargins NOTIFY fireSafeAreaMarginsChanged)
48 Q_PROPERTY(bool osDarkModeSupported READ isOsDarkModeSupported)
49 Q_PROPERTY(QString fixedFontFamily READ getFixedFontFamily CONSTANT)
50 Q_PROPERTY(QSize initialWindowSize READ getInitialWindowSize CONSTANT)
52 Q_PROPERTY(qreal scaleFactor READ getScaleFactor WRITE setScaleFactor NOTIFY fireScaleFactorChanged)
54 friend class ::test_UIPlugInQml;
55
56 private:
57 QScopedPointer<QQmlApplicationEngine> mEngine;
58 qsizetype mQmlEngineWarningCount;
59 QString mExplicitPlatformStyle;
60 bool mUpdateInformationPending;
61 TrayIcon mTrayIcon;
62 QString mDominator;
63 bool mHighContrastEnabled;
64 bool mDarkMode;
65#if defined(Q_OS_MACOS)
66 QMenuBar mMenuBar;
67#endif
68 bool mShowFocusIndicator;
69 constexpr static qreal DEFAULT_SCALE_FACTOR = 0.6;
70 qreal mScaleFactor;
71 qreal mFontScaleFactor;
72
73 [[nodiscard]] QString getPlatformSelectors() const;
74 [[nodiscard]] static QUrl getPath(const QString& pRelativePath, bool pQrc = true);
75 [[nodiscard]] QQuickWindow* getRootWindow() const;
76 [[nodiscard]] bool isHidden() const;
77 [[nodiscard]] bool isTablet() const;
78 [[nodiscard]] bool showUpdateInformationIfPending();
79 [[nodiscard]] qreal getSystemFontScaleFactor() const;
80 void setFontScaleFactor(qreal pFactor);
81 void setOsDarkMode(bool pState);
82
83#ifdef Q_OS_IOS
84 struct Private
85 {
86 Private();
87 ~Private();
88 FontChangeTracker* const mFontChangeTracker;
89 };
90 const QScopedPointer<Private> mPrivate;
91#endif
92
93 protected:
94 [[nodiscard]] bool eventFilter(QObject* pObj, QEvent* pEvent) override;
95
96 public:
98 ~UIPlugInQml() override = default;
99
100 static void registerQmlTypes();
101
102 [[nodiscard]] QString getPlatformStyle() const;
103 [[nodiscard]] bool isDebugBuild() const;
104 [[nodiscard]] bool isDeveloperVersion() const;
105 [[nodiscard]] QString getDominator() const;
106 [[nodiscard]] bool isDominated() const;
107 [[nodiscard]] QVariantMap getSafeAreaMargins() const;
108 [[nodiscard]] bool isHighContrastEnabled() const;
109 [[nodiscard]] bool isOsDarkModeEnabled() const;
110 [[nodiscard]] bool isOsDarkModeSupported() const;
111 [[nodiscard]] QString getFixedFontFamily() const;
112 [[nodiscard]] QSize getInitialWindowSize() const;
113 [[nodiscard]] bool getShowFocusIndicator() const;
114 [[nodiscard]] qreal getScaleFactor() const;
115 void setScaleFactor(qreal pScaleFactor);
116 [[nodiscard]] qreal getFontScaleFactor() const;
117
118
119 Q_INVOKABLE void applyPlatformStyle(const QString& pPlatformStyle);
120 Q_INVOKABLE void init();
121 Q_INVOKABLE void hideFromTaskbar() const;
122
123 Q_SIGNALS:
124 void fireShowRequest(UiModule pModule);
136
137 private Q_SLOTS:
138 void show();
139 void doShutdown() override;
140 void onWorkflowStarted(const QSharedPointer<WorkflowRequest>& pRequest) override;
141 void onWorkflowFinished(const QSharedPointer<WorkflowRequest>& pRequest) override;
142 void onApplicationInitialized() override;
143 void onApplicationStarted() override;
144 void onShowUi(UiModule pModule) override;
145 void onHideUi() override;
146 void onTranslationChanged() override;
147 void onProxyAuthenticationRequired(const QNetworkProxy& pProxy, QAuthenticator* pAuthenticator) override;
148 void onUiDomination(const UIPlugIn* pUi, const QString& pInformation, bool pAccepted) override;
149 void onUiDominationReleased() override;
150 void onShowUserInformation(const QString& pMessage) override;
151 void onUpdateScheduled() const;
152 void onUpdateAvailable(bool pUpdateAvailable, const GlobalStatus& pStatus);
153
154 void onQmlWarnings(const QList<QQmlError>& pWarnings);
155 void onQmlObjectCreated(QObject* pObject);
156 void onSceneGraphError(QQuickWindow::SceneGraphError pError, const QString& pMessage);
157
158 void onRawLog(const QString& pMessage, const QString& pCategoryName);
159
160 void onWindowPaletteChanged();
161 void onUseSystemFontChanged() const;
162 void onAutoStartChanged();
163 void onAppConfigChanged();
164
165 public Q_SLOTS:
166 void doRefresh();
167};
168
169} // namespace governikus
Definition: GlobalStatus.h:22
Definition: ProxyCredentials.h:17
Definition: TrayIcon.h:21
Definition: UIPlugInQml.h:36
~UIPlugInQml() override=default
void fireShowRequest(UiModule pModule)
QString getPlatformStyle() const
Definition: UIPlugInQml.cpp:790
bool isDeveloperVersion() const
Definition: UIPlugInQml.cpp:808
bool eventFilter(QObject *pObj, QEvent *pEvent) override
Definition: UIPlugInQml.cpp:624
QString dominator
Definition: UIPlugInQml.h:43
bool isOsDarkModeEnabled() const
Definition: UIPlugInQml.cpp:895
QVariantMap safeAreaMargins
Definition: UIPlugInQml.h:45
Q_INVOKABLE void hideFromTaskbar() const
Definition: UIPlugInQml.cpp:304
qreal getScaleFactor() const
Definition: UIPlugInQml.cpp:944
bool highContrastEnabled
Definition: UIPlugInQml.h:46
bool isHighContrastEnabled() const
Definition: UIPlugInQml.cpp:879
QString getDominator() const
Definition: UIPlugInQml.cpp:814
static void registerQmlTypes()
Definition: UIPlugInQml.cpp:204
bool isDominated() const
Definition: UIPlugInQml.cpp:820
bool debugBuild
Definition: UIPlugInQml.h:41
qreal scaleFactor
Definition: UIPlugInQml.h:52
void setScaleFactor(qreal pScaleFactor)
Definition: UIPlugInQml.cpp:951
bool showFocusIndicator
Definition: UIPlugInQml.h:51
bool dominated
Definition: UIPlugInQml.h:44
QVariantMap getSafeAreaMargins() const
Definition: UIPlugInQml.cpp:827
qreal getFontScaleFactor() const
Definition: UIPlugInQml.cpp:964
QString getFixedFontFamily() const
Definition: UIPlugInQml.cpp:924
bool osDarkModeEnabled
Definition: UIPlugInQml.h:47
void fireProxyAuthenticationRequired(ProxyCredentials *pProxyCredentials)
Q_INVOKABLE void init()
Definition: UIPlugInQml.cpp:249
QSize initialWindowSize
Definition: UIPlugInQml.h:50
QString fixedFontFamily
Definition: UIPlugInQml.h:49
void fireHighContrastEnabledChanged()
friend class ::test_UIPlugInQml
Definition: UIPlugInQml.h:54
bool developerVersion
Definition: UIPlugInQml.h:42
UIPlugInQml()
Definition: UIPlugInQml.cpp:161
bool getShowFocusIndicator() const
Definition: UIPlugInQml.cpp:938
QString platformStyle
Definition: UIPlugInQml.h:40
qreal fontScaleFactor
Definition: UIPlugInQml.h:53
Q_INVOKABLE void applyPlatformStyle(const QString &pPlatformStyle)
Definition: UIPlugInQml.cpp:1038
void doRefresh()
Definition: UIPlugInQml.cpp:783
bool isOsDarkModeSupported() const
Definition: UIPlugInQml.cpp:912
bool osDarkModeSupported
Definition: UIPlugInQml.h:48
QSize getInitialWindowSize() const
Definition: UIPlugInQml.cpp:930
bool isDebugBuild() const
Definition: UIPlugInQml.cpp:796
Implementation of GeneralAuthenticate response APDUs.
Definition: CommandApdu.h:16