Android: Hide bundle qt option for Qt4

Task-number: QTCREATORBUG-9408

Change-Id: Ie86deea4b453d3ab3ebcf359c3e0b321a2cba33e
Reviewed-by: BogDan Vatra <bogdan@kde.org>
This commit is contained in:
Daniel Teske
2013-06-13 16:38:03 +02:00
parent 19027b3897
commit 583cd11371
4 changed files with 60 additions and 9 deletions

View File

@@ -83,9 +83,14 @@ void AndroidDeployStep::ctor()
setDefaultDisplayName(tr("Deploy to Android device")); setDefaultDisplayName(tr("Deploy to Android device"));
m_deployAction = NoDeploy; m_deployAction = NoDeploy;
if (QtSupport::BaseQtVersion *qt = QtSupport::QtKitInformation::qtVersion(target()->kit())) QtSupport::BaseQtVersion *qt = QtSupport::QtKitInformation::qtVersion(target()->kit());
if (qt->qtVersion() >= QtSupport::QtVersionNumber(5, 0, 0)) m_bundleQtAvailable = qt && qt->qtVersion() >= QtSupport::QtVersionNumber(5, 0, 0);
m_deployAction = BundleLibraries; if (m_bundleQtAvailable)
m_deployAction = BundleLibraries;
connect(ProjectExplorer::KitManager::instance(), SIGNAL(kitUpdated(ProjectExplorer::Kit*)),
this, SLOT(kitUpdated(ProjectExplorer::Kit *)));
} }
bool AndroidDeployStep::init() bool AndroidDeployStep::init()
@@ -157,6 +162,14 @@ bool AndroidDeployStep::fromMap(const QVariantMap &map)
if (m_deployAction == InstallQASI) if (m_deployAction == InstallQASI)
m_deployAction = NoDeploy; m_deployAction = NoDeploy;
QtSupport::BaseQtVersion *qtVersion
= QtSupport::QtKitInformation::qtVersion(target()->kit());
if (m_deployAction == BundleLibraries)
if (!qtVersion || qtVersion->qtVersion() < QtSupport::QtVersionNumber(5, 0, 0))
m_deployAction = NoDeploy; // the kit changed to a non qt5 kit
m_bundleQtAvailable = qtVersion && qtVersion->qtVersion() >= QtSupport::QtVersionNumber(5, 0, 0);
return ProjectExplorer::BuildStep::fromMap(map); return ProjectExplorer::BuildStep::fromMap(map);
} }
@@ -201,6 +214,24 @@ void AndroidDeployStep::processFinished()
process->deleteLater(); process->deleteLater();
} }
void AndroidDeployStep::kitUpdated(Kit *kit)
{
if (kit != target()->kit())
return;
QtSupport::BaseQtVersion *qtVersion
= QtSupport::QtKitInformation::qtVersion(target()->kit());
bool newBundleQtAvailable = qtVersion && qtVersion->qtVersion() >= QtSupport::QtVersionNumber(5, 0, 0);
if (m_bundleQtAvailable != newBundleQtAvailable) {
m_bundleQtAvailable = newBundleQtAvailable;
if (!m_bundleQtAvailable && m_deployAction == BundleLibraries)
m_deployAction = NoDeploy; // the kit changed to a non qt5 kit
emit deployOptionsChanged();
}
}
void AndroidDeployStep::installQASIPackage(const QString &packagePath) void AndroidDeployStep::installQASIPackage(const QString &packagePath)
{ {
const QString targetArch = AndroidManager::targetArch(target()); const QString targetArch = AndroidManager::targetArch(target());
@@ -226,6 +257,11 @@ void AndroidDeployStep::installQASIPackage(const QString &packagePath)
delete process; delete process;
} }
bool AndroidDeployStep::bundleQtOptionAvailable()
{
return m_bundleQtAvailable;
}
void AndroidDeployStep::setDeployAction(AndroidDeployStep::AndroidDeployAction deploy) void AndroidDeployStep::setDeployAction(AndroidDeployStep::AndroidDeployAction deploy)
{ {
m_deployAction = deploy; m_deployAction = deploy;

View File

@@ -96,6 +96,7 @@ public:
void cleanLibsOnDevice(); void cleanLibsOnDevice();
void installQASIPackage(const QString &packagePath); void installQASIPackage(const QString &packagePath);
bool bundleQtOptionAvailable();
public slots: public slots:
void setDeployAction(AndroidDeployAction deploy); void setDeployAction(AndroidDeployAction deploy);
@@ -103,12 +104,14 @@ public slots:
signals: signals:
void done(); void done();
void error(); void error();
void deployOptionsChanged();
private slots: private slots:
bool deployPackage(); bool deployPackage();
void handleBuildOutput(); void handleBuildOutput();
void handleBuildError(); void handleBuildError();
void processFinished(); void processFinished();
void kitUpdated(ProjectExplorer::Kit *kit);
private: private:
AndroidDeployStep(ProjectExplorer::BuildStepList *bc, AndroidDeployStep(ProjectExplorer::BuildStepList *bc,
@@ -151,6 +154,7 @@ private:
AndroidDeployAction m_runDeployAction; AndroidDeployAction m_runDeployAction;
QString m_ndkToolChainVersion; QString m_ndkToolChainVersion;
QString m_libgnustl; QString m_libgnustl;
bool m_bundleQtAvailable;
static const Core::Id Id; static const Core::Id Id;
}; };

View File

@@ -47,6 +47,21 @@ AndroidDeployStepWidget::AndroidDeployStepWidget(AndroidDeployStep *step) :
{ {
ui->setupUi(this); ui->setupUi(this);
deployOptionsChanged();
connect(ui->ministroOption, SIGNAL(clicked()), SLOT(setMinistro()));
connect(ui->temporaryQtOption, SIGNAL(clicked()), SLOT(setDeployLocalQtLibs()));
connect(ui->bundleQtOption, SIGNAL(clicked()), SLOT(setBundleQtLibs()));
connect(ui->chooseButton, SIGNAL(clicked()), SLOT(setQASIPackagePath()));
connect(ui->cleanLibsPushButton, SIGNAL(clicked()), SLOT(cleanLibsOnDevice()));
connect(m_step, SIGNAL(deployOptionsChanged()),
this, SLOT(deployOptionsChanged()));
}
void AndroidDeployStepWidget::deployOptionsChanged()
{
switch (m_step->deployAction()) { switch (m_step->deployAction()) {
case AndroidDeployStep::NoDeploy: case AndroidDeployStep::NoDeploy:
ui->ministroOption->setChecked(true); ui->ministroOption->setChecked(true);
@@ -62,12 +77,7 @@ AndroidDeployStepWidget::AndroidDeployStepWidget(AndroidDeployStep *step) :
break; break;
} }
connect(ui->ministroOption, SIGNAL(clicked()), SLOT(setMinistro())); ui->bundleQtOption->setVisible(m_step->bundleQtOptionAvailable());
connect(ui->temporaryQtOption, SIGNAL(clicked()), SLOT(setDeployLocalQtLibs()));
connect(ui->bundleQtOption, SIGNAL(clicked()), SLOT(setBundleQtLibs()));
connect(ui->chooseButton, SIGNAL(clicked()), SLOT(setQASIPackagePath()));
connect(ui->cleanLibsPushButton, SIGNAL(clicked()), SLOT(cleanLibsOnDevice()));
} }
AndroidDeployStepWidget::~AndroidDeployStepWidget() AndroidDeployStepWidget::~AndroidDeployStepWidget()

View File

@@ -56,6 +56,7 @@ private slots:
void setQASIPackagePath(); void setQASIPackagePath();
void cleanLibsOnDevice(); void cleanLibsOnDevice();
void deployOptionsChanged();
private: private:
virtual QString summaryText() const; virtual QString summaryText() const;
virtual QString displayName() const; virtual QString displayName() const;