47 lines
1.6 KiB
Markdown
47 lines
1.6 KiB
Markdown
---
|
|
epic: 8
|
|
story: 8.6
|
|
title: "File Management"
|
|
status: draft
|
|
---
|
|
|
|
## Epic 8 — Windows App (Rust + iced)
|
|
**Goal:** Fast, lightweight native Windows app -- single .exe, no runtime dependencies.
|
|
|
|
### Story 8.6: File Management
|
|
|
|
As a **Windows user**,
|
|
I want my sheets stored as files in a standard location with a sidebar for navigation,
|
|
So that I can organize my calculations and find them through Windows Search.
|
|
|
|
**Acceptance Criteria:**
|
|
|
|
**Given** the app is installed
|
|
**When** the user creates a new sheet
|
|
**Then** it is saved as a `.calcpad` JSON file in `%APPDATA%\CalcPad\sheets\`
|
|
|
|
**Given** sheets exist in the storage directory
|
|
**When** the app's sidebar is displayed
|
|
**Then** all sheets and folders appear in a tree view matching the directory structure
|
|
|
|
**Given** the sidebar shows sheets and folders
|
|
**When** the user clicks a sheet name
|
|
**Then** the editor loads that sheet's content
|
|
|
|
**Given** sheets are stored as `.calcpad` files
|
|
**When** Windows Search indexes the directory
|
|
**Then** sheets are discoverable by file name and (if a search protocol handler is registered) by content
|
|
|
|
**Given** the user renames a sheet via the sidebar
|
|
**When** the rename is confirmed
|
|
**Then** the underlying file is renamed on disk and the sidebar updates
|
|
|
|
**Given** the user creates a folder via the sidebar
|
|
**When** the folder is created
|
|
**Then** a corresponding subdirectory is created in the storage path
|
|
**And** sheets can be dragged into it
|
|
|
|
**Given** the `.calcpad` file format
|
|
**When** a sheet is saved
|
|
**Then** the JSON contains the sheet's lines, variable state, metadata (title, created date, modified date), and format version
|