玉兔远程控制
0.1.0-bate11
Toggle main menu visibility
载入中...
搜索中...
未找到
Src
OperateServer.cpp
1
// Author: Kang Lin <kl222@126.com>
2
3
#include <QLoggingCategory>
4
5
#include "BackendThread.h"
6
#include "FrmViewServer.h"
7
#include "OperateServer.h"
8
9
static
Q_LOGGING_CATEGORY(log,
"Operate.Server"
)
10
COperateServer
::
COperateServer
(
CPlugin
*plugin)
11
:
COperate
(plugin)
12
, m_pViewer(
nullptr
)
13
, m_pThread(
nullptr
)
14
, m_pActionStart(
nullptr
)
15
{
16
qDebug(log) << Q_FUNC_INFO;
17
}
18
19
COperateServer::~COperateServer()
20
{
21
qDebug(log) << Q_FUNC_INFO;
22
}
23
24
QWidget *
COperateServer::GetViewer
()
25
{
26
return
m_pViewer;
27
}
28
29
int
COperateServer::Initial
()
30
{
31
int
nRet = 0;
32
nRet =
COperate::Initial
();
33
if
(nRet)
return
nRet;
34
m_pViewer =
new
CFrmViewServer
();
35
36
m_pActionStart = m_Menu.addAction(
37
QIcon::fromTheme(
"media-playback-start"
), tr(
"Start server"
));
38
if
(m_pActionStart) {
39
m_pActionStart->setStatusTip(m_pActionStart->text());
40
m_pActionStart->setToolTip(m_pActionStart->text());
41
m_pActionStart->setCheckable(
true
);
42
bool
check = connect(m_pActionStart, &QAction::toggled,
43
this
, &COperateServer::slotStart);
44
Q_ASSERT(check);
45
m_pViewer->AddActionInToolBar(m_pActionStart);
46
}
47
m_Menu.addSeparator();
48
if
(m_pActionSettings) {
49
m_Menu.addAction(m_pActionSettings);
50
m_pViewer->AddActionInToolBar(m_pActionSettings);
51
}
52
return
nRet;
53
}
54
55
int
COperateServer::Clean
()
56
{
57
int
nRet = 0;
58
if
(m_pViewer) {
59
delete
m_pViewer;
60
m_pViewer =
nullptr
;
61
}
62
nRet =
COperate::Clean
();
63
return
nRet;
64
}
65
66
int
COperateServer::Start
()
67
{
68
qDebug(log) << Q_FUNC_INFO;
69
emit
sigRunning
();
70
return
0;
71
}
72
73
int
COperateServer::Stop
()
74
{
75
qDebug(log) << Q_FUNC_INFO;
76
int
nRet = 0;
77
if
(m_pActionStart && m_pActionStart->isChecked()) {
78
if
(m_pThread) {
79
bool
check = connect(m_pThread, SIGNAL(finished()),
80
this
, SIGNAL(
sigFinished
()));
81
Q_ASSERT(check);
82
}
83
m_pActionStart->setChecked(
false
);
84
}
else
85
emit
sigFinished
();
86
87
return
nRet;
88
}
89
90
void
COperateServer::slotStart(
bool
checked)
91
{
92
qDebug(log) << Q_FUNC_INFO << m_pActionStart->isChecked();
93
bool
check =
false
;
94
if
(!checked) {
95
m_pActionStart->setText(tr(
"Start server"
));
96
m_pActionStart->setToolTip(m_pActionStart->text());
97
m_pActionStart->setIcon(QIcon::fromTheme(
"media-playback-start"
));
98
if
(m_pThread)
99
{
100
slotSetSecurityLevel(CSecurityLevel::Level::No);
101
m_pThread->
quit
();
102
// NOTE: Don't delete m_pThread, See CBackendThread
103
m_pThread =
nullptr
;
104
}
105
return
;
106
}
107
108
m_pActionStart->setText(tr(
"Stop server"
));
109
m_pActionStart->setToolTip(m_pActionStart->text());
110
m_pActionStart->setIcon(QIcon::fromTheme(
"media-playback-stop"
));
111
Q_ASSERT(!m_pThread);
112
m_pThread =
new
CBackendThread
(
this
);
113
if
(!m_pThread) {
114
qCritical(log) <<
"new CBackendThread fail"
;
115
return
;
116
}
117
check = connect(
this
, &
COperateServer::sigError
,
118
this
, [
this
](
const
int
nError,
const
QString &szError){
119
m_pActionStart->setChecked(
false
);
120
});
121
Q_ASSERT(check);
122
m_pThread->start();
123
}
CBackendThread::quit
void quit()
Quit
定义
BackendThread.cpp:29
CBackendThread::CBackendThread
CBackendThread(COperate *pOperate, QObject *pParent=nullptr)
CBackendThread
CFrmViewServer
The CFrmViewServer class
定义
FrmViewServer.h:21
COperateServer
服务操作接口
定义
OperateServer.h:39
COperateServer::Initial
virtual Q_INVOKABLE int Initial() override
Initial parameters and resource
定义
OperateServer.cpp:29
COperateServer::GetViewer
virtual QWidget * GetViewer() override
得到显示视图
定义
OperateServer.cpp:24
COperateServer::Stop
virtual int Stop() override
关闭
定义
OperateServer.cpp:73
COperateServer::Start
virtual int Start() override
开始
定义
OperateServer.cpp:66
COperateServer::Clean
virtual Q_INVOKABLE int Clean() override
Clean parameters and resource
定义
OperateServer.cpp:55
COperate
操作接口。
定义
Operate.h:51
COperate::sigFinished
void sigFinished()
断开连接成功信号。仅由插件触发
COperate::sigRunning
void sigRunning()
开始成功信号。仅由插件触发。
COperate::sigError
void sigError(const int nError, const QString &szError)
当有错误产生时触发。
COperate::Initial
virtual Q_INVOKABLE int Initial()
Initial parameters and resource
定义
Operate.cpp:190
COperate::Clean
virtual Q_INVOKABLE int Clean()
Clean parameters and resource
定义
Operate.cpp:209
CPlugin
插件接口
定义
Plugin.h:15
作者:康林 (kl222@126.com)
版权所有(c) 康林工作室 保留所有权力