refactor: move non-observable object from ViewModels to Models

* ViewModels.MergeMode -> Models.MergeMode
* ViewModels.Notification -> Models.Notification
* ViewModels.ResetMode -> Models.ResetMode
* use `int` instead of `ViewModels.CountSelectedCommits`
This commit is contained in:
leo 2024-07-24 11:44:13 +08:00
parent 0dee3a1969
commit 9e048751ae
No known key found for this signature in database
13 changed files with 74 additions and 82 deletions

View file

@ -9,11 +9,6 @@ using CommunityToolkit.Mvvm.ComponentModel;
namespace SourceGit.ViewModels
{
public class CountSelectedCommits
{
public int Count { get; set; }
}
public class Histories : ObservableObject
{
public bool IsLoading
@ -143,7 +138,7 @@ namespace SourceGit.ViewModels
else
{
_repo.SearchResultSelectedCommit = null;
DetailContext = new CountSelectedCommits() { Count = commits.Count };
DetailContext = commits.Count;
}
}

View file

@ -38,7 +38,7 @@ namespace SourceGit.ViewModels
var root = new Commands.QueryRepositoryRootPath(startupRepo).Result();
if (string.IsNullOrEmpty(root))
{
Pages[0].Notifications.Add(new Notification
Pages[0].Notifications.Add(new Models.Notification
{
IsError = true,
Message = $"Given path: '{startupRepo}' is NOT a valid repository!"
@ -272,7 +272,7 @@ namespace SourceGit.ViewModels
public void DispatchNotification(string pageId, string message, bool isError)
{
var notification = new Notification()
var notification = new Models.Notification()
{
IsError = isError,
Message = message,

View file

@ -18,11 +18,11 @@ namespace SourceGit.ViewModels
set => SetProperty(ref _data, value);
}
public AvaloniaList<Notification> Notifications
public AvaloniaList<Models.Notification> Notifications
{
get;
set;
} = new AvaloniaList<Notification>();
} = new AvaloniaList<Models.Notification>();
public LauncherPage()
{

View file

@ -1,22 +1,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using System.Threading.Tasks;
namespace SourceGit.ViewModels
{
public class MergeMode
{
public string Name { get; set; }
public string Desc { get; set; }
public string Arg { get; set; }
public MergeMode(string n, string d, string a)
{
Name = n;
Desc = d;
Arg = a;
}
}
public class Merge : Popup
{
public string Source
@ -31,13 +16,7 @@ namespace SourceGit.ViewModels
private set;
}
public List<MergeMode> Modes
{
get;
private set;
}
public MergeMode SelectedMode
public Models.MergeMode SelectedMode
{
get;
set;
@ -48,13 +27,7 @@ namespace SourceGit.ViewModels
_repo = repo;
Source = source;
Into = into;
Modes = new List<MergeMode>() {
new MergeMode("Default", "Fast-forward if possible", ""),
new MergeMode("No Fast-forward", "Always create a merge commit", "--no-ff"),
new MergeMode("Squash", "Use '--squash'", "--squash"),
new MergeMode("Don't commit", "Merge without commit", "--no-commit"),
};
SelectedMode = Modes[0];
SelectedMode = Models.MergeMode.Supported[0];
View = new Views.Merge() { DataContext = this };
}

View file

@ -1,13 +0,0 @@
namespace SourceGit.ViewModels
{
public class Notification
{
public bool IsError { get; set; } = false;
public string Message { get; set; } = string.Empty;
public void CopyMessage()
{
App.CopyText(Message);
}
}
}

View file

@ -1,26 +1,7 @@
using System.Collections.Generic;
using System.Threading.Tasks;
using Avalonia.Media;
using System.Threading.Tasks;
namespace SourceGit.ViewModels
{
public class ResetMode
{
public string Name { get; set; }
public string Desc { get; set; }
public string Arg { get; set; }
public IBrush Color { get; set; }
public ResetMode(string n, string d, string a, IBrush b)
{
Name = n;
Desc = d;
Arg = a;
Color = b;
}
}
public class Reset : Popup
{
public Models.Branch Current
@ -35,13 +16,7 @@ namespace SourceGit.ViewModels
private set;
}
public List<ResetMode> Modes
{
get;
private set;
}
public ResetMode SelectedMode
public Models.ResetMode SelectedMode
{
get;
set;
@ -52,12 +27,7 @@ namespace SourceGit.ViewModels
_repo = repo;
Current = current;
To = to;
Modes = new List<ResetMode>() {
new ResetMode("Soft", "Keep all changes. Stage differences", "--soft", Brushes.Green),
new ResetMode("Mixed", "Keep all changes. Unstage differences", "--mixed", Brushes.Orange),
new ResetMode("Hard", "Discard all changes", "--hard", Brushes.Red),
};
SelectedMode = Modes[0];
SelectedMode = Models.ResetMode.Supported[0];
View = new Views.Reset() { DataContext = this };
}