玉兔远程控制 0.1.0-alpha.2
载入中...
搜索中...
未找到
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#include <QLabel>
15
16#include "View.h"
17#include "Manager.h"
18#include "RabbitRecentMenu.h"
19#include "ParameterApp.h"
20#include "FavoriteView.h"
21#include "FrmActive.h"
22
23QT_BEGIN_NAMESPACE
24namespace Ui { class MainWindow; }
25QT_END_NAMESPACE
26
28
33class MainWindow : public QMainWindow, CManager::Handle
34{
35 Q_OBJECT
36
37public:
38 explicit MainWindow(QWidget *parent = nullptr);
39 virtual ~MainWindow() override;
40
41Q_SIGNALS:
42 void sigFullScreen();
43 void sigShowNormal();
44
45private Q_SLOTS:
46 void on_actionExit_E_triggered();
47 void on_actionAbout_triggered();
48 void on_actionUpdate_triggered();
49
51 void slotUpdateParameters(COperate* pOperate);
52 void on_actionClone_triggered();
53 void on_actionOpenRRCFile_triggered();
54 void slotOpenFile(const QString& szFile, bool bOpenSettings = false);
55 void slotStart();
56 void slotRunning();
57private:
58 int Start(COperate* pOperate, bool set, QString szFile = QString());
59 int LoadOperateLasterClose();
60 int SaveOperateLasterClose();
61public:
62 virtual int onProcess(const QString &id, CPlugin *pPlugin) override;
63 [[nodiscard]] QAction* GetStartAction(QMenu *pMenu, CPlugin* pPlug);
64private Q_SLOTS:
65 void slotStartByType();
66private:
67 CManager m_Manager;
68 QVector<COperate*> m_Operates;
69 QMap<CPlugin::TYPE, QMenu*> m_MenuStartByType;
70
71private Q_SLOTS:
72 void slotMenuActivity();
73private:
74 QActionGroup* m_pMenuActivityGroup;
75 QToolButton* m_ptbMenuActivity;
76private Q_SLOTS:
77 void slotLoadOperateMenu();
78 void slotCustomContextMenuRequested(const QPoint &pos);
79Q_SIGNALS:
80 void sigOperateMenuChanged(QAction* pAction);
81
82public:
83 QAction* m_pActionOperateMenu;
84 QAction* m_pActionTBOperate;
85 QToolButton* m_pTBOperate;
86
88private Q_SLOTS:
89 void on_actionStop_triggered();
90 void slotCloseView(const QWidget* pView);
91 void slotStop();
92 void slotFinished();
93 void slotError(const int nError, const QString &szInfo);
104 virtual void slotShowMessageBox(const QString& title, const QString& message,
105 const QMessageBox::Icon& icon);
114 void slotInformation(const QString& szInfo);
115 void slotUpdateName(const QString& szName);
116 void slotUpdateName();
117
118 void on_actionSettings_triggered();
119 void slotShortCut();
120
122private:
123 enum class MessageLevel {
124 Normal,
125 Error,
126 Warning
127 };
128private Q_SLOTS:
129 void slotStatusMessage(QString szMessage, MessageLevel level = MessageLevel::Normal);
130private:
131 QLabel m_StatusBarMessage;
132
134private Q_SLOTS:
135 void slotTimeOut();
136private:
137 QTimer m_Timer;
138 QLabel m_TotalSends;
139 QLabel m_TotalReceives;
140 QLabel m_SendRate;
141 QLabel m_ReceivesRate;
142 void SetStatsVisible(bool visible);
143 void StartTimer();
144
146private:
147 QLabel* m_pSecureLevel;
148 void SetSecureLevel(COperate *o);
149
151private:
152 QPushButton* m_pSignalStatus;
153private Q_SLOTS:
154 void slotSignalConnected();
155 void slotSignalDisconnected();
156 void slotSignalError(const int nError, const QString &szInfo);
157 void slotSignalPushButtonClicked(bool checked);
158
159protected:
160 virtual void keyReleaseEvent(QKeyEvent *event) override;
161 virtual void closeEvent(QCloseEvent *event) override;
162
164private:
165 Ui::MainWindow *ui;
166 CView* m_pView;
167
168 void EnableMenu(bool bEnable);
169
170private Q_SLOTS:
171 void on_actionTabBar_B_toggled(bool bShow);
172 void on_actionMain_menu_bar_M_toggled(bool checked);
173 void on_actionToolBar_T_toggled(bool checked);
174 void on_actionStatus_bar_S_toggled(bool checked);
175
177private:
178 struct _FullState {
179 bool statusbar;
180 bool toolBar;
181 bool menubar;
182 bool dockListRecent;
183 bool dockListActive;
184 bool dockFavorite;
185 bool dockDebugLog;
186 };
187 struct _FullState m_FullState;
188 CFrmFullScreenToolBar* m_pFullScreenToolBar;
190private Q_SLOTS:
191 void on_actionFull_screen_F_triggered();
192
194private Q_SLOTS:
195 void slotCurrentViewChanged(const QWidget* pView);
196 void slotViewerFocusIn(QWidget* pView);
197 void slotOperateChanged(COperate* o);
198 void on_actionViewTab_triggered();
199 void on_actionViewSplit_triggered();
200private:
201 void SetView(CView* pView);
202
204private:
205 RabbitCommon::CRecentMenu* m_pRecentMenu;
206
208private:
209 QDockWidget* m_pDockListRecent;
210private Q_SLOTS:
211 void on_actionOpenListRecent_triggered();
212
213private:
214 QDockWidget* m_pDockActive;
215 CFrmActive* m_pFrmActive;
216
218private:
219 QDockWidget* m_pDockFavorite;
220 CFavoriteView* m_pFavoriteView;
221private Q_SLOTS:
222 void on_actionAdd_to_favorite_triggered();
223
224private:
225 CParameterApp m_Parameter;
226
228protected:
229 virtual void dragEnterEvent(QDragEnterEvent *event) override;
230 virtual void dragMoveEvent(QDragMoveEvent *event) override;
231 virtual void dropEvent(QDropEvent *event) override;
232private:
233 QPoint m_DragStartPosition;
234
236private Q_SLOTS:
237 void slotSystemTrayIconActivated(QSystemTrayIcon::ActivationReason reason);
238 void slotSystemTrayIconTypeChanged();
239 void slotEnableSystemTrayIcon();
240
241private:
242 QSharedPointer<QSystemTrayIcon> m_TrayIcon;
243};
244
245#endif // MAINWINDOW_H
处理连接者。用于客户端得到连接者信号
Definition Manager.h:145
管理插件
Definition Manager.h:45
操作接口。
Definition Operate.h:51
插件接口
Definition Plugin.h:15
The CView class
Definition View.h:25
The MainWindow class
Definition mainwindow.h:34
int Start(COperate *pOperate, bool set, QString szFile=QString())
Start
virtual int onProcess(const QString &id, CPlugin *pPlugin) override
Process plugins
void slotInformation(const QString &szInfo)
显示信息。暂时在状态栏显示。
virtual void slotShowMessageBox(const QString &title, const QString &message, const QMessageBox::Icon &icon)
用消息对话框(QMessageBox)显示信息
void slotRunning()
[MainWindow slotRunning]
void slotCloseView(const QWidget *pView)
[MainWindow slotRunning]
void slotCustomContextMenuRequested(const QPoint &pos)
MainWindow::slotCustomContextMenuRequested