From 920ed1140edab10f8fa6d40974cd6ad4fed55c85 Mon Sep 17 00:00:00 2001 From: Tommi Asp <tommi@mowhi.com> Date: Wed, 9 Nov 2011 11:47:59 +0200 Subject: [PATCH] Better deploy configuration handling for S60 target Allows creating custom DeployConfigurationFactories for S60 target Related to QTCREATORBUG-5535 Change-Id: I2a38ad11e0102eaae3e0a67af2a0750b4b3512a5 Reviewed-by: Tommi Asp <tommi@mowhi.com> Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com> --- .../qt-s60/qt4symbiantargetfactory.cpp | 2 +- .../qt-s60/s60deployconfiguration.cpp | 15 +++++++-------- .../qt-s60/s60deployconfiguration.h | 2 ++ 3 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp index 74ba7764b60..cb14f81d20c 100644 --- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp @@ -230,7 +230,7 @@ ProjectExplorer::Target *Qt4SymbianTargetFactory::create(ProjectExplorer::Projec info.version, info.buildConfig, info.additionalArguments, info.directory, info.importing); - t->addDeployConfiguration(t->createDeployConfiguration(QLatin1String(Qt4ProjectManager::Constants::S60_DEVICE_TARGET_ID))); + t->addDeployConfiguration(t->createDeployConfiguration(QLatin1String(S60_DEPLOYCONFIGURATION_ID))); t->createApplicationProFiles(); diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp index 77cca9909a7..fa0150fec57 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp @@ -57,7 +57,6 @@ using namespace Qt4ProjectManager; using namespace Qt4ProjectManager::Internal; namespace { -const char S60_DC_ID[] = "Qt4ProjectManager.S60DeployConfiguration"; const char S60_DC_PREFIX[] = "Qt4ProjectManager.S60DeployConfiguration."; const char SERIAL_PORT_NAME_KEY[] = "Qt4ProjectManager.S60DeployConfiguration.SerialPortName"; @@ -81,7 +80,7 @@ QString pathFromId(const QString &id) // ======== S60DeployConfiguration S60DeployConfiguration::S60DeployConfiguration(Target *parent) : - DeployConfiguration(parent, QLatin1String(S60_DC_ID)), + DeployConfiguration(parent, QLatin1String(S60_DEPLOYCONFIGURATION_ID)), m_activeBuildConfiguration(0), #ifdef Q_OS_WIN m_serialPortName(QLatin1String("COM5")), @@ -479,18 +478,18 @@ DeployConfiguration *S60DeployConfigurationFactory::create(Target *parent, const return dc; } -bool S60DeployConfigurationFactory::canCreate(Target *parent, const QString& /*id*/) const +bool S60DeployConfigurationFactory::canCreate(Target *parent, const QString& id) const { Qt4SymbianTarget * t = qobject_cast<Qt4SymbianTarget *>(parent); - if (!t || t->id() != QLatin1String(Constants::S60_DEVICE_TARGET_ID)) + if (!t || t->id() != QLatin1String(Constants::S60_DEVICE_TARGET_ID) + || !id.startsWith(QLatin1String(S60_DEPLOYCONFIGURATION_ID))) return false; return true; } -bool S60DeployConfigurationFactory::canRestore(Target *parent, const QVariantMap& /*map*/) const +bool S60DeployConfigurationFactory::canRestore(Target *parent, const QVariantMap& map) const { - Qt4SymbianTarget * t = qobject_cast<Qt4SymbianTarget *>(parent); - return t && t->id() == QLatin1String(Constants::S60_DEVICE_TARGET_ID); + return canCreate(parent, idFromMap(map)); } DeployConfiguration *S60DeployConfigurationFactory::restore(Target *parent, const QVariantMap &map) @@ -510,7 +509,7 @@ bool S60DeployConfigurationFactory::canClone(Target *parent, DeployConfiguration { if (!qobject_cast<Qt4SymbianTarget *>(parent)) return false; - return source->id() == QLatin1String(S60_DC_ID); + return source->id() == QLatin1String(S60_DEPLOYCONFIGURATION_ID); } DeployConfiguration *S60DeployConfigurationFactory::clone(Target *parent, DeployConfiguration *source) diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h index 82029e8678a..1a4f48ce375 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h @@ -52,6 +52,8 @@ class S60DeployConfigurationFactory; namespace Internal { class Qt4SymbianTarget; + +const char S60_DEPLOYCONFIGURATION_ID[] = "Qt4ProjectManager.S60DeployConfiguration"; } class QT4PROJECTMANAGER_EXPORT S60DeployConfiguration : public ProjectExplorer::DeployConfiguration -- GitLab