[refactor] Some code refactors

This commit is contained in:
Leroy.H.Y 2020-01-01 18:56:06 +08:00
parent f85e697595
commit 16b9841034
No known key found for this signature in database
GPG Key ID: 6AC1673B587DC37D
9 changed files with 85 additions and 60 deletions

View File

@ -1 +1 @@
2525
2550

View File

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

View File

@ -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";

View File

@ -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.

View File

@ -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));

View File

@ -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);
};

View File

@ -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);
}

View File

@ -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();
}

View File

@ -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>