Notechondria
Version: 0.1.72 Build Date: 2026-04-26T17:30
What's Changed
Apple-style two-level Settings menu (editor)
-
Spec: "Organized app preference setting widget, create second-level menu, organize the existing groups to: Editor settings, Backend settings, Local data, Recycle bin, Clear all data. Do not use round button in first level menu, use Apple- style setting UI with tooltip on secondary setting page".
-
The flat single-screen Settings layout that mixed "App preferences" + "Offline account" actions in one giant Card is replaced by a five-row grouped menu. Each row has an icon, a label, a one-line subtitle, and a chevron — same shape Apple's Settings app uses. Tap opens a dedicated sub-page; no round buttons in the top level.
Top-level rows (in order):
- Editor settings — default editor mode, theme preset, theme mode. Each is a tap-to-open picker bottom sheet.
- Backend settings — offline-mode
SwitchListTile+ API base URL field (locked while signed in, with aninfo_outlinetooltip explaining the lock). - Local data — download / restore the
.nchronarchive plus "Restore template categories" action. - Recycle bin — synced local drafts (recoverable) + cloud recycle bin, both surfaced as rows with item counts.
- Clear all data — destructive action, red text + warning
icon, triggers the existing
_confirmClearAllLocalDatadirectly (no extra navigation step for a destructive op).
New file — settings_pages.dart
-
frontend/editor_app/lib/modules/settings_pages.dart(495 lines) hosts the four sub-pages:_EditorSettingsPage,_BackendSettingsPage,_LocalDataPage,_RecycleBinPage, plus_SettingsGroupCard/_SettingsCaption/_PickerOptionhelpers and a_pickFromListtap-to-pick bottom-sheet picker.
Removed dead code
-
_buildOfflinePreferencesSection(122 lines) removed; replaced by the new menu. -
_hasPreferenceChangesgetter +_cancelPreferenceChangesmethod removed (no longer needed — preferences auto-save on change in the new sub-pages).
Files Changed
frontend/editor_app/lib/modules/settings_pages.dart(new).frontend/editor_app/lib/modules/settings.dart— top-levelbuild()rewritten as the row-based menu;_buildSettingsMenuhelper added.frontend/editor_app/lib/modules/settings_build.dart—_buildOfflinePreferencesSectiondeleted.frontend/editor_app/lib/main.dart—part 'modules/settings_pages.dart'.
Notes
- All editor module files still under the §1.5 1000-line cap after the additions. Editor smoke test passes.
- The destructive "Clear all" stays at the top level (no extra tap needed for a one-shot wipe) but visually flagged red. The 3-second delay-confirm dialog from the prior round is preserved.