玉兔远程控制 0.1.0-bate6
载入中...
搜索中...
未找到
Manager.h
1// Author: Kang Lin <kl222@126.com>
2
3#pragma once
4
5#include <QObject>
6#include <QDir>
7#include <QMap>
8#include <QIcon>
9#include <QTranslator>
10#include <QSharedPointer>
11
12#include "Database.h"
13#include "Plugin.h"
14#include "Hook.h"
15#include "ParameterGlobal.h"
16
17#if defined(__clang__) || defined(__GNUC__)
18#define CPP_STANDARD __cplusplus
19#elif defined(_MSC_VER)
20#define CPP_STANDARD _MSVC_LANG
21#endif
22#if CPP_STANDARD >= 199711L
23#define HAS_CPP_03 1
24#endif
25#if CPP_STANDARD >= 201103L
26#define HAS_CPP_11 1
27#endif
28#if CPP_STANDARD >= 201402L
29#define HAS_CPP_14 1
30#endif
31#if CPP_STANDARD >= 201703L
32#define HAS_CPP_17 1
33#endif
34
35#if HAS_CPP_11
36#include <functional>
37#endif
38
40
47class PLUGIN_EXPORT CManager : public QObject
48{
49 Q_OBJECT
50
51public:
52 explicit CManager(QObject *parent = nullptr);
53 virtual ~CManager();
54
55 int Initial(QString szFile = QString());
56
73 virtual COperate* CreateOperate(const QString &id);
77 virtual int DeleteOperate(COperate* p);
78
92 virtual COperate* LoadOperate(const QString& szFile);
93
99 virtual int SaveOperate(COperate* pOperate);
100
133 virtual QList<QWidget*> GetSettingsWidgets(QWidget *parent);
141 virtual int LoadSettings(const QString szFile = QString());
149 virtual int SaveSettings(const QString szFile = QString());
150
154 CParameterGlobal *GetGlobalParameters();
155
163 class Handle{
164 public:
165 Handle(){}
171 virtual int onProcess(const QString& id, CPlugin* pPlugin) = 0;
172 };
176 virtual int EnumPlugins(Handle* handle);
177#if HAS_CPP_11
182 virtual int EnumPlugins(
188 std::function<int(const QString& id, CPlugin* pPlugin)> cb);
189#endif
190
191 const QString Details() const;
192
193Q_SIGNALS:
208 void sigNewOperate(COperate* pOperate, bool bOpenSettingsDialog);
209
210private:
211 int LoadPlugins();
217 int LoadPlugin(const QString& szPath);
218 int FindPlugins(QDir dir, QStringList filters);
224 int AppendPlugin(CPlugin* plugin);
225
226private Q_SLOTS:
227 void slotCaptureAllKeyboard();
228
229private:
230 QString m_szSettingsFile;
231 QMap<QString, CPlugin*> m_Plugins;
232 qint8 m_FileVersion;
233 QSharedPointer<QTranslator> m_Translator;
234 CHook* m_pHook;
235 CParameterPlugin* m_pParameterPlugin;
236 QString m_szDetails;
237 CDatabaseFile* m_pDatabaseFile;
238};
The CDatabaseFile class
Definition Database.h:94
The class is the HOOK abstract class.
Definition Hook.h:15
处理连接者。用于客户端得到连接者信号
Definition Manager.h:163
virtual int onProcess(const QString &id, CPlugin *pPlugin)=0
Process plugins
管理插件
Definition Manager.h:48
void sigNewOperate(COperate *pOperate, bool bOpenSettingsDialog)
当在插件中新建操作时,触发此信号
virtual int EnumPlugins(std::function< int(const QString &id, CPlugin *pPlugin)> cb)
Enum plugins
操作接口。
Definition Operate.h:51
插件的全局参数。
插件接口
Definition Plugin.h:15