Rabbit Remote Control 0.0.35
Loading...
Searching...
No Matches
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
50 void slotUpdateParameters(CConnecter* pConnecter);
51 void on_actionClone_triggered();
52 void on_actionOpenRRCFile_triggered();
53 void slotOpenFile(const QString& szFile, bool bOpenSettings = false);
54 void slotConnect();
55 void slotConnected();
56private:
57 int Connect(CConnecter* c, bool set, QString szFile = QString());
58 int LoadConnectLasterClose();
59 int SaveConnectLasterClose();
60public:
61 virtual int onProcess(const QString &id, CPluginClient *pPlug) override;
62private:
63 CClient m_Client;
64 QVector<CConnecter*> m_Connecters;
65 QAction* m_pActionConnect;
66
67private Q_SLOTS:
68 void slotLoadConnecterMenu();
69 void slotCustomContextMenuRequested(const QPoint &pos);
70Q_SIGNALS:
71 void sigConnecterMenuChanged(QAction* pAction);
72
73public:
74 QAction* m_pActionConnecterMenu;
75
77private Q_SLOTS:
78 void on_actionDisconnect_D_triggered();
79 void slotCloseView(const QWidget* pView);
80 void slotDisconnect();
81 void slotDisconnected();
82 void slotError(const int nError, const QString &szInfo);
93 virtual void slotShowMessageBox(const QString& title, const QString& message,
94 const QMessageBox::Icon& icon);
103 void slotInformation(const QString& szInfo);
104 void slotUpdateName(const QString& szName);
105 void slotUpdateName();
106
107 void on_actionSettings_triggered();
108 void slotShortCut();
109
111private:
112 QPushButton * m_pSignalStatus;
113private Q_SLOTS:
114 void slotSignalConnected();
115 void slotSignalDisconnected();
116 void slotSignalError(const int nError, const QString &szInfo);
117 void slotSignalPushButtonClicked(bool checked);
118
119protected:
120 virtual void keyReleaseEvent(QKeyEvent *event) override;
121 virtual void closeEvent(QCloseEvent *event) override;
122
124private:
125 Ui::MainWindow *ui;
126 CView* m_pView;
127
128 void EnableMenu(bool bEnable);
129
130private Q_SLOTS:
131 void on_actionTabBar_B_toggled(bool bShow);
132 void on_actionMain_menu_bar_M_toggled(bool checked);
133 void on_actionToolBar_T_toggled(bool checked);
134 void on_actionStatus_bar_S_toggled(bool checked);
135
137private:
138 struct _FullState {
139 bool statusbar;
140 bool toolBar;
141 bool menubar;
142 bool dockListRecentConnects;
143 bool dockListConnects;
144 bool dockFavorite;
145 bool dockDebugLog;
146 };
147 struct _FullState m_FullState;
148 CFrmFullScreenToolBar* m_pFullScreenToolBar;
150private Q_SLOTS:
151 void on_actionFull_screen_F_triggered();
152
154private Q_SLOTS:
155 void slotCurrentViewChanged(const QWidget* pView);
156 void slotViewerFocusIn(QWidget* pView);
157 void slotConnecterChanged(CConnecter* c);
158 void on_actionViewTab_triggered();
159 void on_actionViewSplit_triggered();
160private:
161 void SetView(CView* pView);
162
164private:
165 RabbitCommon::CRecentMenu* m_pRecentMenu;
166
168private:
169 QDockWidget* m_pDockListRecentConnects;
170private Q_SLOTS:
171 void on_actionOpenListRecentConnections_triggered();
172
173private:
174 QDockWidget* m_pDockListConnecters;
175 CFrmConnecters* m_pFrmConnecters;
176
178private:
179 QDockWidget* m_pDockFavorite;
180 CFavoriteView* m_pFavoriteView;
181private Q_SLOTS:
182 void on_actionAdd_to_favorite_triggered();
183
184private:
185 CParameterApp m_Parameter;
186
188protected:
189 virtual void dragEnterEvent(QDragEnterEvent *event) override;
190 virtual void dragMoveEvent(QDragMoveEvent *event) override;
191 virtual void dropEvent(QDropEvent *event) override;
192private:
193 QPoint m_DragStartPosition;
194
196private Q_SLOTS:
197 void slotSystemTrayIconActivated(QSystemTrayIcon::ActivationReason reason);
198 void slotSystemTrayIconTypeChanged();
199 void slotEnableSystemTrayIcon();
200
201private:
202 QSharedPointer<QSystemTrayIcon> m_TrayIcon;
203};
204
205#endif // MAINWINDOW_H
The Handle CConnecter class.
Definition Client.h:151
manage plugins and connecter
Definition Client.h:49
Connecter interface.
Definition Connecter.h:62
The plugin interface.
The CView class.
Definition View.h:25
The MainWindow class.
Definition mainwindow.h:33
virtual int onProcess(const QString &id, CPluginClient *pPlug) override
Process plugins.
void slotInformation(const QString &szInfo)
Show information.
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)
Use message box display information.
void slotCloseView(const QWidget *pView)
[MainWindow slotConnected]
void slotCustomContextMenuRequested(const QPoint &pos)
MainWindow::slotCustomContextMenuRequested.