IDEA-98783 Remember "Open in new tab" setting of "Find in Path" dialog

This commit is contained in:
Maxim.Mossienko
2014-08-14 13:47:34 +02:00
parent 6ee52236f9
commit 140acbffcd
3 changed files with 19 additions and 6 deletions
@@ -128,4 +128,7 @@ public abstract class FindSettings{
public abstract boolean isExceptCommentsAndLiterals();
public abstract void setExceptCommentsAndLiterals(boolean selected);
public abstract boolean isShowResultsInSeparateView();
public abstract void setShowResultsInSeparateView(boolean selected);
}
@@ -40,7 +40,6 @@ import org.jetbrains.annotations.NotNull;
public class FindInProjectManager {
private final Project myProject;
private boolean myToOpenInNewTab = false;
private volatile boolean myIsFindInProgress = false;
public static FindInProjectManager getInstance(Project project) {
@@ -60,12 +59,12 @@ public class FindInProjectManager {
isOpenInNewTabEnabled = false;
}
else {
toOpenInNewTab[0] = myToOpenInNewTab;
toOpenInNewTab[0] = FindSettings.getInstance().isShowResultsInSeparateView();
isOpenInNewTabEnabled = UsageViewManager.getInstance(myProject).getReusableContentsCount() > 0;
}
final FindManager findManager = FindManager.getInstance(myProject);
final FindModel findModel = (FindModel) findManager.getFindInProjectModel().clone();
final FindModel findModel = findManager.getFindInProjectModel().clone();
findModel.setReplaceState(false);
findModel.setOpenInNewTabVisible(true);
findModel.setOpenInNewTabEnabled(isOpenInNewTabEnabled);
@@ -86,7 +85,7 @@ public class FindInProjectManager {
public void run() {
findModel.setOpenInNewTabVisible(false);
if (isOpenInNewTabEnabled) {
myToOpenInNewTab = toOpenInNewTab[0] = findModel.isOpenInNewTab();
FindSettings.getInstance().setShowResultsInSeparateView(toOpenInNewTab[0] = findModel.isOpenInNewTab());
}
startFindInProject(findModel);
@@ -107,8 +106,8 @@ public class FindInProjectManager {
if (manager == null) return;
final FindManager findManager = FindManager.getInstance(myProject);
findManager.getFindInProjectModel().copyFrom(findModel);
final FindModel findModelCopy = (FindModel)findModel.clone();
final UsageViewPresentation presentation = FindInProjectUtil.setupViewPresentation(myToOpenInNewTab, findModelCopy);
final FindModel findModelCopy = findModel.clone();
final UsageViewPresentation presentation = FindInProjectUtil.setupViewPresentation(FindSettings.getInstance().isShowResultsInSeparateView(), findModelCopy);
final boolean showPanelIfOnlyOneUsage = !FindSettings.getInstance().isSkipResultsWithOneUsage();
final FindUsagesProcessPresentation processPresentation = FindInProjectUtil.setupProcessPresentation(myProject, showPanelIfOnlyOneUsage, presentation);
@@ -110,6 +110,7 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom
@SuppressWarnings({"WeakerAccess"}) public boolean REGULAR_EXPRESSIONS = false;
@SuppressWarnings({"WeakerAccess"}) public boolean LOCAL_REGULAR_EXPRESSIONS = false;
@SuppressWarnings({"WeakerAccess"}) public boolean WITH_SUBDIRECTORIES = true;
@SuppressWarnings({"WeakerAccess"}) public boolean SHOW_RESULTS_IN_SEPARATE_VIEW = false;
@SuppressWarnings({"WeakerAccess"}) public String SEARCH_SCOPE = DEFAULT_SEARCH_SCOPE;
@SuppressWarnings({"WeakerAccess"}) public String FILE_MASK;
@@ -408,6 +409,16 @@ public class FindSettingsImpl extends FindSettings implements PersistentStateCom
EXCEPT_COMMENTS_AND_STRING_LITERALS = selected;
}
@Override
public boolean isShowResultsInSeparateView() {
return SHOW_RESULTS_IN_SEPARATE_VIEW;
}
@Override
public void setShowResultsInSeparateView(boolean optionValue) {
SHOW_RESULTS_IN_SEPARATE_VIEW = optionValue;
}
@Override
public boolean isExceptCommentsAndLiterals() {
return EXCEPT_COMMENTS_AND_STRING_LITERALS;