Currently I tend to hardcode my dialogs in c++. Which sucks for quick design and only works because I do both, code and design. Tiny advantage - it makes me less reluctant to do stuff which is a bit tricky to do with gui editors like ui elements changing or hiding depending on state. And hack in things like DPI dependent resizing (aka scaling all rectangles when creating UI elements by DPI factors and re-create the UI on dpi changing events). Thought I suppose I could to DPI stuff also with other solutions.
In an older game I had used my own simplified xml serialization which only had parameters my designer wanted. And allowed to create some templates for default options for groups, like all buttons using certain settings, which then got overwritten per element. And then I added a key in game to reload dialogs. The editing itself was directly in XML. Not super flexible maybe, but was surprisingly fast to edit. Thought I did miss an easy way to add constants that way (could probably have coded it...).
Bit work to setup, badly documented and likely also doesn't work with recenty Irrlicht anymore, but if you want to take a look:
https://github.com/mzeilfelder/hc1/tree/master/src - check for the gui_dialog.cpp/.h. Code using those dialogs in the gui_dialogs subfolder. The xml's in another repository at:
https://github.com/mzeilfelder/media_hc ... r/media/ui
If I had to code that one again I might do it different this time. One of the main reasons I used custom xml's back then was that back then Irrlicht xml serialization required to have all parameters for every element. Which made for super fat files. With current Irrlicht trunk that's no longer the case as ui elements now simply keep their current values if anything is not mentioned in the xml. So a similar solution could likely be coded a lot easier these days.
Sadly I could never warm up to the GUI editor. How did you change the skin in that one? I just looked if I can reproduce your problem (sounds like a bug), but no clue right now - can you load a skin xml or something?