From d8a9e2eaf2c7e92c007ddc8088938eccb1a72424 Mon Sep 17 00:00:00 2001 From: Aleksey Pivovarov Date: Wed, 4 Oct 2017 13:00:36 +0300 Subject: [PATCH] vcs: do not use passed ChangeList directly in commit dialog It might be out of date, search for the corresponding list instead. follow-up: 30ef642a5cd80291ddc82908d02c5e6fd3741a94 --- .../ui/MultipleLocalChangeListsBrowser.java | 22 ++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) diff --git a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/MultipleLocalChangeListsBrowser.java b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/MultipleLocalChangeListsBrowser.java index 2a4c0a05246a..5fb74aa2494e 100644 --- a/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/MultipleLocalChangeListsBrowser.java +++ b/platform/vcs-impl/src/com/intellij/openapi/vcs/changes/ui/MultipleLocalChangeListsBrowser.java @@ -85,7 +85,7 @@ public class MultipleLocalChangeListsBrowser extends CommitDialogChangesBrowser init(); updateDisplayedChangeLists(); - setSelectedChangeList(myChangeList); + updateSelectedChangeList(myChangeList); } private void installChangeListListener() { @@ -174,6 +174,10 @@ public class MultipleLocalChangeListsBrowser extends CommitDialogChangesBrowser } public void setSelectedChangeList(@NotNull LocalChangeList list) { + myChangeListChooser.setSelectedChangeList(list); + } + + private void updateSelectedChangeList(@NotNull LocalChangeList list) { myChangeList = list; myChangeListChooser.setToolTipText(list.getName()); updateDisplayedChanges(); @@ -330,7 +334,7 @@ public class MultipleLocalChangeListsBrowser extends CommitDialogChangesBrowser if (e.getStateChange() == ItemEvent.SELECTED) { LocalChangeList changeList = (LocalChangeList)myChooser.getSelectedItem(); if (changeList != null) { - setSelectedChangeList(changeList); + updateSelectedChangeList(changeList); } } } @@ -352,7 +356,19 @@ public class MultipleLocalChangeListsBrowser extends CommitDialogChangesBrowser myChooser.setModel(new CollectionComboBoxModel<>(lists, currentList)); myChooser.setEnabled(lists.size() > 1); - setSelectedChangeList(currentList); + updateSelectedChangeList(currentList); + } + + public void setSelectedChangeList(@NotNull LocalChangeList list) { + ComboBoxModel model = myChooser.getModel(); + for (int i = 0; i < model.getSize(); i++) { + LocalChangeList element = model.getElementAt(i); + if (element.getName().equals(list.getName())) { + myChooser.setSelectedIndex(i); + updateSelectedChangeList(element); + return; + } + } } }