code_style: remove all IDE warnings

This commit is contained in:
leo 2024-07-15 00:30:31 +08:00
parent 24ca3eaf8c
commit f4eca45754
No known key found for this signature in database
79 changed files with 1462 additions and 1378 deletions

View file

@ -88,6 +88,9 @@ namespace SourceGit.ViewModels
if (creator == null)
return new ValidationResult("Missing runtime context to create branch!");
if (string.IsNullOrEmpty(path))
return new ValidationResult("Worktree path is required!");
var fullPath = System.IO.Path.IsPathRooted(path) ? path : System.IO.Path.Combine(creator._repo.FullPath, path);
var info = new DirectoryInfo(fullPath);
if (info.Exists)

View file

@ -6,7 +6,6 @@ namespace SourceGit.ViewModels
{
public class Archive : Popup
{
[Required(ErrorMessage = "Output file name is required")]
public string SaveFile
{
@ -67,7 +66,7 @@ namespace SourceGit.ViewModels
}
private readonly Repository _repo = null;
private string _saveFile = string.Empty;
private readonly string _revision = string.Empty;
private string _saveFile;
private readonly string _revision;
}
}

View file

@ -14,12 +14,6 @@ namespace SourceGit.ViewModels
private set;
}
public string SelectedSHA
{
get => _selectedSHA;
private set => SetProperty(ref _selectedSHA, value);
}
public bool IsBinary
{
get => _data != null && _data.IsBinary;
@ -53,8 +47,7 @@ namespace SourceGit.ViewModels
repo?.NavigateToCommit(commitSHA);
}
private readonly string _repo = string.Empty;
private string _selectedSHA = string.Empty;
private readonly string _repo;
private Models.BlameData _data = null;
}
}

View file

@ -201,7 +201,7 @@ namespace SourceGit.ViewModels
}
}
private string _repo = string.Empty;
private string _repo;
private Models.Commit _baseHead = null;
private Models.Commit _toHead = null;
private List<Models.Change> _changes = null;

View file

@ -0,0 +1,22 @@
using System.Collections.Generic;
using Avalonia.Collections;
namespace SourceGit.ViewModels
{
public class ChangeCollectionAsTree
{
public List<ChangeTreeNode> Tree { get; set; } = new List<ChangeTreeNode>();
public AvaloniaList<ChangeTreeNode> Rows { get; set; } = new AvaloniaList<ChangeTreeNode>();
}
public class ChangeCollectionAsGrid
{
public AvaloniaList<Models.Change> Changes { get; set; } = new AvaloniaList<Models.Change>();
}
public class ChangeCollectionAsList
{
public AvaloniaList<Models.Change> Changes { get; set; } = new AvaloniaList<Models.Change>();
}
}

View file

@ -1,15 +1,13 @@
using System;
using System.Collections.Generic;
using Avalonia.Collections;
using CommunityToolkit.Mvvm.ComponentModel;
namespace SourceGit.ViewModels
{
public class ChangeTreeNode : ObservableObject
{
public string FullPath { get; set; } = string.Empty;
public string FullPath { get; set; }
public int Depth { get; private set; } = 0;
public Models.Change Change { get; set; } = null;
public List<ChangeTreeNode> Children { get; set; } = new List<ChangeTreeNode>();
@ -55,8 +53,7 @@ namespace SourceGit.ViewModels
else
{
ChangeTreeNode lastFolder = null;
var start = 0;
var depth = 0;
int depth = 0;
while (sepIdx != -1)
{
@ -79,12 +76,11 @@ namespace SourceGit.ViewModels
lastFolder = cur;
}
start = sepIdx + 1;
depth++;
sepIdx = c.Path.IndexOf('/', start);
sepIdx = c.Path.IndexOf('/', sepIdx + 1);
}
lastFolder.Children.Add(new ChangeTreeNode(c, depth));
lastFolder?.Children.Add(new ChangeTreeNode(c, depth));
}
}
@ -126,20 +122,4 @@ namespace SourceGit.ViewModels
private bool _isExpanded = true;
}
public class ChangeCollectionAsTree
{
public List<ChangeTreeNode> Tree { get; set; } = new List<ChangeTreeNode>();
public AvaloniaList<ChangeTreeNode> Rows { get; set; } = new AvaloniaList<ChangeTreeNode>();
}
public class ChangeCollectionAsGrid
{
public AvaloniaList<Models.Change> Changes { get; set; } = new AvaloniaList<Models.Change>();
}
public class ChangeCollectionAsList
{
public AvaloniaList<Models.Change> Changes { get; set; } = new AvaloniaList<Models.Change>();
}
}

View file

@ -1,4 +1,5 @@
using System.ComponentModel.DataAnnotations;
using System;
using System.ComponentModel.DataAnnotations;
using System.IO;
using System.Threading.Tasks;
@ -105,8 +106,8 @@ namespace SourceGit.ViewModels
}
else
{
var name = Path.GetFileName(_remote);
if (name.EndsWith(".git"))
var name = Path.GetFileName(_remote)!;
if (name.EndsWith(".git", StringComparison.Ordinal))
name = name.Substring(0, name.Length - 4);
path = Path.GetFullPath(Path.Combine(path, name));
}

View file

@ -176,14 +176,8 @@ namespace SourceGit.ViewModels
}
else
{
Dispatcher.UIThread.Invoke(() =>
{
ViewRevisionFileContent = new Models.RevisionTextFile()
{
FileName = file.Path,
Content = content
};
});
var txt = new Models.RevisionTextFile() { Content = content };
Dispatcher.UIThread.Invoke(() => ViewRevisionFileContent = txt);
}
});
break;
@ -256,7 +250,7 @@ namespace SourceGit.ViewModels
var blame = new MenuItem();
blame.Header = App.Text("Blame");
blame.Icon = App.CreateMenuIcon("Icons.Blame");
blame.Click += (o, ev) =>
blame.Click += (_, ev) =>
{
var window = new Views.Blame() { DataContext = new Blame(_repo, change.Path, _commit.SHA) };
window.Show();
@ -320,7 +314,7 @@ namespace SourceGit.ViewModels
blame.Header = App.Text("Blame");
blame.Icon = App.CreateMenuIcon("Icons.Blame");
blame.IsEnabled = file.Type == Models.ObjectType.Blob;
blame.Click += (o, ev) =>
blame.Click += (_, ev) =>
{
var window = new Views.Blame() { DataContext = new Blame(_repo, file.Path, _commit.SHA) };
window.Show();
@ -461,7 +455,7 @@ namespace SourceGit.ViewModels
".ico", ".bmp", ".jpg", ".png", ".jpeg"
};
private string _repo = string.Empty;
private string _repo;
private int _activePageIndex = 0;
private Models.Commit _commit = null;
private string _fullMessage = string.Empty;

View file

@ -81,7 +81,7 @@ namespace SourceGit.ViewModels
return Task.Run(() =>
{
var succ = false;
bool succ;
if (_annotated)
succ = Commands.Tag.Add(_repo.FullPath, _tagName, _basedOn, Message, SignTag);
else
@ -104,6 +104,6 @@ namespace SourceGit.ViewModels
private readonly Repository _repo = null;
private string _tagName = string.Empty;
private bool _annotated = true;
private readonly string _basedOn = string.Empty;
private readonly string _basedOn;
}
}

View file

@ -30,7 +30,6 @@ namespace SourceGit.ViewModels
public string Title
{
get => _title;
private set => SetProperty(ref _title, value);
}
public string FileModeChange
@ -237,9 +236,9 @@ namespace SourceGit.ViewModels
".ico", ".bmp", ".jpg", ".png", ".jpeg"
};
private readonly string _repo = string.Empty;
private readonly string _repo;
private readonly Models.DiffOption _option = null;
private string _title = string.Empty;
private string _title;
private string _fileModeChange = string.Empty;
private bool _isLoading = true;
private bool _isTextDiff = false;

View file

