-
Notifications
You must be signed in to change notification settings - Fork 244
Expand file tree
/
Copy pathserverdlg.h
More file actions
130 lines (113 loc) · 4.61 KB
/
serverdlg.h
File metadata and controls
130 lines (113 loc) · 4.61 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
/******************************************************************************\
* Copyright (c) 2004-2026
*
* Author(s):
* Volker Fischer
*
******************************************************************************
*
* This program is free software; you can redistribute it and/or modify it under
* the terms of the GNU General Public License as published by the Free Software
* Foundation; either version 2 of the License, or (at your option) any later
* version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
* FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
* details.
*
* You should have received a copy of the GNU General Public License along with
* this program; if not, write to the Free Software Foundation, Inc.,
* 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
*
\******************************************************************************/
#pragma once
#include <QCloseEvent>
#include <QLabel>
#include <QListView>
#include <QTimer>
#include <QPixmap>
#include <QThread>
#include <QSlider>
#include <QMenuBar>
#include <QLayout>
#include <QSystemTrayIcon>
#include <QSettings>
#include <QFileDialog>
#if QT_VERSION >= QT_VERSION_CHECK( 5, 6, 0 )
# include <QVersionNumber>
#endif
#include "global.h"
#include "util.h"
#include "server.h"
#include "settings.h"
#include "ui_serverdlgbase.h"
/* Definitions ****************************************************************/
// update time for GUI controls
#define GUI_CONTRL_UPDATE_TIME 1000 // ms
// Strings used in multiple places
#define SREC_NOT_INITIALISED CServerDlg::tr ( "Not initialised" )
#define SREC_NOT_ENABLED CServerDlg::tr ( "Not enabled" )
#define SREC_NOT_RECORDING CServerDlg::tr ( "Not recording" )
#define SREC_RECORDING CServerDlg::tr ( "Recording" )
/* Classes ********************************************************************/
class CServerDlg : public CBaseDlg, private Ui_CServerDlgBase
{
Q_OBJECT
public:
CServerDlg ( CServer* pNServP, CServerSettings* pNSetP, const bool bStartMinimized, QWidget* parent = nullptr );
protected:
virtual void changeEvent ( QEvent* pEvent );
virtual void closeEvent ( QCloseEvent* Event );
void UpdateGUIDependencies();
void UpdateSystemTrayIcon ( const bool bIsActive );
void ShowWindowInForeground()
{
showNormal();
raise();
activateWindow();
}
void ModifyAutoStartEntry ( const bool bDoAutoStart );
void UpdateRecorderStatus ( QString sessionDir );
QTimer Timer;
CServer* pServer;
CServerSettings* pSettings;
CVector<QTreeWidgetItem*> vecpListViewItems;
QMutex ListViewMutex;
QMenuBar* pMenu;
bool bSystemTrayIconAvailable;
QSystemTrayIcon SystemTrayIcon;
QPixmap BitmapSystemTrayInactive;
QPixmap BitmapSystemTrayActive;
QMenu* pSystemTrayIconMenu;
public slots:
// From the GUI
void OnDirectoryTypeCurrentIndexChanged ( int iTypeIdx );
void OnServerNameEditingFinished();
void OnLocationCityEditingFinished();
void OnLocationCountryCurrentIndexChanged ( int iCntryListItem );
void OnEnableRecorderStateChanged ( int value ) { pServer->SetEnableRecording ( Qt::CheckState::Checked == value ); }
void OnNewRecordingClicked() { pServer->RequestNewRecording(); }
void OnWelcomeMessageChanged() { pServer->SetWelcomeMessage ( tedWelcomeMessage->toPlainText() ); }
void OnLanguageChanged ( QString strLanguage ) { pSettings->strLanguage = strLanguage; }
void OnCustomDirectoryEditingFinished();
void OnRecordingDirClicked();
void OnClearRecordingDirClicked();
void OnServerListPersistenceClicked();
void OnClearServerListPersistenceClicked();
void OnStartOnOSStartStateChanged ( int value );
void OnEnableDelayPanningStateChanged ( int value ) { pServer->SetEnableDelayPanning ( Qt::CheckState::Checked == value ); }
void OnSysTrayMenuOpen() { ShowWindowInForeground(); }
void OnSysTrayMenuHide() { hide(); }
void OnSysTrayMenuExit() { close(); }
void OnSysTrayActivated ( QSystemTrayIcon::ActivationReason ActReason );
// From the Server
void OnServerStarted();
void OnServerStopped();
void OnSvrRegStatusChanged() { UpdateGUIDependencies(); }
void OnRecordingSessionStarted ( QString sessionDir ) { UpdateRecorderStatus ( sessionDir ); }
void OnStopRecorder();
void OnCLVersionAndOSReceived ( CHostAddress, COSUtil::EOpSystemType, QString strVersion );
// Our timer
void OnTimer();
};