[new] 新增正则表达式和管理员密码输入

This commit is contained in:
xueyan hu
2021-12-20 18:08:32 +08:00
parent 6cf1a1b556
commit aefd4cd367
18 changed files with 629 additions and 779 deletions

View File

@@ -19,22 +19,6 @@
"institutionAddr": "杭州市滨江区",
"lockscreen": "30"
},
"pacsservers": [
{
"ae": "HELLO",
"ip": "127.0.0.1",
"isdefault": "1",
"name": "test",
"port": "104"
},
{
"ae": "KISS",
"ip": "127.0.0.1",
"isdefault": "0",
"name": "nihao",
"port": "106"
}
],
"protocol": {
"default": "LSTAND",
"lists": "LSTAND;RSTAND;LONE;RONE"
@@ -52,24 +36,57 @@
"remember": "false",
"usercode": ""
},
"wklistservers":[
{
"worklist": {
"ae": "OFFIS",
"ip": "127.0.0.1",
"isdefault": "1",
"name": "wklist sever",
"name": "wklistserver",
"port": "101"
},
"pacs": {
"ae": "HELLO",
"ip": "127.0.0.2",
"name": "pacsserver22",
"port": "102"
},
"daq": {
"ae": "MOON",
"ip": "127.0.0.3",
"name": "daq",
"port": "103"
},
"recon": {
"ae": "TURTLE",
"ip": "127.0.0.4",
"name": "3D recon",
"port": "104"
},
{
"ae": "ACME1",
"ip": "127.0.0.1",
"isdefault": "0",
"name": "wklist1",
"port": "104"
}
],
"address": {
"device": "eth0",
"dhcp": "true",
"ip": "192.168.1.197",
"mask": "255.255.255.0",
"additional": [{
"ip": "192.168.2.197",
"netmask": "255.255.255.0"
}, {
"ip": "192.168.3.197",
"netmask": "255.255.255.0"
}]
},
"routing": {
"defaultgateway": "192.168.1.3",
"routingtable": [{
"destination": "192.168.62.0",
"gateway": "192.168.2.1",
"netmask": "255.255.255.0"
}, {
"destination": "192.168.63.0",
"gateway": "192.168.3.1",
"netmask": "255.255.255.0"
}]
},
"worklistfilter": {
"default": "Today",
"default": "Recent3Days",
"lists": "Today;Recent3Days;ThisWeek;ThisMonth"
}
}

View File

@@ -1,213 +0,0 @@
#pragma execution_character_set("utf-8")
#include "ipaddress.h"
#include <QLabel>
#include <QLineEdit>
#include <QBoxLayout>
#include <QRegExp>
#include <QValidator>
#include <QKeyEvent>
#include <QDebug>
IPAddress::IPAddress(QWidget* parent) : QWidget(parent)
{
bgColor = "#515151";
borderColor = "#3c3c3c";
borderRadius = 3;
//用于显示小圆点的标签,居中对齐
labDot1 = new QLabel(this);
labDot1->setAlignment(Qt::AlignCenter);
labDot1->setText(".");
labDot1->setFixedHeight(36);
labDot2 = new QLabel(this);
labDot2->setAlignment(Qt::AlignCenter);
labDot2->setText(".");
labDot2->setFixedHeight(36);
labDot3 = new QLabel(this);
labDot3->setAlignment(Qt::AlignCenter);
labDot3->setText(".");
labDot3->setFixedHeight(36);
//用于输入IP地址的文本框,居中对齐
txtIP1 = new QLineEdit(this);
txtIP1->setObjectName("txtIP1");
txtIP1->setAlignment(Qt::AlignCenter);
txtIP1->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
connect(txtIP1, SIGNAL(textChanged(QString)), this, SLOT(textChanged(QString)));
txtIP2 = new QLineEdit(this);
txtIP2->setObjectName("txtIP2");
txtIP2->setAlignment(Qt::AlignCenter);
txtIP2->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
connect(txtIP2, SIGNAL(textChanged(QString)), this, SLOT(textChanged(QString)));
txtIP3 = new QLineEdit(this);
txtIP3->setObjectName("txtIP3");
txtIP3->setAlignment(Qt::AlignCenter);
txtIP3->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
connect(txtIP3, SIGNAL(textChanged(QString)), this, SLOT(textChanged(QString)));
txtIP4 = new QLineEdit(this);
txtIP4->setObjectName("txtIP4");
txtIP4->setAlignment(Qt::AlignCenter);
txtIP4->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
connect(txtIP4, SIGNAL(textChanged(QString)), this, SLOT(textChanged(QString)));
//设置IP地址校验过滤
QString pattern = "(2[0-5]{2}|2[0-4][0-9]|1?[0-9]{1,2})";
//确切的说 QRegularExpression QRegularExpressionValidator 从5.0 5.1开始就有
#if (QT_VERSION >= QT_VERSION_CHECK(6,0,0))
QRegularExpression regExp(pattern);
QRegularExpressionValidator* validator = new QRegularExpressionValidator(regExp, this);
#else
QRegExp regExp(pattern);
QRegExpValidator* validator = new QRegExpValidator(regExp, this);
#endif
txtIP1->setValidator(validator);
txtIP2->setValidator(validator);
txtIP3->setValidator(validator);
txtIP4->setValidator(validator);
//绑定事件过滤器,识别键盘按下
txtIP1->installEventFilter(this);
txtIP2->installEventFilter(this);
txtIP3->installEventFilter(this);
txtIP4->installEventFilter(this);
QFrame* frame = new QFrame(this);
frame->setObjectName("frameIP");
QStringList qss;
qss.append(QString("QFrame#frameIP{border:1px solid %1;border-radius:%2px;}").arg(borderColor).arg(borderRadius));
qss.append(QString("QLabel{background-color:%1;}").arg(bgColor));
qss.append(QString("QLineEdit{background-color:%1;border:none;}").arg(bgColor));
qss.append(QString("QLineEdit#txtIP1{border-top-left-radius:%1px;border-bottom-left-radius:%1px;}").arg(borderRadius));
qss.append(QString("QLineEdit#txtIP4{border-top-right-radius:%1px;border-bottom-right-radius:%1px;}").arg(borderRadius));
frame->setStyleSheet(qss.join(""));
QVBoxLayout* verticalLayout = new QVBoxLayout(this);
verticalLayout->setContentsMargins(0, 0, 0, 0);
verticalLayout->setSpacing(0);
verticalLayout->addWidget(frame);
//将控件按照横向布局排列
QHBoxLayout* layout = new QHBoxLayout(frame);
layout->setContentsMargins(0, 0, 0, 0);
layout->setSpacing(0);
layout->addWidget(txtIP1);
layout->addWidget(labDot1);
layout->addWidget(txtIP2);
layout->addWidget(labDot2);
layout->addWidget(txtIP3);
layout->addWidget(labDot3);
layout->addWidget(txtIP4);
}
bool IPAddress::eventFilter(QObject* watched, QEvent* event)
{
if (event->type() == QEvent::KeyPress) {
QLineEdit* txt = (QLineEdit*)watched;
if (txt == txtIP1 || txt == txtIP2 || txt == txtIP3 || txt == txtIP4) {
QKeyEvent* key = (QKeyEvent*)event;
//如果当前按下了小数点则移动焦点到下一个输入框
if (key->text() == ".") {
this->focusNextChild();
}
//如果按下了退格键并且当前文本框已经没有了内容则焦点往前移
if (key->key() == Qt::Key_Backspace) {
if (txt->text().length() <= 1) {
this->focusNextPrevChild(false);
}
}
}
}
return QWidget::eventFilter(watched, event);
}
void IPAddress::textChanged(const QString& text)
{
int len = text.length();
int value = text.toInt();
//判断当前是否输入完成一个网段,是的话则自动移动到下一个输入框
if (len == 3) {
if (value >= 100 && value <= 255) {
this->focusNextChild();
}
}
//拼接成完整IP地址
ip = QString("%1.%2.%3.%4").arg(txtIP1->text()).arg(txtIP2->text()).arg(txtIP3->text()).arg(txtIP4->text());
}
QString IPAddress::getIP() const
{
return this->ip;
}
QSize IPAddress::sizeHint() const
{
return QSize(250, 20);
}
QSize IPAddress::minimumSizeHint() const
{
return QSize(30, 10);
}
void IPAddress::setIP(const QString& ip)
{
//先检测IP地址是否合法
QRegExp regExp("((2[0-4]\\d|25[0-5]|[01]?\\d\\d?)\\.){3}(2[0-4]\\d|25[0-5]|[01]?\\d\\d?)");
if (!regExp.exactMatch(ip)) {
return;
}
if (this->ip != ip) {
this->ip = ip;
//将IP地址填入各个网段
QStringList list = ip.split(".");
txtIP1->setText(list.at(0));
txtIP2->setText(list.at(1));
txtIP3->setText(list.at(2));
txtIP4->setText(list.at(3));
}
}
void IPAddress::clear()
{
txtIP1->clear();
txtIP2->clear();
txtIP3->clear();
txtIP4->clear();
txtIP1->setFocus();
}
void IPAddress::setBgColor(const QString& bgColor)
{
if (this->bgColor != bgColor) {
this->bgColor = bgColor;
}
}
void IPAddress::setBorderColor(const QString& borderColor)
{
if (this->borderColor != borderColor) {
this->borderColor = borderColor;
}
}
void IPAddress::setBorderRadius(int borderRadius)
{
if (this->borderRadius != borderRadius) {
this->borderRadius = borderRadius;
}
}

