Files
EZ4Connect/presentation/dialogs/settingwindow/settingwindow.ui
2026-08-25 02:38:55 +08:00

1427 lines
44 KiB
XML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<class>SettingWindow</class>
<widget class="QDialog" name="SettingWindow">
<property name="enabled">
<bool>true</bool>
</property>
<property name="geometry">
<rect>
<x>0</x>
<y>0</y>
<width>520</width>
<height>636</height>
</rect>
</property>
<property name="windowTitle">
<string>设置</string>
</property>
<property name="styleSheet">
<string notr="true"/>
</property>
<layout class="QVBoxLayout" name="verticalLayout">
<item>
<widget class="QTabWidget" name="tabWidget">
<property name="locale">
<locale language="Chinese" country="China"/>
</property>
<property name="currentIndex">
<number>0</number>
</property>
<widget class="QWidget" name="generalTab">
<attribute name="title">
<string>通用</string>
</attribute>
<layout class="QGridLayout">
<item row="7" column="0">
<spacer name="commonTabVerticalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>444</width>
<height>108</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0" rowspan="2">
<widget class="QGroupBox" name="profileGroup">
<property name="title">
<string>配置文件</string>
</property>
<layout class="QGridLayout" name="gridLayout_5">
<item row="1" column="1">
<widget class="QPushButton" name="exportPushButton">
<property name="text">
<string>导出</string>
</property>
</widget>
</item>
<item row="0" column="0" colspan="3">
<widget class="QLabel" name="configVersionLabel">
<property name="text">
<string>当前配置文件版本:?
程序配置文件版本:?</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QPushButton" name="resetDefaultPushButton">
<property name="text">
<string>恢复默认</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QPushButton" name="importPushButton">
<property name="text">
<string>导入</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="commonGroup">
<property name="title">
<string>常规</string>
</property>
<layout class="QGridLayout" name="gridLayout_7">
<item row="3" column="2">
<widget class="QCheckBox" name="checkUpdateAfterStartCheckBox">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QCheckBox" name="autoStartCheckBox">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QCheckBox" name="silentStartCheckBox">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="zjuConnectTabLabel7">
<property name="text">
<string>自动重连(秒)</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="commonTabLable4">
<property name="text">
<string>开机自启动</string>
</property>
</widget>
</item>
<item row="5" column="2">
<widget class="QCheckBox" name="autoReconnectCheckBox">
<property name="text">
<string/>
</property>
<property name="checked">
<bool>false</bool>
</property>
</widget>
</item>
<item row="0" column="1" rowspan="6">
<spacer name="horizontalSpacer_3">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>0</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="7" column="1" colspan="2">
<widget class="QLineEdit" name="systemProxyBypassLineEdit">
<property name="placeholderText">
<string>与操作系统有关,一般用半角分号;进行分隔</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="commonTabLabelSilentStart">
<property name="text">
<string>静默启动</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="commonTabLable5">
<property name="text">
<string>自动连接</string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="zjuConnectTabLabel11">
<property name="text">
<string>系统代理排除</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="commonTabLable6">
<property name="text">
<string>自动检查更新</string>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QCheckBox" name="autoSetProxyCheckBox">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QCheckBox" name="connectAfterStartCheckBox">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QLabel" name="commonTabLable4_2">
<property name="text">
<string>自动设置系统代理</string>
</property>
</widget>
</item>
<item row="5" column="1">
<widget class="QSpinBox" name="reconnectTimeSpinBox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="maximum">
<number>86400</number>
</property>
<property name="value">
<number>1</number>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="commonTabLabelSuppressProxyWarning">
<property name="text">
<string>覆盖代理时不再提示</string>
</property>
</widget>
</item>
<item row="8" column="2">
<widget class="QCheckBox" name="suppressProxyOverrideWarningCheckBox">
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="9" column="0">
<spacer name="horizontalSpacer_4">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Policy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="loginTab">
<attribute name="title">
<string>认证</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_9">
<item row="6" column="0">
<spacer name="verticalSpacer_2">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="1" column="0">
<widget class="QGroupBox" name="commonGroupBox">
<property name="title">
<string>通用</string>
</property>
<layout class="QGridLayout" name="commonLayout">
<item row="1" column="1">
<widget class="QLineEdit" name="serverAddressLineEdit">
<property name="text">
<string>trust.hitsz.edu.cn</string>
</property>
</widget>
</item>
<item row="0" column="1" colspan="4">
<layout class="QHBoxLayout" name="protocolLayout">
<item>
<widget class="QRadioButton" name="atrustRadioButton">
<property name="text">
<string>aTrust</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="easyconnectRadioButton">
<property name="text">
<string>EasyConnect</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="2" column="1" colspan="4">
<widget class="QLineEdit" name="usernameLineEdit">
<property name="placeholderText">
<string>VPN 账号</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="commonTabLable2">
<property name="text">
<string>账号</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="commonTabLable3">
<property name="text">
<string>密码</string>
</property>
</widget>
</item>
<item row="1" column="3" colspan="2">
<widget class="QSpinBox" name="serverPortSpinBox">
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>443</number>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QLabel" name="label">
<property name="text">
<string>:</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="zjuConnectTabLabel1">
<property name="text">
<string>服务器地址</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="protocolLabel">
<property name="text">
<string>协议</string>
</property>
</widget>
</item>
<item row="3" column="4">
<widget class="QCheckBox" name="passwordVisibleCheckBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="1" colspan="3">
<widget class="QLineEdit" name="passwordLineEdit">
<property name="echoMode">
<enum>QLineEdit::EchoMode::Password</enum>
</property>
<property name="placeholderText">
<string>VPN 密码</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="5" column="0">
<widget class="QGroupBox" name="extraAuthGroupBox">
<property name="enabled">
<bool>false</bool>
</property>
<property name="title">
<string>EasyConnect 认证信息</string>
</property>
<layout class="QGridLayout" name="gridLayout_1">
<item row="4" column="0">
<spacer name="horizontalSpacer_5">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Policy::Fixed</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="2" column="1" colspan="2">
<widget class="QLineEdit" name="certPasswordLineEdit">
<property name="echoMode">
<enum>QLineEdit::EchoMode::Password</enum>
</property>
<property name="placeholderText">
<string>可选,证书密码</string>
</property>
</widget>
</item>
<item row="3" column="3">
<widget class="QCheckBox" name="totpSecretVisibleCheckBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="0" column="1">
<widget class="QLineEdit" name="certFileLineEdit">
<property name="placeholderText">
<string>可选p12/pfx 证书文件路径</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="certPasswordLabel">
<property name="text">
<string>证书密码</string>
</property>
</widget>
</item>
<item row="2" column="3">
<widget class="QCheckBox" name="certPasswordVisibleCheckBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
</widget>
</item>
<item row="3" column="1" colspan="2">
<widget class="QLineEdit" name="totpSecretLineEdit">
<property name="echoMode">
<enum>QLineEdit::EchoMode::Password</enum>
</property>
<property name="placeholderText">
<string>可选,以通过 TOTP 验证器</string>
</property>
</widget>
</item>
<item row="0" column="2" colspan="2">
<widget class="QPushButton" name="certFileBrowseButton">
<property name="text">
<string>浏览</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="zjuConnectTabLabel6_2">
<property name="text">
<string>TOTP 密钥</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QLabel" name="certFileLabel">
<property name="text">
<string>证书文件</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item row="4" column="0">
<widget class="QGroupBox" name="authInfoGroupBox">
<property name="title">
<string>aTrust 认证信息</string>
</property>
<layout class="QGridLayout" name="gridLayout_8">
<item row="6" column="1" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QLabel" name="label_6">
<property name="text">
<string>+</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="countryCodeLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
<property name="maximumSize">
<size>
<width>45</width>
<height>16777215</height>
</size>
</property>
<property name="placeholderText">
<string>国家</string>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_7">
<property name="text">
<string>-</string>
</property>
</widget>
</item>
<item>
<widget class="QLineEdit" name="phoneNumberLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
<property name="placeholderText">
<string>手机号码,仅用于短信</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="5" column="1" colspan="2">
<widget class="QLineEdit" name="loginUrlLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string/>
</property>
<property name="placeholderText">
<string>可选,可自动生成,仅用于 CAS/OAuth2</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="label_4">
<property name="text">
<string>登录地址</string>
</property>
</widget>
</item>
<item row="7" column="0">
<spacer name="horizontalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
<property name="sizeType">
<enum>QSizePolicy::Policy::Preferred</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>120</width>
<height>0</height>
</size>
</property>
</spacer>
</item>
<item row="3" column="0">
<widget class="QLabel" name="label_2">
<property name="text">
<string>登录域</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="label_5">
<property name="text">
<string>手机号码</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QCheckBox" name="manualConfigCheckBox">
<property name="sizePolicy">
<sizepolicy hsizetype="Fixed" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>手动配置</string>
</property>
</widget>
</item>
<item row="0" column="0" colspan="2">
<widget class="QPushButton" name="authSelectPushButton">
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>0</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string>配置认证方式</string>
</property>
</widget>
</item>
<item row="3" column="1" colspan="2">
<widget class="QLineEdit" name="loginDomainLineEdit">
<property name="enabled">
<bool>false</bool>
</property>
<property name="sizePolicy">
<sizepolicy hsizetype="Expanding" vsizetype="Fixed">
<horstretch>1</horstretch>
<verstretch>0</verstretch>
</sizepolicy>
</property>
<property name="text">
<string/>
</property>
<property name="placeholderText">
<string>可自动获取,默认 local</string>
</property>
</widget>
</item>
<item row="1" column="1" colspan="2">
<layout class="QHBoxLayout" name="horizontalLayout_2">
<item>
<widget class="QRadioButton" name="pswRadioButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>密码</string>
</property>
<property name="checked">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="smsCheckCodeRadioButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>短信</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="casRadioButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>CAS</string>
</property>
</widget>
</item>
<item>
<widget class="QRadioButton" name="oauth2RadioButton">
<property name="enabled">
<bool>false</bool>
</property>
<property name="text">
<string>OAuth2</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="1" column="0">
<widget class="QLabel" name="label_3">
<property name="text">
<string>认证方式</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="zjuConnectTab">
<attribute name="title">
<string>高级</string>
</attribute>
<layout class="QGridLayout" name="gridLayout_3">
<item row="4" column="0">
<widget class="QLabel" name="dnsServerBindLabel">
<property name="text">
<string>DNS 监听地址</string>
</property>
</widget>
</item>
<item row="4" column="1" colspan="3">
<widget class="QLineEdit" name="dnsServerBindLineEdit">
<property name="placeholderText">
<string>留空则禁用,例如 127.0.0.1:53</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QLabel" name="localDnsServerLabel">
<property name="text">
<string>本地 DNS</string>
</property>
</widget>
</item>
<item row="3" column="1" colspan="3">
<widget class="QLineEdit" name="localDnsServerLineEdit">
<property name="placeholderText">
<string>用于解析 VPN 服务器域名,留空则使用系统 DNS</string>
</property>
</widget>
</item>
<item row="8" column="1" colspan="3">
<widget class="QLineEdit" name="shadowsocksUrlLineEdit">
<property name="placeholderText">
<string>不填则不启用格式ss://chiper:password@server:port</string>
</property>
</widget>
</item>
<item row="6" column="0">
<widget class="QLabel" name="zjuConnectTabLabel5">
<property name="text">
<string>SOCKS5 代理端口</string>
</property>
</widget>
</item>
<item row="10" column="0">
<widget class="QLabel" name="zjuConnectTabLabel6_3">
<property name="text">
<string>直连代理</string>
</property>
</widget>
</item>
<item row="5" column="1" colspan="3">
<widget class="QSpinBox" name="dnsTTLSpinBox">
<property name="maximum">
<number>2147483647</number>
</property>
<property name="value">
<number>3600</number>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QLineEdit" name="dnsLineEdit">
<property name="placeholderText">
<string>勾选自动,否则不应留空</string>
</property>
</widget>
</item>
<item row="2" column="1" colspan="3">
<widget class="QLineEdit" name="secondaryDnsLineEdit">
<property name="placeholderText">
<string>不填则采用系统 DNS ,使用 DNS 劫持必须填写</string>
</property>
</widget>
</item>
<item row="8" column="0">
<widget class="QLabel" name="zjuConnectTabLabel10">
<property name="text">
<string>Shadowsocks 代理</string>
</property>
</widget>
</item>
<item row="7" column="0">
<widget class="QLabel" name="zjuConnectTabLabel6">
<property name="text">
<string>HTTP 代理端口</string>
</property>
</widget>
</item>
<item row="1" column="2" colspan="2">
<widget class="QCheckBox" name="dnsAutoCheckBox">
<property name="text">
<string>自动</string>
</property>
</widget>
</item>
<item row="9" column="0">
<widget class="QLabel" name="zjuConnectTabLabel12">
<property name="text">
<string>节点优选间隔(秒)</string>
</property>
</widget>
</item>
<item row="19" column="0" colspan="4">
<widget class="QPushButton" name="portForwardingPushButton">
<property name="text">
<string>其他设置(端口转发、自定义参数等)</string>
</property>
</widget>
</item>
<item row="5" column="0">
<widget class="QLabel" name="zjuConnectTabLabel9_2">
<property name="text">
<string>DNS TTL</string>
</property>
</widget>
</item>
<item row="20" column="0" colspan="4">
<spacer name="verticalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>40</height>
</size>
</property>
</spacer>
</item>
<item row="10" column="1" colspan="3">
<widget class="QLineEdit" name="dialDirectProxyLineEdit">
<property name="placeholderText">
<string>直连情况下走的代理支持socks://... 或 http://...</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QLabel" name="zjuConnectTabLabel8">
<property name="text">
<string>DNS 服务器</string>
</property>
</widget>
</item>
<item row="15" column="0" colspan="4">
<widget class="Line" name="line">
<property name="orientation">
<enum>Qt::Orientation::Horizontal</enum>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QLabel" name="zjuConnectTabLabel9">
<property name="text">
<string>备用 DNS</string>
</property>
</widget>
</item>
<item row="16" column="0" colspan="4">
<layout class="QGridLayout" name="gridLayout_4">
<item row="0" column="1">
<widget class="QCheckBox" name="keepAliveCheckBox">
<property name="text">
<string>定时保活</string>
</property>
</widget>
</item>
<item row="1" column="1">
<widget class="QCheckBox" name="disableServerConfigCheckBox">
<property name="text">
<string>忽略服务器配置</string>
</property>
</widget>
</item>
<item row="3" column="0">
<widget class="QCheckBox" name="tunCheckBox">
<property name="text">
<string>TUN 模式</string>
</property>
</widget>
</item>
<item row="0" column="2">
<widget class="QCheckBox" name="outsideAccessCheckBox">
<property name="text">
<string>允许外部访问</string>
</property>
</widget>
</item>
<item row="1" column="0">
<widget class="QCheckBox" name="skipDomainResourceCheckBox">
<property name="text">
<string>忽略域名资源</string>
</property>
</widget>
</item>
<item row="1" column="2">
<widget class="QCheckBox" name="proxyAllCheckBox">
<property name="text">
<string>代理全部流量</string>
</property>
</widget>
</item>
<item row="3" column="1">
<widget class="QCheckBox" name="routeCheckBox">
<property name="toolTip">
<string>TUN 模式下有效</string>
</property>
<property name="text">
<string>设置路由TUN</string>
</property>
</widget>
</item>
<item row="0" column="0">
<widget class="QCheckBox" name="multiLineCheckBox">
<property name="text">
<string>自动选择线路</string>
</property>
<property name="autoExclusive">
<bool>false</bool>
</property>
<property name="tristate">
<bool>false</bool>
</property>
</widget>
</item>
<item row="3" column="2">
<widget class="QCheckBox" name="dnsHijackCheckBox">
<property name="toolTip">
<string>TUN 模式下有效</string>
</property>
<property name="text">
<string>DNS 劫持TUN</string>
</property>
</widget>
</item>
<item row="4" column="0">
<widget class="QCheckBox" name="fakeIPCheckBox">
<property name="toolTip">
<string>aTrust 协议 TUN 模式下有效</string>
</property>
<property name="text">
<string>Fake IPTUN</string>
</property>
</widget>
</item>
<item row="4" column="1">
<widget class="QCheckBox" name="tcpTunnelModeCheckBox">
<property name="text">
<string>禁用 L3 隧道</string>
</property>
</widget>
</item>
<item row="4" column="2">
<widget class="QCheckBox" name="autoDetectInterfaceCheckBox">
<property name="toolTip">
<string>自动检测并绑定 VPN 底层网络接口</string>
</property>
<property name="text">
<string>自动检测网口</string>
</property>
</widget>
</item>
<item row="2" column="1">
<widget class="QCheckBox" name="zjuDefaultCheckBox">
<property name="text">
<string>ZJU 默认配置</string>
</property>
</widget>
</item>
<item row="2" column="0">
<widget class="QCheckBox" name="disableDNSCheckBox">
<property name="text">
<string>禁用内部 DNS</string>
</property>
</widget>
</item>
<item row="2" column="2">
<widget class="QCheckBox" name="credentialsAsArgumentsCheckBox">
<property name="toolTip">
<string>不勾选则凭据以环境变量传递</string>
</property>
<property name="text">
<string>凭据以参数传递</string>
</property>
</widget>
</item>
</layout>
</item>
<item row="6" column="1" colspan="3">
<widget class="QSpinBox" name="socks5PortSpinBox">
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>11080</number>
</property>
</widget>
</item>
<item row="9" column="1" colspan="3">
<widget class="QSpinBox" name="updateBestNodesIntervalSpinBox">
<property name="maximum">
<number>2147483647</number>
</property>
<property name="value">
<number>300</number>
</property>
</widget>
</item>
<item row="7" column="1" colspan="3">
<widget class="QSpinBox" name="httpPortSpinBox">
<property name="maximum">
<number>65535</number>
</property>
<property name="value">
<number>11081</number>
</property>
</widget>
</item>
<item row="11" column="1" colspan="3">
<widget class="QLineEdit" name="keepAliveUrlLineEdit">
<property name="placeholderText">
<string>用于定时保活的 URL留空为 DNS 保活</string>
</property>
</widget>
</item>
<item row="11" column="0">
<widget class="QLabel" name="zjuConnectTabLabel6_4">
<property name="text">
<string>定时保活 URL</string>
</property>
</widget>
</item>
<item row="12" column="1" colspan="3">
<widget class="QLineEdit" name="bindInterfaceLineEdit">
<property name="placeholderText">
<string>用于建立连接的网络接口,留空为自动选择</string>
</property>
</widget>
</item>
<item row="12" column="0">
<widget class="QLabel" name="zjuConnectTabLabel6_5">
<property name="text">
<string>绑定网络接口</string>
</property>
</widget>
</item>
</layout>
</widget>
<widget class="QWidget" name="debugTab">
<attribute name="title">
<string>调试</string>
</attribute>
<layout class="QVBoxLayout" name="debugTabLayout">
<item>
<widget class="QGroupBox" name="debugOptionsGroupBox">
<property name="title">
<string>调试输出</string>
</property>
<layout class="QVBoxLayout" name="debugOptionsLayout">
<item>
<widget class="QCheckBox" name="detailedDebugCheckBox">
<property name="text">
<string>启用详细调试输出</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="debugPcapCheckBox">
<property name="toolTip">
<string>将 VPN 底层 TCP 收发数据保存为 PCAP 文件</string>
</property>
<property name="text">
<string>导出底层流量PCAP</string>
</property>
</widget>
</item>
<item>
<widget class="QCheckBox" name="debugTlsLogCheckBox">
<property name="toolTip">
<string>导出 NSS key log可配合 PCAP 在 Wireshark 中解密 TLS 流量</string>
</property>
<property name="text">
<string>导出 TLS 会话密钥</string>
</property>
</widget>
</item>
</layout>
</widget>
</item>
<item>
<widget class="QLabel" name="debugTipLabel">
<property name="text">
<string>如遇到协议实现问题,请勾选以上三个选项后运行,复现问题情况,然后进入日志目录将最新的输出打包发送给开发者,以供调试。</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="debugSecurityWarningLabel">
<property name="font">
<font>
<bold>true</bold>
</font>
</property>
<property name="text">
<string>警告调试日志、PCAP 和 TLS 会话密钥可能包含账号、访问地址及会话密钥等敏感信息,请勿随意发送给他人。</string>
</property>
<property name="wordWrap">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="openLogDirectoryPushButton">
<property name="text">
<string>打开日志目录</string>
</property>
</widget>
</item>
<item>
<spacer name="debugTabVerticalSpacer">
<property name="orientation">
<enum>Qt::Orientation::Vertical</enum>
</property>
<property name="sizeHint" stdset="0">
<size>
<width>20</width>
<height>320</height>
</size>
</property>
</spacer>
</item>
</layout>
</widget>
</widget>
</item>
<item>
<widget class="QDialogButtonBox" name="buttonBox">
<property name="standardButtons">
<set>QDialogButtonBox::StandardButton::Apply|QDialogButtonBox::StandardButton::Cancel|QDialogButtonBox::StandardButton::Ok</set>
</property>
</widget>
</item>
</layout>
</widget>
<tabstops>
<tabstop>tabWidget</tabstop>
<tabstop>usernameLineEdit</tabstop>
<tabstop>passwordLineEdit</tabstop>
<tabstop>serverAddressLineEdit</tabstop>
<tabstop>serverPortSpinBox</tabstop>
<tabstop>dnsLineEdit</tabstop>
<tabstop>secondaryDnsLineEdit</tabstop>
<tabstop>localDnsServerLineEdit</tabstop>
<tabstop>dnsServerBindLineEdit</tabstop>
<tabstop>socks5PortSpinBox</tabstop>
<tabstop>httpPortSpinBox</tabstop>
<tabstop>multiLineCheckBox</tabstop>
<tabstop>keepAliveCheckBox</tabstop>
<tabstop>keepAliveUrlLineEdit</tabstop>
<tabstop>bindInterfaceLineEdit</tabstop>
<tabstop>outsideAccessCheckBox</tabstop>
<tabstop>portForwardingPushButton</tabstop>
</tabstops>
<resources/>
<connections>
<connection>
<sender>buttonBox</sender>
<signal>rejected()</signal>
<receiver>SettingWindow</receiver>
<slot>reject()</slot>
<hints>
<hint type="sourcelabel">
<x>239</x>
<y>374</y>
</hint>
<hint type="destinationlabel">
<x>242</x>
<y>197</y>
</hint>
</hints>
</connection>
<connection>
<sender>atrustRadioButton</sender>
<signal>toggled(bool)</signal>
<receiver>authInfoGroupBox</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>255</x>
<y>72</y>
</hint>
<hint type="destinationlabel">
<x>256</x>
<y>186</y>
</hint>
</hints>
</connection>
<connection>
<sender>dnsAutoCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>dnsLineEdit</receiver>
<slot>setDisabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>445</x>
<y>85</y>
</hint>
<hint type="destinationlabel">
<x>282</x>
<y>85</y>
</hint>
</hints>
</connection>
<connection>
<sender>tunCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>routeCheckBox</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>108</x>
<y>379</y>
</hint>
<hint type="destinationlabel">
<x>256</x>
<y>379</y>
</hint>
</hints>
</connection>
<connection>
<sender>tunCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>dnsHijackCheckBox</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>108</x>
<y>379</y>
</hint>
<hint type="destinationlabel">
<x>405</x>
<y>379</y>
</hint>
</hints>
</connection>
<connection>
<sender>tunCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>fakeIPCheckBox</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>108</x>
<y>379</y>
</hint>
<hint type="destinationlabel">
<x>405</x>
<y>410</y>
</hint>
</hints>
</connection>
<connection>
<sender>autoReconnectCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>reconnectTimeSpinBox</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>463</x>
<y>173</y>
</hint>
<hint type="destinationlabel">
<x>311</x>
<y>173</y>
</hint>
</hints>
</connection>
<connection>
<sender>manualConfigCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>loginDomainLineEdit</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>445</x>
<y>185</y>
</hint>
<hint type="destinationlabel">
<x>319</x>
<y>215</y>
</hint>
</hints>
</connection>
<connection>
<sender>manualConfigCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>pswRadioButton</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>445</x>
<y>185</y>
</hint>
<hint type="destinationlabel">
<x>196</x>
<y>244</y>
</hint>
</hints>
</connection>
<connection>
<sender>manualConfigCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>smsCheckCodeRadioButton</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>445</x>
<y>185</y>
</hint>
<hint type="destinationlabel">
<x>278</x>
<y>244</y>
</hint>
</hints>
</connection>
<connection>
<sender>manualConfigCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>casRadioButton</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>445</x>
<y>185</y>
</hint>
<hint type="destinationlabel">
<x>360</x>
<y>244</y>
</hint>
</hints>
</connection>
<connection>
<sender>manualConfigCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>oauth2RadioButton</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>445</x>
<y>185</y>
</hint>
<hint type="destinationlabel">
<x>442</x>
<y>244</y>
</hint>
</hints>
</connection>
<connection>
<sender>easyconnectRadioButton</sender>
<signal>toggled(bool)</signal>
<receiver>extraAuthGroupBox</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>256</x>
<y>114</y>
</hint>
<hint type="destinationlabel">
<x>256</x>
<y>539</y>
</hint>
</hints>
</connection>
<connection>
<sender>smsCheckCodeRadioButton</sender>
<signal>toggled(bool)</signal>
<receiver>countryCodeLineEdit</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>276</x>
<y>392</y>
</hint>
<hint type="destinationlabel">
<x>186</x>
<y>465</y>
</hint>
</hints>
</connection>
<connection>
<sender>smsCheckCodeRadioButton</sender>
<signal>toggled(bool)</signal>
<receiver>phoneNumberLineEdit</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>276</x>
<y>392</y>
</hint>
<hint type="destinationlabel">
<x>357</x>
<y>465</y>
</hint>
</hints>
</connection>
<connection>
<sender>manualConfigCheckBox</sender>
<signal>toggled(bool)</signal>
<receiver>loginUrlLineEdit</receiver>
<slot>setEnabled(bool)</slot>
<hints>
<hint type="sourcelabel">
<x>452</x>
<y>312</y>
</hint>
<hint type="destinationlabel">
<x>319</x>
<y>407</y>
</hint>
</hints>
</connection>
</connections>
</ui>