AusweisApp2
 Alle Klassen Namensbereiche Dateien Funktionen Variablen Typdefinitionen Aufzählungen Aufzählungswerte Propertys Freundbeziehungen Makrodefinitionen
UILoader.h
gehe zur Dokumentation dieser Datei
1 
7 #pragma once
8 
9 #include "EnumHelper.h"
10 
11 #include <QJsonObject>
12 #include <QMap>
13 #include <QVector>
14 
15 namespace governikus
16 {
17 
18 class UIPlugIn;
19 
20 
21 defineEnumType(UIPlugInName, UIPlugInQml, UIPlugInCli, UIPlugInWidgets, UIPlugInJsonApi, UIPlugInWebSocket, UIPlugInAidl)
22 
23 class UILoader
24  : public QObject
25 {
26  Q_OBJECT
27 
28  private:
29  QMap<UIPlugInName, UIPlugIn*> mLoadedPlugIns;
30  QVector<UIPlugInName> mDefault;
31 
32  inline bool isPlugIn(const QJsonObject& pJson);
33  inline bool hasName(const QJsonObject& pJson, const QString& pName);
34 
35  protected:
36  UILoader();
37  virtual ~UILoader();
38 
39  public:
40  static UILoader& getInstance();
41 
42  bool load();
43  bool load(UIPlugInName pName);
44 
45  const QVector<UIPlugInName>& getDefault() const
46  {
47  return mDefault;
48  }
49 
50 
51  void setDefault(const QVector<UIPlugInName>& pDefault)
52  {
53  mDefault = pDefault;
54  }
55 
56 
57  UIPlugIn* getLoaded(UIPlugInName pName) const;
58 
59  Q_SIGNALS:
60  void fireLoadedPlugin(UIPlugIn* pPlugin);
61 };
62 
63 } /* namespace governikus */
void setDefault(const QVector< UIPlugInName > &pDefault)
Definition: UILoader.h:51
const QVector< UIPlugInName > & getDefault() const
Definition: UILoader.h:45
Definition: UILoader.h:23
defineEnumType(UiModule, CURRENT, DEFAULT, IDENTIFY, SETTINGS, PINMANAGEMENT) defineEnumType(StatusFormat
UI modules that can be requested to show.
Definition: UIPlugIn.h:20