View File

@@ -1,52 +0,0 @@
#ifndef IPADDRESS_H
#define IPADDRESS_H
#include <QWidget>
#include <QString>
class QLabel;
class QLineEdit;
class IPAddress : public QWidget
{
Q_OBJECT
Q_PROPERTY(QString ip READ getIP WRITE setIP)
public:
explicit IPAddress(QWidget* parent = 0);
//获取IP地址
QString getIP() const;
QSize sizeHint() const;
QSize minimumSizeHint() const;
public Q_SLOTS:
void clear();
void setIP(const QString& ip);
//设置背景颜色
void setBgColor(const QString& bgColor);
//设置边框颜色
void setBorderColor(const QString& borderColor);
//设置边框圆角角度
void setBorderRadius(int borderRadius);
protected:
bool eventFilter(QObject* watched, QEvent* event);
private slots:
void textChanged(const QString& text);
private:
QLabel* labDot1; //第一个小圆点
QLabel* labDot2; //第二个小圆点
QLabel* labDot3; //第三个小圆点
QLineEdit* txtIP1; //IP地址网段输入框1
QLineEdit* txtIP2; //IP地址网段输入框2
QLineEdit* txtIP3; //IP地址网段输入框3
QLineEdit* txtIP4; //IP地址网段输入框4
QString ip; //IP地址
QString bgColor; //背景颜色
QString borderColor;//边框颜色
int borderRadius; //边框圆角角度
};
#endif // IPADDRESS_H

View File

