"Use buffer" profile settings implemented. (#680)

This commit is contained in:
Aleksandar Pesic authored and GitHub committed 2020-03-23 18:54:06 +01:00
1 parent 7b18037862
commit 596eee712b
13 files changed
+123 -5

No files matched your search

@@ -154,6 +154,14 @@ namespace FluentTerminal.App.ViewModels.Profiles
set => Set(ref _useConPty, value);
}
private bool _useBuffer;
public bool UseBuffer
{
get => _useBuffer;
set => Set(ref _useBuffer, value);
}
#endregion Properties
#region Constructor
@@ -215,6 +223,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
private void Initialize(ShellProfile profile)
{
UseConPty = profile.UseConPty;
UseBuffer = profile.UseBuffer;
TerminalThemeId = profile.TerminalThemeId;
TabThemeId = profile.TabThemeId;
}
@@ -227,6 +236,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
protected virtual Task CopyToProfileAsync(ShellProfile profile)
{
profile.UseConPty = _useConPty;
profile.UseBuffer = _useBuffer;
profile.TerminalThemeId = _terminalThemeId;
profile.TabThemeId = _tabThemeId;
return Task.CompletedTask;
@@ -244,6 +254,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
public virtual bool HasChanges()
{
return Model.UseConPty != _useConPty ||
Model.UseBuffer != _useBuffer ||
!Model.TerminalThemeId.Equals(_terminalThemeId) ||
Model.TabThemeId != _tabThemeId;
}
@@ -279,6 +290,7 @@ namespace FluentTerminal.App.ViewModels.Profiles
#region Links/shortcuts related
private const string UseConPtyQueryStringName = "conpty";
private const string UseBufferQueryStringName = "buffer";
private const string TerminalThemeIdQueryStringName = "theme";
private const string TabThemeIdQueryStringName = "tab";
@@ -318,8 +330,7 @@ URL={0}
public string GetBaseQueryString()
{
var queryString =
$"{UseConPtyQueryStringName}={_useConPty}";
var queryString = $"{UseConPtyQueryStringName}={_useConPty}&{UseBufferQueryStringName}={_useBuffer}";
if (_tabThemeId != TabThemes.First().Id)
{
@@ -349,6 +360,14 @@ URL={0}
UseConPty = useConPty;
}
keyValue = queryStringParams.FirstOrDefault(t =>
UseBufferQueryStringName.Equals(t.Item1, StringComparison.OrdinalIgnoreCase));
if (!string.IsNullOrEmpty(keyValue?.Item2) && bool.TryParse(keyValue.Item2?.ToLower(), out bool useBuffer))
{
UseConPty = useBuffer;
}
keyValue = queryStringParams.FirstOrDefault(t =>
TabThemeIdQueryStringName.Equals(t.Item1, StringComparison.OrdinalIgnoreCase));