check for active VCSes lazily and prevent alarm with scopes view reloading during project view initialization (IDEA-168175)

This commit is contained in:
Anna.Kozlova
2017-03-02 18:30:06 +01:00
parent dfc3b84561
commit 57b2a5696a
3 changed files with 2 additions and 6 deletions
@@ -347,7 +347,7 @@ public class ScopeTreeViewPanel extends JPanel implements Disposable {
myTree.getEmptyText().setText("Loading...");
myActionCallback = new ActionCallback();
myTree.putClientProperty(TreeState.CALLBACK, new WeakReference<>(myActionCallback));
myTree.setModel(myBuilder.build(myProject, false, () -> {
myTree.setModel(myBuilder.build(myProject, true, () -> {
myTree.setPaintBusy(false);
myTree.getEmptyText().setText(UIBundle.message("message.nothingToShow"));
myActionCallback.setDone();
@@ -27,12 +27,10 @@ import com.intellij.openapi.actionSystem.ActionManager;
import com.intellij.openapi.actionSystem.ActionPlaces;
import com.intellij.openapi.actionSystem.DefaultActionGroup;
import com.intellij.openapi.actionSystem.IdeActions;
import com.intellij.openapi.application.ApplicationManager;
import com.intellij.openapi.project.Project;
import com.intellij.openapi.util.ActionCallback;
import com.intellij.openapi.util.Comparing;
import com.intellij.openapi.util.Disposer;
import com.intellij.openapi.vcs.ProjectLevelVcsManager;
import com.intellij.openapi.vfs.VirtualFile;
import com.intellij.packageDependencies.DependencyValidationManager;
import com.intellij.packageDependencies.ui.PackageDependenciesNode;
@@ -100,8 +98,6 @@ public class ScopeViewPane extends AbstractProjectViewPane {
};
myDependencyValidationManager.addScopeListener(myScopeListener);
myNamedScopeManager.addScopeListener(myScopeListener);
project.getMessageBus().connect().subscribe(ProjectLevelVcsManager.VCS_CONFIGURATION_CHANGED,
() -> ApplicationManager.getApplication().invokeLater(() -> myScopeListener.scopesChanged()));
}
@Override
@@ -48,7 +48,7 @@ public class ChangeListsScopesProvider extends CustomScopesProviderEx {
@Override
public List<NamedScope> getCustomScopes() {
if (myProject.isDefault() || ProjectLevelVcsManager.getInstance(myProject).getAllActiveVcss().length == 0) return Collections.emptyList();
if (myProject.isDefault() || !ProjectLevelVcsManager.getInstance(myProject).hasAnyMappings()) return Collections.emptyList();
final ChangeListManager changeListManager = ChangeListManager.getInstance(myProject);
final List<NamedScope> result = new ArrayList<>();