Tutorial videos done:

+ getting started (~15..20 minutes)
	(single sheet only)
	(default lib only)
	(blinking LEDs, 2 transistors, PCB workflow)
	- setup:
		- sheet attributes for the titlebox
		- save
	-place
		- library window, place symbols
		- arrange symbols
	- draw nets
		- shift
		- {/}
		- endpoint drag for draeing the crossing
		- connection indication (layer toggle)
	- metadata
		- {a a} name symbols (all!)
		- {a v} change value: res, cap
		- {a f} change footprint on resistors
		- (explain devmap)
		- {a d} on NPNs
		- {a d} on leds and caps
		- place floater on devmap
		- {a a} name nets
		* this can be done more efficiently, shown in another video
		- battery portmap
		- save
		- create/arrange floaters for net names
	- abstract model & netlist
		- inspect the abstract model with {w a}
		- explain abstract/concrete models and terminology
		- export tEDAx netlist
		- export ps


+ arbitrary grouping sheet decoration
	- draw an arrow
	- box-select
	- convert to group
		- group origin
	- select, move it around, transform, copy in group
	- save/load menu

+ selections and locking
	- click-select
	- click-away to unselect
		- beware of clicking within symbols
	- only on wirenet: double selection means select wirenet
	- shift+click to add selection
	- shift+click to remove from selection
	- positive selection box
		- do not start on an existing object, that's drag&drop move
	- negative selction box
	- layer visibility
	- lock object so it can not be selectd
	- unlock is the only tool that works on locked objects

+ constructing an arbitrary polygon
	- draw lines and arcs
	- make sure endpoints connect
	- select all
	- select menu, convert to polygon
	- propedit:
		- fill color
		- stroke color
		- has_fill
		- has_stroke
	- clicking works only on the contour!
	- break up, edit, convert again
		- won't remember stroke and fill

+ operations on object vs. selected
	- object:
		- right click context menu
		- {e s}, {a a} and alike
		- transformations (mirror, rotate)
		- invoke from menu -> no cursor -> ask for obj (rotate)
		- drag&drop endpoint move is nothing is selected
		- drag&drop object move is nothing is selected
	- selection:
		- drag&drop move if anything is selected
		- convert hotkeys
		- select menu

+ paste buffers
	- open with 2 sheets
	- copy with ctrl+c
	- cut with ctrl+x
	- paste with the buffer tool
	- while the buffer tool is active:
		- rotate buffer with {e w},
		- mirror with {e v} for vertical or {e h} for horizontal
	- {b r a} for arbitrary rotation
	- multi-sheet: buffer is cross-sheet
	- undo effects sheet part (e.g. paste or cut) but not buffer contents
	- multiple buffers
	- buffer saves/load
		- full content
		- group/symbol

+ backann

+ how to use the crosshair

+ how to use propedit for multi-object editing

+ how to construct a symbol
	- symbol: piezo-electric buzzer
	- draw decoration
	- use {p t} to place terminals
	- mention standard grid (4k)
	- arrange everything
	- name terminals using {a a}
	- select, convert to symbol
	- save symbol
	- move symbol to lib
	- refresh lib

+ undo/redo
	- open with two sheets
	- line, circle, move
	- open the undo dialog
	- undo with {u u}, redo with {u r}
	- undo/redo from the dialog
	- explain the undo list (list of operations)
	- it is not saved
	- it is per sheet
	- demonstrate multisheet

+ custom pinout with devmap (how to create devmap)
	(do the same as in "custom pinout with portmap" above)
	- enable autocompile
	- copy one of the existing files
	- open datasheet, open the symbol in raw mode
	- fill in the pinout
	- place transistor symbol
	- change devmap attribute (context menu or hotkey {a d})

+ custom pinout with converting to heavy symbol
	(need the datasheet of some old device)
	- enable autocompile
	- place transistor symbol
	- attribute editor
		-remove devmap attribute
		- add the footprint attribute
		- close editor
	- remove the devmap floater leftover
	- {a a} over each term label

+ custom pinout with portmap
	(need the datasheet of some old device)
	- enable autocompile
	- place transistor symbol
	- attribute editor, remove devmap attribute
	- add the footprint attribute
	- add portmap attribute, convert to array
	- assisted edit portmap

+ text edit: tools and basic properties
	- place text
	- use {e t} to edit ot
	- use {e s} to change pen
	- change rotation
	- no mirror
	- show bbox with (....)