@ -9,7 +9,6 @@ namespace SourceGit.ViewModels
public class Discard : Popup
{
public object Mode
{
get;

View file

@ -67,7 +67,7 @@ namespace SourceGit.ViewModels
foreach (var remote in edit._repo.Remotes)
{
if (remote != edit._remote && name == remote.Name)
new ValidationResult("A remote with given name already exists!!!");
return new ValidationResult("A remote with given name already exists!!!");
}
}
@ -84,7 +84,7 @@ namespace SourceGit.ViewModels
foreach (var remote in edit._repo.Remotes)
{
if (remote != edit._remote && url == remote.URL)
new ValidationResult("A remote with the same url already exists!!!");
return new ValidationResult("A remote with the same url already exists!!!");
}
}
@ -136,8 +136,8 @@ namespace SourceGit.ViewModels
private readonly Repository _repo = null;
private readonly Models.Remote _remote = null;
private string _name = string.Empty;
private string _url = string.Empty;
private string _name = null;
private string _url = null;
private bool _useSSH = false;
private string _sshkey = string.Empty;
}

View file

@ -5,12 +5,6 @@ namespace SourceGit.ViewModels
{
public class EditRepositoryNode : Popup
{
public RepositoryNode Node
{
get => _node;
set => SetProperty(ref _node, value);
}
public string Id
{
get => _id;
@ -60,8 +54,8 @@ namespace SourceGit.ViewModels
}
private RepositoryNode _node = null;
private string _id = string.Empty;
private string _name = string.Empty;
private string _id = null;
private string _name = null;
private bool _isRepository = false;
private int _bookmark = 0;
}

View file

@ -68,6 +68,6 @@ namespace SourceGit.ViewModels
}
private readonly Repository _repo = null;
private bool _fetchAllRemotes = true;
private bool _fetchAllRemotes;
}
}

View file

@ -73,8 +73,8 @@ namespace SourceGit.ViewModels
});
}
private readonly string _repo = string.Empty;
private readonly string _file = string.Empty;
private readonly string _repo = null;
private readonly string _file = null;
private bool _isLoading = true;
private List<Models.Commit> _commits = null;
private Models.Commit _selectedCommit = null;

View file

@ -43,8 +43,8 @@ namespace SourceGit.ViewModels
});
}
private readonly Repository _repo = null;
private readonly string _type = "feature";
private readonly string _prefix = string.Empty;
private readonly Repository _repo;
private readonly string _type;
private readonly string _prefix;
}
}

View file

@ -27,7 +27,7 @@ namespace SourceGit.ViewModels
{
_repo = repo;
_type = type;
_prefix = Commands.GitFlow.Prefix(repo.FullPath, type);
_prefix = Commands.GitFlow.GetPrefix(repo.FullPath, type);
View = new Views.GitFlowStart() { DataContext = this };
}
@ -59,9 +59,9 @@ namespace SourceGit.ViewModels
});
}
private readonly Repository _repo = null;
private readonly string _type = "feature";
private readonly string _prefix = string.Empty;
private readonly Repository _repo;
private readonly string _type;
private readonly string _prefix;
private string _name = null;
}
}

View file

