mirror of
https://github.com/amnezia-vpn/amnezia-client.git
synced 2026-06-23 02:00:20 +07:00
fixed async update xray/mtproxy/telemt
This commit is contained in:
@@ -306,14 +306,21 @@ void InstallUiController::updateServerConfig(const QString &serverId, int contai
|
|||||||
|| container == DockerContainer::Xray || container == DockerContainer::SSXray;
|
|| container == DockerContainer::Xray || container == DockerContainer::SSXray;
|
||||||
|
|
||||||
if (asyncUpdate) {
|
if (asyncUpdate) {
|
||||||
emit serverIsBusy(true);
|
// serverIsBusy is rendered by PageSetupWizardInstalling (used by Xray/SSXray)
|
||||||
|
// as "the server is busy installing other software" + a Cancel button, which is
|
||||||
|
// wrong for a normal settings update. Only MtProxy/Telemt settings pages use this
|
||||||
|
// signal as a plain in-progress indicator, so scope it to them.
|
||||||
|
const bool emitBusy = container == DockerContainer::MtProxy || container == DockerContainer::Telemt;
|
||||||
|
if (emitBusy)
|
||||||
|
emit serverIsBusy(true);
|
||||||
auto *watcher = new QFutureWatcher<ErrorCode>(this);
|
auto *watcher = new QFutureWatcher<ErrorCode>(this);
|
||||||
const Proto protocolTypeCopy = protocolType;
|
const Proto protocolTypeCopy = protocolType;
|
||||||
QObject::connect(watcher, &QFutureWatcher<ErrorCode>::finished, this,
|
QObject::connect(watcher, &QFutureWatcher<ErrorCode>::finished, this,
|
||||||
[this, watcher, serverId, container, closePage, protocolTypeCopy]() {
|
[this, watcher, serverId, container, closePage, protocolTypeCopy, emitBusy]() {
|
||||||
const ErrorCode errorCode = watcher->result();
|
const ErrorCode errorCode = watcher->result();
|
||||||
watcher->deleteLater();
|
watcher->deleteLater();
|
||||||
emit serverIsBusy(false);
|
if (emitBusy)
|
||||||
|
emit serverIsBusy(false);
|
||||||
|
|
||||||
if (errorCode == ErrorCode::NoError) {
|
if (errorCode == ErrorCode::NoError) {
|
||||||
const ContainerConfig updatedConfig =
|
const ContainerConfig updatedConfig =
|
||||||
|
|||||||
Reference in New Issue
Block a user