From 6df9194946462ffa8107fd0ab8cd21984db06799 Mon Sep 17 00:00:00 2001 From: xueyan hu <576627988@qq.com> Date: Tue, 28 Dec 2021 16:18:54 +0800 Subject: [PATCH] translation improvement 3 --- cfgs/usct-product.json | 9 +- src/device/networkmanager.cpp | 18 ++- src/device/networkmanager.h | 4 +- src/dicomcfgdialog.ui | 228 +++++++++++++++++++++++++++ src/icons/dicomsettings.png | Bin 0 -> 4902 bytes src/icons/dicomsettings_d.png | Bin 0 -> 4838 bytes src/icons/networksettings.png | Bin 0 -> 14283 bytes src/icons/networksettings_d.png | Bin 0 -> 13760 bytes src/json/jsonobject.cpp | 8 +- src/json/jsonobject.h | 2 +- src/network/dicomcfgdialog.cpp | 94 ++++++++++++ src/network/dicomcfgdialog.h | 25 +++ src/network/networkcfgdialog.cpp | 43 +++++- src/network/networkcfgdialog.h | 7 +- src/networkcfgdialog.ui | 76 ++++++++- src/res.qrc | 4 + src/systemsettingform.cpp | 124 +++------------ src/systemsettingform.h | 3 - src/systemsettingform.ui | 254 +++++++++++-------------------- src/translations/en_US.ts | 97 +++++++++--- src/translations/en_US.ts.bak | 97 +++++++++--- src/translations/zh_CN.qm | Bin 9792 -> 10286 bytes src/translations/zh_CN.ts | 185 ++++++++++++++++------ src/translations/zh_CN.ts.bak | 185 ++++++++++++++++------ 24 files changed, 1027 insertions(+), 436 deletions(-) create mode 100644 src/dicomcfgdialog.ui create mode 100644 src/icons/dicomsettings.png create mode 100644 src/icons/dicomsettings_d.png create mode 100644 src/icons/networksettings.png create mode 100644 src/icons/networksettings_d.png create mode 100644 src/network/dicomcfgdialog.cpp create mode 100644 src/network/dicomcfgdialog.h diff --git a/cfgs/usct-product.json b/cfgs/usct-product.json index 601c693..d0d8305 100644 --- a/cfgs/usct-product.json +++ b/cfgs/usct-product.json @@ -51,12 +51,6 @@ "name": "pacsserver22", "port": "102" }, - "daq": { - "ae": "MOON", - "ip": "127.0.0.3", - "name": "daq", - "port": "103" - }, "recon": { "ae": "TURTLE", "ip": "127.0.0.4", @@ -68,6 +62,9 @@ "dhcp": "true", "ip": "192.168.1.197", "mask": "255.255.255.0", + "ae": "MOON", + "name": "daq", + "port": "103", "additional": [{ "ip": "192.168.2.197", "netmask": "255.255.255.0" diff --git a/src/device/networkmanager.cpp b/src/device/networkmanager.cpp index 5a4db6b..18bbc0a 100644 --- a/src/device/networkmanager.cpp +++ b/src/device/networkmanager.cpp @@ -32,8 +32,16 @@ // args << "-c" << cmd; // myProcess->start("/bin/sh", args); //} +host NetworkManager::getLocalHost() +{ + return JsonObject::Instance()->getServer(JsonObject::LOCAL); +} - +bool NetworkManager::setLocalHost(const host& h) +{ + JsonObject::Instance()->setServer(JsonObject::LOCAL, h); + return true; +} QString NetworkManager::interfaceName() { return JsonObject::Instance()->interfaceName(); @@ -67,7 +75,7 @@ bool NetworkManager::restart(QString& err_info) QProcess* myProcess = new QProcess; QString inface = JsonObject::Instance()->interfaceName(); QString pwd = JsonObject::Instance()->passWord(); - QString cmd = QString("echo %1 | sudo -S rcnetwork restart %2").arg(pwd).arg(inface); + QString cmd = QString("echo %1 | sudo -S rcnetwork restart %2").arg(pwd).arg(inface); QStringList args; args << "-c" << cmd; connect(myProcess, SIGNAL(finished(int)), myProcess, SLOT(deleteLater())); @@ -206,12 +214,12 @@ bool NetworkManager::setDefaultGateway(const QString& gw, QString& err_info) } -bool NetworkManager::checkPassWord(const QString &pwd,QString& err_info) +bool NetworkManager::checkPassWord(const QString& pwd, QString& err_info) { QProcess* myProcess = new QProcess; - //QString pwd = JsonObject::Instance()->passWord(); - QString cmd = QString("echo %1 | sudo -S -k whoami").arg(pwd); + //QString pwd = JsonObject::Instance()->passWord(); + QString cmd = QString("echo %1 | sudo -S -k whoami").arg(pwd); QStringList args; args << "-c" << cmd; connect(myProcess, SIGNAL(finished(int)), myProcess, SLOT(deleteLater())); diff --git a/src/device/networkmanager.h b/src/device/networkmanager.h index 2d19ec5..36d91e4 100644 --- a/src/device/networkmanager.h +++ b/src/device/networkmanager.h @@ -10,6 +10,8 @@ class NetworkManager : public QObject { Q_OBJECT public: + static host getLocalHost(); + static bool setLocalHost(const host& h); //static NetworkManager* Instance(); //static void qIfConfig(const localhost& lhost); static QString interfaceName(); @@ -20,7 +22,7 @@ public: static QList getIpRouteList(); //static void setInterfaceName(const QString& name); - static bool checkPassWord(const QString &pwd,QString& err_info); + static bool checkPassWord(const QString& pwd, QString& err_info); static bool restart(QString& err_info); static bool setJsonDHCP(bool enable); diff --git a/src/dicomcfgdialog.ui b/src/dicomcfgdialog.ui new file mode 100644 index 0000000..4963ec7 --- /dev/null +++ b/src/dicomcfgdialog.ui @@ -0,0 +1,228 @@ + + + dicomCfgDialog + + + + 0 + 0 + 626 + 510 + + + + Dialog + + + + + + + + + DICOM Setting + + + Qt::AlignCenter + + + + + + + 2 + + + + Worklist + + + + + + Name + + + + + + + + + + IP + + + + + + + + + + Port + + + + + + + + + + + + + AE + + + + + + + + PACS + + + + + + Name + + + + + + + + + + AE + + + + + + + + + + IP + + + + + + + + + + Port + + + + + + + + + + + 3D Recon + + + + + + + + + AE + + + + + + + + + + IP + + + + + + + + + + Port + + + + + + + + + + Name + + + + + + + + + + + Qt::Horizontal + + + QDialogButtonBox::Apply|QDialogButtonBox::Cancel + + + + + + + + + + + + btn_group + accepted() + dicomCfgDialog + accept() + + + 248 + 254 + + + 157 + 274 + + + + + btn_group + rejected() + dicomCfgDialog + reject() + + + 316 + 260 + + + 286 + 274 + + + + + diff --git a/src/icons/dicomsettings.png b/src/icons/dicomsettings.png new file mode 100644 index 0000000000000000000000000000000000000000..3e15f7987991664adf7d423d25518d610082d9c1 GIT binary patch literal 4902 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 buxZ+`y~sW$vzP-mt{~RtcEn1v3%C9YGvL&i literal 0 HcmV?d00001 diff --git a/src/icons/networksettings.png b/src/icons/networksettings.png new file mode 100644 index 0000000000000000000000000000000000000000..616a5f15fcd096b0316453b5b9b70c3c351d116b GIT binary patch literal 14283 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 HA4UBip&I-u literal 0 HcmV?d00001 diff --git a/src/icons/networksettings_d.png b/src/icons/networksettings_d.png new file mode 100644 index 0000000000000000000000000000000000000000..ae39c64d098ad88600dec0751e3e6450cfe97a38 GIT binary patch literal 13760 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 F{{UsDLx%tW literal 0 HcmV?d00001 diff --git a/src/json/jsonobject.cpp b/src/json/jsonobject.cpp index d239512..84796ec 100644 --- a/src/json/jsonobject.cpp +++ b/src/json/jsonobject.cpp @@ -281,8 +281,8 @@ host JsonObject::getServer(ServerType type) case JsonObject::PACS: typeName = "pacs"; break; - case JsonObject::DAQ: - typeName = "daq"; + case JsonObject::LOCAL: + typeName = "address"; break; case JsonObject::RECON: typeName = "recon"; @@ -310,8 +310,8 @@ void JsonObject::setServer(ServerType type, const host& list) case JsonObject::PACS: typeName = "pacs"; break; - case JsonObject::DAQ: - typeName = "daq"; + case JsonObject::LOCAL: + typeName = "address"; break; case JsonObject::RECON: typeName = "recon"; diff --git a/src/json/jsonobject.h b/src/json/jsonobject.h index 468d908..9f255d3 100644 --- a/src/json/jsonobject.h +++ b/src/json/jsonobject.h @@ -38,7 +38,7 @@ public: } enum ServerType { - WORKLIST, PACS, DAQ, RECON + WORKLIST, PACS, LOCAL, RECON }; //for login diff --git a/src/network/dicomcfgdialog.cpp b/src/network/dicomcfgdialog.cpp new file mode 100644 index 0000000..3f4ad01 --- /dev/null +++ b/src/network/dicomcfgdialog.cpp @@ -0,0 +1,94 @@ +#include "dicomcfgdialog.h" +#include "ui_dicomcfgdialog.h" +#include +#include + +#include "json/jsonobject.h" +dicomCfgDialog::dicomCfgDialog(QWidget* parent) : + QDialog(parent), + ui(new Ui::dicomCfgDialog) +{ + ui->setupUi(this); + this->setObjectName("formDialog"); + this->setWindowFlags(Qt::Dialog | Qt::FramelessWindowHint); + + ui->btn_group->button(QDialogButtonBox::Apply)->setText(tr("Apply")); + ui->btn_group->button(QDialogButtonBox::Cancel)->setText(tr("Cancel")); + + loadServersInfo(); + + connect(ui->btn_group->button(QDialogButtonBox::Apply), &QPushButton::clicked, [=]() + { + saveServersInfo(); + accept(); + }); + connect(ui->btn_group->button(QDialogButtonBox::Cancel), &QPushButton::clicked, [=]() + { + reject(); + }); + ui->tabWidget->setCurrentIndex(0); +} + +dicomCfgDialog::~dicomCfgDialog() +{ + delete ui; +} + + +void dicomCfgDialog::loadServersInfo() +{ + host h; + h = JsonObject::Instance()->getServer(JsonObject::RECON); + 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); + 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::WORKLIST); + ui->wl_AE->setText(h.ae); + ui->wl_IP->setText(h.ip); + ui->wl_Name->setText(h.name); + ui->wl_Port->setText(h.port); + + + + //qIfConfig(lhost); + + +} + + +void dicomCfgDialog::saveServersInfo() +{ + + host h; + 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 = 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 = 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); + + + + + +} \ No newline at end of file diff --git a/src/network/dicomcfgdialog.h b/src/network/dicomcfgdialog.h new file mode 100644 index 0000000..d6060ca --- /dev/null +++ b/src/network/dicomcfgdialog.h @@ -0,0 +1,25 @@ +#ifndef DICOMCFGDIALOG_H +#define DICOMCFGDIALOG_H + +#include + +namespace Ui { + class dicomCfgDialog; +} + +class dicomCfgDialog : public QDialog +{ + Q_OBJECT + +public: + explicit dicomCfgDialog(QWidget* parent = nullptr); + ~dicomCfgDialog(); + +private: + Ui::dicomCfgDialog* ui; + + void loadServersInfo(); + void saveServersInfo(); +}; + +#endif // DICOMCFGDIALOG_H diff --git a/src/network/networkcfgdialog.cpp b/src/network/networkcfgdialog.cpp index b74cb56..97b17fc 100644 --- a/src/network/networkcfgdialog.cpp +++ b/src/network/networkcfgdialog.cpp @@ -191,9 +191,39 @@ void networkCfgDialog::loadData() model_addr->loadData(NetworkManager::getIpAddrList()); model_route->loadData(NetworkManager::getIpRouteList()); + loadJsonData(); } -bool networkCfgDialog::isModified() +bool networkCfgDialog::isJsonModified() +{ + const host& h = NetworkManager::getLocalHost(); + if (ui->daq_AE->text() != h.ae) return true; + if (ui->daq_Name->text() != h.name) return true; + if (ui->daq_Port->text() != h.port)return true; + return false; +} + +void networkCfgDialog::loadJsonData() +{ + + const host& h = NetworkManager::getLocalHost(); + ui->daq_AE->setText(h.ae); + ui->daq_IP->setText(h.ip); + ui->daq_Name->setText(h.name); + ui->daq_Port->setText(h.port); +} + +void networkCfgDialog::saveJsonData() +{ + host h; + h.ip = ui->daq_IP->text(); + h.ae = ui->daq_AE->text(); + h.name = ui->daq_Name->text(); + h.port = ui->daq_Port->text(); + NetworkManager::setLocalHost(h); +} + +bool networkCfgDialog::isNetModified() { if (ui->sw_dhcp->getChecked() != NetworkManager::isDHCP()) return true; @@ -201,11 +231,14 @@ bool networkCfgDialog::isModified() if (ui->addr_ip->text() != default_addr.ip) return true; if (ui->addr_mask->text() != default_addr.mask) return true; if (ui->led_gw->text() != NetworkManager::getDefaultGateway())return true; + if (model_addr->getData() != NetworkManager::getIpAddrList())return true; if (model_route->getData() != NetworkManager::getIpRouteList()) return true; return false; } + + void networkCfgDialog::afterThreadStart() { msgDialog->showMessage("Saving Network Configuration..."); @@ -213,7 +246,6 @@ void networkCfgDialog::afterThreadStart() } void networkCfgDialog::beforeThreadExit() { - msgDialog->hide(); ui->output->setPlainText(err); myThread->deleteLater(); @@ -221,9 +253,12 @@ void networkCfgDialog::beforeThreadExit() void networkCfgDialog::applyData() { - + if (isJsonModified()) + { + saveJsonData(); + } //if it is the same as the old, just exit - if (!isModified()) + if (!isNetModified()) { accept(); return; diff --git a/src/network/networkcfgdialog.h b/src/network/networkcfgdialog.h index b8eafa8..9f05d33 100644 --- a/src/network/networkcfgdialog.h +++ b/src/network/networkcfgdialog.h @@ -29,7 +29,12 @@ public slots: void beforeThreadExit(); private: - bool isModified(); + bool isJsonModified(); + bool isNetModified(); + void loadJsonData(); + void saveJsonData(); + + const char* boolToStr(bool b) { return b ? "sucess" : "failed"; diff --git a/src/networkcfgdialog.ui b/src/networkcfgdialog.ui index 672d896..bfd40b6 100644 --- a/src/networkcfgdialog.ui +++ b/src/networkcfgdialog.ui @@ -7,7 +7,7 @@ 0 0 819 - 662 + 680 @@ -67,7 +67,7 @@ QLineEdit#led_inface{font-size:15px;border: 0px;} true - 0 + 2 @@ -103,7 +103,7 @@ QLineEdit#led_inface{font-size:15px;border: 0px;} - Dynamic Address + DHCP @@ -432,6 +432,76 @@ QLineEdit#led_inface{font-size:15px;border: 0px;} + + + DICOM + + + + + + + + + Name + + + + + + + + + + + + + + + + Port + + + + + + + Qt::Horizontal + + + + 40 + 20 + + + + + + + + AE + + + + + + + IP + + + + + + + false + + + + + + + + Result diff --git a/src/res.qrc b/src/res.qrc index 3038e07..5a629dd 100644 --- a/src/res.qrc +++ b/src/res.qrc @@ -27,6 +27,10 @@ icons/female_d.png icons/male_d.png icons/login.png + icons/dicomsettings.png + icons/dicomsettings_d.png + icons/networksettings.png + icons/networksettings_d.png fonts/DroidSansFallback.ttf translations/en_US.qm translations/zh_CN.qm diff --git a/src/systemsettingform.cpp b/src/systemsettingform.cpp index ff65c63..ebb8825 100644 --- a/src/systemsettingform.cpp +++ b/src/systemsettingform.cpp @@ -9,12 +9,14 @@ #include #include #include -#include "json/jsonobject.h" + #include "SelectDialog.h" #include "components/imageswitch.h" #include "network/networkcfgdialog.h" +#include "network/dicomcfgdialog.h" #include "network/getadminpsw.h" +#include "json/jsonobject.h" #include "event/EventCenter.h" systemSettingForm::systemSettingForm(QWidget* parent) : QWidget(parent), @@ -24,29 +26,27 @@ systemSettingForm::systemSettingForm(QWidget* parent) : //style init - 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->btn_dicom->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + ui->btn_dicom->setIcon(QIcon(":/icons/dicomsettings.png")); + //ui->btn_dicom->setText(tr("DICOM")); + ui->btn_dicom->setIconSize(QSize(80, 80)); + + //ui->btn_network->setToolButtonStyle(Qt::ToolButtonTextBesideIcon); + ui->btn_network->setIcon(QIcon(":/icons/networksettings.png")); + //ui->btn_network->setText(tr("IP")); + ui->btn_network->setIconSize(QSize(80, 80)); + ui->swt_verify->setChecked(true); - //ui->swt_verify->setButtonStyle(ImageSwitch::ButtonStyle_1); - - - - ui->btnFlt->setFixedWidth(200); - ui->btnPro->setFixedWidth(200); - ui->lbl_protocal->setFixedWidth(100); - //lbl_filter - ui->lbl_list->setFixedWidth(100); + //ui->btnFlt->setFixedWidth(200); + //ui->btnPro->setFixedWidth(200); + //ui->lbl_protocal->setFixedWidth(100); ui->lbl_verify->setFixedWidth(100); //data init ui->btnPro->setText(JsonObject::Instance()->defaultProtocal()); ui->btnFlt->setText(JsonObject::Instance()->defaultFilter()); - loadServersInfo(); + //connection connect(ui->swt_verify, &ImageSwitch::clicked, [=]() { @@ -65,12 +65,15 @@ systemSettingForm::systemSettingForm(QWidget* parent) : dia.exec(); } }); - connect(ui->btnCancel, &QToolButton::clicked, [=]() { - loadServersInfo(); - }); - connect(ui->btnAccept, &QToolButton::clicked, [=]() { - saveServersInfo(); + + connect(ui->btn_dicom, &QToolButton::clicked, [=]() { + dicomCfgDialog dia(this); + dia.setWindowModality(Qt::WindowModal); + dia.exec(); }); + + + connect(ui->btnPro, &QPushButton::clicked, [=]() { if (!sd_protocal) { sd_protocal = new SelectDialog(this); @@ -116,84 +119,7 @@ systemSettingForm::~systemSettingForm() delete ui; } -void systemSettingForm::loadServersInfo() -{ - host h; - h = JsonObject::Instance()->getServer(JsonObject::RECON); - 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); - 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); - 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); - 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); - //local_Mask->setIP(lhost.mask); - //local_Gate->setIP(lhost.gateway); - - //qIfConfig(lhost); - - -} - - -void systemSettingForm::saveServersInfo() -{ - - host h; - 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 = 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 = 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 = 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); - - - //localhost lhost; - //lhost.ip = local_IP->getIP(); - //lhost.mask = local_Mask->getIP(); - //lhost.gateway = local_Gate->getIP(); - //JsonObject::Instance()->setLocalHost(lhost); - - //qIfConfig(lhost); - -} //void systemSettingForm::changeEvent(QEvent* event) //{ diff --git a/src/systemsettingform.h b/src/systemsettingform.h index 660122f..2e06b5a 100644 --- a/src/systemsettingform.h +++ b/src/systemsettingform.h @@ -27,9 +27,6 @@ private: Ui::systemSettingForm* ui; SelectDialog* sd_protocal = nullptr; SelectDialog* sd_filter = nullptr; - - void loadServersInfo(); - void saveServersInfo(); }; #endif // SYSTEMSETTINGFORM_H diff --git a/src/systemsettingform.ui b/src/systemsettingform.ui index 3ea5de6..fb28966 100644 --- a/src/systemsettingform.ui +++ b/src/systemsettingform.ui @@ -6,7 +6,7 @@ 0 0 - 619 + 515 612 @@ -20,49 +20,6 @@ - - - - Qt::Horizontal - - - QSizePolicy::Fixed - - - - 40 - 20 - - - - - - - - Network Setting - - - - - - - - 100 - 0 - - - - - - - - - - - Protocal - - - @@ -79,8 +36,15 @@ - - + + + + Worklist Filter + + + + + 100 @@ -92,10 +56,16 @@ - - + + + + + 100 + 0 + + - Worklist Filter + @@ -115,8 +85,12 @@ - - + + + + Protocal + + @@ -131,21 +105,43 @@ - - - - + + + + + 25 + 25 + + + + + Qt::Horizontal + + + QSizePolicy::Fixed + + + + 40 + 20 + + + + - + Qt::Horizontal + + QSizePolicy::Fixed + 40 @@ -154,6 +150,32 @@ + + + + + + + DICOM + + + Qt::ToolButtonTextBesideIcon + + + + + + + IP + + + Qt::ToolButtonTextBesideIcon + + + + + + @@ -166,27 +188,12 @@ 10 - - + + - + - - - - - - - - - - - - - - - @@ -194,14 +201,15 @@ - - + + - - - - - + + + + DAQ + + @@ -217,54 +225,8 @@ - - - - - - - PACS - - - - - - - - - - 3D Recon - - - - - - - - - - - 100 - 0 - - - - Worklist - - - - - - - DAQ - - - - - - - - + + @@ -273,43 +235,12 @@ - - - - - - - - Qt::Horizontal - - - - 40 - 20 - - - - - - - - Cancel - - - - - - - Accept - - - - + @@ -332,6 +263,7 @@ ImageSwitch QWidget
components/imageswitch.h
+ 1 diff --git a/src/translations/en_US.ts b/src/translations/en_US.ts index dc5e130..851ffeb 100644 --- a/src/translations/en_US.ts +++ b/src/translations/en_US.ts @@ -554,6 +554,53 @@ parameters + + dicomCfgDialog + + Dialog + + + + DICOM Setting + + + + Name + + + + IP + + + + Port + + + + AE + + + + Worklist + + + + PACS + + + + 3D Recon + + + + Apply + + + + Cancel + + + networkCfgDialog @@ -564,10 +611,6 @@ parameters IP Address - - Dynamic Address - - Dev @@ -636,6 +679,30 @@ parameters Network Setting + + DHCP + + + + Name + + + + Port + + + + AE + + + + IP + + + + DICOM + + systemSettingForm @@ -643,10 +710,6 @@ parameters Form - - Network Setting - - Protocal @@ -671,18 +734,6 @@ parameters AE - - PACS - - - - 3D Recon - - - - Worklist - - DAQ @@ -692,11 +743,7 @@ parameters - Cancel - - - - Accept + DICOM diff --git a/src/translations/en_US.ts.bak b/src/translations/en_US.ts.bak index dc5e130..851ffeb 100644 --- a/src/translations/en_US.ts.bak +++ b/src/translations/en_US.ts.bak @@ -554,6 +554,53 @@ parameters + + dicomCfgDialog + + Dialog + + + + DICOM Setting + + + + Name + + + + IP + + + + Port + + + + AE + + + + Worklist + + + + PACS + + + + 3D Recon + + + + Apply + + + + Cancel + + + networkCfgDialog @@ -564,10 +611,6 @@ parameters IP Address - - Dynamic Address - - Dev @@ -636,6 +679,30 @@ parameters Network Setting + + DHCP + + + + Name + + + + Port + + + + AE + + + + IP + + + + DICOM + + systemSettingForm @@ -643,10 +710,6 @@ parameters Form - - Network Setting - - Protocal @@ -671,18 +734,6 @@ parameters AE - - PACS - - - - 3D Recon - - - - Worklist - - DAQ @@ -692,11 +743,7 @@ parameters - Cancel - - - - Accept + DICOM diff --git a/src/translations/zh_CN.qm b/src/translations/zh_CN.qm index 912f9e312a63bb498f3fa5ae6c23712935fcfe84..f470c62af31abc82199e26fa9b7f0c81388ee9ae 100644 GIT binary patch delta 1006 zcmY+BYe-XJ7{~uRJ7+rQNttMKn`h@t&&nvHn~DfLIFH_j5XRPW2CQ1Tc+rCbkma0*-B*%5zTbO(fq_ z;4B3Em4H?b6g&kKFEC6my&J-guRzi@PQ?PT?GTXRhj?G4>bE#;QBEZs>G0UK+mOt6 zfz*>UCe4$09nu==?}$b|c;+|`L-H>HTyr?xMo4>4llLX3O3TG;_X3t`$XTeiA@5Qb zkT#BWXZwM;3iuoIXyMD8&QI{a&Zm)facW0cxnb4Hl*nd^`DKVkdV!Q4!(gBVNNyJ9 zHNK+OM}>}dGv!!7CassETgq;v_6SOR;ExH&`v)QmvVYL^TPA&1# zovSzkPf4pF7H_{9sMST&sJld1v`tI)!eoyET)Fl(7NhL9270<>sCF zfN_1|%9b}I_p?&5$gQ-?{e#QtV7>Ba|9imjOP(kpn$O8!LQm+v5jG$$65L~~*{O8d zqy=_1sL!x2@~NAuw}(Se;#~(I_;z@*wp6m;Fi#Mnx)eQ}`p_(aGsSi7DwfwI<*)|ZI9*`s! zRn}Ke*Vua9JS8bf42E|%Obbb8^-AKD5F@R_Ubq~rE+LJLx>DIb*D$NilqJ#U_Xf!` zGiI5j$w|qyGru~*%Cs#p*(d~JA$E38Tg;PUBTXuwwHsWCO+bo+U7-73%~aU;%v`oY bmsxdI_W!a$-NR01?It;iHR>DLPrcwTmBbA+ delta 646 zcmXAmUr1A77{;IT?VPzYHRfGEsI{EsBBkk8U!E?xN_+bMf(eU%rRuectbzI54-rZu@kX zcj-rBG#yl*cif%LMgVaIz)2u4&g+AKmf(C1ShFS_L#8H>8i^SZr5V`U2?Sz5bOG@F z1k&|D(G=K`RUrSKN#7HQPetyMGU-j4RNF?e9;18M9t!ykI^Hfnb zKQImCF0xE~p5M2#Z(q4yykse@`UI#N)v?-~{=_N1?+ZH3jEK)C-fH63feJBMKE{KW zn)Jp^`Ywx;L#=>wNL;R2=8M`)7T8UytMr9c+qGZPaB?f3c!$E4c9+&;yD zo~BVtrAwK~ne5>?^4^+Mr|6BP+NIx=kH^Y^^cUbll@6%W%uc!eecPI_qs>5!oj6%_H> zO?^f!wYdDWVCXb!l+o29nUs=a^uD-kP3s8CYwQTibh{)日志时间 + + dicomCfgDialog + + + Dialog + + + + + DICOM Setting + DICOM 设置 + + + + + + Name + + + + + + + IP + + + + + + + Port + + + + + + + AE + + + + + Worklist + + + + + PACS + + + + + 3D Recon + + + + + Apply + 应用 + + + + Cancel + 取消 + + networkCfgDialog - + Network Settings 网络配置 - + Address IP配置 - + IP Address IP地址 - + Network Setting 网络配置 - Dynamic Address - 动态地址 + 动态地址 - + Dev 设备 - + Subnet Mask 子网掩码 - + Additional Address 额外地址 - - + + Add 新增 - - + + Edit 编辑 - - + + Delete 删除 - + Routing 路由配置 - + Default IPv4 Gateway 默认网关 - + + DHCP + + + + Routing Table 路由表 - + + Name + + + + + Port + + + + + AE + + + + + IP + + + + + DICOM + + + + Result 结果 @@ -884,27 +979,30 @@ parameters systemSettingForm - + Form - Network Setting - 网络配置 + 网络配置 - + Protocal 扫描协议 - + Worklist Filter Worklist过滤器 - + ... + DICOM + + + Auto Verify 自动验证 @@ -913,54 +1011,43 @@ parameters 配置 - + + IP - + Name 姓名 - + AE - - PACS - - - - - 3D Recon - - - - - Worklist - - - - + DAQ - + Port - Cancel - 取消 + 取消 - Accept - 接受 + 接受 + + + + DICOM + diff --git a/src/translations/zh_CN.ts.bak b/src/translations/zh_CN.ts.bak index 2c84b41..c72ab70 100644 --- a/src/translations/zh_CN.ts.bak +++ b/src/translations/zh_CN.ts.bak @@ -773,84 +773,179 @@ parameters 日志时间 + + dicomCfgDialog + + + Dialog + + + + + DICOM Setting + DICOM 设置 + + + + + + Name + + + + + + + IP + + + + + + + Port + + + + + + + AE + + + + + Worklist + + + + + PACS + + + + + 3D Recon + + + + + Apply + 应用 + + + + Cancel + 取消 + + networkCfgDialog - + Network Settings 网络配置 - + Address IP配置 - + IP Address IP地址 - + Network Setting 网络配置 - Dynamic Address - 动态地址 + 动态地址 - + Dev 设备 - + Subnet Mask 子网掩码 - + Additional Address 额外地址 - - + + Add 新增 - - + + Edit 编辑 - - + + Delete 删除 - + Routing 路由配置 - + Default IPv4 Gateway 默认网关 - + + DHCP + + + + Routing Table 路由表 - + + Name + + + + + Port + + + + + AE + + + + + IP + + + + + DICOM + + + + Result 结果 @@ -884,27 +979,30 @@ parameters systemSettingForm - + Form - Network Setting - 网络配置 + 网络配置 - + Protocal 扫描协议 - + Worklist Filter Worklist过滤器 - + ... + DICOM + + + Auto Verify 自动验证 @@ -913,54 +1011,43 @@ parameters 配置 - + + IP - + Name 姓名 - + AE - - PACS - - - - - 3D Recon - - - - - Worklist - - - - + DAQ - + Port - Cancel - 取消 + 取消 - Accept - 接受 + 接受 + + + + DICOM +