diff --git a/python/src/com/jetbrains/python/console/PyConsoleOptions.java b/python/src/com/jetbrains/python/console/PyConsoleOptions.java index c94d3a81c4e1..b9ae036c440c 100644 --- a/python/src/com/jetbrains/python/console/PyConsoleOptions.java +++ b/python/src/com/jetbrains/python/console/PyConsoleOptions.java @@ -61,6 +61,14 @@ public class PyConsoleOptions implements PersistentStateComponent - + @@ -13,7 +13,7 @@ - + @@ -34,7 +34,7 @@ - + @@ -53,6 +53,14 @@ + + + + + + + + diff --git a/python/src/com/jetbrains/python/console/PyConsoleOptionsConfigurable.java b/python/src/com/jetbrains/python/console/PyConsoleOptionsConfigurable.java index ce589522246a..436b70c278af 100644 --- a/python/src/com/jetbrains/python/console/PyConsoleOptionsConfigurable.java +++ b/python/src/com/jetbrains/python/console/PyConsoleOptionsConfigurable.java @@ -163,6 +163,7 @@ public class PyConsoleOptionsConfigurable extends SearchableConfigurable.Parent. private JBCheckBox myShowDebugConsoleByDefault; private JBCheckBox myIpythonEnabledCheckbox; private JBCheckBox myShowsVariablesByDefault; + private JBCheckBox myUseExistingConsole; private PyConsoleOptions myOptionsProvider; public JPanel createPanel(PyConsoleOptions optionsProvider) { @@ -173,20 +174,23 @@ public class PyConsoleOptionsConfigurable extends SearchableConfigurable.Parent. public void apply() { myOptionsProvider.setShowDebugConsoleByDefault(myShowDebugConsoleByDefault.isSelected()); - myOptionsProvider.setShowVariablesByDefault(myShowsVariablesByDefault.isSelected()); myOptionsProvider.setIpythonEnabled(myIpythonEnabledCheckbox.isSelected()); + myOptionsProvider.setShowVariablesByDefault(myShowsVariablesByDefault.isSelected()); + myOptionsProvider.setUseExistingConsole(myUseExistingConsole.isSelected()); } public void reset() { myShowDebugConsoleByDefault.setSelected(myOptionsProvider.isShowDebugConsoleByDefault()); - myShowsVariablesByDefault.setSelected(myOptionsProvider.isShowVariableByDefault()); myIpythonEnabledCheckbox.setSelected(myOptionsProvider.isIpythonEnabled()); + myShowsVariablesByDefault.setSelected(myOptionsProvider.isShowVariableByDefault()); + myUseExistingConsole.setSelected(myOptionsProvider.isUseExistingConsole()); } public boolean isModified() { return myShowDebugConsoleByDefault.isSelected() != myOptionsProvider.isShowDebugConsoleByDefault() || myIpythonEnabledCheckbox.isSelected() != myOptionsProvider.isIpythonEnabled() || - myShowsVariablesByDefault.isSelected() != myOptionsProvider.isShowVariableByDefault(); + myShowsVariablesByDefault.isSelected() != myOptionsProvider.isShowVariableByDefault() || + myUseExistingConsole.isSelected() != myOptionsProvider.isUseExistingConsole(); } } diff --git a/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java b/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java index a05efd19a1a6..8381b4022494 100644 --- a/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java +++ b/python/src/com/jetbrains/python/run/PythonScriptCommandLineState.java @@ -91,7 +91,8 @@ public class PythonScriptCommandLineState extends PythonCommandLineState { } final String runFileText = buildScriptWithConsoleRun(); - if (PyExecuteSelectionAction.canFindConsole(project, myConfig.getSdkHome())) { + final boolean useExistingConsole = PyConsoleOptions.getInstance(project).isUseExistingConsole(); + if (useExistingConsole && PyExecuteSelectionAction.canFindConsole(project, myConfig.getSdkHome())) { // there are existing consoles, don't care about Rerun action PyExecuteSelectionAction.selectConsoleAndExecuteCode(project, runFileText); }