From 5c9ef946b229fbeaff487ebfbe44f34fd53b45b3 Mon Sep 17 00:00:00 2001 From: Kirill Likhodedov Date: Thu, 19 Jun 2014 16:53:57 +0400 Subject: [PATCH] [git] IDEA-126332 Init dialog in EDT --- .../commands/GitHttpGuiAuthenticator.java | 25 ++++++++++++------- 1 file changed, 16 insertions(+), 9 deletions(-) diff --git a/plugins/git4idea/src/git4idea/commands/GitHttpGuiAuthenticator.java b/plugins/git4idea/src/git4idea/commands/GitHttpGuiAuthenticator.java index 141adca79937..94f999421a3c 100644 --- a/plugins/git4idea/src/git4idea/commands/GitHttpGuiAuthenticator.java +++ b/plugins/git4idea/src/git4idea/commands/GitHttpGuiAuthenticator.java @@ -25,6 +25,7 @@ import com.intellij.openapi.diagnostic.Logger; import com.intellij.openapi.project.Project; import com.intellij.openapi.util.Couple; import com.intellij.openapi.util.Pair; +import com.intellij.openapi.util.Ref; import com.intellij.openapi.util.text.StringUtil; import com.intellij.util.AuthData; import com.intellij.util.UriUtil; @@ -126,15 +127,8 @@ class GitHttpGuiAuthenticator implements GitHttpAuthenticator { return login; } - final AuthDialog dialog = new AuthDialog(myProject, myTitle, "Enter credentials for " + url, login, null, true); - ApplicationManager.getApplication().invokeAndWait(new Runnable() { - @Override - public void run() { - dialog.show(); - } - }, myModalityState == null ? ModalityState.defaultModalityState() : myModalityState); - - if (!dialog.isOK()) { + AuthDialog dialog = showAuthDialog(url, login); + if (dialog == null || !dialog.isOK()) { myWasCancelled = true; return ""; } @@ -149,6 +143,19 @@ class GitHttpGuiAuthenticator implements GitHttpAuthenticator { return myLogin; } + @Nullable + private AuthDialog showAuthDialog(final String url, final String login) { + final Ref dialog = Ref.create(); + ApplicationManager.getApplication().invokeAndWait(new Runnable() { + @Override + public void run() { + dialog.set(new AuthDialog(myProject, myTitle, "Enter credentials for " + url, login, null, true)); + dialog.get().show(); + } + }, myModalityState == null ? ModalityState.defaultModalityState() : myModalityState); + return dialog.get(); + } + @Override public void saveAuthData() { // save login and url