feat: add course bar length setting and clear blue glass Dock

This commit is contained in:
Codex
2026-10-13 12:51:27 +08:00
parent 8403be05da
commit 9193fd8e43
11 changed files with 444 additions and 138 deletions
+15 -2
View File
@@ -88,18 +88,31 @@ class AppController extends ChangeNotifier {
Future<void> updateSettings(
AppSettings Function(AppSettings current) change,
) => _run(() async {
final value = change(snapshot.settings);
final previous = snapshot.settings;
final value = change(previous);
if (![5, 10, 15, 30, 60].contains(value.reminderMinutes)) {
throw ArgumentError('提醒时间无效');
}
if (!value.courseHeightScale.isFinite ||
value.courseHeightScale < AppSettings.minCourseHeightScale ||
value.courseHeightScale > AppSettings.maxCourseHeightScale) {
throw ArgumentError('课程条长度无效');
}
await _save(snapshot.copyWith(settings: value));
if (isDemo) {
_demoSettings = _demoSettings!.copyWith(
colorMode: value.colorMode,
singleColorArgb: value.singleColorArgb,
courseHeightScale: value.courseHeightScale,
);
}
await _reconcile();
final scheduleChanged =
previous.semester != value.semester ||
previous.remindersEnabled != value.remindersEnabled ||
previous.reminderMinutes != value.reminderMinutes ||
previous.calendarEnabled != value.calendarEnabled ||
previous.calendarId != value.calendarId;
if (scheduleChanged) await _reconcile();
});
Future<void> applyImport(
ImportDraft draft, {