forked from qt-creator/qt-creator
QtVersionManager::qtVersionsChanged() split list into add/remove/change
Makes it easier to do the right thing. Change-Id: Id6c6754033b3310c6b8c68a4aacc22cbaef268ee Reviewed-by: Tobias Hunger <tobias.hunger@nokia.com>
This commit is contained in:
@@ -108,8 +108,8 @@ MaemoQemuManager::MaemoQemuManager(QObject *parent)
|
|||||||
m_qemuAction->setVisible(false);
|
m_qemuAction->setVisible(false);
|
||||||
|
|
||||||
// listen to qt version changes to update the start button
|
// listen to qt version changes to update the start button
|
||||||
connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>)),
|
connect(QtSupport::QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)),
|
||||||
this, SLOT(qtVersionsChanged(QList<int>)));
|
this, SLOT(qtVersionsChanged(QList<int>,QList<int>,QList<int>)));
|
||||||
|
|
||||||
// listen to project add, remove and startup changes to udate start button
|
// listen to project add, remove and startup changes to udate start button
|
||||||
SessionManager *session = ProjectExplorerPlugin::instance()->session();
|
SessionManager *session = ProjectExplorerPlugin::instance()->session();
|
||||||
@@ -178,8 +178,10 @@ bool MaemoQemuManager::qemuIsRunning() const
|
|||||||
return m_runningQtId != INT_MIN;
|
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();
|
QtSupport::QtVersionManager *manager = QtSupport::QtVersionManager::instance();
|
||||||
foreach (int uniqueId, uniqueIds) {
|
foreach (int uniqueId, uniqueIds) {
|
||||||
if (manager->isValidId(uniqueId)) {
|
if (manager->isValidId(uniqueId)) {
|
||||||
@@ -539,7 +541,7 @@ void MaemoQemuManager::toggleStarterButton(Target *target)
|
|||||||
}
|
}
|
||||||
|
|
||||||
if (uniqueId >= 0 && (m_runtimes.isEmpty() || !m_runtimes.contains(uniqueId)))
|
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;
|
bool isRunning = m_qemuProcess->state() != QProcess::NotRunning;
|
||||||
if (m_runningQtId == uniqueId)
|
if (m_runningQtId == uniqueId)
|
||||||
@@ -596,7 +598,7 @@ bool MaemoQemuManager::targetUsesMatchingRuntimeConfig(Target *target,
|
|||||||
|
|
||||||
void MaemoQemuManager::notify(const QList<int> uniqueIds)
|
void MaemoQemuManager::notify(const QList<int> uniqueIds)
|
||||||
{
|
{
|
||||||
qtVersionsChanged(uniqueIds);
|
qtVersionsChanged(QList<int>(), QList<int>(), uniqueIds);
|
||||||
environmentChanged(); // to toggle the start button
|
environmentChanged(); // to toggle the start button
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ signals:
|
|||||||
void qemuProcessStatus(QemuStatus, const QString &error = QString());
|
void qemuProcessStatus(QemuStatus, const QString &error = QString());
|
||||||
|
|
||||||
private slots:
|
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 projectAdded(ProjectExplorer::Project *project);
|
||||||
void projectRemoved(ProjectExplorer::Project *project);
|
void projectRemoved(ProjectExplorer::Project *project);
|
||||||
|
|||||||
@@ -241,8 +241,8 @@ QString MaemoToolChainFactory::id() const
|
|||||||
QList<ProjectExplorer::ToolChain *> MaemoToolChainFactory::autoDetect()
|
QList<ProjectExplorer::ToolChain *> MaemoToolChainFactory::autoDetect()
|
||||||
{
|
{
|
||||||
QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance();
|
QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance();
|
||||||
connect(vm, SIGNAL(qtVersionsChanged(QList<int>)),
|
connect(vm, SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)),
|
||||||
this, SLOT(handleQtVersionChanges(QList<int>)));
|
this, SLOT(handleQtVersionChanges(QList<int>,QList<int>,QList<int>)));
|
||||||
|
|
||||||
QList<int> versionList;
|
QList<int> versionList;
|
||||||
foreach (QtSupport::BaseQtVersion *v, vm->versions())
|
foreach (QtSupport::BaseQtVersion *v, vm->versions())
|
||||||
@@ -266,8 +266,10 @@ ProjectExplorer::ToolChain *MaemoToolChainFactory::restore(const QVariantMap &da
|
|||||||
return 0;
|
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();
|
ProjectExplorer::ToolChainManager *tcm = ProjectExplorer::ToolChainManager::instance();
|
||||||
QList<ProjectExplorer::ToolChain *> tcList = createToolChainList(changes);
|
QList<ProjectExplorer::ToolChain *> tcList = createToolChainList(changes);
|
||||||
foreach (ProjectExplorer::ToolChain *tc, tcList)
|
foreach (ProjectExplorer::ToolChain *tc, tcList)
|
||||||
|
|||||||
@@ -117,8 +117,8 @@ public:
|
|||||||
ProjectExplorer::ToolChain *restore(const QVariantMap &data);
|
ProjectExplorer::ToolChain *restore(const QVariantMap &data);
|
||||||
|
|
||||||
private slots:
|
private slots:
|
||||||
void handleQtVersionChanges(const QList<int> &);
|
void handleQtVersionChanges(const QList<int> &added, const QList<int> &removed, const QList<int> &changed);
|
||||||
QList<ProjectExplorer::ToolChain *> createToolChainList(const QList<int> &);
|
QList<ProjectExplorer::ToolChain *> createToolChainList(const QList<int> &changes);
|
||||||
};
|
};
|
||||||
|
|
||||||
} // namespace Internal
|
} // namespace Internal
|
||||||
|
|||||||
@@ -58,7 +58,7 @@ namespace Internal {
|
|||||||
Qt4MaemoTargetFactory::Qt4MaemoTargetFactory(QObject *parent) :
|
Qt4MaemoTargetFactory::Qt4MaemoTargetFactory(QObject *parent) :
|
||||||
Qt4BaseTargetFactory(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()));
|
this, SIGNAL(canCreateTargetIdsChanged()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ void QmlProjectRunConfiguration::ctor()
|
|||||||
this, SLOT(changeCurrentFile(Core::IEditor*)));
|
this, SLOT(changeCurrentFile(Core::IEditor*)));
|
||||||
|
|
||||||
QtVersionManager *qtVersions = QtVersionManager::instance();
|
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."));
|
setDisplayName(tr("QML Viewer", "QMLRunConfiguration display name."));
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -114,7 +114,7 @@ QmlProjectRunConfigurationWidget::QmlProjectRunConfigurationWidget(QmlProjectRun
|
|||||||
//
|
//
|
||||||
|
|
||||||
QtVersionManager *qtVersions = QtVersionManager::instance();
|
QtVersionManager *qtVersions = QtVersionManager::instance();
|
||||||
connect(qtVersions, SIGNAL(qtVersionsChanged(QList<int>)),
|
connect(qtVersions, SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)),
|
||||||
this, SLOT(updateQtVersionComboBox()));
|
this, SLOT(updateQtVersionComboBox()));
|
||||||
|
|
||||||
//
|
//
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ using ProjectExplorer::idFromMap;
|
|||||||
Qt4DesktopTargetFactory::Qt4DesktopTargetFactory(QObject *parent) :
|
Qt4DesktopTargetFactory::Qt4DesktopTargetFactory(QObject *parent) :
|
||||||
Qt4BaseTargetFactory(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()));
|
this, SIGNAL(canCreateTargetIdsChanged()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -56,7 +56,7 @@ using ProjectExplorer::idFromMap;
|
|||||||
Qt4SimulatorTargetFactory::Qt4SimulatorTargetFactory(QObject *parent) :
|
Qt4SimulatorTargetFactory::Qt4SimulatorTargetFactory(QObject *parent) :
|
||||||
Qt4BaseTargetFactory(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()));
|
this, SIGNAL(canCreateTargetIdsChanged()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -60,7 +60,7 @@ using namespace Qt4ProjectManager::Internal;
|
|||||||
Qt4SymbianTargetFactory::Qt4SymbianTargetFactory(QObject *parent) :
|
Qt4SymbianTargetFactory::Qt4SymbianTargetFactory(QObject *parent) :
|
||||||
Qt4BaseTargetFactory(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()));
|
this, SIGNAL(canCreateTargetIdsChanged()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -185,8 +185,8 @@ void Qt4BuildConfiguration::ctor()
|
|||||||
this, SLOT(proFileUpdated(Qt4ProjectManager::Qt4ProFileNode*,bool,bool)));
|
this, SLOT(proFileUpdated(Qt4ProjectManager::Qt4ProFileNode*,bool,bool)));
|
||||||
|
|
||||||
QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance();
|
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(QList<int>)));
|
this, SLOT(qtVersionsChanged(QList<int>,QList<int>,QList<int>)));
|
||||||
}
|
}
|
||||||
|
|
||||||
void Qt4BuildConfiguration::emitBuildDirectoryChanged()
|
void Qt4BuildConfiguration::emitBuildDirectoryChanged()
|
||||||
@@ -458,11 +458,11 @@ MakeStep *Qt4BuildConfiguration::makeStep() const
|
|||||||
return 0;
|
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))
|
Q_UNUSED(addedVersions);
|
||||||
return;
|
if (removedVersions.contains(m_qtVersionId) || changedVersions.contains(m_qtVersionId))
|
||||||
emit environmentChanged(); // Our qt version changed, that might have changed the environment
|
emit environmentChanged(); // Our qt version changed, that might have changed the environment
|
||||||
}
|
}
|
||||||
|
|
||||||
// returns true if both are equal
|
// returns true if both are equal
|
||||||
@@ -663,7 +663,7 @@ Qt4BuildConfigurationFactory::Qt4BuildConfigurationFactory(QObject *parent) :
|
|||||||
update();
|
update();
|
||||||
|
|
||||||
QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance();
|
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()));
|
this, SLOT(update()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -144,7 +144,7 @@ signals:
|
|||||||
void buildDirectoryInitialized();
|
void buildDirectoryInitialized();
|
||||||
|
|
||||||
private slots:
|
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 emitBuildDirectoryChanged();
|
||||||
void proFileUpdated(Qt4ProjectManager::Qt4ProFileNode *, bool, bool parseInProgress);
|
void proFileUpdated(Qt4ProjectManager::Qt4ProFileNode *, bool, bool parseInProgress);
|
||||||
|
|
||||||
|
|||||||
@@ -225,7 +225,7 @@ void Qt4ProjectConfigWidget::init(ProjectExplorer::BuildConfiguration *bc)
|
|||||||
|
|
||||||
qtVersionsChanged();
|
qtVersionsChanged();
|
||||||
QtSupport::QtVersionManager *vm = QtSupport::QtVersionManager::instance();
|
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()));
|
this, SLOT(qtVersionsChanged()));
|
||||||
|
|
||||||
bool shadowBuild = m_buildConfiguration->shadowBuild();
|
bool shadowBuild = m_buildConfiguration->shadowBuild();
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ ExamplesListModel::ExamplesListModel(QObject *parent) :
|
|||||||
|
|
||||||
connect(Core::HelpManager::instance(), SIGNAL(setupFinished()),
|
connect(Core::HelpManager::instance(), SIGNAL(setupFinished()),
|
||||||
SLOT(helpInitialized()));
|
SLOT(helpInitialized()));
|
||||||
connect(QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>)),
|
connect(QtVersionManager::instance(), SIGNAL(qtVersionsChanged(QList<int>,QList<int>,QList<int>)),
|
||||||
this, SLOT(handleQtVersionsChanged()));
|
this, SLOT(handleQtVersionsChanged()));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -449,7 +449,7 @@ void QtVersionManager::addVersion(BaseQtVersion *version)
|
|||||||
int uniqueId = version->uniqueId();
|
int uniqueId = version->uniqueId();
|
||||||
m_versions.insert(uniqueId, version);
|
m_versions.insert(uniqueId, version);
|
||||||
|
|
||||||
emit qtVersionsChanged(QList<int>() << uniqueId);
|
emit qtVersionsChanged(QList<int>() << uniqueId, QList<int>(), QList<int>());
|
||||||
saveQtVersions();
|
saveQtVersions();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -457,7 +457,7 @@ void QtVersionManager::removeVersion(BaseQtVersion *version)
|
|||||||
{
|
{
|
||||||
QTC_ASSERT(version != 0, return);
|
QTC_ASSERT(version != 0, return);
|
||||||
m_versions.remove(version->uniqueId());
|
m_versions.remove(version->uniqueId());
|
||||||
emit qtVersionsChanged(QList<int>() << version->uniqueId());
|
emit qtVersionsChanged(QList<int>(), QList<int>() << version->uniqueId(), QList<int>());
|
||||||
saveQtVersions();
|
saveQtVersions();
|
||||||
delete version;
|
delete version;
|
||||||
}
|
}
|
||||||
@@ -623,6 +623,8 @@ void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions)
|
|||||||
SortByUniqueId sortByUniqueId;
|
SortByUniqueId sortByUniqueId;
|
||||||
qSort(sortedNewVersions.begin(), sortedNewVersions.end(), sortByUniqueId);
|
qSort(sortedNewVersions.begin(), sortedNewVersions.end(), sortByUniqueId);
|
||||||
|
|
||||||
|
QList<int> addedVersions;
|
||||||
|
QList<int> removedVersions;
|
||||||
QList<int> changedVersions;
|
QList<int> changedVersions;
|
||||||
// So we trying to find the minimal set of changed versions,
|
// So we trying to find the minimal set of changed versions,
|
||||||
// iterate over both sorted list
|
// iterate over both sorted list
|
||||||
@@ -639,10 +641,10 @@ void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions)
|
|||||||
int nid = (*nit)->uniqueId();
|
int nid = (*nit)->uniqueId();
|
||||||
int oid = (*oit)->uniqueId();
|
int oid = (*oit)->uniqueId();
|
||||||
if (nid < oid) {
|
if (nid < oid) {
|
||||||
changedVersions.push_back(nid);
|
addedVersions.push_back(nid);
|
||||||
++nit;
|
++nit;
|
||||||
} else if (oid < nid) {
|
} else if (oid < nid) {
|
||||||
changedVersions.push_back(oid);
|
removedVersions.push_back(oid);
|
||||||
++oit;
|
++oit;
|
||||||
} else {
|
} else {
|
||||||
if (!equals(*oit, *nit))
|
if (!equals(*oit, *nit))
|
||||||
@@ -653,12 +655,12 @@ void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions)
|
|||||||
}
|
}
|
||||||
|
|
||||||
while (nit != nend) {
|
while (nit != nend) {
|
||||||
changedVersions.push_back((*nit)->uniqueId());
|
addedVersions.push_back((*nit)->uniqueId());
|
||||||
++nit;
|
++nit;
|
||||||
}
|
}
|
||||||
|
|
||||||
while (oit != oend) {
|
while (oit != oend) {
|
||||||
changedVersions.push_back((*oit)->uniqueId());
|
removedVersions.push_back((*oit)->uniqueId());
|
||||||
++oit;
|
++oit;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -667,13 +669,13 @@ void QtVersionManager::setNewQtVersions(QList<BaseQtVersion *> newVersions)
|
|||||||
foreach (BaseQtVersion *v, sortedNewVersions)
|
foreach (BaseQtVersion *v, sortedNewVersions)
|
||||||
m_versions.insert(v->uniqueId(), v);
|
m_versions.insert(v->uniqueId(), v);
|
||||||
|
|
||||||
if (!changedVersions.isEmpty())
|
if (!changedVersions.isEmpty() || !addedVersions.isEmpty() || !removedVersions.isEmpty())
|
||||||
updateDocumentation();
|
updateDocumentation();
|
||||||
|
|
||||||
saveQtVersions();
|
saveQtVersions();
|
||||||
|
|
||||||
if (!changedVersions.isEmpty())
|
if (!changedVersions.isEmpty() || !addedVersions.isEmpty() || !removedVersions.isEmpty())
|
||||||
emit qtVersionsChanged(changedVersions);
|
emit qtVersionsChanged(addedVersions, removedVersions, changedVersions);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Returns the version that was used to build the project in that directory
|
// Returns the version that was used to build the project in that directory
|
||||||
|
|||||||
@@ -108,7 +108,7 @@ public:
|
|||||||
signals:
|
signals:
|
||||||
// content of BaseQtVersion objects with qmake path might have changed
|
// content of BaseQtVersion objects with qmake path might have changed
|
||||||
void dumpUpdatedFor(const Utils::FileName &qmakeCommand);
|
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:
|
public slots:
|
||||||
void updateDumpFor(const Utils::FileName &qmakeCommand);
|
void updateDumpFor(const Utils::FileName &qmakeCommand);
|
||||||
|
|||||||
Reference in New Issue
Block a user