diff --git a/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt b/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt index d365bee6c5b96b64f68611f8c23418c598780986..829762183cc55c3cd6ef686dd28fc12ff4d6dea1 100644 --- a/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt +++ b/src/plugins/qt4projectmanager/qt-s60/qt-s60-todo.txt @@ -25,6 +25,7 @@ * Run on device * makesis, signsis and applicationinstaller don't report errors back via exit code :-( + * passphrase for signing * Add compile output parser winscw at least! diff --git a/src/plugins/qt4projectmanager/qt4project.cpp b/src/plugins/qt4projectmanager/qt4project.cpp index b053bc869156199f34f5a2c2bd8a5cff805c35e6..d0757653be5cd1d7e805f08713156c56caf1c005 100644 --- a/src/plugins/qt4projectmanager/qt4project.cpp +++ b/src/plugins/qt4projectmanager/qt4project.cpp @@ -230,7 +230,8 @@ Qt4Project::Qt4Project(Qt4Manager *manager, const QString& fileName) : m_nodesWatcher(new Internal::Qt4NodesWatcher(this)), m_fileInfo(new Qt4ProjectFile(this, fileName, this)), m_isApplication(true), - m_projectFiles(new Qt4ProjectFiles) + m_projectFiles(new Qt4ProjectFiles), + m_toolChain(0) { m_manager->registerProject(this); @@ -250,6 +251,7 @@ Qt4Project::~Qt4Project() { m_manager->unregisterProject(this); delete m_projectFiles; + delete m_toolChain; } void Qt4Project::defaultQtVersionChanged() @@ -268,6 +270,8 @@ void Qt4Project::qtVersionsChanged() m_rootProjectNode->update(); } } + delete m_toolChain; + m_toolChain = 0; } void Qt4Project::updateFileList() @@ -379,7 +383,10 @@ void Qt4Project::scheduleUpdateCodeModel(Qt4ProjectManager::Internal::Qt4ProFile ProjectExplorer::ToolChain *Qt4Project::toolChain(const QString &buildConfiguration) const { - return qtVersion(buildConfiguration)->toolChain(toolChainType(buildConfiguration)); + if (!m_toolChain) { + m_toolChain = qtVersion(buildConfiguration)->createToolChain(toolChainType(buildConfiguration)); + } + return m_toolChain; } QString Qt4Project::makeCommand(const QString &buildConfiguration) const @@ -823,6 +830,8 @@ void Qt4Project::setQtVersion(const QString &buildConfiguration, int id) void Qt4Project::setToolChainType(const QString &buildConfiguration, ProjectExplorer::ToolChain::ToolChainType type) { setValue(buildConfiguration, "ToolChain", (int)type); + delete m_toolChain; + m_toolChain = 0; } ProjectExplorer::ToolChain::ToolChainType Qt4Project::toolChainType(const QString &buildConfiguration) const diff --git a/src/plugins/qt4projectmanager/qt4project.h b/src/plugins/qt4projectmanager/qt4project.h index 1c06a0794dcf5ac75d1374cd88e3dc726d4dfe50..c5327057d4f7099e8a688cf7acb976f7fce1d5f7 100644 --- a/src/plugins/qt4projectmanager/qt4project.h +++ b/src/plugins/qt4projectmanager/qt4project.h @@ -249,6 +249,7 @@ private: QList<Qt4ProjectManager::Internal::Qt4ProFileNode *> m_proFilesForCodeModelUpdate; QMap<QString, Internal::CodeModelInfo> m_codeModelInfo; + mutable ProjectExplorer::ToolChain *m_toolChain; friend class Qt4ProjectFile; }; diff --git a/src/plugins/qt4projectmanager/qtversionmanager.cpp b/src/plugins/qt4projectmanager/qtversionmanager.cpp index 3431924fe1bdb5c8cbf3daeb5b915cbe4e62aa77..0a3a730ed48ad72675823003e27c1a53d5a0712b 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.cpp +++ b/src/plugins/qt4projectmanager/qtversionmanager.cpp @@ -395,8 +395,7 @@ QtVersion::QtVersion(const QString &name, const QString &path, int id, m_defaultConfigIsDebugAndRelease(true), m_hasExamples(false), m_hasDemos(false), - m_hasDocumentation(false), - m_toolChain(0) + m_hasDocumentation(false) { if (id == -1) m_id = getUniqueId(); @@ -412,8 +411,7 @@ QtVersion::QtVersion(const QString &name, const QString &path, m_autodetectionSource(autodetectionSource), m_hasDebuggingHelper(false), m_mkspecUpToDate(false), - m_versionInfoUpToDate(false), - m_toolChain(0) + m_versionInfoUpToDate(false) { m_id = getUniqueId(); setPath(path); @@ -486,7 +484,6 @@ void QtVersion::setPath(const QString &path) m_hasDebuggingHelper = !debuggingHelperLibrary().isEmpty(); m_qmakeCXX = QString::null; m_qmakeCXXUpToDate = false; - m_toolChainUpToDate = false; } void QtVersion::updateSourcePath() @@ -885,18 +882,9 @@ void QtVersion::updateQMakeCXX() const m_qmakeCXXUpToDate = true; } -ProjectExplorer::ToolChain *QtVersion::toolChain(ProjectExplorer::ToolChain::ToolChainType type) const +ProjectExplorer::ToolChain *QtVersion::createToolChain(ProjectExplorer::ToolChain::ToolChainType type) const { - updateToolChain(type); - return m_toolChain.data(); -} - -void QtVersion::updateToolChain(ProjectExplorer::ToolChain::ToolChainType type) const -{ - if (m_toolChainUpToDate && m_toolChain - && m_toolChain.data() && m_toolChain->type() == type) - return; - ProjectExplorer::ToolChain *tempToolchain= 0; + ProjectExplorer::ToolChain *tempToolchain = 0; if (type == ProjectExplorer::ToolChain::MinGW) { QString qmake_cxx = qmakeCXX(); ProjectExplorer::Environment env = ProjectExplorer::Environment::systemEnvironment(); @@ -933,14 +921,7 @@ void QtVersion::updateToolChain(ProjectExplorer::ToolChain::ToolChainType type) qDebug()<<"Could not create ToolChain for"<<mkspec(); qDebug()<<"Qt Creator doesn't know about the system includes, nor the systems defines."; } - - if (ProjectExplorer::ToolChain::equals(tempToolchain, m_toolChain.data())) { - delete tempToolchain; - } else { - m_toolChain = QSharedPointer<ProjectExplorer::ToolChain>(tempToolchain); - } - - m_toolChainUpToDate = true; + return tempToolchain; } @@ -1046,7 +1027,6 @@ QString QtVersion::mwcDirectory() const void QtVersion::setMwcDirectory(const QString &directory) { m_mwcDirectory = directory; - m_toolChainUpToDate = false; } #endif @@ -1058,7 +1038,6 @@ QString QtVersion::mingwDirectory() const void QtVersion::setMingwDirectory(const QString &directory) { m_mingwDirectory = directory; - m_toolChainUpToDate = false; } QString QtVersion::msvcVersion() const @@ -1075,7 +1054,6 @@ QString QtVersion::wincePlatform() const void QtVersion::setMsvcVersion(const QString &version) { m_msvcVersion = version; - m_toolChainUpToDate = false; } void QtVersion::addToEnvironment(ProjectExplorer::Environment &env) const @@ -1190,11 +1168,12 @@ QString QtVersion::buildDebuggingHelperLibrary() addToEnvironment(env); // TODO: the debugging helper doesn't comply to actual tool chain yet - ProjectExplorer::ToolChain *tc = toolChain(defaultToolchainType()); + ProjectExplorer::ToolChain *tc = createToolChain(defaultToolchainType()); tc->addToEnvironment(env); QString directory = DebuggingHelperLibrary::copyDebuggingHelperLibrary(qtInstallData, path()); QString output = DebuggingHelperLibrary::buildDebuggingHelperLibrary(directory, tc->makeCommand(), qmakeCommand(), mkspec(), env); m_hasDebuggingHelper = !debuggingHelperLibrary().isEmpty(); + delete tc; return output; } diff --git a/src/plugins/qt4projectmanager/qtversionmanager.h b/src/plugins/qt4projectmanager/qtversionmanager.h index 14b3c5028b8385ca500ff201f34f1b13be991681..9208364387398ef7fb313b27eb7328a4844c3f11 100644 --- a/src/plugins/qt4projectmanager/qtversionmanager.h +++ b/src/plugins/qt4projectmanager/qtversionmanager.h @@ -53,7 +53,7 @@ public: QtVersion(const QString &name, const QString &path, int id, bool isAutodetected = false, const QString &autodetectionSource = QString()); QtVersion() - :m_name(QString::null), m_id(-1), m_toolChain(0) + :m_name(QString::null), m_id(-1) { setPath(QString::null); } ~QtVersion(); @@ -74,7 +74,7 @@ public: QList<ProjectExplorer::ToolChain::ToolChainType> possibleToolChainTypes() const; QString mkspec() const; ProjectExplorer::ToolChain::ToolChainType defaultToolchainType() const; - ProjectExplorer::ToolChain *toolChain(ProjectExplorer::ToolChain::ToolChainType type) const; + ProjectExplorer::ToolChain *createToolChain(ProjectExplorer::ToolChain::ToolChainType type) const; void setName(const QString &name); void setPath(const QString &path); @@ -128,7 +128,6 @@ private: void updateMkSpec() const; void updateVersionInfo() const; void updateQMakeCXX() const; - void updateToolChain(ProjectExplorer::ToolChain::ToolChainType type) const; QString qmakeCXX() const; QString findQtBinary(const QStringList &possibleName) const; QString m_name; @@ -165,9 +164,6 @@ private: mutable bool m_qmakeCXXUpToDate; mutable QString m_qmakeCXX; - - mutable bool m_toolChainUpToDate; - mutable QSharedPointer<ProjectExplorer::ToolChain> m_toolChain; }; class QtVersionManager : public QObject