diff --git a/src/Models/DealWithLocalChanges.cs b/src/Models/DealWithLocalChanges.cs
deleted file mode 100644
index f308a90c..00000000
--- a/src/Models/DealWithLocalChanges.cs
+++ /dev/null
@@ -1,9 +0,0 @@
-namespace SourceGit.Models
-{
- public enum DealWithLocalChanges
- {
- DoNothing,
- StashAndReaply,
- Discard,
- }
-}
diff --git a/src/Resources/Locales/de_DE.axaml b/src/Resources/Locales/de_DE.axaml
index 1d0ca895..759e3a53 100644
--- a/src/Resources/Locales/de_DE.axaml
+++ b/src/Resources/Locales/de_DE.axaml
@@ -90,7 +90,6 @@
Branch:
Lokale Änderungen:
Verwerfen
- Nichts tun
Stashen & wieder anwenden
Cherry Pick
Quelle an Commit-Nachricht anhängen
@@ -206,7 +205,6 @@
Erstellten Branch auschecken
Lokale Änderungen:
Verwerfen
- Nichts tun
Stashen & wieder anwenden
Neuer Branch-Name:
Branch-Namen eingeben.
@@ -517,7 +515,6 @@
Lokaler Branch:
Lokale Änderungen:
Verwerfen
- Nichts tun
Stashen & wieder anwenden
Ohne Tags fetchen
Remote:
diff --git a/src/Resources/Locales/en_US.axaml b/src/Resources/Locales/en_US.axaml
index 5df3ca71..90125de8 100644
--- a/src/Resources/Locales/en_US.axaml
+++ b/src/Resources/Locales/en_US.axaml
@@ -88,7 +88,6 @@
Branch:
Local Changes:
Discard
- Do Nothing
Stash & Reapply
Cherry Pick
Append source to commit message
@@ -205,7 +204,6 @@
Check out the created branch
Local Changes:
Discard
- Do Nothing
Stash & Reapply
New Branch Name:
Enter branch name.
@@ -520,7 +518,6 @@
Into:
Local Changes:
Discard
- Do Nothing
Stash & Reapply
Fetch without tags
Remote:
diff --git a/src/Resources/Locales/es_ES.axaml b/src/Resources/Locales/es_ES.axaml
index 4073f512..bcf09e1a 100644
--- a/src/Resources/Locales/es_ES.axaml
+++ b/src/Resources/Locales/es_ES.axaml
@@ -91,7 +91,6 @@
Rama:
Cambios Locales:
Descartar
- No Hacer Nada
Stash & Reaplicar
Cherry Pick
Añadir fuente al mensaje de commit
@@ -208,7 +207,6 @@
Checkout de la rama creada
Cambios Locales:
Descartar
- No Hacer Nada
Stash & Reaplicar
Nombre de la Nueva Rama:
Introduzca el nombre de la rama.
@@ -524,7 +522,6 @@
En:
Cambios Locales:
Descartar
- No Hacer Nada
Stash & Reaplicar
Fetch sin etiquetas
Remoto:
diff --git a/src/Resources/Locales/fr_FR.axaml b/src/Resources/Locales/fr_FR.axaml
index 59fe00a8..76405b21 100644
--- a/src/Resources/Locales/fr_FR.axaml
+++ b/src/Resources/Locales/fr_FR.axaml
@@ -83,7 +83,6 @@
Branche :
Changements locaux :
Annuler
- Ne rien faire
Mettre en stash et réappliquer
Cherry-Pick de ce commit
Ajouter la source au message de commit
@@ -198,7 +197,6 @@
Récupérer la branche créée
Changements locaux :
Rejeter
- Ne rien faire
Stash & Réappliquer
Nom de la nouvelle branche :
Entrez le nom de la branche.
@@ -492,7 +490,6 @@
Dans :
Changements locaux :
Rejeter
- Ne rien faire
Stash & Réappliquer
Fetch sans les tags
Dépôt distant :
diff --git a/src/Resources/Locales/it_IT.axaml b/src/Resources/Locales/it_IT.axaml
index 6e99decf..f944689c 100644
--- a/src/Resources/Locales/it_IT.axaml
+++ b/src/Resources/Locales/it_IT.axaml
@@ -91,7 +91,6 @@
Branch:
Modifiche Locali:
Scarta
- Non fare nulla
Stasha e Ripristina
Cherry Pick
Aggiungi sorgente al messaggio di commit
@@ -208,7 +207,6 @@
Checkout del Branch Creato
Modifiche Locali:
Scarta
- Non Fare Nulla
Stasha e Ripristina
Nome Nuovo Branch:
Inserisci il nome del branch.
@@ -523,7 +521,6 @@
In:
Modifiche Locali:
Scarta
- Non fare nulla
Stasha e Riapplica
Recupera senza tag
Remoto:
diff --git a/src/Resources/Locales/pt_BR.axaml b/src/Resources/Locales/pt_BR.axaml
index 78445bfb..ebff746c 100644
--- a/src/Resources/Locales/pt_BR.axaml
+++ b/src/Resources/Locales/pt_BR.axaml
@@ -107,7 +107,6 @@
Branch:
Alterações Locais:
Descartar
- Nada
Stash & Reaplicar
Cherry-Pick
Adicionar origem à mensagem de commit
@@ -215,7 +214,6 @@
Checar o branch criado
Alterações Locais:
Descartar
- Não Fazer Nada
Guardar & Reaplicar
Nome do Novo Branch:
Insira o nome do branch.
@@ -506,7 +504,6 @@
Para:
Alterações Locais:
Descartar
- Não Fazer Nada
Guardar & Reaplicar
Buscar sem tags
Remoto:
diff --git a/src/Resources/Locales/ru_RU.axaml b/src/Resources/Locales/ru_RU.axaml
index ff24912e..6815bbeb 100644
--- a/src/Resources/Locales/ru_RU.axaml
+++ b/src/Resources/Locales/ru_RU.axaml
@@ -91,7 +91,6 @@
Ветка:
Локальные изменения:
Отклонить
- Ничего не делать
Отложить и примненить повторно
Частичный выбор
Добавить источник для ревизии сообщения
@@ -209,7 +208,6 @@
Проверить созданную ветку
Локальные изменения:
Отклонить
- Ничего не делать
Отложить и применить повторно
Имя новой ветки:
Введите имя ветки.
@@ -524,7 +522,6 @@
В:
Локальные изменения:
Отклонить
- Ничего не делать
Отложить и применить повторно
Забрать без меток
Внешний репозиторий:
diff --git a/src/Resources/Locales/zh_CN.axaml b/src/Resources/Locales/zh_CN.axaml
index 72b434f9..cf796805 100644
--- a/src/Resources/Locales/zh_CN.axaml
+++ b/src/Resources/Locales/zh_CN.axaml
@@ -91,7 +91,6 @@
目标分支 :
未提交更改 :
丢弃更改
- 不做处理
贮藏并自动恢复
挑选提交
提交信息中追加来源信息
@@ -208,7 +207,6 @@
完成后切换到新分支
未提交更改 :
丢弃更改
- 不做处理
贮藏并自动恢复
新分支名 :
填写分支名称。
@@ -524,7 +522,6 @@
本地分支 :
未提交更改 :
丢弃更改
- 不做处理
贮藏并自动恢复
不拉取远程标签
远程 :
diff --git a/src/Resources/Locales/zh_TW.axaml b/src/Resources/Locales/zh_TW.axaml
index bc9991f6..539001bd 100644
--- a/src/Resources/Locales/zh_TW.axaml
+++ b/src/Resources/Locales/zh_TW.axaml
@@ -91,7 +91,6 @@
目標分支:
未提交變更:
捨棄變更
- 不做處理
擱置變更並自動復原
揀選提交
提交資訊中追加來源資訊
@@ -208,7 +207,6 @@
完成後切換到新分支
未提交變更:
捨棄變更
- 不做處理
擱置變更並自動復原
新分支名稱:
輸入分支名稱。
@@ -523,7 +521,6 @@
本機分支:
未提交變更:
捨棄變更
- 不做處理
擱置變更並自動復原
不拉取遠端標籤
遠端:
diff --git a/src/ViewModels/Checkout.cs b/src/ViewModels/Checkout.cs
index 9376741d..3334eba4 100644
--- a/src/ViewModels/Checkout.cs
+++ b/src/ViewModels/Checkout.cs
@@ -9,16 +9,17 @@ namespace SourceGit.ViewModels
get;
}
- public Models.DealWithLocalChanges PreAction
+ public bool DiscardLocalChanges
{
get;
set;
- } = Models.DealWithLocalChanges.DoNothing;
+ }
public Checkout(Repository repo, string branch)
{
_repo = repo;
Branch = branch;
+ DiscardLocalChanges = false;
View = new Views.Checkout() { DataContext = this };
}
@@ -33,7 +34,12 @@ namespace SourceGit.ViewModels
var needPopStash = false;
if (changes > 0)
{
- if (PreAction == Models.DealWithLocalChanges.StashAndReaply)
+ if (DiscardLocalChanges)
+ {
+ SetProgressDescription("Discard local changes ...");
+ Commands.Discard.All(_repo.FullPath, false);
+ }
+ else
{
SetProgressDescription("Stash local changes ...");
var succ = new Commands.Stash(_repo.FullPath).Push("CHECKOUT_AUTO_STASH");
@@ -45,11 +51,6 @@ namespace SourceGit.ViewModels
needPopStash = true;
}
- else if (PreAction == Models.DealWithLocalChanges.Discard)
- {
- SetProgressDescription("Discard local changes ...");
- Commands.Discard.All(_repo.FullPath, false);
- }
}
SetProgressDescription("Checkout branch ...");
diff --git a/src/ViewModels/CheckoutCommit.cs b/src/ViewModels/CheckoutCommit.cs
index ddc0a0c6..1876a425 100644
--- a/src/ViewModels/CheckoutCommit.cs
+++ b/src/ViewModels/CheckoutCommit.cs
@@ -9,16 +9,17 @@ namespace SourceGit.ViewModels
get;
}
- public bool AutoStash
+ public bool DiscardLocalChanges
{
- get => _autoStash;
- set => SetProperty(ref _autoStash, value);
+ get;
+ set;
}
public CheckoutCommit(Repository repo, Models.Commit commit)
{
_repo = repo;
Commit = commit;
+ DiscardLocalChanges = false;
View = new Views.CheckoutCommit() { DataContext = this };
}
@@ -33,7 +34,12 @@ namespace SourceGit.ViewModels
var needPopStash = false;
if (changes > 0)
{
- if (AutoStash)
+ if (DiscardLocalChanges)
+ {
+ SetProgressDescription("Discard local changes ...");
+ Commands.Discard.All(_repo.FullPath, false);
+ }
+ else
{
SetProgressDescription("Stash local changes ...");
var succ = new Commands.Stash(_repo.FullPath).Push("CHECKOUT_AUTO_STASH");
@@ -45,11 +51,6 @@ namespace SourceGit.ViewModels
needPopStash = true;
}
- else
- {
- SetProgressDescription("Discard local changes ...");
- Commands.Discard.All(_repo.FullPath, false);
- }
}
SetProgressDescription("Checkout commit ...");
@@ -67,6 +68,5 @@ namespace SourceGit.ViewModels
}
private readonly Repository _repo = null;
- private bool _autoStash = true;
}
}
diff --git a/src/ViewModels/CreateBranch.cs b/src/ViewModels/CreateBranch.cs
index 01bff031..37db0065 100644
--- a/src/ViewModels/CreateBranch.cs
+++ b/src/ViewModels/CreateBranch.cs
@@ -19,11 +19,11 @@ namespace SourceGit.ViewModels
get;
}
- public Models.DealWithLocalChanges PreAction
+ public bool DiscardLocalChanges
{
get;
set;
- } = Models.DealWithLocalChanges.DoNothing;
+ }
public bool CheckoutAfterCreated
{
@@ -47,6 +47,7 @@ namespace SourceGit.ViewModels
}
BasedOn = branch;
+ DiscardLocalChanges = false;
View = new Views.CreateBranch() { DataContext = this };
}
@@ -56,6 +57,7 @@ namespace SourceGit.ViewModels
_baseOnRevision = commit.SHA;
BasedOn = commit;
+ DiscardLocalChanges = false;
View = new Views.CreateBranch() { DataContext = this };
}
@@ -65,6 +67,7 @@ namespace SourceGit.ViewModels
_baseOnRevision = tag.SHA;
BasedOn = tag;
+ DiscardLocalChanges = false;
View = new Views.CreateBranch() { DataContext = this };
}
@@ -98,7 +101,12 @@ namespace SourceGit.ViewModels
var needPopStash = false;
if (changes > 0)
{
- if (PreAction == Models.DealWithLocalChanges.StashAndReaply)
+ if (DiscardLocalChanges)
+ {
+ SetProgressDescription("Discard local changes...");
+ Commands.Discard.All(_repo.FullPath, false);
+ }
+ else
{
SetProgressDescription("Stash local changes");
succ = new Commands.Stash(_repo.FullPath).Push("CREATE_BRANCH_AUTO_STASH");
@@ -110,11 +118,6 @@ namespace SourceGit.ViewModels
needPopStash = true;
}
- else if (PreAction == Models.DealWithLocalChanges.Discard)
- {
- SetProgressDescription("Discard local changes...");
- Commands.Discard.All(_repo.FullPath, false);
- }
}
SetProgressDescription($"Create new branch '{fixedName}'");
diff --git a/src/ViewModels/Pull.cs b/src/ViewModels/Pull.cs
index ff557792..62d68834 100644
--- a/src/ViewModels/Pull.cs
+++ b/src/ViewModels/Pull.cs
@@ -38,11 +38,11 @@ namespace SourceGit.ViewModels
set => SetProperty(ref _selectedBranch, value, true);
}
- public Models.DealWithLocalChanges PreAction
+ public bool DiscardLocalChanges
{
get;
set;
- } = Models.DealWithLocalChanges.DoNothing;
+ }
public bool UseRebase
{
@@ -124,7 +124,12 @@ namespace SourceGit.ViewModels
var needPopStash = false;
if (changes > 0)
{
- if (PreAction == Models.DealWithLocalChanges.StashAndReaply)
+ if (DiscardLocalChanges)
+ {
+ SetProgressDescription("Discard local changes ...");
+ Commands.Discard.All(_repo.FullPath, false);
+ }
+ else
{
SetProgressDescription("Stash local changes...");
var succ = new Commands.Stash(_repo.FullPath).Push("PULL_AUTO_STASH");
@@ -136,11 +141,6 @@ namespace SourceGit.ViewModels
needPopStash = true;
}
- else if (PreAction == Models.DealWithLocalChanges.Discard)
- {
- SetProgressDescription("Discard local changes ...");
- Commands.Discard.All(_repo.FullPath, false);
- }
}
bool rs;
diff --git a/src/Views/Checkout.axaml b/src/Views/Checkout.axaml
index eb1c9de0..3cdfd94e 100644
--- a/src/Views/Checkout.axaml
+++ b/src/Views/Checkout.axaml
@@ -18,7 +18,7 @@
-
+
-
-
+
-
-
+ Content="{DynamicResource Text.CreateBranch.LocalChanges.StashAndReply}"
+ IsChecked="{Binding !DiscardLocalChanges, Mode=TwoWay}"/>
+
diff --git a/src/Views/Checkout.axaml.cs b/src/Views/Checkout.axaml.cs
index da6e6b31..f8398a1d 100644
--- a/src/Views/Checkout.axaml.cs
+++ b/src/Views/Checkout.axaml.cs
@@ -1,5 +1,4 @@
using Avalonia.Controls;
-using Avalonia.Interactivity;
namespace SourceGit.Views
{
@@ -9,51 +8,5 @@ namespace SourceGit.Views
{
InitializeComponent();
}
-
- protected override void OnLoaded(RoutedEventArgs e)
- {
- base.OnLoaded(e);
-
- var vm = DataContext as ViewModels.Checkout;
- if (vm == null)
- return;
-
- switch (vm.PreAction)
- {
- case Models.DealWithLocalChanges.DoNothing:
- RadioDoNothing.IsChecked = true;
- break;
- case Models.DealWithLocalChanges.StashAndReaply:
- RadioStashAndReply.IsChecked = true;
- break;
- default:
- RadioDiscard.IsChecked = true;
- break;
- }
- }
-
- private void OnLocalChangeActionIsCheckedChanged(object sender, RoutedEventArgs e)
- {
- var vm = DataContext as ViewModels.Checkout;
- if (vm == null)
- return;
-
- if (RadioDoNothing.IsChecked == true)
- {
- if (vm.PreAction != Models.DealWithLocalChanges.DoNothing)
- vm.PreAction = Models.DealWithLocalChanges.DoNothing;
- return;
- }
-
- if (RadioStashAndReply.IsChecked == true)
- {
- if (vm.PreAction != Models.DealWithLocalChanges.StashAndReaply)
- vm.PreAction = Models.DealWithLocalChanges.StashAndReaply;
- return;
- }
-
- if (vm.PreAction != Models.DealWithLocalChanges.Discard)
- vm.PreAction = Models.DealWithLocalChanges.Discard;
- }
}
}
diff --git a/src/Views/CheckoutCommit.axaml b/src/Views/CheckoutCommit.axaml
index 3ee3943f..9b418823 100644
--- a/src/Views/CheckoutCommit.axaml
+++ b/src/Views/CheckoutCommit.axaml
@@ -30,16 +30,16 @@
+ Margin="0,0,8,0"
+ IsChecked="{Binding !DiscardLocalChanges, Mode=TwoWay}"/>
+ GroupName="LocalChanges"/>
-
-
-
-
+ Content="{DynamicResource Text.CreateBranch.LocalChanges.StashAndReply}"
+ IsChecked="{Binding !DiscardLocalChanges, Mode=TwoWay}"/>
+
diff --git a/src/Views/CreateBranch.axaml.cs b/src/Views/CreateBranch.axaml.cs
index 6499e1c7..6626871b 100644
--- a/src/Views/CreateBranch.axaml.cs
+++ b/src/Views/CreateBranch.axaml.cs
@@ -1,5 +1,4 @@
using Avalonia.Controls;
-using Avalonia.Interactivity;
namespace SourceGit.Views
{
@@ -9,51 +8,5 @@ namespace SourceGit.Views
{
InitializeComponent();
}
-
- protected override void OnLoaded(RoutedEventArgs e)
- {
- base.OnLoaded(e);
-
- var vm = DataContext as ViewModels.CreateBranch;
- if (vm == null)
- return;
-
- switch (vm.PreAction)
- {
- case Models.DealWithLocalChanges.DoNothing:
- RadioDoNothing.IsChecked = true;
- break;
- case Models.DealWithLocalChanges.StashAndReaply:
- RadioStashAndReply.IsChecked = true;
- break;
- default:
- RadioDiscard.IsChecked = true;
- break;
- }
- }
-
- private void OnLocalChangeActionIsCheckedChanged(object sender, RoutedEventArgs e)
- {
- var vm = DataContext as ViewModels.CreateBranch;
- if (vm == null)
- return;
-
- if (RadioDoNothing.IsChecked == true)
- {
- if (vm.PreAction != Models.DealWithLocalChanges.DoNothing)
- vm.PreAction = Models.DealWithLocalChanges.DoNothing;
- return;
- }
-
- if (RadioStashAndReply.IsChecked == true)
- {
- if (vm.PreAction != Models.DealWithLocalChanges.StashAndReaply)
- vm.PreAction = Models.DealWithLocalChanges.StashAndReaply;
- return;
- }
-
- if (vm.PreAction != Models.DealWithLocalChanges.Discard)
- vm.PreAction = Models.DealWithLocalChanges.Discard;
- }
}
}
diff --git a/src/Views/Pull.axaml b/src/Views/Pull.axaml
index 3e1f96d9..67121826 100644
--- a/src/Views/Pull.axaml
+++ b/src/Views/Pull.axaml
@@ -22,7 +22,7 @@
-
+
-
-
-
+ Content="{DynamicResource Text.Pull.LocalChanges.StashAndReply}"
+ IsChecked="{Binding !DiscardLocalChanges, Mode=TwoWay}"/>
+
-
+
diff --git a/src/Views/Pull.axaml.cs b/src/Views/Pull.axaml.cs
index 3003f02c..c6b4923e 100644
--- a/src/Views/Pull.axaml.cs
+++ b/src/Views/Pull.axaml.cs
@@ -1,5 +1,4 @@
using Avalonia.Controls;
-using Avalonia.Interactivity;
namespace SourceGit.Views
{
@@ -9,51 +8,5 @@ namespace SourceGit.Views
{
InitializeComponent();
}
-
- protected override void OnLoaded(RoutedEventArgs e)
- {
- base.OnLoaded(e);
-
- var vm = DataContext as ViewModels.Pull;
- if (vm == null)
- return;
-
- switch (vm.PreAction)
- {
- case Models.DealWithLocalChanges.DoNothing:
- RadioDoNothing.IsChecked = true;
- break;
- case Models.DealWithLocalChanges.StashAndReaply:
- RadioStashAndReply.IsChecked = true;
- break;
- default:
- RadioDiscard.IsChecked = true;
- break;
- }
- }
-
- private void OnLocalChangeActionIsCheckedChanged(object sender, RoutedEventArgs e)
- {
- var vm = DataContext as ViewModels.Pull;
- if (vm == null)
- return;
-
- if (RadioDoNothing.IsChecked == true)
- {
- if (vm.PreAction != Models.DealWithLocalChanges.DoNothing)
- vm.PreAction = Models.DealWithLocalChanges.DoNothing;
- return;
- }
-
- if (RadioStashAndReply.IsChecked == true)
- {
- if (vm.PreAction != Models.DealWithLocalChanges.StashAndReaply)
- vm.PreAction = Models.DealWithLocalChanges.StashAndReaply;
- return;
- }
-
- if (vm.PreAction != Models.DealWithLocalChanges.Discard)
- vm.PreAction = Models.DealWithLocalChanges.Discard;
- }
}
}