+ dyntext text object edit: dyntext
	- place text
	- use {e t} to edit text
	- propedit
	- edit text, add %../A.title%
	- enable dyntext
	- invoke the tree to show why this works, explain the .. part
	- edit sheet attribute title to show it is the same thing
	- show 3-field {e t}
	- demonstrate how refdes is the same thing
	- demonstrate how any other attribute can be printed
	- quicker path is 'add floater'
	- demonstrate how term label is the same thing, explain the 'a' vs 'A' part

-- attribute editor: basics
	- enable autocompile
	(- place a symbol: npn transistor)
	- opening symbol attributes
		- context menu
		- {a a}
	- using the attribute editor
		- left side concrete, right side abstract
		- edit value of existing string attributes: name
		- see how it changes on the right side
		- add custom attribute: product_id (shows up on the right)
		- edit name of existing attribute (product_id to prod_id)
		- create a floater for prod_id
		- del attribute (prod_id)
		- delete floater

-- attribute editor: array editing and assisted editing
	(- place a symbol: npn transistors)
	- open attribute editor
	- remove the devmap attribute 
	- create portmap attribute
	- change it to array
	- use assisted edit for mapping 2 pins
	- fill in the 3d pin using raw array edit

-- using pens
	- place text, draw a rectangle around it and place a symbol
	- choose different stroke pen for the text - use menu
	- choose different stroke pen for the rect - use {e s}
	- choose different fill pen for rect
	- explain where pens are stored and how they are defined for purpose not looks
	- demonstrate this on sym-decor
	- create a new pen called error
	- change text and rectangle to error pen

