玉兔远程控制 0.1.0-bate11
载入中...
搜索中...
未找到
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
40class QPluginLoader;
41
48class PLUGIN_EXPORT CManager : public QObject
49{
50 Q_OBJECT
51
52public:
53 explicit CManager(QObject *parent = nullptr);
54 virtual ~CManager();
55
62 [[nodiscard]] int Initial(QString szFile = QString());
63
80 virtual COperate* CreateOperate(const QString &id);
84 virtual int DeleteOperate(COperate* p);
85
99 virtual COperate* LoadOperate(const QString& szFile);
100
106 virtual int SaveOperate(COperate* pOperate);
107
140 virtual QList<QWidget*> GetSettingsWidgets(QWidget *parent);
148 virtual int LoadSettings(const QString szFile = QString());
156 virtual int SaveSettings(const QString szFile = QString());
157
164
172 class Handle{
173 public:
174 Handle(){}
180 virtual int onProcess(const QString& id, CPlugin* pPlugin) = 0;
181 };
182
185 virtual int EnumPlugins(Handle* handle);
186#if HAS_CPP_11
191 virtual int EnumPlugins(
197 std::function<int(const QString& id, CPlugin* pPlugin)> cb);
198#endif
199
200 const QString Details() const;
201
202Q_SIGNALS:
217 void sigNewOperate(COperate* pOperate, bool bOpenSettingsDialog);
218
219private:
220 int LoadPlugins();
226 int LoadPlugin(const QString& szPath);
227 int FindPlugins(QDir dir, QStringList filters);
233 int AppendPlugin(QPluginLoader *pLoader, CPlugin *p);
234
235private Q_SLOTS:
236 void slotCaptureAllKeyboard();
237
238private:
239 QString m_szSettingsFile;
241 QMap<QString, QPluginLoader*> m_Plugins;
242 qint8 m_FileVersion;
243 QSharedPointer<QTranslator> m_Translator;
244 CHook* m_pHook;
245 CParameterPlugin* m_pParameterPlugin;
246 QString m_szDetails;
247 CDatabaseFile* m_pDatabaseFile;
248};
File database
The class is the HOOK abstract class.
定义 Hook.h:15
处理连接者。用于客户端得到连接者信号
virtual int onProcess(const QString &id, CPlugin *pPlugin)=0
Process plugins
virtual QList< QWidget * > GetSettingsWidgets(QWidget *parent)
得到设置参数窗口
virtual int EnumPlugins(Handle *handle)
Enum plugins
virtual COperate * CreateOperate(const QString &id)
新建 COperate 指针,所有者是调用者。 当不在使用时,调用者必调用 DeteleOperate() 须释放指针。 调用者必须连接信号 COperate::sigFinished 。 释放指针 (...
int LoadPlugin(const QString &szPath)
LoadPlugin
virtual COperate * LoadOperate(const QString &szFile)
从文件中新建 COperate 指针,所有者是调用者。 当不再使用时,调用者必须负责调用 DeleteOperate() 删除此指针。 调用者必须连接信号 COperate::sigFinished 。...
virtual int DeleteOperate(COperate *p)
Delete COperate
virtual int SaveOperate(COperate *pOperate)
保存连接参数到文件
int AppendPlugin(QPluginLoader *pLoader, CPlugin *p)
Append Plugin
int Initial(QString szFile=QString())
Initial
QMap< QString, QPluginLoader * > m_Plugins
ID -> CPlugin
virtual int SaveSettings(const QString szFile=QString())
保存客户端参数到文件
CParameterGlobal * GetGlobalParameters()
得到全局参数
void sigNewOperate(COperate *pOperate, bool bOpenSettingsDialog)
当在插件中新建操作时,触发此信号
virtual int LoadSettings(const QString szFile=QString())
从文件中加载客户端参数
virtual int EnumPlugins(std::function< int(const QString &id, CPlugin *pPlugin)> cb)
Enum plugins
操作接口。
插件的全局参数。
插件接口