tptrace的mode 缓存

This commit is contained in:
mmc
2026-03-14 20:05:42 +08:00
parent ca511e5729
commit 5b814d065f
2 changed files with 16 additions and 5 deletions

View File

@@ -215,6 +215,10 @@ class TracePoint<T> {
_mode = mode;
}
TPMode getMode() {
return _mode;
}
/// 添加/更新轨迹点
void upsert(T point, [TPAction act = TPAction.UPDATE]) {
switch (_mode) {

View File

@@ -63,6 +63,7 @@ const String kSavedWorkMode = 'saved_work_mode';
const String kSavedWorkStatus = 'saved_work_status'; // 作业状态(idle/working/paused)
const String kSavedIsStartWork = 'saved_is_start_work'; // 是否开始作业
const String kSavedIsStopWork = 'saved_is_stop_work'; // 是否点击过停止
const String kSavedTPMode = "saved_tp_mode";
// 保持 PlotData 类不变
class PlotData {
@@ -250,6 +251,10 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
if (workStatusStr != null) {
_workStatus = WorkStatus.values.firstWhere((e) => e.toString() == workStatusStr, orElse: () => WorkStatus.idle);
}
final modeStr = prefs.getString(kSavedTPMode);
if (modeStr != null) {
_traceManager.setMode(TPMode.values.firstWhere((e) => e.toString() == modeStr));
}
// 2. 恢复是否开始作业
isStartWork = prefs.getBool(kSavedIsStartWork) ?? false;
@@ -293,11 +298,11 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
// 1. 恢复作业面板状态
_isWorkPanelOpen = prefs.getBool(kSavedIsWorkPanelOpen) ?? false;
// if (isStartWork && !isStopWork) {
// _isWorkPanelOpen = true;
// } else {
// _isWorkPanelOpen = false;
// }
// if (isStartWork && !isStopWork) {
// _isWorkPanelOpen = true;
// } else {
// _isWorkPanelOpen = false;
// }
// 2. 恢复作业模式
workMode = prefs.getString(kSavedWorkMode) ?? "弓字模式";
@@ -376,6 +381,8 @@ class _MapPageEnterpriseState extends State<MapPageEnterprise> {
// 3. 保存是否点击过停止
prefs.setBool(kSavedIsStopWork, isStopWork);
// 保存当前模式到本地缓存
prefs.setString(kSavedTPMode, _traceManager.getMode().toString());
// 4. 保存选中地块
if (_selectedPlot != null) {