ivansafrin/Polycode — pull request #307 by BitPuffin (2013-05-19 18:58:02+00:00)
Title: External Text Editor

This pull request contains a brand new settings window (accessed from the edit dropdown) in which you can set a command to launch an external text editor (eg /usr/bin/gvim or C:\Program Files\vim\gvim.exe) or something like that! And there is a check box that controls if you are using an external editor or not. The settings are saved into the user configuration when saveConfig (or whatever the function was) is called (it might be a good idea to save it when the user clicks ok in the settings menu, a trivial change!). And if you close the window things via cancel or x button it restores changes to your current settings.

There is one problem however! Which does not seem to be related to what I added, but appears to be an issue elsewhere:
The first time you open a file, the text editor opens as it should. However, when you re-open a file you've already opened once, the file is opened twice, so when you close the editor and the IDE resumes (not threaded yet) the editor opens once again and you have to close it one more time before you can do what you intended to do. Again, that appears to be an issue somewhere else and should be debugged! (I'm in a bit extremely busy this week though so someone else will have to do it or else it will have to wait).

Eventually I think it should happen in a separate thread because the IDE is unusable until you close the text editor. It seems like Threaded and createThread is a bit overly complicated at first sight. I started implementing it but gave up. It's a fairly trivial change though! Right now it would probably only cause an annoyance because it would fire up some text editors twice (although on the ones that catches the double launch it doesn't have the annoyance previously mentioned, hmm)

Other fun things that can be added to the settings window is selection for various themes :).

Either way, it seems like what *I* have added doesn't have any apparent bugs so I think it's ready to merge!