[ ] insert many: if one fails it should not insert any!
[ ] problem with source code generation: forensic_log-1.lmd
[ ] Commands must return error messages. check and implement.
InsertStaffObj
InsertManyStaffObjs
DeleteStaffObj
InsertBlock
Once checked, force to use it in future commands.
[ ] Modify CmdJoinBeam behaviour: when adding notes to an existing beam, it
is first removed. Then, if not all the notes of the removed beam are
selected, the new beam does not include them.
[ ] refactor CmdInsertObj::validate_source() to move parsing knowledge to LdpParser
[ ] refactor CmdInsertObj::remove_object() to move knowledge to Document
[ ] redesign commands to take into account edition modes:
CmdChangeDots: to be replaced by CmdAddNoteRest. Otherwise will alter measure duration.
As it is, it can be used only in "free" mode.
CmdDeleteStaffobj: note/rests must be replaced by gaps
CmdDeleteSelection: note/rests must be replaced by gaps
CmdChangeAttribute: forbid to change attributes affecting duration: dots, noteType
CmdInsert: when inserting notes/rests replace by CmdAddNoteRest.
[ ] CmdAddNoteRest:
when adding second voice cursor should be moved after inserted note. Tests fails because
currently, cursor doesn't behave as expected.
when replacing existing note by a new one (shorter/longer), if current
note is in chord, all other chord notes must be shortened/enlarged.
[ ] DeleteStaffObj: check if it is required to reorganize slur if slurred note is deleted.
[ ] Related to implementing commands:
finish exporters
LmdExporter (all but not score)
[ ] Document this or reconsider:
//TODO: public to be used by exercises (reconfigure buttons), To be changed to
//protected as soon as buttons changed to controls
inline void set_dirty() { m_flags |= k_dirty; }
[ ] ColStaffObjs: support for inserting/deleting objects
optimize by changing ColStaffObjsEntry to ImoStaffObj
change for adding ghost KS, TS as child of main KS,TS
change for placing measure number, staff number & line in staffobj
move instrument number to ImoMusicData
add prev/next pointers to ImoStaffObj, to implement the ColStaffObjs as a list
[ ] Commands must return error messages. check and implement.
Once checked, force to use it in future commands.