While compiling, the following context menu options are greyed out when right-clicking the project in the project tree:
However, "save everything" is still enabled in the file menu, and pressing this does cause the project file to save any changes. It would be sensible therefore to re-enable the "save" context menu option, as well - saving the project during a compile does not present any risk and is often very useful in case of long compiles or occasional crashes, where every modified file in the compiled project is saved automatically, but the project is not, potentially leaving it in an inconsistent state when reloading after a crash.
There also seems to be no reason to grey out "find file" since normal find operates during compile. I'm also not sure if there is a valid reason for greying out both "build options" and "properties" options - not being able to access these windows during long compiles is an impediment to efficient workflow.
Find files options is enabled in rev11204. So I think this issue is fixed. The others are correctly disabled during compilation. If you want to re-enable them you'll need to provide patches which guarantee that the compiler won't use data structures modified by some of the dialogs.
It's inconsistent to have "Save project" disabled here. It's still possible to save the project during compilation by pressing "save everything", and this is something I do frequently during a compile. I would suggest not disabling it.
So you're saying save everything is not disabled during compilation? :)
Save everything is correctly disabled in trunk during compilation in my tests. Is this the case for you?
The real bug is that the project is not saved before compilation is started. Saving during compilation is not 100% safe, I cannot prove it but feals safer if we disable the menus.
I hadn't tested the new commits, I was referring to the old "save everything" behaviour which was separate to this.
In my opinion it's a big mistake to disable saving during compilation; this is something I've never had any problems with, but conversely, CB refusing to save has caused many problems for me and my team on many occasions.
All in all I'm not at all a fan of "features" like this that lock the user out of certain functionality, especially when you have no evidence that it causes any kind of problems - you end up screwing up your users workflow because of unfounded assumptions, and the entire thing ends up feeling very nanny-ish. If you're worried about that behaviour, just have a dismissable popup warning the first time you save during a compile, saying that in some obscure cases it may be unsafe to do this - but don't stop the user from doing what they actually want to do with the tool they're using.
With current trunk you could do save everything (ctrl-shift-s is the short cut) before starting compilation.
Sometime in the future we'll do it automatically, so you won't have to do it at all. See [#396] for details.
Changing project/build options or adding/removing files is 100% guaranteed to cause problems and rare crashes or memory corruptions, because the code is not designed to handle them during build.
Related
Tickets: #396