Take the right sis package when using the Smart Installer flag.

This commit is contained in:
con
2010-05-21 14:12:53 +02:00
parent 09bf431ab5
commit 7d76940af7
6 changed files with 57 additions and 8 deletions

View File

@@ -161,14 +161,15 @@ void S60CreatePackageStep::setCustomKeyPath(const QString &path)
m_customKeyPath = path; m_customKeyPath = path;
} }
bool S60CreatePackageStep::createSmartInstaller() const bool S60CreatePackageStep::createsSmartInstaller() const
{ {
return m_createSmartInstaller; return m_createSmartInstaller;
} }
void S60CreatePackageStep::setCreateSmartInstaller(bool value) void S60CreatePackageStep::setCreatesSmartInstaller(bool value)
{ {
m_createSmartInstaller = value; m_createSmartInstaller = value;
static_cast<Qt4BuildConfiguration *>(buildConfiguration())->emitS60CreatesSmartInstallerChanged();
} }
// #pragma mark -- S60SignBuildStepFactory // #pragma mark -- S60SignBuildStepFactory
@@ -273,7 +274,7 @@ void S60CreatePackageStepConfigWidget::updateUi()
m_ui.keyFilePath->setEnabled(!selfSigned); m_ui.keyFilePath->setEnabled(!selfSigned);
m_ui.signaturePath->setPath(m_signStep->customSignaturePath()); m_ui.signaturePath->setPath(m_signStep->customSignaturePath());
m_ui.keyFilePath->setPath(m_signStep->customKeyPath()); m_ui.keyFilePath->setPath(m_signStep->customKeyPath());
m_ui.smartInstaller->setChecked(m_signStep->createSmartInstaller()); m_ui.smartInstaller->setChecked(m_signStep->createsSmartInstaller());
emit updateSummary(); emit updateSummary();
} }
@@ -284,7 +285,7 @@ void S60CreatePackageStepConfigWidget::updateFromUi()
: S60CreatePackageStep::SignCustom); : S60CreatePackageStep::SignCustom);
m_signStep->setCustomSignaturePath(m_ui.signaturePath->path()); m_signStep->setCustomSignaturePath(m_ui.signaturePath->path());
m_signStep->setCustomKeyPath(m_ui.keyFilePath->path()); m_signStep->setCustomKeyPath(m_ui.keyFilePath->path());
m_signStep->setCreateSmartInstaller(m_ui.smartInstaller->isChecked()); m_signStep->setCreatesSmartInstaller(m_ui.smartInstaller->isChecked());
updateUi(); updateUi();
} }
@@ -298,7 +299,7 @@ QString S60CreatePackageStepConfigWidget::summaryText() const
.arg(m_signStep->customSignaturePath()) .arg(m_signStep->customSignaturePath())
.arg(m_signStep->customKeyPath()); .arg(m_signStep->customKeyPath());
} }
if (m_signStep->createSmartInstaller()) if (m_signStep->createsSmartInstaller())
return tr("<b>Create SIS Package:</b> %1, using Smart Installer").arg(text); return tr("<b>Create SIS Package:</b> %1, using Smart Installer").arg(text);
return tr("<b>Create SIS Package:</b> %1").arg(text); return tr("<b>Create SIS Package:</b> %1").arg(text);
} }

View File

@@ -83,8 +83,8 @@ public:
void setCustomSignaturePath(const QString &path); void setCustomSignaturePath(const QString &path);
QString customKeyPath() const; QString customKeyPath() const;
void setCustomKeyPath(const QString &path); void setCustomKeyPath(const QString &path);
bool createSmartInstaller() const; bool createsSmartInstaller() const;
void setCreateSmartInstaller(bool value); void setCreatesSmartInstaller(bool value);
protected: protected:
S60CreatePackageStep(ProjectExplorer::BuildConfiguration *bc, S60CreatePackageStep *bs); S60CreatePackageStep(ProjectExplorer::BuildConfiguration *bc, S60CreatePackageStep *bs);

View File

