From f19ec81a67d0b64a0740cc2840b69b86cf44dfdf Mon Sep 17 00:00:00 2001 From: Christian Kandeler Date: Mon, 24 Nov 2014 17:17:27 +0100 Subject: [PATCH] QbsProjectManager: Make Kit function argument const. It's silly to force all callers in the chain to use a non-const pointer for a Kit that is really const just because of the QList vs. QList problem. Instead, use a (safe) const_cast for the list operations. Change-Id: I929cb9e42957de48d7ad8e1e4b04a7739f9c22bf Reviewed-by: Tobias Hunger --- src/plugins/qbsprojectmanager/qbsprojectmanager.cpp | 8 +++++--- src/plugins/qbsprojectmanager/qbsprojectmanager.h | 4 ++-- 2 files changed, 7 insertions(+), 5 deletions(-) diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp b/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp index a0b804fb143..abadd09fb7b 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.cpp @@ -116,7 +116,7 @@ ProjectExplorer::Project *QbsManager::openProject(const QString &fileName, QStri return new Internal::QbsProject(this, fileName); } -QString QbsManager::profileForKit(ProjectExplorer::Kit *k) +QString QbsManager::profileForKit(const ProjectExplorer::Kit *k) { if (!k) return QString(); @@ -129,9 +129,11 @@ void QbsManager::setProfileForKit(const QString &name, const ProjectExplorer::Ki m_settings->setValue(qtcProfilePrefix() + k->id().toString(), name); } -void QbsManager::updateProfileIfNecessary(ProjectExplorer::Kit *kit) +void QbsManager::updateProfileIfNecessary(const ProjectExplorer::Kit *kit) { - if (m_kitsToBeSetupForQbs.removeOne(kit)) // kit in list <=> yes, it is necessary + // kit in list <=> profile update is necessary + // Note that the const_cast is safe, as we do not call any non-const methods on the object. + if (m_kitsToBeSetupForQbs.removeOne(const_cast(kit))) addProfileFromKit(kit); } diff --git a/src/plugins/qbsprojectmanager/qbsprojectmanager.h b/src/plugins/qbsprojectmanager/qbsprojectmanager.h index 375f0417b38..a5b8643f23a 100644 --- a/src/plugins/qbsprojectmanager/qbsprojectmanager.h +++ b/src/plugins/qbsprojectmanager/qbsprojectmanager.h @@ -72,10 +72,10 @@ public: ProjectExplorer::Project *openProject(const QString &fileName, QString *errorString); // QBS profiles management: - QString profileForKit(ProjectExplorer::Kit *k); + QString profileForKit(const ProjectExplorer::Kit *k); void setProfileForKit(const QString &name, const ProjectExplorer::Kit *k); - void updateProfileIfNecessary(ProjectExplorer::Kit *kit); + void updateProfileIfNecessary(const ProjectExplorer::Kit *kit); static qbs::Settings *settings() { return m_settings; } static Internal::QbsLogSink *logSink() { return m_logSink; }