I just upgraded to JUCE 8.0.1 and was surprised to find that the GUI editor has been completely removed from projucer. What is the rationale for this and what is the preferred method for editing the GUI layout?
Hmmm… indeed, this is what the BREAKING_CHANGES.md says:
Change
The GUI Editor has been removed from the Projucer.
Possible Issues
The Projucer can no longer be used to visually edit JUCE Components.
Workaround
There is no workaround.
Rationale
This feature has been deprecated, without receiving bugfixes or maintenance,
for a long time.
Bought a JUCE 8 license just recently to support the framework, but hadn’t switched yet. I was personally also still using this… This is annoying indeed…
I suppose manual coding of the GUI layout is the only way to do it now, or switch to web browser based GUI and use HTML/CSS (but that’s not going to happen here, unless perhaps for newer projects…)
because we have web view now?
Is there an alternate method for GUI editing? Do you really expect developers to revert to manually coding the GUI layout? If this is true, it change severely diminishes the value of the JUCE framework.
I don’t understand the disdain shown towards the Projucer and more specifically its UI editor. I used it intensively in my projects and found it to save a lot of time as well as give a clearer view about my UI components.
I have been managing on JUCE 7 with some issues arising from the feature not being maintained anymore and am surprised it was dropped in JUCE 8 altogether.
I am certainly not planning to redevelop all my UIs as web views in the near future, so I guess when I decide to move to JUCE 8, I’ll need to continue coding UIs manually. Not an issue for new ones, but old ones will have a mix of both approaches; not ideal.
I personally also think JUCE would benefit from putting a stronger focus on the Projucer. Just like the 3D editors of a game engine, it could become a crazy workstation with lots of features, like GUI and DSP development, an assett store where developers and designers can even help each other in a streamlined and commercial way, and the feature to make and maintain your own project templates. But I understand it would be a lot of work, quite a commitment. maybe from a business pov it’s better to just add some web features
I’m glad I’m not the only one who seems to have a lingering disdain for the imposition of WebView on JUCE’s future. I’ve never found this approach to be a sensible one - the Web is just so broken in so many ways - so as long as there are others out there willing to avoid this painful decision, its a relief.
That said, it’d be nice to see some other WYSIWYG/GUI-Editor techniques arise for JUCE projects on the horizon. Perhaps Figma/SVG integration will prove fruitful in that regard …
With the GUI editor gone for good now, does anyone have a script ready that can clean all those old GUI files with the ProJucer GUI editor tags/metadata? I find myself deleting tons of the same lines and before I write my own script, maybe someone has done that already and would like to share?
My students use the GUI Editor. I cannot fathom the sense in removing it. It helps beginners and was a useful teaching tool.
For those trying to wean themselves off the use of GUI Editor, I would highly recommend the Melotonin Inspector JUCE module, which you can download here:
Just add the module to your JUCE project, and include an Inspector class* in your MainComponent.h (or at any other Component level), and you get a separate inspector window that will allow you to tweak GUI dimensions during runtime. This tweaking is non-destructive, but you can then apply the numbers to your code and make the changes permanent.
* e.g. add this in a header file: melatonin::Inspector inspector {*this};
Isn’t it open source already?
I have git-repo-filtered the juce 7.0.12 Projucer files. If I’m allowed to do so, I can post it as a public repository.
PS: A MIT license would be definitely appreciated.
For those still using the good ol’ Projucer GUI editor, the latest version of it in JUCE 7.0.12 contains an error that doesn’t allow you to change the width and height of a component unless you drag its top-left corner (very frustrating!). Here’s the fix:
Oh thanks! Was getting used to always drag the top/left borders though