Close the current project
Truth table for this function:
project = the state of the project on entry changed = changes made to project since last save abort = user chose not to save the changes dialog = the user response from the dialog save = if the project is saved output = the state of the project on exit
|project|changed|dialog |save |output| +-------+-------+-------+-----+------+ |closed |x |x |false|closed| |open |false |x |false|closed| |open |true |save |true |closed| |open |true |discard|false|closed| |open |true |cancel |false|open |
If the project is open after this function is called, then operations such as project-new and project-open should abort.