Rabbit Remote Control 0.1.0-bate10
Loading...
Searching...
No Matches
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
Accept parameters.
The server base parameters UI.
virtual bool CheckValidity(bool validity) override
Check parameters validity.
virtual int SetParameter(CParameter *pParameter) override
[override functions]
virtual int Accept() override
Accept parameters.
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.
The parameter UI interface.
Definition ParameterUI.h:15
Parameter interface.
Definition Parameter.h:220