Merge remote-tracking branch 'origin/master'
authorKonstantin Bulenkov <kb@jetbrains.com>
Wed, 19 Oct 2016 12:26:02 +0000 (14:26 +0200)
committerKonstantin Bulenkov <kb@jetbrains.com>
Wed, 19 Oct 2016 12:26:02 +0000 (14:26 +0200)
platform/lang-impl/src/com/intellij/ide/projectView/impl/ProjectViewImpl.java
platform/platform-api/src/com/intellij/ui/tabs/impl/TabLabel.java

index a29b9b4d6c338a0598e226417c2fecc26cb27d32..a2dac56738a75294f2a8f492b681846e5bbd5c31 100644 (file)
@@ -532,11 +532,19 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo
         public void setSelected(AnActionEvent event, boolean flag) {
           final AbstractProjectViewPane viewPane = getCurrentProjectViewPane();
           final SelectionInfo selectionInfo = SelectionInfo.create(viewPane);
-
+          if (isGlobalOptions()) {
+            setFlattenPackages(flag, viewPane.getId());
+          }
           super.setSelected(event, flag);
 
           selectionInfo.apply(viewPane);
         }
+
+        @Override
+        public boolean isSelected(AnActionEvent event) {
+          if (isGlobalOptions()) return getGlobalOptions().getFlattenPackages();
+          return super.isSelected(event);
+        }
       }).setAsSecondary(true);
     }
 
@@ -549,6 +557,14 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo
         super(optionsMap, text, description, icon, optionDefaultValue);
       }
 
+      @Override
+      public void setSelected(AnActionEvent event, boolean flag) {
+        if (isGlobalOptions()) {
+          getGlobalOptions().setFlattenPackages(flag);
+        }
+        super.setSelected(event, flag);
+      }
+
       @Override
       public void update(AnActionEvent e) {
         super.update(e);
@@ -1376,8 +1392,12 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo
   public void setFlattenPackages(boolean flattenPackages, String paneId) {
     if (isGlobalOptions()) {
       getGlobalOptions().setFlattenPackages(flattenPackages);
+      for (String pane : myFlattenPackages.keySet()) {
+        setPaneOption(myFlattenPackages, flattenPackages, pane, true);
+      }
+    } else {
+      setPaneOption(myFlattenPackages, flattenPackages, paneId, true);
     }
-    setPaneOption(myFlattenPackages, flattenPackages, paneId, true);
   }
 
   public boolean isFoldersAlwaysOnTop() {
@@ -1477,8 +1497,12 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo
   public void setHideEmptyPackages(boolean hideEmptyPackages, @NotNull String paneId) {
     if (isGlobalOptions()) {
       getGlobalOptions().setHideEmptyPackages(hideEmptyPackages);
+      for (String pane : myHideEmptyPackages.keySet()) {
+        setPaneOption(myHideEmptyPackages, hideEmptyPackages, pane, true);
+      }
+    } else {
+      setPaneOption(myHideEmptyPackages, hideEmptyPackages, paneId, true);
     }
-    setPaneOption(myHideEmptyPackages, hideEmptyPackages, paneId, true);
   }
 
   @Override
@@ -1516,16 +1540,25 @@ public class ProjectViewImpl extends ProjectView implements PersistentStateCompo
       final AbstractProjectViewPane viewPane = getCurrentProjectViewPane();
       final SelectionInfo selectionInfo = SelectionInfo.create(viewPane);
 
+      if (isGlobalOptions()) {
+        getGlobalOptions().setHideEmptyPackages(flag);
+      }
       super.setSelected(event, flag);
 
       selectionInfo.apply(viewPane);
     }
 
+    @Override
+    public boolean isSelected(AnActionEvent event) {
+      if (isGlobalOptions()) return getGlobalOptions().getHideEmptyPackages();
+      return super.isSelected(event);
+    }
+
     @Override
     public void update(AnActionEvent e) {
       super.update(e);
       final Presentation presentation = e.getPresentation();
-      if (isFlattenPackages(myCurrentViewId)) {
+      if (isHideEmptyMiddlePackages(myCurrentViewId)) {
         presentation.setText(IdeBundle.message("action.hide.empty.middle.packages"));
         presentation.setDescription(IdeBundle.message("action.show.hide.empty.middle.packages"));
       }
index 796099c7057fc6bdf4be6ddcd4c18fab0bdc386b..aae8f0043f5f178d7a2274511e1ef9913b7a09eb 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright 2000-2015 JetBrains s.r.o.
+ * Copyright 2000-2016 JetBrains s.r.o.
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
  * you may not use this file except in compliance with the License.
@@ -31,6 +31,7 @@ import com.intellij.ui.tabs.UiDecorator;
 import com.intellij.ui.tabs.impl.table.TableLayout;
 import com.intellij.util.PairConsumer;
 import com.intellij.util.ui.Centerizer;
+import com.intellij.util.ui.JBUI;
 import com.intellij.util.ui.UIUtil;
 import com.intellij.util.ui.accessibility.ScreenReader;
 import org.jetbrains.annotations.Nullable;
@@ -204,9 +205,9 @@ public class TabLabel extends JPanel implements Accessible {
     };
     label.setOpaque(false);
     label.setBorder(null);
-    label.setIconTextGap(tabs.isEditorTabs() ? (!UISettings.getInstance().HIDE_TABS_IF_NEED ? 4 : 2) : new JLabel().getIconTextGap());
+    label.setIconTextGap(tabs.isEditorTabs() ? (!UISettings.getShadowInstance().HIDE_TABS_IF_NEED ? 4 : 2) : new JLabel().getIconTextGap());
     label.setIconOpaque(false);
-    label.setIpad(new Insets(0, 0, 0, 0));
+    label.setIpad(JBUI.emptyInsets());
 
     return label;
   }
@@ -214,7 +215,7 @@ public class TabLabel extends JPanel implements Accessible {
   @Override
   public Insets getInsets() {
     Insets insets = super.getInsets();
-    if (myTabs.isEditorTabs() && UISettings.getInstance().SHOW_CLOSE_BUTTON) {
+    if (myTabs.isEditorTabs() && UISettings.getShadowInstance().SHOW_CLOSE_BUTTON) {
         insets.right = 3;
     }
     return insets;
@@ -462,6 +463,10 @@ public class TabLabel extends JPanel implements Accessible {
   }
 
   public void apply(UiDecorator.UiDecoration decoration) {
+    if (decoration == null) {
+      return;
+    }
+
     if (decoration.getLabelFont() != null) {
       setFont(decoration.getLabelFont());
       getLabelComponent().setFont(decoration.getLabelFont());
@@ -671,23 +676,19 @@ public class TabLabel extends JPanel implements Accessible {
     @Override
     public String getAccessibleName() {
       String name = super.getAccessibleName();
-      if (name == null) {
-        if (myLabel instanceof Accessible){
+      if (name == null && myLabel != null) {
           name = myLabel.getAccessibleContext().getAccessibleName();
-        }
       }
       return name;
     }
 
     @Override
     public String getAccessibleDescription() {
-      String name = super.getAccessibleDescription();
-      if (name == null) {
-        if (myLabel instanceof Accessible){
-          name = myLabel.getAccessibleContext().getAccessibleDescription();
-        }
+      String description = super.getAccessibleDescription();
+      if (description == null && myLabel != null) {
+          description = myLabel.getAccessibleContext().getAccessibleDescription();
       }
-      return name;
+      return description;
     }
 
     @Override