This commit is contained in:
parhelia512 2025-11-20 23:46:36 +08:00
parent b598959742
commit db0531396e
3 changed files with 30 additions and 49 deletions

View File

@ -21,8 +21,11 @@ public:
bool onEnd() override; bool onEnd() override;
Ui::EditHysteria *ui; QComboBox *_protocol_version;
void editHysteriaLayout(const QString& version);
private: private:
Ui::EditHysteria *ui;
std::shared_ptr<Configs::ProxyEntity> ent; std::shared_ptr<Configs::ProxyEntity> ent;
}; };

View File

@ -214,35 +214,9 @@ void DialogEditProfile::typeSelected(const QString &newType) {
auto _innerWidget = new EditHysteria(this); auto _innerWidget = new EditHysteria(this);
innerWidget = _innerWidget; innerWidget = _innerWidget;
innerEditor = _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->editHysteriaLayout(txt);
{
_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);
}
ADJUST_SIZE ADJUST_SIZE
}); });
} else if (type == "tuic") { } else if (type == "tuic") {

View File

@ -4,6 +4,8 @@ EditHysteria::EditHysteria(QWidget *parent)
: QWidget(parent), : QWidget(parent),
ui(new Ui::EditHysteria) { ui(new Ui::EditHysteria) {
ui->setupUi(this); ui->setupUi(this);
_protocol_version = ui->protocol_version;
} }
EditHysteria::~EditHysteria() { EditHysteria::~EditHysteria() {
@ -26,8 +28,28 @@ void EditHysteria::onStart(std::shared_ptr<Configs::ProxyEntity> _ent) {
ui->recv_window_conn->setText(Int2String(outbound->recv_window_conn)); ui->recv_window_conn->setText(Int2String(outbound->recv_window_conn));
ui->disable_mtu_discovery->setChecked(outbound->disable_mtu_discovery); ui->disable_mtu_discovery->setChecked(outbound->disable_mtu_discovery);
ui->password->setText(outbound->password); 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->setVisible(true);
ui->auth_type_l->setVisible(true); ui->auth_type_l->setVisible(true);
@ -54,22 +76,4 @@ void EditHysteria::onStart(std::shared_ptr<Configs::ProxyEntity> _ent) {
ui->password->setVisible(true); ui->password->setVisible(true);
ui->password_l->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;
}