diff --git a/QtScrcpy/device/device.cpp b/QtScrcpy/device/device.cpp index 0482c09..0c2fec3 100644 --- a/QtScrcpy/device/device.cpp +++ b/QtScrcpy/device/device.cpp @@ -167,20 +167,19 @@ void Device::initSignals() tipsType = tr("file transfer"); } QString tips; - if (FileHandler::FAR_IS_RUNNING == processResult && m_videoForm) { + if (FileHandler::FAR_IS_RUNNING == processResult) { tips = tr("wait current %1 to complete").arg(tipsType); } - if (FileHandler::FAR_SUCCESS_EXEC == processResult && m_videoForm) { + if (FileHandler::FAR_SUCCESS_EXEC == processResult) { tips = tr("%1 complete, save in %2").arg(tipsType).arg(Config::getInstance().getPushFilePath()); } - if (FileHandler::FAR_ERROR_EXEC == processResult && m_videoForm) { + if (FileHandler::FAR_ERROR_EXEC == processResult) { tips = tr("%1 failed").arg(tipsType); } qInfo() << tips; if (m_controlState == GCS_CLIENT) { return; } - //QMessageBox::information(m_videoForm, "QtScrcpy", tips, QMessageBox::Ok); }); } @@ -293,10 +292,10 @@ void Device::initSignals() } } -void Device::connectDevice() +bool Device::connectDevice() { if (!m_server) { - return; + return false; } // fix: macos cant recv finished signel, timer is ok @@ -322,6 +321,8 @@ void Device::connectDevice() params.stayAwake = m_params.stayAwake; m_server->start(params); }); + + return true; } void Device::disconnectDevice() diff --git a/QtScrcpy/device/device.h b/QtScrcpy/device/device.h index 900d5cd..17dc81f 100644 --- a/QtScrcpy/device/device.h +++ b/QtScrcpy/device/device.h @@ -52,7 +52,7 @@ public: explicit Device(DeviceParams params, QObject *parent = nullptr); virtual ~Device(); - void connectDevice(); + bool connectDevice(); void disconnectDevice(); VideoForm *getVideoForm(); diff --git a/QtScrcpy/devicemanage/devicemanage.cpp b/QtScrcpy/devicemanage/devicemanage.cpp index 69c1c6a..b733c7b 100644 --- a/QtScrcpy/devicemanage/devicemanage.cpp +++ b/QtScrcpy/devicemanage/devicemanage.cpp @@ -42,8 +42,11 @@ bool DeviceManage::connectDevice(Device::DeviceParams params) Device *device = new Device(params); connect(device, &Device::deviceDisconnected, this, &DeviceManage::onDeviceDisconnected); connect(device, &Device::controlStateChange, this, &DeviceManage::onControlStateChange); + if (!device->connectDevice()) { + delete device; + return false; + } m_devices[params.serial] = device; - device->connectDevice(); if (!m_script.isEmpty()) { device->updateScript(m_script); }