重构?
去你妈的屎山(ai说的)
This commit is contained in:
@@ -14,7 +14,7 @@ namespace Ink_Canvas.Windows.SettingsViews
|
|||||||
{
|
{
|
||||||
public partial class SettingsWindow : Window
|
public partial class SettingsWindow : Window
|
||||||
{
|
{
|
||||||
private readonly Dictionary<string, Type> _pageTypes;
|
private Dictionary<string, Type> _pageTypes;
|
||||||
private readonly Dictionary<string, object> _pages = new Dictionary<string, object>();
|
private readonly Dictionary<string, object> _pages = new Dictionary<string, object>();
|
||||||
private readonly Dictionary<string, Ink_Canvas.Plugins.PluginInfo> _pluginPages = new Dictionary<string, Ink_Canvas.Plugins.PluginInfo>();
|
private readonly Dictionary<string, Ink_Canvas.Plugins.PluginInfo> _pluginPages = new Dictionary<string, Ink_Canvas.Plugins.PluginInfo>();
|
||||||
|
|
||||||
@@ -54,17 +54,14 @@ namespace Ink_Canvas.Windows.SettingsViews
|
|||||||
// 默认选中首页
|
// 默认选中首页
|
||||||
if (NavigationViewControl.MenuItems.Count > 0)
|
if (NavigationViewControl.MenuItems.Count > 0)
|
||||||
{
|
{
|
||||||
// 首先导航到首页
|
|
||||||
NavigateToPage("HomePage");
|
NavigateToPage("HomePage");
|
||||||
// 然后选中首页菜单项
|
|
||||||
NavigationViewControl.SelectedItem = NavigationViewControl.MenuItems[0];
|
NavigationViewControl.SelectedItem = NavigationViewControl.MenuItems[0];
|
||||||
NavigationViewControl.Header = "首页";
|
NavigationViewControl.Header = "首页";
|
||||||
}
|
}
|
||||||
|
|
||||||
// 初始化标题栏边距
|
|
||||||
UpdateAppTitleBarMargin();
|
UpdateAppTitleBarMargin();
|
||||||
|
|
||||||
// 窗口生命周期事件注册
|
// 窗口生命周期事件
|
||||||
this.Loaded += (sender, e) =>
|
this.Loaded += (sender, e) =>
|
||||||
{
|
{
|
||||||
SetMaxSizeAndCenter();
|
SetMaxSizeAndCenter();
|
||||||
@@ -72,7 +69,6 @@ namespace Ink_Canvas.Windows.SettingsViews
|
|||||||
LoadPluginSettingsPages();
|
LoadPluginSettingsPages();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 窗口关闭时释放资源
|
|
||||||
this.Closed += (sender, e) =>
|
this.Closed += (sender, e) =>
|
||||||
{
|
{
|
||||||
UnregisterDpiChangedListener();
|
UnregisterDpiChangedListener();
|
||||||
@@ -81,51 +77,39 @@ namespace Ink_Canvas.Windows.SettingsViews
|
|||||||
};
|
};
|
||||||
|
|
||||||
// 修复触摸屏操作后鼠标指针消失的问题
|
// 修复触摸屏操作后鼠标指针消失的问题
|
||||||
FixTouchScreenCursorIssue();
|
this.TouchUp += (s, e) => ShowCursor(true);
|
||||||
|
this.MouseEnter += (s, e) => ShowCursor(true);
|
||||||
|
this.Activated += (s, e) => ShowCursor(true);
|
||||||
|
|
||||||
// 窗口状态改变时调整大小限制
|
// 窗口状态改变时调整大小限制
|
||||||
this.StateChanged += (sender, e) =>
|
this.StateChanged += (sender, e) =>
|
||||||
{
|
{
|
||||||
if (this.WindowState == WindowState.Maximized)
|
if (this.WindowState == WindowState.Maximized)
|
||||||
{
|
{
|
||||||
// 保存窗口原始位置和大小
|
|
||||||
_originalLeft = this.Left;
|
_originalLeft = this.Left;
|
||||||
_originalTop = this.Top;
|
_originalTop = this.Top;
|
||||||
_originalWidth = this.Width;
|
_originalWidth = this.Width;
|
||||||
_originalHeight = this.Height;
|
_originalHeight = this.Height;
|
||||||
|
|
||||||
// 标记窗口曾经最大化过
|
|
||||||
_wasMaximized = true;
|
_wasMaximized = true;
|
||||||
|
|
||||||
// 最大化时清除最大尺寸限制
|
|
||||||
this.MaxWidth = double.PositiveInfinity;
|
this.MaxWidth = double.PositiveInfinity;
|
||||||
this.MaxHeight = double.PositiveInfinity;
|
this.MaxHeight = double.PositiveInfinity;
|
||||||
}
|
}
|
||||||
else if (this.WindowState == WindowState.Normal && _wasMaximized)
|
else if (this.WindowState == WindowState.Normal && _wasMaximized)
|
||||||
{
|
{
|
||||||
// 从最大化恢复到正常状态时,恢复窗口原始位置和大小
|
|
||||||
this.Left = _originalLeft;
|
this.Left = _originalLeft;
|
||||||
this.Top = _originalTop;
|
this.Top = _originalTop;
|
||||||
this.Width = _originalWidth;
|
this.Width = _originalWidth;
|
||||||
this.Height = _originalHeight;
|
this.Height = _originalHeight;
|
||||||
|
|
||||||
// 重置标记
|
|
||||||
_wasMaximized = false;
|
_wasMaximized = false;
|
||||||
|
|
||||||
// 只设置最大尺寸,不改变窗口位置
|
|
||||||
SetMaxSizeOnly();
|
SetMaxSizeOnly();
|
||||||
}
|
}
|
||||||
else if (this.WindowState == WindowState.Normal)
|
else if (this.WindowState == WindowState.Normal)
|
||||||
{
|
{
|
||||||
// 正常状态下只设置最大尺寸限制
|
|
||||||
SetMaxSizeOnly();
|
SetMaxSizeOnly();
|
||||||
}
|
}
|
||||||
|
|
||||||
// 窗口状态改变时更新标题栏显示
|
|
||||||
UpdateAppTitleBarMargin();
|
UpdateAppTitleBarMargin();
|
||||||
};
|
};
|
||||||
|
|
||||||
// 窗口大小改变时更新标题栏显示
|
|
||||||
this.SizeChanged += (sender, e) =>
|
this.SizeChanged += (sender, e) =>
|
||||||
{
|
{
|
||||||
if (NavigationViewControl.DisplayMode == NavigationViewDisplayMode.Minimal)
|
if (NavigationViewControl.DisplayMode == NavigationViewDisplayMode.Minimal)
|
||||||
@@ -136,26 +120,6 @@ namespace Ink_Canvas.Windows.SettingsViews
|
|||||||
}
|
}
|
||||||
|
|
||||||
#region 修复触摸屏鼠标指针消失问题
|
#region 修复触摸屏鼠标指针消失问题
|
||||||
private void FixTouchScreenCursorIssue()
|
|
||||||
{
|
|
||||||
// 触摸结束时强制显示鼠标指针
|
|
||||||
this.TouchUp += (s, e) =>
|
|
||||||
{
|
|
||||||
ShowCursor(true);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 鼠标进入窗口时确保指针可见
|
|
||||||
this.MouseEnter += (s, e) =>
|
|
||||||
{
|
|
||||||
ShowCursor(true);
|
|
||||||
};
|
|
||||||
|
|
||||||
// 窗口激活时确保指针可见
|
|
||||||
this.Activated += (s, e) =>
|
|
||||||
{
|
|
||||||
ShowCursor(true);
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
[System.Runtime.InteropServices.DllImport("user32.dll")]
|
[System.Runtime.InteropServices.DllImport("user32.dll")]
|
||||||
private static extern int ShowCursor(bool bShow);
|
private static extern int ShowCursor(bool bShow);
|
||||||
|
|||||||
@@ -282,13 +282,8 @@ namespace Ink_Canvas.Windows
|
|||||||
return DateTime.Now - startTime;
|
return DateTime.Now - startTime;
|
||||||
}
|
}
|
||||||
|
|
||||||
// 最近计时记录
|
// 最近计时记录(使用数组简化重复代码)
|
||||||
private string recentTimer1 = "--:--";
|
private readonly string[] _recentTimers = new string[] { "--:--", "--:--", "--:--", "--:--", "--:--", "--:--" };
|
||||||
private string recentTimer2 = "--:--";
|
|
||||||
private string recentTimer3 = "--:--";
|
|
||||||
private string recentTimer4 = "--:--";
|
|
||||||
private string recentTimer5 = "--:--";
|
|
||||||
private string recentTimer6 = "--:--";
|
|
||||||
|
|
||||||
// JSON文件路径
|
// JSON文件路径
|
||||||
private static readonly string ConfigsFolder = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Configs");
|
private static readonly string ConfigsFolder = System.IO.Path.Combine(AppDomain.CurrentDomain.BaseDirectory, "Configs");
|
||||||
@@ -1102,48 +1097,20 @@ namespace Ink_Canvas.Windows
|
|||||||
SetQuickTime(1, 0, 0);
|
SetQuickTime(1, 0, 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 最近计时事件处理
|
// 最近计时事件处理(统一处理方法)
|
||||||
private void RecentTimer1_Click(object sender, RoutedEventArgs e)
|
private void HandleRecentTimerClick(int index)
|
||||||
{
|
{
|
||||||
if ((isTimerRunning && !isPaused) || recentTimer1 == "--:--") return;
|
if ((isTimerRunning && !isPaused) || _recentTimers[index] == "--:--") return;
|
||||||
UpdateActivityTime();
|
UpdateActivityTime();
|
||||||
ApplyRecentTimer(recentTimer1);
|
ApplyRecentTimer(_recentTimers[index]);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void RecentTimer2_Click(object sender, RoutedEventArgs e)
|
private void RecentTimer1_Click(object sender, RoutedEventArgs e) => HandleRecentTimerClick(0);
|
||||||
{
|
private void RecentTimer2_Click(object sender, RoutedEventArgs e) => HandleRecentTimerClick(1);
|
||||||
if ((isTimerRunning && !isPaused) || recentTimer2 == "--:--") return;
|
private void RecentTimer3_Click(object sender, RoutedEventArgs e) => HandleRecentTimerClick(2);
|
||||||
UpdateActivityTime();
|
private void RecentTimer4_Click(object sender, RoutedEventArgs e) => HandleRecentTimerClick(3);
|
||||||
ApplyRecentTimer(recentTimer2);
|
private void RecentTimer5_Click(object sender, RoutedEventArgs e) => HandleRecentTimerClick(4);
|
||||||
}
|
private void RecentTimer6_Click(object sender, RoutedEventArgs e) => HandleRecentTimerClick(5);
|
||||||
|
|
||||||
private void RecentTimer3_Click(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
if ((isTimerRunning && !isPaused) || recentTimer3 == "--:--") return;
|
|
||||||
UpdateActivityTime();
|
|
||||||
ApplyRecentTimer(recentTimer3);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RecentTimer4_Click(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
if ((isTimerRunning && !isPaused) || recentTimer4 == "--:--") return;
|
|
||||||
UpdateActivityTime();
|
|
||||||
ApplyRecentTimer(recentTimer4);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RecentTimer5_Click(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
if ((isTimerRunning && !isPaused) || recentTimer5 == "--:--") return;
|
|
||||||
UpdateActivityTime();
|
|
||||||
ApplyRecentTimer(recentTimer5);
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RecentTimer6_Click(object sender, RoutedEventArgs e)
|
|
||||||
{
|
|
||||||
if ((isTimerRunning && !isPaused) || recentTimer6 == "--:--") return;
|
|
||||||
UpdateActivityTime();
|
|
||||||
ApplyRecentTimer(recentTimer6);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 设置快捷时间
|
// 设置快捷时间
|
||||||
private void SetQuickTime(int h, int m, int s)
|
private void SetQuickTime(int h, int m, int s)
|
||||||
@@ -1183,117 +1150,46 @@ namespace Ink_Canvas.Windows
|
|||||||
string currentTime = $"{minute:D2}:{second:D2}";
|
string currentTime = $"{minute:D2}:{second:D2}";
|
||||||
|
|
||||||
// 检查是否已存在相同的时间
|
// 检查是否已存在相同的时间
|
||||||
var existingIndex = -1;
|
int existingIndex = Array.IndexOf(_recentTimers, currentTime);
|
||||||
if (recentTimer1 == currentTime) existingIndex = 0;
|
|
||||||
else if (recentTimer2 == currentTime) existingIndex = 1;
|
|
||||||
else if (recentTimer3 == currentTime) existingIndex = 2;
|
|
||||||
else if (recentTimer4 == currentTime) existingIndex = 3;
|
|
||||||
else if (recentTimer5 == currentTime) existingIndex = 4;
|
|
||||||
else if (recentTimer6 == currentTime) existingIndex = 5;
|
|
||||||
|
|
||||||
if (existingIndex >= 0)
|
if (existingIndex >= 0)
|
||||||
{
|
{
|
||||||
// 如果存在重复,将其移到最前面
|
// 如果存在重复,将其移到最前面
|
||||||
string duplicateTimer = GetRecentTimerByIndex(existingIndex);
|
string duplicateTimer = _recentTimers[existingIndex];
|
||||||
|
|
||||||
// 移除重复项
|
// 移除重复项
|
||||||
RemoveRecentTimerByIndex(existingIndex);
|
for (int i = existingIndex; i < _recentTimers.Length - 1; i++)
|
||||||
|
{
|
||||||
// 将重复项添加到最前面
|
_recentTimers[i] = _recentTimers[i + 1];
|
||||||
recentTimer6 = recentTimer5;
|
}
|
||||||
recentTimer5 = recentTimer4;
|
_recentTimers[_recentTimers.Length - 1] = "--:--";
|
||||||
recentTimer4 = recentTimer3;
|
// 右移所有元素,将重复项添加到最前面
|
||||||
recentTimer3 = recentTimer2;
|
Array.Copy(_recentTimers, 0, _recentTimers, 1, _recentTimers.Length - 1);
|
||||||
recentTimer2 = recentTimer1;
|
_recentTimers[0] = duplicateTimer;
|
||||||
recentTimer1 = duplicateTimer;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
// 如果不存在重复,正常添加新记录
|
// 右移所有元素,添加新记录到最前面
|
||||||
recentTimer6 = recentTimer5;
|
Array.Copy(_recentTimers, 0, _recentTimers, 1, _recentTimers.Length - 1);
|
||||||
recentTimer5 = recentTimer4;
|
_recentTimers[0] = currentTime;
|
||||||
recentTimer4 = recentTimer3;
|
|
||||||
recentTimer3 = recentTimer2;
|
|
||||||
recentTimer2 = recentTimer1;
|
|
||||||
recentTimer1 = currentTime;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
UpdateRecentTimerDisplays();
|
UpdateRecentTimerDisplays();
|
||||||
SaveRecentTimersToRegistry();
|
SaveRecentTimersToRegistry();
|
||||||
}
|
}
|
||||||
|
|
||||||
private string GetRecentTimerByIndex(int index)
|
|
||||||
{
|
|
||||||
switch (index)
|
|
||||||
{
|
|
||||||
case 0: return recentTimer1;
|
|
||||||
case 1: return recentTimer2;
|
|
||||||
case 2: return recentTimer3;
|
|
||||||
case 3: return recentTimer4;
|
|
||||||
case 4: return recentTimer5;
|
|
||||||
case 5: return recentTimer6;
|
|
||||||
default: return "";
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void RemoveRecentTimerByIndex(int index)
|
|
||||||
{
|
|
||||||
switch (index)
|
|
||||||
{
|
|
||||||
case 0:
|
|
||||||
recentTimer1 = recentTimer2;
|
|
||||||
recentTimer2 = recentTimer3;
|
|
||||||
recentTimer3 = recentTimer4;
|
|
||||||
recentTimer4 = recentTimer5;
|
|
||||||
recentTimer5 = recentTimer6;
|
|
||||||
recentTimer6 = "--:--";
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
recentTimer2 = recentTimer3;
|
|
||||||
recentTimer3 = recentTimer4;
|
|
||||||
recentTimer4 = recentTimer5;
|
|
||||||
recentTimer5 = recentTimer6;
|
|
||||||
recentTimer6 = "--:--";
|
|
||||||
break;
|
|
||||||
case 2:
|
|
||||||
recentTimer3 = recentTimer4;
|
|
||||||
recentTimer4 = recentTimer5;
|
|
||||||
recentTimer5 = recentTimer6;
|
|
||||||
recentTimer6 = "--:--";
|
|
||||||
break;
|
|
||||||
case 3:
|
|
||||||
recentTimer4 = recentTimer5;
|
|
||||||
recentTimer5 = recentTimer6;
|
|
||||||
recentTimer6 = "--:--";
|
|
||||||
break;
|
|
||||||
case 4:
|
|
||||||
recentTimer5 = recentTimer6;
|
|
||||||
recentTimer6 = "--:--";
|
|
||||||
break;
|
|
||||||
case 5:
|
|
||||||
recentTimer6 = "--:--";
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新最近计时显示
|
// 更新最近计时显示
|
||||||
private void UpdateRecentTimerDisplays()
|
private void UpdateRecentTimerDisplays()
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
var timer1Text = this.FindName("RecentTimer1Text") as TextBlock;
|
for (int i = 0; i < _recentTimers.Length; i++)
|
||||||
var timer2Text = this.FindName("RecentTimer2Text") as TextBlock;
|
{
|
||||||
var timer3Text = this.FindName("RecentTimer3Text") as TextBlock;
|
var timerText = this.FindName($"RecentTimer{i + 1}Text") as TextBlock;
|
||||||
var timer4Text = this.FindName("RecentTimer4Text") as TextBlock;
|
if (timerText != null)
|
||||||
var timer5Text = this.FindName("RecentTimer5Text") as TextBlock;
|
{
|
||||||
var timer6Text = this.FindName("RecentTimer6Text") as TextBlock;
|
timerText.Text = _recentTimers[i];
|
||||||
|
}
|
||||||
if (timer1Text != null) timer1Text.Text = recentTimer1;
|
}
|
||||||
if (timer2Text != null) timer2Text.Text = recentTimer2;
|
|
||||||
if (timer3Text != null) timer3Text.Text = recentTimer3;
|
|
||||||
if (timer4Text != null) timer4Text.Text = recentTimer4;
|
|
||||||
if (timer5Text != null) timer5Text.Text = recentTimer5;
|
|
||||||
if (timer6Text != null) timer6Text.Text = recentTimer6;
|
|
||||||
}
|
}
|
||||||
catch
|
catch
|
||||||
{
|
{
|
||||||
@@ -1313,12 +1209,7 @@ namespace Ink_Canvas.Windows
|
|||||||
|
|
||||||
if (!File.Exists(RecentTimersJsonPath))
|
if (!File.Exists(RecentTimersJsonPath))
|
||||||
{
|
{
|
||||||
recentTimer1 = "--:--";
|
Array.Fill(_recentTimers, "--:--");
|
||||||
recentTimer2 = "--:--";
|
|
||||||
recentTimer3 = "--:--";
|
|
||||||
recentTimer4 = "--:--";
|
|
||||||
recentTimer5 = "--:--";
|
|
||||||
recentTimer6 = "--:--";
|
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1328,31 +1219,21 @@ namespace Ink_Canvas.Windows
|
|||||||
|
|
||||||
if (data != null)
|
if (data != null)
|
||||||
{
|
{
|
||||||
recentTimer1 = data.RecentTimer1 ?? "--:--";
|
_recentTimers[0] = data.RecentTimer1 ?? "--:--";
|
||||||
recentTimer2 = data.RecentTimer2 ?? "--:--";
|
_recentTimers[1] = data.RecentTimer2 ?? "--:--";
|
||||||
recentTimer3 = data.RecentTimer3 ?? "--:--";
|
_recentTimers[2] = data.RecentTimer3 ?? "--:--";
|
||||||
recentTimer4 = data.RecentTimer4 ?? "--:--";
|
_recentTimers[3] = data.RecentTimer4 ?? "--:--";
|
||||||
recentTimer5 = data.RecentTimer5 ?? "--:--";
|
_recentTimers[4] = data.RecentTimer5 ?? "--:--";
|
||||||
recentTimer6 = data.RecentTimer6 ?? "--:--";
|
_recentTimers[5] = data.RecentTimer6 ?? "--:--";
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
recentTimer1 = "--:--";
|
Array.Fill(_recentTimers, "--:--");
|
||||||
recentTimer2 = "--:--";
|
|
||||||
recentTimer3 = "--:--";
|
|
||||||
recentTimer4 = "--:--";
|
|
||||||
recentTimer5 = "--:--";
|
|
||||||
recentTimer6 = "--:--";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch (Exception)
|
catch (Exception)
|
||||||
{
|
{
|
||||||
recentTimer1 = "--:--";
|
Array.Fill(_recentTimers, "--:--");
|
||||||
recentTimer2 = "--:--";
|
|
||||||
recentTimer3 = "--:--";
|
|
||||||
recentTimer4 = "--:--";
|
|
||||||
recentTimer5 = "--:--";
|
|
||||||
recentTimer6 = "--:--";
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1370,12 +1251,12 @@ namespace Ink_Canvas.Windows
|
|||||||
// 创建数据对象
|
// 创建数据对象
|
||||||
var data = new RecentTimersData
|
var data = new RecentTimersData
|
||||||
{
|
{
|
||||||
RecentTimer1 = recentTimer1,
|
RecentTimer1 = _recentTimers[0],
|
||||||
RecentTimer2 = recentTimer2,
|
RecentTimer2 = _recentTimers[1],
|
||||||
RecentTimer3 = recentTimer3,
|
RecentTimer3 = _recentTimers[2],
|
||||||
RecentTimer4 = recentTimer4,
|
RecentTimer4 = _recentTimers[3],
|
||||||
RecentTimer5 = recentTimer5,
|
RecentTimer5 = _recentTimers[4],
|
||||||
RecentTimer6 = recentTimer6
|
RecentTimer6 = _recentTimers[5]
|
||||||
};
|
};
|
||||||
|
|
||||||
// 序列化为JSON并保存到文件
|
// 序列化为JSON并保存到文件
|
||||||
|
|||||||
Reference in New Issue
Block a user