Move saveSource and getSource to Project
Fix markdown open file from task
Add event handling for modified events
Only save list data if it's changed