herzbube / littlego

Little Go. An iOS application that lets you play the game of Go on the iPhone or iPad.
https://littlego.herzbube.ch/
Apache License 2.0
138 stars 54 forks source link

Improve node and game variation editing #418

Open herzbube opened 7 months ago

herzbube commented 7 months ago

Some ideas of the options that could be offered to the user for editing nodes and game variations. A popup menu with all the entries described below would probably be too long on smaller devices.

Create new setup / annotation / markup nodes

Long-press on a node in the node tree view => Displays a popup menu with the following entries:

Condition                                             Menu entry                               Action when selected
-------------------------------------------------------------------------------------------------------------------
If not root node                                      Insert node                              New parent node
If no branching node                                  Add node                                 New first child
If no branching && first child exists                 Add variation                            New last child
If branching node                                     Add variation before current variation
If branching node                                     Add variation after current variation
If branching node && current variation is the first   Add variation at top
If branching node && current variation is the last    Add variation at bottom

Move existing setup / annotation / markup nodes

Move existing variations

Long-press on a child node of a branching node in the node tree view => Displays a popup menu with the following entries:

Delete existing nodes and variations

Long-press on a node in the node tree view => Displays a popup menu with the following entries:

Condition                 Menu option
----------------------------------------------------------
If root node              -
If child node exists      Discard node and all child nodes
If no child node exists   Discard node

Edit existing nodes

Long-press on a node in the node tree view => Displays a popup menu with the following entries:

Condition                  Menu option
----------------------------------------------------
If annotations exist       Delete annotations
if markup exists           Delete markup
If setup exists            Delete setup
If multiple things exist   Delete all (except moves)