1// SPDX-FileCopyrightText: 2023 UnionTech Software Technology Co., Ltd.
2//
3// SPDX-License-Identifier: GPL-3.0-or-later
4
5#include "adapterconfigure.h"
6
7AdapterConfigure::AdapterConfigure(QWidget *parent)
8 : PageWidget (parent)
9 , checkBoxProc(new QCheckBox(QCheckBox::tr("Read from Stdout:"), this))
10 , checkBoxSock(new QCheckBox(QCheckBox::tr("Read from Socket:"), this))
11 , mainVLayout(new QVBoxLayout(this))
12 , checkBoxGroup(new QButtonGroup(this))
13 , sections({{checkBoxProc, new ProcConfigure(this)},
14 {checkBoxSock, new SockConfigure(this)}})
15{
16 checkBoxGroup->addButton(checkBoxProc);
17 checkBoxGroup->addButton(checkBoxSock);
18 mainVLayout->addWidget(checkBoxProc);
19 mainVLayout->setSpacing(0);
20 mainVLayout->addWidget(sections[checkBoxProc]);
21 mainVLayout->setSpacing(0);
22 mainVLayout->addWidget(checkBoxSock);
23 mainVLayout->setSpacing(0);
24 mainVLayout->addWidget(sections[checkBoxSock]);
25 setLayout(mainVLayout);
26 QObject::connect(checkBoxProc, &QCheckBox::clicked,
27 this, &AdapterConfigure::clicked);
28 QObject::connect(checkBoxSock, &QCheckBox::clicked,
29 this, &AdapterConfigure::clicked);
30 checkBoxProc->setChecked(true);
31 checkBoxProc->clicked();
32}
33
34void AdapterConfigure::clicked()
35{
36 QCheckBox *checkBox = qobject_cast<QCheckBox*> (sender());
37 if (!checkBox)
38 return;
39 auto itera = sections.begin();
40 while (itera != sections.end()) {
41 if (checkBox == itera.key()) {
42 itera.value()->setEnabled(true);
43 } else {
44 itera.value()->setEnabled(false);
45 }
46 itera ++;
47 }
48}
49
50SockConfigure::SockConfigure(QWidget *parent)
51 : ProcConfigure(parent)
52 , ip (new QLineEdit(this))
53 , port (new QLineEdit(this))
54{
55 ip->setPlaceholderText(QLineEdit::tr("listen backend ip"));
56 port->setPlaceholderText(QLineEdit::tr("listen backend port"));
57 vLayout->addWidget(ip);
58 vLayout->addWidget(port);
59}
60
61ProcConfigure::ProcConfigure(QWidget *parent)
62 : QWidget(parent)
63 , lauchCmd(new QLineEdit(this))
64 , vLayout(new QVBoxLayout(this))
65{
66 lauchCmd->setPlaceholderText(
67 QLineEdit::tr("launch program command"));
68 vLayout->addWidget(lauchCmd);
69 setLayout(vLayout);
70}
71