diff --git a/src/plugins/madde/maemoqemumanager.cpp b/src/plugins/madde/maemoqemumanager.cpp index 78b18409f1e77c742cccabd317548383a60309e4..10b3f2ac33095480e6a82f0b5112fb84dcadf65d 100644 --- a/src/plugins/madde/maemoqemumanager.cpp +++ b/src/plugins/madde/maemoqemumanager.cpp @@ -108,8 +108,8 @@ MaemoQemuManager::MaemoQemuManager(QObject *parent) m_qemuAction->setVisible(false); // listen to qt version changes to update the start button - connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>)), - this, SLOT(qtVersionsChanged(QList<int>))); + connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), + this, SLOT(qtVersionsChanged(QList<int>,QList<int>,QList<int>))); // listen to project add, remove and startup changes to udate start button SessionManager *session = ProjectExplorerPlugin::instance()->session(); @@ -178,8 +178,10 @@ bool MaemoQemuManager::qemuIsRunning() const return m_runningQtId != INT_MIN; } -void MaemoQemuManager::qtVersionsChanged(const QList<int> &uniqueIds) +void MaemoQemuManager::qtVersionsChanged(const QList<int> &added, const QList<int> &removed, const QList<int> &changed) { + QList<int> uniqueIds; + uniqueIds << added << removed << changed; QtSupport::QtVersionManager *manager = QtSupport::QtVersionManager::instance(); foreach (int uniqueId, uniqueIds) { if (manager->isValidId(uniqueId)) { @@ -539,7 +541,7 @@ void MaemoQemuManager::toggleStarterButton(Target *target) } if (uniqueId >= 0 && (m_runtimes.isEmpty() || !m_runtimes.contains(uniqueId))) - qtVersionsChanged(QList<int>() << uniqueId); + qtVersionsChanged(QList<int>(), QList<int>(), QList<int>() << uniqueId); bool isRunning = m_qemuProcess->state() != QProcess::NotRunning; if (m_runningQtId == uniqueId) @@ -596,7 +598,7 @@ bool MaemoQemuManager::targetUsesMatchingRuntimeConfig(Target *target, void MaemoQemuManager::notify(const QList<int> uniqueIds) { - qtVersionsChanged(uniqueIds); + qtVersionsChanged(QList<int>(), QList<int>(), uniqueIds); environmentChanged(); // to toggle the start button } diff --git a/src/plugins/madde/maemoqemumanager.h b/src/plugins/madde/maemoqemumanager.h index 0fa3894ff6d919cb4579ebef4fef25327ce2c066..a5c61b78991c198937df175c93e30c2543eed58c 100644 --- a/src/plugins/madde/maemoqemumanager.h +++ b/src/plugins/madde/maemoqemumanager.h @@ -82,7 +82,7 @@ signals: void qemuProcessStatus(QemuStatus, const QString &error = QString()); private slots: - void qtVersionsChanged(const QList<int> &uniqueIds); + void qtVersionsChanged(const QList<int> &addedIds, const QList<int> &removedIds, const QList<int> &changed); void projectAdded(ProjectExplorer::Project *project); void projectRemoved(ProjectExplorer::Project *project); diff --git a/src/plugins/madde/maemotoolchain.cpp b/src/plugins/madde/maemotoolchain.cpp index e4de7cc401ca85e772401d56f7a6bf0748742688..848198199f0e2a5bd67a22a4990e539543ef012a 100644 --- a/src/plugins/madde/maemotoolchain.cpp +++ b/src/plugins/madde/maemotoolchain.cpp @@ -241,8 +241,8 @@ QString MaemoToolChainFactory::id() const QList<ProjectExplorer::ToolChain *> MaemoToolChainFactory::autoDetect() { QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance(); - connect(vm, SIGNAL(qtVersionsChanged(QList<int>)), - this, SLOT(handleQtVersionChanges(QList<int>))); + connect(vm, SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), + this, SLOT(handleQtVersionChanges(QList<int>,QList<int>,QList<int>))); QList<int> versionList; foreach (QtSupport::BaseQtVersion *v, vm->versions()) @@ -266,8 +266,10 @@ ProjectExplorer::ToolChain *MaemoToolChainFactory::restore(const QVariantMap &da return 0; } -void MaemoToolChainFactory::handleQtVersionChanges(const QList<int> &changes) +void MaemoToolChainFactory::handleQtVersionChanges(const QList<int> &added, const QList<int> &removed, const QList<int> &changed) { + QList<int> changes; + changes << added << removed << changed; ProjectExplorer::ToolChainManager *tcm = ProjectExplorer::ToolChainManager::instance(); QList<ProjectExplorer::ToolChain *> tcList = createToolChainList(changes); foreach (ProjectExplorer::ToolChain *tc, tcList) diff --git a/src/plugins/madde/maemotoolchain.h b/src/plugins/madde/maemotoolchain.h index e585d35435c20b9446756be9c61f57a08af876f4..845f1242940b7e4f33fee6fe0e47e09238ae8cd4 100644 --- a/src/plugins/madde/maemotoolchain.h +++ b/src/plugins/madde/maemotoolchain.h @@ -117,8 +117,8 @@ public: ProjectExplorer::ToolChain *restore(const QVariantMap &data); private slots: - void handleQtVersionChanges(const QList<int> &); - QList<ProjectExplorer::ToolChain *> createToolChainList(const QList<int> &); + void handleQtVersionChanges(const QList<int> &added, const QList<int> &removed, const QList<int> &changed); + QList<ProjectExplorer::ToolChain *> createToolChainList(const QList<int> &changes); }; } // namespace Internal diff --git a/src/plugins/madde/qt4maemotargetfactory.cpp b/src/plugins/madde/qt4maemotargetfactory.cpp index 44de7c3158d30f57f5b101a4c675fd7e1e45a6c6..4879165803f316599a8bd1325b6f1a7f76ce8022 100644 --- a/src/plugins/madde/qt4maemotargetfactory.cpp +++ b/src/plugins/madde/qt4maemotargetfactory.cpp @@ -58,7 +58,7 @@ namespace Internal { Qt4MaemoTargetFactory::Qt4MaemoTargetFactory(QObject *parent) : Qt4BaseTargetFactory(parent) { - connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>)), + connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), this, SIGNAL(canCreateTargetIdsChanged())); } diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp index 9269d30fbbf308c0dc385e012f3595892ae0cdcb..3899c87435ac0d296b2611e9d5b637b6ea7f565e 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfiguration.cpp @@ -108,7 +108,7 @@ void QmlProjectRunConfiguration::ctor() this, SLOT(changeCurrentFile(Core::IEditor*))); QtVersionManager *qtVersions = QtVersionManager::instance(); - connect(qtVersions, SIGNAL(qtVersionsChanged(QList<int>)), this, SLOT(updateQtVersions())); + connect(qtVersions, SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), this, SLOT(updateQtVersions())); setDisplayName(tr("QML Viewer", "QMLRunConfiguration display name.")); } diff --git a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp index f3fe0c32764b026bfe3ddd2d3b990a8627ccfe26..0813e0868bf12bf3363c4adc7dc2584c645dab4a 100644 --- a/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp +++ b/src/plugins/qmlprojectmanager/qmlprojectrunconfigurationwidget.cpp @@ -114,7 +114,7 @@ QmlProjectRunConfigurationWidget::QmlProjectRunConfigurationWidget(QmlProjectRun // QtVersionManager *qtVersions = QtVersionManager::instance(); - connect(qtVersions, SIGNAL(qtVersionsChanged(QList<int>)), + connect(qtVersions, SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), this, SLOT(updateQtVersionComboBox())); // diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp index 3fe2d186f63962c6fa598c837448b5b7233b78cc..06df7004a09228ad8ffa66a50d0bb6f677d2b02c 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4desktoptargetfactory.cpp @@ -56,7 +56,7 @@ using ProjectExplorer::idFromMap; Qt4DesktopTargetFactory::Qt4DesktopTargetFactory(QObject *parent) : Qt4BaseTargetFactory(parent) { - connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>)), + connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), this, SIGNAL(canCreateTargetIdsChanged())); } diff --git a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp index d9bb69e41b446e991a478561f1a025b6f817f8c2..71ecce00e4a47442e60f618ac4bd58ebf54b7c79 100644 --- a/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-desktop/qt4simulatortargetfactory.cpp @@ -56,7 +56,7 @@ using ProjectExplorer::idFromMap; Qt4SimulatorTargetFactory::Qt4SimulatorTargetFactory(QObject *parent) : Qt4BaseTargetFactory(parent) { - connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>)), + connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), this, SIGNAL(canCreateTargetIdsChanged())); } diff --git a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp index 003d242f2aabe097922aa702f6ede6a52e3f5061..228dc0a501c289468d385f937c7b2b0b9f59b3f8 100644 --- a/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp +++ b/src/plugins/qt4projectmanager/qt-s60/qt4symbiantargetfactory.cpp @@ -60,7 +60,7 @@ using namespace Qt4ProjectManager::Internal; Qt4SymbianTargetFactory::Qt4SymbianTargetFactory(QObject *parent) : Qt4BaseTargetFactory(parent) { - connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>)), + connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), this, SIGNAL(canCreateTargetIdsChanged())); } diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp index 9af64867fd6c3063925092c942f79cd8ceec8223..7e73d48501bf87ded5ddf96dd8d14126b12c2ba4 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.cpp @@ -185,8 +185,8 @@ void Qt4BuildConfiguration::ctor() this, SLOT(proFileUpdated(Qt4ProjectManager::Qt4ProFileNode*,bool,bool))); QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance(); - connect(vm, SIGNAL(qtVersionsChanged(QList<int>)), - this, SLOT(qtVersionsChanged(QList<int>))); + connect(vm, SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), + this, SLOT(qtVersionsChanged(QList<int>,QList<int>,QList<int>))); } void Qt4BuildConfiguration::emitBuildDirectoryChanged() @@ -458,11 +458,11 @@ MakeStep *Qt4BuildConfiguration::makeStep() const return 0; } -void Qt4BuildConfiguration::qtVersionsChanged(const QList<int> &changedVersions) +void Qt4BuildConfiguration::qtVersionsChanged(const QList<int> &addedVersions, const QList<int> &removedVersions, const QList<int> &changedVersions) { - if (!changedVersions.contains(m_qtVersionId)) - return; - emit environmentChanged(); // Our qt version changed, that might have changed the environment + Q_UNUSED(addedVersions); + if (removedVersions.contains(m_qtVersionId) || changedVersions.contains(m_qtVersionId)) + emit environmentChanged(); // Our qt version changed, that might have changed the environment } // returns true if both are equal @@ -663,7 +663,7 @@ Qt4BuildConfigurationFactory::Qt4BuildConfigurationFactory(QObject *parent) : update(); QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance(); - connect(vm, SIGNAL(qtVersionsChanged(QList<int>)), + connect(vm, SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), this, SLOT(update())); } diff --git a/src/plugins/qt4projectmanager/qt4buildconfiguration.h b/src/plugins/qt4projectmanager/qt4buildconfiguration.h index 7b2dd5a696d530c32d2db04e040172d50878e634..17b98abd0e73853c779c595b32a101aae70a3088 100644 --- a/src/plugins/qt4projectmanager/qt4buildconfiguration.h +++ b/src/plugins/qt4projectmanager/qt4buildconfiguration.h @@ -144,7 +144,7 @@ signals: void buildDirectoryInitialized(); private slots: - void qtVersionsChanged(const QList<int> &changedVersions); + void qtVersionsChanged(const QList<int> &addedVersions, const QList<int> &removedVersions, const QList<int> &changedVersions); void emitBuildDirectoryChanged(); void proFileUpdated(Qt4ProjectManager::Qt4ProFileNode *, bool, bool parseInProgress); diff --git a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp index 990d134d33d1233800b1c4bfb71d5ede4a696ff9..9fa9de7bc4ea41acc43af122c660ecd2c0d9829c 100644 --- a/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp +++ b/src/plugins/qt4projectmanager/qt4projectconfigwidget.cpp @@ -225,7 +225,7 @@ void Qt4ProjectConfigWidget::init(ProjectExplorer::BuildConfiguration *bc) qtVersionsChanged(); QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance(); - connect(vm, SIGNAL(qtVersionsChanged(QList<int>)), + connect(vm, SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), this, SLOT(qtVersionsChanged())); bool shadowBuild = m_buildConfiguration->shadowBuild(); diff --git a/src/plugins/qtsupport/exampleslistmodel.cpp b/src/plugins/qtsupport/exampleslistmodel.cpp index 27b63394589e82093f2c19ee1c32a742f41cd460..c3ea5d3e7d2b16495e7927071d58825f4f78364a 100644 --- a/src/plugins/qtsupport/exampleslistmodel.cpp +++ b/src/plugins/qtsupport/exampleslistmodel.cpp @@ -77,7 +77,7 @@ ExamplesListModel::ExamplesListModel(QObject *parent) : connect(Core::HelpManager::instance(), SIGNAL(setupFinished()), SLOT(helpInitialized())); - connect(QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>)), + connect(QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)), this, SLOT(handleQtVersionsChanged())); } diff --git a/src/plugins/qtsupport/qtversionmanager.cpp b/src/plugins/qtsupport/qtversionmanager.cpp index aa83869a284ecfdf476453122a9cc77dfdc08996..185023e8515c4942d8450adc77c69d13f5679dcb 100644 --- a/src/plugins/qtsupport/qtversionmanager.cpp +++ b/src/plugins/qtsupport/qtversionmanager.cpp @@ -449,7 +449,7 @@ void QtVersionManager::addVersion(BaseQtVersion *version) int uniqueId = version->uniqueId(); m_versions.insert(uniqueId, version); - emit qtVersionsChanged(QList<int>() << uniqueId); + emit qtVersionsChanged(QList<int>() << uniqueId, QList<int>(), QList<int>()); saveQtVersions(); } @@ -457,7 +457,7 @@ void QtVersionManager::removeVersion(BaseQtVersion *version) { QTC_ASSERT(version != 0, return); m_versions.remove(version->uniqueId()); - emit qtVersionsChanged(QList<int>() << version->uniqueId()); + emit qtVersionsChanged(QList<int>(), QList<int>() << version->uniqueId(), QList<int>()); saveQtVersions(); delete version; } @@ -623,6 +623,8 @@ void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions) SortByUniqueId sortByUniqueId; qSort(sortedNewVersions.begin(), sortedNewVersions.end(), sortByUniqueId); + QList<int> addedVersions; + QList<int> removedVersions; QList<int> changedVersions; // So we trying to find the minimal set of changed versions, // iterate over both sorted list @@ -639,10 +641,10 @@ void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions) int nid = (*nit)->uniqueId(); int oid = (*oit)->uniqueId(); if (nid < oid) { - changedVersions.push_back(nid); + addedVersions.push_back(nid); ++nit; } else if (oid < nid) { - changedVersions.push_back(oid); + removedVersions.push_back(oid); ++oit; } else { if (!equals(*oit, *nit)) @@ -653,12 +655,12 @@ void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions) } while (nit != nend) { - changedVersions.push_back((*nit)->uniqueId()); + addedVersions.push_back((*nit)->uniqueId()); ++nit; } while (oit != oend) { - changedVersions.push_back((*oit)->uniqueId()); + removedVersions.push_back((*oit)->uniqueId()); ++oit; } @@ -667,13 +669,13 @@ void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions) foreach (BaseQtVersion *v, sortedNewVersions) m_versions.insert(v->uniqueId(), v); - if (!changedVersions.isEmpty()) + if (!changedVersions.isEmpty() || !addedVersions.isEmpty() || !removedVersions.isEmpty()) updateDocumentation(); saveQtVersions(); - if (!changedVersions.isEmpty()) - emit qtVersionsChanged(changedVersions); + if (!changedVersions.isEmpty() || !addedVersions.isEmpty() || !removedVersions.isEmpty()) + emit qtVersionsChanged(addedVersions, removedVersions, changedVersions); } // Returns the version that was used to build the project in that directory diff --git a/src/plugins/qtsupport/qtversionmanager.h b/src/plugins/qtsupport/qtversionmanager.h index cccb8f3be677c797382a2dd887833d9ef0256a38..d1922122561b1555cf9bf63e21fed9a68f13a4c6 100644 --- a/src/plugins/qtsupport/qtversionmanager.h +++ b/src/plugins/qtsupport/qtversionmanager.h @@ -108,7 +108,7 @@ public: signals: // content of BaseQtVersion objects with qmake path might have changed void dumpUpdatedFor(const Utils::FileName &qmakeCommand); - void qtVersionsChanged(const QList<int> &uniqueIds); + void qtVersionsChanged(const QList<int> &addedIds, const QList<int> &removedIds, const QList<int> &changedIds); public slots: void updateDumpFor(const Utils::FileName &qmakeCommand);