mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-22 17:24:27 +08:00
0.6.7.2
文档组件优化
This commit is contained in:
@@ -64,6 +64,7 @@ public sealed class ComponentSettingsSnapshot
|
||||
|
||||
public string Stcn24ForumSourceType { get; set; } = Stcn24ForumSourceTypes.LatestCreated;
|
||||
|
||||
|
||||
public ComponentSettingsSnapshot Clone()
|
||||
{
|
||||
var clone = (ComponentSettingsSnapshot)MemberwiseClone();
|
||||
@@ -91,6 +92,9 @@ public sealed class ComponentSettingsSnapshot
|
||||
clone.WorldClockTimeZoneIds = WorldClockTimeZoneIds is { Count: > 0 }
|
||||
? new List<string>(WorldClockTimeZoneIds)
|
||||
: [];
|
||||
clone.OfficeRecentDocumentsEnabledSources = OfficeRecentDocumentsEnabledSources is not null
|
||||
? new List<string>(OfficeRecentDocumentsEnabledSources)
|
||||
: null;
|
||||
|
||||
return clone;
|
||||
}
|
||||
|
||||
53
LanMountainDesktop/Models/OfficeRecentDocumentSourceTypes.cs
Normal file
53
LanMountainDesktop/Models/OfficeRecentDocumentSourceTypes.cs
Normal file
@@ -0,0 +1,53 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
|
||||
namespace LanMountainDesktop.Models;
|
||||
|
||||
public static class OfficeRecentDocumentSourceTypes
|
||||
{
|
||||
public const string Registry = "registry";
|
||||
public const string RecentFolders = "recent_folders";
|
||||
public const string JumpLists = "jump_lists";
|
||||
|
||||
public static IReadOnlyList<string> SupportedValues { get; } =
|
||||
[
|
||||
Registry,
|
||||
RecentFolders,
|
||||
JumpLists
|
||||
];
|
||||
|
||||
public static IReadOnlyList<string> DefaultValues => SupportedValues;
|
||||
|
||||
public static IReadOnlyList<string> NormalizeValues(IEnumerable<string>? values, bool useDefaultWhenEmpty)
|
||||
{
|
||||
if (values is null)
|
||||
{
|
||||
return useDefaultWhenEmpty ? DefaultValues : Array.Empty<string>();
|
||||
}
|
||||
|
||||
var normalized = values
|
||||
.Select(NormalizeValue)
|
||||
.OfType<string>()
|
||||
.Distinct(StringComparer.OrdinalIgnoreCase)
|
||||
.ToArray();
|
||||
|
||||
if (normalized.Length == 0 && useDefaultWhenEmpty)
|
||||
{
|
||||
return DefaultValues;
|
||||
}
|
||||
|
||||
return normalized;
|
||||
}
|
||||
|
||||
private static string? NormalizeValue(string? value)
|
||||
{
|
||||
return value?.Trim().ToLowerInvariant() switch
|
||||
{
|
||||
Registry => Registry,
|
||||
RecentFolders => RecentFolders,
|
||||
JumpLists => JumpLists,
|
||||
_ => null
|
||||
};
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user