@@ -2,6 +2,7 @@
#include "json/jsonobject.h"
#include <QProcess>
#include <QDebug>
#include <QRegularExpression>
//NetworkManager* NetworkManager::instance = nullptr;
@@ -72,7 +73,7 @@ bool NetworkManager::restart(QString& err_info)
connect(myProcess, SIGNAL(finished(int)), myProcess, SLOT(deleteLater()));
myProcess->start("/bin/sh", args);
if (!myProcess->waitForFinished()) {
if (!myProcess->waitForFinished(60000)) {
err_info.append("failed...\n");
return false;
}
@@ -120,6 +121,17 @@ bool NetworkManager::setDefaultIpAddr(const IpAddr& addr, QString& err_info)
}
bool NetworkManager::validate(const QString& addr)
{
QRegularExpression ipFormat("^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$");
QRegularExpressionMatch mre = ipFormat.match(addr);
if (mre.hasMatch())
{
return true;
}
return false;
}
QString NetworkManager::NewExp(QString ip, QString mask)
{
QStringList list = mask.split(".");

View File

@@ -29,6 +29,7 @@ public:
static bool setIpRouteList(const QList<QStringList>& list, QString& err_info);
static QString NewExp(QString ip, QString mask);
static bool validate(const QString& addr);
static bool testSetMode(QString& err_info);
static void testGetMode();

View File

@@ -326,7 +326,14 @@ QString JsonObject::interfaceName()
QString JsonObject::passWord()
{
return QString("klxts4047");
return tmp_psw;
}
void JsonObject::setPassword(const QString& pwd)
{
//if (!loadcfg())
// return;
tmp_psw = pwd;
}
void JsonObject::setInterfaceName(const QString& name)
{

View File

@@ -69,7 +69,9 @@ public:
void setServer(ServerType type, const host& list);
//for network manager
QString passWord();
void setPassword(const QString& pwd);
QString interfaceName();
void setInterfaceName(const QString& name);
@@ -103,11 +105,11 @@ private:
JsonObject();
~JsonObject();
void* json_root = nullptr;
bool m_bLoaded = false;
int counter;
QString tmp_psw;
};
#endif // JSONOBJECT_H

View File

@@ -0,0 +1,37 @@
//
// Created by Krad on 2021/11/11.
//
#include <QFormLayout>
#include <QLabel>
#include <QtWidgets/QLineEdit>
#include "getadminpsw.h"
#include "device/networkmanager.h"
GetAdminPsw::GetAdminPsw(QWidget* parent, Qt::WindowFlags f) : GUIFormBaseDialog(parent, f) {
setWindowModality(Qt::WindowModal);
QFormLayout* form = new QFormLayout(formWidget);
QString value1 = QString("Admin Password");
_psw = new QLineEdit(this);
_psw->setEchoMode(QLineEdit::Password);
form->addRow(value1, _psw);
lbl_error = new QLabel(this);
lbl_error->setObjectName("warn");
form->addRow("", lbl_error);
}
GetAdminPsw::~GetAdminPsw() {
}
QString GetAdminPsw::getPsw()const
{
return _psw->text();
}
bool GetAdminPsw::updateReferenceData() {
return true;
}

25
src/network/getadminpsw.h Normal file
View File

@@ -0,0 +1,25 @@
//
// Created by Krad on 2021/11/11.
//
#ifndef GUI_GETADMINPSW_H
#define GUI_GETADMINPSW_H
#include "GUIFormBaseDialog.h"
class QLineEdit;
class QLabel;
class GetAdminPsw :public GUIFormBaseDialog {
Q_OBJECT
public:
explicit GetAdminPsw(QWidget* parent = nullptr, Qt::WindowFlags f = Qt::WindowFlags());
~GetAdminPsw();
QString getPsw()const;
protected:
bool updateReferenceData();
private:
QLineEdit* _psw = nullptr;
QLabel* lbl_error = nullptr;
};
#endif //GUI_GETADMINPSW_H

View File

@@ -6,6 +6,8 @@
#include <QLabel>
#include <QtWidgets/QLineEdit>
#include "getipdialog.h"
#include "device/networkmanager.h"
GetIPDialog::GetIPDialog(QWidget* parent, Qt::WindowFlags f) : GUIFormBaseDialog(parent, f) {
setWindowModality(Qt::WindowModal);
@@ -17,6 +19,9 @@ GetIPDialog::GetIPDialog(QWidget* parent, Qt::WindowFlags f) : GUIFormBaseDialog
_mask = new QLineEdit(this);
form->addRow(value2, _mask);
lbl_error = new QLabel(this);
lbl_error->setObjectName("warn");
form->addRow("", lbl_error);
}
@@ -39,5 +44,14 @@ void GetIPDialog::setList(const QStringList& list)
}
bool GetIPDialog::updateReferenceData() {
if (!NetworkManager::validate(_ip->text())) {
lbl_error->setText(tr("Wrong IP!"));
return false;
}
if (!NetworkManager::validate(_mask->text())) {
lbl_error->setText(tr("Wrong Netmask!"));
return false;
}
return true;
}

View File

@@ -20,6 +20,7 @@ protected:
private:
QLineEdit* _ip = nullptr;
QLineEdit* _mask = nullptr;
QLabel* lbl_error = nullptr;
};

View File

@@ -6,6 +6,8 @@
#include <QLabel>
#include <QtWidgets/QLineEdit>
#include "getroutedialog.h"
#include "device/networkmanager.h"
GetRouteDialog::GetRouteDialog(QWidget* parent, Qt::WindowFlags f) : GUIFormBaseDialog(parent, f) {
setWindowModality(Qt::WindowModal);
@@ -16,10 +18,13 @@ GetRouteDialog::GetRouteDialog(QWidget* parent, Qt::WindowFlags f) : GUIFormBase
QString value2 = QString("Netmask");
_mask = new QLineEdit(this);
form->addRow(value2, _mask);
QString value3 = QString("Destination");
QString value3 = QString("Gateway");
_gw = new QLineEdit(this);
form->addRow(value3, _gw);
lbl_error = new QLabel(this);
lbl_error->setObjectName("warn");
form->addRow("", lbl_error);
}
GetRouteDialog::~GetRouteDialog() {
@@ -42,5 +47,18 @@ void GetRouteDialog::setList(const QStringList& list)
}
bool GetRouteDialog::updateReferenceData() {
if (!NetworkManager::validate(_des->text())) {
lbl_error->setText(tr("Wrong Destination!"));
return false;
}
if (!NetworkManager::validate(_des->text())) {
lbl_error->setText(tr("Wrong Netmask!"));
return false;
}
if (!NetworkManager::validate(_des->text())) {
lbl_error->setText(tr("Wrong Gateway!"));
return false;
}
return true;
}

View File

@@ -21,6 +21,7 @@ private:
QLineEdit* _des = nullptr;
QLineEdit* _mask = nullptr;
QLineEdit* _gw = nullptr;
QLabel* lbl_error = nullptr;
};

View File