@ -4,7 +4,7 @@ using System.Collections.Generic;
using Avalonia.Controls;
using Avalonia.Platform.Storage;
using Avalonia.VisualTree;
using CommunityToolkit.Mvvm.ComponentModel;
namespace SourceGit.ViewModels
@ -156,7 +156,7 @@ namespace SourceGit.ViewModels
if (current == null)
return null;
var commit = datagrid.SelectedItem as Models.Commit;
var commit = (datagrid.SelectedItem as Models.Commit)!;
var menu = new ContextMenu();
var tags = new List<Models.Tag>();
@ -202,7 +202,7 @@ namespace SourceGit.ViewModels
var reset = new MenuItem();
reset.Header = new Views.NameHighlightedTextBlock("CommitCM.Reset", current.Name);
reset.Icon = App.CreateMenuIcon("Icons.Reset");
reset.Click += (o, e) =>
reset.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Reset(_repo, current, commit));
@ -215,7 +215,7 @@ namespace SourceGit.ViewModels
var reword = new MenuItem();
reword.Header = App.Text("CommitCM.Reword");
reword.Icon = App.CreateMenuIcon("Icons.Edit");
reword.Click += (o, e) =>
reword.Click += (_, e) =>
{
if (_repo.WorkingCopyChangesCount > 0)
{
@ -233,7 +233,7 @@ namespace SourceGit.ViewModels
squash.Header = App.Text("CommitCM.Squash");
squash.Icon = App.CreateMenuIcon("Icons.SquashIntoParent");
squash.IsEnabled = commit.Parents.Count == 1;
squash.Click += (o, e) =>
squash.Click += (_, e) =>
{
if (_repo.WorkingCopyChangesCount > 0)
{
@ -258,7 +258,7 @@ namespace SourceGit.ViewModels
var rebase = new MenuItem();
rebase.Header = new Views.NameHighlightedTextBlock("CommitCM.Rebase", current.Name);
rebase.Icon = App.CreateMenuIcon("Icons.Rebase");
rebase.Click += (o, e) =>
rebase.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Rebase(_repo, current, commit));
@ -269,7 +269,7 @@ namespace SourceGit.ViewModels
var cherryPick = new MenuItem();
cherryPick.Header = App.Text("CommitCM.CherryPick");
cherryPick.Icon = App.CreateMenuIcon("Icons.CherryPick");
cherryPick.Click += (o, e) =>
cherryPick.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new CherryPick(_repo, commit));
@ -282,7 +282,7 @@ namespace SourceGit.ViewModels
var revert = new MenuItem();
revert.Header = App.Text("CommitCM.Revert");
revert.Icon = App.CreateMenuIcon("Icons.Undo");
revert.Click += (o, e) =>
revert.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Revert(_repo, commit));
@ -294,7 +294,7 @@ namespace SourceGit.ViewModels
interactiveRebase.Header = new Views.NameHighlightedTextBlock("CommitCM.InteractiveRebase", current.Name);
interactiveRebase.Icon = App.CreateMenuIcon("Icons.InteractiveRebase");
interactiveRebase.IsVisible = current.Head != commit.SHA;
interactiveRebase.Click += (o, e) =>
interactiveRebase.Click += (_, e) =>
{
if (_repo.WorkingCopyChangesCount > 0)
{
@ -302,8 +302,12 @@ namespace SourceGit.ViewModels
return;
}
var toplevel = datagrid.FindAncestorOfType<Views.Launcher>();
if (toplevel == null)
return;
var dialog = new Views.InteractiveRebase() { DataContext = new InteractiveRebase(_repo, current, commit) };
dialog.ShowDialog(App.GetTopLevel() as Window);
dialog.ShowDialog(toplevel);
e.Handled = true;
};
menu.Items.Add(interactiveRebase);
@ -314,7 +318,7 @@ namespace SourceGit.ViewModels
var checkoutCommit = new MenuItem();
checkoutCommit.Header = App.Text("CommitCM.Checkout");
checkoutCommit.Icon = App.CreateMenuIcon("Icons.Detached");
checkoutCommit.Click += (o, e) =>
checkoutCommit.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new CheckoutCommit(_repo, commit));
@ -330,7 +334,7 @@ namespace SourceGit.ViewModels
var compareWithHead = new MenuItem();
compareWithHead.Header = App.Text("CommitCM.CompareWithHead");
compareWithHead.Icon = App.CreateMenuIcon("Icons.Compare");
compareWithHead.Click += (o, e) =>
compareWithHead.Click += (_, e) =>
{
var head = _commits.Find(x => x.SHA == current.Head);
if (head == null)
@ -354,7 +358,7 @@ namespace SourceGit.ViewModels
var compareWithWorktree = new MenuItem();
compareWithWorktree.Header = App.Text("CommitCM.CompareWithWorktree");
compareWithWorktree.Icon = App.CreateMenuIcon("Icons.Compare");
compareWithWorktree.Click += (o, e) =>
compareWithWorktree.Click += (_, e) =>
{
DetailContext = new RevisionCompare(_repo.FullPath, commit, null);
e.Handled = true;
@ -368,7 +372,7 @@ namespace SourceGit.ViewModels
var createBranch = new MenuItem();
createBranch.Icon = App.CreateMenuIcon("Icons.Branch.Add");
createBranch.Header = App.Text("CreateBranch");
createBranch.Click += (o, e) =>
createBranch.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new CreateBranch(_repo, commit));
@ -379,7 +383,7 @@ namespace SourceGit.ViewModels
var createTag = new MenuItem();
createTag.Icon = App.CreateMenuIcon("Icons.Tag.Add");
createTag.Header = App.Text("CreateTag");
createTag.Click += (o, e) =>
createTag.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new CreateTag(_repo, commit));
@ -413,7 +417,7 @@ namespace SourceGit.ViewModels
var archive = new MenuItem();
archive.Icon = App.CreateMenuIcon("Icons.Archive");
archive.Header = App.Text("Archive");
archive.Click += (o, e) =>
archive.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Archive(_repo, commit));
@ -425,7 +429,7 @@ namespace SourceGit.ViewModels
var copySHA = new MenuItem();
copySHA.Header = App.Text("CommitCM.CopySHA");
copySHA.Icon = App.CreateMenuIcon("Icons.Copy");
copySHA.Click += (o, e) =>
copySHA.Click += (_, e) =>
{
App.CopyText(commit.SHA);
e.Handled = true;
@ -448,7 +452,7 @@ namespace SourceGit.ViewModels
fastForward.Header = new Views.NameHighlightedTextBlock("BranchCM.FastForward", upstream);
fastForward.Icon = App.CreateMenuIcon("Icons.FastForward");
fastForward.IsEnabled = !string.IsNullOrEmpty(current.UpstreamTrackStatus) && current.UpstreamTrackStatus.IndexOf('↑') < 0;
fastForward.Click += (o, e) =>
fastForward.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowAndStartPopup(new Merge(_repo, upstream, current.Name));
@ -459,7 +463,7 @@ namespace SourceGit.ViewModels
var pull = new MenuItem();
pull.Header = new Views.NameHighlightedTextBlock("BranchCM.Pull", upstream);
pull.Icon = App.CreateMenuIcon("Icons.Pull");
pull.Click += (o, e) =>
pull.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Pull(_repo, null));
@ -472,7 +476,7 @@ namespace SourceGit.ViewModels
push.Header = new Views.NameHighlightedTextBlock("BranchCM.Push", current.Name);
push.Icon = App.CreateMenuIcon("Icons.Push");
push.IsEnabled = _repo.Remotes.Count > 0;
push.Click += (o, e) =>
push.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Push(_repo, current));
@ -487,7 +491,7 @@ namespace SourceGit.ViewModels
var finish = new MenuItem();
finish.Header = new Views.NameHighlightedTextBlock("BranchCM.Finish", current.Name);
finish.Icon = App.CreateMenuIcon("Icons.GitFlow");
finish.Click += (o, e) =>
finish.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new GitFlowFinish(_repo, current, detect.Type, detect.Prefix));
@ -500,7 +504,7 @@ namespace SourceGit.ViewModels
var rename = new MenuItem();
rename.Header = new Views.NameHighlightedTextBlock("BranchCM.Rename", current.Name);
rename.Icon = App.CreateMenuIcon("Icons.Rename");
rename.Click += (o, e) =>
rename.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new RenameBranch(_repo, current));
@ -520,7 +524,7 @@ namespace SourceGit.ViewModels
var checkout = new MenuItem();
checkout.Header = new Views.NameHighlightedTextBlock("BranchCM.Checkout", branch.Name);
checkout.Icon = App.CreateMenuIcon("Icons.Check");
checkout.Click += (o, e) =>
checkout.Click += (_, e) =>
{
_repo.CheckoutBranch(branch);
e.Handled = true;
@ -531,7 +535,7 @@ namespace SourceGit.ViewModels
merge.Header = new Views.NameHighlightedTextBlock("BranchCM.Merge", branch.Name, current.Name);
merge.Icon = App.CreateMenuIcon("Icons.Merge");
merge.IsEnabled = !merged;
merge.Click += (o, e) =>
merge.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Merge(_repo, branch.Name, current.Name));
@ -546,7 +550,7 @@ namespace SourceGit.ViewModels
var finish = new MenuItem();
finish.Header = new Views.NameHighlightedTextBlock("BranchCM.Finish", branch.Name);
finish.Icon = App.CreateMenuIcon("Icons.GitFlow");
finish.Click += (o, e) =>
finish.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new GitFlowFinish(_repo, branch, detect.Type, detect.Prefix));
@ -559,7 +563,7 @@ namespace SourceGit.ViewModels
var rename = new MenuItem();
rename.Header = new Views.NameHighlightedTextBlock("BranchCM.Rename", branch.Name);
rename.Icon = App.CreateMenuIcon("Icons.Rename");
rename.Click += (o, e) =>
rename.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new RenameBranch(_repo, branch));
@ -570,7 +574,7 @@ namespace SourceGit.ViewModels
var delete = new MenuItem();
delete.Header = new Views.NameHighlightedTextBlock("BranchCM.Delete", branch.Name);
delete.Icon = App.CreateMenuIcon("Icons.Clear");
delete.Click += (o, e) =>
delete.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new DeleteBranch(_repo, branch));
@ -592,7 +596,7 @@ namespace SourceGit.ViewModels
var checkout = new MenuItem();
checkout.Header = new Views.NameHighlightedTextBlock("BranchCM.Checkout", name);
checkout.Icon = App.CreateMenuIcon("Icons.Check");
checkout.Click += (o, e) =>
checkout.Click += (_, e) =>
{
_repo.CheckoutBranch(branch);
e.Handled = true;
@ -603,7 +607,7 @@ namespace SourceGit.ViewModels
merge.Header = new Views.NameHighlightedTextBlock("BranchCM.Merge", name, current.Name);
merge.Icon = App.CreateMenuIcon("Icons.Merge");
merge.IsEnabled = !merged;
merge.Click += (o, e) =>
merge.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Merge(_repo, name, current.Name));
@ -616,7 +620,7 @@ namespace SourceGit.ViewModels
var delete = new MenuItem();
delete.Header = new Views.NameHighlightedTextBlock("BranchCM.Delete", name);
delete.Icon = App.CreateMenuIcon("Icons.Clear");
delete.Click += (o, e) =>
delete.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new DeleteBranch(_repo, branch));
@ -638,7 +642,7 @@ namespace SourceGit.ViewModels
push.Header = new Views.NameHighlightedTextBlock("TagCM.Push", tag.Name);
push.Icon = App.CreateMenuIcon("Icons.Push");
push.IsEnabled = _repo.Remotes.Count > 0;
push.Click += (o, e) =>
push.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new PushTag(_repo, tag));
@ -649,7 +653,7 @@ namespace SourceGit.ViewModels
var delete = new MenuItem();
delete.Header = new Views.NameHighlightedTextBlock("TagCM.Delete", tag.Name);
delete.Icon = App.CreateMenuIcon("Icons.Clear");
delete.Click += (o, e) =>
delete.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new DeleteTag(_repo, tag));

View file

@ -38,7 +38,7 @@ namespace SourceGit.ViewModels
});
}
private string _targetPath = string.Empty;
private string _targetPath = null;
private RepositoryNode _parentNode = null;
}
}

View file

@ -114,8 +114,8 @@ namespace SourceGit.ViewModels
});
}
private readonly Repository _repo = null;
private string _master = "master";
private readonly Repository _repo;
private string _master;
private string _develop = "develop";
private string _featurePrefix = "feature/";
private string _releasePrefix = "release/";

View file

