forked from qt-creator/qt-creator
Android: Aspectify AndroidDeployQtStep
Change-Id: Ibc2f04336831494c04a2283a59e1f550776c8bf3 Reviewed-by: Alessandro Portale <alessandro.portale@qt.io>
This commit is contained in:
@@ -51,6 +51,7 @@
|
|||||||
#include <qtsupport/qtkitinformation.h>
|
#include <qtsupport/qtkitinformation.h>
|
||||||
|
|
||||||
#include <utils/algorithm.h>
|
#include <utils/algorithm.h>
|
||||||
|
#include <utils/layoutbuilder.h>
|
||||||
#include <utils/qtcassert.h>
|
#include <utils/qtcassert.h>
|
||||||
#include <utils/qtcprocess.h>
|
#include <utils/qtcprocess.h>
|
||||||
#include <utils/synchronousprocess.h>
|
#include <utils/synchronousprocess.h>
|
||||||
@@ -86,8 +87,18 @@ AndroidDeployQtStep::AndroidDeployQtStep(BuildStepList *parent, Utils::Id id)
|
|||||||
: BuildStep(parent, id)
|
: BuildStep(parent, id)
|
||||||
{
|
{
|
||||||
setImmutable(true);
|
setImmutable(true);
|
||||||
|
|
||||||
|
m_uninstallPreviousPackage = addAspect<BoolAspect>();
|
||||||
|
m_uninstallPreviousPackage->setSettingsKey(UninstallPreviousPackageKey);
|
||||||
|
m_uninstallPreviousPackage->setLabel(tr("Uninstall the existing app first"));
|
||||||
|
m_uninstallPreviousPackage->setValue(false);
|
||||||
|
|
||||||
const QtSupport::BaseQtVersion * const qt = QtSupport::QtKitAspect::qtVersion(kit());
|
const QtSupport::BaseQtVersion * const qt = QtSupport::QtKitAspect::qtVersion(kit());
|
||||||
m_uninstallPreviousPackage = qt && qt->qtVersion() < QtSupport::QtVersionNumber(5, 4, 0);
|
const bool forced = qt && qt->qtVersion() < QtSupport::QtVersionNumber(5, 4, 0);
|
||||||
|
if (forced) {
|
||||||
|
m_uninstallPreviousPackage->setValue(true);
|
||||||
|
m_uninstallPreviousPackage->setEnabled(false);
|
||||||
|
}
|
||||||
|
|
||||||
connect(this, &AndroidDeployQtStep::askForUninstall,
|
connect(this, &AndroidDeployQtStep::askForUninstall,
|
||||||
this, &AndroidDeployQtStep::slotAskForUninstall,
|
this, &AndroidDeployQtStep::slotAskForUninstall,
|
||||||
@@ -167,7 +178,7 @@ bool AndroidDeployQtStep::init()
|
|||||||
|
|
||||||
emit addOutput(tr("Deploying to %1").arg(m_serialNumber), OutputFormat::Stdout);
|
emit addOutput(tr("Deploying to %1").arg(m_serialNumber), OutputFormat::Stdout);
|
||||||
|
|
||||||
m_uninstallPreviousPackageRun = m_uninstallPreviousPackage;
|
m_uninstallPreviousPackageRun = m_uninstallPreviousPackage->value();
|
||||||
if (m_uninstallPreviousPackageRun)
|
if (m_uninstallPreviousPackageRun)
|
||||||
m_manifestName = AndroidManager::manifestPath(target());
|
m_manifestName = AndroidManager::manifestPath(target());
|
||||||
|
|
||||||
@@ -480,14 +491,6 @@ QWidget *AndroidDeployQtStep::createConfigWidget()
|
|||||||
setDisplayName(QString("<b>%1</b>").arg(displayName()));
|
setDisplayName(QString("<b>%1</b>").arg(displayName()));
|
||||||
setSummaryText(displayName());
|
setSummaryText(displayName());
|
||||||
|
|
||||||
auto uninstallPreviousCheckBox = new QCheckBox(widget);
|
|
||||||
uninstallPreviousCheckBox->setText(tr("Uninstall the existing app first"));
|
|
||||||
uninstallPreviousCheckBox->setChecked(uninstallPreviousPackage() > Keep);
|
|
||||||
uninstallPreviousCheckBox->setEnabled(uninstallPreviousPackage() != ForceUninstall);
|
|
||||||
|
|
||||||
connect(uninstallPreviousCheckBox, &QAbstractButton::toggled,
|
|
||||||
this, &AndroidDeployQtStep::setUninstallPreviousPackage);
|
|
||||||
|
|
||||||
auto resetDefaultDevices = new QPushButton(widget);
|
auto resetDefaultDevices = new QPushButton(widget);
|
||||||
resetDefaultDevices->setText(tr("Reset Default Deployment Devices"));
|
resetDefaultDevices->setText(tr("Reset Default Deployment Devices"));
|
||||||
|
|
||||||
@@ -508,10 +511,10 @@ QWidget *AndroidDeployQtStep::createConfigWidget()
|
|||||||
AndroidManager::installQASIPackage(target(), packagePath);
|
AndroidManager::installQASIPackage(target(), packagePath);
|
||||||
});
|
});
|
||||||
|
|
||||||
auto layout = new QVBoxLayout(widget);
|
LayoutBuilder builder(widget);
|
||||||
layout->addWidget(uninstallPreviousCheckBox);
|
builder.addRow(m_uninstallPreviousPackage);
|
||||||
layout->addWidget(resetDefaultDevices);
|
builder.addRow(resetDefaultDevices);
|
||||||
layout->addWidget(installCustomApkButton);
|
builder.addRow(installCustomApkButton);
|
||||||
|
|
||||||
return widget;
|
return widget;
|
||||||
}
|
}
|
||||||
@@ -569,32 +572,6 @@ AndroidDeployQtStep::DeployErrorCode AndroidDeployQtStep::parseDeployErrors(QStr
|
|||||||
return errorCode;
|
return errorCode;
|
||||||
}
|
}
|
||||||
|
|
||||||
bool AndroidDeployQtStep::fromMap(const QVariantMap &map)
|
|
||||||
{
|
|
||||||
m_uninstallPreviousPackage = map.value(UninstallPreviousPackageKey, m_uninstallPreviousPackage).toBool();
|
|
||||||
return ProjectExplorer::BuildStep::fromMap(map);
|
|
||||||
}
|
|
||||||
|
|
||||||
QVariantMap AndroidDeployQtStep::toMap() const
|
|
||||||
{
|
|
||||||
QVariantMap map = ProjectExplorer::BuildStep::toMap();
|
|
||||||
map.insert(UninstallPreviousPackageKey, m_uninstallPreviousPackage);
|
|
||||||
return map;
|
|
||||||
}
|
|
||||||
|
|
||||||
void AndroidDeployQtStep::setUninstallPreviousPackage(bool uninstall)
|
|
||||||
{
|
|
||||||
m_uninstallPreviousPackage = uninstall;
|
|
||||||
}
|
|
||||||
|
|
||||||
AndroidDeployQtStep::UninstallType AndroidDeployQtStep::uninstallPreviousPackage()
|
|
||||||
{
|
|
||||||
const QtSupport::BaseQtVersion * const qt = QtSupport::QtKitAspect::qtVersion(kit());
|
|
||||||
if (qt && qt->qtVersion() < QtSupport::QtVersionNumber(5, 4, 0))
|
|
||||||
return ForceUninstall;
|
|
||||||
return m_uninstallPreviousPackage ? Uninstall : Keep;
|
|
||||||
}
|
|
||||||
|
|
||||||
// AndroidDeployQtStepFactory
|
// AndroidDeployQtStepFactory
|
||||||
|
|
||||||
AndroidDeployQtStepFactory::AndroidDeployQtStepFactory()
|
AndroidDeployQtStepFactory::AndroidDeployQtStepFactory()
|
||||||
|
@@ -59,20 +59,8 @@ class AndroidDeployQtStep : public ProjectExplorer::BuildStep
|
|||||||
};
|
};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
enum UninstallType {
|
|
||||||
Keep,
|
|
||||||
Uninstall,
|
|
||||||
ForceUninstall
|
|
||||||
};
|
|
||||||
|
|
||||||
AndroidDeployQtStep(ProjectExplorer::BuildStepList *bc, Utils::Id id);
|
AndroidDeployQtStep(ProjectExplorer::BuildStepList *bc, Utils::Id id);
|
||||||
|
|
||||||
bool fromMap(const QVariantMap &map) override;
|
|
||||||
QVariantMap toMap() const override;
|
|
||||||
|
|
||||||
UninstallType uninstallPreviousPackage();
|
|
||||||
void setUninstallPreviousPackage(bool uninstall);
|
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void askForUninstall(DeployErrorCode errorCode);
|
void askForUninstall(DeployErrorCode errorCode);
|
||||||
|
|
||||||
@@ -105,7 +93,7 @@ private:
|
|||||||
QMap<QString, QString> m_filesToPull;
|
QMap<QString, QString> m_filesToPull;
|
||||||
|
|
||||||
QStringList m_androidABIs;
|
QStringList m_androidABIs;
|
||||||
bool m_uninstallPreviousPackage = false;
|
Utils::BoolAspect *m_uninstallPreviousPackage = nullptr;
|
||||||
bool m_uninstallPreviousPackageRun = false;
|
bool m_uninstallPreviousPackageRun = false;
|
||||||
bool m_useAndroiddeployqt = false;
|
bool m_useAndroiddeployqt = false;
|
||||||
bool m_askForUninstall = false;
|
bool m_askForUninstall = false;
|
||||||
|
Reference in New Issue
Block a user