@@ -64,12 +64,12 @@ networkCfgDialog::networkCfgDialog(QWidget* parent) :
connect(ui->btn_addr_add, &QPushButton::clicked, [=]()
{
GetIPDialog* dialog = new GetIPDialog(this);
if (dialog->exec() == QDialog::Accepted)
//GetIPDialog* dialog = new GetIPDialog(this);
GetIPDialog dialog(this);
if (dialog.exec() == QDialog::Accepted)
{
model_addr->addRow(dialog->getList());
ui->tbl_addr->selectRow(0);
model_addr->addRow(dialog.getList());
//ui->tbl_addr->selectRow(0);
}
});
connect(ui->btn_addr_edit, &QPushButton::clicked, [=]()
@@ -82,12 +82,13 @@ networkCfgDialog::networkCfgDialog(QWidget* parent) :
if (!index.empty()) {
const QStringList ipdata = model_addr->rowData(index.at(0));
GetIPDialog* dialog = new GetIPDialog(this);
dialog->setList(ipdata);
if (dialog->exec() == QDialog::Accepted)
//GetIPDialog* dialog = new GetIPDialog(this);
GetIPDialog dialog(this);
dialog.setList(ipdata);
if (dialog.exec() == QDialog::Accepted)
{
model_addr->removeRow(index.at(0).row());
model_addr->insertRow(index.at(0).row(), dialog->getList());
model_addr->insertRow(index.at(0).row(), dialog.getList());
}
}
@@ -110,12 +111,13 @@ networkCfgDialog::networkCfgDialog(QWidget* parent) :
connect(ui->btn_route_add, &QPushButton::clicked, [=]()
{
GetRouteDialog* dialog = new GetRouteDialog(this);
if (dialog->exec() == QDialog::Accepted)
//GetRouteDialog* dialog = new GetRouteDialog(this);
GetRouteDialog dialog(this);
if (dialog.exec() == QDialog::Accepted)
{
model_route->addRow(dialog->getList());
model_route->addRow(dialog.getList());
}
});
connect(ui->btn_route_edit, &QPushButton::clicked, [=]()
{
@@ -127,12 +129,13 @@ networkCfgDialog::networkCfgDialog(QWidget* parent) :
if (!index.empty()) {
const QStringList ipdata = model_route->rowData(index.at(0));
GetRouteDialog* dialog = new GetRouteDialog(this);
dialog->setList(ipdata);
if (dialog->exec() == QDialog::Accepted)
//GetRouteDialog* dialog = new GetRouteDialog(this);
GetRouteDialog dialog(this);
dialog.setList(ipdata);
if (dialog.exec() == QDialog::Accepted)
{
model_route->removeRow(index.at(0).row());
model_route->insertRow(index.at(0).row(), dialog->getList());
model_route->insertRow(index.at(0).row(), dialog.getList());
}
}
@@ -147,7 +150,6 @@ networkCfgDialog::networkCfgDialog(QWidget* parent) :
QModelIndexList index = select->selectedRows();
if (!index.empty()) {
model_route->removeRow(index.at(0).row());
}
}
});

View File

@@ -40,6 +40,7 @@ private:
Ui::networkCfgDialog* ui;
QThread* myThread = nullptr;
QString err;
QString admin_psw;
};
#endif // NetworkCfgDialog_H

View File

