boats-animator icon indicating copy to clipboard operation
boats-animator copied to clipboard

Project settings

Open charlielee opened this issue 2 years ago • 0 comments

You should be able to choose a name and file location for your project.

New Project Modal

Pressing "New Project" on the launcher should open the New Project Modal.

  • Cancel - this button will take you back to the launcher
  • Create Project - this will create a project file at this location and a single take

image

Project Settings Modal

Pressing the current take button in the top left of the app will opens the project settings modal (initially). Eventually this button will display a list of takes list.

image

This will use the same form as the New Project Modal.

  • Cancel - this button will take you back to the animator window with no changes
  • Update Project - this will save the project file. It will be renamed or moved as necessary.

image

Handling renaming projects

  1. When "Update Project" is selected a loading screen should be displayed
  2. The directory in the new file location should be validated that is exists and project doesn't exist with the same name
  3. The frame files directory should be moved to the new working directory
  4. File names in the .baproject file should be updated
  5. The .baproject file should be moved to the new directory

If there are errors at any of these stages, everything should be moved back to it's original location and a error message should be displayed.

Form fields

Project Name

  • required
  • max length 60 characters
  • placeholder "Untitled Movie"

File Location

  • required
  • default value <current working directory>/<project name>.baproject
  • .baproject is appended to the end of the location if it is missing
  • The <project name> component of the path should be normalised to remove special characters

Project file

ProjectFile

type: string = "baproject"
schemaVersion: number = 1
appVersion: string = "0.11.1"
project: Project
takes: Take[]

Project

projectName: string = "Untitled Movie"
fileLocation: string
fileLastSavedToDisk: Date | undefined = undefined

Take

A lastOpened field should be added to each take.

charlielee avatar Mar 24 '22 20:03 charlielee