@@ -40,6 +40,7 @@
#include "symbiandevicemanager.h" #include "symbiandevicemanager.h"
#include "qt4buildconfiguration.h" #include "qt4buildconfiguration.h"
#include "qt4projectmanagerconstants.h" #include "qt4projectmanagerconstants.h"
#include "s60createpackagestep.h"
#include <coreplugin/icore.h> #include <coreplugin/icore.h>
#include <coreplugin/messagemanager.h> #include <coreplugin/messagemanager.h>
@@ -109,6 +110,7 @@ QString pathToId(const QString &path)
S60DeviceRunConfiguration::S60DeviceRunConfiguration(Target *parent, const QString &proFilePath) : S60DeviceRunConfiguration::S60DeviceRunConfiguration(Target *parent, const QString &proFilePath) :
RunConfiguration(parent, QLatin1String(S60_DEVICE_RC_ID)), RunConfiguration(parent, QLatin1String(S60_DEVICE_RC_ID)),
m_proFilePath(proFilePath), m_proFilePath(proFilePath),
m_activeBuildConfiguration(0),
#ifdef Q_OS_WIN #ifdef Q_OS_WIN
m_serialPortName(QLatin1String("COM5")) m_serialPortName(QLatin1String("COM5"))
#else #else
@@ -121,6 +123,7 @@ S60DeviceRunConfiguration::S60DeviceRunConfiguration(Target *parent, const QStri
S60DeviceRunConfiguration::S60DeviceRunConfiguration(Target *target, S60DeviceRunConfiguration *source) : S60DeviceRunConfiguration::S60DeviceRunConfiguration(Target *target, S60DeviceRunConfiguration *source) :
RunConfiguration(target, source), RunConfiguration(target, source),
m_proFilePath(source->m_proFilePath), m_proFilePath(source->m_proFilePath),
m_activeBuildConfiguration(0),
m_serialPortName(source->m_serialPortName) m_serialPortName(source->m_serialPortName)
{ {
ctor(); ctor();
@@ -135,6 +138,9 @@ void S60DeviceRunConfiguration::ctor()
connect(qt4Target()->qt4Project(), SIGNAL(proFileUpdated(Qt4ProjectManager::Internal::Qt4ProFileNode*)), connect(qt4Target()->qt4Project(), SIGNAL(proFileUpdated(Qt4ProjectManager::Internal::Qt4ProFileNode*)),
this, SLOT(proFileUpdate(Qt4ProjectManager::Internal::Qt4ProFileNode*))); this, SLOT(proFileUpdate(Qt4ProjectManager::Internal::Qt4ProFileNode*)));
connect(qt4Target(), SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)),
this, SLOT(updateActiveBuildConfiguration(ProjectExplorer::BuildConfiguration*)));
updateActiveBuildConfiguration(qt4Target()->activeBuildConfiguration());
} }
void S60DeviceRunConfiguration::proFileUpdate(Qt4ProjectManager::Internal::Qt4ProFileNode *pro) void S60DeviceRunConfiguration::proFileUpdate(Qt4ProjectManager::Internal::Qt4ProFileNode *pro)
@@ -143,6 +149,17 @@ void S60DeviceRunConfiguration::proFileUpdate(Qt4ProjectManager::Internal::Qt4Pr
emit targetInformationChanged(); emit targetInformationChanged();
} }
void S60DeviceRunConfiguration::updateActiveBuildConfiguration(ProjectExplorer::BuildConfiguration *buildConfiguration)
{
if (m_activeBuildConfiguration)
disconnect(m_activeBuildConfiguration, SIGNAL(s60CreatesSmartInstallerChanged()),
this, SIGNAL(targetInformationChanged()));
m_activeBuildConfiguration = buildConfiguration;
if (m_activeBuildConfiguration)
connect(m_activeBuildConfiguration, SIGNAL(s60CreatesSmartInstallerChanged()),
this, SIGNAL(targetInformationChanged()));
}
S60DeviceRunConfiguration::~S60DeviceRunConfiguration() S60DeviceRunConfiguration::~S60DeviceRunConfiguration()
{ {
} }
@@ -346,12 +363,27 @@ QString S60DeviceRunConfiguration::localExecutableFileName() const
return QDir::toNativeSeparators(localExecutable); return QDir::toNativeSeparators(localExecutable);
} }
bool S60DeviceRunConfiguration::runSmartInstaller() const
{
BuildConfiguration *bc = target()->activeBuildConfiguration();
QTC_ASSERT(bc, return false);
QList<BuildStep *> steps = bc->steps(Build);
foreach (const BuildStep *step, steps) {
if (const S60CreatePackageStep *packageStep = qobject_cast<const S60CreatePackageStep *>(step)) {
return packageStep->createsSmartInstaller();
}
}
return false;
}
QString S60DeviceRunConfiguration::signedPackage() const QString S60DeviceRunConfiguration::signedPackage() const
{ {
TargetInformation ti = qt4Target()->qt4Project()->rootProjectNode()->targetInformation(m_proFilePath); TargetInformation ti = qt4Target()->qt4Project()->rootProjectNode()->targetInformation(m_proFilePath);
if (!ti.valid) if (!ti.valid)
return QString(); return QString();
return ti.buildDir + QLatin1Char('/') + ti.target + QLatin1String(".sis"); return ti.buildDir + QLatin1Char('/') + ti.target
+ (runSmartInstaller() ? QLatin1String("_installer") : QLatin1String(""))
+ QLatin1String(".sis");
} }
QStringList S60DeviceRunConfiguration::commandLineArguments() const QStringList S60DeviceRunConfiguration::commandLineArguments() const