-- text: alignment, bbox-defined text
	- origin
		- place text object (looong text)
		- text size: pen {e s} (refer to the pen video)
		- enable text meta layer -> bbox shown
		- change font size -> bbox grows
		- change text -> bbox grows
		- explain the origin of the text object, "grows away"
		- horizontal-mirror text to show the grow-away effect
		- (there's no real mirror: pixels are not mirrored)
	- bbox based
		- property editor, enable has_bbox
		- edit text to longer -> bbox remains, text size shrinks: width-constraint
		- edit text to shorter -> bbox remains: height-constraint
		- propedit, different halign values
		- mirror: origin and halign matter together

-- how to connect things (net)
	- wire: draw net
	- wires + net names
	- wire stub + net names
	- connect symbol attribute
	- vcc, gnd
	- generic rail symbol

-- tree view:
	- 2 sheets
	- window menu, show both sheets
		- navigate to object
		- mention preview
		- select/unselect
		- propedit, attr edit
		- del -> pending update
	- right click invocation

-- propedit dialog (multi is already covered)
	- right click propedit on a symbol
	- close subtrees
	- explain p/ and a/
	- reopen subtrees
	- a/
		- open a/, open attr dialog, compare
		- a/role: edit as string, edit with assisted edit
	- p/
		- explain generic flags
		- explain grp/
		- change rot by abs value
		- step rot
		- change rot by rel value
	- open a new propedit on a text object
		- explain there's no a/
		- show the different p/text subtree
		- change rot

-- navigating the abstract model (tracing back sources)
	- use the slot2 example
	- find objects:
		- U1 sources
			- explain multisheet case
		- U1's 1/A port source
		- net/clk sources
	- attribute history:
		- U1, 3/Z
			- pcb/pinnum attribute
			- history src (tooltip!) -> U1 portmap
			- history src -> attr edit -> change to 87
	- tree view to abstract
		- right click on the terminal for 87
		- left side: no 87; right side: 87
		- history src twice

+ how to speed up setting symbol attributes
	- show the manual way
	- make one right, copy that
	- select + :propedit -> quick edit button on the bottom right!
		* multi on arc is already shown in another video
	- renumber plugin

+ symbol terminal:
	- text alignment on terminals
		- turn on text meta
		- mirroring terminals instead of just moving
	- text alignment inside the body
		- same as terminals, just align the other way around
	- how to make terminal longer (sloped, opamp example)
		- cheat with an extra line
		- create the terminal by converting a line

+ export sheet
	- graphical export from menu or keyboard (single sheet, png, svg)
	- automated export using -x (single sheet, png, svg)
	- default output file name: generated from sheet name
	- override default output file name

+ export project
	- graphical export from menu or keyboard (multi-page ps, multi-file svg)
	- automated export using -x project.lht (multi-page ps, multi-file svg)
		-> all pages listeed are exported
	- automated export using -x doc.lht MCU.lht (multi-page ps)
		-> only pages named are exported
	- default output file name depends on project.lht
	- override default output file name

+ flat multisheet with implicit project file listing
	- start sch-rnd with multiple sheets from cli
	- show that project is marked [i] in the sheetsel
	- explain implicit projects
		- sheet files are in the same directory, that's how they are an implicit project
		- if there's project file, it holds cfg, no sheet list
		- does not matter if project file exists or not, but whether sheet list is empty or not
	- implicit project files work from the command line:
		- when sch-rnd is started for editing
		- or for export
	- explain implicit projects
		- disadvantage: sch-rnd is not aware of the file names
		- advantage: no extra project file list (e.g. compared to Makefile)
			- show a makefile!!!
	- creating new sheet
		- CLI: name it on the command line
		- GUI: menu: new unlisted sheet
		- load the file from the GUI

+ flat multisheet with explicit project file listing
	- mkdir from the shell
	- run sch-rnd, menu for create new project
	- create three types of new sheets plus one extra
	- quit and start sch-rnd then load the project file
	- quit and start sch-rnd with the project file
	- quit and export the project with -x
	- show [e] for explicit project
	- load partial projects:
		- start sch-rnd with not all sheets
		- start sch-rnd on the project file but unload sheet
		- show the menu for loading missing sheets
	- show project properties, change the type of the extra sheet

+ multiple pins per terminal
	- (explain the so(8) mosfet problem)
	- draw mostfet, 3 resistors
	- remove devmap from the mosfet, add portmap
	- fill in portmap: S=1 2 3; G=4; D=5 6 7 8
	- add footprint
	- export to tedax, show the result

+ how to use the preferences window, part 1
	- load a sheet so that we have a project file
	- invoke from file menu
	- navigate to the color tab
	- set role!!! to project
	- change generic color for "beyond drawing area", explain it's a frame/indication
	- exit, restart -> no frame; load -> frame; show a differnt project has no frame
	- redo the whole thing on user role
	- restart; show it's not project dependent

+ how to use the preferences window, part 2
	- load a sheet so that we have a project file, from part 1
	- invoke from file menu
	- tree tab
	- show the left side tree and search for color; off_limit is ours
	- explain the right side (top is input, bottom is conclusion)
	- (show this in the project file)
	- remove selected on project level
	- add a different one on project level
	- explain read-only levels

+ attribute editor: overriding footprint attribute using prio
	- place a symbol: nfet
	- devmap is 2n7002_sot23
	- open attribute editor
	- show footprint on the right side
	- show history of footprint attribute on the right side -> it's from devmap
	- add footprint to sot23_bigpad
	- show history of footprint attribute on the right side -> it's overridden
	- change attribute prio to 31050
	- show history of footprint attribute on the right side -> it's devmap again
	- show how devmap prio is calculated (engine list)
	- show the table for default prios

+ drawing sheet decoration
	- lines
		- line tool vs. wire tool
			- anydir vs. orthogonal
			- top level objects vs. wirenet group (show tree on right click)
			- juntions made (draw junctions)
		- move at once - no select
		- grab endpoint - no select
		- move selected
		- stroke {e s}
	- rectangles
		- stroke {e s}
		- fill
	- text
		- stroke {e s} changes font

+ local lib support for devmaps
	- empty sheet, place fet and an npn
	- show devmap attributes
	- open the {w w d} dialog from menu
	- show <local>, lm358 inserted
	- show "count"
	- show refresh button, explain it is for edited
	- turn off compilation
	- mass version: maintenance menu, clean
	- compile
	- show these buttons are not present in other parts of the lib
	- show lib refresh doesn't work in <local>

+ local lib support for symbols, part 1
	- (turn off autocompile, save, set up terminal with watch ls -l)
	- save sheet with a single resistor, show size
	- show how file size is growing with 4 copies of the same resistor
	- show propedit: grp type
	- delete all resistors, save
	- enable lolib: mode menu, symbol libraries
	- place a resistor, save, show file size
	- place a 4 copies, save, show file size
	- show propedit: grp_ref type
		- explain how shared attributes are not accessible
	- open attribute editor
		- show the two sections
		- add new, value, show it is added to the local section
		- edit value, show how it is copied
	- open library window, show local lib section
		- show the # button
		- edit value in loclib, show how all changes...
			- ... except for the one with local deviation
		- refresh: overwrites our value change
		- remove and unembed
			-> show file size

