enhance: supports word wrap in text diff view

This commit is contained in:
leo 2024-06-04 20:19:49 +08:00
parent d2ea90be23
commit 802b429cc8
10 changed files with 37 additions and 30 deletions

View file

@ -58,12 +58,6 @@ namespace SourceGit.ViewModels
private set => SetProperty(ref _content, value);
}
public Vector SyncScrollOffset
{
get => _syncScrollOffset;
set => SetProperty(ref _syncScrollOffset, value);
}
public int Unified
{
get => _unified;
@ -203,6 +197,9 @@ namespace SourceGit.ViewModels
Dispatcher.UIThread.Post(() =>
{
if (_content is Models.TextDiff old && rs is Models.TextDiff cur && old.File == cur.File)
cur.SyncScrollOffset = old.SyncScrollOffset;
FileModeChange = latest.FileModeChange;
Content = rs;
IsTextDiff = rs is Models.TextDiff;
@ -229,7 +226,6 @@ namespace SourceGit.ViewModels
private bool _isLoading = true;
private bool _isTextDiff = false;
private object _content = null;
private Vector _syncScrollOffset = Vector.Zero;
private int _unified = 4;
}
}

View file

@ -164,6 +164,12 @@ namespace SourceGit.ViewModels
set => SetProperty(ref _useSyntaxHighlighting, value);
}
public bool EnableDiffViewWordWrap
{
get => _enableDiffViewWordWrap;
set => SetProperty(ref _enableDiffViewWordWrap, value);
}
public Models.ChangeViewMode UnstagedChangeViewMode
{
get => _unstagedChangeViewMode;
@ -526,6 +532,7 @@ namespace SourceGit.ViewModels
private bool _useTwoColumnsLayoutInHistories = false;
private bool _useSideBySideDiff = false;
private bool _useSyntaxHighlighting = false;
private bool _enableDiffViewWordWrap = false;
private Models.ChangeViewMode _unstagedChangeViewMode = Models.ChangeViewMode.List;
private Models.ChangeViewMode _stagedChangeViewMode = Models.ChangeViewMode.List;

View file

@ -273,10 +273,6 @@ namespace SourceGit.ViewModels
Staged = staged;
_isLoadingData = false;
var scrollOffset = Vector.Zero;
if (_detailContext is DiffContext old)
scrollOffset = old.SyncScrollOffset;
if (selectedUnstaged.Count > 0)
SelectedUnstaged = selectedUnstaged;
else if (selectedStaged.Count > 0)
@ -284,9 +280,6 @@ namespace SourceGit.ViewModels
else
SetDetail(null);
if (_detailContext is DiffContext cur)
cur.SyncScrollOffset = scrollOffset;
// Try to load merge message from MERGE_MSG
if (string.IsNullOrEmpty(_commitMessage))
{