Here's an observation about the use of the static function warning. The "warning" function sort of halts everything, and isn't the type of thing to use for notification of a file-update-outside-application. Note from the Qt documentation:

QMessageBox::warning

Warning: Do not delete parent during the execution of the dialog. If you want to do this, you should create the dialog yourself using one of the QMessageBox constructors.

Yes, we are issuing a warning to the user about the file being saved outside the file editor, but the problem is that when the warning message is displayed Qt will not handle another file being updated outside the application. (Open two files in the GUI/IDE editor and at the console command line type "touch file1.m; touch file2.m". The second file will not be recognized.)

Generally, a program isn't supposed to wait on entry from the user, i.e., polling loop. Instead, we'll have to figure out a way, per the documentation's suggestion, to construct the QMessageBox for the warning and connect some slots to the signals it issues to handle the user's response.

Let's save this for later when we clear up a few more show-stoppers. Please downgrade the report priority.