mirror of
https://github.com/sourcegit-scm/sourcegit.git
synced 2024-12-23 20:47:25 -08:00
feature<Repository>: add settings for fetching remotes automatically
This commit is contained in:
parent
1c24699f70
commit
245084fd34
6 changed files with 75 additions and 57 deletions
|
@ -118,6 +118,10 @@ namespace SourceGit {
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public int LastCheckUpdate { get; set; } = 0;
|
public int LastCheckUpdate { get; set; } = 0;
|
||||||
/// <summary>
|
/// <summary>
|
||||||
|
/// Fetch remotes automatically?
|
||||||
|
/// </summary>
|
||||||
|
public bool AutoFetchRemotes { get; set; } = true;
|
||||||
|
/// <summary>
|
||||||
/// Settings for executables.
|
/// Settings for executables.
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public ToolSetting Tools { get; set; } = new ToolSetting();
|
public ToolSetting Tools { get; set; } = new ToolSetting();
|
||||||
|
|
|
@ -5,6 +5,7 @@ using System.IO;
|
||||||
using System.Text;
|
using System.Text;
|
||||||
using System.Text.Json.Serialization;
|
using System.Text.Json.Serialization;
|
||||||
using System.Text.RegularExpressions;
|
using System.Text.RegularExpressions;
|
||||||
|
using System.Threading;
|
||||||
using System.Windows.Threading;
|
using System.Windows.Threading;
|
||||||
|
|
||||||
namespace SourceGit.Git {
|
namespace SourceGit.Git {
|
||||||
|
@ -65,12 +66,13 @@ namespace SourceGit.Git {
|
||||||
private List<Tag> cachedTags = new List<Tag>();
|
private List<Tag> cachedTags = new List<Tag>();
|
||||||
private FileSystemWatcher gitDirWatcher = null;
|
private FileSystemWatcher gitDirWatcher = null;
|
||||||
private FileSystemWatcher workingCopyWatcher = null;
|
private FileSystemWatcher workingCopyWatcher = null;
|
||||||
private DispatcherTimer timer = null;
|
private Timer timer = null;
|
||||||
private bool isWatcherDisabled = false;
|
private bool isWatcherDisabled = false;
|
||||||
private long nextUpdateTags = 0;
|
private long nextUpdateTags = 0;
|
||||||
private long nextUpdateLocalChanges = 0;
|
private long nextUpdateLocalChanges = 0;
|
||||||
private long nextUpdateStashes = 0;
|
private long nextUpdateStashes = 0;
|
||||||
private long nextUpdateTree = 0;
|
private long nextUpdateTree = 0;
|
||||||
|
private long nextFetchingRemotes = 0;
|
||||||
|
|
||||||
private string featurePrefix = null;
|
private string featurePrefix = null;
|
||||||
private string releasePrefix = null;
|
private string releasePrefix = null;
|
||||||
|
@ -197,6 +199,9 @@ namespace SourceGit.Git {
|
||||||
OnWorkingCopyChanged?.Invoke();
|
OnWorkingCopyChanged?.Invoke();
|
||||||
OnTagChanged?.Invoke();
|
OnTagChanged?.Invoke();
|
||||||
|
|
||||||
|
nextUpdateLocalChanges = 0;
|
||||||
|
nextUpdateTags = 0;
|
||||||
|
nextUpdateTree = 0;
|
||||||
isWatcherDisabled = false;
|
isWatcherDisabled = false;
|
||||||
}
|
}
|
||||||
#endregion
|
#endregion
|
||||||
|
@ -250,6 +255,7 @@ namespace SourceGit.Git {
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public void Open() {
|
public void Open() {
|
||||||
isWatcherDisabled = false;
|
isWatcherDisabled = false;
|
||||||
|
nextFetchingRemotes = DateTime.Now.AddMinutes(10).ToFileTime();
|
||||||
|
|
||||||
GitDir = ".git";
|
GitDir = ".git";
|
||||||
RunCommand("rev-parse --git-dir", line => {
|
RunCommand("rev-parse --git-dir", line => {
|
||||||
|
@ -287,10 +293,7 @@ namespace SourceGit.Git {
|
||||||
workingCopyWatcher.Deleted += OnWorkingCopyFSChanged;
|
workingCopyWatcher.Deleted += OnWorkingCopyFSChanged;
|
||||||
workingCopyWatcher.EnableRaisingEvents = true;
|
workingCopyWatcher.EnableRaisingEvents = true;
|
||||||
|
|
||||||
timer = new DispatcherTimer();
|
timer = new Timer(Tick, null, 100, 100);
|
||||||
timer.Tick += Tick;
|
|
||||||
timer.Interval = TimeSpan.FromSeconds(.1);
|
|
||||||
timer.Start();
|
|
||||||
|
|
||||||
featurePrefix = GetConfig("gitflow.prefix.feature");
|
featurePrefix = GetConfig("gitflow.prefix.feature");
|
||||||
releasePrefix = GetConfig("gitflow.prefix.release");
|
releasePrefix = GetConfig("gitflow.prefix.release");
|
||||||
|
@ -320,7 +323,7 @@ namespace SourceGit.Git {
|
||||||
workingCopyWatcher.EnableRaisingEvents = false;
|
workingCopyWatcher.EnableRaisingEvents = false;
|
||||||
gitDirWatcher.Dispose();
|
gitDirWatcher.Dispose();
|
||||||
workingCopyWatcher.Dispose();
|
workingCopyWatcher.Dispose();
|
||||||
timer.Stop();
|
timer.Dispose();
|
||||||
|
|
||||||
gitDirWatcher = null;
|
gitDirWatcher = null;
|
||||||
workingCopyWatcher = null;
|
workingCopyWatcher = null;
|
||||||
|
@ -338,7 +341,13 @@ namespace SourceGit.Git {
|
||||||
isWatcherDisabled = !enabled;
|
isWatcherDisabled = !enabled;
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Tick(object sender, EventArgs e) {
|
private void Tick(object sender) {
|
||||||
|
var now = DateTime.Now.ToFileTime();
|
||||||
|
if (now >= nextFetchingRemotes) {
|
||||||
|
Fetch(null, true, null, false);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (isWatcherDisabled) {
|
if (isWatcherDisabled) {
|
||||||
nextUpdateLocalChanges = 0;
|
nextUpdateLocalChanges = 0;
|
||||||
nextUpdateStashes = 0;
|
nextUpdateStashes = 0;
|
||||||
|
@ -347,7 +356,6 @@ namespace SourceGit.Git {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
var now = DateTime.Now.ToFileTime();
|
|
||||||
if (nextUpdateLocalChanges > 0 && now >= nextUpdateLocalChanges) {
|
if (nextUpdateLocalChanges > 0 && now >= nextUpdateLocalChanges) {
|
||||||
nextUpdateLocalChanges = 0;
|
nextUpdateLocalChanges = 0;
|
||||||
OnWorkingCopyChanged?.Invoke();
|
OnWorkingCopyChanged?.Invoke();
|
||||||
|
@ -443,8 +451,10 @@ namespace SourceGit.Git {
|
||||||
/// <param name="remote"></param>
|
/// <param name="remote"></param>
|
||||||
/// <param name="prune"></param>
|
/// <param name="prune"></param>
|
||||||
/// <param name="onProgress"></param>
|
/// <param name="onProgress"></param>
|
||||||
public void Fetch(Remote remote, bool prune, Action<string> onProgress) {
|
/// <param name="raiseError"></param>
|
||||||
|
public void Fetch(Remote remote, bool prune, Action<string> onProgress, bool raiseError = true) {
|
||||||
isWatcherDisabled = true;
|
isWatcherDisabled = true;
|
||||||
|
nextFetchingRemotes = DateTime.Now.AddMinutes(10).ToFileTime();
|
||||||
|
|
||||||
var args = "-c credential.helper=manager fetch --progress --verbose ";
|
var args = "-c credential.helper=manager fetch --progress --verbose ";
|
||||||
|
|
||||||
|
@ -461,6 +471,9 @@ namespace SourceGit.Git {
|
||||||
}, true);
|
}, true);
|
||||||
|
|
||||||
OnSubmoduleChanged?.Invoke();
|
OnSubmoduleChanged?.Invoke();
|
||||||
|
if (!raiseError) errs = null;
|
||||||
|
|
||||||
|
nextFetchingRemotes = DateTime.Now.AddMinutes(10).ToFileTime();
|
||||||
AssertCommand(errs);
|
AssertCommand(errs);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -475,6 +488,7 @@ namespace SourceGit.Git {
|
||||||
/// <param name="onProgress">Progress message handler.</param>
|
/// <param name="onProgress">Progress message handler.</param>
|
||||||
public void Pull(string remote, string branch, Action<string> onProgress, bool rebase = false, bool autostash = false) {
|
public void Pull(string remote, string branch, Action<string> onProgress, bool rebase = false, bool autostash = false) {
|
||||||
isWatcherDisabled = true;
|
isWatcherDisabled = true;
|
||||||
|
nextFetchingRemotes = DateTime.Now.AddMinutes(10).ToFileTime();
|
||||||
|
|
||||||
var args = "-c credential.helper=manager pull --verbose --progress ";
|
var args = "-c credential.helper=manager pull --verbose --progress ";
|
||||||
var needPopStash = false;
|
var needPopStash = false;
|
||||||
|
|
|
@ -87,8 +87,6 @@
|
||||||
<sys:String x:Key="Text.Configure.User.Placeholder">User name for this repository</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">Email :</sys:String>
|
||||||
<sys:String x:Key="Text.Configure.Email.Placeholder">Email address</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">Create Branch</sys:String>
|
||||||
<sys:String x:Key="Text.CreateBranch.Title">Create Local Branch</sys:String>
|
<sys:String x:Key="Text.CreateBranch.Title">Create Local Branch</sys:String>
|
||||||
|
@ -345,10 +343,11 @@
|
||||||
<sys:String x:Key="Text.Preference">Preference</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.General">GENERAL SETTING</sys:String>
|
||||||
<sys:String x:Key="Text.Preference.RestartRequired">RESTART REQUIRED</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.Locale">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.AvatarServer">Avatar Server :</sys:String>
|
<sys:String x:Key="Text.Preference.AvatarServer">Avatar Server :</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.UseLight">Use light theme</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.CheckUpdate">Check for update</sys:String>
|
||||||
|
<sys:String x:Key="Text.Preference.AutoFetch">Fetch remotes automatically</sys:String>
|
||||||
<sys:String x:Key="Text.Preference.Git">GIT INSTANCE</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">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.Path.Placeholder">Input path for git.exe</sys:String>
|
||||||
|
|
|
@ -87,8 +87,6 @@
|
||||||
<sys:String x:Key="Text.Configure.User.Placeholder">应用于本仓库的用户名</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">邮箱 :</sys:String>
|
||||||
<sys:String x:Key="Text.Configure.Email.Placeholder">邮箱地址</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">新建分支</sys:String>
|
||||||
<sys:String x:Key="Text.CreateBranch.Title">创建本地分支</sys:String>
|
<sys:String x:Key="Text.CreateBranch.Title">创建本地分支</sys:String>
|
||||||
|
@ -346,9 +344,10 @@
|
||||||
<sys:String x:Key="Text.Preference.General">通用配置</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.RestartRequired">需要重启软件</sys:String>
|
||||||
<sys:String x:Key="Text.Preference.Locale">显示语言 :</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.AvatarServer">头像服务 :</sys:String>
|
<sys:String x:Key="Text.Preference.AvatarServer">头像服务 :</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.AutoFetch">启用定时自动拉取远程更新</sys:String>
|
||||||
<sys:String x:Key="Text.Preference.Git">GIT配置</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">安装路径 :</sys:String>
|
||||||
<sys:String x:Key="Text.Preference.Git.Path.Placeholder">填写git.exe所在位置</sys:String>
|
<sys:String x:Key="Text.Preference.Git.Path.Placeholder">填写git.exe所在位置</sys:String>
|
||||||
|
|
|
@ -9,8 +9,8 @@
|
||||||
<Grid ClipToBounds="True">
|
<Grid ClipToBounds="True">
|
||||||
<Border Background="Transparent" MouseLeftButtonDown="Close"/>
|
<Border Background="Transparent" MouseLeftButtonDown="Close"/>
|
||||||
|
|
||||||
<Grid HorizontalAlignment="Center" VerticalAlignment="Top" Width="Auto" Height="Auto" Background="{StaticResource Brush.Popup}">
|
<Grid HorizontalAlignment="Center" VerticalAlignment="Top" Width="Auto" Height="Auto">
|
||||||
<Border x:Name="popupContent" Padding="8" Width="Auto" Height="Auto" BorderThickness="1,0,1,1" BorderBrush="{StaticResource Brush.Border0}" SnapsToDevicePixels="True"/>
|
<Border x:Name="popupContent" Padding="8" Width="Auto" Height="Auto" Background="{StaticResource Brush.Popup}" BorderThickness="1,0,1,1" BorderBrush="{StaticResource Brush.Border0}" SnapsToDevicePixels="True"/>
|
||||||
|
|
||||||
<Border x:Name="status" Visibility="Collapsed" Background="{StaticResource Brush.Popup}" Margin="1,0,1,1" Opacity=".9">
|
<Border x:Name="status" Visibility="Collapsed" Background="{StaticResource Brush.Popup}" Margin="1,0,1,1" Opacity=".9">
|
||||||
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
|
<StackPanel Orientation="Vertical" HorizontalAlignment="Center" VerticalAlignment="Center">
|
||||||
|
|
|
@ -8,7 +8,7 @@
|
||||||
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="588" Width="500"
|
Height="616" Width="500"
|
||||||
Title="{StaticResource Text.Preference}"
|
Title="{StaticResource Text.Preference}"
|
||||||
WindowStartupLocation="CenterOwner" ResizeMode="NoResize">
|
WindowStartupLocation="CenterOwner" ResizeMode="NoResize">
|
||||||
|
|
||||||
|
@ -64,6 +64,7 @@
|
||||||
<RowDefinition Height="28"/>
|
<RowDefinition Height="28"/>
|
||||||
<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"/>
|
||||||
|
@ -81,7 +82,7 @@
|
||||||
</Grid.RowDefinitions>
|
</Grid.RowDefinitions>
|
||||||
|
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="136"/>
|
<ColumnDefinition Width="120"/>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
</Grid.ColumnDefinitions>
|
</Grid.ColumnDefinitions>
|
||||||
|
|
||||||
|
@ -99,22 +100,8 @@
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
DisplayMemberPath="Desc"
|
DisplayMemberPath="Desc"
|
||||||
SelectionChanged="ChangeLanguage"/>
|
SelectionChanged="ChangeLanguage"/>
|
||||||
|
<Label Grid.Row="2" Grid.Column="0" Content="{StaticResource Text.Preference.AvatarServer}" HorizontalAlignment="Right"/>
|
||||||
<Label Grid.Row="2" Grid.Column="0" Content="{StaticResource Text.Preference.UseLight}" HorizontalAlignment="Right"/>
|
<ComboBox Grid.Row="2" Grid.Column="1"
|
||||||
<CheckBox
|
|
||||||
Grid.Row="2"
|
|
||||||
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}"
|
|
||||||
TextElement.FontStyle="Italic"/>
|
|
||||||
|
|
||||||
<Label Grid.Row="4" Grid.Column="0" Content="{StaticResource Text.Preference.AvatarServer}" HorizontalAlignment="Right"/>
|
|
||||||
<ComboBox Grid.Row="4" Grid.Column="1"
|
|
||||||
x:Name="cmbAvatarServer"
|
x:Name="cmbAvatarServer"
|
||||||
Height="24"
|
Height="24"
|
||||||
Width="140"
|
Width="140"
|
||||||
|
@ -122,11 +109,26 @@
|
||||||
VerticalContentAlignment="Center"
|
VerticalContentAlignment="Center"
|
||||||
DisplayMemberPath="Desc"
|
DisplayMemberPath="Desc"
|
||||||
SelectionChanged="ChangeAvatarServer"/>
|
SelectionChanged="ChangeAvatarServer"/>
|
||||||
|
<CheckBox
|
||||||
|
Grid.Row="3"
|
||||||
|
Grid.Column="1"
|
||||||
|
IsChecked="{Binding Source={x:Static app:App.Setting}, Path=UI.UseLightTheme, Mode=TwoWay}"
|
||||||
|
Content="{StaticResource Text.Preference.UseLight}"/>
|
||||||
|
<CheckBox
|
||||||
|
Grid.Row="4"
|
||||||
|
Grid.Column="1"
|
||||||
|
IsChecked="{Binding Source={x:Static app:App.Setting}, Path=CheckUpdate, Mode=TwoWay}"
|
||||||
|
Content="{StaticResource Text.Preference.CheckUpdate}"/>
|
||||||
|
<CheckBox
|
||||||
|
Grid.Row="5"
|
||||||
|
Grid.Column="1"
|
||||||
|
IsChecked="{Binding Source={x:Static app:App.Setting}, Path=AutoFetchRemotes, Mode=TwoWay}"
|
||||||
|
Content="{StaticResource Text.Preference.AutoFetch}"/>
|
||||||
|
|
||||||
<!-- GIT相关配置 -->
|
<!-- GIT相关配置 -->
|
||||||
<Label Grid.Row="6" Grid.ColumnSpan="2" Content="{StaticResource Text.Preference.Git}" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
<Label Grid.Row="7" Grid.ColumnSpan="2" Content="{StaticResource Text.Preference.Git}" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
||||||
<Label Grid.Row="7" Grid.Column="0" Content="{StaticResource Text.Preference.Git.Path}" HorizontalAlignment="Right"/>
|
<Label Grid.Row="8" Grid.Column="0" Content="{StaticResource Text.Preference.Git.Path}" HorizontalAlignment="Right"/>
|
||||||
<Grid Grid.Row="7" Grid.Column="1">
|
<Grid Grid.Row="8" Grid.Column="1">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
<ColumnDefinition Width="28"/>
|
<ColumnDefinition Width="28"/>
|
||||||
|
@ -141,8 +143,8 @@
|
||||||
<Path Width="14" Data="{StaticResource Icon.Folder}"/>
|
<Path Width="14" Data="{StaticResource Icon.Folder}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Label Grid.Row="8" Grid.Column="0" Content="{StaticResource Text.Preference.Git.Dir}" HorizontalAlignment="Right"/>
|
<Label Grid.Row="9" Grid.Column="0" Content="{StaticResource Text.Preference.Git.Dir}" HorizontalAlignment="Right"/>
|
||||||
<Grid Grid.Row="8" Grid.Column="1">
|
<Grid Grid.Row="9" Grid.Column="1">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
<ColumnDefinition Width="28"/>
|
<ColumnDefinition Width="28"/>
|
||||||
|
@ -159,13 +161,13 @@
|
||||||
</Grid>
|
</Grid>
|
||||||
|
|
||||||
<!-- Global User -->
|
<!-- Global User -->
|
||||||
<Label Grid.Row="10" Grid.ColumnSpan="2" Content="{StaticResource Text.Preference.Global}" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
<Label Grid.Row="11" Grid.ColumnSpan="2" Content="{StaticResource Text.Preference.Global}" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
||||||
<Label Grid.Row="11" Grid.Column="0" Content="{StaticResource Text.Preference.User}" HorizontalAlignment="Right"/>
|
<Label Grid.Row="12" Grid.Column="0" Content="{StaticResource Text.Preference.User}" HorizontalAlignment="Right"/>
|
||||||
<TextBox Grid.Row="11" Grid.Column="1" Height="24" helpers:TextBoxHelper.Placeholder="Global git user name" Text="{Binding ElementName=me, Path=GlobalUser, Mode=TwoWay}"/>
|
<TextBox Grid.Row="12" Grid.Column="1" Height="24" helpers:TextBoxHelper.Placeholder="Global git user name" Text="{Binding ElementName=me, Path=GlobalUser, Mode=TwoWay}"/>
|
||||||
<Label Grid.Row="12" Grid.Column="0" Content="{StaticResource Text.Preference.Email}" HorizontalAlignment="Right"/>
|
<Label Grid.Row="13" Grid.Column="0" Content="{StaticResource Text.Preference.Email}" HorizontalAlignment="Right"/>
|
||||||
<TextBox Grid.Row="12" Grid.Column="1" Height="24" helpers:TextBoxHelper.Placeholder="Global git user email" Text="{Binding ElementName=me, Path=GlobalUserEmail, Mode=TwoWay}"/>
|
<TextBox Grid.Row="13" Grid.Column="1" Height="24" helpers:TextBoxHelper.Placeholder="Global git user email" Text="{Binding ElementName=me, Path=GlobalUserEmail, Mode=TwoWay}"/>
|
||||||
<Label Grid.Row="13" Grid.Column="0" Content="{StaticResource Text.Preference.CRLF}" HorizontalAlignment="Right"/>
|
<Label Grid.Row="14" Grid.Column="0" Content="{StaticResource Text.Preference.CRLF}" HorizontalAlignment="Right"/>
|
||||||
<ComboBox Grid.Row="13" Grid.Column="1"
|
<ComboBox Grid.Row="14" Grid.Column="1"
|
||||||
x:Name="cmbAutoCRLF"
|
x:Name="cmbAutoCRLF"
|
||||||
Height="24"
|
Height="24"
|
||||||
HorizontalAlignment="Stretch"
|
HorizontalAlignment="Stretch"
|
||||||
|
@ -182,9 +184,9 @@
|
||||||
</ComboBox>
|
</ComboBox>
|
||||||
|
|
||||||
<!-- 合并工具配置 -->
|
<!-- 合并工具配置 -->
|
||||||
<Label Grid.Row="15" Grid.ColumnSpan="2" Content="{StaticResource Text.Preference.Merger}" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
<Label Grid.Row="16" Grid.ColumnSpan="2" Content="{StaticResource Text.Preference.Merger}" FontSize="16" FontWeight="DemiBold" Opacity=".85"/>
|
||||||
<Label Grid.Row="16" Grid.Column="0" Content="{StaticResource Text.Preference.Merger.Type}" HorizontalAlignment="Right"/>
|
<Label Grid.Row="17" Grid.Column="0" Content="{StaticResource Text.Preference.Merger.Type}" HorizontalAlignment="Right"/>
|
||||||
<ComboBox Grid.Row="16" Grid.Column="1"
|
<ComboBox Grid.Row="17" Grid.Column="1"
|
||||||
Height="24"
|
Height="24"
|
||||||
Padding="2,0,0,0"
|
Padding="2,0,0,0"
|
||||||
HorizontalContentAlignment="Left"
|
HorizontalContentAlignment="Left"
|
||||||
|
@ -193,8 +195,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="17" Grid.Column="0" Content="{StaticResource Text.Preference.Merger.Path}" HorizontalAlignment="Right"/>
|
<Label Grid.Row="18" Grid.Column="0" Content="{StaticResource Text.Preference.Merger.Path}" HorizontalAlignment="Right"/>
|
||||||
<Grid Grid.Row="17" Grid.Column="1">
|
<Grid Grid.Row="18" Grid.Column="1">
|
||||||
<Grid.ColumnDefinitions>
|
<Grid.ColumnDefinitions>
|
||||||
<ColumnDefinition Width="*"/>
|
<ColumnDefinition Width="*"/>
|
||||||
<ColumnDefinition Width="28"/>
|
<ColumnDefinition Width="28"/>
|
||||||
|
@ -209,8 +211,8 @@
|
||||||
<Path Width="14" Data="{StaticResource Icon.Folder}"/>
|
<Path Width="14" Data="{StaticResource Icon.Folder}"/>
|
||||||
</Button>
|
</Button>
|
||||||
</Grid>
|
</Grid>
|
||||||
<Label Grid.Row="18" Grid.Column="0" Content="{StaticResource Text.Preference.Merger.Cmd}" HorizontalAlignment="Right"/>
|
<Label Grid.Row="19" Grid.Column="0" Content="{StaticResource Text.Preference.Merger.Cmd}" HorizontalAlignment="Right"/>
|
||||||
<TextBlock Grid.Row="18" Grid.Column="1"
|
<TextBlock Grid.Row="19" Grid.Column="1"
|
||||||
x:Name="txtMergeParam"
|
x:Name="txtMergeParam"
|
||||||
VerticalAlignment="Center"
|
VerticalAlignment="Center"
|
||||||
Foreground="{StaticResource Brush.FG2}"/>
|
Foreground="{StaticResource Brush.FG2}"/>
|
||||||
|
|
Loading…
Reference in a new issue