玉兔远程控制 0.1.0-bate11
载入中...
搜索中...
未找到
ParameterServerUI.cpp
1// Author: Kang Lin <kl222@126.com>
2
3#include <QInputDialog>
4#include <QMenu>
5#include <QStandardItem>
6#include <QNetworkInterface>
7#include <QLoggingCategory>
8#include "ParameterServerUI.h"
9#include "ui_ParameterServerUI.h"
10
11static Q_LOGGING_CATEGORY(log, "Parameter.ServerUI")
13 : CParameterUI(parent)
14 , ui(new Ui::CParameterServerUI)
15 , m_pPara(nullptr)
16{
17 ui->setupUi(this);
18 setWindowIcon(QIcon::fromTheme("network-wired"));
19 setWindowTitle(tr("Connect"));
20 m_pBlacklist = new CParameterFilterUI(ui->tbFilter);
21 if(m_pBlacklist) {
22 ui->tbFilter->addTab(m_pBlacklist, tr("Blacklist"));
23 }
24 m_pWhitelist = new CParameterFilterUI(ui->tbFilter);
25 if(m_pWhitelist) {
26 ui->tbFilter->addTab(m_pWhitelist, tr("Whitelist"));
27 }
28}
29
30CParameterServerUI::~CParameterServerUI()
31{
32 delete ui;
33}
34
36{
37 m_pPara = qobject_cast<CParameterServer*>(pParameter);
38 Q_ASSERT(m_pPara);
39
40 m_pPara->m_Net.SetHost(tr("Use the following \"Enable listen at all network interface\""));
41 ui->wNet->SetParameter(&m_pPara->m_Net);
42 ui->sbConnectCount->setValue(m_pPara->GetConnectCount());
43 ui->sbConnectCount->setToolTip(tr("-1: Enable all\n 0: Disable all\n>0: Connect count"));
44 ui->spAuthenticateAttempts->setValue(m_pPara->GetAuthenticateAttempts());
45 ui->tmAuthenticateTimeOut->setTime(QTime(0,0).addMSecs(m_pPara->GetAuthenticateTime()));
46
47 ui->cbListenAll->setChecked(m_pPara->GetListenAll());
48 ui->lvListen->setModel(&m_ModelNetWorkInterface);
49 foreach(auto iface, QNetworkInterface::allInterfaces()) {
50 qDebug(log) << iface;
51 auto entry = iface.addressEntries();
52 if(iface.flags() & QNetworkInterface::IsLoopBack)
53 continue;
54 /*if(!(iface.flags() & QNetworkInterface::CanBroadcast))
55 continue;//*/
56 foreach(auto e, entry) {
57 if(!e.broadcast().isNull()) {
58 QStandardItem* item = new QStandardItem(e.ip().toString());
59 item->setCheckable(true);
60 m_ModelNetWorkInterface.appendRow(item);
61 }
62 }
63 }
64 foreach(auto ip, m_pPara->GetListen()) {
65 for (int row = 0; row < m_ModelNetWorkInterface.rowCount(); row++) {
66 QModelIndex index = m_ModelNetWorkInterface.index(row, 0);
67 QString szIp = m_ModelNetWorkInterface.data(index).toString();
68 if (szIp == ip) {
69 m_ModelNetWorkInterface.item(row)->setCheckState(Qt::Checked);
70 break;
71 }
72 }
73 }
74
75 if(m_pWhitelist)
76 m_pWhitelist->SetParameter(&m_pPara->m_WhiteFilter);
77 if(m_pBlacklist)
78 m_pBlacklist->SetParameter(&m_pPara->m_BlackFilter);
79
80 return 0;
81}
82
84{
85 int nRet = 0;
86 nRet = ui->wNet->Accept();
87 if(nRet) return nRet;
88
89 m_pPara->SetConnectCount(ui->sbConnectCount->value());
90 m_pPara->SetAuthenticateAttempts(ui->spAuthenticateAttempts->value());
91 m_pPara->SetAuthenticateTime(QTime(0,0).msecsTo(ui->tmAuthenticateTimeOut->time()));
92 m_pPara->SetListenAll(ui->cbListenAll->isChecked());
93 QStringList lstInterface;
94 for (int row = 0; row < m_ModelNetWorkInterface.rowCount(); row++) {
95 auto item = m_ModelNetWorkInterface.item(row);
96 if(item->checkState() == Qt::Checked) {
97 lstInterface << item->text();
98 }
99 }
100 m_pPara->SetListen(lstInterface);
101
102 if(m_pWhitelist)
103 m_pWhitelist->Accept();
104 if(m_pBlacklist)
105 m_pBlacklist->Accept();
106
107 return nRet;
108}
109
111{
112 bool bRet = true;
113 bRet = ui->wNet->CheckValidity(validity);
114 if(!bRet) return bRet;
115 return bRet;
116}
117
118void CParameterServerUI::on_cbListenAll_checkStateChanged(const Qt::CheckState &arg1)
119{
120 ui->lvListen->setEnabled(Qt::Checked != arg1);
121}
The server base parameters UI
virtual bool CheckValidity(bool validity) override
检查参数的有效性
virtual int SetParameter(CParameter *pParameter) override
[override functions]
virtual int Accept() override
接受参数。如果需要,可先调用 CheckValidity
参数界面接口
参数接口