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