mirror of
https://github.com/Qv2ray/Qv2ray.git
synced 2025-05-20 19:00:22 +08:00
Merge branch 'dev' into dev-multi-outbound
Former-commit-id: aac36f2f9e
This commit is contained in:
commit
1545d4890d
@ -63,8 +63,7 @@ RESOURCES += \
|
||||
resources.qrc
|
||||
|
||||
TRANSLATIONS += \
|
||||
translations/zh-CN.ts \
|
||||
translations/en-US.ts
|
||||
translations/source.ts
|
||||
|
||||
RC_ICONS += ./icons/Qv2ray.ico
|
||||
ICON = ./icons/Qv2ray.icns
|
||||
|
3
crowdin.yml
Normal file
3
crowdin.yml
Normal file
@ -0,0 +1,3 @@
|
||||
files:
|
||||
- source: /translations/source.ts
|
||||
translation: /translations/%locale%.ts
|
@ -1,7 +1,5 @@
|
||||
<RCC>
|
||||
<qresource prefix="/">
|
||||
<file>translations/zh-CN.qm</file>
|
||||
<file>translations/en-US.qm</file>
|
||||
<file>icons/Qv2ray.ico</file>
|
||||
<file>icons/add_connection_btn.png</file>
|
||||
<file>icons/import_connection_btn.png</file>
|
||||
|
20
src/main.cpp
20
src/main.cpp
@ -13,8 +13,12 @@ using namespace Qv2ray::QvConfigModels;
|
||||
|
||||
bool initQv()
|
||||
{
|
||||
/// Qv2ray Config Path and ends with "/"
|
||||
#ifdef QT_DEBUG
|
||||
QString configPath = QDir::homePath() + "/.qv2ray_debug";
|
||||
#else
|
||||
QString configPath = QDir::homePath() + "/.qv2ray";
|
||||
#endif
|
||||
/// Qv2ray Config Path and ends with "/"
|
||||
QString exeDefaultPath = configPath + "/vcore/v2ray";
|
||||
QString v2AssetsPath = configPath + "/vcore";
|
||||
//
|
||||
@ -123,16 +127,16 @@ int main(int argc, char *argv[])
|
||||
#ifdef __APPLE__
|
||||
_qApp.setStyle("fusion");
|
||||
#endif
|
||||
auto lang = GetGlobalConfig().language;
|
||||
|
||||
if (_qApp.installTranslator(getTranslator(QString::fromStdString(GetGlobalConfig().language)))) {
|
||||
LOG(MODULE_UI, "Loaded translations " + GetGlobalConfig().language)
|
||||
} else if (_qApp.installTranslator(getTranslator("en-US"))) {
|
||||
LOG(MODULE_UI, "Loaded default translations")
|
||||
if (lang != "en-US") {
|
||||
if (_qApp.installTranslator(getTranslator(QSTRING(lang)))) {
|
||||
LOG(MODULE_UI, "Loaded translations " + lang)
|
||||
} else {
|
||||
QvMessageBox(
|
||||
nullptr, "Failed to load translations 无法加载语言文件",
|
||||
"Failed to load translations, user experience may be downgraded. \r\n"
|
||||
"无法加载语言文件,用户体验可能会降级.");
|
||||
nullptr, "Failed to load selected language.",
|
||||
"You may want to select another language in the Prefrences Window.\r\n");
|
||||
}
|
||||
}
|
||||
|
||||
RunGuard guard("Qv2ray-Instance-Identifier"
|
||||
|
@ -37,7 +37,7 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="aliasLabel">
|
||||
<property name="text">
|
||||
<string>#Name</string>
|
||||
<string>Name</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -47,7 +47,7 @@
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>#ImportFrom</string>
|
||||
<string>Import Source</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -61,17 +61,17 @@
|
||||
</property>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>#ExistingFile</string>
|
||||
<string>File</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>#VMessConnectionString</string>
|
||||
<string>VMess String</string>
|
||||
</property>
|
||||
</item>
|
||||
<item>
|
||||
<property name="text">
|
||||
<string>#Subcription</string>
|
||||
<string>Subscription Link</string>
|
||||
</property>
|
||||
</item>
|
||||
</widget>
|
||||
@ -96,7 +96,7 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="fileLabel">
|
||||
<property name="text">
|
||||
<string>#Path</string>
|
||||
<string>Path</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -112,7 +112,7 @@
|
||||
<item>
|
||||
<widget class="QPushButton" name="selectFileBtn">
|
||||
<property name="text">
|
||||
<string>#SelectFile</string>
|
||||
<string>Select</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -121,14 +121,14 @@
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>#Inbound</string>
|
||||
<string>Inbound</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QCheckBox" name="keepImportedInboundCheckBox">
|
||||
<property name="text">
|
||||
<string>#KeepImportedInbounds</string>
|
||||
<string>Keep imported inbound settings</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -141,7 +141,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>#VMessConnectionString</string>
|
||||
<string>VMess Connection String</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -155,7 +155,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>#SubscriptionLink</string>
|
||||
<string>Subscription Link</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -35,14 +35,14 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
hTray->setIcon(this->windowIcon());
|
||||
hTray->setToolTip(TRAY_TOOLTIP_PREFIX);
|
||||
//
|
||||
QAction *action_Tray_ShowHide = new QAction(this->windowIcon(), tr("#Hide"), this);
|
||||
QAction *action_Tray_Quit = new QAction(tr("#Quit"), this);
|
||||
QAction *action_Tray_Start = new QAction(tr("#Connect"), this);
|
||||
QAction *action_Tray_Restart = new QAction(tr("#Reconnect"), this);
|
||||
QAction *action_Tray_Stop = new QAction(tr("#Disconnect"), this);
|
||||
QAction *action_Tray_ShowHide = new QAction(this->windowIcon(), tr("Hide"), this);
|
||||
QAction *action_Tray_Quit = new QAction(tr("Quit"), this);
|
||||
QAction *action_Tray_Start = new QAction(tr("Connect"), this);
|
||||
QAction *action_Tray_Restart = new QAction(tr("Reconnect"), this);
|
||||
QAction *action_Tray_Stop = new QAction(tr("Disconnect"), this);
|
||||
//
|
||||
QAction *action_RCM_RenameConnection = new QAction(tr("#Rename"), this);
|
||||
QAction *action_RCM_StartThis = new QAction(tr("#ConnectSelected"), this);
|
||||
QAction *action_RCM_RenameConnection = new QAction(tr("Rename"), this);
|
||||
QAction *action_RCM_StartThis = new QAction(tr("ConnectSelected"), this);
|
||||
action_Tray_Start->setEnabled(true);
|
||||
action_Tray_Stop->setEnabled(false);
|
||||
action_Tray_Restart->setEnabled(false);
|
||||
@ -89,7 +89,7 @@ MainWindow::MainWindow(QWidget *parent)
|
||||
on_startButton_clicked();
|
||||
//ToggleVisibility();
|
||||
this->hide();
|
||||
trayMenu->actions()[0]->setText(tr("#Show"));
|
||||
trayMenu->actions()[0]->setText(tr("Show"));
|
||||
} else {
|
||||
this->show();
|
||||
}
|
||||
@ -117,14 +117,14 @@ void MainWindow::VersionUpdate(QByteArray &data)
|
||||
if (newversion > current && newversion > ignored) {
|
||||
LOG(MODULE_UPDATE, "New version detected.")
|
||||
auto link = root["html_url"].toString("");
|
||||
auto result = QvMessageBoxAsk(this, tr("#NewReleaseVersionFound"),
|
||||
tr("#NewReleaseVersionFound") + ": " + root["tag_name"].toString("") +
|
||||
auto result = QvMessageBoxAsk(this, tr("NewReleaseVersionFound"),
|
||||
tr("NewReleaseVersionFound") + ": " + root["tag_name"].toString("") +
|
||||
"\r\n" +
|
||||
root["name"].toString("") +
|
||||
"\r\n------------\r\n" +
|
||||
root["body"].toString("") +
|
||||
"\r\n------------\r\n" +
|
||||
tr("#ReleaseDownloadLink") + ": " + link, QMessageBox::Ignore);
|
||||
tr("ReleaseDownloadLink") + ": " + link, QMessageBox::Ignore);
|
||||
|
||||
if (result == QMessageBox::Yes) {
|
||||
QDesktopServices::openUrl(QUrl::fromUserInput(link));
|
||||
@ -185,7 +185,7 @@ void MainWindow::UpdateLog()
|
||||
void MainWindow::on_startButton_clicked()
|
||||
{
|
||||
if (CurrentConnectionName == "") {
|
||||
QvMessageBox(this, tr("#NoConfigSelected"), tr("#PleaseSelectAConfig"));
|
||||
QvMessageBox(this, tr("NoConfigSelected"), tr("PleaseSelectAConfig"));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -196,9 +196,9 @@ void MainWindow::on_startButton_clicked()
|
||||
bool startFlag = this->vinstance->Start();
|
||||
|
||||
if (startFlag) {
|
||||
this->hTray->showMessage("Qv2ray", tr("#ConnectedToServer") + " " + CurrentConnectionName, hTray->icon());
|
||||
hTray->setToolTip(TRAY_TOOLTIP_PREFIX + tr("#ConnectedToServer") + ": " + CurrentConnectionName);
|
||||
ui->statusLabel->setText(tr("#Connected") + ": " + CurrentConnectionName);
|
||||
this->hTray->showMessage("Qv2ray", tr("ConnectedToServer") + " " + CurrentConnectionName, hTray->icon());
|
||||
hTray->setToolTip(TRAY_TOOLTIP_PREFIX + tr("ConnectedToServer") + ": " + CurrentConnectionName);
|
||||
ui->statusLabel->setText(tr("Connected") + ": " + CurrentConnectionName);
|
||||
}
|
||||
|
||||
trayMenu->actions()[2]->setEnabled(!startFlag);
|
||||
@ -215,7 +215,7 @@ void MainWindow::on_stopButton_clicked()
|
||||
this->vinstance->Stop();
|
||||
hTray->setToolTip(TRAY_TOOLTIP_PREFIX);
|
||||
QFile(QV2RAY_GENERATED_FILE_PATH).remove();
|
||||
ui->statusLabel->setText(tr("#Disconnected"));
|
||||
ui->statusLabel->setText(tr("Disconnected"));
|
||||
ui->logText->clear();
|
||||
trayMenu->actions()[2]->setEnabled(true);
|
||||
trayMenu->actions()[3]->setEnabled(false);
|
||||
@ -235,7 +235,7 @@ void MainWindow::on_restartButton_clicked()
|
||||
void MainWindow::closeEvent(QCloseEvent *event)
|
||||
{
|
||||
this->hide();
|
||||
trayMenu->actions()[0]->setText(tr("#Show"));
|
||||
trayMenu->actions()[0]->setText(tr("Show"));
|
||||
event->ignore();
|
||||
}
|
||||
|
||||
@ -280,10 +280,10 @@ void MainWindow::ToggleVisibility()
|
||||
SetWindowPos(HWND(this->winId()), HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
|
||||
SetWindowPos(HWND(this->winId()), HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE | SWP_NOSIZE | SWP_SHOWWINDOW);
|
||||
#endif
|
||||
trayMenu->actions()[0]->setText(tr("#Hide"));
|
||||
trayMenu->actions()[0]->setText(tr("Hide"));
|
||||
} else {
|
||||
this->hide();
|
||||
trayMenu->actions()[0]->setText(tr("#Show"));
|
||||
trayMenu->actions()[0]->setText(tr("Show"));
|
||||
}
|
||||
}
|
||||
|
||||
@ -317,31 +317,31 @@ void MainWindow::ShowAndSetConnection(int index, bool SetConnection, bool ApplyC
|
||||
ui->_OutBoundTypeLabel->setText(outboundType);
|
||||
|
||||
if (outboundType == "vmess") {
|
||||
auto x = StructFromJsonString<VMessServerObject>(JsonToString(outBoundRoot["settings"].toObject()["vnext"].toArray().first().toObject()));
|
||||
ui->_hostLabel->setText(QSTRING(x.address));
|
||||
ui->_portLabel->setText(QSTRING(to_string(x.port)));
|
||||
auto user = QList<VMessServerObject::UserObject>::fromStdList(x.users).first();
|
||||
auto _configString = tr("#UUID") + ": " + QSTRING(user.id)
|
||||
auto Server = StructFromJsonString<VMessServerObject>(JsonToString(outBoundRoot["settings"].toObject()["vnext"].toArray().first().toObject()));
|
||||
ui->_hostLabel->setText(QSTRING(Server.address));
|
||||
ui->_portLabel->setText(QSTRING(to_string(Server.port)));
|
||||
auto user = QList<VMessServerObject::UserObject>::fromStdList(Server.users).first();
|
||||
auto _configString = tr("UUID") + ": " + QSTRING(user.id)
|
||||
+ "\r\n"
|
||||
+ tr("#AlterID") + ": " + QSTRING(to_string(user.alterId))
|
||||
+ tr("AlterID") + ": " + QSTRING(to_string(user.alterId))
|
||||
+ "\r\n"
|
||||
+ tr("#Transport") + ": " + outBoundRoot["streamSettings"].toObject()["network"].toString();
|
||||
+ tr("Transport") + ": " + outBoundRoot["streamSettings"].toObject()["network"].toString();
|
||||
ui->detailInfoTxt->setPlainText(_configString);
|
||||
} else if (outboundType == "shadowsocks") {
|
||||
auto x = JsonToString(outBoundRoot["settings"].toObject()["servers"].toArray().first().toObject());
|
||||
auto Server = StructFromJsonString<ShadowSocksServer>(x);
|
||||
ui->_hostLabel->setText(QSTRING(Server.address));
|
||||
ui->_portLabel->setText(QSTRING(to_string(Server.port)));
|
||||
auto _configString = tr("#Email") + ": " + QSTRING(Server.email)
|
||||
auto _configString = tr("Email") + ": " + QSTRING(Server.email)
|
||||
+ "\r\n"
|
||||
+ tr("#Encryption") + ": " + QSTRING(Server.method);
|
||||
+ tr("Encryption") + ": " + QSTRING(Server.method);
|
||||
ui->detailInfoTxt->setPlainText(_configString);
|
||||
} else if (outboundType == "socks") {
|
||||
auto x = JsonToString(outBoundRoot["settings"].toObject()["servers"].toArray().first().toObject());
|
||||
auto Server = StructFromJsonString<SocksServerObject>(x);
|
||||
ui->_hostLabel->setText(QSTRING(Server.address));
|
||||
ui->_portLabel->setText(QSTRING(to_string(Server.port)));
|
||||
auto _configString = tr("#Username") + ": " + QSTRING(Server.users.front().user);
|
||||
auto _configString = tr("Username") + ": " + QSTRING(Server.users.front().user);
|
||||
ui->detailInfoTxt->setPlainText(_configString);
|
||||
}
|
||||
|
||||
@ -416,7 +416,7 @@ void MainWindow::on_connectionListWidget_itemChanged(QListWidgetItem *item)
|
||||
auto configList = QList<string>::fromStdList(config.configs);
|
||||
|
||||
if (newName.trimmed().isEmpty()) {
|
||||
QvMessageBox(this, tr("#RenameConnection"), tr("#CannotUseEmptyName"));
|
||||
QvMessageBox(this, tr("RenameConnection"), tr("CannotUseEmptyName"));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -425,7 +425,7 @@ void MainWindow::on_connectionListWidget_itemChanged(QListWidgetItem *item)
|
||||
|
||||
if (originalName != newName) {
|
||||
if (configList.contains(newName.toStdString())) {
|
||||
QvMessageBox(this, tr("#RenameConnection"), tr("#DuplicatedConnectionName"));
|
||||
QvMessageBox(this, tr("RenameConnection"), tr("DuplicatedConnectionName"));
|
||||
return;
|
||||
}
|
||||
|
||||
@ -452,7 +452,7 @@ void MainWindow::on_connectionListWidget_itemChanged(QListWidgetItem *item)
|
||||
|
||||
void MainWindow::on_removeConfigButton_clicked()
|
||||
{
|
||||
if (QvMessageBoxAsk(this, tr("#RemoveConnection"), tr("#RemoveConnectionConfirm")) == QMessageBox::Yes) {
|
||||
if (QvMessageBoxAsk(this, tr("RemoveConnection"), tr("RemoveConnectionConfirm")) == QMessageBox::Yes) {
|
||||
auto conf = GetGlobalConfig();
|
||||
QList<string> list = QList<string>::fromStdList(conf.configs);
|
||||
auto currentSelected = ui->connectionListWidget->currentIndex().row();
|
||||
@ -492,7 +492,7 @@ void MainWindow::on_editConfigButton_clicked()
|
||||
auto index = ui->connectionListWidget->currentIndex().row();
|
||||
|
||||
if (index < 0) {
|
||||
QvMessageBox(this, tr("#NoConfigSelected"), tr("#PleaseSelectAConfig"));
|
||||
QvMessageBox(this, tr("NoConfigSelected"), tr("PleaseSelectAConfig"));
|
||||
return;
|
||||
}
|
||||
|
||||
|
@ -44,7 +44,7 @@
|
||||
<item>
|
||||
<widget class="QPushButton" name="startButton">
|
||||
<property name="text">
|
||||
<string>#Connect</string>
|
||||
<string>Connect</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -54,21 +54,21 @@
|
||||
<bool>false</bool>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>#Disconnect</string>
|
||||
<string>Disconnect</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="clearlogButton">
|
||||
<property name="text">
|
||||
<string>#ClearLog</string>
|
||||
<string>Clear Log</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="prefrencesBtn">
|
||||
<property name="text">
|
||||
<string>#Preferences</string>
|
||||
<string>Prefrences</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -91,7 +91,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="statusLabel">
|
||||
<property name="text">
|
||||
<string>#Stopped</string>
|
||||
<string>Stopped</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -100,20 +100,20 @@
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>#HostList</string>
|
||||
<string>Host List</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1" rowspan="3">
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>#CurrentConfigDetail</string>
|
||||
<string>Config Details</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>#OutBoundType</string>
|
||||
<string>Type</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -127,7 +127,7 @@
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>#Host</string>
|
||||
<string>Host</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -141,7 +141,7 @@
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>#Port</string>
|
||||
<string>Port</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -155,7 +155,7 @@
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>#DetailInfo</string>
|
||||
<string>Detail</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -323,7 +323,7 @@
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string>#Log</string>
|
||||
<string>Log</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@ -33,13 +33,13 @@
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
<string>#General</string>
|
||||
<string>General</string>
|
||||
</attribute>
|
||||
<layout class="QFormLayout" name="formLayout_5">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_6">
|
||||
<property name="text">
|
||||
<string>#Language</string>
|
||||
<string>Language</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -66,7 +66,7 @@
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_7">
|
||||
<property name="text">
|
||||
<string>#RunAsRoot</string>
|
||||
<string>Run As Root</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -80,7 +80,7 @@
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label">
|
||||
<property name="text">
|
||||
<string>#LogLevel</string>
|
||||
<string>Log Level</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -128,7 +128,7 @@
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_19">
|
||||
<property name="text">
|
||||
<string>#AutoStartEntry</string>
|
||||
<string>Automatically Connect To</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -144,7 +144,7 @@
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_14">
|
||||
<property name="text">
|
||||
<string>#VCoreExePath</string>
|
||||
<string>v2ray Core Path</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -165,7 +165,7 @@
|
||||
<item row="5" column="0">
|
||||
<widget class="QLabel" name="label_15">
|
||||
<property name="text">
|
||||
<string>#VCoreAssetsPath</string>
|
||||
<string>v2ray Assets Path</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -187,27 +187,27 @@
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<attribute name="title">
|
||||
<string>#MuxSettings</string>
|
||||
<string>Mux Settings</string>
|
||||
</attribute>
|
||||
<layout class="QFormLayout" name="formLayout_3">
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_5">
|
||||
<property name="text">
|
||||
<string>#Enabled</string>
|
||||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QCheckBox" name="muxEnabledCB">
|
||||
<property name="text">
|
||||
<string>#Enabled</string>
|
||||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_8">
|
||||
<property name="text">
|
||||
<string>#Concurrency</string>
|
||||
<string>Concurrency</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -228,7 +228,7 @@
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_3">
|
||||
<attribute name="title">
|
||||
<string>#InBoundSettings</string>
|
||||
<string>InBound Settings</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="verticalLayout" stretch="0,0,1">
|
||||
<item>
|
||||
@ -236,7 +236,7 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_22">
|
||||
<property name="text">
|
||||
<string>#ListenIP</string>
|
||||
<string>Listen IP</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -250,20 +250,20 @@
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox_2">
|
||||
<property name="title">
|
||||
<string>#SOCKSBoundSettings</string>
|
||||
<string>SOCKS InBound Settings</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_2">
|
||||
<item row="0" column="1">
|
||||
<widget class="QCheckBox" name="socksCB">
|
||||
<property name="text">
|
||||
<string>#Enabled</string>
|
||||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_4">
|
||||
<property name="text">
|
||||
<string>#Port</string>
|
||||
<string>Port</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -277,21 +277,21 @@
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string>#Auth</string>
|
||||
<string>Authentication</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QCheckBox" name="socksAuthCB">
|
||||
<property name="text">
|
||||
<string>#Enabled</string>
|
||||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="text">
|
||||
<string>#Username</string>
|
||||
<string>Username</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -301,7 +301,7 @@
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="text">
|
||||
<string>#Password</string>
|
||||
<string>Password</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -314,7 +314,7 @@
|
||||
<item>
|
||||
<widget class="QGroupBox" name="groupBox">
|
||||
<property name="title">
|
||||
<string>#HTTPInBoundSettings</string>
|
||||
<string>HTTP InBound Settings</string>
|
||||
</property>
|
||||
<layout class="QFormLayout" name="formLayout_7">
|
||||
<item row="0" column="1">
|
||||
@ -323,14 +323,14 @@
|
||||
<enum>Qt::LeftToRight</enum>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>#Enabled</string>
|
||||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_3">
|
||||
<property name="text">
|
||||
<string>#Port</string>
|
||||
<string>Port</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -350,21 +350,21 @@
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_9">
|
||||
<property name="text">
|
||||
<string>#Auth</string>
|
||||
<string>Authentication</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QCheckBox" name="httpAuthCB">
|
||||
<property name="text">
|
||||
<string>#Enabled</string>
|
||||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_2">
|
||||
<property name="text">
|
||||
<string>#Username</string>
|
||||
<string>Username</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -374,7 +374,7 @@
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_13">
|
||||
<property name="text">
|
||||
<string>#Password</string>
|
||||
<string>Password</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -403,7 +403,7 @@
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_4">
|
||||
<attribute name="title">
|
||||
<string>#RouteSettings</string>
|
||||
<string>Route Settings</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_3">
|
||||
<item>
|
||||
@ -411,42 +411,42 @@
|
||||
<item row="0" column="0">
|
||||
<widget class="QLabel" name="label_16">
|
||||
<property name="text">
|
||||
<string>#ProxyGlobal</string>
|
||||
<string>Enable Proxy</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<widget class="QCheckBox" name="proxyDefaultCb">
|
||||
<property name="text">
|
||||
<string>#Enabled</string>
|
||||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="0">
|
||||
<widget class="QLabel" name="label_17">
|
||||
<property name="text">
|
||||
<string>#ProxyCN</string>
|
||||
<string>Chinese Addresses</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_18">
|
||||
<property name="text">
|
||||
<string>#WithLocalDNS</string>
|
||||
<string>Use Local DNS</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<widget class="QCheckBox" name="proxyCNCb">
|
||||
<property name="text">
|
||||
<string>#Enabled</string>
|
||||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<widget class="QCheckBox" name="localDNSCb">
|
||||
<property name="text">
|
||||
<string>#Enabled</string>
|
||||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -458,7 +458,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_21">
|
||||
<property name="text">
|
||||
<string>#DNSList</string>
|
||||
<string>DNS List</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -472,7 +472,7 @@
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_5">
|
||||
<attribute name="title">
|
||||
<string>#About</string>
|
||||
<string>About</string>
|
||||
</attribute>
|
||||
<layout class="QHBoxLayout" name="horizontalLayout" stretch="0,0">
|
||||
<item>
|
||||
@ -542,7 +542,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_24">
|
||||
<property name="text">
|
||||
<string>#Version:</string>
|
||||
<string>Version:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -575,7 +575,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_27">
|
||||
<property name="text">
|
||||
<string>#OfficialRepo:</string>
|
||||
<string>Official Repo:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -626,7 +626,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_29">
|
||||
<property name="text">
|
||||
<string>#License:</string>
|
||||
<string>License:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -681,7 +681,7 @@
|
||||
</size>
|
||||
</property>
|
||||
<property name="text">
|
||||
<string>#AboutQt</string>
|
||||
<string>About Qt</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
@ -716,14 +716,14 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_23">
|
||||
<property name="text">
|
||||
<string>#IgnoreNextVersion</string>
|
||||
<string>Ingore Next Version</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QPushButton" name="cancelIgnoreVersionBtn">
|
||||
<property name="text">
|
||||
<string>#CancelIngore</string>
|
||||
<string>Cancel</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user