初始页面改版,解决一些遗留问题,添加应用安装进度条

This commit is contained in:
Lappland 2022-08-11 23:53:11 +08:00
parent e439b9d467
commit 484a77eaa5
18 changed files with 260 additions and 336 deletions

View File

@ -1,270 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 6.0.2, 2022-08-11T01:56:29. -->
<qtcreator>
<data>
<variable>EnvironmentId</variable>
<value type="QByteArray">{2a10cdab-4a79-429f-99fd-00fc9e0d38f7}</value>
</data>
<data>
<variable>ProjectExplorer.Project.ActiveTarget</variable>
<value type="qlonglong">0</value>
</data>
<data>
<variable>ProjectExplorer.Project.EditorSettings</variable>
<valuemap type="QVariantMap">
<value type="bool" key="EditorConfiguration.AutoIndent">true</value>
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value>
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0">
<value type="QString" key="language">Cpp</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value>
</valuemap>
</valuemap>
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1">
<value type="QString" key="language">QmlJS</value>
<valuemap type="QVariantMap" key="value">
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value>
</valuemap>
</valuemap>
<value type="qlonglong" key="EditorConfiguration.CodeStyle.Count">2</value>
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value>
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value>
<value type="int" key="EditorConfiguration.IndentSize">4</value>
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value>
<value type="int" key="EditorConfiguration.MarginColumn">80</value>
<value type="bool" key="EditorConfiguration.MouseHiding">true</value>
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value>
<value type="int" key="EditorConfiguration.PaddingMode">1</value>
<value type="bool" key="EditorConfiguration.PreferSingleLineComments">false</value>
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value>
<value type="bool" key="EditorConfiguration.ShowMargin">false</value>
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value>
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value>
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value>
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value>
<value type="int" key="EditorConfiguration.TabSize">8</value>
<value type="bool" key="EditorConfiguration.UseGlobal">true</value>
<value type="bool" key="EditorConfiguration.UseIndenter">false</value>
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value>
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value>
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value>
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value>
<value type="QString" key="EditorConfiguration.ignoreFileTypes">*.md, *.MD, Makefile</value>
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value>
<value type="bool" key="EditorConfiguration.skipTrailingWhitespace">true</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.PluginSettings</variable>
<valuemap type="QVariantMap">
<valuemap type="QVariantMap" key="AutoTest.ActiveFrameworks">
<value type="bool" key="AutoTest.Framework.Boost">true</value>
<value type="bool" key="AutoTest.Framework.CTest">false</value>
<value type="bool" key="AutoTest.Framework.Catch">true</value>
<value type="bool" key="AutoTest.Framework.GTest">true</value>
<value type="bool" key="AutoTest.Framework.QtQuickTest">true</value>
<value type="bool" key="AutoTest.Framework.QtTest">true</value>
</valuemap>
<valuemap type="QVariantMap" key="AutoTest.CheckStates"/>
<value type="int" key="AutoTest.RunAfterBuild">0</value>
<value type="bool" key="AutoTest.UseGlobal">true</value>
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey">
<value type="QString">-fno-delayed-template-parsing</value>
</valuelist>
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value>
<value type="QString" key="ClangCodeModel.WarningConfigId">Builtin.BuildSystem</value>
<valuemap type="QVariantMap" key="ClangTools">
<value type="bool" key="ClangTools.AnalyzeOpenFiles">true</value>
<value type="bool" key="ClangTools.BuildBeforeAnalysis">true</value>
<value type="QString" key="ClangTools.DiagnosticConfig">Builtin.DefaultTidyAndClazy</value>
<value type="int" key="ClangTools.ParallelJobs">4</value>
<valuelist type="QVariantList" key="ClangTools.SelectedDirs"/>
<valuelist type="QVariantList" key="ClangTools.SelectedFiles"/>
<valuelist type="QVariantList" key="ClangTools.SuppressedDiagnostics"/>
<value type="bool" key="ClangTools.UseGlobalSettings">true</value>
</valuemap>
<valuemap type="QVariantMap" key="CppEditor.QuickFix">
<value type="bool" key="UseGlobalSettings">true</value>
</valuemap>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 6.2.3 MSVC2019 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 6.2.3 MSVC2019 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt6.623.win64_msvc2019_64_kit</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="qlonglong" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:\QT\QtADB\build-QtAdb-Desktop_Qt_6_2_3_MSVC2019_64bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">D:/QT/QtADB/build-QtAdb-Desktop_Qt_6_2_3_MSVC2019_64bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:\QT\QtADB\build-QtAdb-Desktop_Qt_6_2_3_MSVC2019_64bit-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">D:/QT/QtADB/build-QtAdb-Desktop_Qt_6_2_3_MSVC2019_64bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">D:\QT\QtADB\build-QtAdb-Desktop_Qt_6_2_3_MSVC2019_64bit-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">D:/QT/QtADB/build-QtAdb-Desktop_Qt_6_2_3_MSVC2019_64bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">true</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
<value type="bool" key="ProjectExplorer.BuildConfiguration.ParseStandardOutput">false</value>
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
<value type="int" key="QtQuickCompiler">0</value>
<value type="int" key="SeparateDebugInfo">0</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="qlonglong" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:D:/QT/QtADB/QtAdb/QtAdb.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">D:/QT/QtADB/QtAdb/QtAdb.pro</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">D:/QT/QtADB/build-QtAdb-Desktop_Qt_6_2_3_MSVC2019_64bit-Debug</value>
</valuemap>
<value type="qlonglong" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap>
</data>
<data>
<variable>ProjectExplorer.Project.TargetCount</variable>
<value type="qlonglong">1</value>
</data>
<data>
<variable>ProjectExplorer.Project.Updater.FileVersion</variable>
<value type="int">22</value>
</data>
<data>
<variable>Version</variable>
<value type="int">22</value>
</data>
</qtcreator>