View File

@@ -100,6 +100,7 @@ signals:
private slots: private slots:
void proFileUpdate(Qt4ProjectManager::Internal::Qt4ProFileNode *pro); void proFileUpdate(Qt4ProjectManager::Internal::Qt4ProFileNode *pro);
void updateActiveBuildConfiguration(ProjectExplorer::BuildConfiguration *buildConfiguration);
protected: protected:
S60DeviceRunConfiguration(ProjectExplorer::Target *parent, S60DeviceRunConfiguration *source); S60DeviceRunConfiguration(ProjectExplorer::Target *parent, S60DeviceRunConfiguration *source);
@@ -109,7 +110,10 @@ private:
ProjectExplorer::ToolChain::ToolChainType toolChainType(ProjectExplorer::BuildConfiguration *configuration) const; ProjectExplorer::ToolChain::ToolChainType toolChainType(ProjectExplorer::BuildConfiguration *configuration) const;
void ctor(); void ctor();
bool runSmartInstaller() const;
QString m_proFilePath; QString m_proFilePath;
ProjectExplorer::BuildConfiguration *m_activeBuildConfiguration;
QString m_serialPortName; QString m_serialPortName;
QStringList m_commandLineArguments; QStringList m_commandLineArguments;
}; };

View File

@@ -371,6 +371,12 @@ void Qt4BuildConfiguration::emitBuildDirectoryInitialized()
emit buildDirectoryInitialized(); emit buildDirectoryInitialized();
} }
void Qt4BuildConfiguration::emitS60CreatesSmartInstallerChanged()
{
emit s60CreatesSmartInstallerChanged();
}
void Qt4BuildConfiguration::getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const void Qt4BuildConfiguration::getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const
{ {
QtVersion::QmakeBuildConfigs defaultBuildConfiguration = qtVersion()->defaultBuildConfig(); QtVersion::QmakeBuildConfigs defaultBuildConfiguration = qtVersion()->defaultBuildConfig();

View File

@@ -83,6 +83,10 @@ public:
// used by qmake step to notify that the build directory was initialized // used by qmake step to notify that the build directory was initialized
// not really nice // not really nice
void emitBuildDirectoryInitialized(); void emitBuildDirectoryInitialized();
// used by S60CreatePackageStep to notify that the smart installer property changed
// not really nice
void emitS60CreatesSmartInstallerChanged();
void getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const; void getConfigCommandLineArguments(QStringList *addedUserConfigs, QStringList *removedUserConfigs) const;
// Those functions are used in a few places. // Those functions are used in a few places.
@@ -112,6 +116,8 @@ signals:
/// emitted for setQMakeBuildConfig, not emitted for qt version changes, even /// emitted for setQMakeBuildConfig, not emitted for qt version changes, even
/// if those change the qmakebuildconfig /// if those change the qmakebuildconfig
void qmakeBuildConfigurationChanged(); void qmakeBuildConfigurationChanged();
/// emitted when smart installer property of S60 create package step changes
void s60CreatesSmartInstallerChanged();
/// emitted if the build configuration changed in a way that /// emitted if the build configuration changed in a way that
/// should trigger a reevaluation of all .pro files /// should trigger a reevaluation of all .pro files