@ -62,8 +62,8 @@ namespace SourceGit.ViewModels
}
private Models.InteractiveRebaseAction _action = Models.InteractiveRebaseAction.Pick;
private string _subject = string.Empty;
private string _fullMessage = string.Empty;
private string _subject;
private string _fullMessage;
}
public class InteractiveRebase : ObservableObject

View file

@ -67,8 +67,8 @@ namespace SourceGit.ViewModels
});
}
private string _repo = string.Empty;
private string _remote = string.Empty;
private string _repo;
private string _remote;
private bool _isLoading = true;
private bool _isEmpty = false;
}

View file

@ -1,6 +1,7 @@
using System;
using System.IO;
using Avalonia;
using Avalonia.Collections;
using Avalonia.Controls;
using Avalonia.Input;
@ -292,12 +293,6 @@ namespace SourceGit.ViewModels
_activePage.Notifications.Add(notification);
}
public void DismissNotification(Notification notice)
{
if (notice != null)
ActivePage?.Notifications.Remove(notice);
}
public ContextMenu CreateContextForPageTab(LauncherPage page)
{
if (page == null)
@ -307,7 +302,7 @@ namespace SourceGit.ViewModels
var close = new MenuItem();
close.Header = App.Text("PageTabBar.Tab.Close");
close.InputGesture = KeyGesture.Parse(OperatingSystem.IsMacOS() ? "⌘+W" : "Ctrl+W");
close.Click += (o, e) =>
close.Click += (_, e) =>
{
CloseTab(page);
e.Handled = true;
@ -316,7 +311,7 @@ namespace SourceGit.ViewModels
var closeOthers = new MenuItem();
closeOthers.Header = App.Text("PageTabBar.Tab.CloseOther");
closeOthers.Click += (o, e) =>
closeOthers.Click += (_, e) =>
{
CloseOtherTabs();
e.Handled = true;
@ -325,7 +320,7 @@ namespace SourceGit.ViewModels
var closeRight = new MenuItem();
closeRight.Header = App.Text("PageTabBar.Tab.CloseRight");
closeRight.Click += (o, e) =>
closeRight.Click += (_, e) =>
{
CloseRightTabs();
e.Handled = true;
@ -342,13 +337,13 @@ namespace SourceGit.ViewModels
{
var icon = App.CreateMenuIcon("Icons.Bookmark");
icon.Fill = Models.Bookmarks.Brushes[i];
icon.Stroke = App.Current.FindResource("Brush.FG1") as Brush;
icon.Stroke = Application.Current?.FindResource("Brush.FG1") as Brush;
icon.StrokeThickness = i == 0 ? 1.0 : 0;
var dupIdx = i;
var setter = new MenuItem();
setter.Header = icon;
setter.Click += (o, e) =>
setter.Click += (_, e) =>
{
page.Node.Bookmark = dupIdx;
e.Handled = true;
@ -361,7 +356,7 @@ namespace SourceGit.ViewModels
var copyPath = new MenuItem();
copyPath.Header = App.Text("PageTabBar.Tab.CopyPath");
copyPath.Icon = App.CreateMenuIcon("Icons.Copy");
copyPath.Click += (o, e) =>
copyPath.Click += (_, e) =>
{
page.CopyPath();
e.Handled = true;

View file

@ -1,8 +1,4 @@
using System;
using System.Text.Json;
using System.Text.Json.Serialization;
using Avalonia.Controls;
using Avalonia.Controls;
using CommunityToolkit.Mvvm.ComponentModel;

View file

@ -112,7 +112,7 @@ namespace SourceGit.ViewModels
if (Models.AvatarManager.SelectedServer != value)
{
Models.AvatarManager.SelectedServer = value;
OnPropertyChanged(nameof(AvatarServer));
OnPropertyChanged();
}
}
}
@ -221,7 +221,7 @@ namespace SourceGit.ViewModels
if (Native.OS.GitExecutable != value)
{
Native.OS.GitExecutable = value;
OnPropertyChanged(nameof(GitInstallPath));
OnPropertyChanged();
}
}
}
@ -233,7 +233,7 @@ namespace SourceGit.ViewModels
{
if (Native.OS.SetShell(value))
{
OnPropertyChanged(nameof(GitShell));
OnPropertyChanged();
}
}
}
@ -252,7 +252,7 @@ namespace SourceGit.ViewModels
if (Commands.AutoFetch.IsEnabled != value)
{
Commands.AutoFetch.IsEnabled = value;
OnPropertyChanged(nameof(GitAutoFetch));
OnPropertyChanged();
}
}
}
@ -268,7 +268,7 @@ namespace SourceGit.ViewModels
if (Commands.AutoFetch.Interval != value)
{
Commands.AutoFetch.Interval = (int)value;
OnPropertyChanged(nameof(GitAutoFetchInterval));
OnPropertyChanged();
}
}
}

View file

@ -114,7 +114,7 @@ namespace SourceGit.ViewModels
}
// Find preferred remote if selected local branch has upstream.
if (!string.IsNullOrEmpty(_selectedLocalBranch.Upstream))
if (!string.IsNullOrEmpty(_selectedLocalBranch?.Upstream))
{
foreach (var branch in repo.Branches)
{

View file

@ -55,7 +55,7 @@ namespace SourceGit.ViewModels
});
}
private readonly Repository _repo = null;
private readonly string _revision = string.Empty;
private readonly Repository _repo;
private readonly string _revision;
}
}

View file

@ -60,7 +60,7 @@ namespace SourceGit.ViewModels
});
}
private readonly Repository _repo = null;
private string _name = string.Empty;
private readonly Repository _repo;
private string _name;
}
}

View file

