mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
IDEA-110685 Github: remember SavePassword checkbox state
This commit is contained in:
@@ -58,6 +58,7 @@ public class GithubSettings implements PersistentStateComponent<GithubSettings.S
|
||||
public boolean ANONYMOUS_GIST = false;
|
||||
public boolean OPEN_IN_BROWSER_GIST = true;
|
||||
public boolean PRIVATE_GIST = true;
|
||||
public boolean SAVE_PASSWORD = true;
|
||||
public Collection<String> TRUSTED_HOSTS = new ArrayList<String>();
|
||||
}
|
||||
|
||||
@@ -105,6 +106,15 @@ public class GithubSettings implements PersistentStateComponent<GithubSettings.S
|
||||
return myState.PRIVATE_GIST;
|
||||
}
|
||||
|
||||
public boolean getSavePasswordDefault() {
|
||||
return myState.SAVE_PASSWORD;
|
||||
}
|
||||
|
||||
public boolean isSavePasswordMakesSense() {
|
||||
final PasswordSafeImpl passwordSafe = (PasswordSafeImpl)PasswordSafe.getInstance();
|
||||
return passwordSafe.getSettings().getProviderType() == PasswordSafeSettings.ProviderType.MASTER_PASSWORD;
|
||||
}
|
||||
|
||||
public void setAnonymousGist(final boolean anonymousGist) {
|
||||
myState.ANONYMOUS_GIST = anonymousGist;
|
||||
}
|
||||
@@ -113,6 +123,10 @@ public class GithubSettings implements PersistentStateComponent<GithubSettings.S
|
||||
myState.PRIVATE_GIST = privateGist;
|
||||
}
|
||||
|
||||
public void setSavePasswordDefault(final boolean savePassword) {
|
||||
myState.SAVE_PASSWORD = savePassword;
|
||||
}
|
||||
|
||||
public void setOpenInBrowserGist(final boolean openInBrowserGist) {
|
||||
myState.OPEN_IN_BROWSER_GIST = openInBrowserGist;
|
||||
}
|
||||
|
||||
@@ -21,15 +21,24 @@ public class GithubLoginDialog extends DialogWrapper {
|
||||
protected static final Logger LOG = GithubUtil.LOG;
|
||||
|
||||
protected final GithubLoginPanel myGithubLoginPanel;
|
||||
protected final GithubSettings mySettings;
|
||||
|
||||
public GithubLoginDialog(@Nullable final Project project) {
|
||||
super(project, true);
|
||||
myGithubLoginPanel = new GithubLoginPanel(this);
|
||||
|
||||
final GithubSettings settings = GithubSettings.getInstance();
|
||||
myGithubLoginPanel.setHost(settings.getHost());
|
||||
myGithubLoginPanel.setLogin(settings.getLogin());
|
||||
myGithubLoginPanel.setAuthType(settings.getAuthType());
|
||||
mySettings = GithubSettings.getInstance();
|
||||
myGithubLoginPanel.setHost(mySettings.getHost());
|
||||
myGithubLoginPanel.setLogin(mySettings.getLogin());
|
||||
myGithubLoginPanel.setAuthType(mySettings.getAuthType());
|
||||
|
||||
if (mySettings.isSavePasswordMakesSense()) {
|
||||
myGithubLoginPanel.setSavePasswordSelected(mySettings.getSavePasswordDefault());
|
||||
}
|
||||
else {
|
||||
myGithubLoginPanel.setSavePasswordVisibleEnabled(false);
|
||||
myGithubLoginPanel.setSavePasswordSelected(true);
|
||||
}
|
||||
|
||||
setTitle("Login to GitHub");
|
||||
setOKButtonText("Login");
|
||||
@@ -62,6 +71,9 @@ public class GithubLoginDialog extends DialogWrapper {
|
||||
try {
|
||||
GithubUtil.checkAuthData(auth, myGithubLoginPanel.getLogin());
|
||||
saveCredentials(auth);
|
||||
if (mySettings.isSavePasswordMakesSense()) {
|
||||
mySettings.setSavePasswordDefault(myGithubLoginPanel.isSavePasswordSelected());
|
||||
}
|
||||
super.doOKAction();
|
||||
}
|
||||
catch (IOException e) {
|
||||
|
||||
@@ -16,9 +16,6 @@
|
||||
package org.jetbrains.plugins.github.ui;
|
||||
|
||||
import com.intellij.ide.BrowserUtil;
|
||||
import com.intellij.ide.passwordSafe.PasswordSafe;
|
||||
import com.intellij.ide.passwordSafe.config.PasswordSafeSettings;
|
||||
import com.intellij.ide.passwordSafe.impl.PasswordSafeImpl;
|
||||
import com.intellij.ui.DocumentAdapter;
|
||||
import com.intellij.ui.HyperlinkAdapter;
|
||||
import com.intellij.util.ui.UIUtil;
|
||||
@@ -70,12 +67,6 @@ public class GithubLoginPanel {
|
||||
|
||||
myAuthTypeComboBox.addItem(AUTH_PASSWORD);
|
||||
myAuthTypeComboBox.addItem(AUTH_TOKEN);
|
||||
|
||||
final PasswordSafeImpl passwordSafe = (PasswordSafeImpl)PasswordSafe.getInstance();
|
||||
if (passwordSafe.getSettings().getProviderType() != PasswordSafeSettings.ProviderType.MASTER_PASSWORD) {
|
||||
mySavePasswordCheckBox.setVisible(false);
|
||||
mySavePasswordCheckBox.setSelected(true);
|
||||
}
|
||||
}
|
||||
|
||||
public JComponent getPanel() {
|
||||
@@ -108,6 +99,15 @@ public class GithubLoginPanel {
|
||||
myAuthTypeComboBox.setEnabled(false);
|
||||
}
|
||||
|
||||
public void setSavePasswordSelected(boolean savePassword) {
|
||||
mySavePasswordCheckBox.setSelected(savePassword);
|
||||
}
|
||||
|
||||
public void setSavePasswordVisibleEnabled(boolean visible) {
|
||||
mySavePasswordCheckBox.setVisible(visible);
|
||||
mySavePasswordCheckBox.setEnabled(visible);
|
||||
}
|
||||
|
||||
@NotNull
|
||||
public String getHost() {
|
||||
return myHostTextField.getText().trim();
|
||||
@@ -123,7 +123,7 @@ public class GithubLoginPanel {
|
||||
return String.valueOf(myPasswordField.getPassword());
|
||||
}
|
||||
|
||||
public boolean shouldSavePassword() {
|
||||
public boolean isSavePasswordSelected() {
|
||||
return mySavePasswordCheckBox.isSelected();
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user