diff --git a/src/Resources/Locales/en_US.xaml b/src/Resources/Locales/en_US.xaml index 09702b2e..cdc851ea 100644 --- a/src/Resources/Locales/en_US.xaml +++ b/src/Resources/Locales/en_US.xaml @@ -411,9 +411,6 @@ Revert merge request detected! Press 'Abort' to restore original HEAD Merge request detected! Press 'Abort' to restore original HEAD - WAITING SUBMOUDLE UPDATE COMPLETE... - WAITING STAGE COMPLETE... - Git has NOT been configured.\nPlease to go [Preference] and configure it first. Path[{0}] not exists! Can NOT locate bash.exe. Make sure bash.exe exists under the same folder with git.exe diff --git a/src/Resources/Locales/zh_CN.xaml b/src/Resources/Locales/zh_CN.xaml index 83833b45..bc2f6903 100644 --- a/src/Resources/Locales/zh_CN.xaml +++ b/src/Resources/Locales/zh_CN.xaml @@ -411,9 +411,6 @@ 检测到回滚提交冲突! 检测到分支合并冲突! - 等待子模块更新完成... - 等待暂存完成 ... - GIT尚未配置。请打开【偏好设置】配置GIT路径。 路径({0})不存在或不可读取! 无法找到bash.exe,请确保其在git.exe同目录中! diff --git a/src/UI/About.xaml b/src/UI/About.xaml index 56f88e60..5438964b 100644 --- a/src/UI/About.xaml +++ b/src/UI/About.xaml @@ -14,7 +14,7 @@ - + diff --git a/src/UI/Blame.xaml b/src/UI/Blame.xaml index 74a0538f..595b9e1d 100644 --- a/src/UI/Blame.xaml +++ b/src/UI/Blame.xaml @@ -14,7 +14,7 @@ - + @@ -188,7 +190,7 @@ - + diff --git a/src/UI/Launcher.xaml b/src/UI/Launcher.xaml index 159109ad..75e28517 100644 --- a/src/UI/Launcher.xaml +++ b/src/UI/Launcher.xaml @@ -6,7 +6,6 @@ xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006" xmlns:source="clr-namespace:SourceGit" xmlns:local="clr-namespace:SourceGit.UI" - xmlns:helpers="clr-namespace:SourceGit.Helpers" xmlns:converters="clr-namespace:SourceGit.Converters" mc:Ignorable="d" MinWidth="800" MinHeight="600" @@ -21,7 +20,7 @@ - + @@ -110,11 +109,11 @@ - + - + diff --git a/src/UI/SettingDialog.xaml b/src/UI/SettingDialog.xaml index 7059eb00..5bbd607f 100644 --- a/src/UI/SettingDialog.xaml +++ b/src/UI/SettingDialog.xaml @@ -18,7 +18,7 @@ - + diff --git a/src/UI/UpdateAvailable.xaml b/src/UI/UpdateAvailable.xaml index ca637ae6..795079c2 100644 --- a/src/UI/UpdateAvailable.xaml +++ b/src/UI/UpdateAvailable.xaml @@ -14,7 +14,7 @@ - + diff --git a/src/UI/Waiting.xaml b/src/UI/Waiting.xaml deleted file mode 100644 index dc8db808..00000000 --- a/src/UI/Waiting.xaml +++ /dev/null @@ -1,9 +0,0 @@ - - - diff --git a/src/UI/Waiting.xaml.cs b/src/UI/Waiting.xaml.cs deleted file mode 100644 index 71b415b6..00000000 --- a/src/UI/Waiting.xaml.cs +++ /dev/null @@ -1,41 +0,0 @@ -using System; -using System.Threading.Tasks; -using System.Windows.Controls; - -namespace SourceGit.UI { - - /// - /// General waiting dialog. - /// - public partial class Waiting : UserControl { - - /// - /// Constructor. - /// - public Waiting() { - InitializeComponent(); - } - - /// - /// Show this dialog. - /// - /// - /// - /// - public static void Show(Git.Repository repo, string tipKey, Action job) { - var dialog = new Waiting(); - var tip = dialog.FindResource(tipKey) as string; - if (tip != null) dialog.txtTip.Text = tip; - - var popup = repo.GetPopupManager(); - popup?.Show(dialog); - popup?.Lock(); - Task.Run(() => { - job.Invoke(); - dialog.Dispatcher.Invoke(() => { - popup?.Close(true); - }); - }); - } - } -} diff --git a/src/UI/WorkingCopy.xaml b/src/UI/WorkingCopy.xaml index 6e14a1d0..1134dfb0 100644 --- a/src/UI/WorkingCopy.xaml +++ b/src/UI/WorkingCopy.xaml @@ -29,7 +29,7 @@ - + @@ -45,12 +45,12 @@ - + @@ -58,22 +58,29 @@ + + - - - @@ -218,6 +224,8 @@ + + @@ -230,10 +238,8 @@ - - - + diff --git a/src/UI/WorkingCopy.xaml.cs b/src/UI/WorkingCopy.xaml.cs index 940d0ed3..42407185 100644 --- a/src/UI/WorkingCopy.xaml.cs +++ b/src/UI/WorkingCopy.xaml.cs @@ -338,7 +338,7 @@ namespace SourceGit.UI { var stage = new MenuItem(); stage.Header = App.Text("FileCM.Stage"); stage.Click += (o, e) => { - Waiting.Show(Repo, "Text.Waiting.Staging", () => Repo.Stage(node.FilePath)); + DoStage(node.FilePath); e.Handled = true; }; @@ -410,7 +410,7 @@ namespace SourceGit.UI { var stage = new MenuItem(); stage.Header = App.Format("FileCM.StageMulti", changes.Count); stage.Click += (o, e) => { - Waiting.Show(Repo, "Text.Waiting.Staging", () => Repo.Stage(files.ToArray())); + DoStage(files.ToArray()); e.Handled = true; }; @@ -480,7 +480,7 @@ namespace SourceGit.UI { var stage = new MenuItem(); stage.Header = App.Text("FileCM.Stage"); stage.Click += (o, e) => { - Waiting.Show(Repo, "Text.Waiting.Staging", () => Repo.Stage(change.Path)); + DoStage(change.Path); e.Handled = true; }; @@ -552,8 +552,8 @@ namespace SourceGit.UI { var stage = new MenuItem(); stage.Header = App.Format("FileCM.StageMulti", changes.Count); - stage.Click += (o, e) => { - Waiting.Show(Repo, "Text.Waiting.Staging", () => Repo.Stage(files.ToArray())); + stage.Click += (o, e) => { + DoStage(files.ToArray()); e.Handled = true; }; @@ -614,12 +614,25 @@ namespace SourceGit.UI { } } - if (files.Count == 0) return; - Waiting.Show(Repo, "Text.Waiting.Staging", () => Repo.Stage(files.ToArray())); + if (files.Count > 0) DoStage(files.ToArray()); } private void StageAll(object sender, RoutedEventArgs e) { - Waiting.Show(Repo, "Text.Waiting.Staging", () => Repo.Stage()); + DoStage(); + } + + private void DoStage(params string[] files) { + DoubleAnimation anim = new DoubleAnimation(0, 360, TimeSpan.FromSeconds(1)); + anim.RepeatBehavior = RepeatBehavior.Forever; + iconStaging.RenderTransform.BeginAnimation(RotateTransform.AngleProperty, anim); + iconStaging.Visibility = Visibility.Visible; + Task.Run(() => { + Repo.Stage(files); + Dispatcher.Invoke(() => { + iconStaging.RenderTransform.BeginAnimation(RotateTransform.AngleProperty, null); + iconStaging.Visibility = Visibility.Collapsed; + }); + }); } #endregion @@ -964,7 +977,13 @@ namespace SourceGit.UI { txtCommitMsg.GetBindingExpression(TextBox.TextProperty).UpdateSource(); if (Validation.GetHasError(txtCommitMsg)) return; + DoubleAnimation anim = new DoubleAnimation(0, 360, TimeSpan.FromSeconds(1)); + anim.RepeatBehavior = RepeatBehavior.Forever; + iconCommiting.RenderTransform.BeginAnimation(RotateTransform.AngleProperty, anim); + iconCommiting.Visibility = Visibility.Visible; bool succ = await Task.Run(() => Repo.DoCommit(CommitMessage, amend)); + iconCommiting.RenderTransform.BeginAnimation(RotateTransform.AngleProperty, null); + iconCommiting.Visibility = Visibility.Collapsed; if (!succ) return; ClearMessage();