@ -129,7 +129,6 @@ namespace SourceGit.ViewModels
public RepositorySettings Settings
{
get => _settings;
private set => SetProperty(ref _settings, value);
}
public int SelectedViewIndex
@ -436,7 +435,7 @@ namespace SourceGit.ViewModels
var item = new MenuItem();
item.Header = App.Text("Repository.OpenIn", dupTool.Name);
item.Icon = new Image { Width = 16, Height = 16, Source = dupTool.IconImage };
item.Click += (o, e) =>
item.Click += (_, e) =>
{
dupTool.Open(_fullpath);
e.Handled = true;
@ -1013,7 +1012,7 @@ namespace SourceGit.ViewModels
var startFeature = new MenuItem();
startFeature.Header = App.Text("GitFlow.StartFeature");
startFeature.Icon = App.CreateMenuIcon("Icons.GitFlow.Feature");
startFeature.Click += (o, e) =>
startFeature.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new GitFlowStart(this, "feature"));
@ -1023,7 +1022,7 @@ namespace SourceGit.ViewModels
var startRelease = new MenuItem();
startRelease.Header = App.Text("GitFlow.StartRelease");
startRelease.Icon = App.CreateMenuIcon("Icons.GitFlow.Release");
startRelease.Click += (o, e) =>
startRelease.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new GitFlowStart(this, "release"));
@ -1033,7 +1032,7 @@ namespace SourceGit.ViewModels
var startHotfix = new MenuItem();
startHotfix.Header = App.Text("GitFlow.StartHotfix");
startHotfix.Icon = App.CreateMenuIcon("Icons.GitFlow.Hotfix");
startHotfix.Click += (o, e) =>
startHotfix.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new GitFlowStart(this, "hotfix"));
@ -1049,7 +1048,7 @@ namespace SourceGit.ViewModels
var init = new MenuItem();
init.Header = App.Text("GitFlow.Init");
init.Icon = App.CreateMenuIcon("Icons.Init");
init.Click += (o, e) =>
init.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new InitGitFlow(this));
@ -1071,7 +1070,7 @@ namespace SourceGit.ViewModels
var addPattern = new MenuItem();
addPattern.Header = App.Text("GitLFS.AddTrackPattern");
addPattern.Icon = App.CreateMenuIcon("Icons.File.Add");
addPattern.Click += (o, e) =>
addPattern.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new LFSTrackCustomPattern(this));
@ -1085,7 +1084,7 @@ namespace SourceGit.ViewModels
fetch.Header = App.Text("GitLFS.Fetch");
fetch.Icon = App.CreateMenuIcon("Icons.Fetch");
fetch.IsEnabled = Remotes.Count > 0;
fetch.Click += (o, e) =>
fetch.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
{
@ -1103,7 +1102,7 @@ namespace SourceGit.ViewModels
pull.Header = App.Text("GitLFS.Pull");
pull.Icon = App.CreateMenuIcon("Icons.Pull");
pull.IsEnabled = Remotes.Count > 0;
pull.Click += (o, e) =>
pull.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
{
@ -1121,7 +1120,7 @@ namespace SourceGit.ViewModels
push.Header = App.Text("GitLFS.Push");
push.Icon = App.CreateMenuIcon("Icons.Push");
push.IsEnabled = Remotes.Count > 0;
push.Click += (o, e) =>
push.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
{
@ -1138,7 +1137,7 @@ namespace SourceGit.ViewModels
var prune = new MenuItem();
prune.Header = App.Text("GitLFS.Prune");
prune.Icon = App.CreateMenuIcon("Icons.Clean");
prune.Click += (o, e) =>
prune.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowAndStartPopup(new LFSPrune(this));
@ -1154,10 +1153,14 @@ namespace SourceGit.ViewModels
locks.IsEnabled = Remotes.Count > 0;
if (Remotes.Count == 1)
{
locks.Click += (o, e) =>
locks.Click += (_, e) =>
{
var topLevel = App.GetTopLevel() as Window;
if (topLevel == null)
return;
var dialog = new Views.LFSLocks() { DataContext = new LFSLocks(_fullpath, Remotes[0].Name) };
dialog.Show(App.GetTopLevel() as Window);
dialog.Show(topLevel);
e.Handled = true;
};
}
@ -1168,10 +1171,14 @@ namespace SourceGit.ViewModels
var remoteName = remote.Name;
var lockRemote = new MenuItem();
lockRemote.Header = remoteName;
lockRemote.Click += (o, e) =>
lockRemote.Click += (_, e) =>
{
var topLevel = App.GetTopLevel() as Window;
if (topLevel == null)
return;
var dialog = new Views.LFSLocks() { DataContext = new LFSLocks(_fullpath, remoteName) };
dialog.Show(App.GetTopLevel() as Window);
dialog.Show(topLevel);
e.Handled = true;
};
locks.Items.Add(lockRemote);
@ -1186,7 +1193,7 @@ namespace SourceGit.ViewModels
var install = new MenuItem();
install.Header = App.Text("GitLFS.Install");
install.Icon = App.CreateMenuIcon("Icons.Init");
install.Click += (o, e) =>
install.Click += (_, e) =>
{
var succ = new Commands.LFS(_fullpath).Install();
if (succ)
@ -1221,7 +1228,7 @@ namespace SourceGit.ViewModels
discard.Header = App.Text("BranchCM.DiscardAll");
discard.Icon = App.CreateMenuIcon("Icons.Undo");
discard.IsEnabled = _workingCopy.Count > 0;
discard.Click += (o, e) =>
discard.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Discard(this));
@ -1238,7 +1245,7 @@ namespace SourceGit.ViewModels
fastForward.Header = new Views.NameHighlightedTextBlock("BranchCM.FastForward", upstream);
fastForward.Icon = App.CreateMenuIcon("Icons.FastForward");
fastForward.IsEnabled = !string.IsNullOrEmpty(branch.UpstreamTrackStatus) && branch.UpstreamTrackStatus.IndexOf('↑') < 0;
fastForward.Click += (o, e) =>
fastForward.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowAndStartPopup(new Merge(this, upstream, branch.Name));
@ -1248,7 +1255,7 @@ namespace SourceGit.ViewModels
var pull = new MenuItem();
pull.Header = new Views.NameHighlightedTextBlock("BranchCM.Pull", upstream);
pull.Icon = App.CreateMenuIcon("Icons.Pull");
pull.Click += (o, e) =>
pull.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Pull(this, null));
@ -1275,7 +1282,7 @@ namespace SourceGit.ViewModels
var checkout = new MenuItem();
checkout.Header = new Views.NameHighlightedTextBlock("BranchCM.Checkout", branch.Name);
checkout.Icon = App.CreateMenuIcon("Icons.Check");
checkout.Click += (o, e) =>
checkout.Click += (_, e) =>
{
CheckoutBranch(branch);
e.Handled = true;
@ -1289,7 +1296,7 @@ namespace SourceGit.ViewModels
fastForward.Header = new Views.NameHighlightedTextBlock("BranchCM.FastForward", upstream.FriendlyName);
fastForward.Icon = App.CreateMenuIcon("Icons.FastForward");
fastForward.IsEnabled = !string.IsNullOrEmpty(branch.UpstreamTrackStatus) && branch.UpstreamTrackStatus.IndexOf('↑') < 0;
fastForward.Click += (o, e) =>
fastForward.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowAndStartPopup(new FastForwardWithoutCheckout(this, branch, upstream));
@ -1306,7 +1313,7 @@ namespace SourceGit.ViewModels
var merge = new MenuItem();
merge.Header = new Views.NameHighlightedTextBlock("BranchCM.Merge", branch.Name, current.Name);
merge.Icon = App.CreateMenuIcon("Icons.Merge");
merge.Click += (o, e) =>
merge.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Merge(this, branch.Name, current.Name));
@ -1316,7 +1323,7 @@ namespace SourceGit.ViewModels
var rebase = new MenuItem();
rebase.Header = new Views.NameHighlightedTextBlock("BranchCM.Rebase", current.Name, branch.Name);
rebase.Icon = App.CreateMenuIcon("Icons.Rebase");
rebase.Click += (o, e) =>
rebase.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Rebase(this, current, branch));
@ -1331,7 +1338,7 @@ namespace SourceGit.ViewModels
var compareWithWorktree = new MenuItem();
compareWithWorktree.Header = App.Text("BranchCM.CompareWithWorktree");
compareWithWorktree.Icon = App.CreateMenuIcon("Icons.Compare");
compareWithWorktree.Click += (o, e) =>
compareWithWorktree.Click += (_, _) =>
{
SearchResultSelectedCommit = null;
@ -1362,7 +1369,7 @@ namespace SourceGit.ViewModels
var finish = new MenuItem();
finish.Header = new Views.NameHighlightedTextBlock("BranchCM.Finish", branch.Name);
finish.Icon = App.CreateMenuIcon("Icons.GitFlow");
finish.Click += (o, e) =>
finish.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new GitFlowFinish(this, branch, detect.Type, detect.Prefix));
@ -1375,7 +1382,7 @@ namespace SourceGit.ViewModels
var rename = new MenuItem();
rename.Header = new Views.NameHighlightedTextBlock("BranchCM.Rename", branch.Name);
rename.Icon = App.CreateMenuIcon("Icons.Rename");
rename.Click += (o, e) =>
rename.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new RenameBranch(this, branch));
@ -1386,7 +1393,7 @@ namespace SourceGit.ViewModels
delete.Header = new Views.NameHighlightedTextBlock("BranchCM.Delete", branch.Name);
delete.Icon = App.CreateMenuIcon("Icons.Clear");
delete.IsEnabled = !branch.IsCurrent;
delete.Click += (o, e) =>
delete.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new DeleteBranch(this, branch));
@ -1396,7 +1403,7 @@ namespace SourceGit.ViewModels
var createBranch = new MenuItem();
createBranch.Icon = App.CreateMenuIcon("Icons.Branch.Add");
createBranch.Header = App.Text("CreateBranch");
createBranch.Click += (o, e) =>
createBranch.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new CreateBranch(this, branch));
@ -1406,7 +1413,7 @@ namespace SourceGit.ViewModels
var createTag = new MenuItem();
createTag.Icon = App.CreateMenuIcon("Icons.Tag.Add");
createTag.Header = App.Text("CreateTag");
createTag.Click += (o, e) =>
createTag.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new CreateTag(this, branch));
@ -1442,7 +1449,7 @@ namespace SourceGit.ViewModels
if (branch.Upstream == b.FullName)
target.Icon = App.CreateMenuIcon("Icons.Check");
target.Click += (o, e) =>
target.Click += (_, e) =>
{
if (Commands.Branch.SetUpstream(_fullpath, branch.Name, upstream))
Task.Run(RefreshBranches);
@ -1471,7 +1478,7 @@ namespace SourceGit.ViewModels
var archive = new MenuItem();
archive.Icon = App.CreateMenuIcon("Icons.Archive");
archive.Header = App.Text("Archive");
archive.Click += (o, e) =>
archive.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Archive(this, branch));
@ -1483,7 +1490,7 @@ namespace SourceGit.ViewModels
var copy = new MenuItem();
copy.Header = App.Text("BranchCM.CopyName");
copy.Icon = App.CreateMenuIcon("Icons.Copy");
copy.Click += (o, e) =>
copy.Click += (_, e) =>
{
App.CopyText(branch.Name);
e.Handled = true;
@ -1502,7 +1509,7 @@ namespace SourceGit.ViewModels
var visit = new MenuItem();
visit.Header = App.Text("RemoteCM.OpenInBrowser");
visit.Icon = App.CreateMenuIcon("Icons.OpenWith");
visit.Click += (o, e) =>
visit.Click += (_, e) =>
{
Native.OS.OpenBrowser(visitURL);
e.Handled = true;
@ -1515,7 +1522,7 @@ namespace SourceGit.ViewModels
var fetch = new MenuItem();
fetch.Header = App.Text("RemoteCM.Fetch");
fetch.Icon = App.CreateMenuIcon("Icons.Fetch");
fetch.Click += (o, e) =>
fetch.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowAndStartPopup(new Fetch(this, remote));
@ -1525,7 +1532,7 @@ namespace SourceGit.ViewModels
var prune = new MenuItem();
prune.Header = App.Text("RemoteCM.Prune");
prune.Icon = App.CreateMenuIcon("Icons.Clean");
prune.Click += (o, e) =>
prune.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowAndStartPopup(new PruneRemote(this, remote));
@ -1535,7 +1542,7 @@ namespace SourceGit.ViewModels
var edit = new MenuItem();
edit.Header = App.Text("RemoteCM.Edit");
edit.Icon = App.CreateMenuIcon("Icons.Edit");
edit.Click += (o, e) =>
edit.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new EditRemote(this, remote));
@ -1545,7 +1552,7 @@ namespace SourceGit.ViewModels
var delete = new MenuItem();
delete.Header = App.Text("RemoteCM.Delete");
delete.Icon = App.CreateMenuIcon("Icons.Clear");
delete.Click += (o, e) =>
delete.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new DeleteRemote(this, remote));
@ -1555,7 +1562,7 @@ namespace SourceGit.ViewModels
var copy = new MenuItem();
copy.Header = App.Text("RemoteCM.CopyURL");
copy.Icon = App.CreateMenuIcon("Icons.Copy");
copy.Click += (o, e) =>
copy.Click += (_, e) =>
{
App.CopyText(remote.URL);
e.Handled = true;
@ -1580,7 +1587,7 @@ namespace SourceGit.ViewModels
var checkout = new MenuItem();
checkout.Header = new Views.NameHighlightedTextBlock("BranchCM.Checkout", name);
checkout.Icon = App.CreateMenuIcon("Icons.Check");
checkout.Click += (o, e) =>
checkout.Click += (_, e) =>
{
CheckoutBranch(branch);
e.Handled = true;
@ -1593,7 +1600,7 @@ namespace SourceGit.ViewModels
var pull = new MenuItem();
pull.Header = new Views.NameHighlightedTextBlock("BranchCM.PullInto", name, current.Name);
pull.Icon = App.CreateMenuIcon("Icons.Pull");
pull.Click += (o, e) =>
pull.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Pull(this, branch));
@ -1603,7 +1610,7 @@ namespace SourceGit.ViewModels
var merge = new MenuItem();
merge.Header = new Views.NameHighlightedTextBlock("BranchCM.Merge", name, current.Name);
merge.Icon = App.CreateMenuIcon("Icons.Merge");
merge.Click += (o, e) =>
merge.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Merge(this, name, current.Name));
@ -1613,7 +1620,7 @@ namespace SourceGit.ViewModels
var rebase = new MenuItem();
rebase.Header = new Views.NameHighlightedTextBlock("BranchCM.Rebase", current.Name, name);
rebase.Icon = App.CreateMenuIcon("Icons.Rebase");
rebase.Click += (o, e) =>
rebase.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Rebase(this, current, branch));
@ -1632,7 +1639,7 @@ namespace SourceGit.ViewModels
var compareWithWorktree = new MenuItem();
compareWithWorktree.Header = App.Text("BranchCM.CompareWithWorktree");
compareWithWorktree.Icon = App.CreateMenuIcon("Icons.Compare");
compareWithWorktree.Click += (o, e) =>
compareWithWorktree.Click += (_, _) =>
{
SearchResultSelectedCommit = null;
@ -1660,7 +1667,7 @@ namespace SourceGit.ViewModels
var delete = new MenuItem();
delete.Header = new Views.NameHighlightedTextBlock("BranchCM.Delete", name);
delete.Icon = App.CreateMenuIcon("Icons.Clear");
delete.Click += (o, e) =>
delete.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new DeleteBranch(this, branch));
@ -1670,7 +1677,7 @@ namespace SourceGit.ViewModels
var createBranch = new MenuItem();
createBranch.Icon = App.CreateMenuIcon("Icons.Branch.Add");
createBranch.Header = App.Text("CreateBranch");
createBranch.Click += (o, e) =>
createBranch.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new CreateBranch(this, branch));
@ -1680,7 +1687,7 @@ namespace SourceGit.ViewModels
var createTag = new MenuItem();
createTag.Icon = App.CreateMenuIcon("Icons.Tag.Add");
createTag.Header = App.Text("CreateTag");
createTag.Click += (o, e) =>
createTag.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new CreateTag(this, branch));
@ -1690,7 +1697,7 @@ namespace SourceGit.ViewModels
var archive = new MenuItem();
archive.Icon = App.CreateMenuIcon("Icons.Archive");
archive.Header = App.Text("Archive");
archive.Click += (o, e) =>
archive.Click += (_, e) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Archive(this, branch));
@ -1700,7 +1707,7 @@ namespace SourceGit.ViewModels
var copy = new MenuItem();
copy.Header = App.Text("BranchCM.CopyName");
copy.Icon = App.CreateMenuIcon("Icons.Copy");
copy.Click += (o, e) =>
copy.Click += (_, e) =>
{
App.CopyText(name);
e.Handled = true;
@ -1722,7 +1729,7 @@ namespace SourceGit.ViewModels
var createBranch = new MenuItem();
createBranch.Icon = App.CreateMenuIcon("Icons.Branch.Add");
createBranch.Header = App.Text("CreateBranch");
createBranch.Click += (o, ev) =>
createBranch.Click += (_, ev) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new CreateBranch(this, tag));
@ -1733,7 +1740,7 @@ namespace SourceGit.ViewModels
pushTag.Header = new Views.NameHighlightedTextBlock("TagCM.Push", tag.Name);
pushTag.Icon = App.CreateMenuIcon("Icons.Push");
pushTag.IsEnabled = Remotes.Count > 0;
pushTag.Click += (o, ev) =>
pushTag.Click += (_, ev) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new PushTag(this, tag));
@ -1743,7 +1750,7 @@ namespace SourceGit.ViewModels
var deleteTag = new MenuItem();
deleteTag.Header = new Views.NameHighlightedTextBlock("TagCM.Delete", tag.Name);
deleteTag.Icon = App.CreateMenuIcon("Icons.Clear");
deleteTag.Click += (o, ev) =>
deleteTag.Click += (_, ev) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new DeleteTag(this, tag));
@ -1753,7 +1760,7 @@ namespace SourceGit.ViewModels
var archive = new MenuItem();
archive.Icon = App.CreateMenuIcon("Icons.Archive");
archive.Header = App.Text("Archive");
archive.Click += (o, ev) =>
archive.Click += (_, ev) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new Archive(this, tag));
@ -1763,7 +1770,7 @@ namespace SourceGit.ViewModels
var copy = new MenuItem();
copy.Header = App.Text("TagCM.Copy");
copy.Icon = App.CreateMenuIcon("Icons.Copy");
copy.Click += (o, ev) =>
copy.Click += (_, ev) =>
{
App.CopyText(tag.Name);
ev.Handled = true;
@ -1786,7 +1793,7 @@ namespace SourceGit.ViewModels
var open = new MenuItem();
open.Header = App.Text("Submodule.Open");
open.Icon = App.CreateMenuIcon("Icons.Folder.Open");
open.Click += (o, ev) =>
open.Click += (_, ev) =>
{
OpenSubmodule(submodule);
ev.Handled = true;
@ -1795,7 +1802,7 @@ namespace SourceGit.ViewModels
var copy = new MenuItem();
copy.Header = App.Text("Submodule.CopyPath");
copy.Icon = App.CreateMenuIcon("Icons.Copy");
copy.Click += (o, ev) =>
copy.Click += (_, ev) =>
{
App.CopyText(submodule);
ev.Handled = true;
@ -1804,7 +1811,7 @@ namespace SourceGit.ViewModels
var rm = new MenuItem();
rm.Header = App.Text("Submodule.Remove");
rm.Icon = App.CreateMenuIcon("Icons.Clear");
rm.Click += (o, ev) =>
rm.Click += (_, ev) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new DeleteSubmodule(this, submodule));
@ -1827,7 +1834,7 @@ namespace SourceGit.ViewModels
var unlock = new MenuItem();
unlock.Header = App.Text("Worktree.Unlock");
unlock.Icon = App.CreateMenuIcon("Icons.Unlock");
unlock.Click += (o, ev) =>
unlock.Click += (_, ev) =>
{
SetWatcherEnabled(false);
var succ = new Commands.Worktree(_fullpath).Unlock(worktree.FullPath);
@ -1843,7 +1850,7 @@ namespace SourceGit.ViewModels
var loc = new MenuItem();
loc.Header = App.Text("Worktree.Lock");
loc.Icon = App.CreateMenuIcon("Icons.Lock");
loc.Click += (o, ev) =>
loc.Click += (_, ev) =>
{
SetWatcherEnabled(false);
var succ = new Commands.Worktree(_fullpath).Lock(worktree.FullPath);
@ -1858,7 +1865,7 @@ namespace SourceGit.ViewModels
var remove = new MenuItem();
remove.Header = App.Text("Worktree.Remove");
remove.Icon = App.CreateMenuIcon("Icons.Clear");
remove.Click += (o, ev) =>
remove.Click += (_, ev) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new RemoveWorktree(this, worktree));
@ -1869,7 +1876,7 @@ namespace SourceGit.ViewModels
var copy = new MenuItem();
copy.Header = App.Text("Worktree.CopyPath");
copy.Icon = App.CreateMenuIcon("Icons.Copy");
copy.Click += (o, e) =>
copy.Click += (_, e) =>
{
App.CopyText(worktree.FullPath);
e.Handled = true;
@ -1899,12 +1906,16 @@ namespace SourceGit.ViewModels
target.Icon = App.CreateMenuIcon(b.IsCurrent ? "Icons.Check" : "Icons.Branch");
target.Click += (_, e) =>
{
var topLevel = App.GetTopLevel() as Window;
if (topLevel == null)
return;
var wnd = new Views.BranchCompare()
{
DataContext = new BranchCompare(FullPath, branch, dup)
};
wnd.Show(App.GetTopLevel() as Window);
wnd.Show(topLevel);
e.Handled = true;
};

View file

@ -209,8 +209,8 @@ namespace SourceGit.ViewModels
}
}
private string _repo = string.Empty;
private string _endPoint = string.Empty;
private string _repo;
private string _endPoint;
private List<Models.Change> _changes = null;
private List<Models.Change> _visibleChanges = null;
private List<Models.Change> _selectedChanges = null;

View file

@ -45,8 +45,8 @@ namespace SourceGit.ViewModels
});
}
private readonly Repository _repo = null;
private string _message = string.Empty;
private string _oldMessage = string.Empty;
private readonly Repository _repo;
private string _message;
private string _oldMessage;
}
}

