玉兔远程控制 0.1.0-bate8
载入中...
搜索中...
未找到
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 "RecentDatabase.h"
17#include "View.h"
18#include "Manager.h"
19#include "RabbitRecentMenu.h"
20#include "ParameterApp.h"
21#include "FrmRecent.h"
22#include "FavoriteView.h"
23#include "FrmActive.h"
24
25QT_BEGIN_NAMESPACE
26namespace Ui { class MainWindow; }
27QT_END_NAMESPACE
28
30
35class MainWindow : public QMainWindow, CManager::Handle
36{
37 Q_OBJECT
38
39public:
40 explicit MainWindow(QWidget *parent = nullptr);
41 virtual ~MainWindow() override;
42public:
44 [[nodiscard]] int Initial();
45
46Q_SIGNALS:
47 void sigFullScreen(bool bFullScreen);
48 void sigShowNormal();
49
50private Q_SLOTS:
51 void on_actionExit_E_triggered();
52 void on_actionAbout_triggered();
53 void on_actionUpdate_triggered();
54
56 void slotUpdateParameters(COperate* pOperate);
57 void on_actionClone_triggered();
58 void on_actionOpenRRCFile_triggered();
59 void slotOpenFile(const QString& szFile, bool bOpenSettings = false);
60 void slotStart();
61 void slotRunning();
62private:
63 Q_INVOKABLE int Start(COperate* pOperate, bool set, QString szFile = QString());
64 int LoadOperateLasterClose();
65 int SaveOperateLasterClose();
66public:
67 virtual int onProcess(const QString &id, CPlugin *pPlugin) override;
68 [[nodiscard]] QAction* GetStartAction(QMenu *pMenu, CPlugin* pPlug);
69private Q_SLOTS:
70 void slotStartByType();
71private:
72 CManager m_Manager;
73 QSet<COperate*> m_Operates;
74 QMap<CPlugin::TYPE, QMenu*> m_MenuStartByType;
75
76private Q_SLOTS:
77 void slotMenuActivity();
78private:
79 QActionGroup* m_pMenuActivityGroup;
80 QToolButton* m_ptbMenuActivity;
81private Q_SLOTS:
82 void slotLoadOperateMenu();
83 void slotCustomContextMenuRequested(const QPoint &pos);
84Q_SIGNALS:
85 void sigOperateMenuChanged(QAction* pAction);
86
87public:
88 QAction* m_pActionOperateMenu;
89 QAction* m_pActionTBOperate;
90 QToolButton* m_pTBOperate;
91
93private Q_SLOTS:
94 void on_actionStop_triggered();
95 void on_actionStop_All_triggered();
96 void on_actionStop_other_triggered();
97 void slotCloseView(const QWidget* pView);
98 void slotStop();
99 void slotFinished();
100 void slotError(const int nError, const QString &szInfo);
111 virtual void slotShowMessageBox(const QString& title, const QString& message,
112 const QMessageBox::Icon& icon);
121 void slotInformation(const QString& szInfo);
122 void slotUpdateName(const QString& szName);
123 void slotUpdateName();
124
125 void on_actionSettings_triggered();
126 void slotShortCut();
127
129private:
130 enum class MessageLevel {
131 Normal,
132 Error,
133 Warning
134 };
135private Q_SLOTS:
136 void slotStatusMessage(QString szMessage, MessageLevel level = MessageLevel::Normal);
137private:
138 QLabel m_StatusBarMessage;
139
141private:
142 QTimer m_Timer;
143 QLabel m_TotalSends;
144 QLabel m_TotalReceives;
145 QLabel m_SendRate;
146 QLabel m_ReceivesRate;
147 void SetStatsVisible(bool visible);
148 void StartTimer();
149private Q_SLOTS:
150 void slotTimeOut();
151
153private:
154 QLabel* m_pSecureLevel;
155 void SetSecureLevel(COperate *o);
156
158private:
159 QPushButton* m_pSignalStatus;
160private Q_SLOTS:
161 void slotSignalConnected();
162 void slotSignalDisconnected();
163 void slotSignalError(const int nError, const QString &szInfo);
164 void slotSignalPushButtonClicked(bool checked);
165
166protected:
167 virtual void keyReleaseEvent(QKeyEvent *event) override;
168 virtual void closeEvent(QCloseEvent *event) override;
169
171private:
172 Ui::MainWindow *ui;
173 CView* m_pView;
174 QAction* m_pToolBarMenuAction;
175 void EnableMenu(bool bEnable);
176
177private Q_SLOTS:
178 void on_actionTabBar_B_toggled(bool bShow);
179 void on_actionMain_menu_bar_M_toggled(bool checked);
180 void on_actionToolBar_T_toggled(bool checked);
181 void on_actionStatus_bar_S_toggled(bool checked);
182 void on_actionKeyboard_triggered();
183
185private:
186 struct _FullState {
187 bool statusbar;
188 bool toolBar;
189 bool menubar;
190 bool dockListRecent;
191 bool dockListActive;
192 bool dockFavorite;
193 bool dockDebugLog;
194 };
195 struct _FullState m_FullState;
196 CFrmFullScreenToolBar* m_pFullScreenToolBar;
198private Q_SLOTS:
199 void on_actionFull_screen_F_triggered();
200
202private Q_SLOTS:
203 void slotCurrentViewChanged(const QWidget* pView);
204 void slotViewerFocusIn(QWidget* pView);
205 void slotOperateChanged(COperate* o);
206 void on_actionViewTab_triggered();
207 void on_actionViewSplit_triggered();
208private:
209 void SetView(CView* pView);
210
212private Q_SLOTS:
213 void on_actionLayoutDefault_triggered();
214 void on_actionLayoutSimple_triggered();
215 void on_actionLayoutMinimalism_triggered();
216
218private:
219 RabbitCommon::CRecentMenu* m_pRecentMenu;
220
222private:
223 QDockWidget* m_pDockRecent;
224 CFrmRecent* m_pRecent;
225
226private Q_SLOTS:
227 void on_actionOpenListRecent_triggered();
228
229private:
230 QDockWidget* m_pDockActive;
231 CFrmActive* m_pFrmActive;
232
234private:
235 QDockWidget* m_pDockFavorite;
236 CFavoriteView* m_pFavoriteView;
237private Q_SLOTS:
238 void on_actionAdd_to_favorite_triggered();
239
240private:
241 CParameterApp m_Parameter;
242
244protected:
245 virtual void dragEnterEvent(QDragEnterEvent *event) override;
246 virtual void dragMoveEvent(QDragMoveEvent *event) override;
247 virtual void dropEvent(QDropEvent *event) override;
248private:
249 QPoint m_DragStartPosition;
250
252private Q_SLOTS:
253 void slotSystemTrayIconActivated(QSystemTrayIcon::ActivationReason reason);
254 void slotSystemTrayIconTypeChanged();
255 void slotEnableSystemTrayIcon();
256
257 void on_actionUser_manual_triggered();
258
259private:
260 QSharedPointer<QSystemTrayIcon> m_TrayIcon;
261};
262
263#endif // MAINWINDOW_H
The CFavoriteView class
列出存在的连接配置
Definition FrmRecent.h:23
处理连接者。用于客户端得到连接者信号
Definition Manager.h:171
管理插件
Definition Manager.h:48
操作接口。
Definition Operate.h:51
插件接口
Definition Plugin.h:15
The CView class
Definition View.h:25
The MainWindow class
Definition mainwindow.h:36
Q_INVOKABLE 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
int Initial()
For time-consuming operations