From 82853c889d9dfd4aba419ce84fd4fba5b7c8f555 Mon Sep 17 00:00:00 2001 From: David Kaspar Date: Wed, 30 Apr 2014 18:20:20 +0200 Subject: Bug 433869: IQMakeProjectInfo is not updating on active conf. changed Fixing incorrect eventTypes used for registering CProjectDescriptionListener in QMakeProjectInfo.start() method. Change-Id: Ieb602a38999868e3da8487a1757c69bd50cb5837 Signed-off-by: David Kaspar Reviewed-on: https://git.eclipse.org/r/25808 Tested-by: Hudson CI Reviewed-by: Doug Schaefer --- .../cdt/internal/qt/core/index/QMakeProjectInfoManager.java | 13 +++++++++---- 1 file changed, 9 insertions(+), 4 deletions(-) (limited to 'qt') diff --git a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeProjectInfoManager.java b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeProjectInfoManager.java index 4553bcbfcd2..46e51b42e14 100644 --- a/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeProjectInfoManager.java +++ b/qt/org.eclipse.cdt.qt.core/src/org/eclipse/cdt/internal/qt/core/index/QMakeProjectInfoManager.java @@ -46,7 +46,7 @@ public class QMakeProjectInfoManager { synchronized (CACHE_SYNC) { CACHE = new HashMap(); } - CoreModel.getDefault().addCProjectDescriptionListener(PD_LISTENER, ICDescriptionDelta.ACTIVE_CFG); + CoreModel.getDefault().addCProjectDescriptionListener(PD_LISTENER, CProjectDescriptionEvent.LOADED | CProjectDescriptionEvent.APPLIED); ResourcesPlugin.getWorkspace().addResourceChangeListener(RC_LISTENER, IResourceChangeEvent.POST_CHANGE | IResourceChangeEvent.PRE_CLOSE | IResourceChangeEvent.PRE_DELETE); } @@ -110,9 +110,14 @@ public class QMakeProjectInfoManager { // called on active project configuration change @Override public void handleEvent(CProjectDescriptionEvent event) { - QMakeProjectInfo info = getQMakeProjectInfoFor(event.getProject(), false); - if (info != null) { - info.updateState(); + ICDescriptionDelta projectDelta = event.getProjectDelta(); + if (projectDelta != null) { + if ((projectDelta.getChangeFlags() & ICDescriptionDelta.ACTIVE_CFG) != 0) { + QMakeProjectInfo info = getQMakeProjectInfoFor(event.getProject(), false); + if (info != null) { + info.updateState(); + } + } } } -- cgit v1.2.3