diff options
Diffstat (limited to 'src/plugins/qt4projectmanager/qt-s60')
28 files changed, 245 insertions, 842 deletions
diff --git a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp index f9f5753356..ee0ecf5cb1 100644 --- a/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/codaruncontrol.cpp @@ -40,13 +40,12 @@ #include "codamessage.h" #include "qt4buildconfiguration.h" -#include "qt4symbiantarget.h" -#include "qt4target.h" #include "symbiandevicemanager.h" #include <coreplugin/icore.h> #include <utils/qtcassert.h> #include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/target.h> #include <symbianutils/symbiandevicemanager.h> diff --git a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp index bad030375d..a3818cd52c 100644 --- a/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/gccetoolchain.cpp @@ -181,7 +181,6 @@ QList<ProjectExplorer::ToolChain *> GcceToolChainFactory::autoDetect() GcceToolChain *tc = new GcceToolChain(false); tc->setCompilerCommand(Utils::FileName(fi)); tc->setDisplayName(tr("GCCE from Qt version")); - tc->setDebuggerCommand(ProjectExplorer::ToolChainManager::instance()->defaultDebugger(tc->targetAbi())); result.append(tc); } } @@ -195,7 +194,6 @@ QList<ProjectExplorer::ToolChain *> GcceToolChainFactory::autoDetect() GcceToolChain *tc = new GcceToolChain(true); tc->setCompilerCommand(fullPath); tc->setDisplayName(tr("GCCE (%1)").arg(version)); - tc->setDebuggerCommand(ProjectExplorer::ToolChainManager::instance()->defaultDebugger(tc->targetAbi())); if (tc->targetAbi() == ProjectExplorer::Abi(ProjectExplorer::Abi::ArmArchitecture, ProjectExplorer::Abi::SymbianOS, ProjectExplorer::Abi::SymbianDeviceFlavor, diff --git a/src/plugins/qt4projectmanager/qt-s60/qt-s60.pri b/src/plugins/qt4projectmanager/qt-s60/qt-s60.pri index f25ce876fd..5f1fb95de6 100644 --- a/src/plugins/qt4projectmanager/qt-s60/qt-s60.pri +++ b/src/plugins/qt4projectmanager/qt-s60/qt-s60.pri @@ -21,8 +21,6 @@ SOURCES += $$PWD/s60manager.cpp \ $$PWD/certificatepathchooser.cpp \ $$PWD/s60symbiancertificate.cpp \ $$PWD/s60certificatedetailsdialog.cpp \ - $$PWD/qt4symbiantargetfactory.cpp \ - $$PWD/qt4symbiantarget.cpp \ $$PWD/s60runcontrolfactory.cpp \ $$PWD/codaruncontrol.cpp \ $$PWD/s60runcontrolbase.cpp \ @@ -57,8 +55,6 @@ HEADERS += $$PWD/s60manager.h \ $$PWD/certificatepathchooser.h \ $$PWD/s60symbiancertificate.h \ $$PWD/s60certificatedetailsdialog.h \ - $$PWD/qt4symbiantargetfactory.h \ - $$PWD/qt4symbiantarget.h \ $$PWD/s60runcontrolfactory.h \ $$PWD/codaruncontrol.h \ $$PWD/s60runcontrolbase.h \ diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantarget.cpp b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantarget.cpp deleted file mode 100644 index 00d3fad54a..0000000000 --- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantarget.cpp +++ /dev/null @@ -1,130 +0,0 @@ -/************************************************************************** -** -** This file is part of Qt Creator -** -** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies). -** -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** -** GNU Lesser General Public License Usage -** -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this file. -** Please review the following information to ensure the GNU Lesser General -** Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** Other Usage -** -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -**************************************************************************/ - -#include "qt4symbiantarget.h" -#include "qt4projectmanagerconstants.h" -#include "qt4project.h" -#include "qt4nodes.h" -#include "qt4buildconfiguration.h" -#include "symbianidevice.h" - -#include "qt-s60/s60deployconfiguration.h" -#include "qt-s60/s60devicerunconfiguration.h" - -#include <projectexplorer/devicesupport/idevice.h> -#include <projectexplorer/project.h> -#include <projectexplorer/toolchainmanager.h> -#include <projectexplorer/toolchain.h> -#include <qtsupport/customexecutablerunconfiguration.h> -#include <extensionsystem/pluginmanager.h> -#include <QApplication> - -using namespace Qt4ProjectManager; -using namespace Qt4ProjectManager::Internal; - -Qt4SymbianTarget::Qt4SymbianTarget(Qt4Project *parent, const Core::Id id) : - Qt4BaseTarget(parent, id), - m_buildConfigurationFactory(new Qt4BuildConfigurationFactory(this)) -{ - setDisplayName(defaultDisplayName(id)); - setIcon(iconForId(id)); -} - -Qt4SymbianTarget::~Qt4SymbianTarget() -{ } - -QString Qt4SymbianTarget::defaultDisplayName(const Core::Id id) -{ - if (id == Core::Id(Constants::S60_DEVICE_TARGET_ID)) - return QApplication::translate("Qt4ProjectManager::Qt4Target", "Symbian Device", "Qt4 Symbian Device target display name"); - return QString(); -} - -QIcon Qt4SymbianTarget::iconForId(Core::Id id) -{ - if (id == Core::Id(Constants::S60_DEVICE_TARGET_ID)) - return QIcon(QLatin1String(":/projectexplorer/images/SymbianDevice.png")); - return QIcon(); -} - -ProjectExplorer::IBuildConfigurationFactory *Qt4SymbianTarget::buildConfigurationFactory() const -{ - return m_buildConfigurationFactory; -} - -void Qt4SymbianTarget::createApplicationProFiles(bool reparse) -{ - if (!reparse) - removeUnconfiguredCustomExectutableRunConfigurations(); - - // We use the list twice - QList<Qt4ProFileNode *> profiles = qt4Project()->applicationProFiles(); - QSet<QString> paths; - foreach (Qt4ProFileNode *pro, profiles) - paths << pro->path(); - - if (id() == Core::Id(Constants::S60_DEVICE_TARGET_ID)) { - foreach (ProjectExplorer::RunConfiguration *rc, runConfigurations()) - if (S60DeviceRunConfiguration *qt4rc = qobject_cast<S60DeviceRunConfiguration *>(rc)) - paths.remove(qt4rc->proFilePath()); - - // Only add new runconfigurations if there are none. - foreach (const QString &path, paths) - addRunConfiguration(new S60DeviceRunConfiguration(this, path)); - } - - // Oh still none? Add a custom executable runconfiguration - if (runConfigurations().isEmpty()) { - addRunConfiguration(new QtSupport::CustomExecutableRunConfiguration(this)); - } -} - -QList<ProjectExplorer::RunConfiguration *> Qt4SymbianTarget::runConfigurationsForNode(ProjectExplorer::Node *n) -{ - QList<ProjectExplorer::RunConfiguration *> result; - foreach (ProjectExplorer::RunConfiguration *rc, runConfigurations()) { - if (id() == Core::Id(Constants::S60_DEVICE_TARGET_ID)) { - if (S60DeviceRunConfiguration *s60rc = qobject_cast<S60DeviceRunConfiguration *>(rc)) - if (s60rc->proFilePath() == n->path()) - result << rc; - } - } - return result; -} - -ProjectExplorer::IDevice::ConstPtr Qt4SymbianTarget::currentDevice() const -{ - S60DeployConfiguration *dc = dynamic_cast<S60DeployConfiguration *>(activeDeployConfiguration()); - if (dc) - return dc->device(); - return ProjectExplorer::IDevice::ConstPtr(); -} diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantarget.h b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantarget.h deleted file mode 100644 index 1b356a5dde..0000000000 --- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantarget.h +++ /dev/null @@ -1,70 +0,0 @@ -/************************************************************************** -** -** This file is part of Qt Creator -** -** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies). -** -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** -** GNU Lesser General Public License Usage -** -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this file. -** Please review the following information to ensure the GNU Lesser General -** Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** Other Usage -** -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -**************************************************************************/ - -#ifndef QT4SYMBIANTARGET_H -#define QT4SYMBIANTARGET_H - -#include "qt4target.h" - -#include <QPixmap> - -namespace Qt4ProjectManager { -class Qt4Project; -class Qt4BuildConfigurationFactory; -namespace Internal { - - -class Qt4SymbianTarget : public Qt4BaseTarget -{ - friend class Qt4SymbianTargetFactory; // for from Map - Q_OBJECT -public: - Qt4SymbianTarget(Qt4Project *parent, const Core::Id id); - ~Qt4SymbianTarget(); - - ProjectExplorer::IBuildConfigurationFactory *buildConfigurationFactory() const; - - void createApplicationProFiles(bool reparse); - virtual QList<ProjectExplorer::RunConfiguration *> runConfigurationsForNode(ProjectExplorer::Node *n); - - static QString defaultDisplayName(const Core::Id id); - static QIcon iconForId(Core::Id id); - -protected: - ProjectExplorer::IDevice::ConstPtr currentDevice() const; - -private: - Qt4BuildConfigurationFactory *m_buildConfigurationFactory; -}; -} // namespace Internal -} // namespace Qt4ProjectManager -#endif // QT4SYMBIANTARGET_H diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp deleted file mode 100644 index 9f90794900..0000000000 --- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp +++ /dev/null @@ -1,223 +0,0 @@ -/************************************************************************** -** -** This file is part of Qt Creator -** -** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies). -** -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** -** GNU Lesser General Public License Usage -** -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this file. -** Please review the following information to ensure the GNU Lesser General -** Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** Other Usage -** -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -**************************************************************************/ - -#include "qt4symbiantargetfactory.h" -#include "qt4projectmanagerconstants.h" -#include "qt4project.h" -#include "buildconfigurationinfo.h" - -#include "qt-s60/s60deployconfiguration.h" -#include "qt-s60/s60devicerunconfiguration.h" -#include "qt-s60/s60createpackagestep.h" -#include "qt-s60/s60deploystep.h" -#include "qt-s60/qt4symbiantarget.h" - -#include <projectexplorer/projectexplorerconstants.h> -#include <projectexplorer/toolchainmanager.h> -#include <qtsupport/customexecutablerunconfiguration.h> - -#include <qtsupport/qtversionmanager.h> - -using ProjectExplorer::idFromMap; -using ProjectExplorer::Task; -using namespace Qt4ProjectManager; -using namespace Qt4ProjectManager::Internal; - -// ------------------------------------------------------------------------- -// Qt4SymbianTargetFactory -// ------------------------------------------------------------------------- - -Qt4SymbianTargetFactory::Qt4SymbianTargetFactory(QObject *parent) : - Qt4BaseTargetFactory(parent) -{ - connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), - this, SIGNAL(canCreateTargetIdsChanged())); -} - -Qt4SymbianTargetFactory::~Qt4SymbianTargetFactory() -{ -} - -bool Qt4SymbianTargetFactory::supportsTargetId(const Core::Id id) const -{ - return id == Core::Id(Constants::S60_DEVICE_TARGET_ID); -} - -QList<Core::Id> Qt4SymbianTargetFactory::supportedTargetIds() const -{ - QList<Core::Id> ids; - ids << Core::Id(Constants::S60_DEVICE_TARGET_ID); - return ids; -} - -QString Qt4SymbianTargetFactory::displayNameForId(const Core::Id id) const -{ - return Qt4SymbianTarget::defaultDisplayName(id); -} - -QIcon Qt4SymbianTargetFactory::iconForId(const Core::Id id) const -{ - if (id == Core::Id(Constants::S60_DEVICE_TARGET_ID)) - return QIcon(QLatin1String(":/projectexplorer/images/SymbianDevice.png")); - return QIcon(); -} - -bool Qt4SymbianTargetFactory::canCreate(ProjectExplorer::Project *parent, const Core::Id id) const -{ - if (!qobject_cast<Qt4Project *>(parent)) - return false; - if (!supportsTargetId(id)) - return false; - return QtSupport::QtVersionManager::instance()->supportsTargetId(id); -} - -bool Qt4SymbianTargetFactory::canRestore(ProjectExplorer::Project *parent, const QVariantMap &map) const -{ - return qobject_cast<Qt4Project *>(parent) && supportsTargetId(idFromMap(map)); -} - -ProjectExplorer::Target *Qt4SymbianTargetFactory::restore(ProjectExplorer::Project *parent, const QVariantMap &map) -{ - if (!canRestore(parent, map)) - return 0; - - Qt4Project *qt4project = static_cast<Qt4Project *>(parent); - Qt4SymbianTarget *target = new Qt4SymbianTarget(qt4project, idFromMap(map)); - - if (target->fromMap(map)) - return target; - delete target; - return 0; -} - -QString Qt4SymbianTargetFactory::shadowBuildDirectory(const QString &profilePath, const Core::Id id, const QString &suffix) -{ - Q_UNUSED(id); - Q_UNUSED(suffix); - return QFileInfo(profilePath).absolutePath(); -} - -QList<ProjectExplorer::Task> Qt4SymbianTargetFactory::reportIssues(const QString &proFile) -{ - QList<ProjectExplorer::Task> results; - // Warn of strange characters in project name and path: - const QString projectName = proFile.mid(proFile.lastIndexOf(QLatin1Char('/')) + 1); - QString projectPath = proFile.left(proFile.lastIndexOf(QLatin1Char('/'))); -#if defined (Q_OS_WIN) - if (projectPath.at(1) == QLatin1Char(':') && projectPath.at(0).toUpper() >= QLatin1Char('A') && projectPath.at(0).toUpper() <= QLatin1Char('Z')) - projectPath.remove(0, 2); -#endif - if (projectPath.contains(QLatin1Char(' '))) { - results.append(Task(Task::Warning, - QCoreApplication::translate("ProjectExplorer::Internal::S60ProjectChecker", - "The Symbian tool chain does not handle spaces " - "in the project path '%1'.").arg(projectPath), - Utils::FileName(), -1, Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); - } - if (projectName.contains(QRegExp(QLatin1String("[^a-zA-Z0-9.-]")))) { - results.append(Task(Task::Warning, - QCoreApplication::translate("ProjectExplorer::Internal::S60ProjectChecker", - "The Symbian tool chain does not handle special " - "characters in the project name '%1' well.") - .arg(projectName), - Utils::FileName(), -1, Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); - } - return results; -} - -QList<BuildConfigurationInfo> Qt4SymbianTargetFactory::availableBuildConfigurations(const Core::Id id, const QString &proFilePath, - const QtSupport::QtVersionNumber &minimumQtVersion, - const QtSupport::QtVersionNumber &maximumQtVersion, - const Core::FeatureSet &requiredFeatures) -{ - return Qt4BaseTargetFactory::availableBuildConfigurations(id, proFilePath, minimumQtVersion, maximumQtVersion, requiredFeatures); -} - -bool Qt4SymbianTargetFactory::selectByDefault(const Core::Id id) const -{ - Q_UNUSED(id); - return true; -} - -QSet<QString> Qt4SymbianTargetFactory::targetFeatures(const Core::Id /*id*/) const -{ - QSet<QString> features; - features << QLatin1String(Constants::MOBILE_TARGETFEATURE_ID); - - return features; -} - -ProjectExplorer::Target *Qt4SymbianTargetFactory::create(ProjectExplorer::Project *parent, const Core::Id id) -{ - if (!canCreate(parent, id)) - return 0; - - QList<QtSupport::BaseQtVersion *> knownVersions = QtSupport::QtVersionManager::instance()->versionsForTargetId(id); - if (knownVersions.isEmpty()) - return 0; - - QtSupport::BaseQtVersion *qtVersion = knownVersions.first(); - QtSupport::BaseQtVersion::QmakeBuildConfigs config = qtVersion->defaultBuildConfig(); - - QList<BuildConfigurationInfo> infos; - infos.append(BuildConfigurationInfo(qtVersion->uniqueId(), config, QString(), QString())); - infos.append(BuildConfigurationInfo(qtVersion->uniqueId(), config ^ QtSupport::BaseQtVersion::DebugBuild, QString(), QString())); - - return create(parent, id, infos); -} - -ProjectExplorer::Target *Qt4SymbianTargetFactory::create(ProjectExplorer::Project *parent, const Core::Id id, const QList<BuildConfigurationInfo> &infos) -{ - if (!canCreate(parent, id)) - return 0; - Qt4SymbianTarget *t = new Qt4SymbianTarget(static_cast<Qt4Project *>(parent), id); - foreach (const BuildConfigurationInfo &info, infos) - t->addQt4BuildConfiguration(msgBuildConfigurationName(info), QString(), - info.version(), info.buildConfig, - info.additionalArguments, info.directory, info.importing); - - t->addDeployConfiguration(t->createDeployConfiguration(Core::Id(S60_DEPLOYCONFIGURATION_ID))); - - t->createApplicationProFiles(false); - - if (t->runConfigurations().isEmpty()) - t->addRunConfiguration(new QtSupport::CustomExecutableRunConfiguration(t)); - return t; -} - -ProjectExplorer::Target *Qt4SymbianTargetFactory::create(ProjectExplorer::Project *parent, const Core::Id id, Qt4TargetSetupWidget *widget) -{ - if (!widget->isTargetSelected()) - return 0; - Qt4DefaultTargetSetupWidget *w = static_cast<Qt4DefaultTargetSetupWidget *>(widget); - return create(parent, id, w->buildConfigurationInfos()); -} diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.h b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.h deleted file mode 100644 index c802a50607..0000000000 --- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.h +++ /dev/null @@ -1,77 +0,0 @@ -/************************************************************************** -** -** This file is part of Qt Creator -** -** Copyright (c) 2012 Nokia Corporation and/or its subsidiary(-ies). -** -** Contact: Nokia Corporation (qt-info@nokia.com) -** -** -** GNU Lesser General Public License Usage -** -** This file may be used under the terms of the GNU Lesser General Public -** License version 2.1 as published by the Free Software Foundation and -** appearing in the file LICENSE.LGPL included in the packaging of this file. -** Please review the following information to ensure the GNU Lesser General -** Public License version 2.1 requirements will be met: -** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html. -** -** In addition, as a special exception, Nokia gives you certain additional -** rights. These rights are described in the Nokia Qt LGPL Exception -** version 1.1, included in the file LGPL_EXCEPTION.txt in this package. -** -** Other Usage -** -** Alternatively, this file may be used in accordance with the terms and -** conditions contained in a signed written agreement between you and Nokia. -** -** If you have questions regarding the use of this file, please contact -** Nokia at qt-info@nokia.com. -** -**************************************************************************/ - -#ifndef QT4SYMBIANTARGETFACTORY_H -#define QT4SYMBIANTARGETFACTORY_H - -#include "qt4basetargetfactory.h" - -namespace Qt4ProjectManager { -namespace Internal { -class Qt4SymbianTargetFactory : public Qt4BaseTargetFactory -{ - Q_OBJECT -public: - Qt4SymbianTargetFactory(QObject *parent = 0); - ~Qt4SymbianTargetFactory(); - - QList<Core::Id> supportedTargetIds() const; - bool supportsTargetId(const Core::Id id) const; - QString displayNameForId(const Core::Id id) const; - QIcon iconForId(const Core::Id id) const; - - bool canCreate(ProjectExplorer::Project *parent, const Core::Id id) const; - bool canRestore(ProjectExplorer::Project *parent, const QVariantMap &map) const; - virtual ProjectExplorer::Target *restore(ProjectExplorer::Project *parent, const QVariantMap &map); - - virtual ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const Core::Id id); - virtual ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const Core::Id id, - const QList<BuildConfigurationInfo> &infos); - virtual ProjectExplorer::Target *create(ProjectExplorer::Project *parent, const Core::Id id, - Qt4TargetSetupWidget *widget); - - QString shadowBuildDirectory(const QString &profilePath, const Core::Id id, const QString &suffix); - QList<ProjectExplorer::Task> reportIssues(const QString &proFile); - QList<BuildConfigurationInfo> availableBuildConfigurations(const Core::Id id, const QString &proFilePath, - const QtSupport::QtVersionNumber &minimumQtVersion, - const QtSupport::QtVersionNumber &maximumQtVersion, - const Core::FeatureSet &requiredFeatures); - - bool selectByDefault(const Core::Id id) const; - QSet<QString> targetFeatures(const Core::Id id) const; -}; - -} // namespace Internal -} // namespace Qt4ProjectManager - - -#endif // QT4SYMBIANTARGETFACTORY_H diff --git a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp index 21e30c9097..9ffc10b37f 100644 --- a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.cpp @@ -62,7 +62,6 @@ static const char *const RVCT_LICENSE_KEY = "ARMLMD_LICENSE_FILE"; static const char rvctPathKeyC[] = "Qt4ProjectManager.RvctToolChain.CompilerPath"; static const char rvctEnvironmentKeyC[] = "Qt4ProjectManager.RvctToolChain.Environment"; static const char rvctArmVersionKeyC[] = "Qt4ProjectManager.RvctToolChain.ArmVersion"; -static const char debuggerCommandKeyC[] = "Qt4ProjectManager.RvctToolChain.Debugger"; static QString valueOf(const QList<Utils::EnvironmentItem> &items, const QString &suffix) { @@ -104,8 +103,7 @@ RvctToolChain::RvctToolChain(const RvctToolChain &tc) : ToolChain(tc), m_compilerCommand(tc.m_compilerCommand), m_environmentChanges(tc.m_environmentChanges), - m_armVersion(tc.m_armVersion), - m_debuggerCommand(tc.debuggerCommand()) + m_armVersion(tc.m_armVersion) { } RvctToolChain::RvctVersion RvctToolChain::version(const Utils::FileName &rvctPath) @@ -253,8 +251,7 @@ bool RvctToolChain::operator ==(const ToolChain &other) const const RvctToolChain *otherPtr = dynamic_cast<const RvctToolChain *>(&other); return m_compilerCommand == otherPtr->m_compilerCommand && m_environmentChanges == otherPtr->m_environmentChanges - && m_armVersion == otherPtr->m_armVersion - && m_debuggerCommand == otherPtr->m_debuggerCommand; + && m_armVersion == otherPtr->m_armVersion; } void RvctToolChain::setEnvironmentChanges(const QList<Utils::EnvironmentItem> &changes) @@ -285,19 +282,6 @@ Utils::FileName RvctToolChain::compilerCommand() const return m_compilerCommand; } -void RvctToolChain::setDebuggerCommand(const Utils::FileName &d) -{ - if (m_debuggerCommand == d) - return; - m_debuggerCommand = d; - toolChainUpdated(); -} - -Utils::FileName RvctToolChain::debuggerCommand() const -{ - return m_debuggerCommand; -} - void RvctToolChain::setArmVersion(RvctToolChain::ArmVersion av) { if (m_armVersion == av) @@ -339,7 +323,6 @@ QVariantMap RvctToolChain::toMap() const tmp.insert(i.name, i.value); result.insert(QLatin1String(rvctEnvironmentKeyC), tmp); result.insert(QLatin1String(rvctArmVersionKeyC), static_cast<int>(m_armVersion)); - result.insert(QLatin1String(debuggerCommandKeyC), m_debuggerCommand.toString()); return result; } @@ -354,17 +337,9 @@ bool RvctToolChain::fromMap(const QVariantMap &data) for (QVariantMap::const_iterator i = tmp.constBegin(); i != tmp.constEnd(); ++i) m_environmentChanges.append(Utils::EnvironmentItem(i.key(), i.value().toString())); m_armVersion = static_cast<ArmVersion>(data.value(QLatin1String(rvctArmVersionKeyC), 0).toInt()); - m_debuggerCommand = Utils::FileName::fromString(data.value(QLatin1String(debuggerCommandKeyC)).toString()); return isValid(); } -QString RvctToolChain::legacyId() const -{ - const QChar dot = QLatin1Char('.'); - return QLatin1String(Constants::RVCT_TOOLCHAIN_ID) + QLatin1Char(':') + m_compilerCommand.toString() + dot - + armVersionString(m_armVersion) + dot + m_debuggerCommand.toString(); -} - QString RvctToolChain::varName(const QString &postFix) const { return QString::fromLatin1("RVCT%1%2%3") @@ -381,7 +356,6 @@ RvctToolChainConfigWidget::RvctToolChainConfigWidget(RvctToolChain *tc) : m_model(new Utils::EnvironmentModel(this)) { m_ui->setupUi(this); - addDebuggerCommandControls(m_ui->formLayout, QStringList(QLatin1String("--version"))); m_ui->environmentView->setModel(m_model); m_ui->environmentView->horizontalHeader()->setResizeMode(QHeaderView::ResizeToContents); @@ -400,8 +374,6 @@ RvctToolChainConfigWidget::RvctToolChainConfigWidget(RvctToolChain *tc) : m_ui->versionComboBox->setCurrentIndex(static_cast<int>(tc->armVersion())); connect(m_ui->versionComboBox, SIGNAL(currentIndexChanged(int)), this, SLOT(emitDirty())); - addMkspecControls(m_ui->formLayout); - setFromToolChain(); } @@ -419,8 +391,6 @@ void RvctToolChainConfigWidget::apply() tc->setCompilerCommand(m_ui->compilerPath->fileName()); tc->setArmVersion(static_cast<RvctToolChain::ArmVersion>(m_ui->versionComboBox->currentIndex())); tc->setEnvironmentChanges(changes); - tc->setDebuggerCommand(debuggerCommand()); - tc->setMkspecList(mkspecList()); m_model->setUserChanges(changes); } @@ -434,8 +404,6 @@ void RvctToolChainConfigWidget::setFromToolChain() m_ui->compilerPath->setFileName(tc->compilerCommand()); m_ui->versionComboBox->setCurrentIndex(static_cast<int>(tc->armVersion())); - setDebuggerCommand(tc->debuggerCommand()); - setMkspecList(tc->mkspecList()); } bool RvctToolChainConfigWidget::isDirty() const @@ -445,9 +413,7 @@ bool RvctToolChainConfigWidget::isDirty() const return tc->compilerCommand() != m_ui->compilerPath->fileName() || tc->armVersion() != static_cast<RvctToolChain::ArmVersion>(m_ui->versionComboBox->currentIndex()) - || tc->environmentChanges() != environmentChanges() - || tc->debuggerCommand() != debuggerCommand() - || tc->mkspecList() != mkspecList(); + || tc->environmentChanges() != environmentChanges(); } void RvctToolChainConfigWidget::makeReadOnly() @@ -544,7 +510,6 @@ QList<ProjectExplorer::ToolChain *> RvctToolChainFactory::autoDetect() tc->setDisplayName(name.arg(armVersionString(tc->armVersion())) .arg(v.majorVersion).arg(v.minorVersion).arg(v.build)); tc->setVersion(v); - tc->setDebuggerCommand(ProjectExplorer::ToolChainManager::instance()->defaultDebugger(tc->targetAbi())); result.append(tc); tc = new RvctToolChain(true); @@ -554,7 +519,6 @@ QList<ProjectExplorer::ToolChain *> RvctToolChainFactory::autoDetect() tc->setDisplayName(name.arg(armVersionString(tc->armVersion())) .arg(v.majorVersion).arg(v.minorVersion).arg(v.build)); tc->setVersion(v); - tc->setDebuggerCommand(ProjectExplorer::ToolChainManager::instance()->defaultDebugger(tc->targetAbi())); result.append(tc); } diff --git a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h index 36e9df44d3..62435f7cea 100644 --- a/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h +++ b/src/plugins/qt4projectmanager/qt-s60/rvcttoolchain.h @@ -85,8 +85,6 @@ public: QString typeDisplayName() const; ProjectExplorer::Abi targetAbi() const; - QString legacyId() const; - bool isValid() const; QByteArray predefinedMacros(const QStringList &cxxflags) const; @@ -105,9 +103,6 @@ public: void setCompilerCommand(const Utils::FileName &path); Utils::FileName compilerCommand() const; - void setDebuggerCommand(const Utils::FileName &d); - Utils::FileName debuggerCommand() const; - void setArmVersion(ArmVersion); ArmVersion armVersion() const; @@ -130,7 +125,6 @@ private: QList<Utils::EnvironmentItem> m_environmentChanges; ArmVersion m_armVersion; mutable RvctVersion m_version; - Utils::FileName m_debuggerCommand; friend class RvctToolChainFactory; }; diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp index 493c9bd65f..464f842132 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.cpp @@ -43,6 +43,7 @@ #include "s60certificateinfo.h" #include "s60certificatedetailsdialog.h" #include "symbianqtversion.h" +#include "symbianidevicefactory.h" #include <app/app_version.h> @@ -52,11 +53,14 @@ #include <projectexplorer/buildconfiguration.h> #include <projectexplorer/buildsteplist.h> #include <projectexplorer/projectexplorerconstants.h> +#include <projectexplorer/profileinformation.h> #include <projectexplorer/target.h> #include <projectexplorer/project.h> #include <projectexplorer/gnumakeparser.h> #include <projectexplorer/task.h> +#include <qtsupport/qtprofileinformation.h> + #include <QDir> #include <QTimer> #include <QCryptographicHash> @@ -182,12 +186,21 @@ Qt4BuildConfiguration *S60CreatePackageStep::qt4BuildConfiguration() const bool S60CreatePackageStep::init() { Qt4Project *pro = qobject_cast<Qt4Project *>(project()); + ProjectExplorer::ToolChain *tc + = ProjectExplorer::ToolChainProfileInformation::toolChain(target()->profile()); QList<Qt4ProFileNode *> nodes = pro->allProFiles(); - SymbianQtVersion *sqv = dynamic_cast<SymbianQtVersion *>(qt4BuildConfiguration()->qtVersion()); - if (!sqv) + SymbianQtVersion *sqv + = dynamic_cast<SymbianQtVersion *>(QtSupport::QtProfileInformation::qtVersion(target()->profile())); + if (!sqv) { + emit addOutput(tr("The selected profile is not configured with a Symbian Qt"), BuildStep::ErrorOutput); + return false; + } + if (!tc) { + emit addOutput(tr("The selected profile has no toolchain"), BuildStep::ErrorOutput); return false; + } m_isBuildWithSymbianSbsV2 = sqv->isBuildWithSymbianSbsV2(); m_workingDirectories.clear(); @@ -198,7 +211,7 @@ bool S60CreatePackageStep::init() } projectCapabilities.removeDuplicates(); - m_makeCmd = qt4BuildConfiguration()->makeCommand(); + m_makeCmd = tc->makeCommand(); if (!QFileInfo(m_makeCmd).isAbsolute()) { // Try to detect command in environment const QString tmp = qt4BuildConfiguration()->environment().searchInPath(m_makeCmd); @@ -265,7 +278,7 @@ void S60CreatePackageStep::handleWarnAboutPatching() changedText = tr("<p>Qt modified some of your packages.</p>"); } const QString text = - tr("%1<p><em>These changes were not part of your build system</em> but are required to " + tr("%1<p><em>These changes were not part of your build profile</em> but are required to " "make sure the <em>self-signed</em> package can be installed successfully on a device.</p>" "<p>Check the Issues pane for more details on the modifications made.</p>" "<p>Please see the <a href=\"%2\">documentation</a> for other signing options which " @@ -739,11 +752,7 @@ S60CreatePackageStepFactory::~S60CreatePackageStepFactory() bool S60CreatePackageStepFactory::canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const { - if (parent->id() != Core::Id(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY)) - return false; - if (parent->target()->id() != Core::Id(Constants::S60_DEVICE_TARGET_ID)) - return false; - return (id == Core::Id(SIGN_BS_ID)); + return canHandle(parent) && id == Core::Id(SIGN_BS_ID); } ProjectExplorer::BuildStep *S60CreatePackageStepFactory::create(ProjectExplorer::BuildStepList *parent, const Core::Id id) @@ -765,6 +774,16 @@ ProjectExplorer::BuildStep *S60CreatePackageStepFactory::clone(ProjectExplorer:: return new S60CreatePackageStep(parent, static_cast<S60CreatePackageStep *>(source)); } +bool S60CreatePackageStepFactory::canHandle(ProjectExplorer::BuildStepList *parent) const +{ + if (parent->id() != Core::Id(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY)) + return false; + Core::Id deviceType = ProjectExplorer::DeviceTypeProfileInformation::deviceTypeId(parent->target()->profile()); + if (deviceType != SymbianIDeviceFactory::deviceType()) + return false; + return qobject_cast<Qt4Project *>(parent->target()->project()); +} + bool S60CreatePackageStepFactory::canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const { return canCreate(parent, ProjectExplorer::idFromMap(map)); @@ -783,11 +802,10 @@ ProjectExplorer::BuildStep *S60CreatePackageStepFactory::restore(ProjectExplorer QList<Core::Id> S60CreatePackageStepFactory::availableCreationIds(ProjectExplorer::BuildStepList *parent) const { - if (parent->id() != Core::Id(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY)) + if (!canHandle(parent)) return QList<Core::Id>(); - if (parent->target()->id() == Core::Id(Constants::S60_DEVICE_TARGET_ID)) - return QList<Core::Id>() << Core::Id(SIGN_BS_ID); - return QList<Core::Id>(); + + return QList<Core::Id>() << Core::Id(SIGN_BS_ID); } QString S60CreatePackageStepFactory::displayNameForId(const Core::Id id) const diff --git a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h index 8cbdb8aa1c..b308036123 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60createpackagestep.h @@ -73,6 +73,8 @@ public: ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map); bool canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) const; ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product); + + bool canHandle(ProjectExplorer::BuildStepList *parent) const; }; diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp index 6b7f323378..0e9b22f2b1 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.cpp @@ -34,11 +34,9 @@ #include "s60deployconfigurationwidget.h" #include "s60manager.h" #include "qt4project.h" -#include "qt4target.h" #include "qt4nodes.h" #include "qt4projectmanagerconstants.h" #include "qt4buildconfiguration.h" -#include "qt4symbiantarget.h" #include "s60createpackagestep.h" #include "s60deploystep.h" #include "symbianidevice.h" @@ -51,9 +49,13 @@ #include <projectexplorer/buildsteplist.h> #include <projectexplorer/devicesupport/devicemanager.h> #include <projectexplorer/project.h> +#include <projectexplorer/profileinformation.h> +#include <projectexplorer/target.h> #include <projectexplorer/toolchain.h> #include <projectexplorer/devicesupport/devicemanager.h> +#include <qtsupport/qtprofileinformation.h> + #include <QFileInfo> using namespace ProjectExplorer; @@ -107,15 +109,17 @@ S60DeployConfiguration::S60DeployConfiguration(Target *target, S60DeployConfigur void S60DeployConfiguration::ctor() { setDefaultDisplayName(defaultDisplayName()); + + Qt4Project *project = static_cast<Qt4Project *>(target()->project()); // TODO disable S60 Deploy Configuration while parsing // requires keeping track of the parsing state of the project - connect(qt4Target()->qt4Project(), SIGNAL(proFileUpdated(Qt4ProjectManager::Qt4ProFileNode*,bool,bool)), + connect(project, SIGNAL(proFileUpdated(Qt4ProjectManager::Qt4ProFileNode*,bool,bool)), this, SLOT(slotTargetInformationChanged(Qt4ProjectManager::Qt4ProFileNode*,bool,bool))); - connect(qt4Target(), SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)), + connect(target(), SIGNAL(activeBuildConfigurationChanged(ProjectExplorer::BuildConfiguration*)), this, SLOT(updateActiveBuildConfiguration(ProjectExplorer::BuildConfiguration*))); - connect(qt4Target(), SIGNAL(activeRunConfigurationChanged(ProjectExplorer::RunConfiguration*)), + connect(target(), SIGNAL(activeRunConfigurationChanged(ProjectExplorer::RunConfiguration*)), this, SLOT(updateActiveRunConfiguration(ProjectExplorer::RunConfiguration*))); - updateActiveBuildConfiguration(qt4Target()->activeBuildConfiguration()); + updateActiveBuildConfiguration(target()->activeBuildConfiguration()); } S60DeployConfiguration::~S60DeployConfiguration() @@ -155,7 +159,7 @@ bool S60DeployConfiguration::hasSisPackage(const Qt4ProFileNode &projectNode) co QStringList S60DeployConfiguration::signedPackages() const { - QList<Qt4ProFileNode *> list = qt4Target()->qt4Project()->allProFiles(); + QList<Qt4ProFileNode *> list = static_cast<Qt4Project *>(target()->project())->allProFiles(); QStringList result; foreach (Qt4ProFileNode *node, list) { if (!hasSisPackage(*node)) @@ -183,7 +187,7 @@ SymbianIDevice::ConstPtr S60DeployConfiguration::device() const QStringList S60DeployConfiguration::packageFileNamesWithTargetInfo() const { - QList<Qt4ProFileNode *> leafs = qt4Target()->qt4Project()->allProFiles(); + QList<Qt4ProFileNode *> leafs = static_cast<Qt4Project *>(target()->project())->allProFiles(); QStringList result; foreach (Qt4ProFileNode *qt4ProFileNode, leafs) { if (!hasSisPackage(*qt4ProFileNode)) @@ -192,9 +196,10 @@ QStringList S60DeployConfiguration::packageFileNamesWithTargetInfo() const if (!ti.valid) continue; QString baseFileName = ti.buildDir + QLatin1Char('/') + ti.target; + ToolChain *tc = ProjectExplorer::ToolChainProfileInformation::toolChain(target()->profile()); baseFileName += QLatin1Char('_') + (isDebug() ? QLatin1String("debug") : QLatin1String("release")) - + QLatin1Char('-') + S60Manager::platform(qt4Target()->activeBuildConfiguration()->toolChain()) + QLatin1String(".sis"); + + QLatin1Char('-') + S60Manager::platform(tc) + QLatin1String(".sis"); result << baseFileName; } return result; @@ -202,7 +207,7 @@ QStringList S60DeployConfiguration::packageFileNamesWithTargetInfo() const QStringList S60DeployConfiguration::packageTemplateFileNames() const { - QList<Qt4ProFileNode *> list = qt4Target()->qt4Project()->allProFiles(); + QList<Qt4ProFileNode *> list = static_cast<Qt4Project *>(target()->project())->allProFiles(); QStringList result; foreach (Qt4ProFileNode *node, list) { if (!hasSisPackage(*node)) @@ -216,7 +221,7 @@ QStringList S60DeployConfiguration::packageTemplateFileNames() const QStringList S60DeployConfiguration::appPackageTemplateFileNames() const { - QList<Qt4ProFileNode *> list = qt4Target()->qt4Project()->allProFiles(); + QList<Qt4ProFileNode *> list = static_cast<Qt4Project *>(target()->project())->allProFiles(); QStringList result; foreach (Qt4ProFileNode *node, list) { if (!hasSisPackage(*node)) @@ -258,16 +263,10 @@ bool S60DeployConfiguration::isSigned() const return false; } -ProjectExplorer::ToolChain *S60DeployConfiguration::toolChain() const -{ - if (Qt4BuildConfiguration *bc = qobject_cast<Qt4BuildConfiguration *>(target()->activeBuildConfiguration())) - return bc->toolChain(); - return 0; -} - bool S60DeployConfiguration::isDebug() const { - const Qt4BuildConfiguration *qt4bc = qt4Target()->activeQt4BuildConfiguration(); + const Qt4BuildConfiguration *qt4bc = qobject_cast<Qt4BuildConfiguration *>(target()->activeBuildConfiguration()); + QTC_ASSERT(qt4bc, return false); return (qt4bc->qmakeBuildConfiguration() & QtSupport::BaseQtVersion::DebugBuild); } @@ -276,13 +275,6 @@ QString S60DeployConfiguration::symbianTarget() const return isDebug() ? QLatin1String("udeb") : QLatin1String("urel"); } -const QtSupport::BaseQtVersion *S60DeployConfiguration::qtVersion() const -{ - if (const Qt4BuildConfiguration *qt4bc = qt4Target()->activeQt4BuildConfiguration()) - return qt4bc->qtVersion(); - return 0; -} - void S60DeployConfiguration::updateActiveBuildConfiguration(ProjectExplorer::BuildConfiguration *buildConfiguration) { if (m_activeBuildConfiguration) @@ -311,7 +303,7 @@ QVariantMap S60DeployConfiguration::toMap() const QString S60DeployConfiguration::defaultDisplayName() const { - QList<Qt4ProFileNode *> list = qt4Target()->qt4Project()->allProFiles(); + QList<Qt4ProFileNode *> list = static_cast<Qt4Project *>(target()->project())->allProFiles(); foreach (Qt4ProFileNode *node, list) { TargetInformation ti = node->targetInformation(); if (ti.valid && !ti.buildDir.isEmpty()) @@ -332,11 +324,6 @@ bool S60DeployConfiguration::fromMap(const QVariantMap &map) return true; } -Qt4SymbianTarget *S60DeployConfiguration::qt4Target() const -{ - return static_cast<Qt4SymbianTarget *>(target()); -} - char S60DeployConfiguration::installationDrive() const { return m_installationDrive; @@ -375,8 +362,7 @@ const QList<S60DeployConfiguration::DeviceDrive> &S60DeployConfiguration::availa S60DeployConfigurationFactory::S60DeployConfigurationFactory(QObject *parent) : DeployConfigurationFactory(parent) -{ -} +{ setObjectName(QLatin1String("S60DeployConfiguration")); } S60DeployConfigurationFactory::~S60DeployConfigurationFactory() { @@ -385,11 +371,16 @@ S60DeployConfigurationFactory::~S60DeployConfigurationFactory() QList<Core::Id> S60DeployConfigurationFactory::availableCreationIds(Target *parent) const { QList<Core::Id> result; - Qt4SymbianTarget *target = qobject_cast<Qt4SymbianTarget *>(parent); - if (!target || target->id() != Core::Id(Constants::S60_DEVICE_TARGET_ID)) + Qt4Project *project = qobject_cast<Qt4Project *>(parent->project()); + + if (!project) + return result; + + ProjectExplorer::IDevice::ConstPtr dev = ProjectExplorer::DeviceProfileInformation::device(parent->profile()); + if (dev.isNull() || dev->type() != SymbianIDeviceFactory::deviceType()) return result; - QStringList proFiles = target->qt4Project()->applicationProFilePathes(QLatin1String(S60_DC_PREFIX)); + QStringList proFiles = project->applicationProFilePathes(QLatin1String(S60_DC_PREFIX)); foreach (const QString &pf, proFiles) result << Core::Id(pf.toUtf8().constData()); return result; @@ -407,8 +398,7 @@ DeployConfiguration *S60DeployConfigurationFactory::create(Target *parent, const if (!canCreate(parent, id)) return 0; - Qt4SymbianTarget *t = static_cast<Qt4SymbianTarget *>(parent); - S60DeployConfiguration *dc = new S60DeployConfiguration(t); + S60DeployConfiguration *dc = new S60DeployConfiguration(parent); dc->setDefaultDisplayName(tr("Deploy to Symbian device")); dc->stepList()->insertStep(0, new S60CreatePackageStep(dc->stepList())); @@ -418,11 +408,13 @@ DeployConfiguration *S60DeployConfigurationFactory::create(Target *parent, const bool S60DeployConfigurationFactory::canCreate(Target *parent, const Core::Id id) const { - Qt4SymbianTarget * t = qobject_cast<Qt4SymbianTarget *>(parent); - if (!t || t->id() != Core::Id(Constants::S60_DEVICE_TARGET_ID) - || !QString::fromUtf8(id.name()).startsWith(QLatin1String(S60_DEPLOYCONFIGURATION_ID))) + Qt4Project *project = qobject_cast<Qt4Project *>(parent->project()); + if (!project) return false; - return true; + ProjectExplorer::IDevice::ConstPtr dev = ProjectExplorer::DeviceProfileInformation::device(parent->profile()); + if (dev.isNull() || dev->type() != SymbianIDeviceFactory::deviceType()) + return false; + return id == Core::Id(S60_DEPLOYCONFIGURATION_ID); } bool S60DeployConfigurationFactory::canRestore(Target *parent, const QVariantMap& map) const @@ -434,8 +426,7 @@ DeployConfiguration *S60DeployConfigurationFactory::restore(Target *parent, cons { if (!canRestore(parent, map)) return 0; - Qt4SymbianTarget *t = static_cast<Qt4SymbianTarget *>(parent); - S60DeployConfiguration *dc = new S60DeployConfiguration(t); + S60DeployConfiguration *dc = new S60DeployConfiguration(parent); if (dc->fromMap(map)) return dc; @@ -445,7 +436,7 @@ DeployConfiguration *S60DeployConfigurationFactory::restore(Target *parent, cons bool S60DeployConfigurationFactory::canClone(Target *parent, DeployConfiguration *source) const { - if (!qobject_cast<Qt4SymbianTarget *>(parent)) + if (!qobject_cast<Qt4Project *>(parent->project())) return false; return source->id() == Core::Id(S60_DEPLOYCONFIGURATION_ID); } @@ -454,7 +445,6 @@ DeployConfiguration *S60DeployConfigurationFactory::clone(Target *parent, Deploy { if (!canClone(parent, source)) return 0; - Qt4SymbianTarget *t = static_cast<Qt4SymbianTarget *>(parent); - S60DeployConfiguration * old = static_cast<S60DeployConfiguration *>(source); - return new S60DeployConfiguration(t, old); + S60DeployConfiguration *old = static_cast<S60DeployConfiguration *>(source); + return new S60DeployConfiguration(parent, old); } diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h index ca5552c9a0..ed7de185d1 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60deployconfiguration.h @@ -71,9 +71,6 @@ public: ProjectExplorer::DeployConfigurationWidget *configurationWidget() const; - const QtSupport::BaseQtVersion *qtVersion() const; - ProjectExplorer::ToolChain *toolChain() const; - char installationDrive() const; void setInstallationDrive(char drive); @@ -118,7 +115,6 @@ private: bool isStaticLibrary(const Qt4ProFileNode &projectNode) const; bool isApplication(const Qt4ProFileNode &projectNode) const; bool hasSisPackage(const Qt4ProFileNode &projectNode) const; - Internal::Qt4SymbianTarget *qt4Target() const; private: ProjectExplorer::BuildConfiguration *m_activeBuildConfiguration; diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp b/src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp index 239e981361..b6ab99ee9c 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60deploystep.cpp @@ -33,15 +33,18 @@ #include "s60deploystep.h" #include "qt4buildconfiguration.h" +#include "qt4project.h" #include "s60deployconfiguration.h" #include "s60devicerunconfiguration.h" #include "symbianidevice.h" +#include "symbianidevicefactory.h" #include "codadevice.h" #include "codaruncontrol.h" #include <coreplugin/icore.h> #include <projectexplorer/buildsteplist.h> #include <projectexplorer/target.h> +#include <projectexplorer/profileinformation.h> #include <projectexplorer/projectexplorerconstants.h> #include <qt4projectmanagerconstants.h> @@ -678,11 +681,7 @@ S60DeployStepFactory::~S60DeployStepFactory() bool S60DeployStepFactory::canCreate(ProjectExplorer::BuildStepList *parent, const Core::Id id) const { - if (parent->id() != Core::Id(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY)) - return false; - if (parent->target()->id() != Core::Id(Constants::S60_DEVICE_TARGET_ID)) - return false; - return (id == Core::Id(S60_DEPLOY_STEP_ID)); + return canHandle(parent) && id == Core::Id(S60_DEPLOY_STEP_ID); } ProjectExplorer::BuildStep *S60DeployStepFactory::create(ProjectExplorer::BuildStepList *parent, const Core::Id id) @@ -708,6 +707,16 @@ ProjectExplorer::BuildStep *S60DeployStepFactory::clone(ProjectExplorer::BuildSt return new S60DeployStep(parent, static_cast<S60DeployStep *>(source)); } +bool S60DeployStepFactory::canHandle(BuildStepList *parent) const +{ + if (parent->id() != Core::Id(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY)) + return false; + Core::Id deviceType = ProjectExplorer::DeviceTypeProfileInformation::deviceTypeId(parent->target()->profile()); + if (deviceType != SymbianIDeviceFactory::deviceType()) + return false; + return qobject_cast<Qt4Project *>(parent->target()->project()); +} + bool S60DeployStepFactory::canRestore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map) const { return canCreate(parent, ProjectExplorer::idFromMap(map)); @@ -726,10 +735,9 @@ ProjectExplorer::BuildStep *S60DeployStepFactory::restore(ProjectExplorer::Build QList<Core::Id> S60DeployStepFactory::availableCreationIds(ProjectExplorer::BuildStepList *parent) const { - if (parent->id() == Core::Id(ProjectExplorer::Constants::BUILDSTEPS_DEPLOY) - && parent->target()->id() == Core::Id(Constants::S60_DEVICE_TARGET_ID)) - return QList<Core::Id>() << Core::Id(S60_DEPLOY_STEP_ID); - return QList<Core::Id>(); + if (!canHandle(parent)) + return QList<Core::Id>(); + return QList<Core::Id>() << Core::Id(S60_DEPLOY_STEP_ID); } QString S60DeployStepFactory::displayNameForId(const Core::Id id) const diff --git a/src/plugins/qt4projectmanager/qt-s60/s60deploystep.h b/src/plugins/qt4projectmanager/qt-s60/s60deploystep.h index bbe172f4bd..e2e15e7396 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60deploystep.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60deploystep.h @@ -82,6 +82,8 @@ public: ProjectExplorer::BuildStep *restore(ProjectExplorer::BuildStepList *parent, const QVariantMap &map); bool canClone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product) const; ProjectExplorer::BuildStep *clone(ProjectExplorer::BuildStepList *parent, ProjectExplorer::BuildStep *product); + + bool canHandle(ProjectExplorer::BuildStepList *parent) const; }; class S60DeployStep : public ProjectExplorer::BuildStep diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.cpp index 924ab78920..041fa573b5 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60devicedebugruncontrol.cpp @@ -33,7 +33,6 @@ #include "s60devicedebugruncontrol.h" #include "codaruncontrol.h" -#include "qt4symbiantarget.h" #include "s60deployconfiguration.h" #include "s60devicerunconfiguration.h" #include "symbianidevice.h" @@ -41,8 +40,9 @@ #include <coreplugin/icore.h> #include <debugger/debuggerengine.h> #include <debugger/debuggerstartparameters.h> -#include <projectexplorer/project.h> #include <projectexplorer/buildconfiguration.h> +#include <projectexplorer/project.h> +#include <projectexplorer/target.h> #include <utils/qtcassert.h> #include <QFileInfo> diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp index 70d9a978d3..99e304829d 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.cpp @@ -35,17 +35,20 @@ #include "qt4project.h" #include "qt4nodes.h" #include "qt4projectmanagerconstants.h" -#include "qt4symbiantarget.h" -#include "qt4target.h" #include "qt4buildconfiguration.h" #include "s60deployconfiguration.h" #include "s60devicerunconfigurationwidget.h" #include "s60manager.h" #include "symbianidevice.h" +#include "symbianidevicefactory.h" #include "symbianqtversion.h" #include <utils/qtcassert.h> +#include <projectexplorer/profileinformation.h> +#include <projectexplorer/target.h> +#include <qtsupport/customexecutablerunconfiguration.h> #include <qtsupport/qtoutputformatter.h> +#include <qtsupport/qtprofileinformation.h> using namespace ProjectExplorer; using namespace Qt4ProjectManager; @@ -75,17 +78,19 @@ QString pathFromId(Core::Id id) // ======== S60DeviceRunConfiguration -S60DeviceRunConfiguration::S60DeviceRunConfiguration(Qt4BaseTarget *parent, const QString &proFilePath) : - RunConfiguration(parent, Core::Id(S60_DEVICE_RC_ID)), - m_proFilePath(proFilePath), - m_validParse(parent->qt4Project()->validParse(proFilePath)), - m_parseInProgress(parent->qt4Project()->parseInProgress(proFilePath)) +S60DeviceRunConfiguration::S60DeviceRunConfiguration(Target *parent, Core::Id id) : + RunConfiguration(parent, id), + m_proFilePath(pathFromId(id)) { + Qt4Project *project = static_cast<Qt4Project *>(parent->project()); + m_validParse = project->validParse(m_proFilePath); + m_parseInProgress = project->parseInProgress(m_proFilePath); + ctor(); } -S60DeviceRunConfiguration::S60DeviceRunConfiguration(Qt4BaseTarget *target, S60DeviceRunConfiguration *source) : - RunConfiguration(target, source), +S60DeviceRunConfiguration::S60DeviceRunConfiguration(Target *parent, S60DeviceRunConfiguration *source) : + RunConfiguration(parent, source), m_proFilePath(source->m_proFilePath), m_commandLineArguments(source->m_commandLineArguments), m_validParse(source->m_validParse), @@ -103,7 +108,7 @@ void S60DeviceRunConfiguration::ctor() //: S60 device runconfiguration default display name (no profile set) setDefaultDisplayName(tr("Run on Symbian device")); - Qt4Project *pro = qt4Target()->qt4Project(); + Qt4Project *pro = static_cast<Qt4Project *>(target()->project()); connect(pro, SIGNAL(proFileUpdated(Qt4ProjectManager::Qt4ProFileNode*,bool,bool)), this, SLOT(proFileUpdate(Qt4ProjectManager::Qt4ProFileNode*,bool,bool))); } @@ -126,11 +131,6 @@ S60DeviceRunConfiguration::~S60DeviceRunConfiguration() { } -Qt4SymbianTarget *S60DeviceRunConfiguration::qt4Target() const -{ - return static_cast<Qt4SymbianTarget *>(target()); -} - bool S60DeviceRunConfiguration::isEnabled() const { return m_validParse && !m_parseInProgress; @@ -142,7 +142,7 @@ QString S60DeviceRunConfiguration::disabledReason() const return tr("The .pro file '%1' is currently being parsed.") .arg(QFileInfo(m_proFilePath).fileName()); if (!m_validParse) - return qt4Target()->qt4Project()->disabledReasonForRunConfiguration(m_proFilePath); + return static_cast<Qt4Project *>(target()->project())->disabledReasonForRunConfiguration(m_proFilePath); return QString(); } @@ -153,7 +153,7 @@ QWidget *S60DeviceRunConfiguration::createConfigurationWidget() Utils::OutputFormatter *S60DeviceRunConfiguration::createOutputFormatter() const { - return new QtSupport::QtOutputFormatter(qt4Target()->qt4Project()); + return new QtSupport::QtOutputFormatter(target()->project()); } QVariantMap S60DeviceRunConfiguration::toMap() const @@ -179,8 +179,8 @@ bool S60DeviceRunConfiguration::fromMap(const QVariantMap &map) if (!QFileInfo(m_proFilePath).exists()) return false; - m_validParse = qt4Target()->qt4Project()->validParse(m_proFilePath); - m_parseInProgress = qt4Target()->qt4Project()->parseInProgress(m_proFilePath); + m_validParse = static_cast<Qt4Project *>(target()->project())->validParse(m_proFilePath); + m_parseInProgress = static_cast<Qt4Project *>(target()->project())->parseInProgress(m_proFilePath); setDefaultDisplayName(tr("%1 on Symbian Device").arg(QFileInfo(m_proFilePath).completeBaseName())); @@ -198,23 +198,16 @@ static inline QString fixBaseNameTarget(const QString &in) QString S60DeviceRunConfiguration::targetName() const { - TargetInformation ti = qt4Target()->qt4Project()->rootQt4ProjectNode()->targetInformation(projectFilePath()); + TargetInformation ti = static_cast<Qt4Project *>(target()->project()) + ->rootQt4ProjectNode()->targetInformation(projectFilePath()); if (!ti.valid) return QString(); return ti.target; } -SymbianQtVersion *S60DeviceRunConfiguration::qtVersion() const -{ - if (const BuildConfiguration *bc = target()->activeBuildConfiguration()) - if (const Qt4BuildConfiguration *qt4bc = qobject_cast<const Qt4BuildConfiguration *>(bc)) - return dynamic_cast<SymbianQtVersion *>(qt4bc->qtVersion()); - return 0; -} - bool S60DeviceRunConfiguration::isDebug() const { - const Qt4BuildConfiguration *qt4bc = qt4Target()->activeQt4BuildConfiguration(); + const Qt4BuildConfiguration *qt4bc = static_cast<const Qt4BuildConfiguration *>(target()->activeBuildConfiguration()); return (qt4bc->qmakeBuildConfiguration() & QtSupport::BaseQtVersion::DebugBuild); } @@ -224,12 +217,18 @@ QString S60DeviceRunConfiguration::symbianTarget() const } // ABLD/Raptor: Return executable from device/EPOC -static inline QString localExecutableFromVersion(const SymbianQtVersion *qtv, - const QString &symbianTarget, /* udeb/urel */ - const QString &targetName, - const ProjectExplorer::ToolChain *tc) +static inline QString localExecutableFromVersion(const ProjectExplorer::Profile *p, + const QString &symbianTarget, /* udeb/urel */ + const QString &targetName) { - Q_ASSERT(qtv); + Q_ASSERT(p); + + ToolChain *tc = ToolChainProfileInformation::toolChain(p); + SymbianQtVersion *qtv = dynamic_cast<SymbianQtVersion *>(QtSupport::QtProfileInformation::qtVersion(p)); + QString root; + if (SysRootProfileInformation::hasSysRoot(p)) + root = SysRootProfileInformation::sysRoot(p).toString(); + if (!tc) return QString(); @@ -237,19 +236,18 @@ static inline QString localExecutableFromVersion(const SymbianQtVersion *qtv, QString platform = S60Manager::platform(tc); if (qtv->isBuildWithSymbianSbsV2() && platform == QLatin1String("gcce")) platform = QLatin1String("armv5"); - QTextStream(&localExecutable) << qtv->systemRoot() << "/epoc32/release/" + QTextStream(&localExecutable) << root << "/epoc32/release/" << platform << '/' << symbianTarget << '/' << targetName << ".exe"; return localExecutable; } QString S60DeviceRunConfiguration::localExecutableFileName() const { - TargetInformation ti = qt4Target()->qt4Project()->rootQt4ProjectNode()->targetInformation(projectFilePath()); + TargetInformation ti = static_cast<Qt4Project *>(target()->project())->rootQt4ProjectNode()->targetInformation(projectFilePath()); if (!ti.valid) return QString(); - ProjectExplorer::ToolChain *tc = target()->activeBuildConfiguration()->toolChain(); - return localExecutableFromVersion(qtVersion(), symbianTarget(), targetName(), tc); + return localExecutableFromVersion(target()->profile(), symbianTarget(), targetName()); } quint32 S60DeviceRunConfiguration::executableUid() const @@ -293,7 +291,7 @@ QString S60DeviceRunConfiguration::qmlCommandLineArguments() const QString args; if (debuggerAspect()->useQmlDebugger()) { const S60DeployConfiguration *activeDeployConf = - qobject_cast<S60DeployConfiguration *>(qt4Target()->activeDeployConfiguration()); + qobject_cast<const S60DeployConfiguration *>(target()->activeDeployConfiguration()); QTC_ASSERT(activeDeployConf, return args); QSharedPointer<const SymbianIDevice> dev = activeDeployConf->device().dynamicCast<const SymbianIDevice>(); @@ -313,24 +311,22 @@ QString S60DeviceRunConfiguration::proFilePath() const // ======== S60DeviceRunConfigurationFactory S60DeviceRunConfigurationFactory::S60DeviceRunConfigurationFactory(QObject *parent) : - IRunConfigurationFactory(parent) -{ -} + QmakeRunConfigurationFactory(parent) +{ setObjectName(QLatin1String("S60DeviceRunConfigurationFactory"));} S60DeviceRunConfigurationFactory::~S60DeviceRunConfigurationFactory() -{ -} +{ } QList<Core::Id> S60DeviceRunConfigurationFactory::availableCreationIds(Target *parent) const { QList<Core::Id> result; - Qt4SymbianTarget *target = qobject_cast<Qt4SymbianTarget *>(parent); - if (!target || target->id() != Core::Id(Constants::S60_DEVICE_TARGET_ID)) + if (!canHandle(parent)) return result; - QStringList proFiles = target->qt4Project()->applicationProFilePathes(QLatin1String(S60_DEVICE_RC_PREFIX)); + Qt4Project *project = static_cast<Qt4Project *>(parent->project()); + QStringList proFiles = project->applicationProFilePathes(QLatin1String(S60_DEVICE_RC_PREFIX)); foreach (const QString &pf, proFiles) - result << Core::Id(pf.toUtf8().constData()); + result << Core::Id(pf); return result; } @@ -341,12 +337,34 @@ QString S60DeviceRunConfigurationFactory::displayNameForId(const Core::Id id) co return QString(); } +bool S60DeviceRunConfigurationFactory::canHandle(Target *t) const +{ + if (!t->project()->supportsProfile(t->profile())) + return false; + if (!qobject_cast<Qt4Project *>(t->project())) + return false; + + Core::Id deviceType = ProjectExplorer::DeviceTypeProfileInformation::deviceTypeId(t->profile()); + return deviceType == SymbianIDeviceFactory::deviceType(); +} + +QList<RunConfiguration *> S60DeviceRunConfigurationFactory::runConfigurationsForNode(Target *t, ProjectExplorer::Node *n) +{ + QList<ProjectExplorer::RunConfiguration *> result; + foreach (ProjectExplorer::RunConfiguration *rc, t->runConfigurations()) { + if (S60DeviceRunConfiguration *s60rc = qobject_cast<S60DeviceRunConfiguration *>(rc)) + if (s60rc->proFilePath() == n->path()) + result << rc; + } + return result; +} + bool S60DeviceRunConfigurationFactory::canCreate(Target *parent, const Core::Id id) const { - Qt4SymbianTarget *t = qobject_cast<Qt4SymbianTarget *>(parent); - if (!t || t->id() != Core::Id(Constants::S60_DEVICE_TARGET_ID)) + if (!canHandle(parent)) return false; - return t->qt4Project()->hasApplicationProFile(pathFromId(id)); + Qt4Project *project = static_cast<Qt4Project *>(parent->project()); + return project->hasApplicationProFile(pathFromId(id)); } RunConfiguration *S60DeviceRunConfigurationFactory::create(Target *parent, const Core::Id id) @@ -354,25 +372,23 @@ RunConfiguration *S60DeviceRunConfigurationFactory::create(Target *parent, const if (!canCreate(parent, id)) return 0; - Qt4SymbianTarget *t = static_cast<Qt4SymbianTarget *>(parent); - return new S60DeviceRunConfiguration(t, pathFromId(id)); + return new S60DeviceRunConfiguration(parent, id); } bool S60DeviceRunConfigurationFactory::canRestore(Target *parent, const QVariantMap &map) const { - Qt4SymbianTarget *t = qobject_cast<Qt4SymbianTarget *>(parent); - if (!t || t->id() != Core::Id(Constants::S60_DEVICE_TARGET_ID)) + if (!canHandle(parent)) return false; - QString id = QString::fromUtf8(ProjectExplorer::idFromMap(map).name()); - return id == QLatin1String(S60_DEVICE_RC_ID); + + const Core::Id id = ProjectExplorer::idFromMap(map); + return id == Core::Id(S60_DEVICE_RC_ID); } RunConfiguration *S60DeviceRunConfigurationFactory::restore(Target *parent, const QVariantMap &map) { if (!canRestore(parent, map)) return 0; - Qt4SymbianTarget *t = static_cast<Qt4SymbianTarget *>(parent); - S60DeviceRunConfiguration *rc = new S60DeviceRunConfiguration(t, QString()); + S60DeviceRunConfiguration *rc = new S60DeviceRunConfiguration(parent, idFromMap(map)); if (rc->fromMap(map)) return rc; @@ -382,7 +398,7 @@ RunConfiguration *S60DeviceRunConfigurationFactory::restore(Target *parent, cons bool S60DeviceRunConfigurationFactory::canClone(Target *parent, RunConfiguration *source) const { - if (!qobject_cast<Qt4SymbianTarget *>(parent)) + if (!canHandle(parent)) return false; return source->id() == Core::Id(S60_DEVICE_RC_ID); } @@ -391,7 +407,6 @@ RunConfiguration *S60DeviceRunConfigurationFactory::clone(Target *parent, RunCon { if (!canClone(parent, source)) return 0; - Qt4SymbianTarget *t = static_cast<Qt4SymbianTarget *>(parent); S60DeviceRunConfiguration *old = static_cast<S60DeviceRunConfiguration *>(source); - return new S60DeviceRunConfiguration(t, old); + return new S60DeviceRunConfiguration(parent, old); } diff --git a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h index 1480e04ff7..82f181ac9a 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60devicerunconfiguration.h @@ -33,8 +33,10 @@ #ifndef S60DEVICERUNCONFIGURATION_H #define S60DEVICERUNCONFIGURATION_H +#include "../qmakerunconfigurationfactory.h" +#include "../qt4projectmanager_global.h" + #include <projectexplorer/runconfiguration.h> -#include <qt4projectmanager/qt4projectmanager_global.h> #include <QFutureInterface> #include <QStringList> @@ -43,14 +45,12 @@ QT_BEGIN_NAMESPACE class QWidget; QT_END_NAMESPACE +namespace ProjectExplorer { class Node; } + namespace Qt4ProjectManager { -class Qt4BaseTarget; class Qt4ProFileNode; -namespace Internal { -class SymbianQtVersion; -class Qt4SymbianTarget; -} +namespace Internal { class SymbianQtVersion; } class S60DeviceRunConfigurationFactory; @@ -60,7 +60,7 @@ class QT4PROJECTMANAGER_EXPORT S60DeviceRunConfiguration : public ProjectExplore friend class S60DeviceRunConfigurationFactory; public: - S60DeviceRunConfiguration(Qt4ProjectManager::Qt4BaseTarget *parent, const QString &proFilePath); + S60DeviceRunConfiguration(ProjectExplorer::Target *parent, Core::Id id); virtual ~S60DeviceRunConfiguration(); bool isEnabled() const; @@ -89,7 +89,7 @@ signals: void targetInformationChanged(); protected: - S60DeviceRunConfiguration(Qt4ProjectManager::Qt4BaseTarget *parent, S60DeviceRunConfiguration *source); + S60DeviceRunConfiguration(ProjectExplorer::Target *parent, S60DeviceRunConfiguration *source); QString defaultDisplayName() const; virtual bool fromMap(const QVariantMap &map); @@ -98,8 +98,6 @@ private slots: private: void ctor(); - Internal::Qt4SymbianTarget *qt4Target() const; - Internal::SymbianQtVersion *qtVersion() const; QString m_proFilePath; QString m_commandLineArguments; @@ -107,7 +105,7 @@ private: bool m_parseInProgress; }; -class S60DeviceRunConfigurationFactory : public ProjectExplorer::IRunConfigurationFactory +class S60DeviceRunConfigurationFactory : public QmakeRunConfigurationFactory { Q_OBJECT @@ -125,6 +123,10 @@ public: QList<Core::Id> availableCreationIds(ProjectExplorer::Target *parent) const; // used to translate the ids to names to display to the user QString displayNameForId(const Core::Id id) const; + + bool canHandle(ProjectExplorer::Target *t) const; + QList<ProjectExplorer::RunConfiguration *> runConfigurationsForNode(ProjectExplorer::Target *t, + ProjectExplorer::Node *n); }; } // namespace Qt4ProjectManager diff --git a/src/plugins/qt4projectmanager/qt-s60/s60manager.cpp b/src/plugins/qt4projectmanager/qt-s60/s60manager.cpp index 35213a401e..252984fd7c 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60manager.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60manager.cpp @@ -31,9 +31,7 @@ **************************************************************************/ #include "s60manager.h" -//#include "qtversionmanager.h" -//#include "s60devicespreferencepane.h" #include "s60devicerunconfiguration.h" #include "s60createpackagestep.h" #include "s60deployconfiguration.h" @@ -43,7 +41,6 @@ #include "symbianidevice.h" #include "symbianidevicefactory.h" -#include "qt4symbiantargetfactory.h" #include "s60publishingwizardfactories.h" #include "gccetoolchain.h" @@ -120,7 +117,6 @@ S60Manager::S60Manager(QObject *parent) : QObject(parent) addAutoReleasedObject(new S60DeployStepFactory); addAutoReleasedObject(new S60DeviceDebugRunControlFactory); - addAutoReleasedObject(new Qt4SymbianTargetFactory); addAutoReleasedObject(new S60DeployConfigurationFactory); addAutoReleasedObject(new S60PublishingWizardFactoryOvi); @@ -154,7 +150,7 @@ QString S60Manager::platform(const ProjectExplorer::ToolChain *tc) return target.right(target.lastIndexOf(QLatin1Char('-'))); } -void S60Manager::delayedInitialize() +void S60Manager::extensionsInitialize() { handleQtVersionChanges(); connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), diff --git a/src/plugins/qt4projectmanager/qt-s60/s60manager.h b/src/plugins/qt4projectmanager/qt-s60/s60manager.h index febcefc693..4f7a030b73 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60manager.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60manager.h @@ -49,11 +49,12 @@ class S60Manager : public QObject public: S60Manager(QObject *parent = 0); ~S60Manager(); + static S60Manager *instance(); static QString platform(const ProjectExplorer::ToolChain *tc); - void delayedInitialize(); + void extensionsInitialize(); private slots: void symbianDeviceRemoved(const SymbianUtils::SymbianDevice &d); diff --git a/src/plugins/qt4projectmanager/qt-s60/s60publisherovi.cpp b/src/plugins/qt4projectmanager/qt-s60/s60publisherovi.cpp index 32c0fcc57e..4d0b8e3dac 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60publisherovi.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60publisherovi.cpp @@ -31,7 +31,6 @@ **************************************************************************/ #include "s60publisherovi.h" -#include "qt4symbiantarget.h" #include "s60certificateinfo.h" #include "s60manager.h" @@ -43,7 +42,9 @@ #include <projectexplorer/buildsteplist.h> #include <projectexplorer/buildstep.h> +#include <projectexplorer/target.h> #include <qtsupport/qtversionmanager.h> +#include <qtsupport/qtprofileinformation.h> #include <qtsupport/profilereader.h> #include <utils/qtcassert.h> @@ -131,6 +132,7 @@ void S60PublisherOvi::cleanUp() void S60PublisherOvi::completeCreation() { +#if 0 // FIXME: This needs serious reworking! // set active target m_activeTargetOfProject = qobject_cast<Qt4SymbianTarget *>(m_qt4bc->target()); QTC_ASSERT(m_activeTargetOfProject, return); @@ -213,6 +215,7 @@ void S60PublisherOvi::completeCreation() } } } +#endif } bool S60PublisherOvi::isDynamicLibrary(const Qt4Project &project) const @@ -292,9 +295,8 @@ bool S60PublisherOvi::isVendorNameValid(const QString &vendorName) const QString S60PublisherOvi::qtVersion() const { - if (!m_qt4bc->qtVersion()) - return QString(); - return m_qt4bc->qtVersion()->displayName(); + QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(m_qt4bc->target()->profile()); + return version ? version->displayName() : QString(); } QString S60PublisherOvi::uid3() const @@ -439,7 +441,8 @@ void S60PublisherOvi::publishStepFinished(bool success) bool S60PublisherOvi::sisExists(QString &sisFile) { QString fileNamePostFix = QLatin1String("_installer_unsigned.sis"); - if (m_qt4bc->qtVersion()->qtVersion() == QtSupport::QtVersionNumber(4,6,3) ) + QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(m_qt4bc->target()->profile()); + if (version && version->qtVersion() == QtSupport::QtVersionNumber(4,6,3) ) fileNamePostFix = QLatin1String("_installer.sis"); sisFile = m_qt4bc->buildDirectory() + QLatin1Char('/') + m_qt4project->displayName() + fileNamePostFix; @@ -451,7 +454,8 @@ bool S60PublisherOvi::sisExists(QString &sisFile) QString S60PublisherOvi::createdSisFileContainingFolder() { QString fileNamePostFix = QLatin1String("_installer_unsigned.sis"); - if (m_qt4bc->qtVersion()->qtVersion() == QtSupport::QtVersionNumber(4,6,3) ) + QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(m_qt4bc->target()->profile()); + if (version && version->qtVersion() == QtSupport::QtVersionNumber(4,6,3) ) fileNamePostFix = QLatin1String("_installer.sis"); QString resultFile = m_qt4bc->buildDirectory() + QLatin1Char('/') + m_qt4project->displayName() + fileNamePostFix; @@ -463,7 +467,8 @@ QString S60PublisherOvi::createdSisFileContainingFolder() QString S60PublisherOvi::createdSisFilePath() { QString fileNamePostFix = QLatin1String("_installer_unsigned.sis"); - if (m_qt4bc->qtVersion()->qtVersion() == QtSupport::QtVersionNumber(4,6,3) ) + QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(m_qt4bc->target()->profile()); + if (version && version->qtVersion() == QtSupport::QtVersionNumber(4,6,3) ) fileNamePostFix = QLatin1String("_installer.sis"); const QString resultFile = m_qt4bc->buildDirectory() + QLatin1Char('/') diff --git a/src/plugins/qt4projectmanager/qt-s60/s60publishingbuildsettingspageovi.cpp b/src/plugins/qt4projectmanager/qt-s60/s60publishingbuildsettingspageovi.cpp index 158c9f98ae..cd92115c4a 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60publishingbuildsettingspageovi.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60publishingbuildsettingspageovi.cpp @@ -54,6 +54,7 @@ S60PublishingBuildSettingsPageOvi::S60PublishingBuildSettingsPageOvi(S60Publishe { m_ui->setupUi(this); +#if 0 // FIXME: This needs serious work! QList<Qt4BuildConfiguration *> list; foreach (const ProjectExplorer::Target *const target, project->targets()) { if (target->id() != Core::Id(Qt4ProjectManager::Constants::S60_DEVICE_TARGET_ID)) @@ -92,6 +93,9 @@ S60PublishingBuildSettingsPageOvi::S60PublishingBuildSettingsPageOvi(S60Publishe m_ui->toolchainInfoIconLabel->setToolTip(tr("No valid tool chain has been detected.<br>" "Define a correct tool chain in \"Options > Tool Chains\"")); populateToolchainList(m_bc); +#else + Q_UNUSED(project); +#endif //change the build configuration if the user changes it connect(m_ui->chooseBuildConfigDropDown, SIGNAL(currentIndexChanged(int)), this, SLOT(buildConfigChosen())); @@ -106,6 +110,7 @@ bool S60PublishingBuildSettingsPageOvi::isComplete() const void S60PublishingBuildSettingsPageOvi::populateToolchainList(ProjectExplorer::BuildConfiguration *bc) { +#if 0 // FIXME: Do the right thing here... if (!bc) return; @@ -134,6 +139,9 @@ void S60PublishingBuildSettingsPageOvi::populateToolchainList(ProjectExplorer::B toolchainChosen(); else bc->setToolChain(m_toolchain); +#else + Q_UNUSED(bc); +#endif } void S60PublishingBuildSettingsPageOvi::buildConfigChosen() @@ -149,6 +157,7 @@ void S60PublishingBuildSettingsPageOvi::buildConfigChosen() void S60PublishingBuildSettingsPageOvi::toolchainChosen() { +#if 0 // FIXME: Do the right thing! const int currentIndex = m_ui->chooseToolchainDropDown->currentIndex(); if (currentIndex == -1) { m_toolchain = 0; @@ -160,6 +169,7 @@ void S60PublishingBuildSettingsPageOvi::toolchainChosen() if (m_bc) m_bc->setToolChain(m_toolchain); +#endif emit toolchainConfigurationChosen(); } diff --git a/src/plugins/qt4projectmanager/qt-s60/s60publishingwizardfactories.cpp b/src/plugins/qt4projectmanager/qt-s60/s60publishingwizardfactories.cpp index 9ab0e9b60c..3924b1bc18 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60publishingwizardfactories.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60publishingwizardfactories.cpp @@ -39,6 +39,10 @@ #include <projectexplorer/target.h> +#include <qtsupport/qtsupportconstants.h> +#include <qtsupport/baseqtversion.h> +#include <qtsupport/qtprofileinformation.h> + using namespace ProjectExplorer; namespace Qt4ProjectManager { @@ -71,7 +75,8 @@ bool S60PublishingWizardFactoryOvi::canCreateWizard(const Project *project) cons if (!qobject_cast<const Qt4Project *>(project)) return false; foreach (const Target *const target, project->targets()) { - if (target->id() == Core::Id(Constants::S60_DEVICE_TARGET_ID)) + QtSupport::BaseQtVersion *version = QtSupport::QtProfileInformation::qtVersion(target->profile()); + if (version->type() == QLatin1String(QtSupport::Constants::SYMBIANQT)) return true; } return false; diff --git a/src/plugins/qt4projectmanager/qt-s60/s60publishingwizardfactories.h b/src/plugins/qt4projectmanager/qt-s60/s60publishingwizardfactories.h index 6bcb4d9bee..4ec25e743d 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60publishingwizardfactories.h +++ b/src/plugins/qt4projectmanager/qt-s60/s60publishingwizardfactories.h @@ -38,17 +38,16 @@ namespace Qt4ProjectManager { namespace Internal { -class S60PublishingWizardFactoryOvi - : public ProjectExplorer::IPublishingWizardFactory +class S60PublishingWizardFactoryOvi : public ProjectExplorer::IPublishingWizardFactory { Q_OBJECT public: explicit S60PublishingWizardFactoryOvi(QObject *parent =0); private: - virtual QString displayName() const; - virtual QString description() const; - virtual bool canCreateWizard(const ProjectExplorer::Project *project) const; - virtual QWizard *createWizard(const ProjectExplorer::Project *project) const; + QString displayName() const; + QString description() const; + bool canCreateWizard(const ProjectExplorer::Project *project) const; + QWizard *createWizard(const ProjectExplorer::Project *project) const; }; } // namespace Internal } // namespace Qt4ProjectManager diff --git a/src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.cpp b/src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.cpp index bdb4a94358..774618bf12 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60runcontrolbase.cpp @@ -32,20 +32,17 @@ #include "s60runcontrolbase.h" +#include "qt4buildconfiguration.h" #include "s60deployconfiguration.h" #include "s60devicerunconfiguration.h" -#include "qt4buildconfiguration.h" -#include "qt4symbiantarget.h" -#include "qt4target.h" - -#include <utils/qtcassert.h> - -#include <debugger/debuggerconstants.h> #include <analyzerbase/analyzerconstants.h> - #include <coreplugin/icore.h> +#include <debugger/debuggerconstants.h> #include <coreplugin/progressmanager/progressmanager.h> +#include <projectexplorer/target.h> +#include <qtsupport/qtprofileinformation.h> +#include <utils/qtcassert.h> #include <QDateTime> #include <QDir> @@ -96,7 +93,7 @@ S60RunControlBase::S60RunControlBase(RunConfiguration *runConfiguration, m_commandLineArguments.prepend(QLatin1Char(' ')); m_commandLineArguments.prepend(qmlArgs); } - if (const QtSupport::BaseQtVersion *qtv = activeBuildConf->qtVersion()) { + if (const QtSupport::BaseQtVersion *qtv = QtSupport::QtProfileInformation::qtVersion(runConfiguration->target()->profile())) { m_qtDir = qtv->versionInfo().value(QLatin1String("QT_INSTALL_DATA")); m_qtBinPath = qtv->versionInfo().value(QLatin1String("QT_INSTALL_BINS")); } diff --git a/src/plugins/qt4projectmanager/qt-s60/s60runcontrolfactory.cpp b/src/plugins/qt4projectmanager/qt-s60/s60runcontrolfactory.cpp index f1f96795f8..b9ac0026cf 100644 --- a/src/plugins/qt4projectmanager/qt-s60/s60runcontrolfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/s60runcontrolfactory.cpp @@ -35,8 +35,8 @@ #include "codaruncontrol.h" #include "s60devicerunconfiguration.h" #include "s60deployconfiguration.h" -#include "qt4symbiantarget.h" +#include <projectexplorer/target.h> #include <utils/qtcassert.h> using namespace ProjectExplorer; diff --git a/src/plugins/qt4projectmanager/qt-s60/symbianqtversion.cpp b/src/plugins/qt4projectmanager/qt-s60/symbianqtversion.cpp index 045712879e..7cb2f69230 100644 --- a/src/plugins/qt4projectmanager/qt-s60/symbianqtversion.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/symbianqtversion.cpp @@ -36,6 +36,7 @@ #include "qt-s60/abldparser.h" #include <projectexplorer/gnumakeparser.h> +#include <projectexplorer/profileinformation.h> #include <projectexplorer/projectexplorerconstants.h> #include <projectexplorer/toolchain.h> #include <projectexplorer/toolchainmanager.h> @@ -54,14 +55,12 @@ using namespace Qt4ProjectManager; using namespace Qt4ProjectManager::Internal; SymbianQtVersion::SymbianQtVersion() - : BaseQtVersion(), - m_validSystemRoot(false) + : BaseQtVersion() { } SymbianQtVersion::SymbianQtVersion(const Utils::FileName &path, bool isAutodetected, const QString &autodetectionSource) - : BaseQtVersion(path, isAutodetected, autodetectionSource), - m_validSystemRoot(false) + : BaseQtVersion(path, isAutodetected, autodetectionSource) { } @@ -81,8 +80,7 @@ bool SymbianQtVersion::equals(BaseQtVersion *other) if (!BaseQtVersion::equals(other)) return false; SymbianQtVersion *o = static_cast<SymbianQtVersion *>(other); - return m_sbsV2Directory == o->m_sbsV2Directory - && m_systemRoot == o->m_systemRoot; + return m_sbsV2Directory == o->m_sbsV2Directory; } QString SymbianQtVersion::type() const @@ -94,8 +92,6 @@ bool SymbianQtVersion::isValid() const { if (!BaseQtVersion::isValid()) return false; - if (!m_validSystemRoot) - return false; if (isBuildWithSymbianSbsV2() && (m_sbsV2Directory.isEmpty() || !QFileInfo(m_sbsV2Directory + QLatin1String("/sbs")).exists())) return false; return true; @@ -104,8 +100,6 @@ bool SymbianQtVersion::isValid() const QString SymbianQtVersion::invalidReason() const { QString tmp = BaseQtVersion::invalidReason(); - if (tmp.isEmpty() && !m_validSystemRoot) - return QCoreApplication::translate("QtVersion", "The \"Open C/C++ plugin\" is not installed in the Symbian SDK or the Symbian SDK path is misconfigured"); if (isBuildWithSymbianSbsV2() && (m_sbsV2Directory.isEmpty() || !QFileInfo(m_sbsV2Directory + QLatin1String("/sbs")).exists())) return QCoreApplication::translate("QtVersion", "SBS was not found."); @@ -113,21 +107,8 @@ QString SymbianQtVersion::invalidReason() const return tmp; } -bool SymbianQtVersion::toolChainAvailable(const QString &id) const -{ - if (!isValid()) - return false; - if (id == QLatin1String(Constants::S60_DEVICE_TARGET_ID)) { - QList<ProjectExplorer::ToolChain *> tcList = - ProjectExplorer::ToolChainManager::instance()->toolChains(); - return !tcList.isEmpty(); - } - return false; -} - void SymbianQtVersion::restoreLegacySettings(QSettings *s) { - setSystemRoot(QDir::fromNativeSeparators(s->value(QLatin1String("S60SDKDirectory")).toString())); setSbsV2Directory(QDir::fromNativeSeparators(s->value(QLatin1String("SBSv2Directory")).toString())); } @@ -135,14 +116,12 @@ void SymbianQtVersion::fromMap(const QVariantMap &map) { BaseQtVersion::fromMap(map); setSbsV2Directory(QDir::fromNativeSeparators(map.value(QLatin1String("SBSv2Directory")).toString())); - setSystemRoot(QDir::fromNativeSeparators(map.value(QLatin1String("SystemRoot")).toString())); } QVariantMap SymbianQtVersion::toMap() const { QVariantMap result = BaseQtVersion::toMap(); result.insert(QLatin1String("SBSv2Directory"), sbsV2Directory()); - result.insert(QLatin1String("SystemRoot"), systemRoot()); return result; } @@ -155,16 +134,6 @@ QList<ProjectExplorer::Abi> SymbianQtVersion::detectQtAbis() const 32); } -bool SymbianQtVersion::supportsTargetId(const Core::Id id) const -{ - return supportedTargetIds().contains(id); -} - -QSet<Core::Id> SymbianQtVersion::supportedTargetIds() const -{ - return QSet<Core::Id>() << Core::Id(Constants::S60_DEVICE_TARGET_ID); -} - QString SymbianQtVersion::description() const { return QCoreApplication::translate("QtVersion", "Symbian", "Qt Version is meant for Symbian"); @@ -198,11 +167,11 @@ static const char *S60_EPOC_HEADERS[] = { "epoc32/include/platform/mw/loc/sc" }; -void SymbianQtVersion::addToEnvironment(Utils::Environment &env) const +void SymbianQtVersion::addToEnvironment(const ProjectExplorer::Profile *p, Utils::Environment &env) const { - BaseQtVersion::addToEnvironment(env); + BaseQtVersion::addToEnvironment(p, env); // Generic Symbian environment: - QString epocRootPath = systemRoot(); + QString epocRootPath = ProjectExplorer::SysRootProfileInformation::sysRoot(p).toString(); QDir epocDir(epocRootPath); // Clean up epoc root path for the environment: @@ -253,10 +222,10 @@ void SymbianQtVersion::addToEnvironment(Utils::Environment &env) const } } -QList<ProjectExplorer::HeaderPath> SymbianQtVersion::systemHeaderPathes() const +QList<ProjectExplorer::HeaderPath> SymbianQtVersion::systemHeaderPathes(const ProjectExplorer::Profile *p) const { QList<ProjectExplorer::HeaderPath> result; - QString root = systemRoot() + QLatin1Char('/'); + QString root = ProjectExplorer::SysRootProfileInformation::sysRoot(p).toString() + QLatin1Char('/'); const int count = sizeof(S60_EPOC_HEADERS) / sizeof(const char *); for (int i = 0; i < count; ++i) { const QDir dir(root + QLatin1String(S60_EPOC_HEADERS[i])); @@ -264,7 +233,7 @@ QList<ProjectExplorer::HeaderPath> SymbianQtVersion::systemHeaderPathes() const result.append(ProjectExplorer::HeaderPath(dir.absolutePath(), ProjectExplorer::HeaderPath::GlobalHeaderPath)); } - result.append(BaseQtVersion::systemHeaderPathes()); + result.append(BaseQtVersion::systemHeaderPathes(p)); return result; } @@ -313,39 +282,6 @@ void SymbianQtVersion::parseMkSpec(ProFileEvaluator *evaluator) const BaseQtVersion::parseMkSpec(evaluator); } -QList<ProjectExplorer::Task> SymbianQtVersion::reportIssuesImpl(const QString &proFile, const QString &buildDir) -{ - QList<ProjectExplorer::Task> results = BaseQtVersion::reportIssuesImpl(proFile, buildDir); - const QString epocRootDir = systemRoot(); - // Report an error if project- and epoc directory are on different drives: - if (!epocRootDir.startsWith(proFile.left(3), Qt::CaseInsensitive)) { - // Note: SBSv2 works fine with the EPOCROOT and the sources being on different drives, - // but it fails when Qt is on a different drive than the sources. Since - // the SDK installs Qt and the EPOCROOT on the same drive we just stick with this - // warning. - results.append(ProjectExplorer::Task(ProjectExplorer::Task::Error, - QCoreApplication::translate("ProjectExplorer::Internal::S60ProjectChecker", - "The Symbian SDK and the project sources must reside on the same drive."), - Utils::FileName(), -1, Core::Id(ProjectExplorer::Constants::TASK_CATEGORY_BUILDSYSTEM))); - } - return results; -} - -void SymbianQtVersion::setSystemRoot(const QString &root) -{ - if (root == m_systemRoot) - return; - m_systemRoot = root; - - m_validSystemRoot = false; - if (!m_systemRoot.isEmpty()) { - if (!m_systemRoot.endsWith(QLatin1Char('/'))) - m_systemRoot.append(QLatin1Char('/')); - QFileInfo cppheader(m_systemRoot + QLatin1String("epoc32/include/stdapis/string.h")); - m_validSystemRoot = cppheader.exists(); - } -} - Core::FeatureSet SymbianQtVersion::availableFeatures() const { Core::FeatureSet features = QtSupport::BaseQtVersion::availableFeatures(); @@ -366,11 +302,6 @@ QString SymbianQtVersion::platformDisplayName() const return QLatin1String(QtSupport::Constants::SYMBIAN_PLATFORM_TR); } -QString SymbianQtVersion::systemRoot() const -{ - return m_systemRoot; -} - QtSupport::QtConfigWidget *SymbianQtVersion::createConfigurationWidget() const { return new SymbianQtConfigWidget(const_cast<SymbianQtVersion *>(this)); @@ -383,16 +314,6 @@ SymbianQtConfigWidget::SymbianQtConfigWidget(SymbianQtVersion *version) fl->setMargin(0); setLayout(fl); - Utils::PathChooser *s60sdkPath = new Utils::PathChooser; - s60sdkPath->setExpectedKind(Utils::PathChooser::ExistingDirectory); - - fl->addRow(tr("S60 SDK:"), s60sdkPath); - - s60sdkPath->setPath(QDir::toNativeSeparators(version->systemRoot())); - - connect(s60sdkPath, SIGNAL(changed(QString)), - this, SLOT(updateCurrentS60SDKDirectory(QString))); - if (version->isBuildWithSymbianSbsV2()) { Utils::PathChooser *sbsV2Path = new Utils::PathChooser; sbsV2Path->setExpectedKind(Utils::PathChooser::ExistingDirectory); @@ -404,12 +325,6 @@ SymbianQtConfigWidget::SymbianQtConfigWidget(SymbianQtVersion *version) } } -void SymbianQtConfigWidget::updateCurrentS60SDKDirectory(const QString &path) -{ - m_version->setSystemRoot(QDir::fromNativeSeparators(path)); - emit changed(); -} - void SymbianQtConfigWidget::updateCurrentSbsV2Directory(const QString &path) { m_version->setSbsV2Directory(QDir::fromNativeSeparators(path)); diff --git a/src/plugins/qt4projectmanager/qt-s60/symbianqtversion.h b/src/plugins/qt4projectmanager/qt-s60/symbianqtversion.h index d21ea2132c..13c47631af 100644 --- a/src/plugins/qt4projectmanager/qt-s60/symbianqtversion.h +++ b/src/plugins/qt4projectmanager/qt-s60/symbianqtversion.h @@ -53,29 +53,21 @@ public: bool isValid() const; QString invalidReason() const; - bool toolChainAvailable(const QString &id) const; - void restoreLegacySettings(QSettings *s); void fromMap(const QVariantMap &map); QVariantMap toMap() const; QList<ProjectExplorer::Abi> detectQtAbis() const; - bool supportsTargetId(const Core::Id id) const; - QSet<Core::Id> supportedTargetIds() const; - QString description() const; bool supportsShadowBuilds() const; bool supportsBinaryDebuggingHelper() const; - void addToEnvironment(Utils::Environment &env) const; - QList<ProjectExplorer::HeaderPath> systemHeaderPathes() const; + void addToEnvironment(const ProjectExplorer::Profile *p, Utils::Environment &env) const; + QList<ProjectExplorer::HeaderPath> systemHeaderPathes(const ProjectExplorer::Profile *p) const; ProjectExplorer::IOutputParser *createOutputParser() const; - QString systemRoot() const; - void setSystemRoot(const QString &); - bool isBuildWithSymbianSbsV2() const; QString sbsV2Directory() const; @@ -88,23 +80,22 @@ public: QString platformDisplayName() const; protected: - QList<ProjectExplorer::Task> reportIssuesImpl(const QString &proFile, const QString &buildDir); void parseMkSpec(ProFileEvaluator *) const; private: QString m_sbsV2Directory; - QString m_systemRoot; - mutable bool m_validSystemRoot; mutable bool m_isBuildUsingSbsV2; }; class SymbianQtConfigWidget : public QtSupport::QtConfigWidget { Q_OBJECT + public: SymbianQtConfigWidget(SymbianQtVersion *version); + public slots: void updateCurrentSbsV2Directory(const QString &path); - void updateCurrentS60SDKDirectory(const QString &path); + private: SymbianQtVersion *m_version; }; |