mirror of
https://github.com/sourcegit-scm/sourcegit.git
synced 2024-12-24 20:57:19 -08:00
feature<*>: add translation for Simplified Chinese
This commit is contained in:
parent
2054df31b9
commit
5418ccac9e
70 changed files with 1492 additions and 554 deletions
|
@ -49,6 +49,10 @@ namespace SourceGit {
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool UseLightTheme { get; set; }
|
public bool UseLightTheme { get; set; }
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Locale
|
||||||
|
/// </summary>
|
||||||
|
public string Locale { get; set; } = "en_US";
|
||||||
|
/// <summary>
|
||||||
/// Main window width
|
/// Main window width
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public double WindowWidth { get; set; }
|
public double WindowWidth { get; set; }
|
||||||
|
|
|
@ -9,6 +9,7 @@
|
||||||
<ResourceDictionary Source="pack://application:,,,/Resources/Icons.xaml"/>
|
<ResourceDictionary Source="pack://application:,,,/Resources/Icons.xaml"/>
|
||||||
<ResourceDictionary Source="pack://application:,,,/Resources/Controls.xaml"/>
|
<ResourceDictionary Source="pack://application:,,,/Resources/Controls.xaml"/>
|
||||||
<ResourceDictionary Source="pack://application:,,,/Resources/Themes/Dark.xaml"/>
|
<ResourceDictionary Source="pack://application:,,,/Resources/Themes/Dark.xaml"/>
|
||||||
|
<ResourceDictionary Source="pack://application:,,,/Resources/Locales/en_US.xaml"/>
|
||||||
</ResourceDictionary.MergedDictionaries>
|
</ResourceDictionary.MergedDictionaries>
|
||||||
</ResourceDictionary>
|
</ResourceDictionary>
|
||||||
</Application.Resources>
|
</Application.Resources>
|
||||||
|
|
|
@ -30,6 +30,25 @@ namespace SourceGit {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Load text from locales.
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="key"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string Text(string key) {
|
||||||
|
return Current.FindResource("Text." + key) as string;
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Format text
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="key"></param>
|
||||||
|
/// <param name="args"></param>
|
||||||
|
/// <returns></returns>
|
||||||
|
public static string Format(string key, params object[] args) {
|
||||||
|
return string.Format(Text(key), args);
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Raise error message.
|
/// Raise error message.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -109,6 +128,16 @@ namespace SourceGit {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Apply locales
|
||||||
|
if (Setting.UI.Locale != "en_US") {
|
||||||
|
foreach (var rs in Current.Resources.MergedDictionaries) {
|
||||||
|
if (rs.Source != null && rs.Source.OriginalString.StartsWith("pack://application:,,,/Resources/Locales/")) {
|
||||||
|
rs.Source = new Uri($"pack://application:,,,/Resources/Locales/{Setting.UI.Locale}.xaml", UriKind.Absolute);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
// Show main window
|
// Show main window
|
||||||
MainWindow = new UI.Launcher();
|
MainWindow = new UI.Launcher();
|
||||||
MainWindow.Show();
|
MainWindow.Show();
|
||||||
|
|
|
@ -261,7 +261,7 @@ namespace SourceGit.Git {
|
||||||
|
|
||||||
var checkGitDir = new DirectoryInfo(GitDir);
|
var checkGitDir = new DirectoryInfo(GitDir);
|
||||||
if (!checkGitDir.Exists) {
|
if (!checkGitDir.Exists) {
|
||||||
App.RaiseError("GIT_DIR for this repository NOT FOUND!");
|
App.RaiseError(App.Text("GitDirNotFound"));
|
||||||
return;
|
return;
|
||||||
} else {
|
} else {
|
||||||
GitDir = checkGitDir.FullName;
|
GitDir = checkGitDir.FullName;
|
||||||
|
@ -1110,7 +1110,7 @@ namespace SourceGit.Git {
|
||||||
releasePrefix = GetConfig("gitflow.prefix.release");
|
releasePrefix = GetConfig("gitflow.prefix.release");
|
||||||
hotfixPrefix = GetConfig("gitflow.prefix.hotfix");
|
hotfixPrefix = GetConfig("gitflow.prefix.hotfix");
|
||||||
|
|
||||||
if (!IsGitFlowEnabled()) App.RaiseError("Initialize Git-flow failed!");
|
if (!IsGitFlowEnabled()) App.RaiseError(App.Text("InitGitFlowFailed"));
|
||||||
|
|
||||||
if (refreshBranches) {
|
if (refreshBranches) {
|
||||||
Branches(true);
|
Branches(true);
|
||||||
|
@ -1136,7 +1136,7 @@ namespace SourceGit.Git {
|
||||||
case Branch.Type.Release: args = $"flow release start {name}"; break;
|
case Branch.Type.Release: args = $"flow release start {name}"; break;
|
||||||
case Branch.Type.Hotfix: args = $"flow hotfix start {name}"; break;
|
case Branch.Type.Hotfix: args = $"flow hotfix start {name}"; break;
|
||||||
default:
|
default:
|
||||||
App.RaiseError("Bad git-flow branch type!");
|
App.RaiseError(App.Text("BadGitFlowType"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1165,7 +1165,7 @@ namespace SourceGit.Git {
|
||||||
args = $"flow hotfix finish {hotfixName} -m \"Hotfix done\"";
|
args = $"flow hotfix finish {hotfixName} -m \"Hotfix done\"";
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
App.RaiseError("Bad git-flow branch type!");
|
App.RaiseError(App.Text("BadGitFlowType"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -10,7 +10,7 @@ namespace SourceGit.Helpers {
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class CloneFolderRule : ValidationRule {
|
public class CloneFolderRule : ValidationRule {
|
||||||
public override ValidationResult Validate(object value, CultureInfo cultureInfo) {
|
public override ValidationResult Validate(object value, CultureInfo cultureInfo) {
|
||||||
var badPath = "EXISTS and FULL ACCESS CONTROL needed";
|
var badPath = App.Text("BadCloneFolder");
|
||||||
var path = value as string;
|
var path = value as string;
|
||||||
return Directory.Exists(path) ? ValidationResult.ValidResult : new ValidationResult(false, badPath);
|
return Directory.Exists(path) ? ValidationResult.ValidResult : new ValidationResult(false, badPath);
|
||||||
}
|
}
|
||||||
|
@ -21,7 +21,7 @@ namespace SourceGit.Helpers {
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class RemoteUriRule : ValidationRule {
|
public class RemoteUriRule : ValidationRule {
|
||||||
public override ValidationResult Validate(object value, CultureInfo cultureInfo) {
|
public override ValidationResult Validate(object value, CultureInfo cultureInfo) {
|
||||||
var badUrl = "Remote git URL not supported";
|
var badUrl = App.Text("BadRemoteUri");
|
||||||
return Git.Repository.IsValidUrl(value as string) ? ValidationResult.ValidResult : new ValidationResult(false, badUrl);
|
return Git.Repository.IsValidUrl(value as string) ? ValidationResult.ValidResult : new ValidationResult(false, badUrl);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -38,13 +38,13 @@ namespace SourceGit.Helpers {
|
||||||
var name = value as string;
|
var name = value as string;
|
||||||
var remotes = Repo.Remotes();
|
var remotes = Repo.Remotes();
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(name)) return new ValidationResult(false, "Remote name can NOT be null");
|
if (string.IsNullOrEmpty(name)) return new ValidationResult(false, App.Text("EmptyRemoteName"));
|
||||||
if (!regex.IsMatch(name)) return new ValidationResult(false, $"Bad name for remote. Regex: ^[\\w\\-\\.]+$");
|
if (!regex.IsMatch(name)) return new ValidationResult(false, App.Text("BadRemoteName"));
|
||||||
|
|
||||||
if (Old == null || name != Old.Name) {
|
if (Old == null || name != Old.Name) {
|
||||||
foreach (var t in remotes) {
|
foreach (var t in remotes) {
|
||||||
if (t.Name == name) {
|
if (t.Name == name) {
|
||||||
return new ValidationResult(false, $"Remote '{name}' already exists");
|
return new ValidationResult(false, App.Text("DuplicatedRemoteName"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -65,14 +65,14 @@ namespace SourceGit.Helpers {
|
||||||
var name = value as string;
|
var name = value as string;
|
||||||
var branches = Repo.Branches();
|
var branches = Repo.Branches();
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(name)) return new ValidationResult(false, "Branch name can NOT be null");
|
if (string.IsNullOrEmpty(name)) return new ValidationResult(false, App.Text("EmptyBranchName"));
|
||||||
if (!regex.IsMatch(name)) return new ValidationResult(false, $"Bad name for branch. Regex: ^[\\w\\-/\\.]+$");
|
if (!regex.IsMatch(name)) return new ValidationResult(false, App.Text("BadBranchName"));
|
||||||
|
|
||||||
name = Prefix + name;
|
name = Prefix + name;
|
||||||
|
|
||||||
foreach (var b in branches) {
|
foreach (var b in branches) {
|
||||||
if (b.Name == name) {
|
if (b.Name == name) {
|
||||||
return new ValidationResult(false, $"Branch '{name}' already exists");
|
return new ValidationResult(false, App.Text("DuplicatedBranchName"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -91,12 +91,12 @@ namespace SourceGit.Helpers {
|
||||||
var name = value as string;
|
var name = value as string;
|
||||||
var tags = Repo.Tags();
|
var tags = Repo.Tags();
|
||||||
|
|
||||||
if (string.IsNullOrEmpty(name)) return new ValidationResult(false, "Tag name can NOT be null");
|
if (string.IsNullOrEmpty(name)) return new ValidationResult(false, App.Text("EmptyTagName"));
|
||||||
if (!regex.IsMatch(name)) return new ValidationResult(false, $"Bad name for tag. Regex: ^[\\w\\-\\.]+$");
|
if (!regex.IsMatch(name)) return new ValidationResult(false, App.Text("BadTagName"));
|
||||||
|
|
||||||
foreach (var t in tags) {
|
foreach (var t in tags) {
|
||||||
if (t.Name == name) {
|
if (t.Name == name) {
|
||||||
return new ValidationResult(false, $"Tag '{name}' already exists");
|
return new ValidationResult(false, App.Text("DuplicatedTagName"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -110,7 +110,7 @@ namespace SourceGit.Helpers {
|
||||||
public class CommitSubjectRequiredRule : ValidationRule {
|
public class CommitSubjectRequiredRule : ValidationRule {
|
||||||
public override ValidationResult Validate(object value, CultureInfo cultureInfo) {
|
public override ValidationResult Validate(object value, CultureInfo cultureInfo) {
|
||||||
var subject = value as string;
|
var subject = value as string;
|
||||||
return string.IsNullOrWhiteSpace(subject) ? new ValidationResult(false, "Commit subject can NOT be empty") : ValidationResult.ValidResult;
|
return string.IsNullOrWhiteSpace(subject) ? new ValidationResult(false, App.Text("EmptyCommitMessage")) : ValidationResult.ValidResult;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -121,7 +121,7 @@ namespace SourceGit.Helpers {
|
||||||
public override ValidationResult Validate(object value, CultureInfo cultureInfo) {
|
public override ValidationResult Validate(object value, CultureInfo cultureInfo) {
|
||||||
var path = value as string;
|
var path = value as string;
|
||||||
var succ = !string.IsNullOrEmpty(path) && File.Exists(path);
|
var succ = !string.IsNullOrEmpty(path) && File.Exists(path);
|
||||||
return !succ ? new ValidationResult(false, "Invalid path for patch file") : ValidationResult.ValidResult;
|
return !succ ? new ValidationResult(false, App.Text("BadPatchFile")) : ValidationResult.ValidResult;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,7 +133,7 @@ namespace SourceGit.Helpers {
|
||||||
var regex = new Regex(@"^[\w\-\._/]+$");
|
var regex = new Regex(@"^[\w\-\._/]+$");
|
||||||
var path = value as string;
|
var path = value as string;
|
||||||
var succ = !string.IsNullOrEmpty(path) && regex.IsMatch(path.Trim());
|
var succ = !string.IsNullOrEmpty(path) && regex.IsMatch(path.Trim());
|
||||||
return !succ ? new ValidationResult(false, "Invalid path for submodules") : ValidationResult.ValidResult;
|
return !succ ? new ValidationResult(false, App.Text("BadSubmodulePath")) : ValidationResult.ValidResult;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
432
src/Resources/Locales/en_US.xaml
Normal file
432
src/Resources/Locales/en_US.xaml
Normal file
|
@ -0,0 +1,432 @@
|
||||||
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:sys="clr-namespace:System;assembly=mscorlib">
|
||||||
|
<sys:String x:Key="Text.Start">START</sys:String>
|
||||||
|
<sys:String x:Key="Text.Sure">SURE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Save">SAVE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Close">CLOSE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Cancel">CANCEL</sys:String>
|
||||||
|
<sys:String x:Key="Text.Goto">CLICK TO GO</sys:String>
|
||||||
|
<sys:String x:Key="Text.RevealFile">Reveal in File Explorer</sys:String>
|
||||||
|
<sys:String x:Key="Text.SaveAs">Save As ...</sys:String>
|
||||||
|
<sys:String x:Key="Text.SaveFileTo">Save File to ...</sys:String>
|
||||||
|
<sys:String x:Key="Text.CopyPath">Copy Path</sys:String>
|
||||||
|
<sys:String x:Key="Text.Bytes">{0} Bytes</sys:String>
|
||||||
|
<sys:String x:Key="Text.Filter">FILTER</sys:String>
|
||||||
|
<sys:String x:Key="Text.Optional">Optional.</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.URL">URL :</sys:String>
|
||||||
|
<sys:String x:Key="Text.RepositoryURL">Git Repository URL</sys:String>
|
||||||
|
<sys:String x:Key="Text.ParentFolder">Parent Folder :</sys:String>
|
||||||
|
<sys:String x:Key="Text.ParentFolder.Placeholder">Relative foler to store this module. Optional.</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.About">ABOUT</sys:String>
|
||||||
|
<sys:String x:Key="Text.About.Title">SourceGit - OPEN SOURCE GIT CLIENT</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Apply">Apply</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.Title">Apply Patch</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.File">Patch File :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.File.Placeholder">Select .patch file to apply</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.WS">Whitespace :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.IgnoreWS">Ignore whitespace changes</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.NoWarn">No Warn</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.NoWarn.Desc">Turns off the trailing whitespace warning</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.Warn">Warn</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.Warn.Desc">Outputs warnings for a few such errors, but applies</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.Error">Error</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.Error.Desc">Raise errors and refuses to apply the patch</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.ErrorAll">Error All</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.ErrorAll.Desc">Similar to 'error', but shows more</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Blame">Blame</sys:String>
|
||||||
|
<sys:String x:Key="Text.Blame.Title">SOURCEGIT - BLAME</sys:String>
|
||||||
|
<sys:String x:Key="Text.Blame.Tip">Use right mouse button to view commit information.</sys:String>
|
||||||
|
<sys:String x:Key="Text.Blame.SHA">COMMIT SHA</sys:String>
|
||||||
|
<sys:String x:Key="Text.Blame.Author">AUTHOR</sys:String>
|
||||||
|
<sys:String x:Key="Text.Blame.ModifyTime">MODIFY TIME</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Submodule">SUBMODULES</sys:String>
|
||||||
|
<sys:String x:Key="Text.Submodule.Add">Add Submodule</sys:String>
|
||||||
|
<sys:String x:Key="Text.Submodule.FetchNested">Fetch nested submodules</sys:String>
|
||||||
|
<sys:String x:Key="Text.Submodule.Open">Open Submodule Repository</sys:String>
|
||||||
|
<sys:String x:Key="Text.Submodule.CopyPath">Copy Relative Path</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.CherryPick">Cherry-Pick This Commit</sys:String>
|
||||||
|
<sys:String x:Key="Text.CherryPick.Title">Cherry Pick</sys:String>
|
||||||
|
<sys:String x:Key="Text.CherryPick.Commit">Commit :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CherryPick.CommitChanges">Commit all changes</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Clone">Clone Remote Repository</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.RemoteURL">Repository URL :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.RemoteURL.Placeholder">Git Repository URL</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.RemoteFolder">Parent Folder :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.RemoteFolder.Placeholder">Folder to contain this repository</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.LocalName">Local Name :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.LocalName.Placeholder">Repository name. Optional.</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.RemoteName">Remote Name :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.RemoteName.Placeholder">Remote name. Optional.</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info">INFORMATION</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.Author">AUTHOR</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.Committer">COMMITTER</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.SHA">SHA</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.Parents">PARENTS</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.Refs">REFS</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.Message">MESSAGE</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.Changed">CHANGED</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Changes">CHANGES</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Changes.Search">Search Files ...</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Changes.SwitchMode">SWITCH TO LIST/TREE VIEW</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Files">FILES</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Configure">Configure</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.Credential">CREDENTIAL</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.User">User :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.User.Placeholder">User name for this repository</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.Email">Email :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.Email.Placeholder">Email address</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.CommitTemplate">COMMIT TEMPLATE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.Template">Template :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.CreateBranch">Create Branch</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.Title">Create Local Branch</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.BasedOn">Based On :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.Name">New Branch Name :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.Name.Placeholder">Enter branch name.</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.LocalChanges">Local Changes :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.LocalChanges.StashAndReply">Stash & Reapply</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.LocalChanges.Discard">Discard</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.Checkout">Check out after created</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.CreateTag">Create Tag</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateTag.BasedOn">New Tag At :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateTag.Name">Tag Name :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateTag.Name.Placeholder">Recommanded format :v1.0.0-alpha</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateTag.Message">Tag Message :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateTag.Message.Placeholder">Optional.</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Dashboard.Explore">Explore</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Explore.Tip">Open In File Browser</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Terminal">Terminal</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Terminal.Tip">Open Git Bash</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Search">Search</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Search.Tip">Search Commit</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Configure.Tip">Configure this repository</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Workspace">WORKSPACE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.LocalBranches">LOCAL BRANCHES</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.NewBranch">NEW BRANCH</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Remotes">REMOTES</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Remotes.Add">ADD REMOTE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Tags">TAGS</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Tags.Add">NEW TAG</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Submodules">SUBMODULES</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Submodules.Add">ADD SUBMODULE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Submodules.Update">UPDATE SUBMODULE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Resolve">RESOLVE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Continue">CONTINUE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Abort">ABORT</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.GitFlow">GIT FLOW</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.Init">Initialize Git-Flow</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.ProductionBranch">Production Branch :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.DevelopBranch">Development Branch :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.Feature">Feature :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.Release">Release :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.Hotfix">Hotfix :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.FeaturePrefix">Feature Prefix :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.ReleasePrefix">Release Prefix :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.HotfixPrefix">Hotfix Prefix :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.TagPrefix">Version Tag Prefix :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartFeature">Start Feature ...</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartRelease">Start Release ...</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartHotfix">Start Hotfix ...</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartFeatureTitle">GIT FLOW - Start Feature</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartReleaseTitle">GIT FLOW - Start Release</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartHotfixTitle">GIT FLOW - Start Hotfix</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartPlaceholder">Enter name</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.FinishFeature">GIT FLOW - Finish Feature</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.FinishRelease">GIT FLOW - Finish Release</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.FinishHotfix">GIT FLOW - Finish Hotfix</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.BranchRequired">{0} branch name is required.</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.BranchInvalid">{0} branch name contains invalid characters.</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.PrefixRequired">{0} prefix is required.</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.PrefixInvalid">{0} contains invalid characters.</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.DevSameAsProd">Development branch is same with production!</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.RepoCM.Refresh">Refresh</sys:String>
|
||||||
|
<sys:String x:Key="Text.RepoCM.Bookmark">Bookmark</sys:String>
|
||||||
|
<sys:String x:Key="Text.RepoCM.CopyPath">CopyPath</sys:String>
|
||||||
|
<sys:String x:Key="Text.RepoCM.Open">Open</sys:String>
|
||||||
|
<sys:String x:Key="Text.RepoCM.Explore">Open Container Folder</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.BranchCM.Push">Push '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.DiscardAll">Discard all changes</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.FastForward">Fast-Forward to '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Pull">Pull '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.PullInto">Pull '{0}' into '{1}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Checkout">Checkout '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Merge">Merge '{0}' into '{1}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Rebase">Rebase '{0}' on '{1}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Finish">Git Flow - Finish '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Rename">Rename '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Delete">Delete '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Tracking">Tracking ...</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.CopyName">Copy Branch Name</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.RemoteCM.Fetch">Fetch '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.RemoteCM.Edit">Edit '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.RemoteCM.Delete">Delete '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.RemoteCM.CopyURL">Copy Remote URL</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.CommitCM.Reset">Reset '{0}' to Here</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.InteractiveRebase">Interactive Rebase '{0}' from Here</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.Rebase">Rebase '{0}' to Here</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.CherryPick">Cherry-Pick This Commit</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.Revert">Revert Commit</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.SaveAsPatch">Save as Patch</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.CopySHA">Copy Commit SHA</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.CopyInfo">Copy Commit Info</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.TagCM.Push">Push '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.TagCM.Delete">Delete '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.TagCM.Copy">Copy Tag Name</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.StashCM.Apply">Apply</sys:String>
|
||||||
|
<sys:String x:Key="Text.StashCM.Pop">Pop</sys:String>
|
||||||
|
<sys:String x:Key="Text.StashCM.Drop">Drop</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.FileCM.Unstage">Unstage</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.Stage">Stage...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.Discard">Discard...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.Stash">Stash...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.UnstageMulti">Unstage {0} files</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.StageMulti">Stage {0} files...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.DiscardMulti">Discard {0} files...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.StashMulti">Stash {0} files...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.SaveAsPatch">Save As Patch...</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.DeleteBranch">Confirm To Delete Branch</sys:String>
|
||||||
|
<sys:String x:Key="Text.DeleteBranch.Branch">Branch :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.DeleteRemote">Confirm To Delete Remote</sys:String>
|
||||||
|
<sys:String x:Key="Text.DeleteRemote.Remote">Remote :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.DeleteTag">Confirm To Delete Tag</sys:String>
|
||||||
|
<sys:String x:Key="Text.DeleteTag.Tag">Tag :</sys:String>
|
||||||
|
<sys:String x:Key="Text.DeleteTag.WithRemote">Delete from remote repositories</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Diff.Next">Next Difference</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Prev">Previous Difference</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Mode">Toggle One-Side/Two-Sides</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Welcome">SELECT FILE TO VIEW CHANGES</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.NoChange">NO CHANGES OR ONLY EOL CHANGES</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Binary">BINARY DIFF</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Binary.Old">OLD :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Binary.New">New :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.LFS">LFS OBJECT CHANGE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Copy">Copy Selected Lines</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Discard">Confirm To Discard Changes</sys:String>
|
||||||
|
<sys:String x:Key="Text.Discard.Changes">Changes :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Discard.Warning">You can't undo this action!!!</sys:String>
|
||||||
|
<sys:String x:Key="Text.Discard.All">All local changes in working copy.</sys:String>
|
||||||
|
<sys:String x:Key="Text.Discard.Total">Total {0} changes will be discard</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Fetch">Fetch</sys:String>
|
||||||
|
<sys:String x:Key="Text.Fetch.Title">Fetch Remote Changes</sys:String>
|
||||||
|
<sys:String x:Key="Text.Fetch.Remote">Remote :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Fetch.AllRemotes">Fetch all remotes</sys:String>
|
||||||
|
<sys:String x:Key="Text.Fetch.Prune">Prune remote dead branches</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.FileHistory">File History</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.FileDisplayMode">CHANGE FILES DISPLAY MODE</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileDisplayMode.Grid">Show as Grid</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileDisplayMode.List">Show as List</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileDisplayMode.Tree">Show as Tree</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.FolderDialog">SELECT FOLDER</sys:String>
|
||||||
|
<sys:String x:Key="Text.FolderDialog.Selected">SELECTED :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Histories">Histories</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Search">SEARCH SHA/SUBJECT/AUTHOR. PRESS ENTER TO SEARCH, ESC TO QUIT</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.SearchClear">CLEAR</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.DisplayMode">Toggle Horizontal/Vertical Layout</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Selected">SELECTED {0} COMMITS</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Guide">HISTORIES GUIDE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Guide_1">1. Select single commit to view detail</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Guide_2">2. Select two commits to show differences</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Guide_3">3. Select more than 2 commits to count</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Guide_4">4. Try to open context menu with selected commit</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Init">Initialize Repository</sys:String>
|
||||||
|
<sys:String x:Key="Text.Init.Path">Path :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Init.Tip">Invalid repository detected. Run `git init` under this path?</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.InteractiveRebase">SOURCEGIT - INTERACTIVE REBASE</sys:String>
|
||||||
|
<sys:String x:Key="Text.InteractiveRebase.Target">Rebase :</sys:String>
|
||||||
|
<sys:String x:Key="Text.InteractiveRebase.On">On :</sys:String>
|
||||||
|
<sys:String x:Key="Text.InteractiveRebase.Start">REBASE</sys:String>
|
||||||
|
<sys:String x:Key="Text.InteractiveRebase.MoveUp">MOVE UP</sys:String>
|
||||||
|
<sys:String x:Key="Text.InteractiveRebase.MoveDown">MOVE DOWN</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Launcher">Source Git</sys:String>
|
||||||
|
<sys:String x:Key="Text.Launcher.NewPageButton">NEW PAGE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Launcher.Preference">PREFERENCE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Launcher.About">ABOUT</sys:String>
|
||||||
|
<sys:String x:Key="Text.Launcher.Error">ERROR</sys:String>
|
||||||
|
<sys:String x:Key="Text.Launcher.NewPage">New Page</sys:String>
|
||||||
|
<sys:String x:Key="Text.Launcher.NewPageTip">Welcome Page</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Merge">Merge Branch</sys:String>
|
||||||
|
<sys:String x:Key="Text.Merge.Source">Source Branch :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Merge.Into">Into :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Merge.Mode">Merge Option :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.NewPage.Title">Welcome to SourceGit :)</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.OpenOrInit">Open Local Repository</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.Clone">Clone Remote Repository</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.Repositories">REPOSITORIES</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.DragDrop">DRAG-DROP YOUR FOLDER</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.OpenOrInitDialog">Open or init local repository</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.NewFolder">Add Folder</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.NewSubFolder">Add Sub-Folder</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.Rename">Rename</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.Delete">Delete</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Pull">Pull</sys:String>
|
||||||
|
<sys:String x:Key="Text.Pull.Title">Pull (Fetch & Merge)</sys:String>
|
||||||
|
<sys:String x:Key="Text.Pull.Remote">Remote :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Pull.Branch">Branch :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Pull.Into">Into :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Pull.UseRebase">Use rebase instead of merge</sys:String>
|
||||||
|
<sys:String x:Key="Text.Pull.AutoStash">Stash & reapply local changes</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Push">Push</sys:String>
|
||||||
|
<sys:String x:Key="Text.Push.Title">Push Changes To Remote</sys:String>
|
||||||
|
<sys:String x:Key="Text.Push.Local">Local Branch :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Push.Remote">Remote :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Push.To">To :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Push.WithAllTags">Push all tags</sys:String>
|
||||||
|
<sys:String x:Key="Text.Push.Force">Force push</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.PushTag">Push Tag To Remote</sys:String>
|
||||||
|
<sys:String x:Key="Text.PushTag.Tag">Tag :</sys:String>
|
||||||
|
<sys:String x:Key="Text.PushTag.Remote">Remote :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Rebase">Rebase Current Branch</sys:String>
|
||||||
|
<sys:String x:Key="Text.Rebase.Target">Rebase :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Rebase.On">On :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Rebase.AutoStash">Stash & reapply local changes</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Remote.AddTitle">Add Remote</sys:String>
|
||||||
|
<sys:String x:Key="Text.Remote.EditTitle">Edit Remote</sys:String>
|
||||||
|
<sys:String x:Key="Text.Remote.Name">Name :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Remote.Name.Placeholder">Remote name</sys:String>
|
||||||
|
<sys:String x:Key="Text.Remote.URL">Repository URL :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Remote.URL.Placeholder">Remote git repository URL</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.RenameBranch">Rename Branch</sys:String>
|
||||||
|
<sys:String x:Key="Text.RenameBranch.Target">Branch :</sys:String>
|
||||||
|
<sys:String x:Key="Text.RenameBranch.Name">New Name :</sys:String>
|
||||||
|
<sys:String x:Key="Text.RenameBranch.Name.Placeholder">Unique name for this branch</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Reset">Reset Current Branch To Revision</sys:String>
|
||||||
|
<sys:String x:Key="Text.Reset.Target">Current Branch :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Reset.MoveTo">Move To :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Reset.Mode">Reset Mode :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Revert">Confirm To Revert Commit</sys:String>
|
||||||
|
<sys:String x:Key="Text.Revert.Commit">Commit :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Revert.CommitChanges">Commit revert changes</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Preference">Preference</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.General">GENERAL SETTING</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.RestartRequired">RESTART REQUIRED</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Locale">Display Language :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.UseLight">Light Theme :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.CheckUpdate">Check for Update :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Git">GIT INSTANCE</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Git.Path">Install Path :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Git.Path.Placeholder">Input path for git.exe</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Git.Dir">Default Clone Dir :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Git.Dir.Placeholder">Default path to clone repo into</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Global">GLOBAL SETTING</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.User">Name :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Email">Email :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.CRLF">Auto CRLF</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Merger">MERGE TOOL</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Merger.Type">Merger :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Merger.Path">Install Path :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Merger.Path.Placeholder">Input path for merge tool</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Merger.Cmd">Command :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Dialog.GitExe">Select Git Executable File</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Dialog.GitDir">Select default clone path</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Dialog.Merger">Select {0} Install Path</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Stash">Stash</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stash.Title">Stash Local Changes</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stash.Message">Message :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stash.Message.Placeholder">Optional. Name of this stash</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stash.IncludeUntracked">Include untracked files</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Stashes">Stashes</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stashes.Stashes">STASHES</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stashes.Changes">CHANGES</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stashes.Changes.Tip">Untracked files not shown</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.TwoCommitsDiff">COMMIT : {0} -> {1}</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.UpdateAvailable">UPDATE AVAILABLE</sys:String>
|
||||||
|
<sys:String x:Key="Text.UpdateAvailable.Title">{0} is available!</sys:String>
|
||||||
|
<sys:String x:Key="Text.UpdateAvailable.Time">Publish Time</sys:String>
|
||||||
|
<sys:String x:Key="Text.UpdateAvailable.Based">Base On Commit</sys:String>
|
||||||
|
<sys:String x:Key="Text.UpdateAvailable.IsPreRelease">Is Pre-release</sys:String>
|
||||||
|
<sys:String x:Key="Text.UpdateAvailable.Download" xml:space="preserve">DOWNLOAD</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.WorkingCopy">Commit</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Unstaged">UNSTAGED</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Unstaged.Stage">STAGE</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Unstaged.StageAll">STAGE ALL</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Staged">STAGED</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Staged.Unstage">UNSTAGE</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Staged.UnstageAll">UNSTAGE ALL</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Conflicts">CONFLICTS DETECTED</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.UseTheirs">USE THEIRS</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.UseMine">USE MINE</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.OpenMerger">OPEN MERGE</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.CommitMessageTip">Enter commit message</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.MessageHistories">MESSAGE HISTORIES</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Amend">Amend</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Commit">COMMIT</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.CommitAndPush">COMMIT & PUSH</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.NoCommitHistories">NO RECENT INPUT MESSAGES</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.HasCommitHistories">RECENT INPUT MESSAGES</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Conflict.CherryPick">Cherry-Pick merge request detected! Press 'Abort' to restore original HEAD</sys:String>
|
||||||
|
<sys:String x:Key="Text.Conflict.Rebase">Rebase merge request detected! Press 'Abort' to restore original HEAD</sys:String>
|
||||||
|
<sys:String x:Key="Text.Conflict.Revert">Revert merge request detected! Press 'Abort' to restore original HEAD</sys:String>
|
||||||
|
<sys:String x:Key="Text.Conflict.Merge">Merge request detected! Press 'Abort' to restore original HEAD</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.NotConfigured">Git has NOT been configured.\nPlease to go [Preference] and configure it first.</sys:String>
|
||||||
|
<sys:String x:Key="Text.PathNotFound">Path[{0}] not exists!</sys:String>
|
||||||
|
<sys:String x:Key="Text.MissingBash">Can NOT locate bash.exe. Make sure bash.exe exists under the same folder with git.exe</sys:String>
|
||||||
|
<sys:String x:Key="Text.BinaryNotSupported">BINARY FILE BLAME NOT SUPPORTED!!!</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitDirNotFound">GIT_DIR for this repository NOT FOUND!</sys:String>
|
||||||
|
<sys:String x:Key="Text.InitGitFlowFailed">Initialize Git-flow failed!</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadGitFlowType">Bad git-flow branch type!</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadCloneFolder">EXISTS and FULL ACCESS CONTROL needed</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadRemoteUri">Remote git URL not supported</sys:String>
|
||||||
|
<sys:String x:Key="Text.EmptyRemoteName">Remote name can NOT be null</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadRemoteName">Bad name for remote. Regex: ^[\\w\\-\\.]+$</sys:String>
|
||||||
|
<sys:String x:Key="Text.DuplicatedRemoteName">Duplicated remote name!</sys:String>
|
||||||
|
<sys:String x:Key="Text.EmptyBranchName">Branch name can NOT be null</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadBranchName">Bad name for branch. Regex: ^[\\w\\-/\\.]+$</sys:String>
|
||||||
|
<sys:String x:Key="Text.DuplicatedBranchName">Duplicated branch name!</sys:String>
|
||||||
|
<sys:String x:Key="Text.EmptyTagName">Tag name can NOT be null</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadTagName">Bad name for tag. Regex: ^[\\w\\-\\.]+$</sys:String>
|
||||||
|
<sys:String x:Key="Text.DuplicatedTagName">Duplicated tag name!</sys:String>
|
||||||
|
<sys:String x:Key="Text.EmptyCommitMessage">Commit subject can NOT be empty</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadPatchFile">Invalid path for patch file</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadSubmodulePath">Invalid path for submodules</sys:String>
|
||||||
|
</ResourceDictionary>
|
432
src/Resources/Locales/zh_CN.xaml
Normal file
432
src/Resources/Locales/zh_CN.xaml
Normal file
|
@ -0,0 +1,432 @@
|
||||||
|
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
|
xmlns:sys="clr-namespace:System;assembly=mscorlib">
|
||||||
|
<sys:String x:Key="Text.Start" xml:space="preserve">开 始</sys:String>
|
||||||
|
<sys:String x:Key="Text.Sure" xml:space="preserve">确 定</sys:String>
|
||||||
|
<sys:String x:Key="Text.Save" xml:space="preserve">保 存</sys:String>
|
||||||
|
<sys:String x:Key="Text.Close" xml:space="preserve">关 闭</sys:String>
|
||||||
|
<sys:String x:Key="Text.Cancel" xml:space="preserve">取 消</sys:String>
|
||||||
|
<sys:String x:Key="Text.Goto">点击前往</sys:String>
|
||||||
|
<sys:String x:Key="Text.RevealFile">在文件浏览器中查看</sys:String>
|
||||||
|
<sys:String x:Key="Text.SaveAs">另存为...</sys:String>
|
||||||
|
<sys:String x:Key="Text.SaveFileTo">另存文件到...</sys:String>
|
||||||
|
<sys:String x:Key="Text.CopyPath">复制路径</sys:String>
|
||||||
|
<sys:String x:Key="Text.Bytes">{0} 字节</sys:String>
|
||||||
|
<sys:String x:Key="Text.Filter">过滤</sys:String>
|
||||||
|
<sys:String x:Key="Text.Optional">选填</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.URL">仓库地址 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.RepositoryURL">远程仓库地址</sys:String>
|
||||||
|
<sys:String x:Key="Text.ParentFolder">本地目录 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.ParentFolder.Placeholder">本地存放的父级目录,选填.</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.About">关于软件</sys:String>
|
||||||
|
<sys:String x:Key="Text.About.Title">SourceGit - 开源Git图形客户端</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Apply">应用补丁</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.Title">应用补丁</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.File">补丁文件 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.File.Placeholder">选择补丁文件</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.WS">空白符号处理 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.IgnoreWS">忽略空白符号</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.NoWarn">忽略</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.NoWarn.Desc">关闭所有警告</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.Warn">警告</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.Warn.Desc">应用补丁,输出关于空白符的警告</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.Error">错误</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.Error.Desc">输出错误,并终止应用补丁</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.ErrorAll">更多错误</sys:String>
|
||||||
|
<sys:String x:Key="Text.Apply.ErrorAll.Desc">与【错误】级别相似,但输出内容更多</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Blame">逐行追溯</sys:String>
|
||||||
|
<sys:String x:Key="Text.Blame.Title">追溯</sys:String>
|
||||||
|
<sys:String x:Key="Text.Blame.Tip">右键点击查看所选行修改记录</sys:String>
|
||||||
|
<sys:String x:Key="Text.Blame.SHA">提交指纹</sys:String>
|
||||||
|
<sys:String x:Key="Text.Blame.Author">修改者</sys:String>
|
||||||
|
<sys:String x:Key="Text.Blame.ModifyTime">修改时间</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Submodule">子模块</sys:String>
|
||||||
|
<sys:String x:Key="Text.Submodule.Add">添加子模块</sys:String>
|
||||||
|
<sys:String x:Key="Text.Submodule.FetchNested">拉取子孙模块</sys:String>
|
||||||
|
<sys:String x:Key="Text.Submodule.Open">打开仓库</sys:String>
|
||||||
|
<sys:String x:Key="Text.Submodule.CopyPath">复制路径</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.CherryPick">挑选此提交</sys:String>
|
||||||
|
<sys:String x:Key="Text.CherryPick.Title">挑选提交</sys:String>
|
||||||
|
<sys:String x:Key="Text.CherryPick.Commit">提交ID :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CherryPick.CommitChanges">提交变化</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Clone">克隆远程仓库</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.RemoteURL">远程仓库 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.RemoteURL.Placeholder">远程仓库地址</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.RemoteFolder">父级目录 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.RemoteFolder.Placeholder">选择存放本仓库的父级文件夹路径</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.LocalName">本地仓库名 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.LocalName.Placeholder">本地仓库目录的名字,选填</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.RemoteName">远程名 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Clone.RemoteName.Placeholder">远程的名字,选填</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info">基本信息</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.Author">修改者</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.Committer">提交者</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.SHA">提交指纹</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.Parents">父提交</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.Refs">相关引用</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.Message">提交信息</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Info.Changed">变更列表</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Changes">变更对比</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Changes.Search">查找文件...</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Changes.SwitchMode">切换树形/列表模式</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitViewer.Files">文件列表</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Configure">配置</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.Credential">仓库凭证</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.User">用户 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.User.Placeholder">应用于本仓库的用户名</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.Email">邮箱 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.Email.Placeholder">邮箱地址</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.CommitTemplate">提交模板</sys:String>
|
||||||
|
<sys:String x:Key="Text.Configure.Template">模板内容 :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.CreateBranch">新建分支</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.Title">创建本地分支</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.BasedOn">新分支基于 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.Name">新分支名 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.Name.Placeholder">填写分支名称</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.LocalChanges">未提交更改 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.LocalChanges.StashAndReply">贮藏并自动恢复</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.LocalChanges.Discard">忽略</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateBranch.Checkout">完成后切换到新分支</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.CreateTag">新建标签</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateTag.BasedOn">标签位于 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateTag.Name">标签名 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateTag.Name.Placeholder">推荐格式 :v1.0.0-alpha</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateTag.Message">标签描述 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.CreateTag.Message.Placeholder">选填</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Dashboard.Explore">浏览</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Explore.Tip">在文件浏览器中打开</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Terminal">终端</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Terminal.Tip">打开GIT终端</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Search">查找</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Search.Tip">查找提交</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Configure.Tip">配置本仓库</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Workspace">工作区</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.LocalBranches">本地分支</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.NewBranch">新建分支</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Remotes">远程列表</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Remotes.Add">添加远程</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Tags">标签列表</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Tags.Add">新建标签</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Submodules">子模块列表</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Submodules.Add">添加子模块</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Submodules.Update">更新子模块</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Resolve">解决冲突</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Continue">下一步</sys:String>
|
||||||
|
<sys:String x:Key="Text.Dashboard.Abort">终止冲突解决</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.GitFlow">GIT工作流</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.Init">初始化GIT工作流</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.ProductionBranch">发布分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.DevelopBranch">开发分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.Feature">特性分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.Release">版本分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.Hotfix">修复分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.FeaturePrefix">特性分支名前缀 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.ReleasePrefix">版本分支名前缀 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.HotfixPrefix">修复分支名前缀 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.TagPrefix">版本标签前缀 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartFeature">开始特性分支...</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartRelease">开始版本分支...</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartHotfix">开始修复分支...</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartFeatureTitle">开始特性分支</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartReleaseTitle">开始版本分支</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartHotfixTitle">开始修复分支</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.StartPlaceholder">输入分支名</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.FinishFeature">结束特性分支</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.FinishRelease">结束版本分支</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.FinishHotfix">结束修复分支</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.BranchRequired">{0}分支名未填写!</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.BranchInvalid">{0}分支名包含非法字符!</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.PrefixRequired">{0}前缀未填写!</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.PrefixInvalid">{0}前缀包含非法字符!</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitFlow.DevSameAsProd">开发分支与发布分支不可相同!</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.RepoCM.Refresh">刷新</sys:String>
|
||||||
|
<sys:String x:Key="Text.RepoCM.Bookmark">书签</sys:String>
|
||||||
|
<sys:String x:Key="Text.RepoCM.CopyPath">复制路径</sys:String>
|
||||||
|
<sys:String x:Key="Text.RepoCM.Open">打开</sys:String>
|
||||||
|
<sys:String x:Key="Text.RepoCM.Explore">在浏览器中查看</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.BranchCM.Push">推送 '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.DiscardAll">放弃所有更改</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.FastForward">快进到 '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Pull">拉回 '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.PullInto">拉回 '{0}' 内容至 '{1}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Checkout">检出 '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Merge">合并 '{0}' 到 '{1}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Rebase">变基 '{0}' 分支至 '{1}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Finish">GIT工作流 - 完成 '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Rename">重命名 '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Delete">删除 '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.Tracking">切换上游分支...</sys:String>
|
||||||
|
<sys:String x:Key="Text.BranchCM.CopyName">复制分支名</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.RemoteCM.Fetch">拉取 '{0}' 更新</sys:String>
|
||||||
|
<sys:String x:Key="Text.RemoteCM.Edit">编辑 '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.RemoteCM.Delete">删除 '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.RemoteCM.CopyURL">复制远程地址</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.CommitCM.Reset">重置 '{0}' 到此处</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.InteractiveRebase">从此处开始对 '{0}' 交互式变基</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.Rebase">变基 '{0}' 到此处</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.CherryPick">挑选此提交</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.Revert">回滚此提交</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.SaveAsPatch">另存为补丁</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.CopySHA">复制提交指纹</sys:String>
|
||||||
|
<sys:String x:Key="Text.CommitCM.CopyInfo">复制提交信息</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.TagCM.Push">推送 '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.TagCM.Delete">删除 '{0}'</sys:String>
|
||||||
|
<sys:String x:Key="Text.TagCM.Copy">复制标签名</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.StashCM.Apply">应用</sys:String>
|
||||||
|
<sys:String x:Key="Text.StashCM.Pop">应用并删除</sys:String>
|
||||||
|
<sys:String x:Key="Text.StashCM.Drop">删除</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.FileCM.Unstage">从暂存中移除</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.Stage">暂存...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.Discard">放弃更改...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.Stash">贮藏...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.UnstageMulti">从暂存中移除 {0} 个文件</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.StageMulti">暂存 {0} 个文件...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.DiscardMulti">放弃 {0} 个文件的更改...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.StashMulti">贮藏选中的 {0} 个文件...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileCM.SaveAsPatch">另存为补丁...</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.DeleteBranch">确定要删除此分支吗?</sys:String>
|
||||||
|
<sys:String x:Key="Text.DeleteBranch.Branch">分支名 :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.DeleteRemote">确定要移除该远程吗?</sys:String>
|
||||||
|
<sys:String x:Key="Text.DeleteRemote.Remote">远程名 :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.DeleteTag">确定要移除该标签吗?</sys:String>
|
||||||
|
<sys:String x:Key="Text.DeleteTag.Tag">标签名 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.DeleteTag.WithRemote">同时删除远程仓库中的此标签</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Diff.Next">下一个差异</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Prev">上一个差异</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Mode">切换显示模式</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Welcome">请选择需要对比的文件</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.NoChange">没有变更或仅有换行符差异</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Binary">二进制文件</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Binary.Old">原始大小 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Binary.New">当前大小 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.LFS">LFS对象变更</sys:String>
|
||||||
|
<sys:String x:Key="Text.Diff.Copy">复制</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Discard">放弃更改确认</sys:String>
|
||||||
|
<sys:String x:Key="Text.Discard.Changes">需要放弃的变更 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Discard.Warning">本操作不支持回退,请确认后继续!!!</sys:String>
|
||||||
|
<sys:String x:Key="Text.Discard.All">所有本地址未提交的修改</sys:String>
|
||||||
|
<sys:String x:Key="Text.Discard.Total">总计{0}项选中更改</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Fetch">拉取</sys:String>
|
||||||
|
<sys:String x:Key="Text.Fetch.Title">拉取远程仓库内容</sys:String>
|
||||||
|
<sys:String x:Key="Text.Fetch.Remote">远程仓库 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Fetch.AllRemotes">拉取所有的远程仓库</sys:String>
|
||||||
|
<sys:String x:Key="Text.Fetch.Prune">自动清理远程已删除分支</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.FileHistory">文件历史</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.FileDisplayMode">切换显示模式</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileDisplayMode.Grid">网格模式</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileDisplayMode.List">列表模式</sys:String>
|
||||||
|
<sys:String x:Key="Text.FileDisplayMode.Tree">树形模式</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.FolderDialog">选择目录...</sys:String>
|
||||||
|
<sys:String x:Key="Text.FolderDialog.Selected">当前选择 :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Histories">历史记录</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Search">查询提交指纹、信息、作者。回车键开始,ESC键取消</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.SearchClear">清空</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.DisplayMode">切换横向/纵向显示</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Selected">已选中{0}项提交</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Guide">操作说明</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Guide_1">1. 单选时,显示选中提交的详细信息</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Guide_2">2. 双选时,按选中顺序对比两个提交</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Guide_3">3. 多选时,仅统计选中行数</sys:String>
|
||||||
|
<sys:String x:Key="Text.Histories.Guide_4">4. 右键用于操作选中的某个提交</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Init">初始化新仓库</sys:String>
|
||||||
|
<sys:String x:Key="Text.Init.Path">路径 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Init.Tip">点击【确定】将在此目录执行`git init`操作</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.InteractiveRebase">交互式变基</sys:String>
|
||||||
|
<sys:String x:Key="Text.InteractiveRebase.Target">操作分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.InteractiveRebase.On">开始提交 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.InteractiveRebase.Start" xml:space="preserve">开 始</sys:String>
|
||||||
|
<sys:String x:Key="Text.InteractiveRebase.MoveUp">向上移动</sys:String>
|
||||||
|
<sys:String x:Key="Text.InteractiveRebase.MoveDown">向下移动</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Launcher">Source Git</sys:String>
|
||||||
|
<sys:String x:Key="Text.Launcher.NewPageButton">新建空白页</sys:String>
|
||||||
|
<sys:String x:Key="Text.Launcher.Preference">偏好设置</sys:String>
|
||||||
|
<sys:String x:Key="Text.Launcher.About">关于</sys:String>
|
||||||
|
<sys:String x:Key="Text.Launcher.Error">出错了</sys:String>
|
||||||
|
<sys:String x:Key="Text.Launcher.NewPage">新标签页</sys:String>
|
||||||
|
<sys:String x:Key="Text.Launcher.NewPageTip">起始页</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Merge">合并分支</sys:String>
|
||||||
|
<sys:String x:Key="Text.Merge.Source">合并分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Merge.Into">目标分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Merge.Mode">合并方式 :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.NewPage.Title">欢迎使用本软件</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.OpenOrInit">打开本地仓库</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.Clone">克隆远程仓库</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.Repositories">仓库列表</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.DragDrop">支持拖放操作</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.OpenOrInitDialog">打开/初始化本地仓库</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.NewFolder">新建分组</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.NewSubFolder">新建子分组</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.Rename">重命名</sys:String>
|
||||||
|
<sys:String x:Key="Text.NewPage.Delete">删除</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Pull">拉回</sys:String>
|
||||||
|
<sys:String x:Key="Text.Pull.Title">拉回(拉取并合并)</sys:String>
|
||||||
|
<sys:String x:Key="Text.Pull.Remote">远程 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Pull.Branch">拉取分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Pull.Into">本地分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Pull.UseRebase">使用变基方式合并分支</sys:String>
|
||||||
|
<sys:String x:Key="Text.Pull.AutoStash">自动贮藏并恢复本地变更</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Push">推送</sys:String>
|
||||||
|
<sys:String x:Key="Text.Push.Title">推送到远程仓库</sys:String>
|
||||||
|
<sys:String x:Key="Text.Push.Local">本地分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Push.Remote">远程仓库 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Push.To">远程分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Push.WithAllTags">同时推送标签</sys:String>
|
||||||
|
<sys:String x:Key="Text.Push.Force">启用强制推送</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.PushTag">推送标签到远程仓库</sys:String>
|
||||||
|
<sys:String x:Key="Text.PushTag.Tag">标签 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.PushTag.Remote">远程仓库 :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Rebase">变基操作</sys:String>
|
||||||
|
<sys:String x:Key="Text.Rebase.Target">分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Rebase.On">目标提交 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Rebase.AutoStash">自动贮藏并恢复本地变更</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Remote.AddTitle">添加远程仓库</sys:String>
|
||||||
|
<sys:String x:Key="Text.Remote.EditTitle">编辑远程仓库</sys:String>
|
||||||
|
<sys:String x:Key="Text.Remote.Name">远程名 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Remote.Name.Placeholder">唯一远程名</sys:String>
|
||||||
|
<sys:String x:Key="Text.Remote.URL">仓库地址 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Remote.URL.Placeholder">远程仓库的地址</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.RenameBranch">分支重命名</sys:String>
|
||||||
|
<sys:String x:Key="Text.RenameBranch.Target">分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.RenameBranch.Name">新的名称 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.RenameBranch.Name.Placeholder">新的分支名不能与现有分支名相同</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Reset">重置当前分支到指定版本</sys:String>
|
||||||
|
<sys:String x:Key="Text.Reset.Target">当前分支 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Reset.MoveTo">提交 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Reset.Mode">重置模式 :</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Revert">确定要回滚吗?</sys:String>
|
||||||
|
<sys:String x:Key="Text.Revert.Commit">目标提交 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Revert.CommitChanges">回滚后提交更改</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Preference">偏好设置</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.General">通用配置</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.RestartRequired">需要重启软件</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Locale">显示语言 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.UseLight">启用浅色主题 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.CheckUpdate">检测更新 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Git">GIT配置</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Git.Path">安装路径 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Git.Path.Placeholder">填写git.exe所在位置</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Git.Dir">默认克隆路径 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Git.Dir.Placeholder">默认的仓库本地存放位置</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Global">全局设置</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.User">用户名 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Email">邮箱 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.CRLF">自动换行转换 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Merger">外部合并工具</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Merger.Type">工具 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Merger.Path">安装路径 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Merger.Path.Placeholder">填写工具可执行文件所在位置</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Merger.Cmd">指令 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Dialog.GitExe">选择git.exe所在位置</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Dialog.GitDir">选择仓库本地存放位置</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.Dialog.Merger">选择{0}所在位置</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Stash">贮藏</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stash.Title">贮藏本地变更</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stash.Message">信息 :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stash.Message.Placeholder">选填,用于命名此贮藏</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stash.IncludeUntracked">包含未跟踪的文件</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Stashes">贮藏列表</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stashes.Stashes">贮藏列表</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stashes.Changes">查看变更</sys:String>
|
||||||
|
<sys:String x:Key="Text.Stashes.Changes.Tip">不显示未跟踪的文件</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.TwoCommitsDiff">对比提交 : {0} -> {1}</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.UpdateAvailable">检测更新</sys:String>
|
||||||
|
<sys:String x:Key="Text.UpdateAvailable.Title">{0}已发布!</sys:String>
|
||||||
|
<sys:String x:Key="Text.UpdateAvailable.Time">发布时间</sys:String>
|
||||||
|
<sys:String x:Key="Text.UpdateAvailable.Based">GIT版本</sys:String>
|
||||||
|
<sys:String x:Key="Text.UpdateAvailable.IsPreRelease">预览版</sys:String>
|
||||||
|
<sys:String x:Key="Text.UpdateAvailable.Download" xml:space="preserve">下 载</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.WorkingCopy">本地更改</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Unstaged">未暂存</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Unstaged.Stage">暂存选中</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Unstaged.StageAll">暂存所有</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Staged">已暂存</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Staged.Unstage">从暂存区移除选中</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Staged.UnstageAll">从暂存区移除所有</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Conflicts">检测到冲突</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.UseTheirs">使用THEIRS</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.UseMine">使用MINE</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.OpenMerger">打开合并工具</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.CommitMessageTip">填写提交信息</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.MessageHistories">历史提交信息</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Amend">修补</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.Commit">提交</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.CommitAndPush">提交并推送</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.NoCommitHistories">没有提交信息记录</sys:String>
|
||||||
|
<sys:String x:Key="Text.WorkingCopy.HasCommitHistories">最近输入的提交信息</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.Conflict.CherryPick">检测到挑选提交冲突! </sys:String>
|
||||||
|
<sys:String x:Key="Text.Conflict.Rebase">检测到变基冲突!</sys:String>
|
||||||
|
<sys:String x:Key="Text.Conflict.Revert">检测到回滚提交冲突!</sys:String>
|
||||||
|
<sys:String x:Key="Text.Conflict.Merge">检测到分支合并冲突!</sys:String>
|
||||||
|
|
||||||
|
<sys:String x:Key="Text.NotConfigured">GIT尚未配置。请打开【偏好设置】配置GIT路径。</sys:String>
|
||||||
|
<sys:String x:Key="Text.PathNotFound">路径({0})不存在或不可读取!</sys:String>
|
||||||
|
<sys:String x:Key="Text.MissingBash">无法找到bash.exe,请确保其在git.exe同目录中!</sys:String>
|
||||||
|
<sys:String x:Key="Text.BinaryNotSupported">二进制文件不支持该操作!!!</sys:String>
|
||||||
|
<sys:String x:Key="Text.GitDirNotFound">获取仓库GIT_DIR失败!</sys:String>
|
||||||
|
<sys:String x:Key="Text.InitGitFlowFailed">初始化GIT FLOW失败!</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadGitFlowType">不支持的GIT FLOW分支!</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadCloneFolder">目录不存在或不可写!!!</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadRemoteUri">非法的远程仓库地址!</sys:String>
|
||||||
|
<sys:String x:Key="Text.EmptyRemoteName">远程仓库地址不可为空</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadRemoteName">远程仓库地址包含非法字符!仅支持字母、数字、下划线、横线或英文点号!</sys:String>
|
||||||
|
<sys:String x:Key="Text.DuplicatedRemoteName">远程仓库名已存在!</sys:String>
|
||||||
|
<sys:String x:Key="Text.EmptyBranchName">分支名不可为空</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadBranchName">分支名包含非法字符!仅支持字母、数字、下划线、横线或英文点号!</sys:String>
|
||||||
|
<sys:String x:Key="Text.DuplicatedBranchName">分支名已存在!</sys:String>
|
||||||
|
<sys:String x:Key="Text.EmptyTagName">标签名不可为空!</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadTagName">标签名包含非法字符!仅支持字母、数字、下划线、横线或英文点号!</sys:String>
|
||||||
|
<sys:String x:Key="Text.DuplicatedTagName">标签名已存在!</sys:String>
|
||||||
|
<sys:String x:Key="Text.EmptyCommitMessage">提交信息未填写!</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadPatchFile">补丁文件不存在或不可访问!</sys:String>
|
||||||
|
<sys:String x:Key="Text.BadSubmodulePath">非法的子模块路径!</sys:String>
|
||||||
|
</ResourceDictionary>
|
|
@ -5,7 +5,7 @@
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Height="280" Width="400"
|
Height="280" Width="400"
|
||||||
Title="About"
|
Title="{StaticResource Text.About}"
|
||||||
WindowStartupLocation="CenterOwner" ResizeMode="NoResize">
|
WindowStartupLocation="CenterOwner" ResizeMode="NoResize">
|
||||||
|
|
||||||
<!-- Enable WindowChrome Feature -->
|
<!-- Enable WindowChrome Feature -->
|
||||||
|
@ -33,7 +33,7 @@
|
||||||
<Path Margin="6,0,2,0" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Info}"/>
|
<Path Margin="6,0,2,0" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Info}"/>
|
||||||
|
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<Label Grid.Column="1" Content="ABOUT" FontWeight="Light"/>
|
<Label Grid.Column="1" Content="{StaticResource Text.About}" FontWeight="Light"/>
|
||||||
|
|
||||||
<!-- Close Button -->
|
<!-- Close Button -->
|
||||||
<Button Click="Quit" Width="32" Grid.Column="3" WindowChrome.IsHitTestVisibleInChrome="True">
|
<Button Click="Quit" Width="32" Grid.Column="3" WindowChrome.IsHitTestVisibleInChrome="True">
|
||||||
|
@ -64,7 +64,7 @@
|
||||||
<Path Width="64" Height="64" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Git}" Fill="{StaticResource Brush.Logo}"/>
|
<Path Width="64" Height="64" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Git}" Fill="{StaticResource Brush.Logo}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="1" Content="SourceGit - OPEN SOURCE GIT CLIENT" HorizontalContentAlignment="Center" VerticalContentAlignment="Bottom" FontSize="18" FontWeight="Bold"/>
|
<Label Grid.Row="1" Content="{StaticResource Text.About.Title}" HorizontalContentAlignment="Center" VerticalContentAlignment="Bottom" FontSize="18" FontWeight="Bold"/>
|
||||||
<Label Grid.Row="2" x:Name="version" HorizontalContentAlignment="Center" FontSize="11"/>
|
<Label Grid.Row="2" x:Name="version" HorizontalContentAlignment="Center" FontSize="11"/>
|
||||||
|
|
||||||
<Label Grid.Row="3" HorizontalContentAlignment="Center" FontSize="11">
|
<Label Grid.Row="3" HorizontalContentAlignment="Center" FontSize="11">
|
||||||
|
|
|
@ -23,12 +23,12 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Add Submodule"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Submodule.Add}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="URL :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.URL}"/>
|
||||||
<TextBox x:Name="txtRepoUrl" Grid.Row="2" Grid.Column="1"
|
<TextBox x:Name="txtRepoUrl" Grid.Row="2" Grid.Column="1"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Git Repository URL">
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.RepositoryURL}">
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding Path="RepoURL" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
<Binding Path="RepoURL" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
|
@ -38,11 +38,11 @@
|
||||||
</TextBox.Text>
|
</TextBox.Text>
|
||||||
</TextBox>
|
</TextBox>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="Parent Folder :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.ParentFolder}"/>
|
||||||
<TextBox Grid.Row="3" Grid.Column="1"
|
<TextBox Grid.Row="3" Grid.Column="1"
|
||||||
x:Name="txtPath"
|
x:Name="txtPath"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Relative foler to store this module. Optional.">
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.ParentFolder.Placeholder}">
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding Path="LocalPath" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
<Binding Path="LocalPath" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
|
@ -55,7 +55,7 @@
|
||||||
<CheckBox Grid.Row="4" Grid.Column="1"
|
<CheckBox Grid.Row="4" Grid.Column="1"
|
||||||
x:Name="chkRecursive"
|
x:Name="chkRecursive"
|
||||||
IsChecked="True"
|
IsChecked="True"
|
||||||
Content="Fetch nested submodules"/>
|
Content="{StaticResource Text.Submodule.FetchNested}"/>
|
||||||
|
|
||||||
<Grid Grid.Row="6" Grid.ColumnSpan="2">
|
<Grid Grid.Row="6" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -65,8 +65,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Sure" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Sure" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -28,9 +28,9 @@
|
||||||
<converters:InverseBool x:Key="InverseBool"/>
|
<converters:InverseBool x:Key="InverseBool"/>
|
||||||
</Grid.Resources>
|
</Grid.Resources>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Apply Patch"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Apply.Title}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Patch File :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Apply.File}"/>
|
||||||
<Grid Grid.Row="2" Grid.Column="1">
|
<Grid Grid.Row="2" Grid.Column="1">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
x:Name="txtPatchFile"
|
x:Name="txtPatchFile"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Select .patch file to apply">
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Apply.File.Placeholder}">
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding Path="PatchFile" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
<Binding Path="PatchFile" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="Whitespace :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Apply.WS}"/>
|
||||||
<ComboBox x:Name="combWhitespaceOptions" Grid.Row="3" Grid.Column="1" VerticalAlignment="Center" IsEnabled="{Binding ElementName=chkIgnoreWhitespace, Path=IsChecked, Converter={StaticResource InverseBool}}">
|
<ComboBox x:Name="combWhitespaceOptions" Grid.Row="3" Grid.Column="1" VerticalAlignment="Center" IsEnabled="{Binding ElementName=chkIgnoreWhitespace, Path=IsChecked, Converter={StaticResource InverseBool}}">
|
||||||
<ComboBox.ItemTemplate>
|
<ComboBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
|
@ -71,7 +71,7 @@
|
||||||
<CheckBox Grid.Row="4" Grid.Column="1"
|
<CheckBox Grid.Row="4" Grid.Column="1"
|
||||||
x:Name="chkIgnoreWhitespace"
|
x:Name="chkIgnoreWhitespace"
|
||||||
IsChecked="True"
|
IsChecked="True"
|
||||||
Content="Ignore whitespace changes"/>
|
Content="{StaticResource Text.Apply.IgnoreWS}"/>
|
||||||
|
|
||||||
<Grid Grid.Row="6" Grid.ColumnSpan="2">
|
<Grid Grid.Row="6" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -81,8 +81,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
|
@ -20,8 +20,8 @@ namespace SourceGit.UI {
|
||||||
public string Arg { get; set; }
|
public string Arg { get; set; }
|
||||||
|
|
||||||
public WhitespaceOption(string n, string d, string a) {
|
public WhitespaceOption(string n, string d, string a) {
|
||||||
Name = n;
|
Name = App.Text(n);
|
||||||
Desc = d;
|
Desc = App.Text(d);
|
||||||
Arg = a;
|
Arg = a;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -39,10 +39,10 @@ namespace SourceGit.UI {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
combWhitespaceOptions.ItemsSource = new WhitespaceOption[] {
|
combWhitespaceOptions.ItemsSource = new WhitespaceOption[] {
|
||||||
new WhitespaceOption("No Warn", "Turns off the trailing whitespace warning", "nowarn"),
|
new WhitespaceOption("Apply.NoWarn", "Apply.NoWarn.Desc", "nowarn"),
|
||||||
new WhitespaceOption("Warn", "Outputs warnings for a few such errors, but applies", "warn"),
|
new WhitespaceOption("Apply.Warn", "Apply.Warn.Desc", "warn"),
|
||||||
new WhitespaceOption("Error", "Raise errors and refuses to apply the patch", "error"),
|
new WhitespaceOption("Apply.Error", "Apply.Error.Desc", "error"),
|
||||||
new WhitespaceOption("Error All", "Similar to 'error', but shows more", "error-all"),
|
new WhitespaceOption("Apply.ErrorAll", "Apply.ErrorAll.Desc", "error-all"),
|
||||||
};
|
};
|
||||||
combWhitespaceOptions.SelectedIndex = 0;
|
combWhitespaceOptions.SelectedIndex = 0;
|
||||||
}
|
}
|
||||||
|
@ -63,7 +63,7 @@ namespace SourceGit.UI {
|
||||||
private void FindPatchFile(object sender, RoutedEventArgs e) {
|
private void FindPatchFile(object sender, RoutedEventArgs e) {
|
||||||
var dialog = new OpenFileDialog();
|
var dialog = new OpenFileDialog();
|
||||||
dialog.Filter = "Patch File|*.patch";
|
dialog.Filter = "Patch File|*.patch";
|
||||||
dialog.Title = "Select Patch File";
|
dialog.Title = App.Text("Apply.File.Placeholder");
|
||||||
dialog.InitialDirectory = repo.Path;
|
dialog.InitialDirectory = repo.Path;
|
||||||
dialog.CheckFileExists = true;
|
dialog.CheckFileExists = true;
|
||||||
|
|
||||||
|
|
|
@ -5,7 +5,7 @@
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="Blame"
|
Title="{StaticResource Text.Blame.Title}"
|
||||||
Height="600" Width="800">
|
Height="600" Width="800">
|
||||||
|
|
||||||
<!-- Enable WindowChrome -->
|
<!-- Enable WindowChrome -->
|
||||||
|
@ -53,7 +53,7 @@
|
||||||
Fill="{StaticResource Brush.Logo}"
|
Fill="{StaticResource Brush.Logo}"
|
||||||
WindowChrome.IsHitTestVisibleInChrome="True"
|
WindowChrome.IsHitTestVisibleInChrome="True"
|
||||||
MouseLeftButtonDown="LogoMouseButtonDown"/>
|
MouseLeftButtonDown="LogoMouseButtonDown"/>
|
||||||
<Label Content="SOURCE GIT - BLAME" FontWeight="Light"/>
|
<Label Content="{StaticResource Text.Blame.Title}" FontWeight="Light"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<!-- Options -->
|
<!-- Options -->
|
||||||
|
@ -102,7 +102,7 @@
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Column="0" x:Name="blameFile" HorizontalAlignment="Left" FontSize="11" Foreground="{StaticResource Brush.FG2}" FontFamily="Consolas"/>
|
<Label Grid.Column="0" x:Name="blameFile" HorizontalAlignment="Left" FontSize="11" Foreground="{StaticResource Brush.FG2}" FontFamily="Consolas"/>
|
||||||
<Label Grid.Column="1" HorizontalAlignment="Right" Foreground="{StaticResource Brush.FG2}" FontSize="11" Content="Use right mouse button to view commit information."/>
|
<Label Grid.Column="1" HorizontalAlignment="Right" Foreground="{StaticResource Brush.FG2}" FontSize="11" Content="{StaticResource Text.Blame.Tip}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
|
@ -187,11 +187,11 @@
|
||||||
<ColumnDefinition Width="Auto"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.Column="0" Content="COMMIT SHA" Foreground="{StaticResource Brush.FG2}"/>
|
<Label Grid.Row="0" Grid.Column="0" Content="{StaticResource Text.Blame.SHA}" Foreground="{StaticResource Brush.FG2}"/>
|
||||||
<Label Grid.Row="0" Grid.Column="1" x:Name="commitID"/>
|
<Label Grid.Row="0" Grid.Column="1" x:Name="commitID"/>
|
||||||
<Label Grid.Row="1" Grid.Column="0" Content="AUTHOR" Foreground="{StaticResource Brush.FG2}"/>
|
<Label Grid.Row="1" Grid.Column="0" Content="{StaticResource Text.Blame.Author}" Foreground="{StaticResource Brush.FG2}"/>
|
||||||
<Label Grid.Row="1" Grid.Column="1" x:Name="authorName"/>
|
<Label Grid.Row="1" Grid.Column="1" x:Name="authorName"/>
|
||||||
<Label Grid.Row="2" Grid.Column="0" Content="MODIFY TIME" Foreground="{StaticResource Brush.FG2}"/>
|
<Label Grid.Row="2" Grid.Column="0" Content="{StaticResource Text.Blame.ModifyTime}" Foreground="{StaticResource Brush.FG2}"/>
|
||||||
<Label Grid.Row="2" Grid.Column="1" x:Name="authorTime"/>
|
<Label Grid.Row="2" Grid.Column="1" x:Name="authorTime"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
|
@ -66,7 +66,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
if (result.IsBinary) {
|
if (result.IsBinary) {
|
||||||
var error = new Record();
|
var error = new Record();
|
||||||
error.Line = new Git.Blame.Line() { Content = "BINARY FILE BLAME NOT SUPPORTED!!!", CommitSHA = null };
|
error.Line = new Git.Blame.Line() { Content = App.Text("BinaryNotSupported"), CommitSHA = null };
|
||||||
error.BG = Brushes.Red;
|
error.BG = Brushes.Red;
|
||||||
error.LineNumber = 0;
|
error.LineNumber = 0;
|
||||||
records.Add(error);
|
records.Add(error);
|
||||||
|
@ -192,7 +192,7 @@ namespace SourceGit.UI {
|
||||||
if (record == null || record.Line.CommitSHA == null) return;
|
if (record == null || record.Line.CommitSHA == null) return;
|
||||||
|
|
||||||
Hyperlink link = new Hyperlink(new Run(record.Line.CommitSHA));
|
Hyperlink link = new Hyperlink(new Run(record.Line.CommitSHA));
|
||||||
link.ToolTip = "CLICK TO GO";
|
link.ToolTip = App.Text("Goto");
|
||||||
link.Click += (o, e) => {
|
link.Click += (o, e) => {
|
||||||
repo.OnNavigateCommit?.Invoke(record.Line.CommitSHA);
|
repo.OnNavigateCommit?.Invoke(record.Line.CommitSHA);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
|
|
@ -20,15 +20,15 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Cherry Pick"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.CherryPick.Title}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Commit :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.CherryPick.Commit}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Commit}" Margin="4,0"/>
|
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Commit}" Margin="4,0"/>
|
||||||
<TextBlock x:Name="desc" Text="cad" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="desc" Text="cad" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<CheckBox Grid.Row="3" Grid.Column="1" x:Name="chkCommitChanges" IsChecked="True" Content="Commit the changes"/>
|
<CheckBox Grid.Row="3" Grid.Column="1" x:Name="chkCommitChanges" IsChecked="True" Content="{StaticResource Text.CherryPick.CommitChanges}"/>
|
||||||
|
|
||||||
<Grid Grid.Row="5" Grid.ColumnSpan="2">
|
<Grid Grid.Row="5" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -38,8 +38,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
|
@ -24,12 +24,12 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Clone Remote Repository"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Clone}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Repository URL :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Clone.RemoteURL}"/>
|
||||||
<TextBox x:Name="txtUrl" Grid.Row="2" Grid.Column="1"
|
<TextBox x:Name="txtUrl" Grid.Row="2" Grid.Column="1"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Git Repository URL">
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Clone.RemoteURL.Placeholder}">
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding Path="RemoteUri" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
<Binding Path="RemoteUri" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
|
@ -39,7 +39,7 @@
|
||||||
</TextBox.Text>
|
</TextBox.Text>
|
||||||
</TextBox>
|
</TextBox>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="Parent Folder :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Clone.RemoteFolder}"/>
|
||||||
<Grid Grid.Row="3" Grid.Column="1">
|
<Grid Grid.Row="3" Grid.Column="1">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
|
@ -49,7 +49,7 @@
|
||||||
<TextBox Grid.Column="0"
|
<TextBox Grid.Column="0"
|
||||||
x:Name="txtParentFolder"
|
x:Name="txtParentFolder"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Folder to contain this repository">
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Clone.RemoteFolder.Placeholder}">
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding Path="ParentFolder" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
<Binding Path="ParentFolder" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
|
@ -63,19 +63,19 @@
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" Content="Local Name :"/>
|
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Clone.LocalName}"/>
|
||||||
<TextBox Grid.Row="4" Grid.Column="1"
|
<TextBox Grid.Row="4" Grid.Column="1"
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Repository name. Optional."
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Clone.LocalName.Placeholder}"
|
||||||
Text="{Binding LocalName, ElementName=me, Mode=TwoWay}">
|
Text="{Binding LocalName, ElementName=me, Mode=TwoWay}">
|
||||||
</TextBox>
|
</TextBox>
|
||||||
|
|
||||||
<Label Grid.Row="5" Grid.Column="0" HorizontalAlignment="Right" Content="Remote Name :"/>
|
<Label Grid.Row="5" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Clone.RemoteName}"/>
|
||||||
<TextBox Grid.Row="5" Grid.Column="1"
|
<TextBox Grid.Row="5" Grid.Column="1"
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Remote name. Optional."
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Clone.RemoteName.Placeholder}"
|
||||||
Text="{Binding RemoteName, ElementName=me, Mode=TwoWay}">
|
Text="{Binding RemoteName, ElementName=me, Mode=TwoWay}">
|
||||||
</TextBox>
|
</TextBox>
|
||||||
|
|
||||||
|
@ -87,8 +87,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -49,7 +49,7 @@ namespace SourceGit.UI {
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void SelectParentFolder(object sender, RoutedEventArgs e) {
|
private void SelectParentFolder(object sender, RoutedEventArgs e) {
|
||||||
FolderDailog.Open("Select folder to store repository", path => {
|
FolderDailog.Open(App.Text("Clone.RemoteFolder.Placeholder"), path => {
|
||||||
txtParentFolder.Text = path;
|
txtParentFolder.Text = path;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
|
@ -32,7 +32,7 @@
|
||||||
</UserControl.Resources>
|
</UserControl.Resources>
|
||||||
|
|
||||||
<TabControl>
|
<TabControl>
|
||||||
<TabItem Header="INFORMATION">
|
<TabItem Header="{StaticResource Text.CommitViewer.Info}">
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
|
@ -68,7 +68,7 @@
|
||||||
|
|
||||||
<Image Grid.Row="0" Grid.RowSpan="3" Grid.Column="0" Width="64" Height="64" x:Name="authorAvatar" HorizontalAlignment="Right"/>
|
<Image Grid.Row="0" Grid.RowSpan="3" Grid.Column="0" Width="64" Height="64" x:Name="authorAvatar" HorizontalAlignment="Right"/>
|
||||||
|
|
||||||
<TextBlock Grid.Row="0" Grid.Column="1" Margin="15,0,0,0" Text="AUTHOR" Opacity=".6" Foreground="{StaticResource Brush.FG1}"/>
|
<TextBlock Grid.Row="0" Grid.Column="1" Margin="15,0,0,0" Text="{StaticResource Text.CommitViewer.Info.Author}" Opacity=".6" Foreground="{StaticResource Brush.FG1}"/>
|
||||||
<StackPanel Grid.Row="1" Grid.Column="1" Orientation="Horizontal" Margin="12,0,0,0">
|
<StackPanel Grid.Row="1" Grid.Column="1" Orientation="Horizontal" Margin="12,0,0,0">
|
||||||
<TextBox x:Name="authorName" IsReadOnly="True" Background="Transparent" Foreground="{StaticResource Brush.FG1}" BorderThickness="0"/>
|
<TextBox x:Name="authorName" IsReadOnly="True" Background="Transparent" Foreground="{StaticResource Brush.FG1}" BorderThickness="0"/>
|
||||||
<TextBox x:Name="authorEmail" Margin="4,0,0,0" IsReadOnly="True" Background="Transparent" Foreground="{StaticResource Brush.FG2}" BorderThickness="0"/>
|
<TextBox x:Name="authorEmail" Margin="4,0,0,0" IsReadOnly="True" Background="Transparent" Foreground="{StaticResource Brush.FG2}" BorderThickness="0"/>
|
||||||
|
@ -95,7 +95,7 @@
|
||||||
|
|
||||||
<Image Grid.Row="0" Grid.RowSpan="3" Grid.Column="0" Width="64" Height="64" x:Name="committerAvatar" HorizontalAlignment="Right"/>
|
<Image Grid.Row="0" Grid.RowSpan="3" Grid.Column="0" Width="64" Height="64" x:Name="committerAvatar" HorizontalAlignment="Right"/>
|
||||||
|
|
||||||
<TextBlock Grid.Row="0" Grid.Column="1" Margin="15,0,0,0" Text="COMMITTER" Opacity=".6" Foreground="{StaticResource Brush.FG1}"/>
|
<TextBlock Grid.Row="0" Grid.Column="1" Margin="15,0,0,0" Text="{StaticResource Text.CommitViewer.Info.Committer}" Opacity=".6" Foreground="{StaticResource Brush.FG1}"/>
|
||||||
<StackPanel Grid.Row="1" Grid.Column="1" Margin="12,0,0,0" Orientation="Horizontal">
|
<StackPanel Grid.Row="1" Grid.Column="1" Margin="12,0,0,0" Orientation="Horizontal">
|
||||||
<TextBox x:Name="committerName" IsReadOnly="True" Background="Transparent" Foreground="{StaticResource Brush.FG1}" BorderThickness="0"/>
|
<TextBox x:Name="committerName" IsReadOnly="True" Background="Transparent" Foreground="{StaticResource Brush.FG1}" BorderThickness="0"/>
|
||||||
<TextBox x:Name="committerEmail" Margin="4,0,0,0" IsReadOnly="True" Background="Transparent" Foreground="{StaticResource Brush.FG2}" BorderThickness="0"/>
|
<TextBox x:Name="committerEmail" Margin="4,0,0,0" IsReadOnly="True" Background="Transparent" Foreground="{StaticResource Brush.FG2}" BorderThickness="0"/>
|
||||||
|
@ -122,7 +122,7 @@
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<!-- SHA -->
|
<!-- SHA -->
|
||||||
<Label Grid.Row="0" Grid.Column="0" Content="SHA" HorizontalAlignment="Right" Opacity=".6"/>
|
<Label Grid.Row="0" Grid.Column="0" Content="{StaticResource Text.CommitViewer.Info.SHA}" HorizontalAlignment="Right" Opacity=".6"/>
|
||||||
<TextBox
|
<TextBox
|
||||||
Grid.Row="0" Grid.Column="1"
|
Grid.Row="0" Grid.Column="1"
|
||||||
x:Name="SHA"
|
x:Name="SHA"
|
||||||
|
@ -133,7 +133,7 @@
|
||||||
Margin="11,0,0,0"/>
|
Margin="11,0,0,0"/>
|
||||||
|
|
||||||
<!-- PARENTS -->
|
<!-- PARENTS -->
|
||||||
<Label Grid.Row="1" Grid.Column="0" Content="PARENTS" HorizontalAlignment="Right" Opacity=".6"/>
|
<Label Grid.Row="1" Grid.Column="0" Content="{StaticResource Text.CommitViewer.Info.Parents}" HorizontalAlignment="Right" Opacity=".6"/>
|
||||||
<ItemsControl Grid.Row="1" Grid.Column="1" x:Name="parents" Margin="8,0,0,0">
|
<ItemsControl Grid.Row="1" Grid.Column="1" x:Name="parents" Margin="8,0,0,0">
|
||||||
<ItemsControl.ItemsPanel>
|
<ItemsControl.ItemsPanel>
|
||||||
<ItemsPanelTemplate>
|
<ItemsPanelTemplate>
|
||||||
|
@ -144,7 +144,7 @@
|
||||||
<ItemsControl.ItemTemplate>
|
<ItemsControl.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
<Label Margin="0,0,8,0" FontFamily="Consolas">
|
<Label Margin="0,0,8,0" FontFamily="Consolas">
|
||||||
<Hyperlink RequestNavigate="NavigateParent" NavigateUri="{Binding .}" ToolTip="NAVIGATE TO COMMIT">
|
<Hyperlink RequestNavigate="NavigateParent" NavigateUri="{Binding .}" ToolTip="{StaticResource Text.Goto}">
|
||||||
<Run Text="{Binding .}"/>
|
<Run Text="{Binding .}"/>
|
||||||
</Hyperlink>
|
</Hyperlink>
|
||||||
</Label>
|
</Label>
|
||||||
|
@ -153,7 +153,7 @@
|
||||||
</ItemsControl>
|
</ItemsControl>
|
||||||
|
|
||||||
<!-- Refs -->
|
<!-- Refs -->
|
||||||
<Label Grid.Row="2" Grid.Column="0" Content="REFS" HorizontalAlignment="Right" Opacity=".6"/>
|
<Label Grid.Row="2" Grid.Column="0" Content="{StaticResource Text.CommitViewer.Info.Refs}" HorizontalAlignment="Right" Opacity=".6"/>
|
||||||
<ItemsControl Grid.Row="2" Grid.Column="1" x:Name="refs" Margin="11,0,0,0">
|
<ItemsControl Grid.Row="2" Grid.Column="1" x:Name="refs" Margin="11,0,0,0">
|
||||||
<ItemsControl.ItemsPanel>
|
<ItemsControl.ItemsPanel>
|
||||||
<ItemsPanelTemplate>
|
<ItemsPanelTemplate>
|
||||||
|
@ -202,7 +202,7 @@
|
||||||
</ItemsControl>
|
</ItemsControl>
|
||||||
|
|
||||||
<!-- MESSAGE -->
|
<!-- MESSAGE -->
|
||||||
<Label Grid.Row="3" Grid.Column="0" Content="MESSAGE" HorizontalAlignment="Right" Opacity=".6"/>
|
<Label Grid.Row="3" Grid.Column="0" Content="{StaticResource Text.CommitViewer.Info.Message}" HorizontalAlignment="Right" Opacity=".6"/>
|
||||||
<TextBox
|
<TextBox
|
||||||
Grid.Row="3" Grid.Column="1"
|
Grid.Row="3" Grid.Column="1"
|
||||||
x:Name="subject"
|
x:Name="subject"
|
||||||
|
@ -230,7 +230,7 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Column="0" Content="CHANGED" HorizontalAlignment="Right" VerticalAlignment="Top" Opacity=".6"/>
|
<Label Grid.Column="0" Content="{StaticResource Text.CommitViewer.Info.Changed}" HorizontalAlignment="Right" VerticalAlignment="Top" Opacity=".6"/>
|
||||||
<DataGrid
|
<DataGrid
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
x:Name="changeList1"
|
x:Name="changeList1"
|
||||||
|
@ -270,7 +270,7 @@
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
<!-- CHANGES -->
|
<!-- CHANGES -->
|
||||||
<TabItem Header="CHANGES">
|
<TabItem Header="{StaticResource Text.CommitViewer.Changes}">
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="200" MinWidth="200"/>
|
<ColumnDefinition Width="200" MinWidth="200"/>
|
||||||
|
@ -298,12 +298,12 @@
|
||||||
|
|
||||||
<Border Grid.Column="0" Grid.ColumnSpan="2" BorderThickness="1" BorderBrush="{StaticResource Brush.Border2}"/>
|
<Border Grid.Column="0" Grid.ColumnSpan="2" BorderThickness="1" BorderBrush="{StaticResource Brush.Border2}"/>
|
||||||
<Path Grid.Column="0" Width="14" Height="14" Fill="{StaticResource Brush.FG2}" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Search}"/>
|
<Path Grid.Column="0" Width="14" Height="14" Fill="{StaticResource Brush.FG2}" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Search}"/>
|
||||||
<TextBox Grid.Column="1" x:Name="txtChangeFilter" BorderThickness="0" helpers:TextBoxHelper.Placeholder="Search File ..." TextChanged="SearchChangeFileTextChanged"/>
|
<TextBox Grid.Column="1" x:Name="txtChangeFilter" BorderThickness="0" helpers:TextBoxHelper.Placeholder="{StaticResource Text.CommitViewer.Changes.Search}" TextChanged="SearchChangeFileTextChanged"/>
|
||||||
<ToggleButton
|
<ToggleButton
|
||||||
Grid.Column="2"
|
Grid.Column="2"
|
||||||
x:Name="toggleSwitchMode"
|
x:Name="toggleSwitchMode"
|
||||||
Margin="4,0,0,0"
|
Margin="4,0,0,0"
|
||||||
ToolTip="SWITCH TO LIST/TREE VIEW"
|
ToolTip="{StaticResource Text.CommitViewer.Changes.SwitchMode}"
|
||||||
Style="{StaticResource Style.ToggleButton.ListOrTree}"
|
Style="{StaticResource Style.ToggleButton.ListOrTree}"
|
||||||
IsChecked="{Binding Source={x:Static source:App.Setting}, Path=UI.UseListInChanges, Mode=TwoWay}"/>
|
IsChecked="{Binding Source={x:Static source:App.Setting}, Path=UI.UseListInChanges, Mode=TwoWay}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -400,7 +400,7 @@
|
||||||
</TabItem>
|
</TabItem>
|
||||||
|
|
||||||
<!-- FILE TREE -->
|
<!-- FILE TREE -->
|
||||||
<TabItem Header="FILES">
|
<TabItem Header="{StaticResource Text.CommitViewer.Files}">
|
||||||
<Grid>
|
<Grid>
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="200" MinWidth="200" MaxWidth="400"/>
|
<ColumnDefinition Width="200" MinWidth="200" MaxWidth="400"/>
|
||||||
|
@ -456,7 +456,7 @@
|
||||||
|
|
||||||
<StackPanel x:Name="maskPreviewNotSupported" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="Collapsed">
|
<StackPanel x:Name="maskPreviewNotSupported" Orientation="Vertical" VerticalAlignment="Center" HorizontalAlignment="Center" Visibility="Collapsed">
|
||||||
<Path Width="64" Height="64" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Info}" Fill="{StaticResource Brush.FG2}"/>
|
<Path Width="64" Height="64" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Info}" Fill="{StaticResource Brush.FG2}"/>
|
||||||
<Label Margin="0,16,0,0" Content="BINARY FILE DETECTED" FontFamily="Consolas" FontSize="18" FontWeight="UltraBold" HorizontalAlignment="Center" Foreground="{StaticResource Brush.FG2}"/>
|
<Label Margin="0,16,0,0" Content="{StaticResource Text.BinaryNotSupported}" FontFamily="Consolas" FontSize="18" FontWeight="UltraBold" HorizontalAlignment="Center" Foreground="{StaticResource Brush.FG2}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
|
@ -309,7 +309,7 @@ namespace SourceGit.UI {
|
||||||
var menu = new ContextMenu();
|
var menu = new ContextMenu();
|
||||||
if (change.Index != Git.Change.Status.Deleted) {
|
if (change.Index != Git.Change.Status.Deleted) {
|
||||||
MenuItem history = new MenuItem();
|
MenuItem history = new MenuItem();
|
||||||
history.Header = "File History";
|
history.Header = App.Text("FileHistory");
|
||||||
history.Click += (o, ev) => {
|
history.Click += (o, ev) => {
|
||||||
var viewer = new FileHistories(repo, path);
|
var viewer = new FileHistories(repo, path);
|
||||||
viewer.Show();
|
viewer.Show();
|
||||||
|
@ -317,7 +317,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(history);
|
menu.Items.Add(history);
|
||||||
|
|
||||||
MenuItem blame = new MenuItem();
|
MenuItem blame = new MenuItem();
|
||||||
blame.Header = "Blame";
|
blame.Header = App.Text("Blame");
|
||||||
blame.Click += (obj, ev) => {
|
blame.Click += (obj, ev) => {
|
||||||
Blame viewer = new Blame(repo, path, commit.SHA);
|
Blame viewer = new Blame(repo, path, commit.SHA);
|
||||||
viewer.Show();
|
viewer.Show();
|
||||||
|
@ -325,7 +325,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(blame);
|
menu.Items.Add(blame);
|
||||||
|
|
||||||
MenuItem explore = new MenuItem();
|
MenuItem explore = new MenuItem();
|
||||||
explore.Header = "Reveal in File Explorer";
|
explore.Header = App.Text("RevealFile");
|
||||||
explore.Click += (o, ev) => {
|
explore.Click += (o, ev) => {
|
||||||
var absPath = Path.GetFullPath(repo.Path + "\\" + path);
|
var absPath = Path.GetFullPath(repo.Path + "\\" + path);
|
||||||
Process.Start("explorer", $"/select,{absPath}");
|
Process.Start("explorer", $"/select,{absPath}");
|
||||||
|
@ -334,9 +334,9 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(explore);
|
menu.Items.Add(explore);
|
||||||
|
|
||||||
MenuItem saveAs = new MenuItem();
|
MenuItem saveAs = new MenuItem();
|
||||||
saveAs.Header = "Save As ...";
|
saveAs.Header = App.Text("SaveAs");
|
||||||
saveAs.Click += (obj, ev) => {
|
saveAs.Click += (obj, ev) => {
|
||||||
FolderDailog.Open("Save file to ...", saveTo => {
|
FolderDailog.Open(App.Text("SaveFileTo"), saveTo => {
|
||||||
var savePath = Path.Combine(saveTo, Path.GetFileName(path));
|
var savePath = Path.Combine(saveTo, Path.GetFileName(path));
|
||||||
commit.SaveFileTo(repo, path, savePath);
|
commit.SaveFileTo(repo, path, savePath);
|
||||||
});
|
});
|
||||||
|
@ -345,7 +345,7 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem copyPath = new MenuItem();
|
MenuItem copyPath = new MenuItem();
|
||||||
copyPath.Header = "Copy Path";
|
copyPath.Header = App.Text("CopyPath");
|
||||||
copyPath.Click += (obj, ev) => {
|
copyPath.Click += (obj, ev) => {
|
||||||
Clipboard.SetText(path);
|
Clipboard.SetText(path);
|
||||||
};
|
};
|
||||||
|
@ -551,7 +551,7 @@ namespace SourceGit.UI {
|
||||||
var obj = repo.GetLFSObject(commit.SHA, node.FilePath);
|
var obj = repo.GetLFSObject(commit.SHA, node.FilePath);
|
||||||
maskRevision.Visibility = Visibility.Visible;
|
maskRevision.Visibility = Visibility.Visible;
|
||||||
iconPreviewRevision.Data = FindResource("Icon.LFS") as Geometry;
|
iconPreviewRevision.Data = FindResource("Icon.LFS") as Geometry;
|
||||||
txtPreviewRevision.Content = $"LFS SIZE: {obj.Size} Bytes";
|
txtPreviewRevision.Content = "LFS SIZE:" + App.Format("Bytes", obj.Size);
|
||||||
} else {
|
} else {
|
||||||
await Task.Run(() => {
|
await Task.Run(() => {
|
||||||
var isBinary = false;
|
var isBinary = false;
|
||||||
|
@ -621,7 +621,7 @@ namespace SourceGit.UI {
|
||||||
ContextMenu menu = new ContextMenu();
|
ContextMenu menu = new ContextMenu();
|
||||||
if (node.Change == null || node.Change.Index != Git.Change.Status.Deleted) {
|
if (node.Change == null || node.Change.Index != Git.Change.Status.Deleted) {
|
||||||
MenuItem history = new MenuItem();
|
MenuItem history = new MenuItem();
|
||||||
history.Header = "File History";
|
history.Header = App.Text("FileHistory");
|
||||||
history.Click += (o, ev) => {
|
history.Click += (o, ev) => {
|
||||||
var viewer = new FileHistories(repo, node.FilePath);
|
var viewer = new FileHistories(repo, node.FilePath);
|
||||||
viewer.Show();
|
viewer.Show();
|
||||||
|
@ -629,7 +629,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(history);
|
menu.Items.Add(history);
|
||||||
|
|
||||||
MenuItem blame = new MenuItem();
|
MenuItem blame = new MenuItem();
|
||||||
blame.Header = "Blame";
|
blame.Header = App.Text("Blame");
|
||||||
blame.Click += (obj, ev) => {
|
blame.Click += (obj, ev) => {
|
||||||
Blame viewer = new Blame(repo, node.FilePath, commit.SHA);
|
Blame viewer = new Blame(repo, node.FilePath, commit.SHA);
|
||||||
viewer.Show();
|
viewer.Show();
|
||||||
|
@ -637,7 +637,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(blame);
|
menu.Items.Add(blame);
|
||||||
|
|
||||||
MenuItem explore = new MenuItem();
|
MenuItem explore = new MenuItem();
|
||||||
explore.Header = "Reveal in File Explorer";
|
explore.Header = App.Text("RevealFile");
|
||||||
explore.Click += (o, ev) => {
|
explore.Click += (o, ev) => {
|
||||||
var path = Path.GetFullPath(repo.Path + "\\" + node.FilePath);
|
var path = Path.GetFullPath(repo.Path + "\\" + node.FilePath);
|
||||||
Process.Start("explorer", $"/select,{path}");
|
Process.Start("explorer", $"/select,{path}");
|
||||||
|
@ -646,10 +646,10 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(explore);
|
menu.Items.Add(explore);
|
||||||
|
|
||||||
MenuItem saveAs = new MenuItem();
|
MenuItem saveAs = new MenuItem();
|
||||||
saveAs.Header = "Save As ...";
|
saveAs.Header = App.Text("SaveAs");
|
||||||
saveAs.IsEnabled = node.CommitObject == null || node.CommitObject.Kind == Git.Commit.Object.Type.Blob;
|
saveAs.IsEnabled = node.CommitObject == null || node.CommitObject.Kind == Git.Commit.Object.Type.Blob;
|
||||||
saveAs.Click += (obj, ev) => {
|
saveAs.Click += (obj, ev) => {
|
||||||
FolderDailog.Open("Save file to ...", saveTo => {
|
FolderDailog.Open(App.Text("SaveFileTo"), saveTo => {
|
||||||
var path = Path.Combine(saveTo, node.Name);
|
var path = Path.Combine(saveTo, node.Name);
|
||||||
commit.SaveFileTo(repo, node.FilePath, path);
|
commit.SaveFileTo(repo, node.FilePath, path);
|
||||||
});
|
});
|
||||||
|
@ -658,7 +658,7 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem copyPath = new MenuItem();
|
MenuItem copyPath = new MenuItem();
|
||||||
copyPath.Header = "Copy Path";
|
copyPath.Header = App.Text("CopyPath");
|
||||||
copyPath.Click += (obj, ev) => {
|
copyPath.Click += (obj, ev) => {
|
||||||
Clipboard.SetText(node.FilePath);
|
Clipboard.SetText(node.FilePath);
|
||||||
};
|
};
|
||||||
|
|
|
@ -27,25 +27,25 @@
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<!-- 仓库帐号 -->
|
<!-- 仓库帐号 -->
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" Content="CREDENTIAL" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" Content="{StaticResource Text.Configure.Credential}" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
||||||
<Label Grid.Row="2" Grid.Column="0" Content="User : " HorizontalAlignment="Right"/>
|
<Label Grid.Row="2" Grid.Column="0" Content="{StaticResource Text.Configure.User}" HorizontalAlignment="Right"/>
|
||||||
<TextBox
|
<TextBox
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Height="24"
|
Height="24"
|
||||||
Text="{Binding ElementName=me, Path=UserName, Mode=TwoWay}"
|
Text="{Binding ElementName=me, Path=UserName, Mode=TwoWay}"
|
||||||
helpers:TextBoxHelper.Placeholder="User name for this repository"/>
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Configure.User.Placeholder}"/>
|
||||||
<Label Grid.Row="3" Grid.Column="0" Content="Email : " HorizontalAlignment="Right"/>
|
<Label Grid.Row="3" Grid.Column="0" Content="{StaticResource Text.Configure.Email}" HorizontalAlignment="Right"/>
|
||||||
<TextBox
|
<TextBox
|
||||||
Grid.Row="3"
|
Grid.Row="3"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
Height="24"
|
Height="24"
|
||||||
Text="{Binding ElementName=me, Path=UserEmail, Mode=TwoWay}"
|
Text="{Binding ElementName=me, Path=UserEmail, Mode=TwoWay}"
|
||||||
helpers:TextBoxHelper.Placeholder="Email address"/>
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Configure.Email.Placeholder}"/>
|
||||||
|
|
||||||
<!-- 提交模板 -->
|
<!-- 提交模板 -->
|
||||||
<Label Grid.Row="5" Grid.ColumnSpan="2" Content="COMMIT TEMPLATE" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
<Label Grid.Row="5" Grid.ColumnSpan="2" Content="{StaticResource Text.Configure.CommitTemplate}" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
||||||
<Label Grid.Row="7" Grid.Column="0" Content="Template : " HorizontalAlignment="Right" VerticalAlignment="Top"/>
|
<Label Grid.Row="7" Grid.Column="0" Content="{StaticResource Text.Configure.Template}" HorizontalAlignment="Right" VerticalAlignment="Top"/>
|
||||||
<TextBox
|
<TextBox
|
||||||
Grid.Row="7"
|
Grid.Row="7"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
|
@ -64,8 +64,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Save" Content="SAVE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Save" Content="{StaticResource Text.Save}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Close" Content="CLOSE" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Close" Content="{StaticResource Text.Close}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -29,20 +29,20 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Create Local Branch"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.CreateBranch}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Based On :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.CreateBranch.BasedOn}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path x:Name="basedOnType" Width="12" Style="{StaticResource Style.Icon}"/>
|
<Path x:Name="basedOnType" Width="12" Style="{StaticResource Style.Icon}"/>
|
||||||
<TextBlock x:Name="basedOnDesc" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center" Text="master"/>
|
<TextBlock x:Name="basedOnDesc" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center" Text="master"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="New Branch Name :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="{StaticResource Text.CreateBranch.Name}"/>
|
||||||
<TextBox Grid.Row="3" Grid.Column="1"
|
<TextBox Grid.Row="3" Grid.Column="1"
|
||||||
x:Name="txtName"
|
x:Name="txtName"
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Enter branch name.">
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.CreateBranch.Name.Placeholder}">
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding ElementName="me" Path="BranchName" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
|
<Binding ElementName="me" Path="BranchName" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
|
@ -52,17 +52,17 @@
|
||||||
</TextBox.Text>
|
</TextBox.Text>
|
||||||
</TextBox>
|
</TextBox>
|
||||||
|
|
||||||
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" Content="Local Changes :"/>
|
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.CreateBranch.LocalChanges}"/>
|
||||||
<StackPanel Grid.Row="4" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="4" Grid.Column="1" Orientation="Horizontal">
|
||||||
<RadioButton Content="Stash & Reapply" GroupName="LocalChanges" IsChecked="{Binding AutoStash, ElementName=me}"/>
|
<RadioButton Content="{StaticResource Text.CreateBranch.LocalChanges.StashAndReply}" GroupName="LocalChanges" IsChecked="{Binding AutoStash, ElementName=me}"/>
|
||||||
<RadioButton Content="Discard" Margin="8,0,0,0" GroupName="LocalChanges" IsChecked="{Binding AutoStash, ElementName=me, Mode=OneWay, Converter={StaticResource InverseBool}}"/>
|
<RadioButton Content="{StaticResource Text.CreateBranch.LocalChanges.Discard}" Margin="8,0,0,0" GroupName="LocalChanges" IsChecked="{Binding AutoStash, ElementName=me, Mode=OneWay, Converter={StaticResource InverseBool}}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<CheckBox Grid.Row="5" Grid.Column="1"
|
<CheckBox Grid.Row="5" Grid.Column="1"
|
||||||
x:Name="chkCheckout"
|
x:Name="chkCheckout"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
IsChecked="True"
|
IsChecked="True"
|
||||||
Content="Check out after created"/>
|
Content="{StaticResource Text.CreateBranch.Checkout}"/>
|
||||||
|
|
||||||
<Grid Grid.Row="7" Grid.ColumnSpan="2">
|
<Grid Grid.Row="7" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -72,8 +72,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -23,19 +23,19 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Create Tag"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.CreateTag}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="New Tag At :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="{StaticResource Text.CreateTag.BasedOn}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" x:Name="basedOnType" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Commit}"/>
|
<Path Width="12" x:Name="basedOnType" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Commit}"/>
|
||||||
<TextBlock x:Name="basedOnDesc" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center" Text="xxx"/>
|
<TextBlock x:Name="basedOnDesc" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center" Text="xxx"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="Tag Name :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.CreateTag.Name}"/>
|
||||||
<TextBox Grid.Row="3" Grid.Column="1"
|
<TextBox Grid.Row="3" Grid.Column="1"
|
||||||
x:Name="tagName"
|
x:Name="tagName"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Recommanded format :v1.0.0-alpha">
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.CreateTag.Name.Placeholder}">
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding ElementName="me" Path="TagName" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
|
<Binding ElementName="me" Path="TagName" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
|
@ -45,13 +45,13 @@
|
||||||
</TextBox.Text>
|
</TextBox.Text>
|
||||||
</TextBox>
|
</TextBox>
|
||||||
|
|
||||||
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,4" Content="Tag Message :"/>
|
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Top" Margin="0,4" Content="{StaticResource Text.CreateTag.Message}"/>
|
||||||
<TextBox Grid.Row="4" Grid.Column="1"
|
<TextBox Grid.Row="4" Grid.Column="1"
|
||||||
x:Name="tagMessage"
|
x:Name="tagMessage"
|
||||||
Height="56"
|
Height="56"
|
||||||
Padding="2"
|
Padding="2"
|
||||||
AcceptsReturn="True"
|
AcceptsReturn="True"
|
||||||
helpers:TextBoxHelper.Placeholder="Optional"
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.CreateTag.Message.Placeholder}"
|
||||||
helpers:TextBoxHelper.PlaceholderBaseline="Top"/>
|
helpers:TextBoxHelper.PlaceholderBaseline="Top"/>
|
||||||
|
|
||||||
<Grid Grid.Row="6" Grid.ColumnSpan="2">
|
<Grid Grid.Row="6" Grid.ColumnSpan="2">
|
||||||
|
@ -62,8 +62,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -42,11 +42,6 @@ namespace SourceGit.UI {
|
||||||
/// <param name="repo"></param>
|
/// <param name="repo"></param>
|
||||||
/// <param name="branch"></param>
|
/// <param name="branch"></param>
|
||||||
public static void Show(Git.Repository repo, Git.Branch branch) {
|
public static void Show(Git.Repository repo, Git.Branch branch) {
|
||||||
if (branch == null) {
|
|
||||||
App.RaiseError("Empty repository!");
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
|
|
||||||
var dialog = new CreateTag(repo);
|
var dialog = new CreateTag(repo);
|
||||||
dialog.based = branch.Head;
|
dialog.based = branch.Head;
|
||||||
dialog.basedOnType.Data = dialog.FindResource("Icon.Branch") as Geometry;
|
dialog.basedOnType.Data = dialog.FindResource("Icon.Branch") as Geometry;
|
||||||
|
|
|
@ -46,17 +46,17 @@
|
||||||
|
|
||||||
<!-- Browser -->
|
<!-- Browser -->
|
||||||
<StackPanel Grid.Column="0" Orientation="Horizontal" Margin="6,0">
|
<StackPanel Grid.Column="0" Orientation="Horizontal" Margin="6,0">
|
||||||
<Button Click="OpenExplorer" Margin="4,0,0,0" ToolTip="Open In File Browser">
|
<Button Click="OpenExplorer" Margin="4,0,0,0" ToolTip="{StaticResource Text.Dashboard.Explore.Tip}">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Path Width="16" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Folder.Open}"/>
|
<Path Width="16" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Folder.Open}"/>
|
||||||
<Label Content="Explore"/>
|
<Label Content="{StaticResource Text.Dashboard.Explore}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button Click="OpenTerminal" Margin="4,0" ToolTip="Open Git Bash">
|
<Button Click="OpenTerminal" Margin="4,0" ToolTip="{StaticResource Text.Dashboard.Terminal.Tip}">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Terminal}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Terminal}"/>
|
||||||
<Label Content="Terminal"/>
|
<Label Content="{StaticResource Text.Dashboard.Terminal}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Button>
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
@ -66,47 +66,47 @@
|
||||||
<Button Click="OpenFetch" Margin="4,0">
|
<Button Click="OpenFetch" Margin="4,0">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Fetch}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Fetch}"/>
|
||||||
<Label Content="Fetch"/>
|
<Label Content="{StaticResource Text.Fetch}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Click="OpenPull" Margin="4,0">
|
<Button Click="OpenPull" Margin="4,0">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Pull}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Pull}"/>
|
||||||
<Label Content="Pull"/>
|
<Label Content="{StaticResource Text.Pull}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Click="OpenPush" Margin="4,0">
|
<Button Click="OpenPush" Margin="4,0">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Push}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Push}"/>
|
||||||
<Label Content="Push"/>
|
<Label Content="{StaticResource Text.Push}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Click="OpenStash" Margin="4,0">
|
<Button Click="OpenStash" Margin="4,0">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.SaveStash}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.SaveStash}"/>
|
||||||
<Label Content="Stash"/>
|
<Label Content="{StaticResource Text.Stash}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Click="OpenApply">
|
<Button Click="OpenApply">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Apply}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Apply}"/>
|
||||||
<Label Content="Apply"/>
|
<Label Content="{StaticResource Text.Apply}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Button>
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<!-- External Options -->
|
<!-- External Options -->
|
||||||
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
<StackPanel Grid.Column="2" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||||
<Button Click="OpenSearch" Margin="4,0" ToolTip="Search Commit">
|
<Button Click="OpenSearch" Margin="4,0" ToolTip="{StaticResource Text.Dashboard.Search.Tip}">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Search}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Search}"/>
|
||||||
<Label Content="Search"/>
|
<Label Content="{StaticResource Text.Dashboard.Search}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Click="OpenConfigure" Margin="4,0" ToolTip="Configure This Repository">
|
<Button Click="OpenConfigure" Margin="4,0" ToolTip="{StaticResource Text.Dashboard.Configure.Tip}">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Setting}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Setting}"/>
|
||||||
<Label Content="Configure"/>
|
<Label Content="{StaticResource Text.Configure}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Button>
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
@ -143,7 +143,7 @@
|
||||||
|
|
||||||
<!-- WORKSPACE -->
|
<!-- WORKSPACE -->
|
||||||
<Border Grid.Row="0" Background="{StaticResource Brush.GroupBar}">
|
<Border Grid.Row="0" Background="{StaticResource Brush.GroupBar}">
|
||||||
<Label Margin="4,0,0,0" Content="WORKSPACE" Style="{StaticResource Style.Label.GroupHeader}" />
|
<Label Margin="4,0,0,0" Content="{StaticResource Text.Dashboard.Workspace}" Style="{StaticResource Style.Label.GroupHeader}" />
|
||||||
</Border>
|
</Border>
|
||||||
<ListView
|
<ListView
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
|
@ -154,7 +154,7 @@
|
||||||
<ListViewItem x:Name="historiesSwitch" Selected="SwitchHistories" IsSelected="True">
|
<ListViewItem x:Name="historiesSwitch" Selected="SwitchHistories" IsSelected="True">
|
||||||
<StackPanel Margin="16,0,0,0" Orientation="Horizontal">
|
<StackPanel Margin="16,0,0,0" Orientation="Horizontal">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Histories}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Histories}"/>
|
||||||
<Label Margin="4,0,0,0" Content="Histories"/>
|
<Label Margin="4,0,0,0" Content="{StaticResource Text.Histories}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</ListViewItem>
|
</ListViewItem>
|
||||||
|
|
||||||
|
@ -166,7 +166,7 @@
|
||||||
<ColumnDefinition Width="Auto"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Path Grid.Column="0" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.WorkingCopy}"/>
|
<Path Grid.Column="0" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.WorkingCopy}"/>
|
||||||
<Label Grid.Column="1" Margin="4,0,0,0" Content="Commit"/>
|
<Label Grid.Column="1" Margin="4,0,0,0" Content="{StaticResource Text.WorkingCopy}"/>
|
||||||
<Border Grid.Column="2" x:Name="localChangesBadge" Style="{StaticResource Style.Border.Badge}">
|
<Border Grid.Column="2" x:Name="localChangesBadge" Style="{StaticResource Style.Border.Badge}">
|
||||||
<Label x:Name="localChangesCount" Margin="4,-2,4,-2" Content="999" FontSize="10"/>
|
<Label x:Name="localChangesCount" Margin="4,-2,4,-2" Content="999" FontSize="10"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
@ -181,7 +181,7 @@
|
||||||
<ColumnDefinition Width="Auto"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
<Path Grid.Column="0" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Stashes}"/>
|
<Path Grid.Column="0" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Stashes}"/>
|
||||||
<Label Grid.Column="1" Margin="4,0,0,0" Content="Stashes"/>
|
<Label Grid.Column="1" Margin="4,0,0,0" Content="{StaticResource Text.Stashes}"/>
|
||||||
<Border Grid.Column="2" x:Name="stashBadge" Style="{StaticResource Style.Border.Badge}">
|
<Border Grid.Column="2" x:Name="stashBadge" Style="{StaticResource Style.Border.Badge}">
|
||||||
<Label x:Name="stashCount" Margin="4,-2,4,-2" Content="999" FontSize="10"/>
|
<Label x:Name="stashCount" Margin="4,-2,4,-2" Content="999" FontSize="10"/>
|
||||||
</Border>
|
</Border>
|
||||||
|
@ -198,11 +198,11 @@
|
||||||
<ColumnDefinition Width="20"/>
|
<ColumnDefinition Width="20"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Column="0" Margin="4,0,0,0" Content="LOCAL BRANCHES" Style="{StaticResource Style.Label.GroupHeader}"/>
|
<Label Grid.Column="0" Margin="4,0,0,0" Content="{StaticResource Text.Dashboard.LocalBranches}" Style="{StaticResource Style.Label.GroupHeader}"/>
|
||||||
<Button Grid.Column="1" Click="OpenGitFlow" Background="Transparent" ToolTip="GIT FLOW">
|
<Button Grid.Column="1" Click="OpenGitFlow" Background="Transparent" ToolTip="{StaticResource Text.GitFlow}">
|
||||||
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{DynamicResource Icon.Flow}"/>
|
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{DynamicResource Icon.Flow}"/>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Margin="0,0,4,0" Grid.Column="3" Click="OpenNewBranch" Background="Transparent" ToolTip="NEW BRANCH">
|
<Button Margin="0,0,4,0" Grid.Column="3" Click="OpenNewBranch" Background="Transparent" ToolTip="{StaticResource Text.Dashboard.NewBranch}">
|
||||||
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{DynamicResource Icon.Branch.Add}"/>
|
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{DynamicResource Icon.Branch.Add}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -245,7 +245,7 @@
|
||||||
Checked="FilterChanged"
|
Checked="FilterChanged"
|
||||||
Unchecked="FilterChanged"
|
Unchecked="FilterChanged"
|
||||||
Style="{StaticResource Style.ToggleButton.Filter}"
|
Style="{StaticResource Style.ToggleButton.Filter}"
|
||||||
ToolTip="FILTER"/>
|
ToolTip="{StaticResource Text.Filter}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
|
@ -280,8 +280,8 @@
|
||||||
<ColumnDefinition Width="20"/>
|
<ColumnDefinition Width="20"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Column="0" Margin="4,0,0,0" Content="REMOTES" Style="{StaticResource Style.Label.GroupHeader}"/>
|
<Label Grid.Column="0" Margin="4,0,0,0" Content="{StaticResource Text.Dashboard.Remotes}" Style="{StaticResource Style.Label.GroupHeader}"/>
|
||||||
<Button Grid.Column="1" Margin="0,0,4,0" Click="OpenRemote" ToolTip="ADD REMOTE">
|
<Button Grid.Column="1" Margin="0,0,4,0" Click="OpenRemote" ToolTip="{StaticResource Text.Dashboard.Remotes.Add}">
|
||||||
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{DynamicResource Icon.Remote.Add}"/>
|
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{DynamicResource Icon.Remote.Add}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -333,7 +333,7 @@
|
||||||
Checked="FilterChanged"
|
Checked="FilterChanged"
|
||||||
Unchecked="FilterChanged"
|
Unchecked="FilterChanged"
|
||||||
Style="{StaticResource Style.ToggleButton.Filter}"
|
Style="{StaticResource Style.ToggleButton.Filter}"
|
||||||
ToolTip="FILTER"/>
|
ToolTip="{StaticResource Text.Filter}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<HierarchicalDataTemplate.Triggers>
|
<HierarchicalDataTemplate.Triggers>
|
||||||
|
@ -369,8 +369,8 @@
|
||||||
<ColumnDefinition Width="16"/>
|
<ColumnDefinition Width="16"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Column="0" x:Name="tagCount" Content="TAGS" Style="{StaticResource Style.Label.GroupHeader}"/>
|
<Label Grid.Column="0" x:Name="tagCount" Style="{StaticResource Style.Label.GroupHeader}"/>
|
||||||
<Button Grid.Column="1" Click="OpenNewTag" ToolTip="NEW TAG">
|
<Button Grid.Column="1" Click="OpenNewTag" ToolTip="{StaticResource Text.Dashboard.Tags.Add}">
|
||||||
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Tag.Add}"/>
|
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Tag.Add}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -416,7 +416,7 @@
|
||||||
Checked="FilterChanged"
|
Checked="FilterChanged"
|
||||||
Unchecked="FilterChanged"
|
Unchecked="FilterChanged"
|
||||||
Style="{StaticResource Style.ToggleButton.Filter}"
|
Style="{StaticResource Style.ToggleButton.Filter}"
|
||||||
ToolTip="FILTER"/>
|
ToolTip="{StaticResource Text.Filter}"/>
|
||||||
</DataTemplate>
|
</DataTemplate>
|
||||||
</DataGridTemplateColumn.CellTemplate>
|
</DataGridTemplateColumn.CellTemplate>
|
||||||
</DataGridTemplateColumn>
|
</DataGridTemplateColumn>
|
||||||
|
@ -440,11 +440,11 @@
|
||||||
<ColumnDefinition Width="16"/>
|
<ColumnDefinition Width="16"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Column="0" x:Name="submoduleCount" Content="SUBMODULES" Style="{StaticResource Style.Label.GroupHeader}"/>
|
<Label Grid.Column="0" x:Name="submoduleCount" Style="{StaticResource Style.Label.GroupHeader}"/>
|
||||||
<Button Grid.Column="1" Click="OpenAddSubmodule" ToolTip="ADD SUBMODULE">
|
<Button Grid.Column="1" Click="OpenAddSubmodule" ToolTip="{StaticResource Text.Dashboard.Submodules.Add}">
|
||||||
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Submodule}"/>
|
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Submodule}"/>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Grid.Column="3" Click="UpdateSubmodule" ToolTip="UPDATE SUBMODULE">
|
<Button Grid.Column="3" Click="UpdateSubmodule" ToolTip="{StaticResource Text.Dashboard.Submodules.Update}">
|
||||||
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Loading}"/>
|
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Loading}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -508,7 +508,7 @@
|
||||||
|
|
||||||
<Label Grid.Column="0" x:Name="txtMergeProcessing" FontWeight="DemiBold" Foreground="{StaticResource Brush.FG3}"/>
|
<Label Grid.Column="0" x:Name="txtMergeProcessing" FontWeight="DemiBold" Foreground="{StaticResource Brush.FG3}"/>
|
||||||
<StackPanel Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Column="1" Orientation="Horizontal">
|
||||||
<Button x:Name="btnResolve" Click="Resolve" Content="RESOLVE" Margin="2">
|
<Button x:Name="btnResolve" Click="Resolve" Content="{StaticResource Text.Dashboard.Resolve}" Margin="2">
|
||||||
<Button.Style>
|
<Button.Style>
|
||||||
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource Style.Button.Bordered}">
|
<Style TargetType="{x:Type Button}" BasedOn="{StaticResource Style.Button.Bordered}">
|
||||||
<Setter Property="Background" Value="{StaticResource Brush.Window}"/>
|
<Setter Property="Background" Value="{StaticResource Brush.Window}"/>
|
||||||
|
@ -516,8 +516,8 @@
|
||||||
</Style>
|
</Style>
|
||||||
</Button.Style>
|
</Button.Style>
|
||||||
</Button>
|
</Button>
|
||||||
<Button x:Name="btnContinue" Click="Continue" Content="CONTINUE" Style="{StaticResource Style.Button.AccentBordered}" Margin="2"/>
|
<Button x:Name="btnContinue" Click="Continue" Content="{StaticResource Text.Dashboard.Continue}" Style="{StaticResource Style.Button.AccentBordered}" Margin="2"/>
|
||||||
<Button Grid.Column="3" Click="Abort" Content="ABORT" Style="{StaticResource Style.Button.Bordered}" Foreground="{StaticResource Brush.FG3}" Margin="2"/>
|
<Button Grid.Column="3" Click="Abort" Content="{StaticResource Text.Dashboard.Abort}" Style="{StaticResource Style.Button.Bordered}" Foreground="{StaticResource Brush.FG3}" Margin="2"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
|
@ -298,7 +298,7 @@ namespace SourceGit.UI {
|
||||||
foreach (var t in tags) t.IsFiltered = repo.LogFilters.Contains(t.Name);
|
foreach (var t in tags) t.IsFiltered = repo.LogFilters.Contains(t.Name);
|
||||||
|
|
||||||
Dispatcher.Invoke(() => {
|
Dispatcher.Invoke(() => {
|
||||||
tagCount.Content = $"TAGS ({tags.Count})";
|
tagCount.Content = App.Text("Dashboard.Tags") + $" ({tags.Count})";
|
||||||
tagList.ItemsSource = tags;
|
tagList.ItemsSource = tags;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -308,7 +308,7 @@ namespace SourceGit.UI {
|
||||||
Task.Run(() => {
|
Task.Run(() => {
|
||||||
var submodules = repo.Submodules();
|
var submodules = repo.Submodules();
|
||||||
Dispatcher.Invoke(() => {
|
Dispatcher.Invoke(() => {
|
||||||
submoduleCount.Content = $"SUBMODULES ({submodules.Count})";
|
submoduleCount.Content = App.Text("Dashboard.Submodules") + $" ({submodules.Count})";
|
||||||
submoduleList.ItemsSource = submodules;
|
submoduleList.ItemsSource = submodules;
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
@ -358,7 +358,7 @@ namespace SourceGit.UI {
|
||||||
private void OpenTerminal(object sender, RoutedEventArgs e) {
|
private void OpenTerminal(object sender, RoutedEventArgs e) {
|
||||||
var bash = Path.Combine(App.Setting.Tools.GitExecutable, "..", "bash.exe");
|
var bash = Path.Combine(App.Setting.Tools.GitExecutable, "..", "bash.exe");
|
||||||
if (!File.Exists(bash)) {
|
if (!File.Exists(bash)) {
|
||||||
App.RaiseError("Can NOT locate bash.exe. Make sure bash.exe exists under the same folder with git.exe");
|
App.RaiseError(App.Text("MissingBash"));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -391,16 +391,16 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
if (File.Exists(cherryPickMerge)) {
|
if (File.Exists(cherryPickMerge)) {
|
||||||
abortCommand = "cherry-pick";
|
abortCommand = "cherry-pick";
|
||||||
txtMergeProcessing.Content = "Cherry-Pick merge request detected! Press 'Abort' to restore original HEAD";
|
txtMergeProcessing.Content = App.Text("Conflict.CherryPick");
|
||||||
} else if (File.Exists(rebaseMerge)) {
|
} else if (File.Exists(rebaseMerge)) {
|
||||||
abortCommand = "rebase";
|
abortCommand = "rebase";
|
||||||
txtMergeProcessing.Content = "Rebase merge request detected! Press 'Abort' to restore original HEAD";
|
txtMergeProcessing.Content = App.Text("Conflict.Rebase");
|
||||||
} else if (File.Exists(revertMerge)) {
|
} else if (File.Exists(revertMerge)) {
|
||||||
abortCommand = "revert";
|
abortCommand = "revert";
|
||||||
txtMergeProcessing.Content = "Revert merge request detected! Press 'Abort' to restore original HEAD";
|
txtMergeProcessing.Content = App.Text("Conflict.Revert");
|
||||||
} else if (File.Exists(otherMerge)) {
|
} else if (File.Exists(otherMerge)) {
|
||||||
abortCommand = "merge";
|
abortCommand = "merge";
|
||||||
txtMergeProcessing.Content = "Merge request detected! Press 'Abort' to restore original HEAD";
|
txtMergeProcessing.Content = App.Text("Conflict.Merge");
|
||||||
} else {
|
} else {
|
||||||
abortCommand = null;
|
abortCommand = null;
|
||||||
}
|
}
|
||||||
|
@ -536,21 +536,21 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
if (repo.IsGitFlowEnabled()) {
|
if (repo.IsGitFlowEnabled()) {
|
||||||
var startFeature = new MenuItem();
|
var startFeature = new MenuItem();
|
||||||
startFeature.Header = "Start Feature ...";
|
startFeature.Header = App.Text("GitFlow.StartFeature");
|
||||||
startFeature.Click += (o, e) => {
|
startFeature.Click += (o, e) => {
|
||||||
GitFlowStartBranch.Show(repo, Git.Branch.Type.Feature);
|
GitFlowStartBranch.Show(repo, Git.Branch.Type.Feature);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var startRelease = new MenuItem();
|
var startRelease = new MenuItem();
|
||||||
startRelease.Header = "Start Release ...";
|
startRelease.Header = App.Text("GitFlow.StartRelease");
|
||||||
startRelease.Click += (o, e) => {
|
startRelease.Click += (o, e) => {
|
||||||
GitFlowStartBranch.Show(repo, Git.Branch.Type.Release);
|
GitFlowStartBranch.Show(repo, Git.Branch.Type.Release);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var startHotfix = new MenuItem();
|
var startHotfix = new MenuItem();
|
||||||
startHotfix.Header = "Start Hotfix ...";
|
startHotfix.Header = App.Text("GitFlow.StartHotfix");
|
||||||
startHotfix.Click += (o, e) => {
|
startHotfix.Click += (o, e) => {
|
||||||
GitFlowStartBranch.Show(repo, Git.Branch.Type.Hotfix);
|
GitFlowStartBranch.Show(repo, Git.Branch.Type.Hotfix);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -561,7 +561,7 @@ namespace SourceGit.UI {
|
||||||
button.ContextMenu.Items.Add(startHotfix);
|
button.ContextMenu.Items.Add(startHotfix);
|
||||||
} else {
|
} else {
|
||||||
var init = new MenuItem();
|
var init = new MenuItem();
|
||||||
init.Header = "Initialize Git-Flow";
|
init.Header = App.Text("GitFlow.Init");
|
||||||
init.Click += (o, e) => {
|
init.Click += (o, e) => {
|
||||||
GitFlowSetup.Show(repo);
|
GitFlowSetup.Show(repo);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -593,7 +593,7 @@ namespace SourceGit.UI {
|
||||||
var branch = node.Branch;
|
var branch = node.Branch;
|
||||||
|
|
||||||
var push = new MenuItem();
|
var push = new MenuItem();
|
||||||
push.Header = $"Push '{branch.Name}'";
|
push.Header = App.Format("BranchCM.Push", branch.Name);
|
||||||
push.Click += (o, e) => {
|
push.Click += (o, e) => {
|
||||||
Push.Show(repo, branch);
|
Push.Show(repo, branch);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -601,7 +601,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
if (branch.IsCurrent) {
|
if (branch.IsCurrent) {
|
||||||
var discard = new MenuItem();
|
var discard = new MenuItem();
|
||||||
discard.Header = "Discard all changes";
|
discard.Header = App.Text("BranchCM.DiscardAll");
|
||||||
discard.Click += (o, e) => {
|
discard.Click += (o, e) => {
|
||||||
Discard.Show(repo, null);
|
Discard.Show(repo, null);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -612,14 +612,14 @@ namespace SourceGit.UI {
|
||||||
if (!string.IsNullOrEmpty(branch.Upstream)) {
|
if (!string.IsNullOrEmpty(branch.Upstream)) {
|
||||||
var upstream = branch.Upstream.Substring(13);
|
var upstream = branch.Upstream.Substring(13);
|
||||||
var fastForward = new MenuItem();
|
var fastForward = new MenuItem();
|
||||||
fastForward.Header = $"Fast-Forward to '{upstream}'";
|
fastForward.Header = App.Format("BranchCM.FastForward", upstream);
|
||||||
fastForward.Click += (o, e) => {
|
fastForward.Click += (o, e) => {
|
||||||
Merge.StartDirectly(repo, upstream, branch.Name);
|
Merge.StartDirectly(repo, upstream, branch.Name);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var pull = new MenuItem();
|
var pull = new MenuItem();
|
||||||
pull.Header = $"Pull '{upstream}'";
|
pull.Header = App.Format("BranchCM.Pull", upstream);
|
||||||
pull.Click += (o, e) => {
|
pull.Click += (o, e) => {
|
||||||
Pull.Show(repo);
|
Pull.Show(repo);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -634,7 +634,7 @@ namespace SourceGit.UI {
|
||||||
var current = repo.CurrentBranch();
|
var current = repo.CurrentBranch();
|
||||||
|
|
||||||
var checkout = new MenuItem();
|
var checkout = new MenuItem();
|
||||||
checkout.Header = $"Checkout {branch.Name}";
|
checkout.Header = App.Format("BranchCM.Checkout", branch.Name);
|
||||||
checkout.Click += (o, e) => {
|
checkout.Click += (o, e) => {
|
||||||
Task.Run(() => repo.Checkout(node.Branch.Name));
|
Task.Run(() => repo.Checkout(node.Branch.Name));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -644,7 +644,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(push);
|
menu.Items.Add(push);
|
||||||
|
|
||||||
var merge = new MenuItem();
|
var merge = new MenuItem();
|
||||||
merge.Header = $"Merge '{branch.Name}' into '{current.Name}'";
|
merge.Header = App.Format("BranchCM.Merge", branch.Name, current.Name);
|
||||||
merge.Click += (o, e) => {
|
merge.Click += (o, e) => {
|
||||||
Merge.Show(repo, branch.Name, current.Name);
|
Merge.Show(repo, branch.Name, current.Name);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -652,7 +652,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(merge);
|
menu.Items.Add(merge);
|
||||||
|
|
||||||
var rebase = new MenuItem();
|
var rebase = new MenuItem();
|
||||||
rebase.Header = $"Rebase '{current.Name}' on '{branch.Name}'";
|
rebase.Header = App.Format("BranchCM.Rebase", current.Name, branch.Name);
|
||||||
rebase.Click += (o, e) => {
|
rebase.Click += (o, e) => {
|
||||||
Rebase.Show(repo, branch);
|
Rebase.Show(repo, branch);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -669,7 +669,7 @@ namespace SourceGit.UI {
|
||||||
flowIcon.Width = 10;
|
flowIcon.Width = 10;
|
||||||
|
|
||||||
var finish = new MenuItem();
|
var finish = new MenuItem();
|
||||||
finish.Header = $"Git Flow - Finish '{branch.Name}'";
|
finish.Header = App.Format("BranchCM.Finish", branch.Name);
|
||||||
finish.Icon = flowIcon;
|
finish.Icon = flowIcon;
|
||||||
finish.Click += (o, e) => {
|
finish.Click += (o, e) => {
|
||||||
GitFlowFinishBranch.Show(repo, branch);
|
GitFlowFinishBranch.Show(repo, branch);
|
||||||
|
@ -680,7 +680,7 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
var rename = new MenuItem();
|
var rename = new MenuItem();
|
||||||
rename.Header = $"Rename '{branch.Name}'";
|
rename.Header = App.Format("BranchCM.Rename", branch.Name);
|
||||||
rename.Click += (o, e) => {
|
rename.Click += (o, e) => {
|
||||||
RenameBranch.Show(repo, branch);
|
RenameBranch.Show(repo, branch);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -689,7 +689,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(rename);
|
menu.Items.Add(rename);
|
||||||
|
|
||||||
var delete = new MenuItem();
|
var delete = new MenuItem();
|
||||||
delete.Header = $"Delete '{branch.Name}'";
|
delete.Header = App.Format("BranchCM.Delete", branch.Name);
|
||||||
delete.IsEnabled = !branch.IsCurrent;
|
delete.IsEnabled = !branch.IsCurrent;
|
||||||
delete.Click += (o, e) => {
|
delete.Click += (o, e) => {
|
||||||
DeleteBranch.Show(repo, branch);
|
DeleteBranch.Show(repo, branch);
|
||||||
|
@ -699,7 +699,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(new Separator());
|
menu.Items.Add(new Separator());
|
||||||
|
|
||||||
var createBranch = new MenuItem();
|
var createBranch = new MenuItem();
|
||||||
createBranch.Header = "Create Branch";
|
createBranch.Header = App.Text("CreateBranch");
|
||||||
createBranch.Click += (o, e) => {
|
createBranch.Click += (o, e) => {
|
||||||
CreateBranch.Show(repo, branch);
|
CreateBranch.Show(repo, branch);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -707,7 +707,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(createBranch);
|
menu.Items.Add(createBranch);
|
||||||
|
|
||||||
var createTag = new MenuItem();
|
var createTag = new MenuItem();
|
||||||
createTag.Header = "Create Tag";
|
createTag.Header = App.Text("CreateTag");
|
||||||
createTag.Click += (o, e) => {
|
createTag.Click += (o, e) => {
|
||||||
CreateTag.Show(repo, branch);
|
CreateTag.Show(repo, branch);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -730,7 +730,7 @@ namespace SourceGit.UI {
|
||||||
currentTrackingIcon.Width = 10;
|
currentTrackingIcon.Width = 10;
|
||||||
|
|
||||||
var tracking = new MenuItem();
|
var tracking = new MenuItem();
|
||||||
tracking.Header = "Tracking ...";
|
tracking.Header = App.Text("BranchCM.Tracking");
|
||||||
tracking.Icon = trackingIcon;
|
tracking.Icon = trackingIcon;
|
||||||
|
|
||||||
foreach (var b in remoteBranches) {
|
foreach (var b in remoteBranches) {
|
||||||
|
@ -749,7 +749,7 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
var copy = new MenuItem();
|
var copy = new MenuItem();
|
||||||
copy.Header = "Copy Branch Name";
|
copy.Header = App.Text("BranchCM.CopyName");
|
||||||
copy.Click += (o, e) => {
|
copy.Click += (o, e) => {
|
||||||
Clipboard.SetText(branch.Name);
|
Clipboard.SetText(branch.Name);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -768,14 +768,14 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
private void OpenRemoteContextMenu(RemoteNode node) {
|
private void OpenRemoteContextMenu(RemoteNode node) {
|
||||||
var fetch = new MenuItem();
|
var fetch = new MenuItem();
|
||||||
fetch.Header = $"Fetch '{node.Name}'";
|
fetch.Header = App.Format("RemoteCM.Fetch", node.Name);
|
||||||
fetch.Click += (o, e) => {
|
fetch.Click += (o, e) => {
|
||||||
Fetch.Show(repo, node.Name);
|
Fetch.Show(repo, node.Name);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var edit = new MenuItem();
|
var edit = new MenuItem();
|
||||||
edit.Header = $"Edit '{node.Name}'";
|
edit.Header = App.Format("RemoteCM.Edit", node.Name);
|
||||||
edit.Click += (o, e) => {
|
edit.Click += (o, e) => {
|
||||||
var remotes = repo.Remotes();
|
var remotes = repo.Remotes();
|
||||||
var found = remotes.Find(r => r.Name == node.Name);
|
var found = remotes.Find(r => r.Name == node.Name);
|
||||||
|
@ -784,14 +784,14 @@ namespace SourceGit.UI {
|
||||||
};
|
};
|
||||||
|
|
||||||
var delete = new MenuItem();
|
var delete = new MenuItem();
|
||||||
delete.Header = $"Delete '{node.Name}'";
|
delete.Header = App.Format("RemoteCM.Delete", node.Name);
|
||||||
delete.Click += (o, e) => {
|
delete.Click += (o, e) => {
|
||||||
DeleteRemote.Show(repo, node.Name);
|
DeleteRemote.Show(repo, node.Name);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var copy = new MenuItem();
|
var copy = new MenuItem();
|
||||||
copy.Header = "Copy Remote URL";
|
copy.Header = App.Text("RemoteCM.CopyURL");
|
||||||
copy.Click += (o, e) => {
|
copy.Click += (o, e) => {
|
||||||
var remotes = repo.Remotes();
|
var remotes = repo.Remotes();
|
||||||
var found = remotes.Find(r => r.Name == node.Name);
|
var found = remotes.Find(r => r.Name == node.Name);
|
||||||
|
@ -815,7 +815,7 @@ namespace SourceGit.UI {
|
||||||
if (current == null) return;
|
if (current == null) return;
|
||||||
|
|
||||||
var checkout = new MenuItem();
|
var checkout = new MenuItem();
|
||||||
checkout.Header = $"Checkout '{branch.Name}'";
|
checkout.Header = App.Format("BranchCM.Checkout", branch.Name);
|
||||||
checkout.Click += (o, e) => {
|
checkout.Click += (o, e) => {
|
||||||
var branches = repo.Branches();
|
var branches = repo.Branches();
|
||||||
var tracked = null as Git.Branch;
|
var tracked = null as Git.Branch;
|
||||||
|
@ -838,49 +838,49 @@ namespace SourceGit.UI {
|
||||||
};
|
};
|
||||||
|
|
||||||
var pull = new MenuItem();
|
var pull = new MenuItem();
|
||||||
pull.Header = $"Pull '{branch.Name}' into '{current.Name}'";
|
pull.Header = App.Format("BranchCM.PullInto", branch.Name, current.Name);
|
||||||
pull.Click += (o, e) => {
|
pull.Click += (o, e) => {
|
||||||
Pull.Show(repo, branch.Name);
|
Pull.Show(repo, branch.Name);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var merge = new MenuItem();
|
var merge = new MenuItem();
|
||||||
merge.Header = $"Merge '{branch.Name}' into '{current.Name}'";
|
merge.Header = App.Format("BranchCM.Merge", branch.Name, current.Name);
|
||||||
merge.Click += (o, e) => {
|
merge.Click += (o, e) => {
|
||||||
Merge.Show(repo, branch.Name, current.Name);
|
Merge.Show(repo, branch.Name, current.Name);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var rebase = new MenuItem();
|
var rebase = new MenuItem();
|
||||||
rebase.Header = $"Rebase '{current.Name}' on '{branch.Name}'";
|
rebase.Header = App.Format("BranchCM.Rebase", current.Name, branch.Name);
|
||||||
rebase.Click += (o, e) => {
|
rebase.Click += (o, e) => {
|
||||||
Rebase.Show(repo, branch);
|
Rebase.Show(repo, branch);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var delete = new MenuItem();
|
var delete = new MenuItem();
|
||||||
delete.Header = $"Delete '{branch.Name}'";
|
delete.Header = App.Format("BranchCM.Delete", branch.Name);
|
||||||
delete.Click += (o, e) => {
|
delete.Click += (o, e) => {
|
||||||
DeleteBranch.Show(repo, branch);
|
DeleteBranch.Show(repo, branch);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var createBranch = new MenuItem();
|
var createBranch = new MenuItem();
|
||||||
createBranch.Header = "Create New Branch";
|
createBranch.Header = App.Text("CreateBranch");
|
||||||
createBranch.Click += (o, e) => {
|
createBranch.Click += (o, e) => {
|
||||||
CreateBranch.Show(repo, branch);
|
CreateBranch.Show(repo, branch);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var createTag = new MenuItem();
|
var createTag = new MenuItem();
|
||||||
createTag.Header = "Create New Tag";
|
createTag.Header = App.Text("CreateTag");
|
||||||
createTag.Click += (o, e) => {
|
createTag.Click += (o, e) => {
|
||||||
CreateTag.Show(repo, branch);
|
CreateTag.Show(repo, branch);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var copy = new MenuItem();
|
var copy = new MenuItem();
|
||||||
copy.Header = "Copy Branch Name";
|
copy.Header = App.Text("BranchCM.CopyName");
|
||||||
copy.Click += (o, e) => {
|
copy.Click += (o, e) => {
|
||||||
Clipboard.SetText(branch.Name);
|
Clipboard.SetText(branch.Name);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -946,28 +946,28 @@ namespace SourceGit.UI {
|
||||||
if (tag == null) return;
|
if (tag == null) return;
|
||||||
|
|
||||||
var createBranch = new MenuItem();
|
var createBranch = new MenuItem();
|
||||||
createBranch.Header = "Create New Branch";
|
createBranch.Header = App.Text("CreateBranch");
|
||||||
createBranch.Click += (o, ev) => {
|
createBranch.Click += (o, ev) => {
|
||||||
CreateBranch.Show(repo, tag);
|
CreateBranch.Show(repo, tag);
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var pushTag = new MenuItem();
|
var pushTag = new MenuItem();
|
||||||
pushTag.Header = $"Push '{tag.Name}'";
|
pushTag.Header = App.Format("TagCM.Push", tag.Name);
|
||||||
pushTag.Click += (o, ev) => {
|
pushTag.Click += (o, ev) => {
|
||||||
PushTag.Show(repo, tag);
|
PushTag.Show(repo, tag);
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var deleteTag = new MenuItem();
|
var deleteTag = new MenuItem();
|
||||||
deleteTag.Header = $"Delete '{tag.Name}'";
|
deleteTag.Header = App.Format("TagCM.Delete", tag.Name);
|
||||||
deleteTag.Click += (o, ev) => {
|
deleteTag.Click += (o, ev) => {
|
||||||
DeleteTag.Show(repo, tag);
|
DeleteTag.Show(repo, tag);
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var copy = new MenuItem();
|
var copy = new MenuItem();
|
||||||
copy.Header = "Copy Name";
|
copy.Header = App.Text("TagCM.Copy");
|
||||||
copy.Click += (o, ev) => {
|
copy.Click += (o, ev) => {
|
||||||
Clipboard.SetText(tag.Name);
|
Clipboard.SetText(tag.Name);
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
|
@ -1004,7 +1004,7 @@ namespace SourceGit.UI {
|
||||||
if (path == null) return;
|
if (path == null) return;
|
||||||
|
|
||||||
var open = new MenuItem();
|
var open = new MenuItem();
|
||||||
open.Header = "Open Submodule Repository";
|
open.Header = App.Text("Submodule.Open");
|
||||||
open.Click += (o, ev) => {
|
open.Click += (o, ev) => {
|
||||||
var sub = new Git.Repository();
|
var sub = new Git.Repository();
|
||||||
sub.Path = Path.Combine(repo.Path, path);
|
sub.Path = Path.Combine(repo.Path, path);
|
||||||
|
@ -1016,7 +1016,7 @@ namespace SourceGit.UI {
|
||||||
};
|
};
|
||||||
|
|
||||||
var copy = new MenuItem();
|
var copy = new MenuItem();
|
||||||
copy.Header = "Copy Relative Path";
|
copy.Header = App.Text("Submodule.CopyPath");
|
||||||
copy.Click += (o, ev) => {
|
copy.Click += (o, ev) => {
|
||||||
Clipboard.SetText(path);
|
Clipboard.SetText(path);
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:local="clr-namespace:SourceGit.UI"
|
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="160" d:DesignWidth="500" Height="128" Width="500">
|
d:DesignHeight="160" d:DesignWidth="500" Height="128" Width="500">
|
||||||
<Grid>
|
<Grid>
|
||||||
|
@ -20,9 +19,9 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Confirm To Delete Branch"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.DeleteBranch}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Branch :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.DeleteBranch.Branch}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}" Margin="4,0"/>
|
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}" Margin="4,0"/>
|
||||||
<TextBlock x:Name="branchName" Text="master" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="branchName" Text="master" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
|
@ -36,8 +35,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Sure" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Sure" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -19,9 +19,9 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Confirm To Delete Remote"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.DeleteRemote}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Remote :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.DeleteRemote.Remote}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Remote}" Margin="4,0"/>
|
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Remote}" Margin="4,0"/>
|
||||||
<TextBlock x:Name="remoteName" Text="origin" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="remoteName" Text="origin" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
|
@ -35,8 +35,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Sure" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Sure" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
|
@ -20,15 +20,15 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Confirm To Delete Tag"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.DeleteTag}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Tag :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.DeleteTag.Tag}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Tag}" Margin="4,0"/>
|
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Tag}" Margin="4,0"/>
|
||||||
<TextBlock x:Name="tagName" Text="v1.0" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="tagName" Text="v1.0" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<CheckBox Grid.Row="3" Grid.Column="1" x:Name="chkWithRemote" Content="Delete from remote repositories"/>
|
<CheckBox Grid.Row="3" Grid.Column="1" x:Name="chkWithRemote" Content="{StaticResource Text.DeleteTag.WithRemote}"/>
|
||||||
|
|
||||||
<Grid Grid.Row="5" Grid.ColumnSpan="2">
|
<Grid Grid.Row="5" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -38,8 +38,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -49,18 +49,18 @@
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<StackPanel Grid.Column="2" x:Name="textChangeOptions" Orientation="Horizontal" HorizontalAlignment="Right">
|
<StackPanel Grid.Column="2" x:Name="textChangeOptions" Orientation="Horizontal" HorizontalAlignment="Right">
|
||||||
<Button Width="26" Click="Go2Next" ToolTip="Next Difference" Background="Transparent">
|
<Button Width="26" Click="Go2Next" ToolTip="{StaticResource Text.Diff.Next}" Background="Transparent">
|
||||||
<Path Width="10" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.MoveDown}"/>
|
<Path Width="10" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.MoveDown}"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button Click="Go2Prev" ToolTip="Previous Difference" Background="Transparent">
|
<Button Click="Go2Prev" ToolTip="{StaticResource Text.Diff.Prev}" Background="Transparent">
|
||||||
<Path Width="10" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.MoveUp}"/>
|
<Path Width="10" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.MoveUp}"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<ToggleButton
|
<ToggleButton
|
||||||
Margin="8,0,0,0"
|
Margin="8,0,0,0"
|
||||||
Style="{StaticResource Style.ToggleButton.SplitDirection}"
|
Style="{StaticResource Style.ToggleButton.SplitDirection}"
|
||||||
ToolTip="Toggle One-Side/Two-Sides"
|
ToolTip="{StaticResource Text.Diff.Mode}"
|
||||||
IsChecked="{Binding Source={x:Static sourcegit:App.Setting}, Path=UI.UseCombinedDiff, Mode=TwoWay}"
|
IsChecked="{Binding Source={x:Static sourcegit:App.Setting}, Path=UI.UseCombinedDiff, Mode=TwoWay}"
|
||||||
Checked="ChangeDiffMode" Unchecked="ChangeDiffMode"/>
|
Checked="ChangeDiffMode" Unchecked="ChangeDiffMode"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
@ -79,7 +79,7 @@
|
||||||
|
|
||||||
<Border x:Name="sizeChange" Grid.Row="1" ClipToBounds="True" Background="{StaticResource Brush.Window}" Visibility="Collapsed">
|
<Border x:Name="sizeChange" Grid.Row="1" ClipToBounds="True" Background="{StaticResource Brush.Window}" Visibility="Collapsed">
|
||||||
<StackPanel Orientation="Vertical" VerticalAlignment="Center">
|
<StackPanel Orientation="Vertical" VerticalAlignment="Center">
|
||||||
<Label x:Name="txtSizeChangeTitle" Content="BINARY DIFF" Margin="0,0,0,32" FontSize="18" FontWeight="UltraBold" Foreground="{StaticResource Brush.FG2}" HorizontalAlignment="Center"/>
|
<Label x:Name="txtSizeChangeTitle" Content="{StaticResource Text.Diff.Binary}" Margin="0,0,0,32" FontSize="18" FontWeight="UltraBold" Foreground="{StaticResource Brush.FG2}" HorizontalAlignment="Center"/>
|
||||||
<Path Width="64" Height="64" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Binary}" Fill="{StaticResource Brush.FG2}"/>
|
<Path Width="64" Height="64" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Binary}" Fill="{StaticResource Brush.FG2}"/>
|
||||||
<Grid Margin="0,16,0,0" HorizontalAlignment="Center" TextElement.FontSize="18" TextElement.FontWeight="UltraBold">
|
<Grid Margin="0,16,0,0" HorizontalAlignment="Center" TextElement.FontSize="18" TextElement.FontWeight="UltraBold">
|
||||||
<Grid.RowDefinitions>
|
<Grid.RowDefinitions>
|
||||||
|
@ -88,13 +88,13 @@
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="64"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
<ColumnDefinition Width="Auto"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.Column="0" Content="OLD :" Foreground="{StaticResource Brush.FG2}"/>
|
<Label Grid.Row="0" Grid.Column="0" Content="{StaticResource Text.Diff.Binary.Old}" Foreground="{StaticResource Brush.FG2}"/>
|
||||||
<Label Grid.Row="0" Grid.Column="1" x:Name="txtOldSize" Foreground="{StaticResource Brush.FG2}" HorizontalAlignment="Right"/>
|
<Label Grid.Row="0" Grid.Column="1" x:Name="txtOldSize" Foreground="{StaticResource Brush.FG2}" HorizontalAlignment="Right"/>
|
||||||
<Label Grid.Row="1" Grid.Column="0" Content="NEW :" Foreground="{StaticResource Brush.FG2}"/>
|
<Label Grid.Row="1" Grid.Column="0" Content="{StaticResource Text.Diff.Binary.New}" Foreground="{StaticResource Brush.FG2}"/>
|
||||||
<Label Grid.Row="1" Grid.Column="1" x:Name="txtNewSize" Foreground="{StaticResource Brush.FG2}" HorizontalAlignment="Right"/>
|
<Label Grid.Row="1" Grid.Column="1" x:Name="txtNewSize" Foreground="{StaticResource Brush.FG2}" HorizontalAlignment="Right"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
@ -103,14 +103,14 @@
|
||||||
<Border x:Name="noChange" Grid.Row="1" Visibility="Collapsed">
|
<Border x:Name="noChange" Grid.Row="1" Visibility="Collapsed">
|
||||||
<StackPanel Orientation="Vertical" VerticalAlignment="Center" Opacity=".2">
|
<StackPanel Orientation="Vertical" VerticalAlignment="Center" Opacity=".2">
|
||||||
<Path Width="64" Height="64" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Check}"/>
|
<Path Width="64" Height="64" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Check}"/>
|
||||||
<Label Margin="0,8,0,0" Content="NO CHANGES OR ONLY EOL CHANGES" FontSize="18" FontWeight="UltraBold" HorizontalAlignment="Center"/>
|
<Label Margin="0,8,0,0" Content="{StaticResource Text.Diff.NoChange}" FontSize="18" FontWeight="UltraBold" HorizontalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<Border x:Name="mask" Grid.RowSpan="2" Visibility="Collapsed">
|
<Border x:Name="mask" Grid.RowSpan="2" Visibility="Collapsed">
|
||||||
<StackPanel Orientation="Vertical" VerticalAlignment="Center" Opacity=".2">
|
<StackPanel Orientation="Vertical" VerticalAlignment="Center" Opacity=".2">
|
||||||
<Path Width="64" Height="64" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Diff}"/>
|
<Path Width="64" Height="64" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Diff}"/>
|
||||||
<Label Margin="0,8,0,0" Content="SELECT FILE TO VIEW CHANGES" FontSize="18" FontWeight="UltraBold" HorizontalAlignment="Center"/>
|
<Label Margin="0,8,0,0" Content="{StaticResource Text.Diff.Welcome}" FontSize="18" FontWeight="UltraBold" HorizontalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Border>
|
</Border>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
|
@ -389,9 +389,9 @@ namespace SourceGit.UI {
|
||||||
loading.Visibility = Visibility.Collapsed;
|
loading.Visibility = Visibility.Collapsed;
|
||||||
sizeChange.Visibility = Visibility.Visible;
|
sizeChange.Visibility = Visibility.Visible;
|
||||||
textChangeOptions.Visibility = Visibility.Collapsed;
|
textChangeOptions.Visibility = Visibility.Collapsed;
|
||||||
txtSizeChangeTitle.Content = "BINARY DIFF";
|
txtSizeChangeTitle.Content = App.Text("Diff.Binary");
|
||||||
txtNewSize.Content = $"{bc.Size} Bytes";
|
txtNewSize.Content = App.Format("Bytes", bc.PreSize);
|
||||||
txtOldSize.Content = $"{bc.PreSize} Bytes";
|
txtOldSize.Content = App.Format("Bytes", bc.Size);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -407,9 +407,9 @@ namespace SourceGit.UI {
|
||||||
loading.Visibility = Visibility.Collapsed;
|
loading.Visibility = Visibility.Collapsed;
|
||||||
sizeChange.Visibility = Visibility.Visible;
|
sizeChange.Visibility = Visibility.Visible;
|
||||||
textChangeOptions.Visibility = Visibility.Collapsed;
|
textChangeOptions.Visibility = Visibility.Collapsed;
|
||||||
txtSizeChangeTitle.Content = "LFS OBJECT CHANGE";
|
txtSizeChangeTitle.Content = App.Text("Diff.LFS");
|
||||||
txtNewSize.Content = $"{newSize} Bytes";
|
txtNewSize.Content = App.Format("Bytes", newSize);
|
||||||
txtOldSize.Content = $"{oldSize} Bytes";
|
txtOldSize.Content = App.Format("Bytes", oldSize);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -754,7 +754,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
var menu = new ContextMenu();
|
var menu = new ContextMenu();
|
||||||
var copy = new MenuItem();
|
var copy = new MenuItem();
|
||||||
copy.Header = "Copy Selected Lines";
|
copy.Header = App.Text("Diff.Copy");
|
||||||
copy.Click += (o, ev) => {
|
copy.Click += (o, ev) => {
|
||||||
var items = grid.SelectedItems;
|
var items = grid.SelectedItems;
|
||||||
if (items.Count == 0) return;
|
if (items.Count == 0) return;
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:local="clr-namespace:SourceGit.UI"
|
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="160" d:DesignWidth="500" Height="160" Width="500">
|
d:DesignHeight="160" d:DesignWidth="500" Height="160" Width="500">
|
||||||
<Grid>
|
<Grid>
|
||||||
|
@ -21,15 +20,15 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Confirm To Discard Changes"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Discard}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Changes :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Discard.Changes}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path x:Name="icon" Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.File}" Fill="{StaticResource Brush.FG2}" Margin="4,0"/>
|
<Path x:Name="icon" Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.File}" Fill="{StaticResource Brush.FG2}" Margin="4,0"/>
|
||||||
<TextBlock x:Name="txtPath" Text="xxxx" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="txtPath" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="1" Content="You can't undo this action!!!" Foreground="{StaticResource Brush.FG2}"/>
|
<Label Grid.Row="3" Grid.Column="1" Content="{StaticResource Text.Discard.Warning}" Foreground="{StaticResource Brush.FG2}"/>
|
||||||
|
|
||||||
<Grid Grid.Row="5" Grid.ColumnSpan="2">
|
<Grid Grid.Row="5" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -39,8 +38,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Sure" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Sure" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -25,12 +25,12 @@ namespace SourceGit.UI {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
if (changes == null || changes.Count == 0) {
|
if (changes == null || changes.Count == 0) {
|
||||||
txtPath.Text = "All local changes in working copy.";
|
txtPath.Text = App.Text("Discard.All");
|
||||||
icon.Data = FindResource("Icon.Folder") as Geometry;
|
icon.Data = FindResource("Icon.Folder") as Geometry;
|
||||||
} else if (changes.Count == 1) {
|
} else if (changes.Count == 1) {
|
||||||
txtPath.Text = changes[0].Path;
|
txtPath.Text = changes[0].Path;
|
||||||
} else {
|
} else {
|
||||||
txtPath.Text = $"Total {changes.Count} changes ...";
|
txtPath.Text = App.Format("Discard.Total", changes.Count);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -27,9 +27,9 @@
|
||||||
<converters:InverseBool x:Key="InverseBool"/>
|
<converters:InverseBool x:Key="InverseBool"/>
|
||||||
</Grid.Resources>
|
</Grid.Resources>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Fetch Remote Changes"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Fetch.Title}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Remote :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Fetch.Remote}"/>
|
||||||
<ComboBox x:Name="combRemotes" Grid.Row="2" Grid.Column="1" VerticalAlignment="Center" IsEnabled="{Binding ElementName=chkFetchAll, Path=IsChecked, Converter={StaticResource InverseBool}}">
|
<ComboBox x:Name="combRemotes" Grid.Row="2" Grid.Column="1" VerticalAlignment="Center" IsEnabled="{Binding ElementName=chkFetchAll, Path=IsChecked, Converter={StaticResource InverseBool}}">
|
||||||
<ComboBox.ItemTemplate>
|
<ComboBox.ItemTemplate>
|
||||||
<DataTemplate DataType="{x:Type git:Remote}">
|
<DataTemplate DataType="{x:Type git:Remote}">
|
||||||
|
@ -44,12 +44,12 @@
|
||||||
<CheckBox Grid.Row="3" Grid.Column="1"
|
<CheckBox Grid.Row="3" Grid.Column="1"
|
||||||
x:Name="chkFetchAll"
|
x:Name="chkFetchAll"
|
||||||
IsChecked="True"
|
IsChecked="True"
|
||||||
Content="Fetch all remotes"/>
|
Content="{StaticResource Text.Fetch.AllRemotes}"/>
|
||||||
|
|
||||||
<CheckBox Grid.Row="4" Grid.Column="1"
|
<CheckBox Grid.Row="4" Grid.Column="1"
|
||||||
x:Name="chkPrune"
|
x:Name="chkPrune"
|
||||||
IsChecked="True"
|
IsChecked="True"
|
||||||
Content="Prune remote dead branches"/>
|
Content="{StaticResource Text.Fetch.Prune}"/>
|
||||||
|
|
||||||
<Grid Grid.Row="6" Grid.ColumnSpan="2">
|
<Grid Grid.Row="6" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -59,8 +59,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -5,9 +5,8 @@
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:local="clr-namespace:SourceGit.UI"
|
xmlns:local="clr-namespace:SourceGit.UI"
|
||||||
xmlns:git="clr-namespace:SourceGit.Git"
|
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="File Histories"
|
Title="{StaticResource Text.FileHistory}"
|
||||||
Height="600" Width="800">
|
Height="600" Width="800">
|
||||||
|
|
||||||
<!-- Enable WindowChrome -->
|
<!-- Enable WindowChrome -->
|
||||||
|
@ -54,7 +53,7 @@
|
||||||
Fill="{StaticResource Brush.Logo}"
|
Fill="{StaticResource Brush.Logo}"
|
||||||
WindowChrome.IsHitTestVisibleInChrome="True"
|
WindowChrome.IsHitTestVisibleInChrome="True"
|
||||||
MouseLeftButtonDown="LogoMouseButtonDown"/>
|
MouseLeftButtonDown="LogoMouseButtonDown"/>
|
||||||
<Label Content="SOURCE GIT - FILE HISTORIES" FontWeight="Light"/>
|
<Label Content="{StaticResource Text.FileHistory}" FontWeight="Light"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<!-- Options -->
|
<!-- Options -->
|
||||||
|
|
|
@ -18,22 +18,22 @@
|
||||||
</Style>
|
</Style>
|
||||||
</Grid.Resources>
|
</Grid.Resources>
|
||||||
|
|
||||||
<Button Click="OpenModeSelector" ToolTip="CHANGE FILES DISPLAY MODE" Margin="4,0">
|
<Button Click="OpenModeSelector" ToolTip="{StaticResource Text.FileDisplayMode}" Margin="4,0">
|
||||||
<Button.ContextMenu>
|
<Button.ContextMenu>
|
||||||
<ContextMenu x:Name="selector" Placement="Bottom" StaysOpen="False" Focusable="True">
|
<ContextMenu x:Name="selector" Placement="Bottom" StaysOpen="False" Focusable="True">
|
||||||
<MenuItem Header="Show as Grid" Click="UseGrid">
|
<MenuItem Header="{StaticResource Text.FileDisplayMode.Grid}" Click="UseGrid">
|
||||||
<MenuItem.Icon>
|
<MenuItem.Icon>
|
||||||
<Path Style="{StaticResource Style.Icon.DisplayMode}" Data="{StaticResource Icon.Grid}"/>
|
<Path Style="{StaticResource Style.Icon.DisplayMode}" Data="{StaticResource Icon.Grid}"/>
|
||||||
</MenuItem.Icon>
|
</MenuItem.Icon>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
|
||||||
<MenuItem Header="Show as List" Click="UseList">
|
<MenuItem Header="{StaticResource Text.FileDisplayMode.List}" Click="UseList">
|
||||||
<MenuItem.Icon>
|
<MenuItem.Icon>
|
||||||
<Path Style="{StaticResource Style.Icon.DisplayMode}" Data="{StaticResource Icon.List}"/>
|
<Path Style="{StaticResource Style.Icon.DisplayMode}" Data="{StaticResource Icon.List}"/>
|
||||||
</MenuItem.Icon>
|
</MenuItem.Icon>
|
||||||
</MenuItem>
|
</MenuItem>
|
||||||
|
|
||||||
<MenuItem Header="Show as Tree" Click="UseTree">
|
<MenuItem Header="{StaticResource Text.FileDisplayMode.Tree}" Click="UseTree">
|
||||||
<MenuItem.Icon>
|
<MenuItem.Icon>
|
||||||
<Path Style="{StaticResource Style.Icon.DisplayMode}" Data="{StaticResource Icon.Tree}"/>
|
<Path Style="{StaticResource Style.Icon.DisplayMode}" Data="{StaticResource Icon.Tree}"/>
|
||||||
</MenuItem.Icon>
|
</MenuItem.Icon>
|
||||||
|
|
|
@ -4,7 +4,7 @@
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="FolderDailog"
|
Title="{StaticResource Text.FolderDialog}"
|
||||||
Height="400" Width="400"
|
Height="400" Width="400"
|
||||||
ResizeMode="NoResize">
|
ResizeMode="NoResize">
|
||||||
|
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
|
|
||||||
<!-- Current -->
|
<!-- Current -->
|
||||||
<StackPanel Grid.Row="1" Orientation="Horizontal" Margin="0,4,0,0">
|
<StackPanel Grid.Row="1" Orientation="Horizontal" Margin="0,4,0,0">
|
||||||
<Label Content="Selected :" />
|
<Label Content="{StaticResource Text.FolderDialog.Selected}" />
|
||||||
<Label x:Name="txtSelected" Content="NONE" Foreground="{StaticResource Brush.FG2}"/>
|
<Label x:Name="txtSelected" Content="NONE" Foreground="{StaticResource Brush.FG2}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
|
@ -97,8 +97,8 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" x:Name="btnSure" Width="100" Height="32" Content="SURE" Click="OnSure" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" x:Name="btnSure" Width="100" Height="32" Content="{StaticResource Text.Sure}" Click="OnSure" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Width="100" Height="32" Content="CANCEL" Click="OnQuit" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Width="100" Height="32" Content="{StaticResource Text.Cancel}" Click="OnQuit" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
|
@ -35,8 +35,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Sure" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Sure" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -24,16 +24,16 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
switch (branch.Kind) {
|
switch (branch.Kind) {
|
||||||
case Git.Branch.Type.Feature:
|
case Git.Branch.Type.Feature:
|
||||||
txtTitle.Content = "Git Flow - Finish Feature";
|
txtTitle.Content = App.Text("GitFlow.FinishFeature");
|
||||||
txtBranchType.Content = "Feature :";
|
txtBranchType.Content = App.Text("GitFlow.Feature");
|
||||||
break;
|
break;
|
||||||
case Git.Branch.Type.Release:
|
case Git.Branch.Type.Release:
|
||||||
txtTitle.Content = "Git Flow - Finish Release";
|
txtTitle.Content = App.Text("GitFlow.FinishRelease");
|
||||||
txtBranchType.Content = "Release :";
|
txtBranchType.Content = App.Text("GitFlow.Release");
|
||||||
break;
|
break;
|
||||||
case Git.Branch.Type.Hotfix:
|
case Git.Branch.Type.Hotfix:
|
||||||
txtTitle.Content = "Git Flow - Finish Hotfix";
|
txtTitle.Content = App.Text("GitFlow.FinishHotfix");
|
||||||
txtBranchType.Content = "Hotfix :";
|
txtBranchType.Content = App.Text("GitFlow.Hotfix");
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
repo.GetPopupManager()?.Close();
|
repo.GetPopupManager()?.Close();
|
||||||
|
|
|
@ -26,21 +26,21 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Git Flow - Initialize"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.GitFlow.Init}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="Production Branch :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="{StaticResource Text.GitFlow.ProductionBranch}"/>
|
||||||
<TextBox Grid.Row="2" Grid.Column="1" x:Name="txtMaster" Padding="2,0" TextChanged="ValidateNames" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="master" Height="24" Text="master"/>
|
<TextBox Grid.Row="2" Grid.Column="1" x:Name="txtMaster" Padding="2,0" TextChanged="ValidateNames" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="master" Height="24" Text="master"/>
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="Development Branch :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="{StaticResource Text.GitFlow.DevelopBranch}"/>
|
||||||
<TextBox Grid.Row="3" Grid.Column="1" x:Name="txtDevelop" Padding="2,0" TextChanged="ValidateNames" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="develop" Height="24" Text="develop"/>
|
<TextBox Grid.Row="3" Grid.Column="1" x:Name="txtDevelop" Padding="2,0" TextChanged="ValidateNames" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="develop" Height="24" Text="develop"/>
|
||||||
|
|
||||||
<Label Grid.Row="5" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="Feature Prefix :"/>
|
<Label Grid.Row="5" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="{StaticResource Text.GitFlow.FeaturePrefix}"/>
|
||||||
<TextBox Grid.Row="5" Grid.Column="1" x:Name="txtFeature" Padding="2,0" TextChanged="ValidateNames" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="feature/" Height="24" Text="feature/"/>
|
<TextBox Grid.Row="5" Grid.Column="1" x:Name="txtFeature" Padding="2,0" TextChanged="ValidateNames" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="feature/" Height="24" Text="feature/"/>
|
||||||
<Label Grid.Row="6" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="Release Prefix :"/>
|
<Label Grid.Row="6" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="{StaticResource Text.GitFlow.ReleasePrefix}"/>
|
||||||
<TextBox Grid.Row="6" Grid.Column="1" x:Name="txtRelease" Padding="2,0" TextChanged="ValidateNames" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="release/" Height="24" Text="release/"/>
|
<TextBox Grid.Row="6" Grid.Column="1" x:Name="txtRelease" Padding="2,0" TextChanged="ValidateNames" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="release/" Height="24" Text="release/"/>
|
||||||
<Label Grid.Row="7" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="Hotfix Prefix :"/>
|
<Label Grid.Row="7" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="{StaticResource Text.GitFlow.HotfixPrefix}"/>
|
||||||
<TextBox Grid.Row="7" Grid.Column="1" x:Name="txtHotfix" Padding="2,0" TextChanged="ValidateNames" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="hotfix/" Height="24" Text="hotfix/"/>
|
<TextBox Grid.Row="7" Grid.Column="1" x:Name="txtHotfix" Padding="2,0" TextChanged="ValidateNames" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="hotfix/" Height="24" Text="hotfix/"/>
|
||||||
<Label Grid.Row="8" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="Version Tag Prefix :"/>
|
<Label Grid.Row="8" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="{StaticResource Text.GitFlow.TagPrefix}"/>
|
||||||
<TextBox Grid.Row="8" Grid.Column="1" x:Name="txtVersion" Padding="2,0" TextChanged="ValidateNames" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="Optional." Height="24" Text=""/>
|
<TextBox Grid.Row="8" Grid.Column="1" x:Name="txtVersion" Padding="2,0" TextChanged="ValidateNames" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="{StaticResource Text.Optional}" Height="24" Text=""/>
|
||||||
|
|
||||||
<Grid Grid.Row="10" Grid.ColumnSpan="2">
|
<Grid Grid.Row="10" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -52,8 +52,8 @@
|
||||||
|
|
||||||
<Label Grid.Column="0" x:Name="txtValidation" Foreground="Red"/>
|
<Label Grid.Column="0" x:Name="txtValidation" Foreground="Red"/>
|
||||||
|
|
||||||
<Button Grid.Column="1" x:Name="btnSure" Click="Sure" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" x:Name="btnSure" Click="Sure" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -76,7 +76,7 @@ namespace SourceGit.UI {
|
||||||
if (!ValidateBranch("Development", dev)) return;
|
if (!ValidateBranch("Development", dev)) return;
|
||||||
|
|
||||||
if (dev == master) {
|
if (dev == master) {
|
||||||
txtValidation.Content = "Development branch is same with production!";
|
txtValidation.Content = App.Text("GitFlow.DevSameAsProd");
|
||||||
btnSure.IsEnabled = false;
|
btnSure.IsEnabled = false;
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
@ -91,13 +91,13 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
private bool ValidateBranch(string type, string name) {
|
private bool ValidateBranch(string type, string name) {
|
||||||
if (string.IsNullOrEmpty(name)) {
|
if (string.IsNullOrEmpty(name)) {
|
||||||
txtValidation.Content = $"{type} branch name can't be empty";
|
txtValidation.Content = App.Format("GitFlow.BranchRequired", type);
|
||||||
btnSure.IsEnabled = false;
|
btnSure.IsEnabled = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!regex.IsMatch(name)) {
|
if (!regex.IsMatch(name)) {
|
||||||
txtValidation.Content = $"{type} branch name contains invalid characters.";
|
txtValidation.Content = App.Format("GitFlow.BranchInvalid", type);
|
||||||
btnSure.IsEnabled = false;
|
btnSure.IsEnabled = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -107,13 +107,13 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
private bool ValidatePrefix(string type, string prefix) {
|
private bool ValidatePrefix(string type, string prefix) {
|
||||||
if (string.IsNullOrEmpty(prefix)) {
|
if (string.IsNullOrEmpty(prefix)) {
|
||||||
txtValidation.Content = $"{type} prefix is required!";
|
txtValidation.Content = App.Format("GitFlow.PrefixRequired", type);
|
||||||
btnSure.IsEnabled = false;
|
btnSure.IsEnabled = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!regex.IsMatch(prefix)) {
|
if (!regex.IsMatch(prefix)) {
|
||||||
txtValidation.Content = $"{type} prefix contains invalid characters.";
|
txtValidation.Content = App.Format("GitFlow.PrefixInvalid", type);
|
||||||
btnSure.IsEnabled = false;
|
btnSure.IsEnabled = false;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
|
@ -24,7 +24,7 @@
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" x:Name="txtTitle" FontWeight="DemiBold" FontSize="18"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" x:Name="txtTitle" FontWeight="DemiBold" FontSize="18"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" x:Name="txtPrefix" HorizontalAlignment="Right" FontSize="16" VerticalAlignment="Center"/>
|
<Label Grid.Row="2" Grid.Column="0" x:Name="txtPrefix" HorizontalAlignment="Right" FontSize="16" VerticalAlignment="Center"/>
|
||||||
<TextBox Grid.Row="2" Grid.Column="1" x:Name="txtName" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="Enter name" Height="24">
|
<TextBox Grid.Row="2" Grid.Column="1" x:Name="txtName" VerticalContentAlignment="Center" helpers:TextBoxHelper.Placeholder="{StaticResource Text.GitFlow.StartPlaceholder}" Height="24">
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding ElementName="me" Path="SubName" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
|
<Binding ElementName="me" Path="SubName" Mode="TwoWay" UpdateSourceTrigger="PropertyChanged">
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
|
@ -42,8 +42,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Sure" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Sure" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -34,19 +34,19 @@ namespace SourceGit.UI {
|
||||||
switch (type) {
|
switch (type) {
|
||||||
case Git.Branch.Type.Feature:
|
case Git.Branch.Type.Feature:
|
||||||
var featurePrefix = repo.GetFeaturePrefix();
|
var featurePrefix = repo.GetFeaturePrefix();
|
||||||
txtTitle.Content = "Git Flow - Start Feature";
|
txtTitle.Content = App.Text("GitFlow.StartFeatureTitle");
|
||||||
txtPrefix.Content = featurePrefix;
|
txtPrefix.Content = featurePrefix;
|
||||||
nameValidator.Prefix = featurePrefix;
|
nameValidator.Prefix = featurePrefix;
|
||||||
break;
|
break;
|
||||||
case Git.Branch.Type.Release:
|
case Git.Branch.Type.Release:
|
||||||
var releasePrefix = repo.GetReleasePrefix();
|
var releasePrefix = repo.GetReleasePrefix();
|
||||||
txtTitle.Content = "Git Flow - Start Release";
|
txtTitle.Content = App.Text("GitFlow.StartReleaseTitle");
|
||||||
txtPrefix.Content = releasePrefix;
|
txtPrefix.Content = releasePrefix;
|
||||||
nameValidator.Prefix = releasePrefix;
|
nameValidator.Prefix = releasePrefix;
|
||||||
break;
|
break;
|
||||||
case Git.Branch.Type.Hotfix:
|
case Git.Branch.Type.Hotfix:
|
||||||
var hotfixPrefix = repo.GetHotfixPrefix();
|
var hotfixPrefix = repo.GetHotfixPrefix();
|
||||||
txtTitle.Content = "Git Flow - Start Hotfix";
|
txtTitle.Content = App.Text("GitFlow.StartHotfixTitle");
|
||||||
txtPrefix.Content = hotfixPrefix;
|
txtPrefix.Content = hotfixPrefix;
|
||||||
nameValidator.Prefix = hotfixPrefix;
|
nameValidator.Prefix = hotfixPrefix;
|
||||||
break;
|
break;
|
||||||
|
|
|
@ -38,12 +38,12 @@
|
||||||
|
|
||||||
<!-- SearchBar -->
|
<!-- SearchBar -->
|
||||||
<Grid x:Name="searchBar" Margin="0,-32,0,0" Grid.Row="0">
|
<Grid x:Name="searchBar" Margin="0,-32,0,0" Grid.Row="0">
|
||||||
<TextBox x:Name="txtSearch" Margin="4" Height="24" Padding="0,0,22,0" helpers:TextBoxHelper.Placeholder="SEARCH SHA/SUBJECT/AUTHOR. PRESS ENTER TO SEARCH, ESC TO QUIT" PreviewKeyDown="PreviewSearchKeyDown"/>
|
<TextBox x:Name="txtSearch" Margin="4" Height="24" Padding="0,0,22,0" helpers:TextBoxHelper.Placeholder="{StaticResource Text.Histories.Search}" PreviewKeyDown="PreviewSearchKeyDown"/>
|
||||||
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="8,0">
|
<StackPanel Orientation="Horizontal" VerticalAlignment="Center" HorizontalAlignment="Right" Margin="8,0">
|
||||||
<Button ToolTip="CLEAR" Click="ClearSearch">
|
<Button ToolTip="{StaticResource Text.Histories.SearchClear}" Click="ClearSearch">
|
||||||
<Path Width="12" Height="12" Fill="{StaticResource Brush.FG2}" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Clear}"/>
|
<Path Width="12" Height="12" Fill="{StaticResource Brush.FG2}" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Clear}"/>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Margin="8,0,0,0" ToolTip="CLOSE" Click="HideSearchBarByButton">
|
<Button Margin="8,0,0,0" ToolTip="{StaticResource Text.Close}" Click="HideSearchBarByButton">
|
||||||
<Path Width="12" Height="12" Fill="{StaticResource Brush.FG2}" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Up}"/>
|
<Path Width="12" Height="12" Fill="{StaticResource Brush.FG2}" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Up}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
@ -191,7 +191,7 @@
|
||||||
<!-- Layout Switch -->
|
<!-- Layout Switch -->
|
||||||
<ToggleButton
|
<ToggleButton
|
||||||
Style="{StaticResource Style.ToggleButton.Orientation}"
|
Style="{StaticResource Style.ToggleButton.Orientation}"
|
||||||
ToolTip="Toggle Horizontal/Vertical Layout"
|
ToolTip="{StaticResource Text.Histories.DisplayMode}"
|
||||||
IsChecked="{Binding Source={x:Static sourcegit:App.Setting}, Path=UI.MoveCommitViewerRight, Mode=TwoWay}"
|
IsChecked="{Binding Source={x:Static sourcegit:App.Setting}, Path=UI.MoveCommitViewerRight, Mode=TwoWay}"
|
||||||
Checked="ChangeOrientation" Unchecked="ChangeOrientation"/>
|
Checked="ChangeOrientation" Unchecked="ChangeOrientation"/>
|
||||||
|
|
||||||
|
@ -204,10 +204,11 @@
|
||||||
Fill="{StaticResource Brush.FG1}">
|
Fill="{StaticResource Brush.FG1}">
|
||||||
<Path.ToolTip>
|
<Path.ToolTip>
|
||||||
<StackPanel Orientation="Vertical" TextElement.FontFamily="Consolas">
|
<StackPanel Orientation="Vertical" TextElement.FontFamily="Consolas">
|
||||||
<Label Content="HISTORIES GUIDE" FontWeight="Bold" FontSize="14" Margin="0,0,0,8"/>
|
<Label Content="{StaticResource Text.Histories.Guide}" FontWeight="Bold" FontSize="14" Margin="0,0,0,8"/>
|
||||||
<Label Content="1. Select single commit to view detail"/>
|
<Label Content="{StaticResource Text.Histories.Guide_1}"/>
|
||||||
<Label Content="2. Select two commits to show differences"/>
|
<Label Content="{StaticResource Text.Histories.Guide_2}"/>
|
||||||
<Label Content="3. Select more than 2 commits to count"/>
|
<Label Content="{StaticResource Text.Histories.Guide_3}"/>
|
||||||
|
<Label Content="{StaticResource Text.Histories.Guide_4}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Path.ToolTip>
|
</Path.ToolTip>
|
||||||
</Path>
|
</Path>
|
||||||
|
|
|
@ -205,7 +205,7 @@ namespace SourceGit.UI {
|
||||||
} else if (selected.Count > 2) {
|
} else if (selected.Count > 2) {
|
||||||
mask.Visibility = Visibility.Visible;
|
mask.Visibility = Visibility.Visible;
|
||||||
txtCounter.Visibility = Visibility.Visible;
|
txtCounter.Visibility = Visibility.Visible;
|
||||||
txtCounter.Content = $"SELECTED {selected.Count} COMMITS";
|
txtCounter.Content = App.Format("Histories.Selected", selected.Count);
|
||||||
} else {
|
} else {
|
||||||
mask.Visibility = Visibility.Visible;
|
mask.Visibility = Visibility.Visible;
|
||||||
txtCounter.Visibility = Visibility.Hidden;
|
txtCounter.Visibility = Visibility.Hidden;
|
||||||
|
@ -226,7 +226,7 @@ namespace SourceGit.UI {
|
||||||
if (!string.IsNullOrEmpty(branch.Upstream)) {
|
if (!string.IsNullOrEmpty(branch.Upstream)) {
|
||||||
var upstream = branch.Upstream.Substring(13);
|
var upstream = branch.Upstream.Substring(13);
|
||||||
var fastForward = new MenuItem();
|
var fastForward = new MenuItem();
|
||||||
fastForward.Header = $"Fast-Forward to '{upstream}'";
|
fastForward.Header = App.Format("BranchCM.FastForward", upstream);
|
||||||
fastForward.Click += (o, e) => {
|
fastForward.Click += (o, e) => {
|
||||||
Merge.StartDirectly(Repo, upstream, branch.Name);
|
Merge.StartDirectly(Repo, upstream, branch.Name);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -234,7 +234,7 @@ namespace SourceGit.UI {
|
||||||
submenu.Items.Add(fastForward);
|
submenu.Items.Add(fastForward);
|
||||||
|
|
||||||
var pull = new MenuItem();
|
var pull = new MenuItem();
|
||||||
pull.Header = $"Pull '{upstream}' ...";
|
pull.Header = App.Format("BranchCM.Pull", upstream);
|
||||||
pull.Click += (o, e) => {
|
pull.Click += (o, e) => {
|
||||||
Pull.Show(Repo);
|
Pull.Show(Repo);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -243,7 +243,7 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
var push = new MenuItem();
|
var push = new MenuItem();
|
||||||
push.Header = $"Push '{branch.Name}' ...";
|
push.Header = App.Format("BranchCM.Push", branch.Name);
|
||||||
push.Click += (o, e) => {
|
push.Click += (o, e) => {
|
||||||
Push.Show(Repo, branch);
|
Push.Show(Repo, branch);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -258,7 +258,7 @@ namespace SourceGit.UI {
|
||||||
flowIcon.Width = 10;
|
flowIcon.Width = 10;
|
||||||
|
|
||||||
var finish = new MenuItem();
|
var finish = new MenuItem();
|
||||||
finish.Header = $"Git Flow - Finish '{branch.Name}'";
|
finish.Header = App.Format("BranchCM.Finish", branch.Name);
|
||||||
finish.Icon = flowIcon;
|
finish.Icon = flowIcon;
|
||||||
finish.Click += (o, e) => {
|
finish.Click += (o, e) => {
|
||||||
GitFlowFinishBranch.Show(Repo, branch);
|
GitFlowFinishBranch.Show(Repo, branch);
|
||||||
|
@ -270,7 +270,7 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
var rename = new MenuItem();
|
var rename = new MenuItem();
|
||||||
rename.Header = "Rename ...";
|
rename.Header = App.Format("BranchCM.Rename", branch.Name);
|
||||||
rename.Click += (o, e) => {
|
rename.Click += (o, e) => {
|
||||||
RenameBranch.Show(Repo, branch);
|
RenameBranch.Show(Repo, branch);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -292,7 +292,7 @@ namespace SourceGit.UI {
|
||||||
submenu.Icon = icon;
|
submenu.Icon = icon;
|
||||||
|
|
||||||
var checkout = new MenuItem();
|
var checkout = new MenuItem();
|
||||||
checkout.Header = $"Checkout '{branch.Name}'";
|
checkout.Header = App.Format("BranchCM.Checkout", branch.Name);
|
||||||
checkout.Click += (o, e) => {
|
checkout.Click += (o, e) => {
|
||||||
if (branch.IsLocal) {
|
if (branch.IsLocal) {
|
||||||
Task.Run(() => Repo.Checkout(branch.Name));
|
Task.Run(() => Repo.Checkout(branch.Name));
|
||||||
|
@ -312,7 +312,7 @@ namespace SourceGit.UI {
|
||||||
submenu.Items.Add(checkout);
|
submenu.Items.Add(checkout);
|
||||||
|
|
||||||
var merge = new MenuItem();
|
var merge = new MenuItem();
|
||||||
merge.Header = $"Merge into '{current.Name}' ...";
|
merge.Header = App.Format("BranchCM.Merge", branch.Name, current.Name);
|
||||||
merge.IsEnabled = !merged;
|
merge.IsEnabled = !merged;
|
||||||
merge.Click += (o, e) => {
|
merge.Click += (o, e) => {
|
||||||
Merge.Show(Repo, branch.Name, current.Name);
|
Merge.Show(Repo, branch.Name, current.Name);
|
||||||
|
@ -328,7 +328,7 @@ namespace SourceGit.UI {
|
||||||
flowIcon.Width = 10;
|
flowIcon.Width = 10;
|
||||||
|
|
||||||
var finish = new MenuItem();
|
var finish = new MenuItem();
|
||||||
finish.Header = $"Git Flow - Finish '{branch.Name}'";
|
finish.Header = App.Format("BranchCM.Finish", branch.Name);
|
||||||
finish.Icon = flowIcon;
|
finish.Icon = flowIcon;
|
||||||
finish.Click += (o, e) => {
|
finish.Click += (o, e) => {
|
||||||
GitFlowFinishBranch.Show(Repo, branch);
|
GitFlowFinishBranch.Show(Repo, branch);
|
||||||
|
@ -340,7 +340,7 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
var rename = new MenuItem();
|
var rename = new MenuItem();
|
||||||
rename.Header = "Rename ...";
|
rename.Header = App.Format("BranchCM.Rename", branch.Name);
|
||||||
rename.Visibility = branch.IsLocal ? Visibility.Visible : Visibility.Collapsed;
|
rename.Visibility = branch.IsLocal ? Visibility.Visible : Visibility.Collapsed;
|
||||||
rename.Click += (o, e) => {
|
rename.Click += (o, e) => {
|
||||||
RenameBranch.Show(Repo, current);
|
RenameBranch.Show(Repo, current);
|
||||||
|
@ -349,7 +349,7 @@ namespace SourceGit.UI {
|
||||||
submenu.Items.Add(rename);
|
submenu.Items.Add(rename);
|
||||||
|
|
||||||
var delete = new MenuItem();
|
var delete = new MenuItem();
|
||||||
delete.Header = "Delete ...";
|
delete.Header = App.Format("BranchCM.Delete", branch.Name);
|
||||||
delete.Click += (o, e) => {
|
delete.Click += (o, e) => {
|
||||||
DeleteBranch.Show(Repo, branch);
|
DeleteBranch.Show(Repo, branch);
|
||||||
};
|
};
|
||||||
|
@ -370,7 +370,7 @@ namespace SourceGit.UI {
|
||||||
submenu.MinWidth = 200;
|
submenu.MinWidth = 200;
|
||||||
|
|
||||||
var push = new MenuItem();
|
var push = new MenuItem();
|
||||||
push.Header = "Push ...";
|
push.Header = App.Format("TagCM.Push", tag.Name);
|
||||||
push.Click += (o, e) => {
|
push.Click += (o, e) => {
|
||||||
PushTag.Show(Repo, tag);
|
PushTag.Show(Repo, tag);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -378,7 +378,7 @@ namespace SourceGit.UI {
|
||||||
submenu.Items.Add(push);
|
submenu.Items.Add(push);
|
||||||
|
|
||||||
var delete = new MenuItem();
|
var delete = new MenuItem();
|
||||||
delete.Header = "Delete ...";
|
delete.Header = App.Format("TagCM.Delete", tag.Name);
|
||||||
delete.Click += (o, e) => {
|
delete.Click += (o, e) => {
|
||||||
DeleteTag.Show(Repo, tag);
|
DeleteTag.Show(Repo, tag);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -439,7 +439,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
// Reset
|
// Reset
|
||||||
var reset = new MenuItem();
|
var reset = new MenuItem();
|
||||||
reset.Header = $"Reset '{current.Name}' to Here";
|
reset.Header = App.Format("CommitCM.Reset", current.Name);
|
||||||
reset.Visibility = commit.IsHEAD ? Visibility.Collapsed : Visibility.Visible;
|
reset.Visibility = commit.IsHEAD ? Visibility.Collapsed : Visibility.Visible;
|
||||||
reset.Click += (o, e) => {
|
reset.Click += (o, e) => {
|
||||||
Reset.Show(Repo, commit);
|
Reset.Show(Repo, commit);
|
||||||
|
@ -449,7 +449,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
// Rebase or interactive rebase
|
// Rebase or interactive rebase
|
||||||
var rebase = new MenuItem();
|
var rebase = new MenuItem();
|
||||||
rebase.Header = commit.IsMerged ? $"Interactive Rebase '{current.Name}' from Here" : $"Rebase '{current.Name}' to Here";
|
rebase.Header = App.Format(commit.IsMerged ? "CommitCM.InteractiveRebase" : "CommitCM.Rebase", current.Name);
|
||||||
rebase.Visibility = commit.IsHEAD ? Visibility.Collapsed : Visibility.Visible;
|
rebase.Visibility = commit.IsHEAD ? Visibility.Collapsed : Visibility.Visible;
|
||||||
rebase.Click += (o, e) => {
|
rebase.Click += (o, e) => {
|
||||||
if (commit.IsMerged) {
|
if (commit.IsMerged) {
|
||||||
|
@ -472,7 +472,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
// Cherry-Pick
|
// Cherry-Pick
|
||||||
var cherryPick = new MenuItem();
|
var cherryPick = new MenuItem();
|
||||||
cherryPick.Header = "Cherry-Pick This Commit";
|
cherryPick.Header = App.Text("CommitCM.CherryPick");
|
||||||
cherryPick.Visibility = commit.IsMerged ? Visibility.Collapsed : Visibility.Visible;
|
cherryPick.Visibility = commit.IsMerged ? Visibility.Collapsed : Visibility.Visible;
|
||||||
cherryPick.Click += (o, e) => {
|
cherryPick.Click += (o, e) => {
|
||||||
CherryPick.Show(Repo, commit);
|
CherryPick.Show(Repo, commit);
|
||||||
|
@ -482,7 +482,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
// Revert commit
|
// Revert commit
|
||||||
var revert = new MenuItem();
|
var revert = new MenuItem();
|
||||||
revert.Header = "Revert Commit";
|
revert.Header = App.Text("CommitCM.Revert");
|
||||||
revert.Visibility = !commit.IsMerged ? Visibility.Collapsed : Visibility.Visible;
|
revert.Visibility = !commit.IsMerged ? Visibility.Collapsed : Visibility.Visible;
|
||||||
revert.Click += (o, e) => {
|
revert.Click += (o, e) => {
|
||||||
Revert.Show(Repo, commit);
|
Revert.Show(Repo, commit);
|
||||||
|
@ -493,14 +493,14 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
// Common
|
// Common
|
||||||
var createBranch = new MenuItem();
|
var createBranch = new MenuItem();
|
||||||
createBranch.Header = "Create Branch";
|
createBranch.Header = App.Text("CreateBranch");
|
||||||
createBranch.Click += (o, e) => {
|
createBranch.Click += (o, e) => {
|
||||||
CreateBranch.Show(Repo, commit);
|
CreateBranch.Show(Repo, commit);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
menu.Items.Add(createBranch);
|
menu.Items.Add(createBranch);
|
||||||
var createTag = new MenuItem();
|
var createTag = new MenuItem();
|
||||||
createTag.Header = "Create Tag";
|
createTag.Header = App.Text("CreateTag");
|
||||||
createTag.Click += (o, e) => {
|
createTag.Click += (o, e) => {
|
||||||
CreateTag.Show(Repo, commit);
|
CreateTag.Show(Repo, commit);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -510,7 +510,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
// Save as patch
|
// Save as patch
|
||||||
var patch = new MenuItem();
|
var patch = new MenuItem();
|
||||||
patch.Header = "Save as Patch";
|
patch.Header = App.Text("CommitCM.SaveAsPatch");
|
||||||
patch.Click += (o, e) => {
|
patch.Click += (o, e) => {
|
||||||
FolderDailog.Open("Save patch to ...", saveTo => {
|
FolderDailog.Open("Save patch to ...", saveTo => {
|
||||||
Repo.RunCommand($"format-patch {commit.SHA} -1 -o \"{saveTo}\"", null);
|
Repo.RunCommand($"format-patch {commit.SHA} -1 -o \"{saveTo}\"", null);
|
||||||
|
@ -521,7 +521,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
// Copy SHA
|
// Copy SHA
|
||||||
var copySHA = new MenuItem();
|
var copySHA = new MenuItem();
|
||||||
copySHA.Header = "Copy Commit SHA";
|
copySHA.Header = App.Text("CommitCM.CopySHA");
|
||||||
copySHA.Click += (o, e) => {
|
copySHA.Click += (o, e) => {
|
||||||
Clipboard.SetText(commit.SHA);
|
Clipboard.SetText(commit.SHA);
|
||||||
};
|
};
|
||||||
|
@ -529,7 +529,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
// Copy info
|
// Copy info
|
||||||
var copyInfo = new MenuItem();
|
var copyInfo = new MenuItem();
|
||||||
copyInfo.Header = "Copy Commit Info";
|
copyInfo.Header = App.Text("CommitCM.CopyInfo");
|
||||||
copyInfo.Click += (o, e) => {
|
copyInfo.Click += (o, e) => {
|
||||||
Clipboard.SetText(string.Format(
|
Clipboard.SetText(string.Format(
|
||||||
"SHA: {0}\nTITLE: {1}\nAUTHOR: {2} <{3}>\nTIME: {4}",
|
"SHA: {0}\nTITLE: {1}\nAUTHOR: {2} <{3}>\nTIME: {4}",
|
||||||
|
|
|
@ -20,15 +20,15 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Initialize Repository"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Init}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Path :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Init.Path}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Folder}" Margin="4,0"/>
|
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Folder}" Margin="4,0"/>
|
||||||
<Label x:Name="txtPath"/>
|
<Label x:Name="txtPath"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="1" Content="Invalid repository detected. Run `git init` under this path?" Foreground="{StaticResource Brush.FG2}"/>
|
<Label Grid.Row="3" Grid.Column="1" Content="{StaticResource Text.Init.Tip}" Foreground="{StaticResource Brush.FG2}"/>
|
||||||
|
|
||||||
<Grid Grid.Row="5" Grid.ColumnSpan="2">
|
<Grid Grid.Row="5" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -38,8 +38,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Sure" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Sure" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -6,7 +6,7 @@
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:local="clr-namespace:SourceGit.UI"
|
xmlns:local="clr-namespace:SourceGit.UI"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Title="Interactive Rebase"
|
Title="{StaticResource Text.InteractiveRebase}"
|
||||||
Height="600" Width="800">
|
Height="600" Width="800">
|
||||||
|
|
||||||
<!-- Enable WindowChrome -->
|
<!-- Enable WindowChrome -->
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
Fill="{StaticResource Brush.Logo}"
|
Fill="{StaticResource Brush.Logo}"
|
||||||
WindowChrome.IsHitTestVisibleInChrome="True"
|
WindowChrome.IsHitTestVisibleInChrome="True"
|
||||||
MouseLeftButtonDown="LogoMouseButtonDown"/>
|
MouseLeftButtonDown="LogoMouseButtonDown"/>
|
||||||
<Label Content="SOURCE GIT - INTERACTIVE REBASE" FontWeight="Light"/>
|
<Label Content="{StaticResource Text.InteractiveRebase}" FontWeight="Light"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<!-- Options -->
|
<!-- Options -->
|
||||||
|
@ -161,11 +161,11 @@
|
||||||
Grid.Column="4"
|
Grid.Column="4"
|
||||||
Orientation="Horizontal"
|
Orientation="Horizontal"
|
||||||
Margin="4,0">
|
Margin="4,0">
|
||||||
<Button Click="MoveUp" ToolTip="MOVE UP">
|
<Button Click="MoveUp" ToolTip="{StaticResource Text.InteractiveRebase.MoveUp}">
|
||||||
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.MoveUp}"/>
|
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.MoveUp}"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<Button Click="MoveDown" ToolTip="MOVE DOWN" Margin="4,0,0,0">
|
<Button Click="MoveDown" ToolTip="{StaticResource Text.InteractiveRebase.MoveDown}" Margin="4,0,0,0">
|
||||||
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.MoveDown}"/>
|
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.MoveDown}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
@ -211,17 +211,17 @@
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<StackPanel Grid.Column="0" Orientation="Horizontal" Margin="4,0,24,0">
|
<StackPanel Grid.Column="0" Orientation="Horizontal" Margin="4,0,24,0">
|
||||||
<Label Grid.Column="0" Content="Rebase :"/>
|
<Label Grid.Column="0" Content="{StaticResource Text.InteractiveRebase.Target}"/>
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
||||||
<Label x:Name="branch"/>
|
<Label x:Name="branch"/>
|
||||||
|
|
||||||
<Label Grid.Column="2" Content="On :" Margin="8,0,0,0"/>
|
<Label Grid.Column="2" Content="{StaticResource Text.InteractiveRebase.On}" Margin="8,0,0,0"/>
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Commit}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Commit}"/>
|
||||||
<Label x:Name="on"/>
|
<Label x:Name="on"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Button Grid.Column="1" Height="26" Click="Start" Style="{StaticResource Style.Button.AccentBordered}" Content="REBASE"/>
|
<Button Grid.Column="1" Height="26" Click="Start" Style="{StaticResource Style.Button.AccentBordered}" Content="{StaticResource Text.InteractiveRebase.Start}"/>
|
||||||
<Button Grid.Column="3" Height="26" Click="Cancel" Style="{StaticResource Style.Button.Bordered}" Content="CANCEL"/>
|
<Button Grid.Column="3" Height="26" Click="Cancel" Style="{StaticResource Style.Button.Bordered}" Content="{StaticResource Text.Cancel}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
|
@ -67,7 +67,7 @@
|
||||||
<ControlTemplate TargetType="{x:Type TabControl}">
|
<ControlTemplate TargetType="{x:Type TabControl}">
|
||||||
<StackPanel Orientation="Horizontal" Margin="8,6,4,0">
|
<StackPanel Orientation="Horizontal" Margin="8,6,4,0">
|
||||||
<StackPanel Orientation="Horizontal" IsItemsHost="True" SnapsToDevicePixels="True" KeyboardNavigation.TabIndex="1"/>
|
<StackPanel Orientation="Horizontal" IsItemsHost="True" SnapsToDevicePixels="True" KeyboardNavigation.TabIndex="1"/>
|
||||||
<Button Margin="4,0,0,0" Click="NewTab" ToolTip="NEW PAGE" WindowChrome.IsHitTestVisibleInChrome="True">
|
<Button Margin="4,0,0,0" Click="NewTab" ToolTip="{StaticResource Text.Launcher.NewPageButton}" WindowChrome.IsHitTestVisibleInChrome="True">
|
||||||
<Button.Style>
|
<Button.Style>
|
||||||
<Style TargetType="{x:Type Button}" BasedOn="{x:Null}">
|
<Style TargetType="{x:Type Button}" BasedOn="{x:Null}">
|
||||||
<Setter Property="Opacity" Value="1"/>
|
<Setter Property="Opacity" Value="1"/>
|
||||||
|
@ -125,7 +125,7 @@
|
||||||
Content="{Binding Title}"
|
Content="{Binding Title}"
|
||||||
Foreground="{StaticResource Brush.FG2}" FontFamily="Consolas" FontWeight="Bold"/>
|
Foreground="{StaticResource Brush.FG2}" FontFamily="Consolas" FontWeight="Bold"/>
|
||||||
|
|
||||||
<Button Grid.Column="3" Click="CloseTab" ToolTip="CLOSE">
|
<Button Grid.Column="3" Click="CloseTab" ToolTip="{StaticResource Text.Close}">
|
||||||
<Path
|
<Path
|
||||||
Width="8" Height="8"
|
Width="8" Height="8"
|
||||||
Fill="{StaticResource Brush.FG1}"
|
Fill="{StaticResource Brush.FG1}"
|
||||||
|
@ -241,11 +241,11 @@
|
||||||
HorizontalAlignment="Right"
|
HorizontalAlignment="Right"
|
||||||
Height="32"
|
Height="32"
|
||||||
WindowChrome.IsHitTestVisibleInChrome="True">
|
WindowChrome.IsHitTestVisibleInChrome="True">
|
||||||
<Button Click="ShowPreference" Width="24" ToolTip="PREFERENCE">
|
<Button Click="ShowPreference" Width="24" ToolTip="{StaticResource Text.Launcher.Preference}">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Preference}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Preference}"/>
|
||||||
</Button>
|
</Button>
|
||||||
<Rectangle Width="1" Height="18" Margin="6,0" VerticalAlignment="Center" Fill="{StaticResource Brush.Border1}"/>
|
<Rectangle Width="1" Height="18" Margin="6,0" VerticalAlignment="Center" Fill="{StaticResource Brush.Border1}"/>
|
||||||
<Button Click="ShowAbout" Width="24" ToolTip="ABOUT">
|
<Button Click="ShowAbout" Width="24" ToolTip="{StaticResource Text.Launcher.About}">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Info}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Info}"/>
|
||||||
</Button>
|
</Button>
|
||||||
<Rectangle Width="1" Height="18" Margin="6,0" VerticalAlignment="Center" Fill="{StaticResource Brush.Border1}"/>
|
<Rectangle Width="1" Height="18" Margin="6,0" VerticalAlignment="Center" Fill="{StaticResource Brush.Border1}"/>
|
||||||
|
@ -339,14 +339,14 @@
|
||||||
<RowDefinition Height="Auto"/>
|
<RowDefinition Height="Auto"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Content="ERROR" FontWeight="DemiBold"/>
|
<Label Grid.Row="0" Content="{StaticResource Text.Launcher.Error}" FontWeight="DemiBold"/>
|
||||||
<TextBlock Grid.Row="1" Margin="6,8" Text="{Binding}" Foreground="{StaticResource Brush.FG1}" TextWrapping="Wrap"/>
|
<TextBlock Grid.Row="1" Margin="6,8" Text="{Binding}" Foreground="{StaticResource Brush.FG1}" TextWrapping="Wrap"/>
|
||||||
<Button
|
<Button
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Margin="4,0"
|
Margin="4,0"
|
||||||
Click="RemoveError"
|
Click="RemoveError"
|
||||||
Height="25"
|
Height="25"
|
||||||
Content="CLOSE"
|
Content="{StaticResource Text.Close}"
|
||||||
Style="{StaticResource Style.Button.AccentBordered}"
|
Style="{StaticResource Style.Button.AccentBordered}"
|
||||||
BorderBrush="{StaticResource Brush.FG1}"
|
BorderBrush="{StaticResource Brush.FG1}"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
|
|
|
@ -66,13 +66,13 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
public string Title {
|
public string Title {
|
||||||
get {
|
get {
|
||||||
if (Repo == null) return "New Page";
|
if (Repo == null) return App.Text("Launcher.NewPage");
|
||||||
return Repo.Parent == null ? Repo.Name : $"{Repo.Parent.Name} : {Repo.Name}";
|
return Repo.Parent == null ? Repo.Name : $"{Repo.Parent.Name} : {Repo.Name}";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public string Tooltip {
|
public string Tooltip {
|
||||||
get { return Repo == null ? "Repository Manager" : Repo.Path; }
|
get { return Repo == null ? App.Text("Launcher.NewPageTip") : Repo.Path; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public bool IsRepo {
|
public bool IsRepo {
|
||||||
|
@ -178,7 +178,7 @@ namespace SourceGit.UI {
|
||||||
var repo = tab.Repo;
|
var repo = tab.Repo;
|
||||||
|
|
||||||
var refresh = new MenuItem();
|
var refresh = new MenuItem();
|
||||||
refresh.Header = "Refresh";
|
refresh.Header = App.Text("RepoCM.Refresh");
|
||||||
refresh.Click += (o, e) => {
|
refresh.Click += (o, e) => {
|
||||||
repo.AssertCommand(null);
|
repo.AssertCommand(null);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -186,7 +186,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
var iconBookmark = FindResource("Icon.Bookmark") as Geometry;
|
var iconBookmark = FindResource("Icon.Bookmark") as Geometry;
|
||||||
var bookmark = new MenuItem();
|
var bookmark = new MenuItem();
|
||||||
bookmark.Header = "Bookmark";
|
bookmark.Header = App.Text("RepoCM.Bookmark");
|
||||||
for (int i = 0; i < Converters.IntToRepoColor.Colors.Length; i++) {
|
for (int i = 0; i < Converters.IntToRepoColor.Colors.Length; i++) {
|
||||||
var icon = new System.Windows.Shapes.Path();
|
var icon = new System.Windows.Shapes.Path();
|
||||||
icon.Style = FindResource("Style.Icon") as Style;
|
icon.Style = FindResource("Style.Icon") as Style;
|
||||||
|
@ -208,7 +208,7 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
var copyPath = new MenuItem();
|
var copyPath = new MenuItem();
|
||||||
copyPath.Header = "Copy path";
|
copyPath.Header = App.Text("RepoCM.CopyPath");
|
||||||
copyPath.Click += (o, e) => {
|
copyPath.Click += (o, e) => {
|
||||||
Clipboard.SetText(repo.Path);
|
Clipboard.SetText(repo.Path);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
|
|
@ -3,7 +3,6 @@
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
xmlns:d="http://schemas.microsoft.com/expression/blend/2008"
|
||||||
xmlns:local="clr-namespace:SourceGit.UI"
|
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
d:DesignHeight="192" d:DesignWidth="500" Height="192" Width="500">
|
d:DesignHeight="192" d:DesignWidth="500" Height="192" Width="500">
|
||||||
<Grid>
|
<Grid>
|
||||||
|
@ -22,21 +21,21 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Merge Branch"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Merge}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Source Branch :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Merge.Source}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
||||||
<TextBlock x:Name="sourceBranch" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="sourceBranch" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="Into :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Merge.Into}"/>
|
||||||
<StackPanel Grid.Row="3" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="3" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
||||||
<TextBlock x:Name="targetBranch" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="targetBranch" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" Content="Merge Option :"/>
|
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Merge.Mode}"/>
|
||||||
<ComboBox x:Name="combOptions" Grid.Row="4" Grid.Column="1" VerticalAlignment="Center">
|
<ComboBox x:Name="combOptions" Grid.Row="4" Grid.Column="1" VerticalAlignment="Center">
|
||||||
<ComboBox.ItemTemplate>
|
<ComboBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
|
@ -56,8 +55,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
|
@ -32,7 +32,7 @@
|
||||||
<Path Grid.Row="0" Margin="0,48,0,0" Width="72" Height="72" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Git}" Fill="#FFF05133"/>
|
<Path Grid.Row="0" Margin="0,48,0,0" Width="72" Height="72" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Git}" Fill="#FFF05133"/>
|
||||||
|
|
||||||
<!-- Welcome -->
|
<!-- Welcome -->
|
||||||
<TextBlock Grid.Row="1" Margin="0,16" HorizontalAlignment="Center" Text="Welcome to SourceGit :)" FontSize="28" FontWeight="ExtraBold" Foreground="{StaticResource Brush.FG2}"/>
|
<TextBlock Grid.Row="1" Margin="0,16" HorizontalAlignment="Center" Text="{StaticResource Text.NewPage.Title}" FontSize="28" FontWeight="ExtraBold" Foreground="{StaticResource Brush.FG2}"/>
|
||||||
|
|
||||||
<!-- Options -->
|
<!-- Options -->
|
||||||
<Grid Grid.Row="2" Margin="0,0,0,36">
|
<Grid Grid.Row="2" Margin="0,0,0,36">
|
||||||
|
@ -44,13 +44,13 @@
|
||||||
<Button Click="OpenOrAddRepo" Grid.Column="0" Style="{StaticResource Style.Button.Bordered}">
|
<Button Click="OpenOrAddRepo" Grid.Column="0" Style="{StaticResource Style.Button.Bordered}">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Folder}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Folder}"/>
|
||||||
<Label Margin="4,0,0,0" Content="Open Local Repository"/>
|
<Label Margin="4,0,0,0" Content="{StaticResource Text.NewPage.OpenOrInit}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Click="CloneRepo" Grid.Column="2" Style="{StaticResource Style.Button.Bordered}">
|
<Button Click="CloneRepo" Grid.Column="2" Style="{StaticResource Style.Button.Bordered}">
|
||||||
<StackPanel Orientation="Horizontal">
|
<StackPanel Orientation="Horizontal">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Pull}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Pull}"/>
|
||||||
<Label Margin="4,0,0,0" Content="Clone Remote Repository"/>
|
<Label Margin="4,0,0,0" Content="{StaticResource Text.NewPage.Clone}"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -66,8 +66,8 @@
|
||||||
<ColumnDefinition Width="Auto"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<TextBlock Grid.Column="0" Text="REPOSITORIES" FontSize="18" FontWeight="ExtraBold" Foreground="{StaticResource Brush.FG2}"/>
|
<TextBlock Grid.Column="0" Text="{StaticResource Text.NewPage.Repositories}" FontSize="18" FontWeight="ExtraBold" Foreground="{StaticResource Brush.FG2}"/>
|
||||||
<TextBlock Grid.Column="2" Text="DRAG-DROP YOUR FOLDER" FontSize="14" Foreground="{StaticResource Brush.FG2}" VerticalAlignment="Center"/>
|
<TextBlock Grid.Column="2" Text="{StaticResource Text.NewPage.DragDrop}" FontSize="14" Foreground="{StaticResource Brush.FG2}" VerticalAlignment="Center"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- Drop area tip. -->
|
<!-- Drop area tip. -->
|
||||||
|
|
|
@ -42,7 +42,7 @@ namespace SourceGit.UI {
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void OpenOrAddRepo(object sender, RoutedEventArgs e) {
|
private void OpenOrAddRepo(object sender, RoutedEventArgs e) {
|
||||||
FolderDailog.Open("Open or init local repository", path => {
|
FolderDailog.Open(App.Text("NewPage.OpenOrInitDialog"), path => {
|
||||||
CheckAndOpenRepo(path);
|
CheckAndOpenRepo(path);
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
@ -151,7 +151,7 @@ namespace SourceGit.UI {
|
||||||
#region EVENT_TREEVIEW
|
#region EVENT_TREEVIEW
|
||||||
private void TreeContextMenuOpening(object sender, ContextMenuEventArgs e) {
|
private void TreeContextMenuOpening(object sender, ContextMenuEventArgs e) {
|
||||||
var addFolder = new MenuItem();
|
var addFolder = new MenuItem();
|
||||||
addFolder.Header = "Add Folder";
|
addFolder.Header = App.Text("NewPage.NewFolder");
|
||||||
addFolder.Click += (o, ev) => {
|
addFolder.Click += (o, ev) => {
|
||||||
var group = App.Setting.AddGroup("New Group", "");
|
var group = App.Setting.AddGroup("New Group", "");
|
||||||
UpdateTree(group.Id);
|
UpdateTree(group.Id);
|
||||||
|
@ -238,14 +238,14 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
if (node.IsRepo) {
|
if (node.IsRepo) {
|
||||||
var open = new MenuItem();
|
var open = new MenuItem();
|
||||||
open.Header = "Open";
|
open.Header = App.Text("RepoCM.Open");
|
||||||
open.Click += (o, ev) => {
|
open.Click += (o, ev) => {
|
||||||
CheckAndOpenRepo(node.Id);
|
CheckAndOpenRepo(node.Id);
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var explore = new MenuItem();
|
var explore = new MenuItem();
|
||||||
explore.Header = "Open Container Folder";
|
explore.Header = App.Text("RepoCM.Explore");
|
||||||
explore.Click += (o, ev) => {
|
explore.Click += (o, ev) => {
|
||||||
Process.Start("explorer", node.Id);
|
Process.Start("explorer", node.Id);
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
|
@ -253,7 +253,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
var iconBookmark = FindResource("Icon.Bookmark") as Geometry;
|
var iconBookmark = FindResource("Icon.Bookmark") as Geometry;
|
||||||
var bookmark = new MenuItem();
|
var bookmark = new MenuItem();
|
||||||
bookmark.Header = "Bookmark";
|
bookmark.Header = App.Text("RepoCM.Bookmark");
|
||||||
for (int i = 0; i < Converters.IntToRepoColor.Colors.Length; i++) {
|
for (int i = 0; i < Converters.IntToRepoColor.Colors.Length; i++) {
|
||||||
var icon = new System.Windows.Shapes.Path();
|
var icon = new System.Windows.Shapes.Path();
|
||||||
icon.Style = FindResource("Style.Icon") as Style;
|
icon.Style = FindResource("Style.Icon") as Style;
|
||||||
|
@ -283,7 +283,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(bookmark);
|
menu.Items.Add(bookmark);
|
||||||
} else {
|
} else {
|
||||||
var addSubFolder = new MenuItem();
|
var addSubFolder = new MenuItem();
|
||||||
addSubFolder.Header = "Add Sub-Folder";
|
addSubFolder.Header = App.Text("NewPage.NewSubFolder");
|
||||||
addSubFolder.Click += (o, ev) => {
|
addSubFolder.Click += (o, ev) => {
|
||||||
var parent = App.Setting.FindGroup(node.Id);
|
var parent = App.Setting.FindGroup(node.Id);
|
||||||
if (parent != null) parent.IsExpended = true;
|
if (parent != null) parent.IsExpended = true;
|
||||||
|
@ -297,14 +297,14 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
var rename = new MenuItem();
|
var rename = new MenuItem();
|
||||||
rename.Header = "Rename";
|
rename.Header = App.Text("NewPage.Rename");
|
||||||
rename.Click += (o, ev) => {
|
rename.Click += (o, ev) => {
|
||||||
UpdateTree(node.Id);
|
UpdateTree(node.Id);
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var delete = new MenuItem();
|
var delete = new MenuItem();
|
||||||
delete.Header = "Delete";
|
delete.Header = App.Text("NewPage.Delete");
|
||||||
delete.Click += (o, ev) => {
|
delete.Click += (o, ev) => {
|
||||||
DeleteNode(node);
|
DeleteNode(node);
|
||||||
ev.Handled = true;
|
ev.Handled = true;
|
||||||
|
@ -324,7 +324,7 @@ namespace SourceGit.UI {
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
private bool MakeSureReady() {
|
private bool MakeSureReady() {
|
||||||
if (!App.IsGitConfigured) {
|
if (!App.IsGitConfigured) {
|
||||||
App.RaiseError("Git has NOT been configured.\nPlease to go [Preference] and configure it first.");
|
App.RaiseError(App.Text("NotConfigured"));
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -344,7 +344,7 @@ namespace SourceGit.UI {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
App.RaiseError($"Path[{path}] not exists!");
|
App.RaiseError(App.Format("PathNotFound", path));
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -23,9 +23,9 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Pull (Fetch & Merge)"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Pull.Title}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Remote :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Pull.Remote}"/>
|
||||||
<ComboBox Grid.Row="2" Grid.Column="1"
|
<ComboBox Grid.Row="2" Grid.Column="1"
|
||||||
x:Name="combRemotes"
|
x:Name="combRemotes"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
|
@ -40,7 +40,7 @@
|
||||||
</ComboBox.ItemTemplate>
|
</ComboBox.ItemTemplate>
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="Branch :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Pull.Branch}"/>
|
||||||
<ComboBox Grid.Row="3" Grid.Column="1"
|
<ComboBox Grid.Row="3" Grid.Column="1"
|
||||||
x:Name="combBranches"
|
x:Name="combBranches"
|
||||||
VerticalAlignment="Center">
|
VerticalAlignment="Center">
|
||||||
|
@ -54,23 +54,23 @@
|
||||||
</ComboBox.ItemTemplate>
|
</ComboBox.ItemTemplate>
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
|
|
||||||
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="Into :"/>
|
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="{StaticResource Text.Pull.Into}"/>
|
||||||
<StackPanel Grid.Row="4" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="4" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
||||||
<TextBlock x:Name="txtInto" Text="master" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="txtInto" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<CheckBox Grid.Row="5" Grid.Column="1"
|
<CheckBox Grid.Row="5" Grid.Column="1"
|
||||||
x:Name="chkRebase"
|
x:Name="chkRebase"
|
||||||
IsChecked="True"
|
IsChecked="True"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Content="Use rebase instead of merge"/>
|
Content="{StaticResource Text.Pull.UseRebase}"/>
|
||||||
|
|
||||||
<CheckBox Grid.Row="6" Grid.Column="1"
|
<CheckBox Grid.Row="6" Grid.Column="1"
|
||||||
x:Name="chkAutoStash"
|
x:Name="chkAutoStash"
|
||||||
IsChecked="True"
|
IsChecked="True"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Content="Stash & reapply local changes"/>
|
Content="{StaticResource Text.Pull.AutoStash}"/>
|
||||||
|
|
||||||
<Grid Grid.Row="8" Grid.ColumnSpan="2">
|
<Grid Grid.Row="8" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -80,8 +80,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -24,9 +24,9 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Push Changes To Remote"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Push.Local}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="Local Branch :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="{StaticResource Text.Push.Local}"/>
|
||||||
<ComboBox Grid.Row="2" Grid.Column="1"
|
<ComboBox Grid.Row="2" Grid.Column="1"
|
||||||
x:Name="combLocalBranches"
|
x:Name="combLocalBranches"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
|
@ -41,7 +41,7 @@
|
||||||
</ComboBox.ItemTemplate>
|
</ComboBox.ItemTemplate>
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="Remote :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="{StaticResource Text.Push.Remote}"/>
|
||||||
<ComboBox Grid.Row="3" Grid.Column="1"
|
<ComboBox Grid.Row="3" Grid.Column="1"
|
||||||
x:Name="combRemotes"
|
x:Name="combRemotes"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
|
@ -56,7 +56,7 @@
|
||||||
</ComboBox.ItemTemplate>
|
</ComboBox.ItemTemplate>
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
|
|
||||||
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="To :"/>
|
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" VerticalAlignment="Center" Content="{StaticResource Text.Push.To}"/>
|
||||||
<ComboBox Grid.Row="4" Grid.Column="1"
|
<ComboBox Grid.Row="4" Grid.Column="1"
|
||||||
x:Name="combRemoteBranches"
|
x:Name="combRemoteBranches"
|
||||||
VerticalAlignment="Center">
|
VerticalAlignment="Center">
|
||||||
|
@ -73,12 +73,12 @@
|
||||||
<CheckBox Grid.Row="5" Grid.Column="1"
|
<CheckBox Grid.Row="5" Grid.Column="1"
|
||||||
x:Name="chkTags"
|
x:Name="chkTags"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Content="Push all tags"/>
|
Content="{StaticResource Text.Push.WithAllTags}"/>
|
||||||
|
|
||||||
<CheckBox Grid.Row="6" Grid.Column="1"
|
<CheckBox Grid.Row="6" Grid.Column="1"
|
||||||
x:Name="chkForce"
|
x:Name="chkForce"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Content="Force push"/>
|
Content="{StaticResource Text.Push.Force}"/>
|
||||||
|
|
||||||
<Grid Grid.Row="8" Grid.ColumnSpan="2">
|
<Grid Grid.Row="8" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -88,8 +88,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -20,15 +20,15 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Push Tag To Remote"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.PushTag}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Tag :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.PushTag.Tag}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Tag}" Margin="4,0"/>
|
<Path Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Tag}" Margin="4,0"/>
|
||||||
<TextBlock x:Name="tagName" Text="v1.0" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="tagName" Text="v1.0" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="Remote :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.PushTag.Remote}"/>
|
||||||
<ComboBox Grid.Row="3" Grid.Column="1"
|
<ComboBox Grid.Row="3" Grid.Column="1"
|
||||||
x:Name="combRemotes"
|
x:Name="combRemotes"
|
||||||
VerticalAlignment="Center">
|
VerticalAlignment="Center">
|
||||||
|
@ -50,8 +50,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
|
@ -21,15 +21,15 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Rebase Current Branch"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Rebase}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Rebase :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Rebase.Target}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
||||||
<TextBlock x:Name="branch" Text="master" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="branch" Text="master" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="On :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Rebase.On}"/>
|
||||||
<StackPanel Grid.Row="3" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="3" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path x:Name="type" Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
<Path x:Name="type" Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
||||||
<TextBlock x:Name="desc" Text="branch" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="desc" Text="branch" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
|
@ -38,7 +38,7 @@
|
||||||
<CheckBox x:Name="chkAutoStash"
|
<CheckBox x:Name="chkAutoStash"
|
||||||
Grid.Row="4" Grid.Column="1"
|
Grid.Row="4" Grid.Column="1"
|
||||||
IsChecked="True"
|
IsChecked="True"
|
||||||
Content="Stash & reapply local changes"/>
|
Content="{StaticResource Text.Rebase.AutoStash}"/>
|
||||||
|
|
||||||
<Grid Grid.Row="6" Grid.ColumnSpan="2">
|
<Grid Grid.Row="6" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -48,8 +48,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -22,14 +22,14 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" x:Name="title" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Add Remote"/>
|
<Label Grid.Row="0" x:Name="title" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Name :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Remote.Name}"/>
|
||||||
<TextBox Grid.Row="2" Grid.Column="1"
|
<TextBox Grid.Row="2" Grid.Column="1"
|
||||||
x:Name="txtName"
|
x:Name="txtName"
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Remote name">
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Remote.Name.Placeholder}">
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding Path="RemoteName" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
<Binding Path="RemoteName" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
|
@ -39,12 +39,12 @@
|
||||||
</TextBox.Text>
|
</TextBox.Text>
|
||||||
</TextBox>
|
</TextBox>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="Repository URL :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Remote.URL}"/>
|
||||||
<TextBox Grid.Row="3" Grid.Column="1"
|
<TextBox Grid.Row="3" Grid.Column="1"
|
||||||
x:Name="txtUrl"
|
x:Name="txtUrl"
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Remote git repository URL">
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Remote.URL.Placeholder}">
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding Path="RemoteUri" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
<Binding Path="RemoteUri" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
|
@ -62,8 +62,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Sure" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Sure" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -31,12 +31,7 @@ namespace SourceGit.UI {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
nameValidator.Repo = repo;
|
nameValidator.Repo = repo;
|
||||||
nameValidator.Old = remote;
|
nameValidator.Old = remote;
|
||||||
|
title.Content = App.Text(remote == null ? "Remote.AddTitle" : "Remote.EditTitle");
|
||||||
if (remote != null) {
|
|
||||||
title.Content = "Edit Remote";
|
|
||||||
} else {
|
|
||||||
title.Content = "Add New Remote";
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
|
|
@ -22,19 +22,19 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Rename Branch"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.RenameBranch}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Branch :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.RenameBranch.Target}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
<Path Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
||||||
<TextBlock x:Name="txtOldName" Text="Old name" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="txtOldName" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="New Name :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.RenameBranch.Name}"/>
|
||||||
<TextBox Grid.Row="3" Grid.Column="1"
|
<TextBox Grid.Row="3" Grid.Column="1"
|
||||||
x:Name="txtNewName"
|
x:Name="txtNewName"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Unique name for this branch">
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.RenameBranch.Name.Placeholder}">
|
||||||
<TextBox.Text>
|
<TextBox.Text>
|
||||||
<Binding Path="NewName" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
<Binding Path="NewName" ElementName="me" UpdateSourceTrigger="PropertyChanged" Mode="TwoWay">
|
||||||
<Binding.ValidationRules>
|
<Binding.ValidationRules>
|
||||||
|
@ -52,8 +52,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Sure" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Sure" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -21,21 +21,21 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Reset Current Branch To Revision"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Reset}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Current Branch :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Reset.Target}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Branch}"/>
|
||||||
<TextBlock x:Name="branch" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="branch" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="Move To :"/>
|
<Label Grid.Row="3" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Reset.MoveTo}"/>
|
||||||
<StackPanel Grid.Row="3" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="3" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Commit}"/>
|
<Path Width="12" Height="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Commit}"/>
|
||||||
<TextBlock x:Name="desc" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="desc" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" Content="Reset Mode :"/>
|
<Label Grid.Row="4" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Reset.Mode}"/>
|
||||||
<ComboBox x:Name="combMode" Grid.Row="4" Grid.Column="1" VerticalAlignment="Center">
|
<ComboBox x:Name="combMode" Grid.Row="4" Grid.Column="1" VerticalAlignment="Center">
|
||||||
<ComboBox.ItemTemplate>
|
<ComboBox.ItemTemplate>
|
||||||
<DataTemplate>
|
<DataTemplate>
|
||||||
|
@ -56,8 +56,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -20,15 +20,15 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Confirm To Revert Commit"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Revert}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Commit :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Revert.Commit}"/>
|
||||||
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
<StackPanel Grid.Row="2" Grid.Column="1" Orientation="Horizontal">
|
||||||
<Path x:Name="icon" Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Commit}" Margin="4,0"/>
|
<Path x:Name="icon" Width="12" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Commit}" Margin="4,0"/>
|
||||||
<TextBlock x:Name="txtDesc" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
<TextBlock x:Name="txtDesc" Padding="4,0,0,0" Foreground="{StaticResource Brush.FG1}" VerticalAlignment="Center"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<CheckBox Grid.Row="3" Grid.Column="1" x:Name="chkCommit" Content="Commit revert changes" IsChecked="True"/>
|
<CheckBox Grid.Row="3" Grid.Column="1" x:Name="chkCommit" Content="{StaticResource Text.Revert.CommitChanges}" IsChecked="True"/>
|
||||||
|
|
||||||
<Grid Grid.Row="5" Grid.ColumnSpan="2">
|
<Grid Grid.Row="5" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -38,8 +38,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Sure" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Sure" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -8,8 +8,8 @@
|
||||||
xmlns:app="clr-namespace:SourceGit"
|
xmlns:app="clr-namespace:SourceGit"
|
||||||
xmlns:git="clr-namespace:SourceGit.Git"
|
xmlns:git="clr-namespace:SourceGit.Git"
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
Height="548" Width="500"
|
Height="600" Width="500"
|
||||||
Title="Preference"
|
Title="{StaticResource Text.Preference}"
|
||||||
WindowStartupLocation="CenterOwner" ResizeMode="NoResize">
|
WindowStartupLocation="CenterOwner" ResizeMode="NoResize">
|
||||||
|
|
||||||
<!-- Enable WindowChrome Feature -->
|
<!-- Enable WindowChrome Feature -->
|
||||||
|
@ -37,7 +37,7 @@
|
||||||
<Path Width="20" Height="20" Margin="6,-1,2,0" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Git}" Fill="{StaticResource Brush.Logo}"/>
|
<Path Width="20" Height="20" Margin="6,-1,2,0" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Git}" Fill="{StaticResource Brush.Logo}"/>
|
||||||
|
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<Label Grid.Column="1" Content="Preference" FontWeight="Light"/>
|
<Label Grid.Column="1" Content="{StaticResource Text.Preference}" FontWeight="Light"/>
|
||||||
|
|
||||||
<!-- Close Button -->
|
<!-- Close Button -->
|
||||||
<Button Click="Close" Width="32" Grid.Column="3" WindowChrome.IsHitTestVisibleInChrome="True">
|
<Button Click="Close" Width="32" Grid.Column="3" WindowChrome.IsHitTestVisibleInChrome="True">
|
||||||
|
@ -61,6 +61,7 @@
|
||||||
<RowDefinition Height="36"/>
|
<RowDefinition Height="36"/>
|
||||||
<RowDefinition Height="28"/>
|
<RowDefinition Height="28"/>
|
||||||
<RowDefinition Height="28"/>
|
<RowDefinition Height="28"/>
|
||||||
|
<RowDefinition Height="28"/>
|
||||||
<RowDefinition Height="18"/>
|
<RowDefinition Height="18"/>
|
||||||
<RowDefinition Height="36"/>
|
<RowDefinition Height="36"/>
|
||||||
<RowDefinition Height="28"/>
|
<RowDefinition Height="28"/>
|
||||||
|
@ -83,25 +84,37 @@
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<!-- 通用 -->
|
<!-- 通用 -->
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" Content="GENERAL SETTING" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
<StackPanel Grid.Row="0" Grid.ColumnSpan="2" Orientation="Horizontal">
|
||||||
<Label Grid.Row="1" Grid.Column="0" Content="Light Theme :" HorizontalAlignment="Right"/>
|
<Label Content="{StaticResource Text.Preference.General}" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
||||||
<CheckBox
|
<Label Content="{StaticResource Text.Preference.RestartRequired}" Opacity=".5"/>
|
||||||
Grid.Row="1"
|
</StackPanel>
|
||||||
Grid.Column="1"
|
<Label Grid.Row="1" Grid.Column="0" Content="{StaticResource Text.Preference.Locale}" HorizontalAlignment="Right"/>
|
||||||
IsChecked="{Binding Source={x:Static app:App.Setting}, Path=UI.UseLightTheme, Mode=TwoWay}"
|
<ComboBox Grid.Row="1" Grid.Column="1"
|
||||||
Content="Restart required"
|
x:Name="cmbLang"
|
||||||
TextElement.FontStyle="Italic"/>
|
Height="24"
|
||||||
<Label Grid.Row="2" Grid.Column="0" Content="Check for Update :" HorizontalAlignment="Right"/>
|
Width="120"
|
||||||
|
HorizontalAlignment="Left"
|
||||||
|
VerticalContentAlignment="Center"
|
||||||
|
DisplayMemberPath="Desc"
|
||||||
|
SelectionChanged="ChangeLanguage"/>
|
||||||
|
|
||||||
|
<Label Grid.Row="2" Grid.Column="0" Content="{StaticResource Text.Preference.UseLight}" HorizontalAlignment="Right"/>
|
||||||
<CheckBox
|
<CheckBox
|
||||||
Grid.Row="2"
|
Grid.Row="2"
|
||||||
Grid.Column="1"
|
Grid.Column="1"
|
||||||
|
IsChecked="{Binding Source={x:Static app:App.Setting}, Path=UI.UseLightTheme, Mode=TwoWay}"
|
||||||
|
TextElement.FontStyle="Italic"/>
|
||||||
|
<Label Grid.Row="3" Grid.Column="0" Content="{StaticResource Text.Preference.CheckUpdate}" HorizontalAlignment="Right"/>
|
||||||
|
<CheckBox
|
||||||
|
Grid.Row="3"
|
||||||
|
Grid.Column="1"
|
||||||
IsChecked="{Binding Source={x:Static app:App.Setting}, Path=CheckUpdate, Mode=TwoWay}"
|
IsChecked="{Binding Source={x:Static app:App.Setting}, Path=CheckUpdate, Mode=TwoWay}"
|
||||||
TextElement.FontStyle="Italic"/>
|
TextElement.FontStyle="Italic"/>
|
||||||
|
|
||||||
<!-- GIT相关配置 -->
|
<!-- GIT相关配置 -->
|
||||||
<Label Grid.Row="4" Grid.ColumnSpan="2" Content="GIT INSTANCE" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
<Label Grid.Row="5" Grid.ColumnSpan="2" Content="{StaticResource Text.Preference.Git}" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
||||||
<Label Grid.Row="5" Grid.Column="0" Content="Install Path :" HorizontalAlignment="Right"/>
|
<Label Grid.Row="6" Grid.Column="0" Content="{StaticResource Text.Preference.Git.Path}" HorizontalAlignment="Right"/>
|
||||||
<Grid Grid.Row="5" Grid.Column="1">
|
<Grid Grid.Row="6" Grid.Column="1">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
<ColumnDefinition Width="28"/>
|
<ColumnDefinition Width="28"/>
|
||||||
|
@ -111,13 +124,13 @@
|
||||||
x:Name="txtGitPath"
|
x:Name="txtGitPath"
|
||||||
Height="24"
|
Height="24"
|
||||||
Text="{Binding Source={x:Static app:App.Setting}, Path=Tools.GitExecutable, Mode=TwoWay}"
|
Text="{Binding Source={x:Static app:App.Setting}, Path=Tools.GitExecutable, Mode=TwoWay}"
|
||||||
helpers:TextBoxHelper.Placeholder="Input path for git.exe"/>
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Preference.Git.Path.Placeholder}"/>
|
||||||
<Button Grid.Column="1" Width="24" Height="24" Click="SelectGitPath" Padding="0" BorderThickness="1" Style="{StaticResource Style.Button.Bordered}">
|
<Button Grid.Column="1" Width="24" Height="24" Click="SelectGitPath" Padding="0" BorderThickness="1" Style="{StaticResource Style.Button.Bordered}">
|
||||||
<Path Width="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Folder}"/>
|
<Path Width="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Folder}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Label Grid.Row="6" Grid.Column="0" Content="Default Clone Dir :" HorizontalAlignment="Right"/>
|
<Label Grid.Row="7" Grid.Column="0" Content="{StaticResource Text.Preference.Git.Dir}" HorizontalAlignment="Right"/>
|
||||||
<Grid Grid.Row="6" Grid.Column="1">
|
<Grid Grid.Row="7" Grid.Column="1">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
<ColumnDefinition Width="28"/>
|
<ColumnDefinition Width="28"/>
|
||||||
|
@ -127,20 +140,20 @@
|
||||||
x:Name="txtGitCloneDir"
|
x:Name="txtGitCloneDir"
|
||||||
Height="24"
|
Height="24"
|
||||||
Text="{Binding Source={x:Static app:App.Setting}, Path=Tools.GitDefaultCloneDir, Mode=TwoWay}"
|
Text="{Binding Source={x:Static app:App.Setting}, Path=Tools.GitDefaultCloneDir, Mode=TwoWay}"
|
||||||
helpers:TextBoxHelper.Placeholder="Default path to clone repo into"/>
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Preference.Git.Dir.Placeholder}"/>
|
||||||
<Button Grid.Column="1" Width="24" Height="24" Click="SelectDefaultClonePath" Padding="0" BorderThickness="1" Style="{StaticResource Style.Button.Bordered}">
|
<Button Grid.Column="1" Width="24" Height="24" Click="SelectDefaultClonePath" Padding="0" BorderThickness="1" Style="{StaticResource Style.Button.Bordered}">
|
||||||
<Path Width="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Folder}"/>
|
<Path Width="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Folder}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- Global User -->
|
<!-- Global User -->
|
||||||
<Label Grid.Row="8" Grid.ColumnSpan="2" Content="GLOBAL SETTING" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
<Label Grid.Row="9" Grid.ColumnSpan="2" Content="{StaticResource Text.Preference.Global}" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
||||||
<Label Grid.Row="9" Grid.Column="0" Content="Name :" HorizontalAlignment="Right"/>
|
<Label Grid.Row="10" Grid.Column="0" Content="{StaticResource Text.Preference.User}" HorizontalAlignment="Right"/>
|
||||||
<TextBox Grid.Row="9" Grid.Column="1" Height="24" helpers:TextBoxHelper.Placeholder="Global git user name" Text="{Binding ElementName=me, Path=GlobalUser, Mode=TwoWay}"/>
|
<TextBox Grid.Row="10" Grid.Column="1" Height="24" helpers:TextBoxHelper.Placeholder="Global git user name" Text="{Binding ElementName=me, Path=GlobalUser, Mode=TwoWay}"/>
|
||||||
<Label Grid.Row="10" Grid.Column="0" Content="Email :" HorizontalAlignment="Right"/>
|
<Label Grid.Row="11" Grid.Column="0" Content="{StaticResource Text.Preference.Email}" HorizontalAlignment="Right"/>
|
||||||
<TextBox Grid.Row="10" Grid.Column="1" Height="24" helpers:TextBoxHelper.Placeholder="Global git user email" Text="{Binding ElementName=me, Path=GlobalUserEmail, Mode=TwoWay}"/>
|
<TextBox Grid.Row="11" Grid.Column="1" Height="24" helpers:TextBoxHelper.Placeholder="Global git user email" Text="{Binding ElementName=me, Path=GlobalUserEmail, Mode=TwoWay}"/>
|
||||||
<Label Grid.Row="11" Grid.Column="0" Content="Auto CRLF :" HorizontalAlignment="Right"/>
|
<Label Grid.Row="12" Grid.Column="0" Content="{StaticResource Text.Preference.CRLF}" HorizontalAlignment="Right"/>
|
||||||
<ComboBox Grid.Row="11" Grid.Column="1"
|
<ComboBox Grid.Row="12" Grid.Column="1"
|
||||||
x:Name="cmbAutoCRLF"
|
x:Name="cmbAutoCRLF"
|
||||||
Height="24"
|
Height="24"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
|
@ -157,9 +170,9 @@
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
|
|
||||||
<!-- 合并工具配置 -->
|
<!-- 合并工具配置 -->
|
||||||
<Label Grid.Row="13" Grid.ColumnSpan="2" Content="MERGE TOOL" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
<Label Grid.Row="14" Grid.ColumnSpan="2" Content="{StaticResource Text.Preference.Merger}" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
||||||
<Label Grid.Row="14" Grid.Column="0" Content="Merger :" HorizontalAlignment="Right"/>
|
<Label Grid.Row="15" Grid.Column="0" Content="{StaticResource Text.Preference.Merger.Type}" HorizontalAlignment="Right"/>
|
||||||
<ComboBox Grid.Row="14" Grid.Column="1"
|
<ComboBox Grid.Row="15" Grid.Column="1"
|
||||||
Height="24"
|
Height="24"
|
||||||
Padding="2,0,0,0"
|
Padding="2,0,0,0"
|
||||||
HorizontalContentAlignment="Left"
|
HorizontalContentAlignment="Left"
|
||||||
|
@ -168,8 +181,8 @@
|
||||||
ItemsSource="{Binding Source={x:Static git:MergeTool.Supported}}"
|
ItemsSource="{Binding Source={x:Static git:MergeTool.Supported}}"
|
||||||
DisplayMemberPath="Name"
|
DisplayMemberPath="Name"
|
||||||
SelectionChanged="ChangeMergeTool"/>
|
SelectionChanged="ChangeMergeTool"/>
|
||||||
<Label Grid.Row="15" Grid.Column="0" Content="Install Path :" HorizontalAlignment="Right"/>
|
<Label Grid.Row="16" Grid.Column="0" Content="{StaticResource Text.Preference.Merger.Path}" HorizontalAlignment="Right"/>
|
||||||
<Grid Grid.Row="15" Grid.Column="1">
|
<Grid Grid.Row="16" Grid.Column="1">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
<ColumnDefinition Width="28"/>
|
<ColumnDefinition Width="28"/>
|
||||||
|
@ -179,13 +192,13 @@
|
||||||
x:Name="txtMergePath"
|
x:Name="txtMergePath"
|
||||||
Height="24"
|
Height="24"
|
||||||
Text="{Binding Source={x:Static app:App.Setting}, Path=Tools.MergeExecutable, Mode=TwoWay}"
|
Text="{Binding Source={x:Static app:App.Setting}, Path=Tools.MergeExecutable, Mode=TwoWay}"
|
||||||
helpers:TextBoxHelper.Placeholder="Input path for merge tool"/>
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Preference.Merger.Path.Placeholder}"/>
|
||||||
<Button Grid.Column="1" Width="24" Height="24" Click="SelectMergeToolPath" Padding="0" BorderThickness="1" Style="{StaticResource Style.Button.Bordered}">
|
<Button Grid.Column="1" Width="24" Height="24" Click="SelectMergeToolPath" Padding="0" BorderThickness="1" Style="{StaticResource Style.Button.Bordered}">
|
||||||
<Path Width="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Folder}"/>
|
<Path Width="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Folder}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Label Grid.Row="16" Grid.Column="0" Content="Command :" HorizontalAlignment="Right"/>
|
<Label Grid.Row="17" Grid.Column="0" Content="{StaticResource Text.Preference.Merger.Cmd}" HorizontalAlignment="Right"/>
|
||||||
<TextBlock Grid.Row="16" Grid.Column="1"
|
<TextBlock Grid.Row="17" Grid.Column="1"
|
||||||
x:Name="txtMergeParam"
|
x:Name="txtMergeParam"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Foreground="{StaticResource Brush.FG2}"/>
|
Foreground="{StaticResource Brush.FG2}"/>
|
||||||
|
|
|
@ -50,6 +50,19 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Locale setting.
|
||||||
|
/// </summary>
|
||||||
|
public class Locale {
|
||||||
|
public string Value { get; set; }
|
||||||
|
public string Desc { get; set; }
|
||||||
|
|
||||||
|
public Locale(string v, string d) {
|
||||||
|
Value = v;
|
||||||
|
Desc = d;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Constructor.
|
/// Constructor.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -61,6 +74,13 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
|
var locales = new List<Locale>() {
|
||||||
|
new Locale("en_US", "English"),
|
||||||
|
new Locale("zh_CN", "简体中文"),
|
||||||
|
};
|
||||||
|
cmbLang.ItemsSource = locales;
|
||||||
|
cmbLang.SelectedItem = locales.Find(o => o.Value == App.Setting.UI.Locale);
|
||||||
|
|
||||||
int mergeType = App.Setting.Tools.MergeTool;
|
int mergeType = App.Setting.Tools.MergeTool;
|
||||||
var merger = Git.MergeTool.Supported[mergeType];
|
var merger = Git.MergeTool.Supported[mergeType];
|
||||||
txtMergePath.IsReadOnly = !merger.IsConfigured;
|
txtMergePath.IsReadOnly = !merger.IsConfigured;
|
||||||
|
@ -91,6 +111,21 @@ namespace SourceGit.UI {
|
||||||
Close();
|
Close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Set locale
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="sender"></param>
|
||||||
|
/// <param name="e"></param>
|
||||||
|
private void ChangeLanguage(object sender, SelectionChangedEventArgs e) {
|
||||||
|
if (e.AddedItems.Count != 1) return;
|
||||||
|
|
||||||
|
var mode = e.AddedItems[0] as Locale;
|
||||||
|
if (mode == null) return;
|
||||||
|
|
||||||
|
App.Setting.UI.Locale = mode.Value;
|
||||||
|
App.SaveSetting();
|
||||||
|
}
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// Select git executable file path.
|
/// Select git executable file path.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
@ -100,7 +135,7 @@ namespace SourceGit.UI {
|
||||||
var dialog = new OpenFileDialog();
|
var dialog = new OpenFileDialog();
|
||||||
dialog.Filter = "Git Executable|git.exe";
|
dialog.Filter = "Git Executable|git.exe";
|
||||||
dialog.FileName = "git.exe";
|
dialog.FileName = "git.exe";
|
||||||
dialog.Title = "Select Git Executable File";
|
dialog.Title = App.Text("Preference.Dialog.GitExe");
|
||||||
dialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
|
dialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
|
||||||
dialog.CheckFileExists = true;
|
dialog.CheckFileExists = true;
|
||||||
|
|
||||||
|
@ -116,7 +151,7 @@ namespace SourceGit.UI {
|
||||||
/// <param name="sender"></param>
|
/// <param name="sender"></param>
|
||||||
/// <param name="e"></param>
|
/// <param name="e"></param>
|
||||||
private void SelectDefaultClonePath(object sender, RoutedEventArgs e) {
|
private void SelectDefaultClonePath(object sender, RoutedEventArgs e) {
|
||||||
FolderDailog.Open("Select default clone path", path => {
|
FolderDailog.Open(App.Text("Preference.Dialog.GitDir"), path => {
|
||||||
txtGitCloneDir.Text = path;
|
txtGitCloneDir.Text = path;
|
||||||
App.Setting.Tools.GitDefaultCloneDir = path;
|
App.Setting.Tools.GitDefaultCloneDir = path;
|
||||||
});
|
});
|
||||||
|
@ -151,7 +186,7 @@ namespace SourceGit.UI {
|
||||||
var merger = Git.MergeTool.Supported[mergeType];
|
var merger = Git.MergeTool.Supported[mergeType];
|
||||||
var dialog = new OpenFileDialog();
|
var dialog = new OpenFileDialog();
|
||||||
dialog.Filter = $"{merger.Name} Executable|{merger.ExecutableName}";
|
dialog.Filter = $"{merger.Name} Executable|{merger.ExecutableName}";
|
||||||
dialog.Title = $"Select {merger.Name} Install Path";
|
dialog.Title = App.Format("Preference.Dialog.Merger", merger.Name);
|
||||||
dialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
|
dialog.InitialDirectory = Environment.GetFolderPath(Environment.SpecialFolder.ProgramFiles);
|
||||||
dialog.CheckFileExists = true;
|
dialog.CheckFileExists = true;
|
||||||
|
|
||||||
|
|
|
@ -1,4 +1,4 @@
|
||||||
<UserControl x:Class="SourceGit.UI.Stash"
|
<UserControl x:Class="SourceGit.UI.Stash"
|
||||||
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
|
||||||
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"
|
||||||
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"
|
||||||
|
@ -21,15 +21,15 @@
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="Stash Local Changes"/>
|
<Label Grid.Row="0" Grid.ColumnSpan="2" FontWeight="DemiBold" FontSize="18" Content="{StaticResource Text.Stash.Title}"/>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="Message :"/>
|
<Label Grid.Row="2" Grid.Column="0" HorizontalAlignment="Right" Content="{StaticResource Text.Stash.Message}"/>
|
||||||
<TextBox Grid.Row="2" Grid.Column="1"
|
<TextBox Grid.Row="2" Grid.Column="1"
|
||||||
x:Name="txtName"
|
x:Name="txtName"
|
||||||
Height="24"
|
Height="24"
|
||||||
helpers:TextBoxHelper.Placeholder="Optional. Name of this stash"/>
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.Stash.Message.Placeholder}"/>
|
||||||
|
|
||||||
<CheckBox Grid.Row="3" Grid.Column="1" x:Name="chkIncludeUntracked" IsChecked="True" Content="Include untracked files"/>
|
<CheckBox Grid.Row="3" Grid.Column="1" x:Name="chkIncludeUntracked" IsChecked="True" Content="{StaticResource Text.Stash.IncludeUntracked}"/>
|
||||||
|
|
||||||
<Grid Grid.Row="5" Grid.ColumnSpan="2">
|
<Grid Grid.Row="5" Grid.ColumnSpan="2">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
|
@ -39,8 +39,8 @@
|
||||||
<ColumnDefinition Width="80"/>
|
<ColumnDefinition Width="80"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="1" Click="Start" Content="SURE" Style="{StaticResource Style.Button.AccentBordered}"/>
|
<Button Grid.Column="1" Click="Start" Content="{StaticResource Text.Sure}" Style="{StaticResource Style.Button.AccentBordered}"/>
|
||||||
<Button Grid.Column="3" Click="Cancel" Content="CANCEL" Style="{StaticResource Style.Button.Bordered}"/>
|
<Button Grid.Column="3" Click="Cancel" Content="{StaticResource Text.Cancel}" Style="{StaticResource Style.Button.Bordered}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</UserControl>
|
</UserControl>
|
||||||
|
|
|
@ -30,7 +30,7 @@
|
||||||
<RowDefinition Height="*"/>
|
<RowDefinition Height="*"/>
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Label Content="STASHES" Foreground="{StaticResource Brush.FG2}" Margin="4,0,0,0" FontWeight="Bold"/>
|
<Label Content="{StaticResource Text.Stashes.Stashes}" Foreground="{StaticResource Brush.FG2}" Margin="4,0,0,0" FontWeight="Bold"/>
|
||||||
<ListView
|
<ListView
|
||||||
Grid.Row="1"
|
Grid.Row="1"
|
||||||
x:Name="stashList"
|
x:Name="stashList"
|
||||||
|
@ -82,8 +82,8 @@
|
||||||
<ColumnDefinition Width="Auto"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Label Grid.Column="0" Content="CHANGES" Foreground="{StaticResource Brush.FG2}" Margin="4,0,0,0" FontWeight="Bold"/>
|
<Label Grid.Column="0" Content="{StaticResource Text.Stashes.Changes}" Foreground="{StaticResource Brush.FG2}" Margin="4,0,0,0" FontWeight="Bold"/>
|
||||||
<Label Grid.Column="1" Content="Untracked files not included" Foreground="{StaticResource Brush.FG2}" FontSize="10"/>
|
<Label Grid.Column="1" Content="{StaticResource Text.Stashes.Changes.Tip}" Foreground="{StaticResource Brush.FG2}" FontSize="10"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<ListView
|
<ListView
|
||||||
|
|
|
@ -97,15 +97,15 @@ namespace SourceGit.UI {
|
||||||
if (stash == null) return;
|
if (stash == null) return;
|
||||||
|
|
||||||
var apply = new MenuItem();
|
var apply = new MenuItem();
|
||||||
apply.Header = "Apply";
|
apply.Header = App.Text("StashCM.Apply");
|
||||||
apply.Click += (o, e) => stash.Apply(repo);
|
apply.Click += (o, e) => stash.Apply(repo);
|
||||||
|
|
||||||
var pop = new MenuItem();
|
var pop = new MenuItem();
|
||||||
pop.Header = "Pop";
|
pop.Header = App.Text("StashCM.Pop");
|
||||||
pop.Click += (o, e) => stash.Pop(repo);
|
pop.Click += (o, e) => stash.Pop(repo);
|
||||||
|
|
||||||
var delete = new MenuItem();
|
var delete = new MenuItem();
|
||||||
delete.Header = "Drop";
|
delete.Header = App.Text("StashCM.Drop");
|
||||||
delete.Click += (o, e) => stash.Drop(repo);
|
delete.Click += (o, e) => stash.Drop(repo);
|
||||||
|
|
||||||
var menu = new ContextMenu();
|
var menu = new ContextMenu();
|
||||||
|
|
|
@ -44,12 +44,12 @@
|
||||||
|
|
||||||
<Border Grid.Column="0" Grid.ColumnSpan="2" BorderThickness="1" BorderBrush="{StaticResource Brush.Border2}"/>
|
<Border Grid.Column="0" Grid.ColumnSpan="2" BorderThickness="1" BorderBrush="{StaticResource Brush.Border2}"/>
|
||||||
<Path Grid.Column="0" Width="14" Height="14" Fill="{StaticResource Brush.FG2}" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Search}"/>
|
<Path Grid.Column="0" Width="14" Height="14" Fill="{StaticResource Brush.FG2}" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Search}"/>
|
||||||
<TextBox Grid.Column="1" x:Name="txtChangeFilter" BorderThickness="0" helpers:TextBoxHelper.Placeholder="Search File ..." TextChanged="SearchChangeFileTextChanged"/>
|
<TextBox Grid.Column="1" x:Name="txtChangeFilter" BorderThickness="0" helpers:TextBoxHelper.Placeholder="{StaticResource Text.CommitViewer.Changes.Search}" TextChanged="SearchChangeFileTextChanged"/>
|
||||||
<ToggleButton
|
<ToggleButton
|
||||||
Grid.Column="2"
|
Grid.Column="2"
|
||||||
x:Name="toggleSwitchMode"
|
x:Name="toggleSwitchMode"
|
||||||
Margin="4,0,0,0"
|
Margin="4,0,0,0"
|
||||||
ToolTip="SWITCH TO LIST/TREE VIEW"
|
ToolTip="{StaticResource Text.CommitViewer.Changes.SwitchMode}"
|
||||||
Style="{StaticResource Style.ToggleButton.ListOrTree}"
|
Style="{StaticResource Style.ToggleButton.ListOrTree}"
|
||||||
IsChecked="{Binding Source={x:Static source:App.Setting}, Path=UI.UseListInChanges, Mode=TwoWay}"/>
|
IsChecked="{Binding Source={x:Static source:App.Setting}, Path=UI.UseListInChanges, Mode=TwoWay}"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
|
@ -51,7 +51,7 @@ namespace SourceGit.UI {
|
||||||
this.sha1 = sha1;
|
this.sha1 = sha1;
|
||||||
this.sha2 = sha2;
|
this.sha2 = sha2;
|
||||||
|
|
||||||
txtTitle.Content = $"COMMIT : {sha1} -> {sha2}";
|
txtTitle.Content = App.Format("TwoCommitsDiff", sha1, sha2);
|
||||||
Task.Run(() => LoadChanges(true));
|
Task.Run(() => LoadChanges(true));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -191,7 +191,7 @@ namespace SourceGit.UI {
|
||||||
var menu = new ContextMenu();
|
var menu = new ContextMenu();
|
||||||
if (change.Index != Git.Change.Status.Deleted) {
|
if (change.Index != Git.Change.Status.Deleted) {
|
||||||
MenuItem history = new MenuItem();
|
MenuItem history = new MenuItem();
|
||||||
history.Header = "File History";
|
history.Header = App.Text("FileHistory");
|
||||||
history.Click += (o, ev) => {
|
history.Click += (o, ev) => {
|
||||||
var viewer = new FileHistories(repo, path);
|
var viewer = new FileHistories(repo, path);
|
||||||
viewer.Show();
|
viewer.Show();
|
||||||
|
@ -199,7 +199,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(history);
|
menu.Items.Add(history);
|
||||||
|
|
||||||
MenuItem explore = new MenuItem();
|
MenuItem explore = new MenuItem();
|
||||||
explore.Header = "Reveal in File Explorer";
|
explore.Header = App.Text("RevealFile");
|
||||||
explore.Click += (o, ev) => {
|
explore.Click += (o, ev) => {
|
||||||
var absPath = Path.GetFullPath(repo.Path + "\\" + path);
|
var absPath = Path.GetFullPath(repo.Path + "\\" + path);
|
||||||
Process.Start("explorer", $"/select,{absPath}");
|
Process.Start("explorer", $"/select,{absPath}");
|
||||||
|
@ -209,7 +209,7 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem copyPath = new MenuItem();
|
MenuItem copyPath = new MenuItem();
|
||||||
copyPath.Header = "Copy Path";
|
copyPath.Header = App.Text("CopyPath");
|
||||||
copyPath.Click += (obj, ev) => {
|
copyPath.Click += (obj, ev) => {
|
||||||
Clipboard.SetText(path);
|
Clipboard.SetText(path);
|
||||||
};
|
};
|
||||||
|
@ -257,7 +257,7 @@ namespace SourceGit.UI {
|
||||||
ContextMenu menu = new ContextMenu();
|
ContextMenu menu = new ContextMenu();
|
||||||
if (node.Change == null || node.Change.Index != Git.Change.Status.Deleted) {
|
if (node.Change == null || node.Change.Index != Git.Change.Status.Deleted) {
|
||||||
MenuItem history = new MenuItem();
|
MenuItem history = new MenuItem();
|
||||||
history.Header = "File History";
|
history.Header = App.Text("FileHistory");
|
||||||
history.Click += (o, ev) => {
|
history.Click += (o, ev) => {
|
||||||
var viewer = new FileHistories(repo, node.FilePath);
|
var viewer = new FileHistories(repo, node.FilePath);
|
||||||
viewer.Show();
|
viewer.Show();
|
||||||
|
@ -265,7 +265,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(history);
|
menu.Items.Add(history);
|
||||||
|
|
||||||
MenuItem explore = new MenuItem();
|
MenuItem explore = new MenuItem();
|
||||||
explore.Header = "Reveal in File Explorer";
|
explore.Header = App.Text("RevealFile");
|
||||||
explore.Click += (o, ev) => {
|
explore.Click += (o, ev) => {
|
||||||
var path = Path.GetFullPath(repo.Path + "\\" + node.FilePath);
|
var path = Path.GetFullPath(repo.Path + "\\" + node.FilePath);
|
||||||
Process.Start("explorer", $"/select,{path}");
|
Process.Start("explorer", $"/select,{path}");
|
||||||
|
@ -275,7 +275,7 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
MenuItem copyPath = new MenuItem();
|
MenuItem copyPath = new MenuItem();
|
||||||
copyPath.Header = "Copy Path";
|
copyPath.Header = App.Text("CopyPath");
|
||||||
copyPath.Click += (obj, ev) => {
|
copyPath.Click += (obj, ev) => {
|
||||||
Clipboard.SetText(node.FilePath);
|
Clipboard.SetText(node.FilePath);
|
||||||
};
|
};
|
||||||
|
|
|
@ -6,6 +6,7 @@
|
||||||
mc:Ignorable="d"
|
mc:Ignorable="d"
|
||||||
FontFamily="Consolas"
|
FontFamily="Consolas"
|
||||||
Height="400" Width="500"
|
Height="400" Width="500"
|
||||||
|
Title="{StaticResource Text.UpdateAvailable}"
|
||||||
WindowStartupLocation="CenterOwner" ResizeMode="NoResize">
|
WindowStartupLocation="CenterOwner" ResizeMode="NoResize">
|
||||||
<!-- Enable WindowChrome Feature -->
|
<!-- Enable WindowChrome Feature -->
|
||||||
<WindowChrome.WindowChrome>
|
<WindowChrome.WindowChrome>
|
||||||
|
@ -29,10 +30,10 @@
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<!-- LOGO -->
|
<!-- LOGO -->
|
||||||
<Path Width="20" Height="20" Margin="6,-1,2,0" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Fetch}" Fill="{StaticResource Brush.Logo}"/>
|
<Path Width="20" Height="20" Margin="6,-1,2,0" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Fetch}" Fill="{StaticResource Brush.FG1}"/>
|
||||||
|
|
||||||
<!-- Title -->
|
<!-- Title -->
|
||||||
<Label Grid.Column="1" Content="UPDATE AVAILABLE" FontWeight="Light"/>
|
<Label Grid.Column="1" Content="{StaticResource Text.UpdateAvailable}" FontWeight="Light"/>
|
||||||
|
|
||||||
<!-- Close Button -->
|
<!-- Close Button -->
|
||||||
<Button Click="Quit" Width="32" Grid.Column="3" WindowChrome.IsHitTestVisibleInChrome="True">
|
<Button Click="Quit" Width="32" Grid.Column="3" WindowChrome.IsHitTestVisibleInChrome="True">
|
||||||
|
@ -62,25 +63,29 @@
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="140"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
|
<ColumnDefinition Width="Auto"/>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<StackPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Center">
|
<StackPanel Grid.Row="0" Grid.Column="0" Grid.ColumnSpan="3" Orientation="Horizontal" HorizontalAlignment="Center">
|
||||||
<Path Width="20" Height="20" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Git}" Fill="#FFF05133"/>
|
<Path Width="20" Height="20" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Git}" Fill="#FFF05133"/>
|
||||||
<Label x:Name="txtRelease" Content="Release 2.1 available!" FontSize="18" FontWeight="Bold"/>
|
<Label x:Name="txtRelease" FontSize="18" FontWeight="Bold"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
|
|
||||||
<Label Grid.Row="2" Grid.Column="0" Content="Publish Time :" HorizontalAlignment="Right"/>
|
<Label Grid.Row="2" Grid.Column="0" Content="{StaticResource Text.UpdateAvailable.Time}" Margin="8,0,0,0"/>
|
||||||
<Label Grid.Row="2" Grid.Column="1" x:Name="txtTime" Content="2020/11/30 00:00:00"/>
|
<Label Grid.Row="2" Grid.Column="1" Content=":"/>
|
||||||
|
<Label Grid.Row="2" Grid.Column="2" x:Name="txtTime" Content="2020/11/30 00:00:00"/>
|
||||||
|
|
||||||
<Label Grid.Row="3" Grid.Column="0" Content="Base On Commit :" HorizontalAlignment="Right"/>
|
<Label Grid.Row="3" Grid.Column="0" Content="{StaticResource Text.UpdateAvailable.Based}" Margin="8,0,0,0"/>
|
||||||
<Label Grid.Row="3" Grid.Column="1" x:Name="txtBasedOn" Content="724908ea"/>
|
<Label Grid.Row="3" Grid.Column="1" Content=":"/>
|
||||||
|
<Label Grid.Row="3" Grid.Column="2" x:Name="txtBasedOn" Content="724908ea"/>
|
||||||
|
|
||||||
<Label Grid.Row="4" Grid.Column="0" Content="Is Pre-release :" HorizontalAlignment="Right"/>
|
<Label Grid.Row="4" Grid.Column="0" Content="{StaticResource Text.UpdateAvailable.IsPreRelease}" Margin="8,0,0,0"/>
|
||||||
<Label Grid.Row="4" Grid.Column="1" x:Name="txtPrerelease" Content="NO"/>
|
<Label Grid.Row="4" Grid.Column="1" Content=":"/>
|
||||||
|
<Label Grid.Row="4" Grid.Column="2" x:Name="txtPrerelease" Content="NO"/>
|
||||||
|
|
||||||
<Border Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="2" Margin="6,6,6,0" BorderBrush="{StaticResource Brush.Border2}" BorderThickness="1">
|
<Border Grid.Row="5" Grid.Column="0" Grid.ColumnSpan="3" Margin="6,6,6,0" BorderBrush="{StaticResource Brush.Border2}" BorderThickness="1">
|
||||||
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
|
<ScrollViewer HorizontalScrollBarVisibility="Auto" VerticalScrollBarVisibility="Auto">
|
||||||
<TextBlock FontSize="10pt"
|
<TextBlock FontSize="10pt"
|
||||||
FontFamily="Consolas"
|
FontFamily="Consolas"
|
||||||
|
@ -92,9 +97,9 @@
|
||||||
</ScrollViewer>
|
</ScrollViewer>
|
||||||
</Border>
|
</Border>
|
||||||
|
|
||||||
<StackPanel Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="2" Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,8,0,0">
|
<StackPanel Grid.Row="6" Grid.Column="0" Grid.ColumnSpan="3" Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,8,0,0">
|
||||||
<Button Width="80" Height="24" Style="{StaticResource Style.Button.AccentBordered}" Content="DOWNLOAD" Click="Download"/>
|
<Button Width="80" Height="24" Style="{StaticResource Style.Button.AccentBordered}" Content="{StaticResource Text.UpdateAvailable.Download}" Click="Download"/>
|
||||||
<Button Width="80" Margin="8,0,0,0" Height="24" Style="{StaticResource Style.Button.Bordered}" Content="CANCEL" Click="Quit"/>
|
<Button Width="80" Margin="8,0,0,0" Height="24" Style="{StaticResource Style.Button.Bordered}" Content="{StaticResource Text.Cancel}" Click="Quit"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
|
@ -18,7 +18,7 @@ namespace SourceGit.UI {
|
||||||
public UpdateAvailable(Git.Version version) {
|
public UpdateAvailable(Git.Version version) {
|
||||||
InitializeComponent();
|
InitializeComponent();
|
||||||
|
|
||||||
txtRelease.Content = $"{version.Name} is available!";
|
txtRelease.Content = App.Format("UpdateAvailable.Title", version.Name);
|
||||||
txtTime.Content = version.CreatedAt.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss");
|
txtTime.Content = version.CreatedAt.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss");
|
||||||
txtBasedOn.Content = version.CommitSHA.Substring(0, 10);
|
txtBasedOn.Content = version.CommitSHA.Substring(0, 10);
|
||||||
txtPrerelease.Content = version.PreRelease ? "YES" : "NO";
|
txtPrerelease.Content = version.PreRelease ? "YES" : "NO";
|
||||||
|
|
|
@ -61,11 +61,11 @@
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
Mode="{Binding Source={x:Static source:App.Setting}, Path=UI.UnstageFileDisplayMode, Mode=TwoWay}"
|
Mode="{Binding Source={x:Static source:App.Setting}, Path=UI.UnstageFileDisplayMode, Mode=TwoWay}"
|
||||||
Opacity=".4"/>
|
Opacity=".4"/>
|
||||||
<Label Grid.Column="1" Content="UNSTAGED" FontWeight="Bold" Foreground="{StaticResource Brush.FG1}" Opacity=".4"/>
|
<Label Grid.Column="1" Content="{StaticResource Text.WorkingCopy.Unstaged}" FontWeight="Bold" Foreground="{StaticResource Brush.FG1}" Opacity=".4"/>
|
||||||
<Button Grid.Column="3" Click="Stage" Margin="4,0" ToolTip="STAGE" Background="Transparent">
|
<Button Grid.Column="3" Click="Stage" Margin="4,0" ToolTip="{StaticResource Text.WorkingCopy.Unstaged.Stage}" Background="Transparent">
|
||||||
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Down}" Opacity=".4"/>
|
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Down}" Opacity=".4"/>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Grid.Column="4" Click="StageAll" Margin="4,0" ToolTip="STAGE ALL" Background="Transparent">
|
<Button Grid.Column="4" Click="StageAll" Margin="4,0" ToolTip="{StaticResource Text.WorkingCopy.Unstaged.StageAll}" Background="Transparent">
|
||||||
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.DoubleDown}" Opacity=".4"/>
|
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.DoubleDown}" Opacity=".4"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -219,11 +219,11 @@
|
||||||
Grid.Column="0"
|
Grid.Column="0"
|
||||||
Mode="{Binding Source={x:Static source:App.Setting}, Path=UI.StagedFileDisplayMode, Mode=TwoWay}"
|
Mode="{Binding Source={x:Static source:App.Setting}, Path=UI.StagedFileDisplayMode, Mode=TwoWay}"
|
||||||
Opacity=".4"/>
|
Opacity=".4"/>
|
||||||
<Label Grid.Column="1" Content="STAGED" FontWeight="Bold" Foreground="{StaticResource Brush.FG1}" Opacity=".4"/>
|
<Label Grid.Column="1" Content="{StaticResource Text.WorkingCopy.Staged}" FontWeight="Bold" Foreground="{StaticResource Brush.FG1}" Opacity=".4"/>
|
||||||
<Button Grid.Column="3" Click="Unstage" ToolTip="UNSTAGE" Margin="4,0" Background="Transparent">
|
<Button Grid.Column="3" Click="Unstage" ToolTip="{StaticResource Text.WorkingCopy.Staged.Unstage}" Margin="4,0" Background="Transparent">
|
||||||
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Up}" Opacity=".4"/>
|
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Up}" Opacity=".4"/>
|
||||||
</Button>
|
</Button>
|
||||||
<Button Grid.Column="4" Click="UnstageAll" ToolTip="UNSTAGE ALL" Margin="4,0" Background="Transparent">
|
<Button Grid.Column="4" Click="UnstageAll" ToolTip="{StaticResource Text.WorkingCopy.Staged.UnstageAll}" Margin="4,0" Background="Transparent">
|
||||||
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.DoubleUp}" Opacity=".4"/>
|
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.DoubleUp}" Opacity=".4"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -373,11 +373,11 @@
|
||||||
<Grid Grid.Row="0" x:Name="mergePanel" Background="{StaticResource Brush.Window}" Visibility="Collapsed">
|
<Grid Grid.Row="0" x:Name="mergePanel" Background="{StaticResource Brush.Window}" Visibility="Collapsed">
|
||||||
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
|
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||||
<Path Width="64" Height="64" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Conflict}" Margin="0,0,0,16"/>
|
<Path Width="64" Height="64" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.Conflict}" Margin="0,0,0,16"/>
|
||||||
<Label Content="CONFLICTS DETECTED" FontSize="20" HorizontalAlignment="Center" FontWeight="DemiBold" Foreground="{StaticResource Brush.FG2}" Margin="0,0,0,24"/>
|
<Label Content="{StaticResource Text.WorkingCopy.Conflicts}" FontSize="20" HorizontalAlignment="Center" FontWeight="DemiBold" Foreground="{StaticResource Brush.FG2}" Margin="0,0,0,24"/>
|
||||||
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,4">
|
<StackPanel Orientation="Horizontal" HorizontalAlignment="Center" Margin="0,4">
|
||||||
<Button Click="UseTheirs" Style="{StaticResource Style.Button.Bordered}" Content="USE THEIRS" Height="24"/>
|
<Button Click="UseTheirs" Style="{StaticResource Style.Button.Bordered}" Content="{StaticResource Text.WorkingCopy.UseTheirs}" Height="24"/>
|
||||||
<Button Click="UseMine" Style="{StaticResource Style.Button.Bordered}" Content="USE MINE" Height="24" Margin="8,0"/>
|
<Button Click="UseMine" Style="{StaticResource Style.Button.Bordered}" Content="{StaticResource Text.WorkingCopy.UseMine}" Height="24" Margin="8,0"/>
|
||||||
<Button Click="OpenMergeTool" Style="{StaticResource Style.Button.Bordered}" Content="OPEN MERGE" Height="24"/>
|
<Button Click="OpenMergeTool" Style="{StaticResource Style.Button.Bordered}" Content="{StaticResource Text.WorkingCopy.OpenMerger}" Height="24"/>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</StackPanel>
|
</StackPanel>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
@ -393,7 +393,7 @@
|
||||||
TextWrapping="Wrap"
|
TextWrapping="Wrap"
|
||||||
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
|
ScrollViewer.HorizontalScrollBarVisibility="Disabled"
|
||||||
ScrollViewer.VerticalScrollBarVisibility="Auto"
|
ScrollViewer.VerticalScrollBarVisibility="Auto"
|
||||||
helpers:TextBoxHelper.Placeholder="Enter commit message"
|
helpers:TextBoxHelper.Placeholder="{StaticResource Text.WorkingCopy.CommitMessageTip}"
|
||||||
helpers:TextBoxHelper.PlaceholderBaseline="Top"
|
helpers:TextBoxHelper.PlaceholderBaseline="Top"
|
||||||
GotFocus="CommitMsgGotFocus"
|
GotFocus="CommitMsgGotFocus"
|
||||||
PreviewMouseWheel="CommitMsgPreviewMouseWheel">
|
PreviewMouseWheel="CommitMsgPreviewMouseWheel">
|
||||||
|
@ -416,14 +416,14 @@
|
||||||
<ColumnDefinition Width="Auto"/>
|
<ColumnDefinition Width="Auto"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
<Button Grid.Column="0" Width="16" Height="16" Margin="0,0,8,0" Click="OpenCommitMessageSelector" ToolTip="MESSAGE HISTORIES">
|
<Button Grid.Column="0" Width="16" Height="16" Margin="0,0,8,0" Click="OpenCommitMessageSelector" ToolTip="{StaticResource Text.WorkingCopy.MessageHistories}">
|
||||||
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.List}"/>
|
<Path Width="14" Height="14" Style="{StaticResource Style.Icon}" Data="{StaticResource Icon.List}"/>
|
||||||
</Button>
|
</Button>
|
||||||
|
|
||||||
<CheckBox Grid.Column="1" x:Name="chkAmend" HorizontalAlignment="Left" Content="Amend" Checked="StartAmend" Unchecked="EndAmend"/>
|
<CheckBox Grid.Column="1" x:Name="chkAmend" HorizontalAlignment="Left" Content="{StaticResource Text.WorkingCopy.Amend}" Checked="StartAmend" Unchecked="EndAmend"/>
|
||||||
|
|
||||||
<Button Grid.Column="3" Height="26" Click="Commit" Style="{StaticResource Style.Button.AccentBordered}" Content="COMMIT"/>
|
<Button Grid.Column="3" Height="26" Click="Commit" Style="{StaticResource Style.Button.AccentBordered}" Content="{StaticResource Text.WorkingCopy.Commit}"/>
|
||||||
<Button Grid.Column="4" x:Name="btnCommitAndPush" Height="26" Click="CommitAndPush" Style="{StaticResource Style.Button.Bordered}" Content="COMMIT & PUSH" Margin="8,0,0,0"/>
|
<Button Grid.Column="4" x:Name="btnCommitAndPush" Height="26" Click="CommitAndPush" Style="{StaticResource Style.Button.Bordered}" Content="{StaticResource Text.WorkingCopy.CommitAndPush}" Margin="8,0,0,0"/>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
|
@ -327,7 +327,7 @@ namespace SourceGit.UI {
|
||||||
var path = Path.GetFullPath(Repo.Path + "\\" + node.FilePath);
|
var path = Path.GetFullPath(Repo.Path + "\\" + node.FilePath);
|
||||||
var explore = new MenuItem();
|
var explore = new MenuItem();
|
||||||
explore.IsEnabled = File.Exists(path) || Directory.Exists(path);
|
explore.IsEnabled = File.Exists(path) || Directory.Exists(path);
|
||||||
explore.Header = "Reveal in File Explorer";
|
explore.Header = App.Text("RevealFile");
|
||||||
explore.Click += (o, e) => {
|
explore.Click += (o, e) => {
|
||||||
if (node.IsFile) Process.Start("explorer", $"/select,{path}");
|
if (node.IsFile) Process.Start("explorer", $"/select,{path}");
|
||||||
else Process.Start("explorer", path);
|
else Process.Start("explorer", path);
|
||||||
|
@ -335,21 +335,21 @@ namespace SourceGit.UI {
|
||||||
};
|
};
|
||||||
|
|
||||||
var stage = new MenuItem();
|
var stage = new MenuItem();
|
||||||
stage.Header = "Stage";
|
stage.Header = App.Text("FileCM.Stage");
|
||||||
stage.Click += async (o, e) => {
|
stage.Click += async (o, e) => {
|
||||||
await Task.Run(() => Repo.Stage(node.FilePath));
|
await Task.Run(() => Repo.Stage(node.FilePath));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var discard = new MenuItem();
|
var discard = new MenuItem();
|
||||||
discard.Header = "Discard changes ...";
|
discard.Header = App.Text("FileCM.Discard");
|
||||||
discard.Click += (o, e) => {
|
discard.Click += (o, e) => {
|
||||||
Discard.Show(Repo, changes);
|
Discard.Show(Repo, changes);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var stash = new MenuItem();
|
var stash = new MenuItem();
|
||||||
stash.Header = $"Stash ...";
|
stash.Header = App.Text("FileCM.Stash");
|
||||||
stash.Click += (o, e) => {
|
stash.Click += (o, e) => {
|
||||||
List<string> nodes = new List<string>() { node.FilePath };
|
List<string> nodes = new List<string>() { node.FilePath };
|
||||||
Stash.Show(Repo, nodes);
|
Stash.Show(Repo, nodes);
|
||||||
|
@ -357,11 +357,11 @@ namespace SourceGit.UI {
|
||||||
};
|
};
|
||||||
|
|
||||||
var patch = new MenuItem();
|
var patch = new MenuItem();
|
||||||
patch.Header = $"Save as patch ...";
|
patch.Header = App.Text("FileCM.SaveAsPatch");
|
||||||
patch.Click += (o, e) => {
|
patch.Click += (o, e) => {
|
||||||
var dialog = new SaveFileDialog();
|
var dialog = new SaveFileDialog();
|
||||||
dialog.Filter = "Patch File|*.patch";
|
dialog.Filter = "Patch File|*.patch";
|
||||||
dialog.Title = "Select file to store patch data.";
|
dialog.Title = App.Text("FileCM.SaveAsPatch");
|
||||||
dialog.InitialDirectory = Repo.Path;
|
dialog.InitialDirectory = Repo.Path;
|
||||||
|
|
||||||
if (dialog.ShowDialog() == true) {
|
if (dialog.ShowDialog() == true) {
|
||||||
|
@ -372,7 +372,7 @@ namespace SourceGit.UI {
|
||||||
};
|
};
|
||||||
|
|
||||||
var copyPath = new MenuItem();
|
var copyPath = new MenuItem();
|
||||||
copyPath.Header = "Copy full path";
|
copyPath.Header = App.Text("CopyPath");
|
||||||
copyPath.Click += (o, e) => {
|
copyPath.Click += (o, e) => {
|
||||||
Clipboard.SetText(node.FilePath);
|
Clipboard.SetText(node.FilePath);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -388,7 +388,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(new Separator());
|
menu.Items.Add(new Separator());
|
||||||
if (node.Change != null) {
|
if (node.Change != null) {
|
||||||
var history = new MenuItem();
|
var history = new MenuItem();
|
||||||
history.Header = "Histories ...";
|
history.Header = App.Text("FileHistory");
|
||||||
history.Click += (o, e) => {
|
history.Click += (o, e) => {
|
||||||
var viewer = new FileHistories(Repo, node.FilePath);
|
var viewer = new FileHistories(Repo, node.FilePath);
|
||||||
viewer.Show();
|
viewer.Show();
|
||||||
|
@ -407,32 +407,32 @@ namespace SourceGit.UI {
|
||||||
foreach (var c in changes) files.Add(c.Path);
|
foreach (var c in changes) files.Add(c.Path);
|
||||||
|
|
||||||
var stage = new MenuItem();
|
var stage = new MenuItem();
|
||||||
stage.Header = $"Stage {changes.Count} files ...";
|
stage.Header = App.Format("FileCM.StageMulti", changes.Count);
|
||||||
stage.Click += async (o, e) => {
|
stage.Click += async (o, e) => {
|
||||||
await Task.Run(() => Repo.Stage(files.ToArray()));
|
await Task.Run(() => Repo.Stage(files.ToArray()));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var discard = new MenuItem();
|
var discard = new MenuItem();
|
||||||
discard.Header = $"Discard {changes.Count} changes ...";
|
discard.Header = App.Format("FileCM.DiscardMulti", changes.Count);
|
||||||
discard.Click += (o, e) => {
|
discard.Click += (o, e) => {
|
||||||
Discard.Show(Repo, changes);
|
Discard.Show(Repo, changes);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var stash = new MenuItem();
|
var stash = new MenuItem();
|
||||||
stash.Header = $"Stash {changes.Count} files ...";
|
stash.Header = App.Format("FileCM.StashMulti", changes.Count);
|
||||||
stash.Click += (o, e) => {
|
stash.Click += (o, e) => {
|
||||||
Stash.Show(Repo, files);
|
Stash.Show(Repo, files);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var patch = new MenuItem();
|
var patch = new MenuItem();
|
||||||
patch.Header = $"Save as patch ...";
|
patch.Header = App.Text("FileCM.SaveAsPatch");
|
||||||
patch.Click += (o, e) => {
|
patch.Click += (o, e) => {
|
||||||
var dialog = new SaveFileDialog();
|
var dialog = new SaveFileDialog();
|
||||||
dialog.Filter = "Patch File|*.patch";
|
dialog.Filter = "Patch File|*.patch";
|
||||||
dialog.Title = "Select file to store patch data.";
|
dialog.Title = App.Text("FileCM.SaveAsPatch");
|
||||||
dialog.InitialDirectory = Repo.Path;
|
dialog.InitialDirectory = Repo.Path;
|
||||||
|
|
||||||
if (dialog.ShowDialog() == true) {
|
if (dialog.ShowDialog() == true) {
|
||||||
|
@ -470,28 +470,28 @@ namespace SourceGit.UI {
|
||||||
var path = Path.GetFullPath(Repo.Path + "\\" + change.Path);
|
var path = Path.GetFullPath(Repo.Path + "\\" + change.Path);
|
||||||
var explore = new MenuItem();
|
var explore = new MenuItem();
|
||||||
explore.IsEnabled = File.Exists(path) || Directory.Exists(path);
|
explore.IsEnabled = File.Exists(path) || Directory.Exists(path);
|
||||||
explore.Header = "Reveal in File Explorer";
|
explore.Header = App.Text("RevealFile");
|
||||||
explore.Click += (o, e) => {
|
explore.Click += (o, e) => {
|
||||||
Process.Start("explorer", $"/select,{path}");
|
Process.Start("explorer", $"/select,{path}");
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var stage = new MenuItem();
|
var stage = new MenuItem();
|
||||||
stage.Header = "Stage";
|
stage.Header = App.Text("FileCM.Stage");
|
||||||
stage.Click += async (o, e) => {
|
stage.Click += async (o, e) => {
|
||||||
await Task.Run(() => Repo.Stage(change.Path));
|
await Task.Run(() => Repo.Stage(change.Path));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var discard = new MenuItem();
|
var discard = new MenuItem();
|
||||||
discard.Header = "Discard changes ...";
|
discard.Header = App.Text("FileCM.Discard");
|
||||||
discard.Click += (o, e) => {
|
discard.Click += (o, e) => {
|
||||||
Discard.Show(Repo, new List<Git.Change>() { change });
|
Discard.Show(Repo, new List<Git.Change>() { change });
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var stash = new MenuItem();
|
var stash = new MenuItem();
|
||||||
stash.Header = $"Stash ...";
|
stash.Header = App.Text("FileCM.Stash");
|
||||||
stash.Click += (o, e) => {
|
stash.Click += (o, e) => {
|
||||||
List<string> nodes = new List<string>() { change.Path };
|
List<string> nodes = new List<string>() { change.Path };
|
||||||
Stash.Show(Repo, nodes);
|
Stash.Show(Repo, nodes);
|
||||||
|
@ -499,11 +499,11 @@ namespace SourceGit.UI {
|
||||||
};
|
};
|
||||||
|
|
||||||
var patch = new MenuItem();
|
var patch = new MenuItem();
|
||||||
patch.Header = $"Save as patch ...";
|
patch.Header = App.Text("FileCM.SaveAsPatch");
|
||||||
patch.Click += (o, e) => {
|
patch.Click += (o, e) => {
|
||||||
var dialog = new SaveFileDialog();
|
var dialog = new SaveFileDialog();
|
||||||
dialog.Filter = "Patch File|*.patch";
|
dialog.Filter = "Patch File|*.patch";
|
||||||
dialog.Title = "Select file to store patch data.";
|
dialog.Title = App.Text("FileCM.SaveAsPatch");
|
||||||
dialog.InitialDirectory = Repo.Path;
|
dialog.InitialDirectory = Repo.Path;
|
||||||
|
|
||||||
if (dialog.ShowDialog() == true) {
|
if (dialog.ShowDialog() == true) {
|
||||||
|
@ -514,7 +514,7 @@ namespace SourceGit.UI {
|
||||||
};
|
};
|
||||||
|
|
||||||
var copyPath = new MenuItem();
|
var copyPath = new MenuItem();
|
||||||
copyPath.Header = "Copy file path";
|
copyPath.Header = App.Text("CopyPath");
|
||||||
copyPath.Click += (o, e) => {
|
copyPath.Click += (o, e) => {
|
||||||
Clipboard.SetText(change.Path);
|
Clipboard.SetText(change.Path);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -530,7 +530,7 @@ namespace SourceGit.UI {
|
||||||
menu.Items.Add(new Separator());
|
menu.Items.Add(new Separator());
|
||||||
if (change != null) {
|
if (change != null) {
|
||||||
var history = new MenuItem();
|
var history = new MenuItem();
|
||||||
history.Header = "Histories ...";
|
history.Header = App.Text("FileHistory");
|
||||||
history.Click += (o, e) => {
|
history.Click += (o, e) => {
|
||||||
var viewer = new FileHistories(Repo, change.Path);
|
var viewer = new FileHistories(Repo, change.Path);
|
||||||
viewer.Show();
|
viewer.Show();
|
||||||
|
@ -550,32 +550,32 @@ namespace SourceGit.UI {
|
||||||
}
|
}
|
||||||
|
|
||||||
var stage = new MenuItem();
|
var stage = new MenuItem();
|
||||||
stage.Header = $"Stage {changes.Count} files ...";
|
stage.Header = App.Format("FileCM.StageMulti", changes.Count);
|
||||||
stage.Click += async (o, e) => {
|
stage.Click += async (o, e) => {
|
||||||
await Task.Run(() => Repo.Stage(files.ToArray()));
|
await Task.Run(() => Repo.Stage(files.ToArray()));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var discard = new MenuItem();
|
var discard = new MenuItem();
|
||||||
discard.Header = $"Discard {changes.Count} changes ...";
|
discard.Header = App.Format("FileCM.DiscardMulti", changes.Count);
|
||||||
discard.Click += (o, e) => {
|
discard.Click += (o, e) => {
|
||||||
Discard.Show(Repo, changes);
|
Discard.Show(Repo, changes);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var stash = new MenuItem();
|
var stash = new MenuItem();
|
||||||
stash.Header = $"Stash {changes.Count} files ...";
|
stash.Header = App.Format("FileCM.StashMulti", changes.Count);
|
||||||
stash.Click += (o, e) => {
|
stash.Click += (o, e) => {
|
||||||
Stash.Show(Repo, files);
|
Stash.Show(Repo, files);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var patch = new MenuItem();
|
var patch = new MenuItem();
|
||||||
patch.Header = $"Save as patch ...";
|
patch.Header = App.Text("FileCM.SaveAsPatch");
|
||||||
patch.Click += (o, e) => {
|
patch.Click += (o, e) => {
|
||||||
var dialog = new SaveFileDialog();
|
var dialog = new SaveFileDialog();
|
||||||
dialog.Filter = "Patch File|*.patch";
|
dialog.Filter = "Patch File|*.patch";
|
||||||
dialog.Title = "Select file to store patch data.";
|
dialog.Title = App.Text("FileCM.SaveAsPatch");
|
||||||
dialog.InitialDirectory = Repo.Path;
|
dialog.InitialDirectory = Repo.Path;
|
||||||
|
|
||||||
if (dialog.ShowDialog() == true) {
|
if (dialog.ShowDialog() == true) {
|
||||||
|
@ -685,7 +685,7 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
var explore = new MenuItem();
|
var explore = new MenuItem();
|
||||||
explore.IsEnabled = File.Exists(path) || Directory.Exists(path);
|
explore.IsEnabled = File.Exists(path) || Directory.Exists(path);
|
||||||
explore.Header = "Reveal in File Explorer";
|
explore.Header = App.Text("RevealFile");
|
||||||
explore.Click += (o, e) => {
|
explore.Click += (o, e) => {
|
||||||
if (node.IsFile) Process.Start("explorer", $"/select,{path}");
|
if (node.IsFile) Process.Start("explorer", $"/select,{path}");
|
||||||
else Process.Start(path);
|
else Process.Start(path);
|
||||||
|
@ -693,14 +693,14 @@ namespace SourceGit.UI {
|
||||||
};
|
};
|
||||||
|
|
||||||
var unstage = new MenuItem();
|
var unstage = new MenuItem();
|
||||||
unstage.Header = "Unstage";
|
unstage.Header = App.Text("FileCM.Unstage");
|
||||||
unstage.Click += async (o, e) => {
|
unstage.Click += async (o, e) => {
|
||||||
await Task.Run(() => Repo.Unstage(node.FilePath));
|
await Task.Run(() => Repo.Unstage(node.FilePath));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var copyPath = new MenuItem();
|
var copyPath = new MenuItem();
|
||||||
copyPath.Header = "Copy full path";
|
copyPath.Header = App.Text("CopyPath");
|
||||||
copyPath.Click += (o, e) => {
|
copyPath.Click += (o, e) => {
|
||||||
Clipboard.SetText(node.FilePath);
|
Clipboard.SetText(node.FilePath);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -720,7 +720,7 @@ namespace SourceGit.UI {
|
||||||
foreach (var c in changes) files.Add(c.Path);
|
foreach (var c in changes) files.Add(c.Path);
|
||||||
|
|
||||||
var unstage = new MenuItem();
|
var unstage = new MenuItem();
|
||||||
unstage.Header = $"Unstage {changes.Count} files";
|
unstage.Header = App.Format("FileCM.UnstageMulti", files.Count);
|
||||||
unstage.Click += async (o, e) => {
|
unstage.Click += async (o, e) => {
|
||||||
await Task.Run(() => Repo.Unstage(files.ToArray()));
|
await Task.Run(() => Repo.Unstage(files.ToArray()));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -752,21 +752,21 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
var explore = new MenuItem();
|
var explore = new MenuItem();
|
||||||
explore.IsEnabled = File.Exists(path) || Directory.Exists(path);
|
explore.IsEnabled = File.Exists(path) || Directory.Exists(path);
|
||||||
explore.Header = "Reveal in File Explorer";
|
explore.Header = App.Text("RevealFile");
|
||||||
explore.Click += (o, e) => {
|
explore.Click += (o, e) => {
|
||||||
Process.Start("explorer", $"/select,{path}");
|
Process.Start("explorer", $"/select,{path}");
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var unstage = new MenuItem();
|
var unstage = new MenuItem();
|
||||||
unstage.Header = "Unstage";
|
unstage.Header = App.Text("FileCM.Unstage");
|
||||||
unstage.Click += async (o, e) => {
|
unstage.Click += async (o, e) => {
|
||||||
await Task.Run(() => Repo.Unstage(change.Path));
|
await Task.Run(() => Repo.Unstage(change.Path));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
};
|
};
|
||||||
|
|
||||||
var copyPath = new MenuItem();
|
var copyPath = new MenuItem();
|
||||||
copyPath.Header = "Copy full path";
|
copyPath.Header = App.Text("CopyPath");
|
||||||
copyPath.Click += (o, e) => {
|
copyPath.Click += (o, e) => {
|
||||||
Clipboard.SetText(change.Path);
|
Clipboard.SetText(change.Path);
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -784,7 +784,7 @@ namespace SourceGit.UI {
|
||||||
foreach (var one in selected) files.Add((one as Git.Change).Path);
|
foreach (var one in selected) files.Add((one as Git.Change).Path);
|
||||||
|
|
||||||
var unstage = new MenuItem();
|
var unstage = new MenuItem();
|
||||||
unstage.Header = $"Unstage {selected.Count} files";
|
unstage.Header = App.Format("FileCM.UnstageMulti", files.Count);
|
||||||
unstage.Click += async (o, e) => {
|
unstage.Click += async (o, e) => {
|
||||||
await Task.Run(() => Repo.Unstage(files.ToArray()));
|
await Task.Run(() => Repo.Unstage(files.ToArray()));
|
||||||
e.Handled = true;
|
e.Handled = true;
|
||||||
|
@ -862,12 +862,12 @@ namespace SourceGit.UI {
|
||||||
|
|
||||||
if (Repo.CommitMsgRecords.Count == 0) {
|
if (Repo.CommitMsgRecords.Count == 0) {
|
||||||
var tip = new MenuItem();
|
var tip = new MenuItem();
|
||||||
tip.Header = "NO RECENT INPUT MESSAGES";
|
tip.Header = App.Text("WorkingCopy.NoCommitHistories");
|
||||||
tip.IsEnabled = false;
|
tip.IsEnabled = false;
|
||||||
anchor.ContextMenu.Items.Add(tip);
|
anchor.ContextMenu.Items.Add(tip);
|
||||||
} else {
|
} else {
|
||||||
var tip = new MenuItem();
|
var tip = new MenuItem();
|
||||||
tip.Header = "RECENT INPUT MESSAGES";
|
tip.Header = App.Text("WorkingCopy.HasCommitHistories");
|
||||||
tip.IsEnabled = false;
|
tip.IsEnabled = false;
|
||||||
anchor.ContextMenu.Items.Add(tip);
|
anchor.ContextMenu.Items.Add(tip);
|
||||||
anchor.ContextMenu.Items.Add(new Separator());
|
anchor.ContextMenu.Items.Add(new Separator());
|
||||||
|
|
Loading…
Reference in a new issue