added local port field to v2ray settings page
- some code style refactoring
This commit is contained in:
parent
2b0ba2aff9
commit
36fae9152f
10 changed files with 88 additions and 65 deletions
|
|
@ -52,8 +52,7 @@ ErrorCode OpenVpnOverCloakProtocol::start()
|
|||
args << "-u";
|
||||
}
|
||||
|
||||
qDebug().noquote() << "OpenVpnOverCloakProtocol::start()"
|
||||
<< cloakExecPath() << args.join(" ");
|
||||
qDebug().noquote() << "OpenVpnOverCloakProtocol::start()" << cloakExecPath() << args.join(" ");
|
||||
|
||||
m_ckProcess.setProcessChannelMode(QProcess::MergedChannels);
|
||||
|
||||
|
|
@ -84,8 +83,9 @@ ErrorCode OpenVpnOverCloakProtocol::start()
|
|||
setConnectionState(VpnConnectionState::Connecting);
|
||||
|
||||
return OpenVpnProtocol::start();
|
||||
} else {
|
||||
return ErrorCode::CloakExecutableMissing;
|
||||
}
|
||||
else return ErrorCode::CloakExecutableMissing;
|
||||
#endif
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -32,7 +32,6 @@ ErrorCode ShadowSocksVpnProtocol::start()
|
|||
return lastError();
|
||||
}
|
||||
|
||||
|
||||
#ifndef Q_OS_IOS
|
||||
if (Utils::processIsRunning(Utils::executable("ss-local", false))) {
|
||||
Utils::killProcessByName(Utils::executable("ss-local", false));
|
||||
|
|
@ -48,12 +47,10 @@ ErrorCode ShadowSocksVpnProtocol::start()
|
|||
#ifdef Q_OS_LINUX
|
||||
QStringList args = QStringList() << "-c" << m_shadowSocksCfgFile.fileName();
|
||||
#else
|
||||
QStringList args = QStringList() << "-c" << m_shadowSocksCfgFile.fileName()
|
||||
<< "--no-delay";
|
||||
QStringList args = QStringList() << "-c" << m_shadowSocksCfgFile.fileName() << "--no-delay";
|
||||
#endif
|
||||
|
||||
qDebug().noquote() << "ShadowSocksVpnProtocol::start()"
|
||||
<< shadowSocksExecPath() << args.join(" ");
|
||||
qDebug().noquote() << "ShadowSocksVpnProtocol::start()" << shadowSocksExecPath() << args.join(" ");
|
||||
|
||||
m_ssProcess.setProcessChannelMode(QProcess::MergedChannels);
|
||||
|
||||
|
|
@ -84,8 +81,9 @@ ErrorCode ShadowSocksVpnProtocol::start()
|
|||
setConnectionState(VpnConnectionState::Connecting);
|
||||
|
||||
return OpenVpnProtocol::start();
|
||||
} else {
|
||||
return ErrorCode::ShadowSocksExecutableMissing;
|
||||
}
|
||||
else return ErrorCode::ShadowSocksExecutableMissing;
|
||||
#else
|
||||
return ErrorCode::NotImplementedError;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -1,9 +1,9 @@
|
|||
#ifndef SHADOWSOCKSVPNPROTOCOL_H
|
||||
#define SHADOWSOCKSVPNPROTOCOL_H
|
||||
|
||||
#include "openvpnprotocol.h"
|
||||
#include "QProcess"
|
||||
#include "containers/containers_defs.h"
|
||||
|
||||
#include "openvpnprotocol.h"
|
||||
|
||||
class ShadowSocksVpnProtocol : public OpenVpnProtocol
|
||||
{
|
||||
|
|
@ -14,20 +14,18 @@ public:
|
|||
ErrorCode start() override;
|
||||
void stop() override;
|
||||
|
||||
protected:
|
||||
void readShadowSocksConfiguration(const QJsonObject &configuration);
|
||||
|
||||
protected:
|
||||
QJsonObject m_shadowSocksConfig;
|
||||
|
||||
private:
|
||||
static QString shadowSocksExecPath();
|
||||
void readShadowSocksConfiguration(const QJsonObject &configuration);
|
||||
|
||||
private:
|
||||
#ifndef Q_OS_IOS
|
||||
QProcess m_ssProcess;
|
||||
#endif
|
||||
QTemporaryFile m_shadowSocksCfgFile;
|
||||
|
||||
static QString shadowSocksExecPath();
|
||||
};
|
||||
|
||||
#endif // SHADOWSOCKSVPNPROTOCOL_H
|
||||
|
|
|
|||
|
|
@ -32,8 +32,7 @@ ErrorCode V2RayProtocol::start()
|
|||
|
||||
QStringList args = QStringList() << "-c" << m_v2RayConfigFile.fileName();
|
||||
|
||||
qDebug().noquote() << "V2RayProtocol::start()"
|
||||
<< v2RayExecPath() << args.join(" ");
|
||||
qDebug().noquote() << "V2RayProtocol::start()" << v2RayExecPath() << args.join(" ");
|
||||
|
||||
m_v2RayProcess.setProcessChannelMode(QProcess::MergedChannels);
|
||||
|
||||
|
|
@ -64,7 +63,9 @@ ErrorCode V2RayProtocol::start()
|
|||
setConnectionState(VpnConnectionState::Connecting);
|
||||
|
||||
return OpenVpnProtocol::start();
|
||||
} else return ErrorCode::V2RayExecutableMissing;
|
||||
} else {
|
||||
return ErrorCode::V2RayExecutableMissing;
|
||||
}
|
||||
#else
|
||||
return ErrorCode::NotImplementedError;
|
||||
#endif
|
||||
|
|
|
|||
|
|
@ -112,13 +112,13 @@ void CloakLogic::onPushButtonSaveClicked()
|
|||
|
||||
progressBarFunc.setTextVisibleFunc(true);
|
||||
progressBarFunc.setTextFunc(QString("Configuring..."));
|
||||
ErrorCode e = uiLogic()->pageLogic<ServerConfiguringProgressLogic>()->doInstallAction([this, containerConfig, &newContainerConfig](){
|
||||
|
||||
auto installAction = [this, containerConfig, &newContainerConfig]() {
|
||||
return m_serverController->updateContainer(m_settings->serverCredentials(uiLogic()->selectedServerIndex),
|
||||
uiLogic()->selectedDockerContainer,
|
||||
containerConfig,
|
||||
newContainerConfig);
|
||||
},
|
||||
pageFunc, progressBarFunc,
|
||||
uiLogic()->selectedDockerContainer, containerConfig, newContainerConfig);
|
||||
};
|
||||
|
||||
ErrorCode e = uiLogic()->pageLogic<ServerConfiguringProgressLogic>()->doInstallAction(installAction, pageFunc, progressBarFunc,
|
||||
saveButtonFunc, waitInfoFunc,
|
||||
busyInfoFuncy, cancelButtonFunc);
|
||||
|
||||
|
|
|
|||
|
|
@ -162,13 +162,13 @@ void OpenVpnLogic::onPushButtonSaveClicked()
|
|||
|
||||
progressBarFunc.setTextVisibleFunc(true);
|
||||
progressBarFunc.setTextFunc(QString("Configuring..."));
|
||||
ErrorCode e = uiLogic()->pageLogic<ServerConfiguringProgressLogic>()->doInstallAction([this, containerConfig, &newContainerConfig](){
|
||||
|
||||
auto installAction = [this, containerConfig, &newContainerConfig]() {
|
||||
return m_serverController->updateContainer(m_settings->serverCredentials(uiLogic()->selectedServerIndex),
|
||||
uiLogic()->selectedDockerContainer,
|
||||
containerConfig,
|
||||
newContainerConfig);
|
||||
},
|
||||
pageFunc, progressBarFunc,
|
||||
uiLogic()->selectedDockerContainer, containerConfig, newContainerConfig);
|
||||
};
|
||||
|
||||
ErrorCode e = uiLogic()->pageLogic<ServerConfiguringProgressLogic>()->doInstallAction(installAction, pageFunc, progressBarFunc,
|
||||
saveButtonFunc, waitInfoFunc,
|
||||
busyInfoFuncy, cancelButtonFunc);
|
||||
|
||||
|
|
|
|||
|
|
@ -50,6 +50,7 @@ QJsonObject ShadowSocksLogic::getProtocolConfigFromPage(QJsonObject oldConfig)
|
|||
void ShadowSocksLogic::onPushButtonSaveClicked()
|
||||
{
|
||||
QJsonObject protocolConfig = m_settings->protocolConfig(uiLogic()->selectedServerIndex, uiLogic()->selectedDockerContainer, Proto::ShadowSocks);
|
||||
protocolConfig = getProtocolConfigFromPage(protocolConfig);
|
||||
|
||||
QJsonObject containerConfig = m_settings->containerConfig(uiLogic()->selectedServerIndex, uiLogic()->selectedDockerContainer);
|
||||
QJsonObject newContainerConfig = containerConfig;
|
||||
|
|
@ -107,9 +108,7 @@ void ShadowSocksLogic::onPushButtonSaveClicked()
|
|||
|
||||
auto installAction = [this, containerConfig, &newContainerConfig]() {
|
||||
return m_serverController->updateContainer(m_settings->serverCredentials(uiLogic()->selectedServerIndex),
|
||||
uiLogic()->selectedDockerContainer,
|
||||
containerConfig,
|
||||
newContainerConfig);
|
||||
uiLogic()->selectedDockerContainer, containerConfig, newContainerConfig);
|
||||
};
|
||||
ErrorCode e = uiLogic()->pageLogic<ServerConfiguringProgressLogic>()->doInstallAction(installAction, pageFunc, progressBarFunc,
|
||||
saveButtonFunc, waitInfoFunc,
|
||||
|
|
|
|||
|
|
@ -11,14 +11,16 @@ using namespace PageEnumNS;
|
|||
|
||||
V2RayLogic::V2RayLogic(UiLogic *logic, QObject *parent):
|
||||
PageProtocolLogicBase(logic, parent),
|
||||
m_lineEditPortText{},
|
||||
m_lineEditServerPortText{},
|
||||
m_pushButtonSaveVisible{false},
|
||||
m_progressBarResetVisible{false},
|
||||
m_lineEditPortEnabled{false},
|
||||
m_lineEditServerPortEnabled{false},
|
||||
m_labelInfoVisible{true},
|
||||
m_labelInfoText{},
|
||||
m_progressBarResetValue{0},
|
||||
m_progressBarResetMaximium{100}
|
||||
m_progressBarResetMaximium{100},
|
||||
m_lineEditLocalPortEnabled{false},
|
||||
m_lineEditLocalPortText{}
|
||||
{
|
||||
|
||||
}
|
||||
|
|
@ -29,21 +31,25 @@ void V2RayLogic::updateProtocolPage(const QJsonObject &v2RayConfig, DockerContai
|
|||
set_pushButtonSaveVisible(haveAuthData);
|
||||
set_progressBarResetVisible(haveAuthData);
|
||||
|
||||
set_lineEditPortText(v2RayConfig.value(config_key::port).
|
||||
toString(protocols::v2ray::defaultServerPort));
|
||||
set_lineEditServerPortText(v2RayConfig.value(config_key::port).toString(protocols::v2ray::defaultServerPort));
|
||||
set_lineEditServerPortEnabled(container == DockerContainer::V2Ray);
|
||||
|
||||
set_lineEditLocalPortText(v2RayConfig.value(config_key::local_port).toString(protocols::v2ray::defaultLocalPort));
|
||||
set_lineEditLocalPortEnabled(container == DockerContainer::V2Ray);
|
||||
|
||||
set_lineEditPortEnabled(container == DockerContainer::V2Ray);
|
||||
}
|
||||
|
||||
QJsonObject V2RayLogic::getProtocolConfigFromPage(QJsonObject oldConfig)
|
||||
{
|
||||
oldConfig.insert(config_key::port, lineEditPortText());
|
||||
oldConfig.insert(config_key::port, lineEditServerPortText());
|
||||
oldConfig.insert(config_key::local_port, lineEditLocalPortText());
|
||||
return oldConfig;
|
||||
}
|
||||
|
||||
void V2RayLogic::onPushButtonSaveClicked()
|
||||
{
|
||||
QJsonObject protocolConfig = m_settings->protocolConfig(uiLogic()->selectedServerIndex, uiLogic()->selectedDockerContainer, Proto::V2Ray);
|
||||
protocolConfig = getProtocolConfigFromPage(protocolConfig);
|
||||
|
||||
QJsonObject containerConfig = m_settings->containerConfig(uiLogic()->selectedServerIndex, uiLogic()->selectedDockerContainer);
|
||||
QJsonObject newContainerConfig = containerConfig;
|
||||
|
|
@ -101,9 +107,7 @@ void V2RayLogic::onPushButtonSaveClicked()
|
|||
|
||||
auto installAction = [this, containerConfig, &newContainerConfig]() {
|
||||
return m_serverController->updateContainer(m_settings->serverCredentials(uiLogic()->selectedServerIndex),
|
||||
uiLogic()->selectedDockerContainer,
|
||||
containerConfig,
|
||||
newContainerConfig);
|
||||
uiLogic()->selectedDockerContainer, containerConfig, newContainerConfig);
|
||||
};
|
||||
|
||||
ErrorCode e = uiLogic()->pageLogic<ServerConfiguringProgressLogic>()->doInstallAction(installAction, pageFunc, progressBarFunc,
|
||||
|
|
|
|||
|
|
@ -9,8 +9,11 @@ class V2RayLogic : public PageProtocolLogicBase
|
|||
{
|
||||
Q_OBJECT
|
||||
|
||||
AUTO_PROPERTY(bool, lineEditPortEnabled)
|
||||
AUTO_PROPERTY(QString, lineEditPortText)
|
||||
AUTO_PROPERTY(bool, lineEditServerPortEnabled)
|
||||
AUTO_PROPERTY(QString, lineEditServerPortText)
|
||||
|
||||
AUTO_PROPERTY(bool, lineEditLocalPortEnabled)
|
||||
AUTO_PROPERTY(QString, lineEditLocalPortText)
|
||||
|
||||
AUTO_PROPERTY(bool, labelInfoVisible)
|
||||
AUTO_PROPERTY(QString, labelInfoText)
|
||||
|
|
|
|||
|
|
@ -43,11 +43,31 @@ PageProtocolBase {
|
|||
TextFieldType {
|
||||
Layout.fillWidth: true
|
||||
height: 31
|
||||
text: logic.lineEditPortText
|
||||
text: logic.lineEditServerPortText
|
||||
onEditingFinished: {
|
||||
logic.lineEditPortText = text
|
||||
logic.lineEditServerPortText = text
|
||||
}
|
||||
enabled: logic.lineEditPortEnabled
|
||||
enabled: logic.lineEditServerPortEnabled
|
||||
}
|
||||
}
|
||||
|
||||
RowLayout {
|
||||
Layout.fillWidth: true
|
||||
|
||||
LabelType {
|
||||
Layout.preferredWidth: 0.3 * root.width - 10
|
||||
height: 31
|
||||
text: qsTr("Local port")
|
||||
}
|
||||
|
||||
TextFieldType {
|
||||
Layout.fillWidth: true
|
||||
height: 31
|
||||
text: logic.lineEditLocalPortText
|
||||
onEditingFinished: {
|
||||
logic.lineEditLocalPortText = text
|
||||
}
|
||||
enabled: logic.lineEditLocalPortEnabled
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue