玉兔远程控制 0.0.34
载入中...
搜索中...
未找到
mainwindow.h
1// Author: Kang Lin <kl222@126.com>
2
3#ifndef MAINWINDOW_H
4#define MAINWINDOW_H
5
6#include <QMainWindow>
7#include <QKeyEvent>
8#include <QTabWidget>
9#include <QActionGroup>
10#include <QToolButton>
11#include <QSpinBox>
12#include <QDockWidget>
13#include <QSystemTrayIcon>
14
15#include "View.h"
16#include "Client.h"
17#include "RabbitRecentMenu.h"
18#include "ParameterApp.h"
19#include "FavoriteView.h"
20#include "FrmConnecters.h"
21
22QT_BEGIN_NAMESPACE
23namespace Ui { class MainWindow; }
24QT_END_NAMESPACE
25
27
32class MainWindow : public QMainWindow, CClient::Handle
33{
34 Q_OBJECT
35
36public:
37 explicit MainWindow(QWidget *parent = nullptr);
38 virtual ~MainWindow() override;
39
40Q_SIGNALS:
41 void sigFullScreen();
42 void sigShowNormal();
43
44private Q_SLOTS:
45 void on_actionExit_E_triggered();
46 void on_actionAbout_triggered();
47 void on_actionUpdate_triggered();
48
49 void on_actionSend_ctl_alt_del_triggered();
50
52 void slotUpdateParameters(CConnecter* pConnecter);
53 void on_actionClone_triggered();
54 void on_actionOpenRRCFile_triggered();
55 void slotOpenFile(const QString& szFile, bool bOpenSettings = false);
56 void slotConnect();
57 void slotConnected();
58private:
59 int Connect(CConnecter* c, bool set, QString szFile = QString());
60 int LoadConnectLasterClose();
61 int SaveConnectLasterClose();
62public:
63 virtual int onProcess(const QString &id, CPluginClient *pPlug) override;
64private:
65 CClient m_Client;
66 QVector<CConnecter*> m_Connecters;
67 QAction* m_pActionConnect;
68
69private Q_SLOTS:
70 void slotLoadConnecterMenu();
71 void slotCustomContextMenuRequested(const QPoint &pos);
72Q_SIGNALS:
73 void sigConnecterMenuChanged(QAction* pAction);
74
75public:
76 QAction* m_pActionConnecterMenu;
77
79private Q_SLOTS:
80 void on_actionDisconnect_D_triggered();
81 void slotCloseView(const QWidget* pView);
82 void slotDisconnect();
83 void slotDisconnected();
84 void slotError(const int nError, const QString &szInfo);
95 virtual void slotShowMessageBox(const QString& title, const QString& message,
96 const QMessageBox::Icon& icon);
105 void slotInformation(const QString& szInfo);
106 void slotUpdateName(const QString& szName);
107 void slotUpdateName();
108
109 void on_actionSettings_triggered();
110 void slotShortCut();
111
113private:
114 QPushButton * m_pSignalStatus;
115private Q_SLOTS:
116 void slotSignalConnected();
117 void slotSignalDisconnected();
118 void slotSignalError(const int nError, const QString &szInfo);
119 void slotSignalPushButtonClicked(bool checked);
120
121protected:
122 virtual void keyReleaseEvent(QKeyEvent *event) override;
123 virtual void closeEvent(QCloseEvent *event) override;
124
126private:
127 Ui::MainWindow *ui;
128 CView* m_pView;
129
130 void EnableMenu(bool bEnable);
131
132private Q_SLOTS:
133 void on_actionTabBar_B_toggled(bool bShow);
134 void on_actionMain_menu_bar_M_toggled(bool checked);
135 void on_actionToolBar_T_toggled(bool checked);
136 void on_actionStatus_bar_S_toggled(bool checked);
137
139private:
140 struct _FullState {
141 bool statusbar;
142 bool toolBar;
143 bool menubar;
144 bool dockListRecentConnects;
145 bool dockListConnects;
146 bool dockFavorite;
147 bool dockDebugLog;
148 };
149 struct _FullState m_FullState;
150 CFrmFullScreenToolBar* m_pFullScreenToolBar;
152private Q_SLOTS:
153 void on_actionFull_screen_F_triggered();
154
156private Q_SLOTS:
157 void slotCurrentViewChanged(const QWidget* pView);
158 void slotViewerFocusIn(QWidget* pView);
159 void slotConnecterChanged(CConnecter* c);
160 void on_actionViewTab_triggered();
161 void on_actionViewSplit_triggered();
162private:
163 void SetView(CView* pView);
164
166private:
167 RabbitCommon::CRecentMenu* m_pRecentMenu;
168
170private:
171 QDockWidget* m_pDockListRecentConnects;
172private Q_SLOTS:
173 void on_actionOpenListRecentConnections_triggered();
174
175private:
176 QDockWidget* m_pDockListConnecters;
177 CFrmConnecters* m_pFrmConnecters;
178
180private:
181 QDockWidget* m_pDockFavorite;
182 CFavoriteView* m_pFavoriteView;
183private Q_SLOTS:
184 void on_actionAdd_to_favorite_triggered();
185
186public:
187 CParameterApp m_Parameter;
188
190protected:
191 virtual void dragEnterEvent(QDragEnterEvent *event) override;
192 virtual void dragMoveEvent(QDragMoveEvent *event) override;
193 virtual void dropEvent(QDropEvent *event) override;
194private:
195 QPoint m_DragStartPosition;
196
198private Q_SLOTS:
199 void slotSystemTrayIconActivated(QSystemTrayIcon::ActivationReason reason);
200 void slotSystemTrayIconTypeChanged();
201 void slotEnableSystemTrayIcon();
202
203private:
204 QSharedPointer<QSystemTrayIcon> m_TrayIcon;
205};
206
207#endif // MAINWINDOW_H
处理连接者。用于客户端得到连接者信号
Definition Client.h:151
管理插件和连接者
Definition Client.h:49
连接者应用接口。
Definition Connecter.h:62
客户端插件接口。用于建立 CConnecter 实例,它由协议插件实现。
The CView class
Definition View.h:24
The MainWindow class
Definition mainwindow.h:33
virtual int onProcess(const QString &id, CPluginClient *pPlug) override
Process plugins
void slotInformation(const QString &szInfo)
显示信息。暂时在状态栏显示。
int Connect(CConnecter *c, bool set, QString szFile=QString())
Connect
void slotConnected()
[MainWindow slotConnected]
virtual void slotShowMessageBox(const QString &title, const QString &message, const QMessageBox::Icon &icon)
用消息对话框(QMessageBox)显示信息
void slotCloseView(const QWidget *pView)
[MainWindow slotConnected]