-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathMainWindow.hpp
More file actions
148 lines (106 loc) · 3.7 KB
/
Copy pathMainWindow.hpp
File metadata and controls
148 lines (106 loc) · 3.7 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
#ifndef MAINWINDOW_HPP
#define MAINWINDOW_HPP
#include <QListWidget>
#include <QMainWindow>
#include <QMenu>
#include <QSystemTrayIcon>
#include "ProcessExecutor.hpp"
#include "TaskExecutor.hpp"
QT_BEGIN_NAMESPACE
namespace Ui {
class MainWindow;
}
QT_END_NAMESPACE
class MainWindow : public QMainWindow {
Q_OBJECT
public:
explicit MainWindow(QWidget *parent = nullptr);
~MainWindow() override;
protected:
void changeEvent(QEvent *event) override;
void closeEvent(QCloseEvent *event) override;
public slots:
#ifndef Q_OS_WIN
void slotSslNotFound();
#endif
void slotSyncSuccess(const QString &message);
void slotSyncError(const QString &error);
void slotTaskExecuted(const QDateTime &actualTime, qint32 taskId, int current,
int total);
void slotNextTaskScheduled(int nextIndex, const QDateTime &predictedTime,
qint32 nextTaskId);
#ifndef Q_OS_WIN
void slotExecutorNotFound();
#endif
void slotConnectStateChanged(ConnectState state);
void slotDayFinished();
void slotHolidaySkipped();
void slotScreenCaptured(const QString &filePath);
void slotCaptureFailed(const QString &message);
void slotOpenAppSuccess();
void slotOpenAppFailed(const QString &message);
private:
Ui::MainWindow *ui;
QSystemTrayIcon *trayIcon = nullptr;
QMenu *trayMenu = nullptr;
TaskExecutor *taskExecutorPtr = nullptr;
ProcessExecutor *processExecutorPtr = nullptr;
// 任务自动流程中待杀死的包名,空串表示不在自动流程中
QString pendingKillPackage;
QHash<QString, QString> nameToPackage = {
{"钉钉", "com.alibaba.android.rimet"},
{"企业微信", "com.tencent.wework"},
{"飞书", "com.ss.android.lark"},
{"移动办公M3", "com.seeyon.cmp"}};
ConnectState currentState = ConnectState::Disconnected;
// 自动重连相关
bool isAutoReconnecting = false;
int reconnectRetryCount = 0;
bool disableAutoReconnect = false;
// ====== 系统托盘 ======
void setupSystemTray();
void onTrayIconActivated(QSystemTrayIcon::ActivationReason reason);
// ====== 菜单栏 ======
void onActionImportAppInfoClicked();
void onActionImportDataClicked();
void onActionExportDataClicked();
void onActionCloseClicked();
void onActionTargetSettingClicked();
void onActionEmailSettingClicked();
void onActionWeWorkSettingClicked();
void onActionDelayTimeSettingClicked();
void onActionResetTaskSettingClicked();
void onActionRandomTimeSettingClicked();
void onActionSkipHolidaySettingToggled(bool checked);
void onActionOpenResetTaskSettingToggled(bool checked);
void onActionOpenRandomTimeSettingToggled(bool checked);
void onActionDarkThemeToggled(bool checked);
void onActionSyncDataClicked();
void onActionWakeUpDeviceClicked();
void onActionCaptureScreenClicked();
void onActionScreenOffClicked();
void onActionOpenTargetAppClicked();
void onActionKillTargetAppClicked();
void onActionRestartAdbClicked();
void onActionTestEmailClicked();
void onActionTextWxClicked();
void onActionQuestionClicked();
void onActionProjectSiteTriggered();
void onActionAboutTriggered();
// ====== 按钮 ======
void onExecuteTaskButtonClicked();
void onAddTaskButtonClicked();
void onConnectDeviceButtonClicked();
// ====== 其他 ======
void onNotifyMethodChanged();
void showListWidgetContextMenu(const QPoint &pos);
void onCustomAction(const QListWidgetItem *item, const QString &message);
void updateCountDown();
void resetTaskState();
void startTaskExecutor();
void stopTask();
void updateTaskListWidget();
void sendMessageToUser(const QString &title, const QString &message);
void sendMessageToUser(const QByteArray bytes);
};
#endif // MAINWINDOW_HPP