void (@NotNull RunnerAndConfigurationSettingsImpl settings, boolean isSnapshot) { final RunConfiguration runConfiguration = settings.getConfiguration(); List<BeforeRunTask<?>> tasks = ContainerUtil.copyList(myBeforeRunStepsPanel.getTasks()); RunnerAndConfigurationSettings settingsToApply = null; if (isSnapshot) { runConfiguration.setBeforeRunTasks(tasks); } else { RunManagerImpl runManager = settings.getManager(); runManager.setBeforeRunTasks(runConfiguration, tasks); settingsToApply = runManager.getSettings(runConfiguration); } if (settingsToApply == null) { settingsToApply = settings; } settingsToApply.setEditBeforeRun(myBeforeRunStepsPanel.needEditBeforeRun()); settingsToApply.setActivateToolWindowBeforeRun(myBeforeRunStepsPanel.needActivateToolWindowBeforeRun()); settingsToApply.setFocusToolWindowBeforeRun(myBeforeRunStepsPanel.needFocusToolWindowBeforeRun()); if (content.isAllowRunningInParallelCheckBox.isVisible()) { settings.getConfiguration().setAllowRunningInParallel(content.isAllowRunningInParallelCheckBox.isSelected()); } if (myRCStorageUi != null) { // editing a template run configuration myRCStorageUi.apply(settings); if (!isSnapshot) { myRCStorageUi.reset(settings); // to reset its internal state } } }