From a795a256f46e18bb9b6209d336f792f9370a66c4 Mon Sep 17 00:00:00 2001 From: Alexey Sedunov Date: Mon, 20 Mar 2017 16:44:23 +0300 Subject: [PATCH] Configuration: Fix behavior of "output directory" control Do not show file chooser twice. Disable/enable control on component initialization and change of "Use project settings" option #KT-16952 Fixed #KT-16953 Fixed --- .../KotlinCompilerConfigurableTab.java | 24 +++++++++---------- 1 file changed, 11 insertions(+), 13 deletions(-) diff --git a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java index da8a366ecb9..687cb891ac0 100644 --- a/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java +++ b/idea/src/org/jetbrains/kotlin/idea/compiler/configuration/KotlinCompilerConfigurableTab.java @@ -153,22 +153,10 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co "Choose Output Directory", false); - outputDirectory.addBrowseFolderListener( - "Choose Output Directory", - null, - project, - new FileChooserDescriptor(false, true, false, false, false, false), - TextComponentAccessor.TEXT_FIELD_WHOLE_TEXT, - false - ); - copyRuntimeFilesCheckBox.addChangeListener(new ChangeListener() { @Override public void stateChanged(@NotNull ChangeEvent e) { - if (isEnabled) { - outputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected()); - labelForOutputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected()); - } + updateOutputDirEnabled(); } }); @@ -207,6 +195,8 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co warningLabel.setText(buildOverridingModulesWarning(modulesOverridingProjectSettings)); } } + + updateOutputDirEnabled(); } @SuppressWarnings("unused") @@ -302,6 +292,13 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co return !StringUtil.equals(StringUtil.nullize(chooser.getText(), true), currentValue); } + private void updateOutputDirEnabled() { + if (isEnabled) { + outputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected()); + labelForOutputDirectory.setEnabled(copyRuntimeFilesCheckBox.isSelected()); + } + } + @SuppressWarnings("unchecked") private void restrictAPIVersions() { String selectedAPIVersion = getSelectedAPIVersion(); @@ -607,6 +604,7 @@ public class KotlinCompilerConfigurableTab implements SearchableConfigurable, Co public void setEnabled(boolean value) { isEnabled = value; UIUtil.setEnabled(getContentPane(), value, true); + updateOutputDirEnabled(); } public CommonCompilerArguments getCommonCompilerArguments() {