Rabbit Remote Control 0.1.0-bate5
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#include "Stats.h"
11
12class CPlugin;
13
50class PLUGIN_EXPORT COperate : public QObject
51{
52 Q_OBJECT
53
54public:
55 explicit COperate(CPlugin *plugin);
56 virtual ~COperate();
57
61
63 [[nodiscard]] virtual const QString Id();
65 [[nodiscard]] virtual const QString Name();
67 [[nodiscard]] virtual const QString Description();
69 [[nodiscard]] virtual const QString Protocol() const;
71 [[nodiscard]] virtual const qint16 Version() const = 0;
73 [[nodiscard]] virtual const QIcon Icon() const;
75 [[nodiscard]] virtual const QString GetTypeName() const;
77
93 [[nodiscard]] virtual QWidget* GetViewer() = 0;
111 [[nodiscard]] virtual int OpenDialogSettings(QWidget* parent = nullptr);
115 [[nodiscard]] virtual QMenu* GetMenu(QWidget* parent = nullptr);
116
117 [[nodiscard]] virtual CStats* GetStats();
118
119 enum class SecurityLevel {
120 No, // No the function
121 Secure, // Both authentication and channels are secure. Green
122 NonSecureAuthentication, // Non-secure authentication over a secure channel. Blue
123 SecureChannel, // Channel is secure. Yellow
124 Normal = SecureChannel,
125 SecureAuthentication, // There is security verification, not a secure channel. Orange
126 Risky // Red
127 };
128 [[nodiscard]] virtual SecurityLevel GetSecurityLevel();
129 [[nodiscard]] virtual QString GetSecurityLevelString();
130 [[nodiscard]] virtual QColor GetSecurityLevelColor();
131 [[nodiscard]] static QString GetSecurityLevelString(SecurityLevel level);
132 [[nodiscard]] static QColor GetSecurityLevelColor(SecurityLevel level);
133
134public:
149 virtual int Start() = 0;
165 virtual int Stop() = 0;
166
167Q_SIGNALS:
195 void sigStop();
203
210 void sigViewerFocusIn(QWidget* pView);
221 void sigFullScreen(bool bFullScreen);
227 void sigUpdateName(const QString& szName);
245 void sigError(const int nError, const QString &szError);
258 void sigInformation(const QString& szInfo);
273 void sigShowMessageBox(const QString& title, const QString& message,
274 const QMessageBox::Icon& icon = QMessageBox::Information);
275
276protected:
282 Q_INVOKABLE virtual int Initial();
287 Q_INVOKABLE virtual int Clean();
297 Q_INVOKABLE virtual int SetGlobalParameters(CParameterPlugin* pPara) = 0;
298
299protected:
304 Q_INVOKABLE CPlugin* GetPlugin() const;
305
306 static QObject* createObject(const QString &className, QObject* parent = NULL);
307
308private:
323 [[nodiscard]] virtual QDialog* OnOpenDialogSettings(QWidget* parent = nullptr) = 0;
324
328public:
329 /* \~chinese 得到配置文件名
330 * \~english Get settings file name
331 * \see CManager::SaveOperate
332 */
333 [[nodiscard]] virtual QString GetSettingsFile();
334 /* \~chinese 设置配置文件名
335 * \~english Set settings file name
336 */
337 virtual int SetSettingsFile(const QString &szFile);
338private:
339 QString m_szSettings;
340protected:
345 virtual int Load(QSettings &set) = 0;
350 virtual int Save(QSettings &set) = 0;
357 Q_INVOKABLE virtual int Load(QString szFile = QString());
366 Q_INVOKABLE virtual int Save(QString szFile = QString());
368
369protected Q_SLOTS:
370 void slotUpdateName();
371
372private Q_SLOTS:
389 virtual void slotBlockShowWidget(const QString& className, int &nRet, void* pContext);
400 virtual void slotBlockShowMessageBox(const QString& szTitle,
401 const QString& szMessage,
402 QMessageBox::StandardButtons buttons,
403 QMessageBox::StandardButton& nRet,
404 bool &checkBox,
405 QString szCheckBoxContext = QString());
411 virtual void slotBlockInputDialog(const QString& szTitle,
412 const QString& szLable,
413 const QString& szMessage,
414 QString& szText
415 );
416
417private Q_SLOTS:
420 virtual void slotSetClipboard(QMimeData *data);
421private:
422Q_SIGNALS:
423 void sigClipBoardChanged();
424
425protected:
426 QMenu m_Menu;
427 QAction* m_pActionSettings;
428private Q_SLOTS:
429 virtual void slotSettings();
430
431private:
432 CPlugin* m_pPlugin;
433};
Operate interface.
Definition Operate.h:51
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.
virtual int Load(QSettings &set)=0
Load parameters.
void sigFullScreen(bool bFullScreen)
Full screen.
void sigError(const int nError, const QString &szError)
Triggered when an error is generated.
virtual int Save(QSettings &set)=0
Save parameters.
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
Definition Stats.h:11