mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
should be able to not hide preview panel when user switched to non-layout file
This commit is contained in:
+22
-1
@@ -14,6 +14,7 @@ import com.android.sdklib.SdkConstants;
|
||||
import com.intellij.ide.ui.ListCellRendererWrapper;
|
||||
import com.intellij.openapi.Disposable;
|
||||
import com.intellij.openapi.actionSystem.*;
|
||||
import com.intellij.openapi.actionSystem.ex.CheckboxAction;
|
||||
import com.intellij.openapi.application.ApplicationManager;
|
||||
import com.intellij.openapi.module.Module;
|
||||
import com.intellij.openapi.module.ModuleUtil;
|
||||
@@ -244,6 +245,22 @@ class AndroidLayoutPreviewToolWindowForm implements Disposable {
|
||||
myActionToolBar = ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, actionGroup, true);
|
||||
myActionToolBar.setReservePlaceAutoPopupIcon(false);
|
||||
|
||||
final DefaultActionGroup optionsGroup = new DefaultActionGroup();
|
||||
final ActionToolbar optionsToolBar = ActionManager.getInstance().createActionToolbar(ActionPlaces.UNKNOWN, optionsGroup, true);
|
||||
optionsToolBar.setReservePlaceAutoPopupIcon(false);
|
||||
optionsToolBar.setSecondaryActionsTooltip("Options");
|
||||
optionsGroup.addAction(new CheckboxAction("Hide for non-layout files") {
|
||||
@Override
|
||||
public boolean isSelected(AnActionEvent e) {
|
||||
return mySettings.getState().isHideForNonLayoutFiles();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void setSelected(AnActionEvent e, boolean state) {
|
||||
mySettings.getState().setHideForNonLayoutFiles(state);
|
||||
}
|
||||
}).setAsSecondary(true);
|
||||
|
||||
gb.gridx = 0;
|
||||
gb.gridy++;
|
||||
final JComponent toolbar = myActionToolBar.getComponent();
|
||||
@@ -251,7 +268,11 @@ class AndroidLayoutPreviewToolWindowForm implements Disposable {
|
||||
toolBarWrapper.add(toolbar, BorderLayout.CENTER);
|
||||
toolBarWrapper.setPreferredSize(new Dimension(10, toolbar.getMinimumSize().height));
|
||||
toolBarWrapper.setMinimumSize(new Dimension(10, toolbar.getMinimumSize().height));
|
||||
myComboPanel.add(toolBarWrapper, gb);
|
||||
|
||||
final JPanel fullToolbarComponent = new JPanel(new BorderLayout());
|
||||
fullToolbarComponent.add(toolBarWrapper, BorderLayout.CENTER);
|
||||
fullToolbarComponent.add(optionsToolBar.getComponent(), BorderLayout.EAST);
|
||||
myComboPanel.add(fullToolbarComponent, gb);
|
||||
|
||||
gb.fill = GridBagConstraints.HORIZONTAL;
|
||||
myThemeCombo = new ComboBox();
|
||||
|
||||
+7
-4
@@ -175,7 +175,7 @@ public class AndroidLayoutPreviewToolWindowManager implements ProjectComponent {
|
||||
|
||||
((ToolWindowManagerEx)ToolWindowManager.getInstance(myProject)).addToolWindowManagerListener(new ToolWindowManagerAdapter() {
|
||||
private boolean myVisible = false;
|
||||
|
||||
|
||||
@Override
|
||||
public void stateChanged() {
|
||||
if (myProject.isDisposed()) {
|
||||
@@ -186,7 +186,7 @@ public class AndroidLayoutPreviewToolWindowManager implements ProjectComponent {
|
||||
if (window != null && window.isAvailable()) {
|
||||
final boolean visible = window.isVisible();
|
||||
AndroidLayoutPreviewToolWindowSettings.getInstance(myProject).getState().setVisible(visible);
|
||||
|
||||
|
||||
if (visible && !myVisible) {
|
||||
render();
|
||||
}
|
||||
@@ -243,16 +243,19 @@ public class AndroidLayoutPreviewToolWindowManager implements ProjectComponent {
|
||||
initToolWindow();
|
||||
}
|
||||
|
||||
final AndroidLayoutPreviewToolWindowSettings settings = AndroidLayoutPreviewToolWindowSettings.getInstance(myProject);
|
||||
final boolean hideForNonLayoutFiles = settings.getState().isHideForNonLayoutFiles();
|
||||
|
||||
if (activeEditor == null) {
|
||||
myToolWindowForm.setFile(null);
|
||||
myToolWindow.setAvailable(false, null);
|
||||
myToolWindow.setAvailable(!hideForNonLayoutFiles, null);
|
||||
return;
|
||||
}
|
||||
|
||||
final PsiFile psiFile = PsiDocumentManager.getInstance(myProject).getPsiFile(activeEditor.getDocument());
|
||||
if (psiFile == null) {
|
||||
myToolWindowForm.setFile(null);
|
||||
myToolWindow.setAvailable(false, null);
|
||||
myToolWindow.setAvailable(!hideForNonLayoutFiles, null);
|
||||
return;
|
||||
}
|
||||
|
||||
|
||||
+9
@@ -43,6 +43,7 @@ public class AndroidLayoutPreviewToolWindowSettings implements PersistentStateCo
|
||||
private String myLocaleLanguage;
|
||||
private String myLocaleRegion;
|
||||
private boolean myVisible = true;
|
||||
private boolean myHideForNonLayoutFiles = true;
|
||||
|
||||
public String getDevice() {
|
||||
return myDevice;
|
||||
@@ -115,5 +116,13 @@ public class AndroidLayoutPreviewToolWindowSettings implements PersistentStateCo
|
||||
public void setVisible(boolean visible) {
|
||||
myVisible = visible;
|
||||
}
|
||||
|
||||
public boolean isHideForNonLayoutFiles() {
|
||||
return myHideForNonLayoutFiles;
|
||||
}
|
||||
|
||||
public void setHideForNonLayoutFiles(boolean hideForNonLayoutFiles) {
|
||||
myHideForNonLayoutFiles = hideForNonLayoutFiles;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user