View File

@ -6,7 +6,7 @@ about::about(QWidget *parent) :
ui(new Ui::about)
{
ui->setupUi(this);
//this->setLayout(ui->verticalLayout);
self_castrate();
QGraphicsDropShadowEffect *shadowEffect_btn_website = new QGraphicsDropShadowEffect();

View File

@ -9,6 +9,11 @@ adbProcess::adbProcess()
QString adbProcess::run(QString command) //Adb 命令解析 - 单条命令
{
if(thread)
{
explainer->thread = true;
}
QStringList args_0;
QStringList args_1;
@ -69,13 +74,18 @@ QString adbProcess::run(QString command) //Adb 命令解析 -
QString output;
output = readAllStandardOutput();
standardOutput.append(output);
explainer->explainOutput(output);
explainer->explainOutput(output , thread);
emit outputGet(output);
return output;
}
QString adbProcess::run(QString command, device dev) //Adb 命令解析 - 对指定设备发送单条命令
{
if(thread)
{
explainer->thread = true;
}
//Sleep(500);
QStringList args_0;
QStringList args_1;
@ -144,7 +154,7 @@ QString adbProcess::run(QString command, device dev) //Adb 命
QString output;
output = readAllStandardOutput();
//qDebug() << "run output:" << output << "\n";
explainer->explainOutput(output);
explainer->explainOutput(output , thread);
emit outputGet(output);
return output;
@ -153,6 +163,11 @@ QString adbProcess::run(QString command, device dev) //Adb 命
QString adbProcess::run_contains_empty(QString command, device dev) //Adb 命令解析 - 对指定设备发送单条命令(可能包含空格)
{
if(thread)
{
explainer->thread = true;
}
QStringList args_0;
QStringList args_1;
@ -211,7 +226,7 @@ QString adbProcess::run_contains_empty(QString command, device dev)
QString output;
output = readAllStandardOutput();
//qDebug() << "run output:" << output << "\n";
explainer->explainOutput(output);
explainer->explainOutput(output, thread);
emit outputGet(output);
return output;
@ -220,6 +235,11 @@ QString adbProcess::run_contains_empty(QString command, device dev)
QString adbProcess::run(QString command, QString write_command) //Adb 命令解析 - 发送单条命令并向控制台输入内容
{
if(thread)
{
explainer->thread = true;
}
QStringList args_0;
QStringList args_1;
@ -281,7 +301,7 @@ QString adbProcess::run(QString command, QString write_command)
output = readAllStandardOutput();
standardOutput.append(output);
explainer->explainOutput(output);
explainer->explainOutput(output, thread);
emit outputGet(output);
return output;
@ -290,6 +310,11 @@ QString adbProcess::run(QString command, QString write_command)
QString adbProcess::run(QString command, device dev, QString write_command) //Adb 命令解析 - 对指定设备发送单条命令并向控制台输入内容
{
if(thread)
{
explainer->thread = true;
}
QStringList args_0;
QStringList args_1;
@ -356,7 +381,7 @@ QString adbProcess::run(QString command, device dev, QString write_command)
output = readAllStandardOutput();
//qDebug() << "run output:" << output << "\n";
explainer->explainOutput(output);
explainer->explainOutput(output, thread);
emit outputGet(output);
return output;

View File

@ -28,6 +28,7 @@ public:
QString run_contains_empty(QString command, device dev);
QString standardOutput;
bool thread = false;
textExplainer *explainer;
/*test*/

View File

@ -39,8 +39,15 @@ void animationWidget::playLoadAnimation()
opacityLoadAnimation->setEndValue(1.0);
opacityLoadAnimation->start();*/
animation->setDuration(500);
//qDebug() << "parent is " << parent;
//qDebug() << "parent's geometry is " << parent->geometry();
/*
animation->setEndValue(QRect(parent->geometry().x(), parent->geometry().y(), this->width(),this->height()));
animation->setStartValue(QRect(parent->geometry().x() + 50, parent->geometry().y(), this->width(),this->height()));
animation->setStartValue(QRect(parent->geometry().x() + 50, parent->geometry().y(), this->width(),this->height()));*/
animation->setEndValue(QRect(301, 111, this->width(),this->height()));
animation->setStartValue(QRect(301 + 50, 111, this->width(),this->height()));
animation->setEasingCurve(QEasingCurve::OutQuart);
this->show();

View File

@ -160,5 +160,7 @@ void basePage::setDev(device device)
void basePage::self_castrate()
{
ui->listWidget->hide();
delete ui->listWidget;
delete ui->mainLayout;
delete ui->verticalLayout;
}

View File

@ -47,14 +47,19 @@ MainWindow::MainWindow(QWidget *parent)
explainer = new textExplainer();
maker = new pageMaker();
/*启动ADB将延长页面创建时间在此期间显示启动界面*/
/*启动ADB将延长页面创建时间在此期间显示启动界面,显示了个勾八*/
process->run("adb server");
refreshDevList();
//displayWelcomePage();
//ui->indexList->setCurrentRow(7);
/*用户未选择设备前,锁定界面*/
this->update();
on_refreshButton_clicked();
//initBasePage(6);
lock();
//qDebug() << "1";
displayWelcomePage();
//displayWelcomePage();
//qDebug() << "2";
}
@ -77,41 +82,82 @@ void MainWindow::initEnvironmentPATH() //方法:设置环境变
void MainWindow::refreshDevList() //方法:刷新设备列表
{
ui->comboBox->clear(); //清空combobox
ui->comboBox->clear();
//qDebug() <<"aft";
devList.clear(); //清空设备列表
//qDebug() <<"affffter";
//qDebug() <<"before";
devList = explainer->getDevList_windows(process->run("adb devices -l")); //重新赋值
//qDebug() <<"after0";
/*将设备信息传入 List l 并将l的值显示在combobox中*/
QStringList l;
l.clear();
//qDebug() <<"beffffffore";
for (int i = 0 ; i < devList.size() ; i++ )
{
//qDebug() <<"beffffffore i = " << i;
QString devItem =devList[i].state + " " + explainer->get_words_after(devList[i].device_product, ":") + " " + explainer->get_words_after(devList[i].model, ":");
l.append(devItem);
}
ui->comboBox->addItems(l);
current_device = 0; //重设当前设备
//qDebug() <<"afttttttttttttttter";
ui->comboBox->addItems(l);
//qDebug() <<"afterrrrrrrr";
if(devList.isEmpty())
{
current_device = -1; //重设当前设备
}
else
{
current_device = 0;
}
}
void MainWindow::on_refreshButton_clicked() //槽:按下刷新按钮
{
//qDebug() <<"before";
refreshDevList();
lock();
/*
if(currentPage != NULL)
{
currentPage->~basePage();
currentPage = NULL;
}
displayWelcomePage();
ui->indexList->setCurrentRow(-1);
}*/
initBasePage(6);
//ui->indexList->setCurrentRow(6);
qDebug() <<"8";
}
void MainWindow::setCurrentDevice(int index) //槽:改变所选设备
{
if(index > 0)
{
if(currentPage != NULL)
{
currentPage->~basePage();
currentPage = NULL;
}
//initBasePage(6);
//ui->indexList->setCurrentRow(6);
current_device = index;
//initBasePage(0);
if(ui->indexList->currentRow() == 0)
{
initBasePage(0);
}
else
{
ui->indexList->setCurrentRow(0);
}
}
unlock();
}
@ -120,6 +166,7 @@ void MainWindow::initBasePage(int key) //槽生成basePages
while(key != -1)
{
this->setEnabled(false);
if(WCMPage != NULL) //销毁欢迎页面
{
//currentPage->playExitAnimation();
@ -129,26 +176,44 @@ void MainWindow::initBasePage(int key) //槽生成basePages
WCMPage = NULL;
}
if(currentPage != NULL) //销毁上一个basePage
{
//currentPage->playExitAnimation();
//currentPage->setDisabled(true);
//delete currentPage;
currentPage->setDisabled(true);
//currentPage->setDisabled(true);
currentPage->~basePage();
currentPage = NULL;
}
currentPage = new basePage(this);
currentPage = maker->createPageWithKey(key,ui->page,devList[current_device]); //*去nmd*究极开销
//devList[current_device];
//qDebug() <<"aaaaaaaaaaaaaaaaaafter";
qDebug() << "devlist is empty? " << devList.isEmpty();
if(devList.isEmpty())
{
device * noDevice = new device;
noDevice->addr = "#EMPTY#";
currentPage = maker->createPageWithKey(6,ui->page,*noDevice);
}
else
{
qDebug() << "devlist is not empty ,creating page with key " << key;
currentPage = maker->createPageWithKey(key,ui->page,devList[current_device]);
qDebug() << "page created";
}
//qDebug() <<"aaaaaaaaaaaaaaaaaafterrrrrrrrrrrrrrrrrrrrrr";
//qDebug() << "currentPage = maker->createPageWithKey(key,ui->page,devList[current_device]); ended";
ui->verticalLayout_2->addWidget(currentPage);
currentPage->playLoadAnimation();
//connect(currentPage,SIGNAL(animationEnd()), currentPage,SLOT(refresh_listItem_effect()));
currentPage->repaint();
//currentPage->repaint();
this->setEnabled(true);
break;
}
@ -286,12 +351,6 @@ void MainWindow::setStyles() //方法:设置样式
ui->WSABtn->setGraphicsEffect(shadowEffect_WSABtn);
}
/*
void MainWindow::hideCurrentPage() //方法隐藏当前basePage
{
currentPage->hide();
}*/
void MainWindow::initSonPage(int key) //槽:生成子页面
{
maker->createPageWithKey(key,currentPage,devList[current_device]);
@ -462,15 +521,15 @@ void MainWindow::on_WSABtn_clicked() //槽连接WSA
msgBox->show();
}
/*
void MainWindow::emit_signal_createBasePage(int key)
{
emit createBasePage(key, ui->widget, devList[current_device], currentPage);
}
*/
void MainWindow::displayWelcomePage()
{
/*
WCMPage2 = new about(this->ui->page);
WCMPage2->setGeometry(QRect(301,111,WCMPage2->geometry().width(),WCMPage2->geometry().height()));
qDebug() << "initing... page's geometry is " << ui->page->geometry();
currentPage = WCMPage2;*/
//ui->indexList->setCurrentRow(7);
/*
if(WCMPage != NULL) //销毁上一个basePage
{
//currentPage->setDisabled(true);
@ -481,4 +540,15 @@ void MainWindow::displayWelcomePage()
WCMPage = new welcomePage();
ui->verticalLayout_2->addWidget(WCMPage);
*//*
if(WCMPage2 != NULL) //销毁上一个basePage
{
//currentPage->setDisabled(true);
//delete currentPage;
WCMPage2->~about();
WCMPage2 = NULL;
}
WCMPage2 = new about();
ui->verticalLayout_2->addWidget(WCMPage2);*/
}

View File

@ -15,6 +15,7 @@
#include "pagemaker.h"
#include "threads/thread_createpage.h"
#include "welcomepage.h"
#include "about.h"
#include <QCoreApplication>
#include <QStringList>
@ -92,5 +93,6 @@ private:
basePage * currentPage;
animationWidget * tmpPage;
welcomePage * WCMPage;
about * WCMPage2;
};
#endif // MAINWINDOW_H

View File

@ -13,7 +13,13 @@ pageMaker::pageMaker()
basePage* pageMaker::createPageWithKey(int key, QWidget *parent, device dev)
{
qDebug() << "key in createPageWithKey() is " << key ;
int k = key;
if(dev.addr.toInt() == -1)
{
k = 6;
}
switch(k)
{
case 0:

View File

@ -6,8 +6,14 @@ sp_installer::sp_installer(QWidget *parent) :
ui(new Ui::sp_installer)
{
ui->setupUi(this);
setParent(parent);
ui->progressBar->hide();
this->repaint();
parent->repaint();
process = new adbProcess();
thread = new adbThread();
connect(this->ui->back_to_basePage,SIGNAL(clicked()),parent,SLOT(slot_destroySonPage()));
QGraphicsDropShadowEffect *shadowEffect_runBtn = new QGraphicsDropShadowEffect();
@ -72,12 +78,14 @@ void sp_installer::on_runBtn_clicked()
{
command = "adb install";
}
//qDebug() << "enter runBtn slot 1";
//qDebug() << "enter runBtn slot 2";
//qDebug() << "enter runBtn slot 4";
//qDebug() << "command: " << command;
//qDebug() << "running";
process->run_contains_empty(command, dev);
thread->initThread(command,dev,"#INSTALL#");
connect(thread,SIGNAL(signal_output(QString)),this,SLOT(stop_progressBar(QString)));
thread->start();
ui->progressBar->show();
this->setDisabled(true);
//process->run_contains_empty(command, dev);
apkPath.clear();
labelDisplay.clear();
ui->filePaths->clear();
@ -93,3 +101,19 @@ void sp_installer::on_selectBtn_clicked()
//qDebug() << "apkPathis:" << apkPath;
}
void sp_installer::stop_progressBar(QString str)
{
if(str.contains("Success"))
{
ui->progressBar->hide();
this->setEnabled(true);
ui->filePaths->setText("安装成功");
}
else
{
ui->progressBar->hide();
this->setEnabled(true);
ui->filePaths->setText("出错");
}
}

View File

@ -5,6 +5,7 @@
#include <QGraphicsDropShadowEffect>
#include "adbprocess.h"
#include <QFileDialog>
#include "../../threads/adbthread.h"
namespace Ui {
class sp_installer;
@ -23,6 +24,7 @@ public:
void setDev(device dev);
adbProcess *process;
adbThread *thread;
QString labelDisplay;
@ -31,10 +33,15 @@ private slots:
void on_selectBtn_clicked();
void stop_progressBar(QString);
private:
Ui::sp_installer *ui;
QString apkPath;
/*
QMovie *movie;
QLabel *movieLable;*/
};
#endif // SP_INSTALLER_H

View File

@ -78,7 +78,6 @@ image: url(:/ico/image/ico/install-line.svg);</string>
</property>
<property name="font">
<font>
<family>MiSans Normal</family>
<pointsize>18</pointsize>
<bold>true</bold>
</font>
@ -117,9 +116,7 @@ border:0px solid #BDBDBD;</string>
</size>
</property>
<property name="font">
<font>
<family>MiSans Normal</family>
</font>
<font/>
</property>
<property name="styleSheet">
<string notr="true">QPushButton{background-color:rgba(255,255,255,0.9);border-radius:4px;border:0px;}
@ -136,9 +133,13 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
<widget class="QLabel" name="filePaths">
<property name="font">
<font>
<family>MiSans Normal</family>
<pointsize>12</pointsize>
</font>
</property>
<property name="styleSheet">
<string notr="true">border:2px solid #BDBDBD;
border-radius:4px;</string>
</property>
<property name="text">
<string/>
</property>
@ -146,6 +147,36 @@ QPushButton:pressed{background-color:rgba(255,255,255,0.6);}</string>
</item>
</layout>
</item>
<item>
<widget class="QProgressBar" name="progressBar">
<property name="styleSheet">
<string notr="true">QProgressBar{
font:9pt;
border-radius:4px;
text-align:center;
/*border:1px solid #E8EDF2;*/
border:1px solid #E8EDF2;
background-color: rgb(255, 255, 255);
border-color: rgb(180, 180, 180);
}
QProgressBar:chunk{
border-radius:4px;
/*background-color:#1ABC9C;*/
background-color:#BDBDBD;
}
</string>
</property>
<property name="maximum">
<number>0</number>
</property>
<property name="value">
<number>-1</number>
</property>
<property name="textVisible">
<bool>true</bool>
</property>
</widget>
</item>
<item>
<spacer name="verticalSpacer">
<property name="orientation">

View File

@ -10,8 +10,6 @@ sp_dpiChanger::sp_dpiChanger(QWidget *parent) :
process = new adbProcess;
explainer = new textExplainer;
setDpiInfo();
connect(this->ui->back_to_basePage,SIGNAL(clicked()),parent,SLOT(slot_destroySonPage()));
ui->verticalLayout->setAlignment(Qt::AlignVCenter);
@ -67,9 +65,9 @@ sp_dpiChanger::~sp_dpiChanger()
void sp_dpiChanger::setDpiInfo()
{
//qDebug() << "dve of sonPage = " << dev.addr;
qDebug() << "dve of sonPage = " << dev.addr;
QString profile = process->run("adb shell wm density", dev).replace("Physical density", "默认").replace("Override density","当前").simplified();
//qDebug() << profile;
qDebug() << "02" << profile;
ui->dpiInfo->setText(profile);
}
@ -100,6 +98,7 @@ void sp_dpiChanger::on_runBtn_clicked()
void sp_dpiChanger::refresh()
{
qDebug() << "refresh";
setDpiInfo();
ui->lineEdit->clear();
}
@ -111,6 +110,7 @@ void sp_dpiChanger::on_refreshBtn_clicked()
void sp_dpiChanger::setDev(device device)
{
qDebug() << "setDev";
dev = device;
setDpiInfo();
}

View File

@ -200,13 +200,13 @@ bool textExplainer::explainError(QString err)
return true;
}
bool textExplainer::explainOutput(QString op)
bool textExplainer::explainOutput(QString op, bool thread)
{
//qDebug() << "output = " << op;
op = op.simplified();
/*普通*/
if(op.contains("No such file or directory"))
if(op.contains("No such file or directory") && thread == false)
{
showMsgBox("失败"," · 应用未安装 \n · 应用安装后未首次运行");
}
@ -216,6 +216,8 @@ bool textExplainer::explainOutput(QString op)
void textExplainer::showMsgBox(QString title, QString msg)
{
if(!thread)
{
msgBox = new QMessageBox;
msgBox->setWindowIcon(QIcon(":/ico/image/ico/link.svg"));
msgBox->setStyleSheet("background-color:rgba(255,255,255,1);border:0px; border-radius:0px;");
@ -223,6 +225,7 @@ void textExplainer::showMsgBox(QString title, QString msg)
msgBox->setText(msg);
msgBox->addButton("", QMessageBox::AcceptRole);
msgBox->show();
}
}
QString textExplainer::setState(QString state)

View File

@ -30,8 +30,9 @@ public:
void showMsgBox(QString title,QString msg);
bool explainError(QString err);
bool explainOutput(QString op);
bool explainOutput(QString op, bool thread);
QMessageBox *msgBox;
bool thread = false;
private:
QString setState(QString state);

View File

@ -23,6 +23,7 @@ void adbThread::initThread(QString cmd, device d, QString key)
void adbThread::run()
{
process = new adbProcess();
process->thread = true;
//qDebug() << "explainKey is " << explainKey;
//sleep(3);
if(explain == false)
@ -40,6 +41,14 @@ void adbThread::run()
exit();
}
else if(explainKey == "#INSTALL#")
{
connect(process,SIGNAL(outputGet(QString)),this,SLOT(result(QString)));
/*QString output = */process->run_contains_empty(command, dev);
//emit signal_output(output);
exit();
}
else if(explain == true && explainKey != "#CPU#")
{
QString output = explainer->get_words_after(process->run(command, dev), explainKey);
@ -47,3 +56,8 @@ void adbThread::run()
exit();
}
}
void adbThread::result(QString str)
{
emit signal_output(str);
}

View File

@ -14,6 +14,7 @@ public:
void initThread(QString cmd, device dev);
void initThread(QString cmd, device dev, QString explainKey);
void initThread_for_cpu(QString cmd, device dev);
//void initThread(QString cmd, device dev);
bool explain = false;
QString command;
QString explainKey;
@ -26,7 +27,7 @@ signals:
void signal_output(QString);
public slots:
//static void myThreadSlot(int);
void result(QString);
protected:
void run() override;

View File

@ -61,7 +61,7 @@ Android 系统的可玩性在 adb 的加成下变得更加的丰富,由此涌
### *🍘饼*
> *由于个人学业紧迫(貌似考不上研了),饼中的内容添加将十分缓慢,可能在过年后,甚至再多一年后才能开始全力开发,请见谅!*
> *由于个人学业紧迫(**确实**考不上研了),饼中的内容添加将十分缓慢,可能在过年后,甚至再多一年后才能开始全力开发,请见谅!*
- 完整的软件包管理器
- 跨平台
@ -70,16 +70,16 @@ Android 系统的可玩性在 adb 的加成下变得更加的丰富,由此涌
- 设备插拔检测
- 集成scrcpy
- 视觉反馈
- 页面切换加载进度条
- 页面切换动画效果
- 安装应用进度条
- ~~页面切换加载进度条~~
- ~~页面切换动画效果~~
- ~~安装应用进度条~~
- 侧载进度条
- 命令
- 获取 Google 服务框架 Android ID
- 更改屏幕分辨率
- 更改屏幕边距
- 控制台
- 唤起 adb shell 窗口
- ~~唤起 adb shell 窗口~~
- 显示输出
- 优化 err 处理
- Fastboot