From d77355a20df32b613267850266f5662362633ae3 Mon Sep 17 00:00:00 2001 From: Barry <870709864@qq.com> Date: Mon, 20 Jun 2022 13:12:01 +0800 Subject: [PATCH] feat: auto update device --- QtScrcpy/res/i18n/en_US.qm | Bin 4903 -> 4971 bytes QtScrcpy/res/i18n/en_US.ts | 4 ++++ QtScrcpy/res/i18n/zh_CN.qm | Bin 3842 -> 3896 bytes QtScrcpy/res/i18n/zh_CN.ts | 4 ++++ QtScrcpy/ui/dialog.cpp | 27 +++++++++++++++++++++------ QtScrcpy/ui/dialog.h | 4 ++++ QtScrcpy/ui/dialog.ui | 37 +++++++++++++++++++++++++++---------- QtScrcpy/util/config.cpp | 5 +++++ QtScrcpy/util/config.h | 1 + 9 files changed, 66 insertions(+), 16 deletions(-) diff --git a/QtScrcpy/res/i18n/en_US.qm b/QtScrcpy/res/i18n/en_US.qm index f0d529489484bb1c14ec521795315ca2412d46ea..ffb637224f177c21094c7f27fd35b4c5f3ac1dd7 100644 GIT binary patch delta 420 zcmZ3k_F8R%9HYcUd2_)>3>oE?3=Ev?3|ZPu3=EtfC#K68akDZ89G%X$`RUJOVBmIV$`_o^z`(y~;&y$;sENPJnmv( z;M~nNfzO43L7;Tc}7Y8b;(;97&r~tpJ_c}VBo(!*`86n{yfL!>KFzF z78Z_w%rXoN40AXgj8YjG1jIQLFR(B$@a1xrMtosl;LPRX*4xU!AmGa-w@QM6f#Dm3 z=KaSdZ~ugWfjySX;n+R~2Hp~`s%9<*2JTzj`E^qn82A;r4`|HQ%)T*hD3%^h7yJX1_g#vh608ZhD3%EhExs)1_lN;1_lQ1#L|*{ Qh0=nQ#FEs_k=*Cl0nf5&a{vGU delta 368 zcmaE@wp?w39HYQQd2_*K3>oE?3=Ev?3|ZPu3=EuGC#K68ah+rgI69qyfnAPqSIZ;@ z27Wol8)u{#7&z}U={sI!U|@U1iKVTCSG7+VBj<4ERFcWz`$w9#jUrMfk8l!OKz0}0|Uc12+ezlOWyto z0|R?3m&37r3=F&$Tvg3n3=G`!xby3#GBEHx-e$3=F*g_%l~XF);8*^Vhx(U|`@l%D?OKECvSdE13)o R0&h0kFqv|0Udz3Y9ROO^VJ83p diff --git a/QtScrcpy/res/i18n/en_US.ts b/QtScrcpy/res/i18n/en_US.ts index d51a414..c8787cf 100644 --- a/QtScrcpy/res/i18n/en_US.ts +++ b/QtScrcpy/res/i18n/en_US.ts @@ -285,5 +285,9 @@ stop audio stop audio + + auto update + autp update + diff --git a/QtScrcpy/res/i18n/zh_CN.qm b/QtScrcpy/res/i18n/zh_CN.qm index 801fd700af7da615adc0444d2227c0aa5eae1c48..a505d6d004b3fa8792fd96d37c5084bc82bec783 100644 GIT binary patch delta 405 zcmZpY+aWhWj!|Nwyt$wcLq@qJ0|VPhhAizS1_t)}iRto&k&FRHr!z3Hx-jl)nZ&@r zy@K(^87T$^_Qg#4j#n8NSjCw9^k*_KaP%_e3(jX?;J!C;yFTNUiO=PvxaHU?9(OS? zum`hE;B#SM;F-+sAT7+mzuqIV;7R0?TP4B3z;FdZ zb4}usw|~OGz*@}ZaBLp~1D63;RWla@1IHik{JNSjsKm#hG} CL~5u2 delta 367 zcmdlX*CaPVj!|Huyt$wpLq@qJ0|VPhhAizS1_t)PiRto&+Kd55r!z3Hx-jl)nZ&@r zUB!6gj1&U{dnuE?<5dO*Rxu_&{h1659Pv!~g7X;|xHnAPuFtq^;&VAEt`BS#kGmKc z*j3pk@VPKB@T9UkNDDJCaL%4A&nPMXOzRN?1NU9_H_!JmFfgaFfA@@IU|>4HVdJRG zz`(&cIi69xo|`lA0t*8J*M82@h%XEbY#+I}^|mrF@ECK+t&(71V7LOIxl*{~?Vm6( zuoiPU9NWjhz{SK>)y&1fz;TW{ziui61Gg{t0qvU%3`~98C-%EBFmRdkIK_o9FmPVv zsWZRAz`*>N=k=PS3=HhIdEQ%jF)*;)stop audio 停止音频 + + auto update + 自动刷新 + diff --git a/QtScrcpy/ui/dialog.cpp b/QtScrcpy/ui/dialog.cpp index 35b1884..6b0e84a 100644 --- a/QtScrcpy/ui/dialog.cpp +++ b/QtScrcpy/ui/dialog.cpp @@ -30,6 +30,16 @@ Dialog::Dialog(QWidget *parent) : QWidget(parent), ui(new Ui::Widget) ui->setupUi(this); initUI(); + updateBootConfig(true); + + on_useSingleModeCheck_clicked(); + on_updateDevice_clicked(); + + connect(&m_autoUpdatetimer, &QTimer::timeout, this, &Dialog::on_updateDevice_clicked); + if (ui->autoUpdatecheckBox->isChecked()) { + m_autoUpdatetimer.start(5000); + } + connect(&m_adb, &qsc::AdbProcess::adbProcessResult, this, [this](qsc::AdbProcess::ADB_EXEC_RESULT processResult) { QString log = ""; bool newLine = true; @@ -145,12 +155,6 @@ void Dialog::initUI() ui->lockOrientationBox->addItem("180"); ui->lockOrientationBox->addItem("270"); ui->lockOrientationBox->setCurrentIndex(0); - - updateBootConfig(true); - - on_useSingleModeCheck_clicked(); - - on_updateDevice_clicked(); } void Dialog::updateBootConfig(bool toView) @@ -181,6 +185,7 @@ void Dialog::updateBootConfig(bool toView) ui->closeScreenCheck->setChecked(config.autoOffScreen); ui->stayAwakeCheck->setChecked(config.keepAlive); ui->useSingleModeCheck->setChecked(config.simpleMode); + ui->autoUpdatecheckBox->setChecked(config.autoUpdateDevice); } else { UserBootConfig config; @@ -198,6 +203,7 @@ void Dialog::updateBootConfig(bool toView) config.framelessWindow = ui->framelessCheck->isChecked(); config.keepAlive = ui->stayAwakeCheck->isChecked(); config.simpleMode = ui->useSingleModeCheck->isChecked(); + config.autoUpdateDevice = ui->autoUpdatecheckBox->isChecked(); Config::getInstance().setUserBootConfig(config); } } @@ -711,3 +717,12 @@ void Dialog::on_installSndcpyBtn_clicked() } m_audioOutput.installonly(ui->serialBox->currentText(), 28200); } + +void Dialog::on_autoUpdatecheckBox_toggled(bool checked) +{ + if (checked) { + m_autoUpdatetimer.start(5000); + } else { + m_autoUpdatetimer.stop(); + } +} diff --git a/QtScrcpy/ui/dialog.h b/QtScrcpy/ui/dialog.h index a42142d..860c87e 100644 --- a/QtScrcpy/ui/dialog.h +++ b/QtScrcpy/ui/dialog.h @@ -7,6 +7,7 @@ #include #include #include +#include #include "adbprocess.h" @@ -64,6 +65,8 @@ private slots: void on_installSndcpyBtn_clicked(); + void on_autoUpdatecheckBox_toggled(bool checked); + private: bool checkAdbRun(); void initUI(); @@ -87,6 +90,7 @@ private: QAction *m_showWindow; QAction *m_quit; AudioOutput m_audioOutput; + QTimer m_autoUpdatetimer; }; #endif // DIALOG_H diff --git a/QtScrcpy/ui/dialog.ui b/QtScrcpy/ui/dialog.ui index c8f7683..569e769 100644 --- a/QtScrcpy/ui/dialog.ui +++ b/QtScrcpy/ui/dialog.ui @@ -100,17 +100,34 @@ - - - - 0 - 0 - + + + 0 - - Double click to connect: - - + + + + + 0 + 0 + + + + Double click to connect: + + + + + + + auto update + + + true + + + + diff --git a/QtScrcpy/util/config.cpp b/QtScrcpy/util/config.cpp index d1716cf..8212b76 100644 --- a/QtScrcpy/util/config.cpp +++ b/QtScrcpy/util/config.cpp @@ -87,6 +87,9 @@ #define COMMON_SIMPLE_MODE_KEY "SimpleMode" #define COMMON_SIMPLE_MODE_DEF false +#define COMMON_AUTO_UPDATE_DEVICE_KEY "AutoUpdateDevice" +#define COMMON_AUTO_UPDATE_DEVICE_DEF true + // device config #define SERIAL_WINDOW_RECT_KEY_X "WindowRectX" #define SERIAL_WINDOW_RECT_KEY_Y "WindowRectY" @@ -145,6 +148,7 @@ void Config::setUserBootConfig(const UserBootConfig &config) m_userData->setValue(COMMON_AUTO_OFF_SCREEN_KEY, config.autoOffScreen); m_userData->setValue(COMMON_KEEP_ALIVE_KEY, config.keepAlive); m_userData->setValue(COMMON_SIMPLE_MODE_KEY, config.simpleMode); + m_userData->setValue(COMMON_AUTO_UPDATE_DEVICE_KEY, config.autoUpdateDevice); m_userData->endGroup(); m_userData->sync(); } @@ -167,6 +171,7 @@ UserBootConfig Config::getUserBootConfig() config.autoOffScreen = m_userData->value(COMMON_AUTO_OFF_SCREEN_KEY, COMMON_AUTO_OFF_SCREEN_DEF).toBool(); config.keepAlive = m_userData->value(COMMON_KEEP_ALIVE_KEY, COMMON_KEEP_ALIVE_DEF).toBool(); config.simpleMode = m_userData->value(COMMON_SIMPLE_MODE_KEY, COMMON_SIMPLE_MODE_DEF).toBool(); + config.autoUpdateDevice = m_userData->value(COMMON_AUTO_UPDATE_DEVICE_KEY, COMMON_AUTO_UPDATE_DEVICE_DEF).toBool(); m_userData->endGroup(); return config; } diff --git a/QtScrcpy/util/config.h b/QtScrcpy/util/config.h index 0eeea83..137e375 100644 --- a/QtScrcpy/util/config.h +++ b/QtScrcpy/util/config.h @@ -21,6 +21,7 @@ struct UserBootConfig bool framelessWindow = false; bool keepAlive = false; bool simpleMode = false; + bool autoUpdateDevice = true; }; class QSettings;