Rabbit Remote Control 0.0.37
Loading...
Searching...
No Matches
Plugin.h
1// Author: Kang Lin <kl222@126.com>
2
3#pragma once
4
5#include <QIcon>
6#include <QTranslator>
7#include "Operate.h"
8
14class PLUGIN_EXPORT CPlugin : public QObject
15{
16 Q_OBJECT
17public:
18 explicit CPlugin(QObject *parent = nullptr);
19 virtual ~CPlugin();
20
21 enum class TYPE{
22 RemoteDesktop,
23 Terminal,
24 Client,
25 Service,
26 FileTransfers,
27 NetworkTools,
28 Tools,
29 Custom = 1000
30 };
31 [[nodiscard]] virtual const TYPE Type() const = 0;
32 [[nodiscard]] virtual const QString TypeName(const TYPE t) const;
35 [[nodiscard]] virtual const QString Id();
38 [[nodiscard]] virtual const QString Protocol() const = 0;
43 [[nodiscard]] virtual const QString Name() const = 0;
46 [[nodiscard]] virtual const QString DisplayName() const;
49 [[nodiscard]] virtual const QString Description() const = 0;
51 [[nodiscard]] virtual const QString Version() const = 0;
52 [[nodiscard]] virtual const QIcon Icon() const = 0;
62 [[nodiscard]] virtual const QString Details() const;
63
64protected:
86 [[nodiscard]] Q_INVOKABLE virtual COperate* CreateOperate(
87 const QString& szId, CParameterPlugin* para);
88 [[nodiscard]] virtual COperate* OnCreateOperate(const QString& szId) = 0;
92 Q_INVOKABLE virtual int DeleteOperate(COperate* p);
93
94private:
95 QSharedPointer<QTranslator> m_Translator;
107 Q_INVOKABLE int InitTranslator();
108};
109
110QT_BEGIN_NAMESPACE
111#define CPlugin_iid "KangLinStudio.Rabbit.RemoteControl.CPlugin"
112Q_DECLARE_INTERFACE(CPlugin, CPlugin_iid)
113QT_END_NAMESPACE
Operate interface.
Definition Operate.h:50
Global parameters of plugins.
Plugin interface.
Definition Plugin.h:15
virtual const QString Version() const =0
Version.
virtual const QString Name() const =0
This name must be the same as the project name (${PROJECT_NAME}). The translation file (${PROJECT_NAM...
virtual const QString Protocol() const =0
Plugin Protocol.
virtual const QString Description() const =0
Plugin description.