diff --git a/include/ui/profile/edit_hysteria.h b/include/ui/profile/edit_hysteria.h index a1cc122..5582a5a 100644 --- a/include/ui/profile/edit_hysteria.h +++ b/include/ui/profile/edit_hysteria.h @@ -21,8 +21,11 @@ public: bool onEnd() override; - Ui::EditHysteria *ui; + QComboBox *_protocol_version; + + void editHysteriaLayout(const QString& version); private: + Ui::EditHysteria *ui; std::shared_ptr ent; }; diff --git a/src/ui/profile/dialog_edit_profile.cpp b/src/ui/profile/dialog_edit_profile.cpp index 595a523..351a714 100644 --- a/src/ui/profile/dialog_edit_profile.cpp +++ b/src/ui/profile/dialog_edit_profile.cpp @@ -214,35 +214,9 @@ void DialogEditProfile::typeSelected(const QString &newType) { auto _innerWidget = new EditHysteria(this); innerWidget = _innerWidget; innerEditor = _innerWidget; - connect(_innerWidget->ui->protocol_version, &QComboBox::currentTextChanged, _innerWidget, [=,this](const QString &txt) + connect(_innerWidget->_protocol_version, &QComboBox::currentTextChanged, _innerWidget, [=,this](const QString &txt) { - if (txt == "1") - { - _innerWidget->ui->auth_type->setVisible(true); - _innerWidget->ui->auth_type_l->setVisible(true); - _innerWidget->ui->auth->setVisible(true); - _innerWidget->ui->auth_l->setVisible(true); - _innerWidget->ui->recv_window_conn->setVisible(true); - _innerWidget->ui->recv_window_conn_l->setVisible(true); - _innerWidget->ui->recv_window->setVisible(true); - _innerWidget->ui->recv_window_l->setVisible(true); - _innerWidget->ui->disable_mtu_discovery->setVisible(true); - _innerWidget->ui->password->setVisible(false); - _innerWidget->ui->password_l->setVisible(false); - } else - { - _innerWidget->ui->auth_type->setVisible(false); - _innerWidget->ui->auth_type_l->setVisible(false); - _innerWidget->ui->auth->setVisible(false); - _innerWidget->ui->auth_l->setVisible(false); - _innerWidget->ui->recv_window_conn->setVisible(false); - _innerWidget->ui->recv_window_conn_l->setVisible(false); - _innerWidget->ui->recv_window->setVisible(false); - _innerWidget->ui->recv_window_l->setVisible(false); - _innerWidget->ui->disable_mtu_discovery->setVisible(false); - _innerWidget->ui->password->setVisible(true); - _innerWidget->ui->password_l->setVisible(true); - } + _innerWidget->editHysteriaLayout(txt); ADJUST_SIZE }); } else if (type == "tuic") { diff --git a/src/ui/profile/edit_hysteria.cpp b/src/ui/profile/edit_hysteria.cpp index 2d66d3d..1548127 100644 --- a/src/ui/profile/edit_hysteria.cpp +++ b/src/ui/profile/edit_hysteria.cpp @@ -4,6 +4,8 @@ EditHysteria::EditHysteria(QWidget *parent) : QWidget(parent), ui(new Ui::EditHysteria) { ui->setupUi(this); + + _protocol_version = ui->protocol_version; } EditHysteria::~EditHysteria() { @@ -26,8 +28,28 @@ void EditHysteria::onStart(std::shared_ptr _ent) { ui->recv_window_conn->setText(Int2String(outbound->recv_window_conn)); ui->disable_mtu_discovery->setChecked(outbound->disable_mtu_discovery); ui->password->setText(outbound->password); + editHysteriaLayout(outbound->protocol_version); +} - if (outbound->protocol_version == "1") +bool EditHysteria::onEnd() { + auto outbound = ent->Hysteria(); + outbound->protocol_version = ui->protocol_version->currentText(); + outbound->server_ports = SplitAndTrim(ui->server_ports->text(), ","); + outbound->hop_interval = ui->hop_interval->text(); + outbound->up_mbps = ui->up_mbps->text().toInt(); + outbound->down_mbps = ui->down_mbps->text().toInt(); + outbound->obfs = ui->obfs->text(); + outbound->auth_type = ui->auth_type->currentText(); + outbound->auth = ui->auth->text(); + outbound->recv_window = ui->recv_window->text().toInt(); + outbound->recv_window_conn = ui->recv_window_conn->text().toInt(); + outbound->disable_mtu_discovery = ui->disable_mtu_discovery->isChecked(); + outbound->password = ui->password->text(); + return true; +} + +void EditHysteria::editHysteriaLayout(const QString& version) { + if (version == "1") { ui->auth_type->setVisible(true); ui->auth_type_l->setVisible(true); @@ -54,22 +76,4 @@ void EditHysteria::onStart(std::shared_ptr _ent) { ui->password->setVisible(true); ui->password_l->setVisible(true); } -} - -bool EditHysteria::onEnd() { - auto outbound = ent->Hysteria(); - outbound->protocol_version = ui->protocol_version->currentText(); - outbound->server_ports = SplitAndTrim(ui->server_ports->text(), ","); - outbound->hop_interval = ui->hop_interval->text(); - outbound->up_mbps = ui->up_mbps->text().toInt(); - outbound->down_mbps = ui->down_mbps->text().toInt(); - outbound->obfs = ui->obfs->text(); - outbound->auth_type = ui->auth_type->currentText(); - outbound->auth = ui->auth->text(); - outbound->recv_window = ui->recv_window->text().toInt(); - outbound->recv_window_conn = ui->recv_window_conn->text().toInt(); - outbound->disable_mtu_discovery = ui->disable_mtu_discovery->isChecked(); - outbound->password = ui->password->text(); - return true; -} - +} \ No newline at end of file