fix<Bookmark>: bookmark changes will not be saved when there's no welcome page

This commit is contained in:
leo 2023-08-28 10:59:46 +08:00
parent 6e624797ae
commit afe0220a46
4 changed files with 19 additions and 15 deletions

View file

@ -27,11 +27,20 @@ namespace SourceGit.Models {
public string Name { get; set; } = "";
public string Path { get; set; } = "";
public string GitDir { get; set; } = "";
public int Bookmark { get; set; } = 0;
public long LastOpenTime { get; set; } = 0;
public List<SubTree> SubTrees { get; set; } = new List<SubTree>();
public List<string> Filters { get; set; } = new List<string>();
public List<string> CommitMessages { get; set; } = new List<string>();
public int Bookmark {
get { return bookmark; }
set {
if (value != bookmark) {
bookmark = value;
Watcher.NotifyBookmarkChanged(this);
}
}
}
#endregion
#region PROPERTIES_RUNTIME
@ -122,5 +131,6 @@ namespace SourceGit.Models {
}
private readonly object updateFilterLock = new object();
private int bookmark = 0;
}
}

View file

@ -103,12 +103,11 @@ namespace SourceGit.Models {
}
/// <summary>
/// 设置仓库标签变化
/// 通知仓库标签变化
/// </summary>
/// <param name="repo"></param>
/// <param name="bookmark"></param>
public static void SetBookmark(string repo, int bookmark) {
BookmarkChanged?.Invoke(repo, bookmark);
public static void NotifyBookmarkChanged(Repository repo) {
BookmarkChanged?.Invoke(repo.Path, repo.Bookmark);
}
/// <summary>

View file

@ -364,7 +364,8 @@ namespace SourceGit.Views.Widgets {
var refIdx = i;
mark.Click += (o, ev) => {
Models.Watcher.SetBookmark(tab.Id, refIdx);
var repo = Models.Preference.Instance.FindRepository(tab.Id);
if (repo != null) repo.Bookmark = refIdx;
ev.Handled = true;
};
bookmark.Items.Add(mark);

View file

@ -18,15 +18,9 @@ namespace SourceGit.Views.Widgets {
public Welcome() {
InitializeComponent();
UpdateVisibles();
Models.Theme.AddListener(this, UpdateVisibles);
Models.Watcher.BookmarkChanged += (repoPath, bookmark) => {
var repo = Models.Preference.Instance.FindRepository(repoPath);
if (repo != null) {
repo.Bookmark = bookmark;
UpdateVisibles();
}
};
Models.Theme.AddListener(this, UpdateVisibles);
Models.Watcher.BookmarkChanged += (_, __) => { UpdateVisibles(); };
}
#region FUNC_EVENTS
@ -148,7 +142,7 @@ namespace SourceGit.Views.Widgets {
var refIdx = i;
mark.Click += (o, ev) => {
Models.Watcher.SetBookmark(repo.Path, refIdx);
repo.Bookmark = refIdx;
ev.Handled = true;
};
bookmark.Items.Add(mark);