patch from Bogdan
"This patch adds an index enablement tab to the project properties page for both managed and standard make projects for the 1.2 stream. "
diff --git a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/MakeProjectWizardOptionPage.java b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/MakeProjectWizardOptionPage.java
index 8d0f2f0..a7ec906 100644
--- a/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/MakeProjectWizardOptionPage.java
+++ b/build/org.eclipse.cdt.make.ui/src/org/eclipse/cdt/make/ui/wizards/MakeProjectWizardOptionPage.java
@@ -7,6 +7,7 @@
 
 import org.eclipse.cdt.make.internal.ui.MakeProjectOptionBlock;
 import org.eclipse.cdt.ui.dialogs.ICOptionContainer;
+import org.eclipse.cdt.ui.dialogs.IndexerBlock;
 import org.eclipse.cdt.ui.dialogs.ReferenceBlock;
 import org.eclipse.cdt.ui.dialogs.TabFolderOptionBlock;
 import org.eclipse.cdt.ui.wizards.NewCProjectWizard;
@@ -30,7 +31,8 @@
 public class MakeProjectWizardOptionPage extends NewCProjectWizardOptionPage {
 
 	public class MakeWizardOptionBlock extends MakeProjectOptionBlock {
-
+		IndexerBlock indexBlock;
+		
 		public MakeWizardOptionBlock(ICOptionContainer parent) {
 			super(parent);
 		}
@@ -38,6 +40,7 @@
 		protected void addTabs() {
 			addTab(new ReferenceBlock());
 			super.addTabs();
+			addTab(indexBlock = new IndexerBlock());
 		}
 	}
 
diff --git a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java
index a0dd9e5..4ed509f 100644
--- a/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java
+++ b/build/org.eclipse.cdt.managedbuilder.ui/src/org/eclipse/cdt/managedbuilder/ui/wizards/NewManagedProjectOptionPage.java
@@ -13,6 +13,7 @@
 
 import org.eclipse.cdt.managedbuilder.internal.ui.ManagedProjectOptionBlock;
 import org.eclipse.cdt.ui.dialogs.ICOptionContainer;
+import org.eclipse.cdt.ui.dialogs.IndexerBlock;
 import org.eclipse.cdt.ui.dialogs.ReferenceBlock;
 import org.eclipse.cdt.ui.dialogs.TabFolderOptionBlock;
 import org.eclipse.cdt.ui.wizards.NewCProjectWizard;
@@ -22,13 +23,15 @@
 public class NewManagedProjectOptionPage extends NewCProjectWizardOptionPage {
 
 	public class ManagedWizardOptionBlock extends ManagedProjectOptionBlock {
-
+		IndexerBlock indexBlock;
+		
 		public ManagedWizardOptionBlock(ICOptionContainer parent) {
 			super(parent);
 		}
 
 		protected void addTabs() {
 			addTab(new ReferenceBlock());
+			addTab(indexBlock = new IndexerBlock());
 		}
 	}
 
diff --git a/core/org.eclipse.cdt.core/index/ChangeLog b/core/org.eclipse.cdt.core/index/ChangeLog
index b223cf5..65aa245 100644
--- a/core/org.eclipse.cdt.core/index/ChangeLog
+++ b/core/org.eclipse.cdt.core/index/ChangeLog
@@ -1,3 +1,10 @@
+2004-12-07 Bogdan Gheorghe

+	- Added Index Enablement checking

+

+	* index/org/eclipse/cdt/internal/core/index/search/indexing/IndexManager.java

+	* index/org/eclipse/cdt/internal/core/index/search/indexing/IndexRequest.java

+	

+	 

 2004-02-13 Bogdan Gheorghe

 	PR 51232

 

diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
index 54d1cd1..0374040 100644
--- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
+++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexManager.java
@@ -22,6 +22,8 @@
 import java.util.zip.CRC32;
 
 import org.eclipse.cdt.core.CCorePlugin;
+import org.eclipse.cdt.core.ICDescriptor;
+import org.eclipse.cdt.core.ICLogConstants;
 import org.eclipse.cdt.internal.core.CharOperation;
 import org.eclipse.cdt.internal.core.index.IIndex;
 import org.eclipse.cdt.internal.core.index.impl.Index;
@@ -37,7 +39,11 @@
 import org.eclipse.core.resources.IResource;
 import org.eclipse.core.resources.IWorkspace;
 import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
 import org.eclipse.core.runtime.IPath;
+import org.eclipse.core.runtime.QualifiedName;
+import org.w3c.dom.Element;
+import org.w3c.dom.Node;
 
 
 public class IndexManager extends JobManager implements IIndexConstants {
@@ -67,6 +73,16 @@
 
 	public static boolean VERBOSE = false;
 	
+	public final static String INDEX_MODEL_ID = CCorePlugin.PLUGIN_ID + ".newindexmodel"; //$NON-NLS-1$
+	public final static String ACTIVATION = "enable"; //$NON-NLS-1$
+	public final static QualifiedName activationKey = new QualifiedName(INDEX_MODEL_ID, ACTIVATION);
+	
+	public static final String INDEXER_ENABLED = "indexEnabled"; //$NON-NLS-1$
+	public static final String INDEXER_PROBLEMS_ENABLED = "indexerProblemsEnabled"; //$NON-NLS-1$
+	public static final String CDT_INDEXER = "cdt_indexer"; //$NON-NLS-1$
+	public static final String INDEXER_VALUE = "indexValue"; //$NON-NLS-1$
+	
+	
 	public synchronized void aboutToUpdateIndex(IPath path, Integer newIndexState) {
 		// newIndexState is either UPDATING_STATE or REBUILDING_STATE
 		// must tag the index as inconsistent, in case we exit before the update job is started
@@ -105,6 +121,16 @@
 	 * Note: the actual operation is performed in background
 	 */
 	public void addSource(IFile resource, IPath indexedContainer){
+		
+		IProject project = resource.getProject();
+		
+		boolean indexEnabled = false;
+		if (project != null)
+			indexEnabled = isIndexEnabled(project);
+		else
+			org.eclipse.cdt.internal.core.model.Util.log(null, "IndexManager addSource: File has no project associated : " + resource.getName(), ICLogConstants.CDT); //$NON-NLS-1$ 
+		
+			
 		if (CCorePlugin.getDefault() == null) return;	
 		AddCompilationUnitToIndex job = new AddCompilationUnitToIndex(resource, indexedContainer, this);
 		if (this.awaitingJobsCount() < MAX_FILES_IN_MEMORY) {
@@ -115,7 +141,9 @@
 	}
 	
 	public void updateDependencies(IResource resource){
-		if (CCorePlugin.getDefault() == null) return;	
+		if (CCorePlugin.getDefault() == null || !isIndexEnabled( resource.getProject()) ) 
+			return;	
+			
 			UpdateDependency job = new UpdateDependency(resource);
 		
 			request(job);
@@ -240,18 +268,26 @@
 	public void indexAll(IProject project) {
 		if (CCorePlugin.getDefault() == null) return;
 	
-		// check if the same request is not already in the queue
-		IndexRequest request = new IndexAllProject(project, this);
-		for (int i = this.jobEnd; i > this.jobStart; i--) // NB: don't check job at jobStart, as it may have already started (see http://bugs.eclipse.org/bugs/show_bug.cgi?id=32488)
-			if (request.equals(this.awaitingJobs[i])) return;
-		this.request(request);
+		//check to see if indexing isEnabled for this project
+		boolean indexEnabled = isIndexEnabled(project);
+	
+		if (indexEnabled){
+			// check if the same request is not already in the queue
+			IndexRequest request = new IndexAllProject(project, this);
+			for (int i = this.jobEnd; i > this.jobStart; i--) // NB: don't check job at jobStart, as it may have already started (see http://bugs.eclipse.org/bugs/show_bug.cgi?id=32488)
+				if (request.equals(this.awaitingJobs[i])) return;
+			this.request(request);
+		}
 	}
 	/**
 	 * Index the content of the given source folder.
 	 */
 	public void indexSourceFolder(CProject javaProject, IPath sourceFolder, final char[][] exclusionPattern) {
 		IProject project = javaProject.getProject();
-
+		
+		if( !isIndexEnabled( project ) )
+					return;
+					
 		if (this.jobEnd > this.jobStart) {
 			// check if a job to index the project is not already in the queue
 			IndexRequest request = new IndexAllProject(project, this);
@@ -308,7 +344,8 @@
 		IndexRequest request = null;
 		if (target instanceof IProject) {
 			IProject p = (IProject) target;
-			request = new IndexAllProject(p, this);
+			if( p.exists() && isIndexEnabled( p ) )
+				request = new IndexAllProject(p, this);
 		}
 	
 		if (request != null)
@@ -347,7 +384,10 @@
 	 * Note: the actual operation is performed in background
 	 */
 	public void remove(String resourceName, IPath indexedContainer){
-		request(new RemoveFromIndex(resourceName, indexedContainer, this));
+		IProject project = CCorePlugin.getWorkspace().getRoot().getProject(indexedContainer.toString());
+		
+		if( isIndexEnabled( project ) )
+			request(new RemoveFromIndex(resourceName, indexedContainer, this));
 	}
 	/**
 	 * Removes the index for a given path. 
@@ -390,7 +430,10 @@
 	 */
 	public void removeSourceFolderFromIndex(CProject javaProject, IPath sourceFolder, char[][] exclusionPatterns) {
 		IProject project = javaProject.getProject();
-	
+		
+		if( !isIndexEnabled( project ) )
+			return;
+			
 		if (this.jobEnd > this.jobStart) {
 			// check if a job to index the project is not already in the queue
 			IndexRequest request = new IndexAllProject(project, this);
@@ -573,4 +616,60 @@
 			JobManager.verbose("-> index state updated to: " + state + " for: "+indexName); //$NON-NLS-1$ //$NON-NLS-2$
 		}
 	}	
+	
+	/**
+		 * @param project
+		 * @return
+		 */
+		public boolean isIndexEnabled(IProject project) {
+			if( project == null || !project.exists() || !project.isOpen() )
+				return false;
+		
+			Boolean indexValue = null;
+		
+			try {
+				indexValue = (Boolean) project.getSessionProperty(activationKey);
+			} catch (CoreException e) {
+			}
+		
+			if (indexValue != null)
+				return indexValue.booleanValue();
+		
+			try {
+				//Load value for project
+				indexValue = loadIndexerEnabledFromCDescriptor(project);
+				if (indexValue != null){
+					project.setSessionProperty(IndexManager.activationKey, indexValue);
+					return indexValue.booleanValue();
+				}
+			
+//				TODO: Indexer Block Place holder for Managed Make - take out
+				indexValue = new Boolean(true);
+				project.setSessionProperty(IndexManager.activationKey, indexValue);
+				return indexValue.booleanValue();
+			} catch (CoreException e1) {
+			}
+		
+			return false;
+		}
+		
+	private Boolean loadIndexerEnabledFromCDescriptor(IProject project) throws CoreException {
+		// Check if we have the property in the descriptor
+		// We pass false since we do not want to create the descriptor if it does not exists.
+		ICDescriptor descriptor = CCorePlugin.getDefault().getCProjectDescription(project);
+		Boolean strBool = null;
+		if (descriptor != null) {
+			Node child = descriptor.getProjectData(CDT_INDEXER).getFirstChild();
+		
+			while (child != null) {
+				if (child.getNodeName().equals(INDEXER_ENABLED)) 
+					strBool = Boolean.valueOf(((Element)child).getAttribute(INDEXER_VALUE));
+			
+			
+				child = child.getNextSibling();
+			}
+		}
+		
+		return strBool;
+	}
 }
diff --git a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexRequest.java b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexRequest.java
index 96aab0b..9014671 100644
--- a/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexRequest.java
+++ b/core/org.eclipse.cdt.core/index/org/eclipse/cdt/internal/core/search/indexing/IndexRequest.java
@@ -13,9 +13,11 @@
 
 import java.io.IOException;
 
-import org.eclipse.cdt.internal.core.search.processing.IJob;
-import org.eclipse.core.runtime.IPath;
+import org.eclipse.cdt.core.CCorePlugin;
 import org.eclipse.cdt.internal.core.index.IIndex;
+import org.eclipse.cdt.internal.core.search.processing.IJob;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.runtime.IPath;
 
 public abstract class IndexRequest implements IJob {
 	protected boolean isCancelled = false;
@@ -37,6 +39,10 @@
 	}
 	
 	public boolean isReadyToRun() {
+		IProject project = CCorePlugin.getWorkspace().getRoot().getProject(indexPath.segment(0));
+		if ( !project.isAccessible() || !this.manager.isIndexEnabled( project ) )
+			return false;
+			
 		// tag the index as inconsistent
 		this.manager.aboutToUpdateIndex(indexPath, updatedIndexState());
 		return true;
diff --git a/core/org.eclipse.cdt.ui/ChangeLog b/core/org.eclipse.cdt.ui/ChangeLog
index 1945c77..7586e28 100644
--- a/core/org.eclipse.cdt.ui/ChangeLog
+++ b/core/org.eclipse.cdt.ui/ChangeLog
@@ -1,3 +1,14 @@
+2004-12-07 Bogdan Gheorghe
+	
+	Added Index Enablement block
+	
+	* src/org/eclipse/cdt/ui/dialogs/IndexerBlock.java
+	* src/org/eclipse/cdt/ui/dialogs/IndexerOptionDialogPage.java
+	* src/org/eclipse/cdt/ui/dialogs/IndexerOptionPropertyPage.java
+	* src/org/eclipse/cdt/internal/ui/CUIMessages.properties
+	* plugin.properties
+	* plugin.xml
+	
 2004-05-31 Alain Magloire
 
 	Thomas patch dealing with memory leaks.
diff --git a/core/org.eclipse.cdt.ui/plugin.properties b/core/org.eclipse.cdt.ui/plugin.properties
index 98bde04..dea4467 100644
--- a/core/org.eclipse.cdt.ui/plugin.properties
+++ b/core/org.eclipse.cdt.ui/plugin.properties
@@ -94,3 +94,5 @@
 # Menus
 searchMenu.label= Se&arch
  
+# Indexer
+CDTIndexerProperty.name=C/C++ Indexer
\ No newline at end of file
diff --git a/core/org.eclipse.cdt.ui/plugin.xml b/core/org.eclipse.cdt.ui/plugin.xml
index a2bc0c1..4d52343 100644
--- a/core/org.eclipse.cdt.ui/plugin.xml
+++ b/core/org.eclipse.cdt.ui/plugin.xml
@@ -27,9 +27,9 @@
    <extension-point id="CElementFilters" name="%elementFiltersName"/>
    <extension-point id="BinaryParserPage" name="Binary Parser Page"/>
 <!-- =========================================================================== -->
-<!-- Extension point: org.eclipse.cdt.ui.textHovers                        -->
-<!-- Purpose: Provide a perspective specific text hovering for CEditor files     -->
 <!-- Extension Implementation: must implement org.eclipse.jface.text.ITextHover  -->
+<!-- Purpose: Provide a perspective specific text hovering for CEditor files     -->
+<!-- Extension point: org.eclipse.cdt.ui.textHovers                        -->
 <!-- =========================================================================== -->
    <extension-point id="textHovers" name="%textHoversName"/>
 
@@ -130,8 +130,8 @@
             id="org.eclipse.cdt.ui.CView">
       </view>
    </extension>
-<!-- For C Wizards -->
 <!-- The wizards -->
+<!-- For C Wizards -->
    <extension
          point="org.eclipse.ui.newWizards">
       <category
@@ -483,5 +483,14 @@
             id="ElfBinaryParserPage">
       </parserPage>
    </extension>
+   <extension
+         point="org.eclipse.ui.propertyPages">
+      <page
+            objectClass="org.eclipse.core.resources.IProject"
+            name="%CDTIndexerProperty.name"
+            class="org.eclipse.cdt.ui.dialogs.IndexerOptionPropertyPage"
+            id="org.eclipse.cdt.ui.indexer">
+      </page>
+   </extension>
 
 </plugin>
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CUIMessages.properties b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CUIMessages.properties
index e7ae383..5730435 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CUIMessages.properties
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/internal/ui/CUIMessages.properties
@@ -12,3 +12,7 @@
 Drag.move.problem.title=Drag and Drop Problem
 Drag.move.problem.message={0} is read only. Do you still wish to delete it?
 ExceptionDialog.seeErrorLogMessage=See error log for more details.
+
+IndexerOptions.indexer = C/C++ Indexer
+IndexerOptions.enableIndexing = Enable C/C++ &Indexing
+
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionDialogPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionDialogPage.java
index ef2afe8..ee6d9ec 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionDialogPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionDialogPage.java
@@ -66,15 +66,6 @@
 
 		indexerEnabled = createCheckButton(group, ENABLE_INDEXING );
 		
-		Group problemsGroup = new Group(result, SWT.NONE );
-		problemsGroup.setLayout(new GridLayout());
-		problemsGroup.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
-		problemsGroup.setText( INDEXER_PROBLEMS );
-		
-		preprocessorProblemsEnabled = createCheckButton( problemsGroup, ENABLE_PREPROCESSOR_PROBLEMS );
-		semanticProblemsEnabled = createCheckButton( problemsGroup, ENABLE_SEMANTIC_PROBLEMS );
-		//uncomment when we want to report syntax problems
-		syntacticProblemsEnabled = createCheckButton( problemsGroup, ENABLE_SYNTACTIC_PROBLEMS );
 		setControl(result);
 	}
 	
@@ -95,26 +86,11 @@
 	public void setIndexerValue(boolean value){
 		indexerEnabled.setSelection(value);
 	}
-	
-	public void setIndexerProblemValues( int value ){
-		preprocessorProblemsEnabled.setSelection( (value & IndexManager.PREPROCESSOR_PROBLEMS_BIT) != 0 );
-		if( syntacticProblemsEnabled != null ) 
-			syntacticProblemsEnabled.setSelection( (value & IndexManager.SYNTACTIC_PROBLEMS_BIT) != 0 );
-		semanticProblemsEnabled.setSelection( (value & IndexManager.SEMANTIC_PROBLEMS_BIT) != 0 );
-	}
-	
+		
 	public boolean getIndexerValue(){
 		return indexerEnabled.getSelection();
 	}
 	
-	public int getIndexerProblemsValues(){
-		int result = 0;
-		result |= preprocessorProblemsEnabled.getSelection() ? IndexManager.PREPROCESSOR_PROBLEMS_BIT : 0;
-		if( syntacticProblemsEnabled != null )
-			result |= syntacticProblemsEnabled.getSelection() ? IndexManager.SYNTACTIC_PROBLEMS_BIT : 0;
-		result |= semanticProblemsEnabled.getSelection() ? IndexManager.SEMANTIC_PROBLEMS_BIT : 0;
-		return result;
-	}
 	
 	public void persistIndexerValues(IProject project){
 		ICDescriptor descriptor = null;
@@ -123,7 +99,7 @@
 		
 		try {
 			newProject = project;
-			descriptor = CCorePlugin.getDefault().getCProjectDescription(newProject, true);
+			descriptor = CCorePlugin.getDefault().getCProjectDescription(newProject);
 			rootElement = descriptor.getProjectData(IndexManager.CDT_INDEXER);
 		
 			// Clear out all current children
@@ -135,17 +111,14 @@
 			Document doc = rootElement.getOwnerDocument();
 	
 			boolean indexProject = getIndexerValue();
-			int problemValues = getIndexerProblemsValues();
 					
 			saveIndexerEnabled(indexProject, rootElement, doc);
-			saveIndexerProblemsEnabled( problemValues, rootElement, doc );
 			
 			descriptor.saveProjectData();
 			
 			//Update project session property
 			
 			project.setSessionProperty(IndexManager.activationKey,new Boolean(indexProject));
-			project.setSessionProperty(IndexManager.problemsActivationKey, new Integer( problemValues ));	
 	
 		} catch (CoreException e) {
 			e.printStackTrace();
@@ -161,12 +134,5 @@
 		rootElement.appendChild(indexEnabled);
 
 	}
-	private static void saveIndexerProblemsEnabled ( int problemValues, Element rootElement, Document doc ) {
-		
-		Element enabled = doc.createElement(IndexManager.INDEXER_PROBLEMS_ENABLED);
-		Integer tempValue= new Integer( problemValues );
-		
-		enabled.setAttribute(IndexManager.INDEXER_PROBLEMS_VALUE, tempValue.toString());
-		rootElement.appendChild(enabled);
-	}
+
 }
diff --git a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionPropertyPage.java b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionPropertyPage.java
index f715051..fabf1d1 100644
--- a/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionPropertyPage.java
+++ b/core/org.eclipse.cdt.ui/src/org/eclipse/cdt/ui/dialogs/IndexerOptionPropertyPage.java
@@ -14,7 +14,6 @@
 import org.eclipse.cdt.core.CCorePlugin;
 import org.eclipse.cdt.core.ICDescriptor;
 import org.eclipse.cdt.internal.core.search.indexing.IndexManager;
-import org.eclipse.cdt.internal.ui.ICHelpContextIds;
 import org.eclipse.core.resources.IProject;
 import org.eclipse.core.runtime.CoreException;
 import org.eclipse.swt.SWT;
@@ -22,7 +21,6 @@
 import org.eclipse.swt.widgets.Composite;
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.ui.dialogs.PropertyPage;
-import org.eclipse.ui.help.WorkbenchHelp;
 import org.w3c.dom.Element;
 import org.w3c.dom.Node;
 
@@ -47,7 +45,7 @@
 		composite.setLayout(new FillLayout());
 
 		optionPage.createControl(composite);
-		WorkbenchHelp.setHelp(composite, ICHelpContextIds.PROJECT_INDEXER_PROPERTIES);	
+		//WorkbenchHelp.setHelp(composite, ICHelpContextIds.PROJECT_INDEXER_PROPERTIES);	
 		initialize();
 		
 		return composite;
@@ -64,13 +62,11 @@
 		
 		try {
 			oldIndexerValue = getIndexerEnabled(project);
-			oldIndexerProblemsValue = getIndexerProblemsEnabled( project );
 		} catch (CoreException e) {
 			e.printStackTrace();
 		}
 		
 		optionPage.setIndexerValue(oldIndexerValue);
-		optionPage.setIndexerProblemValues( oldIndexerProblemsValue );
 	}
 	
 	/*
@@ -79,18 +75,14 @@
 	public boolean performOk() {
 	
 		boolean newIndexerValue = optionPage.getIndexerValue();
-		int newIndexerProblemsValue = optionPage.getIndexerProblemsValues();
 		
 		boolean indexChanged = (oldIndexerValue != newIndexerValue);
-		boolean problemsChanged = (oldIndexerProblemsValue != newIndexerProblemsValue );
 		
-		if ( indexChanged || problemsChanged){
+		if ( indexChanged ){
 			//persist new values
 			IProject tempProject = getProject();
 			optionPage.persistIndexerValues(tempProject);
 		
-			if( problemsChanged && newIndexerProblemsValue == 0)
-				CCorePlugin.getDefault().getCoreModel().getIndexManager().removeIndexerProblems(tempProject);
 						
 			//if indexer is now on send a index all request 
 			if( indexChanged && newIndexerValue && !requestedIndexAll ) {
@@ -137,29 +129,6 @@
 		return indexValue.booleanValue();
 	}
 	
-	public int getIndexerProblemsEnabled( IProject project ) throws CoreException 
-	{		
-		// See if there's already one associated with the resource for this session
-		 Integer value = (Integer) project.getSessionProperty( IndexManager.problemsActivationKey );
-
-		// Try to load one for the project
-		if (value == null) {
-			value = loadIndexerProblemsEnabledFromCDescriptor(project);
-		}
-	
-		// There is nothing persisted for the session, or saved in a file so
-		// create a build info object
-		if (value != null) {
-			project.setSessionProperty(IndexManager.problemsActivationKey, value);
-		} else {
-			//Hmm, no persisted indexer value. Could be an old project - set all to false and persist
-			value = new Integer( 0 );
-			optionPage.setIndexerProblemValues( 0 );
-			optionPage.persistIndexerValues(project);
-		}
-		
-		return value.intValue();
-	}
 	/**
 	 * Loads dis from .cdtproject file
 	 * @param project
@@ -168,7 +137,7 @@
 	 * @throws CoreException
 	 */
 	private Boolean loadIndexerEnabledFromCDescriptor(IProject project) throws CoreException {
-		ICDescriptor descriptor = CCorePlugin.getDefault().getCProjectDescription(project, true);
+		ICDescriptor descriptor = CCorePlugin.getDefault().getCProjectDescription(project);
 		
 		Node child = descriptor.getProjectData(IndexManager.CDT_INDEXER).getFirstChild();
 		Boolean strBool = null;
@@ -184,32 +153,5 @@
 		return strBool;
 	}
 	
-	private Integer loadIndexerProblemsEnabledFromCDescriptor( IProject project ) throws CoreException
-	{
-		ICDescriptor descriptor = CCorePlugin.getDefault().getCProjectDescription(project, true);
-		
-		Node child = descriptor.getProjectData(IndexManager.CDT_INDEXER).getFirstChild();
-		Integer strInt = null;
-		
-		while (child != null) {
-			if (child.getNodeName().equals(IndexManager.INDEXER_PROBLEMS_ENABLED)) {
-				String val = ((Element)child).getAttribute(IndexManager.INDEXER_PROBLEMS_VALUE);
-				try{
-					strInt = Integer.valueOf( val );
-				} catch( NumberFormatException e ){
-					//some old projects might have a boolean stored, translate that into just preprocessors
-					Boolean bool = Boolean.valueOf( val );
-					if( bool.booleanValue() )
-						strInt = new Integer( IndexManager.PREPROCESSOR_PROBLEMS_BIT );
-					else 
-						strInt = new Integer( 0 );
-				}
-				break;
-			}
-			
-			child = child.getNextSibling();
-		}
-		return strInt;
-	}
 	
-}
+}
\ No newline at end of file