diff --git a/QtScrcpy/adb/adbprocess.cpp b/QtScrcpy/adb/adbprocess.cpp index 72f6126..a3f088b 100644 --- a/QtScrcpy/adb/adbprocess.cpp +++ b/QtScrcpy/adb/adbprocess.cpp @@ -65,17 +65,8 @@ void AdbProcess::initSignals() connect(this, &QProcess::readyReadStandardOutput, this, [this](){ - QString stdOut = QString::fromLocal8Bit(readAllStandardOutput()); - - // get devices serial by adb devices - QStringList serials; - QStringList devicesInfoList = stdOut.split(QRegExp("\r\n|\n"), QString::SkipEmptyParts); - for(QString deviceInfo : devicesInfoList) { - QStringList deviceInfos = deviceInfo.split(QRegExp("\t"), QString::SkipEmptyParts); - if (2 == deviceInfos.count() && 0 == deviceInfos[1].compare("device")) { - serials << deviceInfos[0]; - } - } + m_standardOutput = QString::fromLocal8Bit(readAllStandardOutput()); + qDebug() << m_standardOutput; }); connect(this, &QProcess::started, this, @@ -86,6 +77,7 @@ void AdbProcess::initSignals() void AdbProcess::execute(const QString& serial, const QStringList& args) { + m_standardOutput = ""; QStringList adbArgs; if (!serial.isEmpty()) { adbArgs << "-s" << serial; @@ -112,6 +104,20 @@ void AdbProcess::setShowTouchesEnabled(const QString &serial, bool enabled) execute(serial, adbArgs); } +QStringList AdbProcess::getDevicesSerialFromStdOut() +{ + // get devices serial by adb devices + QStringList serials; + QStringList devicesInfoList = m_standardOutput.split(QRegExp("\r\n|\n"), QString::SkipEmptyParts); + for(QString deviceInfo : devicesInfoList) { + QStringList deviceInfos = deviceInfo.split(QRegExp("\t"), QString::SkipEmptyParts); + if (2 == deviceInfos.count() && 0 == deviceInfos[1].compare("device")) { + serials << deviceInfos[0]; + } + } + return serials; +} + void AdbProcess::forward(const QString& serial, quint16 localPort, const QString& deviceSocketName) { QStringList adbArgs; diff --git a/QtScrcpy/adb/adbprocess.h b/QtScrcpy/adb/adbprocess.h index f891816..4f393c0 100644 --- a/QtScrcpy/adb/adbprocess.h +++ b/QtScrcpy/adb/adbprocess.h @@ -29,6 +29,7 @@ public: void removePath(const QString& serial, const QString& path); bool isRuning(); void setShowTouchesEnabled(const QString& serial, bool enabled); + QStringList getDevicesSerialFromStdOut(); static const QString& getAdbPath(); @@ -38,6 +39,8 @@ signals: private: void initSignals(); +private: + QString m_standardOutput = ""; static QString s_adbPath; }; diff --git a/QtScrcpy/dialog.cpp b/QtScrcpy/dialog.cpp index 0ebe23f..998e2c7 100644 --- a/QtScrcpy/dialog.cpp +++ b/QtScrcpy/dialog.cpp @@ -21,10 +21,13 @@ Dialog::~Dialog() delete ui; } -void Dialog::on_adbProcess_clicked() +void Dialog::on_updateDevice_clicked() { AdbProcess* adb = new AdbProcess(); - connect(adb, &AdbProcess::adbProcessResult, this, [this](AdbProcess::ADB_EXEC_RESULT processResult){ + connect(adb, &AdbProcess::adbProcessResult, this, [this, adb](AdbProcess::ADB_EXEC_RESULT processResult){ + if (AdbProcess::AER_SUCCESS_EXEC == processResult) { + qDebug() << adb->getDevicesSerialFromStdOut().join("*"); + } if (AdbProcess::AER_SUCCESS_START != processResult) { sender()->deleteLater(); } diff --git a/QtScrcpy/dialog.h b/QtScrcpy/dialog.h index d61f600..f6f300b 100644 --- a/QtScrcpy/dialog.h +++ b/QtScrcpy/dialog.h @@ -20,7 +20,7 @@ public: ~Dialog(); private slots: - void on_adbProcess_clicked(); + void on_updateDevice_clicked(); void on_startServerBtn_clicked(); diff --git a/QtScrcpy/dialog.ui b/QtScrcpy/dialog.ui index e992565..3530fc0 100644 --- a/QtScrcpy/dialog.ui +++ b/QtScrcpy/dialog.ui @@ -30,23 +30,23 @@ - + - adbProcess + update device - startServer + start server - stopServer + stop server