Rabbit Remote Control 0.1.0-bate14
Loading...
Searching...
No Matches
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;
41class QSplashScreen;
42
49class PLUGIN_EXPORT CManager : public QObject
50{
51 Q_OBJECT
52
53public:
54 explicit CManager(QObject *parent = nullptr);
55 virtual ~CManager();
56
63 [[nodiscard]] int Initial(QString szFile = QString());
64
81 virtual COperate* CreateOperate(const QString &id);
85 virtual int DeleteOperate(COperate* p);
86
100 virtual COperate* LoadOperate(const QString& szFile);
101
107 virtual int SaveOperate(COperate* pOperate);
108
141 virtual QList<QWidget*> GetSettingsWidgets(QWidget *parent);
149 virtual int LoadSettings(const QString szFile = QString());
157 virtual int SaveSettings(const QString szFile = QString());
158
165
173 class Handle{
174 public:
175 Handle(){}
181 virtual int onProcess(const QString& id, CPlugin* pPlugin) = 0;
182 };
183
186 virtual int EnumPlugins(Handle* handle);
187#if HAS_CPP_11
192 virtual int EnumPlugins(
198 std::function<int(const QString& id, CPlugin* pPlugin)> cb);
199#endif
200
201 const QString Details() const;
202
203Q_SIGNALS:
218 void sigNewOperate(COperate* pOperate, bool bOpenSettingsDialog);
219
220private:
221 int LoadPlugins();
227 int LoadPlugin(const QString& szPath);
228 int FindPlugins(QDir dir, QStringList filters);
234 int AppendPlugin(QPluginLoader *pLoader, CPlugin *p);
235
236private Q_SLOTS:
237 void slotCaptureAllKeyboard();
238
239private:
240 QString m_szSettingsFile;
242 QMap<QString, QPluginLoader*> m_Plugins;
243 qint8 m_FileVersion;
244 QSharedPointer<QTranslator> m_Translator;
245 CHook* m_pHook;
246 CParameterPlugin* m_pParameterPlugin;
247 QString m_szDetails;
248 CDatabaseFile* m_pDatabaseFile;
249};
250
251PLUGIN_EXPORT void ShowMessageInSplashScreen(const QString &szMsg = QString());
File database.
Definition Database.h:164
The class is the HOOK abstract class.
Definition Hook.h:15
The Handle COperate class.
Definition Manager.h:173
virtual int onProcess(const QString &id, CPlugin *pPlugin)=0
Process plugins.
virtual QList< QWidget * > GetSettingsWidgets(QWidget *parent)
Get parameter settings widget.
Definition Manager.cpp:597
virtual int EnumPlugins(Handle *handle)
Enum plugins.
Definition Manager.cpp:669
virtual COperate * CreateOperate(const QString &id)
New COperate pointer, the owner is caller.
Definition Manager.cpp:396
int LoadPlugin(const QString &szPath)
LoadPlugin.
Definition Manager.cpp:325
virtual COperate * LoadOperate(const QString &szFile)
New COperate pointer from file, the owner is caller.
Definition Manager.cpp:457
virtual int DeleteOperate(COperate *p)
Delete COperate.
Definition Manager.cpp:424
virtual int SaveOperate(COperate *pOperate)
Accept Operate parameters to file.
Definition Manager.cpp:508
int AppendPlugin(QPluginLoader *pLoader, CPlugin *p)
Append Plugin.
Definition Manager.cpp:361
int Initial(QString szFile=QString())
Initial.
Definition Manager.cpp:119
QMap< QString, QPluginLoader * > m_Plugins
ID -> CPlugin.
Definition Manager.h:242
virtual int SaveSettings(const QString szFile=QString())
Save Client parameters to file.
Definition Manager.cpp:576
CParameterGlobal * GetGlobalParameters()
Get Global Parameters.
Definition Manager.cpp:590
void sigNewOperate(COperate *pOperate, bool bOpenSettingsDialog)
This signal is triggered when a new operate is created in the plugin.
virtual int LoadSettings(const QString szFile=QString())
Load Client parameters from file.
Definition Manager.cpp:562
virtual int EnumPlugins(std::function< int(const QString &id, CPlugin *pPlugin)> cb)
Enum plugins.
Operate interface.
Definition Operate.h:51
Global parameters.
Global parameters of plugins.
Plugin interface.
Definition Plugin.h:15