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;
Ui::EditHysteria *ui;
QComboBox *_protocol_version;
void editHysteriaLayout(const QString& version);
private:
Ui::EditHysteria *ui;
std::shared_ptr<Configs::ProxyEntity> ent;
};

View File

@ -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") {

View File

@ -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<Configs::ProxyEntity> _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<Configs::ProxyEntity> _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;
}
}