mirror of
https://github.com/wwiinnddyy/LanMountainDesktop.git
synced 2026-06-23 01:44:26 +08:00
0.6.8
小黑板数据持久化。
This commit is contained in:
@@ -58,12 +58,15 @@ public sealed class ComponentSettingsSnapshot
|
||||
|
||||
public int WeatherAutoRefreshIntervalMinutes { get; set; } = 12;
|
||||
|
||||
public int WhiteboardNoteRetentionDays { get; set; } = 15;
|
||||
|
||||
public bool Stcn24ForumAutoRefreshEnabled { get; set; } = true;
|
||||
|
||||
public int Stcn24ForumAutoRefreshIntervalMinutes { get; set; } = 20;
|
||||
|
||||
public string Stcn24ForumSourceType { get; set; } = Stcn24ForumSourceTypes.LatestCreated;
|
||||
|
||||
public List<string>? OfficeRecentDocumentsEnabledSources { get; set; }
|
||||
|
||||
public ComponentSettingsSnapshot Clone()
|
||||
{
|
||||
|
||||
23
LanMountainDesktop/Models/WhiteboardNoteRetentionPolicy.cs
Normal file
23
LanMountainDesktop/Models/WhiteboardNoteRetentionPolicy.cs
Normal file
@@ -0,0 +1,23 @@
|
||||
namespace LanMountainDesktop.Models;
|
||||
|
||||
public static class WhiteboardNoteRetentionPolicy
|
||||
{
|
||||
public const int MinimumDays = 7;
|
||||
public const int MaximumDays = 15;
|
||||
public const int DefaultDays = MaximumDays;
|
||||
|
||||
public static int NormalizeDays(int days)
|
||||
{
|
||||
if (days < MinimumDays)
|
||||
{
|
||||
return MinimumDays;
|
||||
}
|
||||
|
||||
if (days > MaximumDays)
|
||||
{
|
||||
return MaximumDays;
|
||||
}
|
||||
|
||||
return days;
|
||||
}
|
||||
}
|
||||
60
LanMountainDesktop/Models/WhiteboardNoteSnapshot.cs
Normal file
60
LanMountainDesktop/Models/WhiteboardNoteSnapshot.cs
Normal file
@@ -0,0 +1,60 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
|
||||
namespace LanMountainDesktop.Models;
|
||||
|
||||
public sealed class WhiteboardNoteSnapshot
|
||||
{
|
||||
public int Version { get; set; } = 1;
|
||||
|
||||
public DateTimeOffset SavedUtc { get; set; }
|
||||
|
||||
public List<WhiteboardStrokeSnapshot> Strokes { get; set; } = [];
|
||||
|
||||
public WhiteboardNoteSnapshot Clone()
|
||||
{
|
||||
var clone = (WhiteboardNoteSnapshot)MemberwiseClone();
|
||||
clone.Strokes = Strokes is { Count: > 0 }
|
||||
? new List<WhiteboardStrokeSnapshot>(Strokes.ConvertAll(stroke => stroke?.Clone() ?? new WhiteboardStrokeSnapshot()))
|
||||
: [];
|
||||
return clone;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class WhiteboardStrokeSnapshot
|
||||
{
|
||||
public string Color { get; set; } = "#FF000000";
|
||||
|
||||
public double InkThickness { get; set; } = 2.5d;
|
||||
|
||||
public bool IgnorePressure { get; set; } = true;
|
||||
|
||||
public List<WhiteboardStylusPointSnapshot> Points { get; set; } = [];
|
||||
|
||||
public WhiteboardStrokeSnapshot Clone()
|
||||
{
|
||||
var clone = (WhiteboardStrokeSnapshot)MemberwiseClone();
|
||||
clone.Points = Points is { Count: > 0 }
|
||||
? new List<WhiteboardStylusPointSnapshot>(Points.ConvertAll(point => point?.Clone() ?? new WhiteboardStylusPointSnapshot()))
|
||||
: [];
|
||||
return clone;
|
||||
}
|
||||
}
|
||||
|
||||
public sealed class WhiteboardStylusPointSnapshot
|
||||
{
|
||||
public double X { get; set; }
|
||||
|
||||
public double Y { get; set; }
|
||||
|
||||
public double Pressure { get; set; } = 0.5d;
|
||||
|
||||
public double Width { get; set; }
|
||||
|
||||
public double Height { get; set; }
|
||||
|
||||
public WhiteboardStylusPointSnapshot Clone()
|
||||
{
|
||||
return (WhiteboardStylusPointSnapshot)MemberwiseClone();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user