diff --git a/platform/lang-impl/src/com/intellij/application/options/codeStyle/ManageCodeStyleSchemesDialog.java b/platform/lang-impl/src/com/intellij/application/options/codeStyle/ManageCodeStyleSchemesDialog.java index 67b99f1cc29c..670ea5743e90 100644 --- a/platform/lang-impl/src/com/intellij/application/options/codeStyle/ManageCodeStyleSchemesDialog.java +++ b/platform/lang-impl/src/com/intellij/application/options/codeStyle/ManageCodeStyleSchemesDialog.java @@ -479,7 +479,7 @@ public class ManageCodeStyleSchemesDialog extends DialogWrapper { for (CodeStyleScheme scheme : schemes) { names.add(scheme.getName()); } - SaveSchemeDialog saveDialog = new SaveSchemeDialog(myParent, ApplicationBundle.message("title.save.code.style.scheme.as"), names); + SaveSchemeDialog saveDialog = new SaveSchemeDialog(myParent, ApplicationBundle.message("title.save.code.style.scheme.as"), names, ""); saveDialog.show(); if (saveDialog.isOK()) { int row = mySchemesTableModel.createNewScheme(getSelectedScheme(), saveDialog.getSchemeName()); diff --git a/platform/lang-impl/src/com/intellij/application/options/colors/SchemesPanel.java b/platform/lang-impl/src/com/intellij/application/options/colors/SchemesPanel.java index e21f1dc9e73e..bcf6c4160aac 100644 --- a/platform/lang-impl/src/com/intellij/application/options/colors/SchemesPanel.java +++ b/platform/lang-impl/src/com/intellij/application/options/colors/SchemesPanel.java @@ -29,6 +29,8 @@ import com.intellij.openapi.extensions.Extensions; import com.intellij.openapi.options.SchemesManager; import com.intellij.util.Consumer; import com.intellij.util.EventDispatcher; +import com.intellij.util.containers.ContainerUtil; +import com.intellij.util.text.UniqueNameGenerator; import org.jetbrains.annotations.NotNull; import javax.swing.*; @@ -204,14 +206,18 @@ public class SchemesPanel extends JPanel implements SkipSelfSearchComponent { } private void showSaveAsDialog() { - ArrayList names = new ArrayList(); - EditorColorsScheme[] allSchemes = EditorColorsManager.getInstance().getAllSchemes(); + ComboBoxModel model = mySchemeComboBox.getModel(); - for (EditorColorsScheme scheme : allSchemes) { - names.add(scheme.getName()); + int size = model.getSize(); + ArrayList names = ContainerUtil.newArrayListWithCapacity(size); + for (int i = 0; i < size; i++) { + Object at = model.getElementAt(i); + if (at instanceof String) names.add((String)at); } - SaveSchemeDialog dialog = new SaveSchemeDialog(this, ApplicationBundle.message("title.save.color.scheme.as"), names); + String selectedName = myOptions.getSelectedScheme().getName(); + String defaultName = UniqueNameGenerator.generateUniqueName(selectedName + " copy", names); + SaveSchemeDialog dialog = new SaveSchemeDialog(this, ApplicationBundle.message("title.save.color.scheme.as"), names, defaultName); dialog.show(); if (dialog.isOK()) { myOptions.saveSchemeAs(dialog.getSchemeName()); diff --git a/platform/platform-impl/src/com/intellij/application/options/SaveSchemeDialog.java b/platform/platform-impl/src/com/intellij/application/options/SaveSchemeDialog.java index 5433b279d5e1..bf0c5b99ab6b 100644 --- a/platform/platform-impl/src/com/intellij/application/options/SaveSchemeDialog.java +++ b/platform/platform-impl/src/com/intellij/application/options/SaveSchemeDialog.java @@ -32,10 +32,11 @@ public class SaveSchemeDialog extends DialogWrapper { private final JTextField mySchemeName = new JTextField(); private final ArrayList myInvalidNames; - public SaveSchemeDialog(Component parent, String title, ArrayList invalidNames){ + public SaveSchemeDialog(Component parent, String title, ArrayList invalidNames, String selectedName){ super(parent, false); myInvalidNames = invalidNames; setTitle(title); + mySchemeName.setText(selectedName); init(); }