IDEA-195072 Make 'Open in new tab' option always visible

This commit is contained in:
Vassiliy.Kudryashov
2018-07-05 01:46:52 +03:00
parent d157a3f2b4
commit b1e6a41998
5 changed files with 25 additions and 42 deletions
@@ -83,7 +83,6 @@ public class FindModel extends UserDataHolderBase implements Cloneable {
private boolean isReplaceAll;
private boolean isOpenNewTab;
private boolean isOpenInNewTabEnabled;
private boolean isOpenNewTabVisible;
private boolean isProjectScope = true;
private boolean isFindAll;
private boolean isFindAllEnabled;
@@ -156,7 +155,6 @@ public class FindModel extends UserDataHolderBase implements Cloneable {
isReplaceAll = model.isReplaceAll;
isOpenNewTab = model.isOpenNewTab;
isOpenInNewTabEnabled = model.isOpenInNewTabEnabled;
isOpenNewTabVisible = model.isOpenNewTabVisible;
isProjectScope = model.isProjectScope;
directoryName = model.directoryName;
isWithSubdirectories = model.isWithSubdirectories;
@@ -195,7 +193,6 @@ public class FindModel extends UserDataHolderBase implements Cloneable {
if (isMultipleFiles != findModel.isMultipleFiles) return false;
if (isOpenInNewTabEnabled != findModel.isOpenInNewTabEnabled) return false;
if (isOpenNewTab != findModel.isOpenNewTab) return false;
if (isOpenNewTabVisible != findModel.isOpenNewTabVisible) return false;
if (isPreserveCase != findModel.isPreserveCase) return false;
if (isProjectScope != findModel.isProjectScope) return false;
if (isPromptOnReplace != findModel.isPromptOnReplace) return false;
@@ -238,7 +235,6 @@ public class FindModel extends UserDataHolderBase implements Cloneable {
result = 31 * result + (isReplaceAll ? 1 : 0);
result = 31 * result + (isOpenNewTab ? 1 : 0);
result = 31 * result + (isOpenInNewTabEnabled ? 1 : 0);
result = 31 * result + (isOpenNewTabVisible ? 1 : 0);
result = 31 * result + (isProjectScope ? 1 : 0);
result = 31 * result + (isFindAll ? 1 : 0);
result = 31 * result + (isFindAllEnabled ? 1 : 0);
@@ -566,25 +562,16 @@ public class FindModel extends UserDataHolderBase implements Cloneable {
}
/**
* Gets the value indicating whether the Open in New Tab flag is visible for the operation.
*
* @return true if Open in New Tab is visible, false otherwise.
* @deprecated and not used anymore
*/
public boolean isOpenInNewTabVisible() {
return isOpenNewTabVisible;
return true;
}
/**
* Sets the value indicating whether the Open in New Tab flag is enabled for the operation.
*
* @param showInNewTabVisible true if Open in New Tab is visible, false otherwise.
* @deprecated and not used anymore
*/
public void setOpenInNewTabVisible(boolean showInNewTabVisible) {
boolean changed = showInNewTabVisible != isOpenNewTabVisible;
isOpenNewTabVisible = showInNewTabVisible;
if (changed) {
notifyObservers();
}
}
/**
@@ -687,7 +674,6 @@ public class FindModel extends UserDataHolderBase implements Cloneable {
"isReplaceAll =" + isReplaceAll + "\n" +
"isOpenNewTab =" + isOpenNewTab + "\n" +
"isOpenInNewTabEnabled =" + isOpenInNewTabEnabled + "\n" +
"isOpenNewTabVisible =" + isOpenNewTabVisible + "\n" +
"isProjectScope =" + isProjectScope + "\n" +
"directoryName =" + directoryName + "\n" +
"isWithSubdirectories =" + isWithSubdirectories + "\n" +
@@ -67,11 +67,11 @@ public class FindInProjectManager {
final FindModel findModel;
if (model != null) {
findModel = model.clone();
findModel.setOpenInNewTabEnabled(isOpenInNewTabEnabled);
}
else {
findModel = findManager.getFindInProjectModel().clone();
findModel.setReplaceState(false);
findModel.setOpenInNewTabVisible(true);
findModel.setOpenInNewTabEnabled(isOpenInNewTabEnabled);
findModel.setOpenInNewTab(toOpenInNewTab);
initModel(findModel, dataContext);
@@ -87,12 +87,10 @@ public class FindInProjectManager {
}
public void findInPath(@NotNull FindModel findModel) {
findModel.setOpenInNewTabVisible(false);
if (findModel.isOpenInNewTabEnabled()) {
FindSettings.getInstance().setShowResultsInSeparateView(findModel.isOpenInNewTab());
}
startFindInProject(findModel);
findModel.setOpenInNewTabVisible(false);
}
@SuppressWarnings("WeakerAccess")
@@ -651,16 +651,14 @@ public class FindDialog extends DialogWrapper implements FindUI {
topOptionsPanel.add(leftOptionsPanel);
}
if (myHelper.getModel().isOpenInNewTabVisible()){
myCbToOpenInNewTab = new JCheckBox(FindBundle.message("find.open.in.new.tab.checkbox"));
myCbToOpenInNewTab.setFocusable(false);
myCbToOpenInNewTab.setSelected(myHelper.isUseSeparateView());
myCbToOpenInNewTab.setEnabled(myHelper.getModel().isOpenInNewTabEnabled());
myCbToOpenInNewTab.addActionListener(e -> myHelper.setUseSeparateView(myCbToOpenInNewTab.isSelected()));
myCbToOpenInNewTab = new JCheckBox(FindBundle.message("find.open.in.new.tab.checkbox"));
myCbToOpenInNewTab.setFocusable(false);
myCbToOpenInNewTab.setSelected(myHelper.isUseSeparateView());
myCbToOpenInNewTab.setEnabled(myHelper.getModel().isOpenInNewTabEnabled());
myCbToOpenInNewTab.addActionListener(e -> myHelper.setUseSeparateView(myCbToOpenInNewTab.isSelected()));
if (resultsOptionPanel == null) resultsOptionPanel = createResultsOptionPanel(optionsPanel, gbConstraints);
resultsOptionPanel.add(myCbToOpenInNewTab);
}
if (resultsOptionPanel == null) resultsOptionPanel = createResultsOptionPanel(optionsPanel, gbConstraints);
resultsOptionPanel.add(myCbToOpenInNewTab);
if (myPreviewSplitter != null) {
TabbedPane pane = new JBTabsPaneImpl(myProject, SwingConstants.TOP, myDisposable);
@@ -481,7 +481,7 @@ public class FindPopupPanel extends JBPanel implements FindUI {
public void update(@NotNull AnActionEvent e) {
super.update(e);
e.getPresentation().setEnabled(myHelper.getModel().isOpenInNewTabEnabled());
e.getPresentation().setVisible(myHelper.getModel().isOpenInNewTabVisible());
e.getPresentation().setVisible(true);
}
});
tabResultsContextGroup.setPopup(true);
@@ -124,22 +124,22 @@ public class ReplaceInProjectManager {
public void replaceInProject(@NotNull DataContext dataContext, @Nullable FindModel model) {
final FindManager findManager = FindManager.getInstance(myProject);
final FindModel findModel;
final boolean isOpenInNewTabEnabled;
final boolean toOpenInNewTab;
final Content selectedContent = com.intellij.usageView.UsageViewManager.getInstance(myProject).getSelectedContent(true);
if (selectedContent != null && selectedContent.isPinned()) {
toOpenInNewTab = true;
isOpenInNewTabEnabled = false;
}
else {
toOpenInNewTab = FindSettings.getInstance().isShowResultsInSeparateView();
isOpenInNewTabEnabled = com.intellij.usageView.UsageViewManager.getInstance(myProject).getReusableContentsCount() > 0;
}
if (model == null) {
final boolean isOpenInNewTabEnabled;
final boolean toOpenInNewTab;
final Content selectedContent = com.intellij.usageView.UsageViewManager.getInstance(myProject).getSelectedContent(true);
if (selectedContent != null && selectedContent.isPinned()) {
toOpenInNewTab = true;
isOpenInNewTabEnabled = false;
}
else {
toOpenInNewTab = FindSettings.getInstance().isShowResultsInSeparateView();
isOpenInNewTabEnabled = com.intellij.usageView.UsageViewManager.getInstance(myProject).getReusableContentsCount() > 0;
}
findModel = findManager.getFindInProjectModel().clone();
findModel.setReplaceState(true);
findModel.setOpenInNewTabVisible(true);
findModel.setOpenInNewTabEnabled(isOpenInNewTabEnabled);
findModel.setOpenInNewTab(toOpenInNewTab);
FindInProjectUtil.setDirectoryName(findModel, dataContext);
@@ -147,6 +147,7 @@ public class ReplaceInProjectManager {
}
else {
findModel = model;
findModel.setOpenInNewTabEnabled(isOpenInNewTabEnabled);
}
findManager.showFindDialog(findModel, () -> {