private void LoadSettings()
{
try
{
if (GitCommands.Settings.Encoding.GetType() == typeof(ASCIIEncoding))
_NO_TRANSLATE_Encoding.Text = "ASCII";
else if (GitCommands.Settings.Encoding.GetType() == typeof(UnicodeEncoding))
_NO_TRANSLATE_Encoding.Text = "Unicode";
else if (GitCommands.Settings.Encoding.GetType() == typeof(UTF7Encoding))
_NO_TRANSLATE_Encoding.Text = "UTF7";
else if (GitCommands.Settings.Encoding.GetType() == typeof(UTF8Encoding))
_NO_TRANSLATE_Encoding.Text = "UTF8";
else if (GitCommands.Settings.Encoding.GetType() == typeof(UTF32Encoding))
_NO_TRANSLATE_Encoding.Text = "UTF32";
else if (GitCommands.Settings.Encoding == System.Text.Encoding.Default)
_NO_TRANSLATE_Encoding.Text = "Default (" + Encoding.Default.HeaderName + ")";
RevisionGridQuickSearchTimeout.Value = Settings.RevisionGridQuickSearchTimeout;
FollowRenamesInFileHistory.Checked = Settings.FollowRenamesInFileHistory;
_NO_TRANSLATE_DaysToCacheImages.Value = GitCommands.Settings.AuthorImageCacheDays;
_NO_TRANSLATE_authorImageSize.Value = Settings.AuthorImageSize;
ShowAuthorGravatar.Checked = Settings.ShowAuthorGravatar;
showErrorsWhenStagingFiles.Checked = Settings.ShowErrorsWhenStagingFiles;
Language.Items.Clear();
Language.Items.Add("English");
Language.Items.AddRange(Translator.GetAllTranslations());
Language.Text = Settings.Translation;
MulticolorBranches.Checked = Settings.MulticolorBranches;
MulticolorBranches_CheckedChanged(null, null);
DrawNonRelativesGray.Checked = Settings.RevisionGraphDrawNonRelativesGray;
BranchBorders.Checked = Settings.BranchBorders;
StripedBanchChange.Checked = Settings.StripedBranchChange;
ShowGitStatusInToolbar.Checked = Settings.ShowGitStatusInBrowseToolbar;
_NO_TRANSLATE_ColorGraphLabel.BackColor = Settings.GraphColor;
_NO_TRANSLATE_ColorGraphLabel.Text = Settings.GraphColor.Name;
_NO_TRANSLATE_ColorGraphLabel.ForeColor = ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorGraphLabel.BackColor);
_NO_TRANSLATE_ColorTagLabel.BackColor = Settings.TagColor;
_NO_TRANSLATE_ColorTagLabel.Text = Settings.TagColor.Name;
_NO_TRANSLATE_ColorTagLabel.ForeColor = ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorTagLabel.BackColor);
_NO_TRANSLATE_ColorBranchLabel.BackColor = Settings.BranchColor;
_NO_TRANSLATE_ColorBranchLabel.Text = Settings.BranchColor.Name;
_NO_TRANSLATE_ColorBranchLabel.ForeColor = ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorBranchLabel.BackColor);
_NO_TRANSLATE_ColorRemoteBranchLabel.BackColor = Settings.RemoteBranchColor;
_NO_TRANSLATE_ColorRemoteBranchLabel.Text = Settings.RemoteBranchColor.Name;
_NO_TRANSLATE_ColorRemoteBranchLabel.ForeColor = ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorRemoteBranchLabel.BackColor);
_NO_TRANSLATE_ColorOtherLabel.BackColor = Settings.OtherTagColor;
_NO_TRANSLATE_ColorOtherLabel.Text = Settings.OtherTagColor.Name;
_NO_TRANSLATE_ColorOtherLabel.ForeColor = ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorOtherLabel.BackColor);
_NO_TRANSLATE_ColorAddedLineLabel.BackColor = Settings.DiffAddedColor;
_NO_TRANSLATE_ColorAddedLineLabel.Text = Settings.DiffAddedColor.Name;
_NO_TRANSLATE_ColorAddedLineLabel.ForeColor = ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorAddedLineLabel.BackColor);
_NO_TRANSLATE_ColorAddedLineDiffLabel.BackColor = Settings.DiffAddedExtraColor;
_NO_TRANSLATE_ColorAddedLineDiffLabel.Text = Settings.DiffAddedExtraColor.Name;
_NO_TRANSLATE_ColorAddedLineDiffLabel.ForeColor = ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorAddedLineDiffLabel.BackColor);
_NO_TRANSLATE_ColorRemovedLine.BackColor = Settings.DiffRemovedColor;
_NO_TRANSLATE_ColorRemovedLine.Text = Settings.DiffRemovedColor.Name;
_NO_TRANSLATE_ColorRemovedLine.ForeColor = ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorRemovedLine.BackColor);
_NO_TRANSLATE_ColorRemovedLineDiffLabel.BackColor = Settings.DiffRemovedExtraColor;
_NO_TRANSLATE_ColorRemovedLineDiffLabel.Text = Settings.DiffRemovedExtraColor.Name;
_NO_TRANSLATE_ColorRemovedLineDiffLabel.ForeColor = ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorRemovedLineDiffLabel.BackColor);
_NO_TRANSLATE_ColorSectionLabel.BackColor = Settings.DiffSectionColor;
_NO_TRANSLATE_ColorSectionLabel.Text = Settings.DiffSectionColor.Name;
_NO_TRANSLATE_ColorSectionLabel.ForeColor = ColorHelper.GetForeColorForBackColor(_NO_TRANSLATE_ColorSectionLabel.BackColor);
if (!string.IsNullOrEmpty(Settings.CustomHomeDir))
{
defaultHome.Checked = userprofileHome.Checked = false;
otherHome.Checked = true;
otherHomeDir.Text = Settings.CustomHomeDir;
}
else if (Settings.UserProfileHomeDir)
{
defaultHome.Checked = otherHome.Checked = false;
userprofileHome.Checked = true;
}
else
{
userprofileHome.Checked = otherHome.Checked = false;
defaultHome.Checked = true;
}
SmtpServer.Text = GitCommands.Settings.Smtp;
_NO_TRANSLATE_MaxCommits.Value = GitCommands.Settings.MaxCommits;
GitCommands.GitCommands gitCommands = new GitCommands.GitCommands();
GitPath.Text = GitCommands.Settings.GitCommand;
GitBinPath.Text = GitCommands.Settings.GitBinDir;
ConfigFile localConfig = GitCommands.GitCommands.GetLocalConfig();
ConfigFile globalConfig = GitCommands.GitCommands.GetGlobalConfig();
UserName.Text = localConfig.GetValue("user.name");
UserEmail.Text = localConfig.GetValue("user.email");
Editor.Text = localConfig.GetValue("core.editor");
MergeTool.Text = localConfig.GetValue("merge.tool");
Dictionary.Text = GitCommands.Settings.Dictionary;
GlobalUserName.Text = globalConfig.GetValue("user.name");
GlobalUserEmail.Text = globalConfig.GetValue("user.email");
GlobalEditor.Text = globalConfig.GetValue("core.editor");
GlobalMergeTool.Text = globalConfig.GetValue("merge.tool");
SetCheckboxFromString(KeepMergeBackup, localConfig.GetValue("mergetool.keepBackup"));
localAutoCrlfFalse.Checked = localConfig.GetValue("core.autocrlf").Equals("false", StringComparison.OrdinalIgnoreCase);
localAutoCrlfInput.Checked = localConfig.GetValue("core.autocrlf").Equals("input", StringComparison.OrdinalIgnoreCase);
localAutoCrlfTrue.Checked = localConfig.GetValue("core.autocrlf").Equals("true", StringComparison.OrdinalIgnoreCase);
if (!string.IsNullOrEmpty(GlobalMergeTool.Text))
MergetoolPath.Text = globalConfig.GetValue("mergetool." + GlobalMergeTool.Text + ".path");
if (!string.IsNullOrEmpty(GlobalMergeTool.Text))
MergeToolCmd.Text = globalConfig.GetValue("mergetool." + GlobalMergeTool.Text + ".cmd");
DefaultIcon.Checked = GitCommands.Settings.IconColor.Equals("default", StringComparison.CurrentCultureIgnoreCase);
BlueIcon.Checked = GitCommands.Settings.IconColor.Equals("blue", StringComparison.CurrentCultureIgnoreCase);
GreenIcon.Checked = GitCommands.Settings.IconColor.Equals("green", StringComparison.CurrentCultureIgnoreCase);
PurpleIcon.Checked = GitCommands.Settings.IconColor.Equals("purple", StringComparison.CurrentCultureIgnoreCase);
RedIcon.Checked = GitCommands.Settings.IconColor.Equals("red", StringComparison.CurrentCultureIgnoreCase);
YellowIcon.Checked = GitCommands.Settings.IconColor.Equals("yellow", StringComparison.CurrentCultureIgnoreCase);
RandomIcon.Checked = GitCommands.Settings.IconColor.Equals("random", StringComparison.CurrentCultureIgnoreCase);
GlobalDiffTool.Text = FormSettings.GetGlobalDiffToolFromConfig();
if (!string.IsNullOrEmpty(GlobalDiffTool.Text))
DifftoolPath.Text = globalConfig.GetValue("difftool." + GlobalDiffTool.Text + ".path");
if (!string.IsNullOrEmpty(GlobalDiffTool.Text))
DifftoolCmd.Text = globalConfig.GetValue("difftool." + GlobalDiffTool.Text + ".cmd");
SetCheckboxFromString(GlobalKeepMergeBackup, globalConfig.GetValue("mergetool.keepBackup"));
string globalAutocrlf = string.Empty;
if (globalConfig.HasValue("core.autocrlf"))
{
globalAutocrlf = globalConfig.GetValue("core.autocrlf");
}
else if (!string.IsNullOrEmpty(Settings.GitBinDir))
{
try
{
//the following lines only work for msysgit (i think). MSysgit has a config file
//in the etc directory which is checked after the local and global config. In
//practice this is only used to core.autocrlf. If there are more cases, we might
//need to consider a better solution.
ConfigFile configFile = new ConfigFile(Path.GetDirectoryName(Settings.GitBinDir).Replace("bin", "etc\\gitconfig"));
globalAutocrlf = configFile.GetValue("core.autocrlf");
}
catch { }
}
globalAutoCrlfFalse.Checked = globalAutocrlf.Equals("false", StringComparison.OrdinalIgnoreCase);
globalAutoCrlfInput.Checked = globalAutocrlf.Equals("input", StringComparison.OrdinalIgnoreCase);
globalAutoCrlfTrue.Checked = globalAutocrlf.Equals("true", StringComparison.OrdinalIgnoreCase);
PlinkPath.Text = GitCommands.Settings.Plink;
PuttygenPath.Text = GitCommands.Settings.Puttygen;
PageantPath.Text = GitCommands.Settings.Pageant;
AutostartPageant.Checked = GitCommands.Settings.AutoStartPageant;
CloseProcessDialog.Checked = GitCommands.Settings.CloseProcessDialog;
ShowRevisionGraph.Checked = GitCommands.Settings.ShowRevisionGraph;
ShowGitCommandLine.Checked = GitCommands.Settings.ShowGitCommandLine;
UseFastChecks.Checked = GitCommands.Settings.UseFastChecks;
ShowRelativeDate.Checked = GitCommands.Settings.RelativeDate;
if (string.IsNullOrEmpty(GitCommands.GitCommands.GetSsh()))
OpenSSH.Checked = true;
else
if (GitCommands.GitCommands.Plink())
Putty.Checked = true;
else
{
OtherSsh.Text = GitCommands.GitCommands.GetSsh();
Other.Checked = true;
}
EnableSshOptions();
}
catch (Exception ex)
{
MessageBox.Show("Could not load settings.\n\n" + ex.ToString());
// Bail out before the user saves the incompletely loaded settings
// and has their day ruined.
DialogResult = DialogResult.Abort;
}
}