Android: Simplify deploy step widget setup

Remove the nested QGroupBox, inline code into only callers, etc.
Also use better display name for deploy step widget.

Change-Id: I579810c04dea032a98ba28db6de035048f801f75
Reviewed-by: Christian Kandeler <christian.kandeler@qt.io>
Reviewed-by: Leena Miettinen <riitta-leena.miettinen@qt.io>
This commit is contained in:
hjk
2019-01-25 14:33:57 +01:00
parent 346ddbaa08
commit fd5916ae23
7 changed files with 60 additions and 214 deletions

View File

@@ -25,7 +25,6 @@
****************************************************************************/
#include "androiddeployqtstep.h"
#include "androiddeployqtwidget.h"
#include "certificatesmodel.h"
#include "javaparser.h"
@@ -54,10 +53,14 @@
#include <utils/qtcprocess.h>
#include <utils/synchronousprocess.h>
#include <QCheckBox>
#include <QFileDialog>
#include <QGroupBox>
#include <QInputDialog>
#include <QMessageBox>
#include <QLoggingCategory>
#include <QMessageBox>
#include <QPushButton>
#include <QVBoxLayout>
using namespace ProjectExplorer;
using namespace Android;
@@ -86,6 +89,60 @@ AndroidDeployQtStepFactory::AndroidDeployQtStepFactory()
setDisplayName(AndroidDeployQtStep::tr("Deploy to Android device or emulator"));
}
// AndroidDeployQtWidget
class AndroidDeployQtWidget : public BuildStepConfigWidget
{
public:
AndroidDeployQtWidget(AndroidDeployQtStep *step)
: ProjectExplorer::BuildStepConfigWidget(step)
{
setDisplayName(QString("<b>%1</b>").arg(step->displayName()));
setSummaryText(displayName());
auto uninstallPreviousPackage = new QCheckBox(this);
uninstallPreviousPackage->setText(tr("Uninstall previous package"));
uninstallPreviousPackage->setChecked(step->uninstallPreviousPackage() > AndroidDeployQtStep::Keep);
uninstallPreviousPackage->setEnabled(step->uninstallPreviousPackage() != AndroidDeployQtStep::ForceUnintall);
auto resetDefaultDevices = new QPushButton(this);
resetDefaultDevices->setText(AndroidDeployQtStep::tr("Reset Default Devices"));
auto cleanLibsPushButton = new QPushButton(this);
cleanLibsPushButton->setText(AndroidDeployQtStep::tr("Clean Temporary Libraries Directory on Device"));
auto installMinistroButton = new QPushButton(this);
installMinistroButton->setText(AndroidDeployQtStep::tr("Install Ministro from APK"));
connect(installMinistroButton, &QAbstractButton::clicked, this, [this, step] {
QString packagePath =
QFileDialog::getOpenFileName(this,
AndroidDeployQtStep::tr("Qt Android Smart Installer"),
QDir::homePath(),
AndroidDeployQtStep::tr("Android package (*.apk)"));
if (!packagePath.isEmpty())
AndroidManager::installQASIPackage(step->target(), packagePath);
});
connect(cleanLibsPushButton, &QAbstractButton::clicked, this, [step] {
AndroidManager::cleanLibsOnDevice(step->target());
});
connect(resetDefaultDevices, &QAbstractButton::clicked, this, [step] {
AndroidConfigurations::clearDefaultDevices(step->project());
});
connect(uninstallPreviousPackage, &QAbstractButton::toggled,
step, &AndroidDeployQtStep::setUninstallPreviousPackage);
auto layout = new QVBoxLayout(this);
layout->addWidget(uninstallPreviousPackage);
layout->addWidget(resetDefaultDevices);
layout->addWidget(cleanLibsPushButton);
layout->addWidget(installMinistroButton);
}
};
// AndroidDeployQtStep
AndroidDeployQtStep::AndroidDeployQtStep(ProjectExplorer::BuildStepList *parent)