diff --git a/platform/lang-impl/src/com/intellij/application/options/CodeStyleAbstractPanel.java b/platform/lang-impl/src/com/intellij/application/options/CodeStyleAbstractPanel.java index 22a5b1646792..cb467e646318 100644 --- a/platform/lang-impl/src/com/intellij/application/options/CodeStyleAbstractPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/CodeStyleAbstractPanel.java @@ -620,5 +620,9 @@ public abstract class CodeStyleAbstractPanel implements Disposable { copyMenu.removeAll(); } } + + public boolean isCopyFromMenuAvailable() { + return false; + } } diff --git a/platform/lang-impl/src/com/intellij/application/options/TabbedLanguageCodeStylePanel.java b/platform/lang-impl/src/com/intellij/application/options/TabbedLanguageCodeStylePanel.java index b9686d105990..825f68742046 100644 --- a/platform/lang-impl/src/com/intellij/application/options/TabbedLanguageCodeStylePanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/TabbedLanguageCodeStylePanel.java @@ -476,7 +476,12 @@ public abstract class TabbedLanguageCodeStylePanel extends CodeStyleAbstractPane myConfigurable.reset(); } } - + + @Override + public boolean isCopyFromMenuAvailable() { + return true; + } + //======================================================================================================================================== private class MyIndentOptionsWrapper extends CodeStyleAbstractPanel { diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesPanel.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesPanel.java index c0fcbc095ae2..821eff38cc88 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/CodeStyleSchemesPanel.java @@ -317,11 +317,7 @@ public class CodeStyleSchemesPanel{ public void setCodeStyleSettingsPanel(NewCodeStyleSettingsPanel settingsPanel) { mySettingsPanel = settingsPanel; CodeStyleAbstractPanel selectedPanel = mySettingsPanel.getSelectedPanel(); - if (selectedPanel != null) { - initCopyFromMenu(); - selectedPanel.setupCopyFromMenu(myCopyFromMenu); - } - myCopyFromButton.setEnabled(myCopyFromMenu.getItemCount() > 0); + myCopyFromButton.setEnabled(selectedPanel != null && selectedPanel.isCopyFromMenuAvailable()); } private void onSettingsTypeChange() { @@ -344,6 +340,14 @@ public class CodeStyleSchemesPanel{ myCopyFromMenu = new PopupMenu(); myCopyFromButton.add(myCopyFromMenu); } + CodeStyleAbstractPanel selectedPanel = mySettingsPanel.getSelectedPanel(); + if (selectedPanel != null) { + selectedPanel.setupCopyFromMenu(myCopyFromMenu); + myCopyFromButton.setEnabled(myCopyFromMenu.getItemCount() > 0); + } + else { + myCopyFromButton.setEnabled(false); + } } }