@@ -1,4 +1,5 @@
#include "systemsettingform.h"
#include "ui_systemsettingform.h"
#include <QPushButton>
#include <QVBoxLayout>
@@ -11,409 +12,64 @@
#include "json/jsonobject.h"
#include "SelectDialog.h"
#include "components/imageswitch.h"
#include "components/ipaddress.h"
#include "network/networkcfgdialog.h"
systemSettingForm::systemSettingForm(QWidget* parent) : QWidget(parent)
#include "network/getadminpsw.h"
systemSettingForm::systemSettingForm(QWidget* parent) :
QWidget(parent),
ui(new Ui::systemSettingForm)
{
ui->setupUi(this);
QVBoxLayout* verticalLayout;
QWidget* block1;
QHBoxLayout* horizontalLayout;
QWidget* block10;
QGridLayout* gridLayout_2;
QSpacerItem* horizontalSpacer_7;
QLabel* lbl_verify;
QSpacerItem* horizontalSpacer_8;
QPushButton* btnFlt;
QPushButton* btnPro;
QSpacerItem* horizontalSpacer_2;
QLabel* lbl_filter;
QLabel* lbl_protocal;
ImageSwitch* swt_verify;
QSpacerItem* verticalSpacer_2;
QLabel* label_2;
QSpacerItem* horizontalSpacer_6;
QFrame* line;
QWidget* block2;
QGridLayout* gridLayout;
QLabel* lbl_local_gate;
QLabel* lbl_Recon;
QLabel* lbl_local_mask;
//IPAddress* local_Mask;
QLabel* lbl_Name;
QLabel* lbl_PACS;
//IPAddress* local_IP;
QLabel* lbl_list;
QLabel* lbl_AE;
QLabel* lbl_local_IP;
QLabel* lbl_IP;
QLabel* lbl_Local;
QLabel* label;
QLabel* lbl_Port;
QLabel* lbl_DAQ;
//IPAddress* local_Gate;
QWidget* widget;
QHBoxLayout* horizontalLayout_2;
QSpacerItem* horizontalSpacer;
QToolButton* btnCancel;
QToolButton* btnAccept;
QSpacerItem* verticalSpacer;
QWidget* centralWidget = this;
verticalLayout = new QVBoxLayout(centralWidget);
verticalLayout->setSpacing(6);
verticalLayout->setContentsMargins(11, 11, 11, 11);
verticalLayout->setObjectName(QString::fromUtf8("verticalLayout"));
block1 = new QWidget(centralWidget);
block1->setObjectName(QString::fromUtf8("block1"));
horizontalLayout = new QHBoxLayout(block1);
horizontalLayout->setSpacing(6);
horizontalLayout->setContentsMargins(11, 11, 11, 11);
horizontalLayout->setObjectName(QString::fromUtf8("horizontalLayout"));
block10 = new QWidget(block1);
block10->setObjectName(QString::fromUtf8("block10"));
gridLayout_2 = new QGridLayout(block10);
gridLayout_2->setSpacing(6);
gridLayout_2->setContentsMargins(11, 11, 11, 11);
gridLayout_2->setObjectName(QString::fromUtf8("gridLayout_2"));
horizontalSpacer_7 = new QSpacerItem(40, 20, QSizePolicy::Fixed, QSizePolicy::Minimum);
gridLayout_2->addItem(horizontalSpacer_7, 0, 1, 1, 1);
lbl_verify = new QLabel(block10);
lbl_verify->setObjectName(QString::fromUtf8("lbl_verify"));
lbl_verify->setMinimumSize(QSize(100, 0));
gridLayout_2->addWidget(lbl_verify, 3, 0, 1, 1);
horizontalSpacer_8 = new QSpacerItem(40, 20, QSizePolicy::Fixed, QSizePolicy::Minimum);
gridLayout_2->addItem(horizontalSpacer_8, 1, 1, 1, 1);
btnFlt = new QPushButton(block10);
btnFlt->setObjectName(QString::fromUtf8("btnFlt"));
btnFlt->setMinimumSize(QSize(100, 0));
gridLayout_2->addWidget(btnFlt, 1, 2, 1, 1);
btnPro = new QPushButton(block10);
btnPro->setObjectName(QString::fromUtf8("btnPro"));
btnPro->setMinimumSize(QSize(100, 0));
gridLayout_2->addWidget(btnPro, 0, 2, 1, 1);
horizontalSpacer_2 = new QSpacerItem(40, 20, QSizePolicy::Fixed, QSizePolicy::Minimum);
gridLayout_2->addItem(horizontalSpacer_2, 3, 1, 1, 1);
lbl_filter = new QLabel(block10);
lbl_filter->setObjectName(QString::fromUtf8("lbl_filter"));
gridLayout_2->addWidget(lbl_filter, 1, 0, 1, 1);
lbl_protocal = new QLabel(block10);
lbl_protocal->setObjectName(QString::fromUtf8("lbl_protocal"));
gridLayout_2->addWidget(lbl_protocal, 0, 0, 1, 1);
swt_verify = new ImageSwitch(block10);
swt_verify->setObjectName(QString::fromUtf8("swt_verify"));
gridLayout_2->addWidget(swt_verify, 3, 2, 1, 1);
verticalSpacer_2 = new QSpacerItem(20, 40, QSizePolicy::Minimum, QSizePolicy::Expanding);
gridLayout_2->addItem(verticalSpacer_2, 2, 2, 1, 1);
label_2 = new QLabel(block10);
label_2->setObjectName(QString::fromUtf8("label_2"));
gridLayout_2->addWidget(label_2, 2, 0, 1, 1);
horizontalLayout->addWidget(block10);
horizontalSpacer_6 = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout->addItem(horizontalSpacer_6);
verticalLayout->addWidget(block1);
line = new QFrame(centralWidget);
line->setObjectName(QString::fromUtf8("line"));
line->setFrameShape(QFrame::HLine);
line->setFrameShadow(QFrame::Sunken);
verticalLayout->addWidget(line);
block2 = new QWidget(centralWidget);
block2->setObjectName(QString::fromUtf8("block2"));
gridLayout = new QGridLayout(block2);
gridLayout->setSpacing(6);
gridLayout->setContentsMargins(11, 11, 11, 11);
gridLayout->setObjectName(QString::fromUtf8("gridLayout"));
gridLayout->setHorizontalSpacing(25);
gridLayout->setVerticalSpacing(10);
wl_Port = new QLineEdit(block2);
wl_Port->setObjectName(QString::fromUtf8("wl_Port"));
gridLayout->addWidget(wl_Port, 2, 4, 1, 1);
daq_AE = new QLineEdit(block2);
daq_AE->setObjectName(QString::fromUtf8("daq_AE"));
gridLayout->addWidget(daq_AE, 4, 2, 1, 1);
lbl_local_gate = new QLabel(block2);
lbl_local_gate->setObjectName(QString::fromUtf8("lbl_local_gate"));
gridLayout->addWidget(lbl_local_gate, 7, 3, 1, 1);
lbl_Recon = new QLabel(block2);
lbl_Recon->setObjectName(QString::fromUtf8("lbl_Recon"));
gridLayout->addWidget(lbl_Recon, 5, 0, 1, 1);
daq_Port = new QLineEdit(block2);
daq_Port->setObjectName(QString::fromUtf8("daq_Port"));
gridLayout->addWidget(daq_Port, 4, 4, 1, 1);
recon_Port = new QLineEdit(block2);
recon_Port->setObjectName(QString::fromUtf8("recon_Port"));
gridLayout->addWidget(recon_Port, 5, 4, 1, 1);
lbl_local_mask = new QLabel(block2);
lbl_local_mask->setObjectName(QString::fromUtf8("lbl_local_mask"));
gridLayout->addWidget(lbl_local_mask, 7, 2, 1, 1);
local_Mask = new IPAddress(block2);
local_Mask->setObjectName(QString::fromUtf8("local_Mask"));
gridLayout->addWidget(local_Mask, 8, 2, 1, 1);
lbl_Name = new QLabel(block2);
lbl_Name->setObjectName(QString::fromUtf8("lbl_Name"));
gridLayout->addWidget(lbl_Name, 1, 1, 1, 1);
lbl_PACS = new QLabel(block2);
lbl_PACS->setObjectName(QString::fromUtf8("lbl_PACS"));
gridLayout->addWidget(lbl_PACS, 3, 0, 1, 1);
local_IP = new IPAddress(block2);
local_IP->setObjectName(QString::fromUtf8("local_IP"));
gridLayout->addWidget(local_IP, 8, 1, 1, 1);
recon_Name = new QLineEdit(block2);
recon_Name->setObjectName(QString::fromUtf8("recon_Name"));
gridLayout->addWidget(recon_Name, 5, 1, 1, 1);
lbl_list = new QLabel(block2);
lbl_list->setObjectName(QString::fromUtf8("lbl_list"));
lbl_list->setMinimumSize(QSize(100, 0));
gridLayout->addWidget(lbl_list, 2, 0, 1, 1);
pacs_Port = new QLineEdit(block2);
pacs_Port->setObjectName(QString::fromUtf8("pacs_Port"));
gridLayout->addWidget(pacs_Port, 3, 4, 1, 1);
pacs_Name = new QLineEdit(block2);
pacs_Name->setObjectName(QString::fromUtf8("pacs_Name"));
gridLayout->addWidget(pacs_Name, 3, 1, 1, 1);
pacs_IP = new QLineEdit(block2);
pacs_IP->setObjectName(QString::fromUtf8("pacs_IP"));
gridLayout->addWidget(pacs_IP, 3, 3, 1, 1);
lbl_AE = new QLabel(block2);
lbl_AE->setObjectName(QString::fromUtf8("lbl_AE"));
gridLayout->addWidget(lbl_AE, 1, 2, 1, 1);
lbl_local_IP = new QLabel(block2);
lbl_local_IP->setObjectName(QString::fromUtf8("lbl_local_IP"));
gridLayout->addWidget(lbl_local_IP, 7, 1, 1, 1);
daq_IP = new QLineEdit(block2);
daq_IP->setObjectName(QString::fromUtf8("daq_IP"));
gridLayout->addWidget(daq_IP, 4, 3, 1, 1);
wl_Name = new QLineEdit(block2);
wl_Name->setObjectName(QString::fromUtf8("wl_Name"));
gridLayout->addWidget(wl_Name, 2, 1, 1, 1);
lbl_IP = new QLabel(block2);
lbl_IP->setObjectName(QString::fromUtf8("lbl_IP"));
gridLayout->addWidget(lbl_IP, 1, 3, 1, 1);
pacs_AE = new QLineEdit(block2);
pacs_AE->setObjectName(QString::fromUtf8("pacs_AE"));
gridLayout->addWidget(pacs_AE, 3, 2, 1, 1);
wl_AE = new QLineEdit(block2);
wl_AE->setObjectName(QString::fromUtf8("wl_AE"));
gridLayout->addWidget(wl_AE, 2, 2, 1, 1);
daq_Name = new QLineEdit(block2);
daq_Name->setObjectName(QString::fromUtf8("daq_Name"));
gridLayout->addWidget(daq_Name, 4, 1, 1, 1);
lbl_Local = new QLabel(block2);
lbl_Local->setObjectName(QString::fromUtf8("lbl_Local"));
gridLayout->addWidget(lbl_Local, 8, 0, 1, 1);
label = new QLabel(block2);
label->setObjectName(QString::fromUtf8("label"));
gridLayout->addWidget(label, 6, 0, 1, 1);
recon_IP = new QLineEdit(block2);
recon_IP->setObjectName(QString::fromUtf8("recon_IP"));
gridLayout->addWidget(recon_IP, 5, 3, 1, 1);
lbl_Port = new QLabel(block2);
lbl_Port->setObjectName(QString::fromUtf8("lbl_Port"));
gridLayout->addWidget(lbl_Port, 1, 4, 1, 1);
wl_IP = new QLineEdit(block2);
wl_IP->setObjectName(QString::fromUtf8("wl_IP"));
gridLayout->addWidget(wl_IP, 2, 3, 1, 1);
lbl_DAQ = new QLabel(block2);
lbl_DAQ->setObjectName(QString::fromUtf8("lbl_DAQ"));
gridLayout->addWidget(lbl_DAQ, 4, 0, 1, 1);
recon_AE = new QLineEdit(block2);
recon_AE->setObjectName(QString::fromUtf8("recon_AE"));
gridLayout->addWidget(recon_AE, 5, 2, 1, 1);
local_Gate = new IPAddress(block2);
local_Gate->setObjectName(QString::fromUtf8("local_Gate"));
gridLayout->addWidget(local_Gate, 8, 3, 1, 1);
verticalLayout->addWidget(block2);
widget = new QWidget(centralWidget);
widget->setObjectName(QString::fromUtf8("widget"));
horizontalLayout_2 = new QHBoxLayout(widget);
horizontalLayout_2->setSpacing(6);
horizontalLayout_2->setContentsMargins(11, 11, 11, 11);
horizontalLayout_2->setObjectName(QString::fromUtf8("horizontalLayout_2"));
horizontalSpacer = new QSpacerItem(40, 20, QSizePolicy::Expanding, QSizePolicy::Minimum);
horizontalLayout_2->addItem(horizontalSpacer);
btnCancel = new QToolButton(widget);
btnCancel->setObjectName(QString::fromUtf8("btnCancel"));
horizontalLayout_2->addWidget(btnCancel);
btnAccept = new QToolButton(widget);
btnAccept->setObjectName(QString::fromUtf8("btnAccept"));
horizontalLayout_2->addWidget(btnAccept);
verticalLayout->addWidget(widget);
verticalSpacer = new QSpacerItem(20, 278, QSizePolicy::Minimum, QSizePolicy::Expanding);
verticalLayout->addItem(verticalSpacer);
/************************************************************************/
//text init
lbl_list->setText(tr("Worklist"));
lbl_protocal->setText(tr("Protocal"));
lbl_filter->setText(tr("Worklist Filter"));
lbl_PACS->setText(tr("PACS"));
lbl_AE->setText(tr("AE"));
lbl_Port->setText(tr("Port"));
lbl_Name->setText(tr("Name"));
lbl_DAQ->setText(tr("DAQ"));
lbl_IP->setText(tr("IP"));
lbl_Local->setText(tr("Local"));
lbl_Recon->setText(tr("3D Recon"));
lbl_verify->setText(tr("Auto Verify"));
lbl_Local->setText(tr("Local"));
lbl_local_IP->setText(tr("IP"));
lbl_local_gate->setText(tr("Default Gateway"));
lbl_local_mask->setText(tr("Subnet Mask"));
//style init
btnCancel->setToolButtonStyle(Qt::ToolButtonIconOnly);
btnCancel->setIcon(QIcon(":/icons/close_circle.png"));
btnCancel->setIconSize(QSize(50, 50));
btnAccept->setToolButtonStyle(Qt::ToolButtonIconOnly);
btnAccept->setIcon(QIcon(":/icons/selected.png"));
btnAccept->setIconSize(QSize(50, 50));
swt_verify->setChecked(true);
swt_verify->setButtonStyle(ImageSwitch::ButtonStyle_1);
ui->btnCancel->setToolButtonStyle(Qt::ToolButtonIconOnly);
ui->btnCancel->setIcon(QIcon(":/icons/close_circle.png"));
ui->btnCancel->setIconSize(QSize(50, 50));
ui->btnAccept->setToolButtonStyle(Qt::ToolButtonIconOnly);
ui->btnAccept->setIcon(QIcon(":/icons/selected.png"));
ui->btnAccept->setIconSize(QSize(50, 50));
ui->swt_verify->setChecked(true);
ui->swt_verify->setButtonStyle(ImageSwitch::ButtonStyle_1);
btnFlt->setFixedWidth(200);
btnPro->setFixedWidth(200);
lbl_protocal->setFixedWidth(100);
ui->btnFlt->setFixedWidth(200);
ui->btnPro->setFixedWidth(200);
ui->lbl_protocal->setFixedWidth(100);
//lbl_filter
lbl_list->setFixedWidth(100);
lbl_verify->setFixedWidth(100);
lbl_Local->setFixedHeight(50);
ui->lbl_list->setFixedWidth(100);
ui->lbl_verify->setFixedWidth(100);
//data init
btnPro->setText(JsonObject::Instance()->defaultProtocal());
btnFlt->setText(JsonObject::Instance()->defaultFilter());
ui->btnPro->setText(JsonObject::Instance()->defaultProtocal());
ui->btnFlt->setText(JsonObject::Instance()->defaultFilter());
loadServersInfo();
//connection
connect(swt_verify, &ImageSwitch::clicked, [=]() {
if (swt_verify->getChecked())
connect(ui->swt_verify, &ImageSwitch::clicked, [=]() {
if (ui->swt_verify->getChecked())
{
//autoDHCP();
////
}
});
connect(ui->btn_network, &QToolButton::clicked, [=]() {
GetAdminPsw dialog(this);
if (dialog.exec() == QDialog::Accepted)
{
JsonObject::Instance()->setPassword(dialog.getPsw());
networkCfgDialog dia(this);
dia.setWindowModality(Qt::WindowModal);
dia.exec();
}
});
connect(btnCancel, &QToolButton::clicked, [=]() {
connect(ui->btnCancel, &QToolButton::clicked, [=]() {
loadServersInfo();
});
connect(btnAccept, &QToolButton::clicked, [=]() {
connect(ui->btnAccept, &QToolButton::clicked, [=]() {
saveServersInfo();
});
connect(btnPro, &QPushButton::clicked, [=]() {
connect(ui->btnPro, &QPushButton::clicked, [=]() {
if (!sd_protocal) {
sd_protocal = new SelectDialog(this);
sd_protocal->setWindowModality(Qt::WindowModal);
@@ -425,11 +81,11 @@ systemSettingForm::systemSettingForm(QWidget* parent) : QWidget(parent)
QString pro = sd_protocal->getSelectedValue();
//take effect
JsonObject::Instance()->setDefaultProtocal(pro);
btnPro->setText(JsonObject::Instance()->defaultProtocal());
ui->btnPro->setText(JsonObject::Instance()->defaultProtocal());
}
});
connect(btnFlt, &QPushButton::clicked, [=]() {
connect(ui->btnFlt, &QPushButton::clicked, [=]() {
if (!sd_filter) {
sd_filter = new SelectDialog(this);
sd_filter->setWindowModality(Qt::WindowModal);
@@ -441,38 +97,43 @@ systemSettingForm::systemSettingForm(QWidget* parent) : QWidget(parent)
QString flt = sd_filter->getSelectedValue();
//take effect
JsonObject::Instance()->setDefaultFilter(flt);
btnFlt->setText(JsonObject::Instance()->defaultFilter());
ui->btnFlt->setText(JsonObject::Instance()->defaultFilter());
}
});
}
systemSettingForm::~systemSettingForm()
{
delete ui;
}
void systemSettingForm::loadServersInfo()
{
host h;
h = JsonObject::Instance()->getServer(JsonObject::RECON);
recon_AE->setText(h.ae);
recon_IP->setText(h.ip);
recon_Name->setText(h.name);
recon_Port->setText(h.port);
ui->recon_AE->setText(h.ae);
ui->recon_IP->setText(h.ip);
ui->recon_Name->setText(h.name);
ui->recon_Port->setText(h.port);
h = JsonObject::Instance()->getServer(JsonObject::PACS);
pacs_AE->setText(h.ae);
pacs_IP->setText(h.ip);
pacs_Name->setText(h.name);
pacs_Port->setText(h.port);
ui->pacs_AE->setText(h.ae);
ui->pacs_IP->setText(h.ip);
ui->pacs_Name->setText(h.name);
ui->pacs_Port->setText(h.port);
h = JsonObject::Instance()->getServer(JsonObject::DAQ);
daq_AE->setText(h.ae);
daq_IP->setText(h.ip);
daq_Name->setText(h.name);
daq_Port->setText(h.port);
ui->daq_AE->setText(h.ae);
ui->daq_IP->setText(h.ip);
ui->daq_Name->setText(h.name);
ui->daq_Port->setText(h.port);
h = JsonObject::Instance()->getServer(JsonObject::WORKLIST);
wl_AE->setText(h.ae);
wl_IP->setText(h.ip);
wl_Name->setText(h.name);
wl_Port->setText(h.port);
ui->wl_AE->setText(h.ae);
ui->wl_IP->setText(h.ip);
ui->wl_Name->setText(h.name);
ui->wl_Port->setText(h.port);
//localhost lhost = JsonObject::Instance()->getLocalHost();
//local_IP->setIP(lhost.ip);
@@ -489,29 +150,29 @@ void systemSettingForm::saveServersInfo()
{
host h;
h.ae = recon_AE->text();
h.ip = recon_IP->text();
h.name = recon_Name->text();
h.port = recon_Port->text();
h.ae = ui->recon_AE->text();
h.ip = ui->recon_IP->text();
h.name = ui->recon_Name->text();
h.port = ui->recon_Port->text();
JsonObject::Instance()->setServer(JsonObject::RECON, h);
h.ae = pacs_AE->text();
h.ip = pacs_IP->text();
h.name = pacs_Name->text();
h.port = pacs_Port->text();
h.ae = ui->pacs_AE->text();
h.ip = ui->pacs_IP->text();
h.name = ui->pacs_Name->text();
h.port = ui->pacs_Port->text();
JsonObject::Instance()->setServer(JsonObject::PACS, h);
h.ip = wl_IP->text();
h.ae = wl_AE->text();
h.name = wl_Name->text();
h.port = wl_Port->text();
h.ip = ui->wl_IP->text();
h.ae = ui->wl_AE->text();
h.name = ui->wl_Name->text();
h.port = ui->wl_Port->text();
JsonObject::Instance()->setServer(JsonObject::WORKLIST, h);
h.ip = daq_IP->text();
h.ae = daq_AE->text();
h.name = daq_Name->text();
h.port = daq_Port->text();
h.ip = ui->daq_IP->text();
h.ae = ui->daq_AE->text();
h.name = ui->daq_Name->text();
h.port = ui->daq_Port->text();
JsonObject::Instance()->setServer(JsonObject::DAQ, h);

View File

@@ -7,49 +7,26 @@ class QVBoxLayout;
class SelectDialog;
class QLineEdit;
class ImageSwitch;
class IPAddress;
class localhost;
namespace Ui {
class systemSettingForm;
}
class systemSettingForm : public QWidget
{
Q_OBJECT
public:
explicit systemSettingForm(QWidget *parent = nullptr);
signals:
public slots:
~systemSettingForm();
private:
//QVBoxLayout* layout = nullptr;
Ui::systemSettingForm *ui;
SelectDialog* sd_protocal = nullptr;
SelectDialog* sd_filter = nullptr;
void loadServersInfo();
void saveServersInfo();
QLineEdit* pacs_Name;
QLineEdit* recon_IP;
QLineEdit* daq_AE;
QLineEdit* recon_Port;
QLineEdit* local_Port;
QLineEdit* daq_Port;
QLineEdit* wl_Name;
QLineEdit* pacs_AE;
QLineEdit* recon_AE;
QLineEdit* daq_IP;
QLineEdit* wl_Port;
QLineEdit* wl_IP;
QLineEdit* pacs_Port;
QLineEdit* recon_Name;
QLineEdit* pacs_IP;
QLineEdit* wl_AE;
QLineEdit* daq_Name;
IPAddress* local_IP;
IPAddress* local_Mask;
IPAddress* local_Gate;
ImageSwitch* swt_verify;
};
#endif // SYSTEMSETTINGFORM_H

339
src/systemsettingform.ui Normal file
View File

@@ -0,0 +1,339 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>systemSettingForm</class>
<widget class="QWidget" name="systemSettingForm">
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>527</width>
<height>612</height>
</rect>
</property>
<property name="windowTitle">
<string>Form</string>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QWidget" name="block1" native="true">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QWidget" name="block10" native="true">
<layout class="QGridLayout" name="gridLayout_2">
<item row="2" column="1">
<spacer name="horizontalSpacer_2">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label">
<property name="text">
<string>Network Setting</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="btnFlt">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="lbl_protocal">
<property name="text">
<string>Protocal</string>
</property>
</widget>
</item>
<item row="0" column="1">
<spacer name="horizontalSpacer_7">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="0" column="2">
<widget class="QPushButton" name="btnPro">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>PushButton</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="lbl_filter">
<property name="text">
<string>Worklist Filter</string>
</property>
</widget>
</item>
<item row="1" column="1">
<spacer name="horizontalSpacer_8">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="2">
<widget class="ImageSwitch" name="swt_verify" native="true"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="lbl_verify">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Auto Verify</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QPushButton" name="btn_network">
<property name="text">
<string>Configure</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="horizontalSpacer_6">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="block2" native="true">
<layout class="QGridLayout" name="gridLayout">
<property name="horizontalSpacing">
<number>25</number>
</property>
<property name="verticalSpacing">
<number>10</number>
</property>
<item row="5" column="2">
<widget class="QLineEdit" name="recon_AE"/>
</item>
<item row="4" column="2">
<widget class="QLineEdit" name="daq_AE"/>
</item>
<item row="4" column="3">
<widget class="QLineEdit" name="daq_IP"/>
</item>
<item row="2" column="3">
<widget class="QLineEdit" name="wl_IP"/>
</item>
<item row="5" column="1">
<widget class="QLineEdit" name="recon_Name"/>
</item>
<item row="4" column="1">
<widget class="QLineEdit" name="daq_Name"/>
</item>
<item row="3" column="4">
<widget class="QLineEdit" name="pacs_Port"/>
</item>
<item row="1" column="3">
<widget class="QLabel" name="lbl_IP">
<property name="text">
<string>IP</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QLineEdit" name="wl_Name"/>
</item>
<item row="3" column="1">
<widget class="QLineEdit" name="pacs_Name"/>
</item>
<item row="2" column="2">
<widget class="QLineEdit" name="wl_AE"/>
</item>
<item row="1" column="1">
<widget class="QLabel" name="lbl_Name">
<property name="text">
<string>Name</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="lbl_AE">
<property name="text">
<string>AE</string>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QLineEdit" name="pacs_AE"/>
</item>
<item row="3" column="0">
<widget class="QLabel" name="lbl_PACS">
<property name="text">
<string>PACS</string>
</property>
</widget>
</item>
<item row="4" column="4">
<widget class="QLineEdit" name="daq_Port"/>
</item>
<item row="5" column="0">
<widget class="QLabel" name="lbl_Recon">
<property name="text">
<string>3D Recon</string>
</property>
</widget>
</item>
<item row="5" column="3">
<widget class="QLineEdit" name="recon_IP"/>
</item>
<item row="2" column="0">
<widget class="QLabel" name="lbl_list">
<property name="minimumSize">
<size>
<width>100</width>
<height>0</height>
</size>
</property>
<property name="text">
<string>Worklist</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="lbl_DAQ">
<property name="text">
<string>DAQ</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QLineEdit" name="pacs_IP"/>
</item>
<item row="2" column="4">
<widget class="QLineEdit" name="wl_Port"/>
</item>
<item row="1" column="4">
<widget class="QLabel" name="lbl_Port">
<property name="text">
<string>Port</string>
</property>
</widget>
</item>
<item row="5" column="4">
<widget class="QLineEdit" name="recon_Port"/>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QWidget" name="widget" native="true">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>40</width>
<height>20</height>
</size>
</property>
</spacer>
</item>
<item>
<widget class="QToolButton" name="btnCancel">
<property name="text">
<string>Cancel</string>
</property>
</widget>
</item>
<item>
<widget class="QToolButton" name="btnAccept">
<property name="text">
<string>Accept</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>224</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
<customwidgets>
<customwidget>
<class>ImageSwitch</class>
<extends>QWidget</extends>
<header location="global">components/imageswitch.h</header>
</customwidget>
</customwidgets>
<resources/>
<connections/>
</ui>