Rabbit Remote Control 0.0.37
Loading...
Searching...
No Matches
Operate.h
1// Author: Kang Lin <kl222@126.com>
2
3#pragma once
4
5#include <QMessageBox>
6#include <QObject>
7#include <QMenu>
8#include <QClipboard>
9#include "ParameterPlugin.h"
10
11class CPlugin;
12
49class PLUGIN_EXPORT COperate : public QObject
50{
51 Q_OBJECT
52
53public:
54 explicit COperate(CPlugin *plugin);
55 virtual ~COperate();
56
60
62 [[nodiscard]] virtual const QString Id();
64 [[nodiscard]] virtual const QString Name();
66 [[nodiscard]] virtual const QString Description();
68 [[nodiscard]] virtual const QString Protocol() const;
70 [[nodiscard]] virtual const qint16 Version() const = 0;
72 [[nodiscard]] virtual const QIcon Icon() const;
74 [[nodiscard]] virtual const QString GetTypeName() const;
76
92 [[nodiscard]] virtual QWidget* GetViewer() = 0;
110 [[nodiscard]] virtual int OpenDialogSettings(QWidget* parent = nullptr);
114 [[nodiscard]] virtual QMenu* GetMenu(QWidget* parent = nullptr);
115
116 enum class SecurityLevel {
117 No, // No the function
118 Secure, // Both authentication and channels are secure. Green
119 NonSecureAuthentication, // Non-secure authentication over a secure channel. Blue
120 SecureChannel, // Channel is secure. Yellow
121 Normal = SecureChannel,
122 SecureAuthentication, // There is security verification, not a secure channel. Orange
123 Risky // Red
124 };
125 [[nodiscard]] virtual SecurityLevel GetSecurityLevel();
126 [[nodiscard]] virtual QString GetSecurityLevelString();
127 [[nodiscard]] virtual QColor GetSecurityLevelColor();
128 [[nodiscard]] static QString GetSecurityLevelString(SecurityLevel level);
129 [[nodiscard]] static QColor GetSecurityLevelColor(SecurityLevel level);
130
131public:
146 virtual int Start() = 0;
162 virtual int Stop() = 0;
163
164Q_SIGNALS:
192 void sigStop();
200
206 void sigViewerFocusIn(QWidget* pView);
211 void sigUpdateName(const QString& szName);
229 void sigError(const int nError, const QString &szError);
242 void sigInformation(const QString& szInfo);
257 void sigShowMessageBox(const QString& title, const QString& message,
258 const QMessageBox::Icon& icon = QMessageBox::Information);
259
260protected:
266 Q_INVOKABLE virtual int Initial();
271 Q_INVOKABLE virtual int Clean();
281 Q_INVOKABLE virtual int SetGlobalParameters(CParameterPlugin* pPara) = 0;
282
283protected:
288 [[nodiscard]] Q_INVOKABLE CPlugin* GetPlugin() const;
289
290 static QObject* createObject(const QString &className, QObject* parent = NULL);
291
292private:
307 [[nodiscard]] virtual QDialog* OnOpenDialogSettings(QWidget* parent = nullptr) = 0;
308
312public:
313 /* \~chinese 得到配置文件名
314 * \~english Get settings file name
315 * \see CManager::SaveOperate
316 */
317 [[nodiscard]] virtual QString GetSettingsFile();
318 /* \~chinese 设置配置文件名
319 * \~english Set settings file name
320 */
321 virtual int SetSettingsFile(const QString &szFile);
322private:
323 QString m_szSettings;
324protected:
329 virtual int Load(QSettings &set);
334 virtual int Save(QSettings &set);
341 Q_INVOKABLE virtual int Load(QString szFile = QString());
350 Q_INVOKABLE virtual int Save(QString szFile = QString());
352
353private Q_SLOTS:
354 void slotUpdateName();
355
372 virtual void slotBlockShowWidget(const QString& className, int &nRet, void* pContext);
383 virtual void slotBlockShowMessageBox(const QString& szTitle,
384 const QString& szMessage,
385 QMessageBox::StandardButtons buttons,
386 QMessageBox::StandardButton& nRet,
387 bool &checkBox,
388 QString szCheckBoxContext = QString());
394 virtual void slotBlockInputDialog(const QString& szTitle,
395 const QString& szLable,
396 const QString& szMessage,
397 QString& szText
398 );
399
400private Q_SLOTS:
403 virtual void slotSetClipboard(QMimeData *data);
404private:
405Q_SIGNALS:
406 void sigClipBoardChanged();
407
408protected:
409 QMenu m_Menu;
410 QAction* m_pActionSettings;
411private Q_SLOTS:
412 virtual void slotSettings();
413
414private:
415 CPlugin* m_pPlugin;
416};
Operate interface.
Definition Operate.h:50
virtual QDialog * OnOpenDialogSettings(QWidget *parent=nullptr)=0
Open settgins dialog.
virtual const qint16 Version() const =0
Version.
void sigInformation(const QString &szInfo)
Show information in main windows.
void sigFinished()
Successful disconnection signal.
virtual int Start()=0
Start.
void sigRunning()
Start success signal.
void sigError(const int nError, const QString &szError)
Triggered when an error is generated.
virtual QWidget * GetViewer()=0
Get Viewer.
void sigStop()
Notify the user to stop.
void sigViewerFocusIn(QWidget *pView)
The view is focus.
virtual int Stop()=0
Stop.
void sigUpdateParameters(COperate *pOperate)
Update parameters, notify application to save or show parameters.
void sigShowMessageBox(const QString &title, const QString &message, const QMessageBox::Icon &icon=QMessageBox::Information)
Trigger the display of a message dialog (QMessageBox) in the main thread from a background thread wit...
void sigUpdateName(const QString &szName)
Global parameters of plugins.
Plugin interface.
Definition Plugin.h:15