When using a GNU ARM GCC project which contains a build configuration that has a different toolchain set, for example Cross GCC instead of Cross ARM GCC, the Toolchains and Devices tab are not hidden/revealed when the Configuration combo at the top of the project properties dialog is used.
To reproduce:
1) Create an empty Cross ARM GCC project.
2) Set active configuration to be Release.
3) Edit the Release configuration in project properties and change its toolchain to Cross GCC (project > properties > C/C++ Build > Tool Chain Editor > Current toolchain > Cross GCC) and apply changes.
3) With Configuration still set to Release navigate to Settings.
Observe in Settings page the Toolchains and Devices tab are displayed (incorrect).
4) Cancel project properties dialog and then reopen.
Observe in Settings page the Toolchains and Devices tab are NOT displayed (correct).
5) Change Configurations combo back to Debug.
Observe in Settings page the Toolchains and Devices tab are not displayed (incorrect).
The only way to display/hide the Toolchains and Devices tabs when switching between configurations is to do it using the set active configuration (project > build configurations > set active) outside of the project properties dialog.
Attached is a project as described above.
Reproduced on:
Windows 8.1, Eclipse Mars, GNU ARM C/C++ Cross Compiler 1.14.1.201508190739
Patch attached that fixes this for ilg.gnuarmeclipse.managedbuild.cross.ui.TabToolchains tab. The patch was developed and tested on GNU ARM Eclipse Plug-ins release 2.6.1-201502281154. I've simply added a new method, handleTabEvent(), at the end of the file so I expect the merge into your master to be simple.
The patch forces the tabs to be redrawn. You might want to apply the same method to the Devices tab if it is ever used without the Toolchains tab.
John,
I applied your patch, but immediately got NPEs in updateControlsForFonfig(), both for Toolchains and Devices.
I had to allow tabs to create controls, even if not visible, to get rid of NPEs.
Now it seems functional, but I feel here things are not as clean as they shuld be.
The new version in on updates-test and GitHub git.
Please confirm if it is ok for your use case.
Ah great. I'll have a look at it when I can.
fixed in 2.10.1-201510291730.