玉兔远程控制 0.0.34
载入中...
搜索中...
未找到
Connecter.h
1// Author: Kang Lin <kl222@126.com>
2
3#ifndef CCONNECTER_H
4#define CCONNECTER_H
5
6#pragma once
7
8#include <QObject>
9#include <QDir>
10#include <QtPlugin>
11#include <QDataStream>
12#include <QDialog>
13#include <QIcon>
14#include <QMimeData>
15#include <QSettings>
16#include <QMessageBox>
17#include <QMenu>
18
19#include "client_export.h"
20#include "ParameterClient.h"
21
22class CPluginClient;
23
61class CLIENT_EXPORT CConnecter : public QObject
62{
63 Q_OBJECT
64
65public:
87 explicit CConnecter(CPluginClient *plugin);
88 virtual ~CConnecter();
89
91 virtual const QString Id();
93 virtual const QString Name();
95 virtual const QString Description();
97 virtual const QString Protocol() const;
99 virtual qint16 Version() = 0;
101 virtual const QIcon Icon() const;
102
115 virtual QWidget* GetViewer() = 0;
133 virtual int OpenDialogSettings(QWidget* parent = nullptr);
137 virtual QMenu* GetMenu(QWidget* parent = nullptr);
138
139public Q_SLOTS:
154 virtual int Connect() = 0;
170 virtual int DisConnect() = 0;
171
172Q_SIGNALS:
210 void sigViewerFocusIn(QWidget* pView);
215 void sigUpdateName(const QString& szName);
233 void sigError(const int nError, const QString &szError);
246 void sigInformation(const QString& szInfo);
261 void sigShowMessageBox(const QString& title, const QString& message,
262 const QMessageBox::Icon& icon = QMessageBox::Information);
263
264protected:
270 Q_INVOKABLE virtual int Initial();
275 Q_INVOKABLE virtual int Clean();
282 Q_INVOKABLE virtual int SetParameterClient(CParameterClient* pPara);
283
297 virtual int SetParameter(CParameter* p);
298 CParameter* GetParameter();
299
300protected:
301 Q_INVOKABLE CPluginClient* GetPlugClient() const;
302
303 static QObject* createObject(const QString &className, QObject* parent = NULL);
304
305private:
322 virtual QDialog* OnOpenDialogSettings(QWidget* parent = nullptr) = 0;
323
324public:
325 /* \~chinese 得到配置文件名
326 * \~english Get settings file name
327 */
328 virtual QString GetSettingsFile();
329 /* \~chinese 设置配置文件名
330 * \~english Set settings file name
331 */
332 virtual int SetSettingsFile(const QString &szFile);
333private:
334 QString m_szSettings;
335protected:
340 virtual int Load(QSettings &set);
345 virtual int Save(QSettings &set);
352 Q_INVOKABLE virtual int Load(QString szFile = QString());
361 Q_INVOKABLE virtual int Save(QString szFile = QString());
362
363private Q_SLOTS:
364 void slotShowServerName();
365 void slotUpdateName();
366
384 virtual void slotBlockShowWidget(const QString& className, int &nRet, void* pContext);
395 virtual void slotBlockShowMessageBox(const QString& szTitle,
396 const QString& szMessage,
397 QMessageBox::StandardButtons buttons,
398 QMessageBox::StandardButton& nRet,
399 bool &checkBox,
400 QString szCheckBoxContext = QString());
406 virtual void slotBlockInputDialog(const QString& szTitle,
407 const QString& szLable,
408 const QString& szMessage,
409 QString& szText
410 );
411
412private Q_SLOTS:
415 virtual void slotSetClipboard(QMimeData *data);
416private:
417Q_SIGNALS:
418 void sigClipBoardChanged();
419
420protected:
421 QMenu m_Menu;
422 QAction* m_pSettings;
423private Q_SLOTS:
424 virtual void slotSettings();
425
426private:
427 CPluginClient* m_pPluginClient;
428
429 // The owner is a derived class of this class
430 CParameter* m_pParameter;
431};
432
433#endif // CCONNECTER_H
连接者应用接口。
Definition Connecter.h:62
void sigUpdateName(const QString &szName)
virtual int DisConnect()=0
关闭连接
void sigConnected()
连接成功信号。仅由插件触发。 应用程序需要在此时设置视图属性 Enabled 为 true 。允许接收键盘和鼠标事件
virtual QDialog * OnOpenDialogSettings(QWidget *parent=nullptr)=0
得到设置对话框
CConnecter(CPluginClient *plugin)
virtual qint16 Version()=0
Version
virtual QWidget * GetViewer()=0
得到显示视图
void sigDisconnected()
断开连接成功信号。仅由插件触发
void sigDisconnect()
通知用户断开连接。仅由插件触发。 当从插件中需要要断开连接时触发。例如:对端断开连接、重置连接或者连接出错。 当应用接收到此信号后,调用 DisConnect() 关闭连接。
void sigError(const int nError, const QString &szError)
当有错误产生时触发。
void sigShowMessageBox(const QString &title, const QString &message, const QMessageBox::Icon &icon=QMessageBox::Information)
从后台线程中触发在主线程中显示消息对话框(QMessageBox),不阻塞后台线程
void sigViewerFocusIn(QWidget *pView)
视图获得焦点
virtual int Connect()=0
开始连接
void sigInformation(const QString &szInfo)
中主窗口中显示信息
void sigUpdateParameters(CConnecter *pConnecter)
更新参数,通知应用程序保存或显示参数
客户端库 (CClient) 参数。仅在客户端库 (CClient) 和插件中使用。
参数接口
Definition Parameter.h:169
客户端插件接口。用于建立 CConnecter 实例,它由协议插件实现。