玉兔远程控制 0.1.0-bate10
载入中...
搜索中...
未找到
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}
virtual int SetParameter(CParameter *pParameter) override
[override functions]
virtual int Accept() override
接受参数。如果需要,可先调用 CheckValidity
The server base parameters UI
virtual bool CheckValidity(bool validity) override
检查参数的有效性
virtual int SetParameter(CParameter *pParameter) override
[override functions]
virtual int Accept() override
接受参数。如果需要,可先调用 CheckValidity
void SetAuthenticateTime(qint64 tm)
Set authenticate time out
int GetAuthenticateAttempts() const
Get authenticate attempts
qint64 GetAuthenticateTime() const
Get authenticate time out
int GetConnectCount() const
Connect count.
void SetAuthenticateAttempts(int attempts)
Set authenticate attempts
参数界面接口
Definition ParameterUI.h:15
参数接口
Definition Parameter.h:220