Editor API
UnigineEditor public API
PluginManager.h
1 // Copyright (C), UNIGINE. All rights reserved.
2 #pragma once
3 
4 
5 #include <EditorGlobal.h>
6 
7 #include <QObject>
8 #include <QVector>
9 #include <QString>
10 
11 
13 // Forward decl.
15 namespace Editor
16 {
17 class PluginInfo;
18 class Application;
19 }
20 
21 
22 namespace Editor
23 {
33 class EDITOR_API PluginManager final : public QObject
34 {
35  Q_OBJECT
36 public:
45  static PluginManager *instance();
46 
52  static void loadPluginSpecs(const QVector<QString> &search_paths);
55  static void loadPlugins();
58  static void unloadPlugins();
59 
62  static QVector<PluginInfo *> plugins();
63 
67  static bool hasError();
69  static QVector<QString> allErrors();
70 
75  static bool isInitialized();
76 
77 signals:
81  void initializationCompleted();
82 
83 private:
84  explicit PluginManager(QObject *parent = nullptr);
85  ~PluginManager() override;
86 
87  friend class Editor::Application; // initialization.
88 };
89 
90 
91 } // namespace Editor
Definition: Actions.h:9
The Editor::PluginManager is the main controller class of the Plugin System, it is responsible for: L...
Definition: PluginManager.h:33