mirror of
https://github.com/Qv2ray/Qv2ray.git
synced 2025-05-20 02:40:20 +08:00
[refactor] Some code refactors
This commit is contained in:
parent
f85e697595
commit
16b9841034
@ -1 +1 @@
|
||||
2525
|
||||
2550
|
||||
|
@ -12,9 +12,11 @@
|
||||
const int QV2RAY_CONFIG_VERSION = 6;
|
||||
|
||||
// Linux users and DEs should handle the darkMode UI themselves.
|
||||
#ifndef QV2RAY_USE_BUILTIN_DARKTHEME
|
||||
# ifndef Q_OS_LINUX
|
||||
# define QV2RAY_USE_BUILTIN_DARKTHEME
|
||||
# endif
|
||||
#endif
|
||||
|
||||
// Base folder suffix.
|
||||
#ifdef QT_DEBUG
|
||||
@ -37,15 +39,22 @@ const int QV2RAY_CONFIG_VERSION = 6;
|
||||
#define QV2RAY_GENERATED_DIR (QV2RAY_CONFIG_DIR + "generated/")
|
||||
#define QV2RAY_GENERATED_FILE_PATH (QV2RAY_GENERATED_DIR + "config.gen.json")
|
||||
|
||||
#ifndef QV2RAY_DEFAULT_VCORE_PATH
|
||||
#if ! defined (QV2RAY_DEFAULT_VCORE_PATH) && ! defined (QV2RAY_DEFAULT_VASSETS_PATH)
|
||||
# define QV2RAY_DEFAULT_VASSETS_PATH (QV2RAY_CONFIG_DIR + "vcore/")
|
||||
# ifdef Q_OS_WIN
|
||||
# define QV2RAY_DEFAULT_VCORE_PATH (QV2RAY_CONFIG_DIR + "vcore/v2ray.exe")
|
||||
# else
|
||||
# define QV2RAY_DEFAULT_VCORE_PATH (QV2RAY_CONFIG_DIR + "vcore/v2ray")
|
||||
# endif
|
||||
#elif defined (QV2RAY_DEFAULT_VCORE_PATH) && defined (QV2RAY_DEFAULT_VASSETS_PATH)
|
||||
// ---- Using user-specified VCore and VAssets path
|
||||
#else
|
||||
# error Both QV2RAY_DEFAULT_VCORE_PATH and QV2RAY_DEFAULT_VASSETS_PATH need to present when specifying the paths.
|
||||
#endif
|
||||
|
||||
#undef _HAS_MANUAL_VCORE
|
||||
#undef _HAS_MANUAL_VASSETS
|
||||
|
||||
#define QV2RAY_VCORE_LOG_DIRNAME "logs/"
|
||||
#define QV2RAY_VCORE_ACCESS_LOG_FILENAME "access.log"
|
||||
#define QV2RAY_VCORE_ERROR_LOG_FILENAME "error.log"
|
||||
@ -60,7 +69,7 @@ const int QV2RAY_CONFIG_VERSION = 6;
|
||||
#define BLACK(obj) \
|
||||
obj->setPalette(this->palette());
|
||||
|
||||
#define QV2RAY_UI_RESOURCES_ROOT QString::fromStdString(QV2RAY_IS_DARKTHEME ? ":/icons/ui_dark/" : ":/icons/ui_light/")
|
||||
#define QV2RAY_UI_RESOURCES_ROOT (QV2RAY_IS_DARKTHEME ? QStringLiteral(":/icons/ui_dark/") : QStringLiteral(":/icons/ui_light/"))
|
||||
#define QICON_R(file) QIcon(QV2RAY_UI_RESOURCES_ROOT + file)
|
||||
|
||||
#define NEWLINE "\r\n"
|
||||
|
@ -25,7 +25,7 @@ namespace Qv2ray
|
||||
case 2: {
|
||||
// We copied those files.
|
||||
auto vCoreFilePath = root["v2CorePath"].toString();
|
||||
auto vCoreDestPath = QV2RAY_DEFAULT_VCORE_PATH;
|
||||
auto vCoreDestPath = QString(QV2RAY_DEFAULT_VCORE_PATH);
|
||||
// We also need v2ctl
|
||||
auto v2CtlFilePath = QFileInfo(vCoreFilePath).dir().path() + "/v2ctl";
|
||||
auto v2CtlDestPath = QFileInfo(vCoreDestPath).dir().path() + "/v2ctl";
|
||||
|
@ -146,8 +146,8 @@ bool initialiseQv2ray()
|
||||
}
|
||||
|
||||
Qv2rayConfig conf;
|
||||
conf.v2AssetsPath = QV2RAY_DEFAULT_VASSETS_PATH;
|
||||
conf.v2CorePath = QV2RAY_DEFAULT_VCORE_PATH;
|
||||
conf.v2AssetsPath = QString(QV2RAY_DEFAULT_VASSETS_PATH);
|
||||
conf.v2CorePath = QString(QV2RAY_DEFAULT_VCORE_PATH);
|
||||
conf.logLevel = 3;
|
||||
//
|
||||
// Save initial config.
|
||||
|
@ -332,7 +332,6 @@ void MainWindow::OnConfigListChanged(bool need_restart)
|
||||
connections.clear();
|
||||
connectionListWidget->clear();
|
||||
auto _regularConnections = GetRegularConnections(currentConfig.configs);
|
||||
//
|
||||
auto _subsConnections = GetSubscriptionConnections(currentConfig.subscriptions.keys());
|
||||
|
||||
for (auto i = 0; i < _regularConnections.count(); i++) {
|
||||
@ -562,7 +561,7 @@ void MainWindow::ShowAndSetConnection(QString guiConnectionName, bool SetConnect
|
||||
}
|
||||
|
||||
// Get Connection info
|
||||
auto host_port = MWGetConnectionPortNumber(currentSelectedName);
|
||||
auto host_port = MWGetConnectionInfo(currentSelectedName);
|
||||
_hostLabel->setText(get<0>(host_port));
|
||||
_portLabel->setText(QString::number(get<1>(host_port)));
|
||||
_OutBoundTypeLabel->setText(get<2>(host_port));
|
||||
|
@ -45,15 +45,11 @@ class MainWindow : public QMainWindow, Ui::MainWindow
|
||||
void UpdateVCoreLog(const QString &log);
|
||||
void OnConfigListChanged(bool need_restart);
|
||||
private slots:
|
||||
void setMasterLogHBar();
|
||||
void on_action_RCM_ShareQR_triggered();
|
||||
void on_startButton_clicked();
|
||||
void on_stopButton_clicked();
|
||||
void on_reconnectButton_clicked();
|
||||
void VersionUpdate(QByteArray &data);
|
||||
void on_activatedTray(QSystemTrayIcon::ActivationReason reason);
|
||||
void ToggleVisibility();
|
||||
void quit();
|
||||
void on_actionExit_triggered();
|
||||
void on_preferencesBtn_clicked();
|
||||
void on_connectionListWidget_doubleClicked(const QModelIndex &index);
|
||||
@ -69,10 +65,14 @@ class MainWindow : public QMainWindow, Ui::MainWindow
|
||||
void on_shareBtn_clicked();
|
||||
void on_duplicateBtn_clicked();
|
||||
void on_subsButton_clicked();
|
||||
//
|
||||
void ToggleVisibility();
|
||||
void setMasterLogHBar();
|
||||
void VersionUpdate(QByteArray &data);
|
||||
void quit();
|
||||
|
||||
public:
|
||||
static MainWindow *mwInstance;
|
||||
CONFIGROOT CurrentFullConfig;
|
||||
QString CurrentConnectionName = "";
|
||||
ConnectionInstance *vinstance;
|
||||
|
||||
@ -93,6 +93,7 @@ class MainWindow : public QMainWindow, Ui::MainWindow
|
||||
void SetEditWidgetEnable(bool enabled);
|
||||
void ShowAndSetConnection(QString currentText, bool SetConnection, bool Apply);
|
||||
Qv2rayConfig currentConfig;
|
||||
CONFIGROOT currentFullConfig;
|
||||
//
|
||||
// Charts
|
||||
QChartView *speedChartView;
|
||||
@ -148,7 +149,7 @@ class MainWindow : public QMainWindow, Ui::MainWindow
|
||||
bool MWtryStartConnection();
|
||||
void MWStopConnection();
|
||||
void MWTryPingConnection(const QString &alias);
|
||||
tuple<QString, int, QString> MWGetConnectionPortNumber(const QString &alias);
|
||||
tuple<QString, int, QString> MWGetConnectionInfo(const QString &alias);
|
||||
void MWSetSystemProxy();
|
||||
void MWClearSystemProxy(bool);
|
||||
};
|
||||
|
@ -106,8 +106,8 @@ void MainWindow::MWSetSystemProxy()
|
||||
bool MainWindow::MWtryStartConnection()
|
||||
{
|
||||
auto connectionRoot = connections[CurrentConnectionName].config;
|
||||
CurrentFullConfig = GenerateRuntimeConfig(connectionRoot);
|
||||
bool startFlag = this->vinstance->StartConnection(CurrentFullConfig, currentConfig.connectionConfig.statsPort);
|
||||
currentFullConfig = GenerateRuntimeConfig(connectionRoot);
|
||||
bool startFlag = this->vinstance->StartConnection(currentFullConfig, currentConfig.connectionConfig.statsPort);
|
||||
|
||||
if (startFlag) {
|
||||
bool usePAC = currentConfig.inboundConfig.pacConfig.enablePAC;
|
||||
@ -177,7 +177,7 @@ void MainWindow::MWStopConnection()
|
||||
void MainWindow::MWTryPingConnection(const QString &alias)
|
||||
{
|
||||
try {
|
||||
auto info = MWGetConnectionPortNumber(alias);
|
||||
auto info = MWGetConnectionInfo(alias);
|
||||
QString host = get<0>(info);
|
||||
int port = get<1>(info);
|
||||
tcpingModel->StartPing(alias, host, port);
|
||||
@ -186,12 +186,11 @@ void MainWindow::MWTryPingConnection(const QString &alias)
|
||||
}
|
||||
}
|
||||
|
||||
tuple<QString, int, QString> MainWindow::MWGetConnectionPortNumber(const QString &alias)
|
||||
tuple<QString, int, QString> MainWindow::MWGetConnectionInfo(const QString &alias)
|
||||
{
|
||||
if (!connections.contains(alias))
|
||||
return make_tuple(tr("N/A"), 0, tr("N/A"));
|
||||
|
||||
auto root = connections[alias].config;
|
||||
return GetConnectionInfo(root);
|
||||
return GetConnectionInfo(connections[alias].config);
|
||||
}
|
||||
|
||||
|
@ -377,8 +377,8 @@ void PreferencesWindow::on_tProxyCheckBox_stateChanged(int arg1)
|
||||
// Only trying to remove file when they are not in the default dir.
|
||||
// (In other words...) Keep using the current files. <Because we don't know where else we can copy the file from...>
|
||||
if (QFile(QV2RAY_DEFAULT_VCORE_PATH).exists()) {
|
||||
LOG(MODULE_FILE, QV2RAY_DEFAULT_VCORE_PATH.toStdString() + ": File already exists.")
|
||||
LOG(MODULE_FILE, QV2RAY_DEFAULT_VCORE_PATH.toStdString() + ": Deleting file.")
|
||||
LOG(MODULE_FILE, QString(QV2RAY_DEFAULT_VCORE_PATH).toStdString() + ": File already exists.")
|
||||
LOG(MODULE_FILE, QString(QV2RAY_DEFAULT_VCORE_PATH).toStdString() + ": Deleting file.")
|
||||
QFile(QV2RAY_DEFAULT_VCORE_PATH).remove();
|
||||
}
|
||||
|
||||
|
@ -42,7 +42,7 @@
|
||||
<enum>QTabWidget::Rounded</enum>
|
||||
</property>
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
<number>1</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<attribute name="title">
|
||||
@ -525,7 +525,7 @@
|
||||
</item>
|
||||
<item>
|
||||
<layout class="QGridLayout" name="gridLayout_7">
|
||||
<item row="0" column="0" rowspan="2">
|
||||
<item row="0" column="0">
|
||||
<widget class="QGroupBox" name="socksGroupBox">
|
||||
<property name="title">
|
||||
<string>SOCKS Settings</string>
|
||||
@ -559,62 +559,79 @@
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<layout class="QHBoxLayout" name="horizontalLayout_8">
|
||||
<item>
|
||||
<widget class="QCheckBox" name="socksUDPCB">
|
||||
<property name="text">
|
||||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<item>
|
||||
<spacer name="horizontalSpacer_5">
|
||||
<property name="orientation">
|
||||
<enum>Qt::Horizontal</enum>
|
||||
</property>
|
||||
<property name="sizeHint" stdset="0">
|
||||
<size>
|
||||
<width>40</width>
|
||||
<height>20</height>
|
||||
</size>
|
||||
</property>
|
||||
</spacer>
|
||||
</item>
|
||||
<item>
|
||||
<widget class="QLabel" name="label_25">
|
||||
<property name="text">
|
||||
<string>Local IP (For UDP)</string>
|
||||
<string>IP:</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="2" column="1">
|
||||
<item>
|
||||
<widget class="QLineEdit" name="socksUDPIP">
|
||||
<property name="placeholderText">
|
||||
<string notr="true">127.0.0.1</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="0">
|
||||
</layout>
|
||||
</item>
|
||||
<item row="2" column="0">
|
||||
<widget class="QLabel" name="label_10">
|
||||
<property name="text">
|
||||
<string>Authentication</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="3" column="1">
|
||||
<item row="2" column="1">
|
||||
<widget class="QCheckBox" name="socksAuthCB">
|
||||
<property name="text">
|
||||
<string>Enabled</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="0">
|
||||
<item row="3" column="0">
|
||||
<widget class="QLabel" name="label_11">
|
||||
<property name="text">
|
||||
<string>Username</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="4" column="1">
|
||||
<item row="3" column="1">
|
||||
<widget class="QLineEdit" name="socksAuthUsernameTxt">
|
||||
<property name="placeholderText">
|
||||
<string notr="true">user</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="0">
|
||||
<item row="4" column="0">
|
||||
<widget class="QLabel" name="label_12">
|
||||
<property name="text">
|
||||
<string>Password</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="5" column="1">
|
||||
<item row="4" column="1">
|
||||
<widget class="QLineEdit" name="socksAuthPasswordTxt">
|
||||
<property name="placeholderText">
|
||||
<string notr="true">pass</string>
|
||||
@ -624,7 +641,7 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="0" column="1">
|
||||
<item row="1" column="0">
|
||||
<widget class="QGroupBox" name="httpGroupBox">
|
||||
<property name="title">
|
||||
<string>HTTP Settings</string>
|
||||
@ -695,7 +712,7 @@
|
||||
</layout>
|
||||
</widget>
|
||||
</item>
|
||||
<item row="1" column="1">
|
||||
<item row="0" column="1" rowspan="2">
|
||||
<widget class="QGroupBox" name="pacGroupBox">
|
||||
<property name="title">
|
||||
<string>PAC Settings</string>
|
||||
|
Loading…
Reference in New Issue
Block a user