diff --git org.eclipse.platform.doc.user/reference/ref-search.htm org.eclipse.platform.doc.user/reference/ref-search.htm
index 6edf36a..464e6ba 100644
--- org.eclipse.platform.doc.user/reference/ref-search.htm
+++ org.eclipse.platform.doc.user/reference/ref-search.htm
@@ -45,6 +45,16 @@ preference page allows you to set preferences for searches.
+ Focus on last used search page |
+
+ If disabled the best fitting search page is calculated (depending on
+ open editor, selection, ...) and focussed on whenever you open the
+ search dialog. If this option is enabled always the last used search
+ page will be used if the search dialog is opened. |
+ Off |
+
+
+
Ignore potential matches |
Select this option if you only want to see exact matches. |
diff --git org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDialog.java org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDialog.java
index fd12ea8..3442c6d 100644
--- org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDialog.java
+++ org.eclipse.search/search/org/eclipse/search/internal/ui/SearchDialog.java
@@ -90,6 +90,11 @@ import org.eclipse.search.ui.ISearchPageScoreComputer;
public class SearchDialog extends ExtendedDialogWindow implements ISearchPageContainer, IPageChangeProvider {
+ /**
+ * The id of the last search page that was opened in the search dialog
+ */
+ public static final String PREVIOUS_SEARCH_PAGE = "org.eclipse.search.previousSearchPageId"; //$NON-NLS-1$
+
private class TabFolderLayout extends Layout {
protected Point computeSize(Composite composite, int wHint, int hHint, boolean flushCache) {
if (wHint != SWT.DEFAULT && hHint != SWT.DEFAULT)
@@ -154,6 +159,14 @@ public class SearchDialog extends ExtendedDialogWindow implements ISearchPageCon
fDescriptors= filterByActivities(SearchPlugin.getDefault().getEnabledSearchPageDescriptors(pageId));
fInitialPageId= pageId;
+ boolean useLastUsedSearchPage= SearchPlugin.getDefault().getPreferenceStore().getBoolean(SearchPreferencePage.USE_LAST_USED_SEARCHPAGE);
+ // if fInitialPageId != null then a specific search page shall be opened directly
+ // In this case do not consider the preference at all
+ if (fInitialPageId == null && useLastUsedSearchPage) {
+ String lastPageId = SearchPlugin.getDefault().getPreferenceStore().getString(PREVIOUS_SEARCH_PAGE);
+ fInitialPageId = lastPageId;
+ }
+
fPageChangeListeners= null;
setUseEmbeddedProgressMonitorPart(false);
}
diff --git org.eclipse.search/search/org/eclipse/search/internal/ui/SearchMessages.java org.eclipse.search/search/org/eclipse/search/internal/ui/SearchMessages.java
index 2478aa4..1c7e552 100644
--- org.eclipse.search/search/org/eclipse/search/internal/ui/SearchMessages.java
+++ org.eclipse.search/search/org/eclipse/search/internal/ui/SearchMessages.java
@@ -185,6 +185,7 @@ public final class SearchMessages extends NLS {
public static String SearchPreferencePage_defaultPerspective;
public static String SearchPreferencePage_defaultPerspective_none;
public static String SearchPreferencePage_ignorePotentialMatches;
+ public static String SearchPreferencePage_useLastUsedSearchPage;
public static String ReplaceAction_label_all;
public static String ReplaceAction_label_selected;
public static String SelectAllAction_label;
diff --git org.eclipse.search/search/org/eclipse/search/internal/ui/SearchMessages.properties org.eclipse.search/search/org/eclipse/search/internal/ui/SearchMessages.properties
index eccd2fd..df26bf5 100644
--- org.eclipse.search/search/org/eclipse/search/internal/ui/SearchMessages.properties
+++ org.eclipse.search/search/org/eclipse/search/internal/ui/SearchMessages.properties
@@ -199,6 +199,7 @@ SearchPreferencePage_defaultPerspective= Default &perspective for the Search vie
SearchPreferencePage_textSearchEngine=Text Search Engine to be used:
SearchPreferencePage_defaultPerspective_none= None
SearchPreferencePage_ignorePotentialMatches= &Ignore potential matches
+SearchPreferencePage_useLastUsedSearchPage= &Focus on last used search page
ReplaceAction_label_all= Re&place All...
ReplaceAction_title_all=Replace Text Matches
diff --git org.eclipse.search/search/org/eclipse/search/internal/ui/SearchPreferencePage.java org.eclipse.search/search/org/eclipse/search/internal/ui/SearchPreferencePage.java
index 4062494..2123674 100644
--- org.eclipse.search/search/org/eclipse/search/internal/ui/SearchPreferencePage.java
+++ org.eclipse.search/search/org/eclipse/search/internal/ui/SearchPreferencePage.java
@@ -53,6 +53,11 @@ public class SearchPreferencePage extends FieldEditorPreferencePage implements I
public static final String TEXT_SEARCH_ENGINE = "org.eclipse.search.textSearchEngine"; //$NON-NLS-1$
public static final String TEXT_SEARCH_QUERY_PROVIDER = "org.eclipse.search.textSearchQueryProvider"; //$NON-NLS-1$
public static final String LIMIT_HISTORY= "org.eclipse.search.limitHistory"; //$NON-NLS-1$
+ /**
+ * Preference switch. If true
then the last used search page is opened when the search dialog is opened
+ * instead of the page that is calculated to fit best the current selection/editor/...
+ */
+ public static final String USE_LAST_USED_SEARCHPAGE= "org.eclipse.search.useLastUsedSearchPage"; //$NON-NLS-1$
private ColorFieldEditor fColorEditor;
private BooleanFieldEditor fEmphasizedCheckbox;
@@ -91,6 +96,7 @@ public class SearchPreferencePage extends FieldEditorPreferencePage implements I
store.setDefault(TEXT_SEARCH_ENGINE, ""); //default search engine is empty string //$NON-NLS-1$
store.setDefault(TEXT_SEARCH_QUERY_PROVIDER, ""); // default query provider is empty string //$NON-NLS-1$
store.setDefault(LIMIT_HISTORY, 10);
+ store.setDefault(USE_LAST_USED_SEARCHPAGE, false);
}
@@ -102,6 +108,7 @@ public class SearchPreferencePage extends FieldEditorPreferencePage implements I
protected void createFieldEditors() {
addField(new BooleanFieldEditor(REUSE_EDITOR, SearchMessages.SearchPreferencePage_reuseEditor, getFieldEditorParent()));
addField(new BooleanFieldEditor(BRING_VIEW_TO_FRONT, SearchMessages.SearchPreferencePage_bringToFront, getFieldEditorParent()));
+ addField(new BooleanFieldEditor(USE_LAST_USED_SEARCHPAGE, SearchMessages.SearchPreferencePage_useLastUsedSearchPage, getFieldEditorParent()));
fIgnorePotentialMatchesCheckbox= new BooleanFieldEditor(
IGNORE_POTENTIAL_MATCHES,