On Mon, 12 Oct 2009 16:49:43 +1100, Lex wrote:
Hey,
In the new build system there are more execute commands than in the old system:
- from system filetypes files
- from user preferences filetypes files
- from user preference
- from project filetypes in the project file
- from project preference
The cause of the issue you've identified is because modified execute commands are treated as a user preference rather than as a filetype. Its actually documented in the manual this way (see the table in 'build menu configuration') and it notes that you can't set the filetype dependent execute commands using the dialog.
Because the dialog doesn't have any way of selecting if the user is changing the preference/project setting or the filetype dependent setting a decision one way or the other had to be made. I don't remember why this particular decision was made, but I see two "solutions":
- Since projects are most likely to have an execute command
independent of the filetype and non-projects are more likely to be dependent on filetype we could have the execute commands set in the 'build commands' dialog set the filetype preferences execute not the preferences execute, but the execute commands in the project 'build commands' dialog set the project execute not the project filetypes execute, but this is potentially confusing (I'm confused just writing it)
- Or I can try to get Enrico to agree to adding one itty bitty teeny
weeny little checkbox to the build commands dialog to make the selection, I'll put it on the same line as the execute commands header and it won't make the dialog any bigger I *promise*. :-) It will
Putting things very close together won't help making better UIs...it's not about size, it's about complexity.
Let me know what you think.
No idea, really. I somewhat prefer 1) as it is closer to the previous, original behaviour which I believed we wanted to keep. Maybe I missed the decision against it in one of the thousands mails about the build system stuff. If so, my bad.
Though I remember saying myself a couple of times I wanted to have it as compatible as possible and to not change the default behaviour when not absolutely necessary.
Why the hell does one need so many different types of Run commands you listed above? I loved the old behaviour so much where I just opened a file and could execute it, without configuring anything and without thinking about which of the thousands things it could do now...
(Sorry for sounding a bit harsh, probably I should have done deeper testing before the merge but well, it doesn't make things better. We, at least I thought so, tried to keep things small and stupid...maybe we left this way without noticing.)
Furthermore, the Compile button is disabled in the toolbar. But this seems to be a separate issue :).
AFAICT build.c doesn't know about the compile toolbar menu button, or the execute menu button for that matter, it only knows about the build toolbar menu button and the compile, build and execute actions, so I don't know what is setting the sensitivity of the compile and execute menu buttons.
The action is the toolbar button, at least it is the parent instance which creates the actual button widget for the toolbar. So, setting the sensitivity of the action, implicitly changes the sensitivity of the toolbar button widget. And the action's sensitivity is changed at the end of build_menu_update(). And at some point, this worked.
Regards, Enrico