View file

@ -49,7 +49,7 @@ namespace SourceGit.ViewModels
});
}
private readonly Repository _repo = null;
private string _message = string.Empty;
private readonly Repository _repo;
private string _message;
}
}

View file

@ -5,7 +5,6 @@ namespace SourceGit.ViewModels
{
public class StashChanges : Popup
{
public string Message
{
get;

View file

@ -119,7 +119,7 @@ namespace SourceGit.ViewModels
var apply = new MenuItem();
apply.Header = App.Text("StashCM.Apply");
apply.Click += (o, ev) =>
apply.Click += (_, ev) =>
{
Task.Run(() => new Commands.Stash(_repo.FullPath).Apply(stash.Name));
ev.Handled = true;
@ -127,7 +127,7 @@ namespace SourceGit.ViewModels
var pop = new MenuItem();
pop.Header = App.Text("StashCM.Pop");
pop.Click += (o, ev) =>
pop.Click += (_, ev) =>
{
Task.Run(() => new Commands.Stash(_repo.FullPath).Pop(stash.Name));
ev.Handled = true;
@ -135,7 +135,7 @@ namespace SourceGit.ViewModels
var drop = new MenuItem();
drop.Header = App.Text("StashCM.Drop");
drop.Click += (o, ev) =>
drop.Click += (_, ev) =>
{
if (PopupHost.CanCreatePopup())
PopupHost.ShowPopup(new DropStash(_repo.FullPath, stash));

View file

@ -32,11 +32,9 @@ namespace SourceGit.ViewModels
public Statistics(string repo)
{
_repo = repo;
Task.Run(() =>
{
var result = new Commands.Statistics(_repo).Result();
var result = new Commands.Statistics(repo).Result();
Dispatcher.UIThread.Invoke(() =>
{
_data = result;
@ -65,7 +63,6 @@ namespace SourceGit.ViewModels
}
}
private readonly string _repo = string.Empty;
private bool _isLoading = true;
private Models.Statistics _data = null;
private Models.StatisticsReport _selectedReport = null;

View file

@ -6,7 +6,7 @@ namespace SourceGit.ViewModels
{
public class TwoSideTextDiff : ObservableObject
{
public string File { get; set; } = string.Empty;
public string File { get; set; }
public List<Models.TextDiffLine> Old { get; set; } = new List<Models.TextDiffLine>();
public List<Models.TextDiffLine> New { get; set; } = new List<Models.TextDiffLine>();
public int MaxLineNumber = 0;

View file

@ -1,5 +1,5 @@
using System;
using Avalonia;
using Avalonia.Collections;
using Avalonia.Controls;
using Avalonia.Controls.ApplicationLifetimes;
@ -49,13 +49,10 @@ namespace SourceGit.ViewModels
return;
}
if (PopupHost.CanCreatePopup())
if (PopupHost.CanCreatePopup() &&
Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime { MainWindow: { DataContext: Launcher launcher } })
{
if (App.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
{
var launcher = desktop.MainWindow.DataContext as Launcher;
PopupHost.ShowPopup(new Clone(launcher));
}
PopupHost.ShowPopup(new Clone(launcher));
}
}
@ -98,9 +95,9 @@ namespace SourceGit.ViewModels
openAll.Icon = App.CreateMenuIcon("Icons.Folder.Open");
openAll.Click += (_, e) =>
{
if (App.Current.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime desktop)
if (PopupHost.CanCreatePopup() &&
Application.Current?.ApplicationLifetime is IClassicDesktopStyleApplicationLifetime { MainWindow: { DataContext: Launcher launcher } })
{
var launcher = desktop.MainWindow.DataContext as Launcher;
OpenAllInNode(launcher, node);
}

View file

@ -44,7 +44,7 @@ namespace SourceGit.ViewModels
if (_repo.IncludeUntracked != value)
{
_repo.IncludeUntracked = value;
OnPropertyChanged(nameof(IncludeUntracked));
OnPropertyChanged();
}
}
}
@ -286,12 +286,16 @@ namespace SourceGit.ViewModels
public void OpenAssumeUnchanged()
{
var toplevel = App.GetTopLevel() as Window;
if (toplevel == null)
return;
var dialog = new Views.AssumeUnchangedManager()
{
DataContext = new AssumeUnchangedManager(_repo.FullPath)
};
dialog.ShowDialog(App.GetTopLevel() as Window);
dialog.ShowDialog(toplevel);
}
public void StageSelected()
@ -634,7 +638,7 @@ namespace SourceGit.ViewModels
lfsTrackByExtension.Header = App.Text("GitLFS.TrackByExtension", extension);
lfsTrackByExtension.Click += async (_, e) =>
{
var succ = await Task.Run(() => new Commands.LFS(_repo.FullPath).Track("*" + extension, false));
var succ = await Task.Run(() => new Commands.LFS(_repo.FullPath).Track("*" + extension));
if (succ)
App.SendNotification(_repo.FullPath, $"Tracking all *{extension} files successfully!");
@ -652,7 +656,7 @@ namespace SourceGit.ViewModels
lfsLock.IsEnabled = _repo.Remotes.Count > 0;
if (_repo.Remotes.Count == 1)
{
lfsLock.Click += async (o, e) =>
lfsLock.Click += async (_, e) =>
{
var succ = await Task.Run(() => new Commands.LFS(_repo.FullPath).Lock(_repo.Remotes[0].Name, change.Path));
if (succ)
@ -668,7 +672,7 @@ namespace SourceGit.ViewModels
var remoteName = remote.Name;
var lockRemote = new MenuItem();
lockRemote.Header = remoteName;
lockRemote.Click += async (o, e) =>
lockRemote.Click += async (_, e) =>
{
var succ = await Task.Run(() => new Commands.LFS(_repo.FullPath).Lock(remoteName, change.Path));
if (succ)
@ -687,7 +691,7 @@ namespace SourceGit.ViewModels
lfsUnlock.IsEnabled = _repo.Remotes.Count > 0;
if (_repo.Remotes.Count == 1)
{
lfsUnlock.Click += async (o, e) =>
lfsUnlock.Click += async (_, e) =>
{
var succ = await Task.Run(() => new Commands.LFS(_repo.FullPath).Unlock(_repo.Remotes[0].Name, change.Path, false));
if (succ)
@ -703,7 +707,7 @@ namespace SourceGit.ViewModels
var remoteName = remote.Name;
var unlockRemote = new MenuItem();
unlockRemote.Header = remoteName;
unlockRemote.Click += async (o, e) =>
unlockRemote.Click += async (_, e) =>
{
var succ = await Task.Run(() => new Commands.LFS(_repo.FullPath).Unlock(remoteName, change.Path, false));
if (succ)
@ -823,7 +827,7 @@ namespace SourceGit.ViewModels
var patch = new MenuItem();
patch.Header = App.Text("FileCM.SaveAsPatch");
patch.Icon = App.CreateMenuIcon("Icons.Diff");
patch.Click += async (o, e) =>
patch.Click += async (_, e) =>
{
var topLevel = App.GetTopLevel();
if (topLevel == null)
@ -869,7 +873,7 @@ namespace SourceGit.ViewModels
explore.IsEnabled = File.Exists(path) || Directory.Exists(path);
explore.Header = App.Text("RevealFile");
explore.Icon = App.CreateMenuIcon("Icons.Folder.Open");
explore.Click += (o, e) =>
explore.Click += (_, e) =>
{
Native.OS.OpenInFileManager(path, true);
e.Handled = true;
@ -888,7 +892,7 @@ namespace SourceGit.ViewModels
var unstage = new MenuItem();
unstage.Header = App.Text("FileCM.Unstage");
unstage.Icon = App.CreateMenuIcon("Icons.File.Remove");
unstage.Click += (o, e) =>
unstage.Click += (_, e) =>
{
UnstageChanges(_selectedStaged);
e.Handled = true;
@ -917,7 +921,7 @@ namespace SourceGit.ViewModels
var patch = new MenuItem();
patch.Header = App.Text("FileCM.SaveAsPatch");
patch.Icon = App.CreateMenuIcon("Icons.Diff");
patch.Click += async (o, e) =>
patch.Click += async (_, e) =>
{
var topLevel = App.GetTopLevel();
if (topLevel == null)
@ -942,7 +946,7 @@ namespace SourceGit.ViewModels
var copyPath = new MenuItem();
copyPath.Header = App.Text("CopyPath");
copyPath.Icon = App.CreateMenuIcon("Icons.Copy");
copyPath.Click += (o, e) =>
copyPath.Click += (_, e) =>
{
App.CopyText(change.Path);
e.Handled = true;
@ -979,7 +983,7 @@ namespace SourceGit.ViewModels
lfsLock.IsEnabled = _repo.Remotes.Count > 0;
if (_repo.Remotes.Count == 1)
{
lfsLock.Click += async (o, e) =>
lfsLock.Click += async (_, e) =>
{
var succ = await Task.Run(() => new Commands.LFS(_repo.FullPath).Lock(_repo.Remotes[0].Name, change.Path));
if (succ)
@ -995,7 +999,7 @@ namespace SourceGit.ViewModels
var remoteName = remote.Name;
var lockRemote = new MenuItem();
lockRemote.Header = remoteName;
lockRemote.Click += async (o, e) =>
lockRemote.Click += async (_, e) =>
{
var succ = await Task.Run(() => new Commands.LFS(_repo.FullPath).Lock(remoteName, change.Path));
if (succ)
@ -1014,7 +1018,7 @@ namespace SourceGit.ViewModels
lfsUnlock.IsEnabled = _repo.Remotes.Count > 0;
if (_repo.Remotes.Count == 1)
{
lfsUnlock.Click += async (o, e) =>
lfsUnlock.Click += async (_, e) =>
{
var succ = await Task.Run(() => new Commands.LFS(_repo.FullPath).Unlock(_repo.Remotes[0].Name, change.Path, false));
if (succ)
@ -1030,7 +1034,7 @@ namespace SourceGit.ViewModels
var remoteName = remote.Name;
var unlockRemote = new MenuItem();
unlockRemote.Header = remoteName;
unlockRemote.Click += async (o, e) =>
unlockRemote.Click += async (_, e) =>
{
var succ = await Task.Run(() => new Commands.LFS(_repo.FullPath).Unlock(remoteName, change.Path, false));
if (succ)
@ -1055,7 +1059,7 @@ namespace SourceGit.ViewModels
var unstage = new MenuItem();
unstage.Header = App.Text("FileCM.UnstageMulti", _selectedStaged.Count);
unstage.Icon = App.CreateMenuIcon("Icons.File.Remove");
unstage.Click += (o, e) =>
unstage.Click += (_, e) =>
{
UnstageChanges(_selectedStaged);
e.Handled = true;
@ -1140,7 +1144,7 @@ namespace SourceGit.ViewModels
var item = new MenuItem();
item.Header = dump;
item.Click += (o, e) =>
item.Click += (_, e) =>
{
CommitMessage = dump;
e.Handled = true;