GSoC 2020 : idea to improve the custom menu idea

That’s great work on the Blender custom menu editor!

I’m thrilled you’re supporting the pie menus in blender as well as linear menus.

I’ve done a lot of work with pie menus, and I appreciate the challenges of trying to make an editor for the circular layout of pie menus, using linear scrolling lists and trees.

Ages ago in another lifetime, I made an implementation of pie menus for ActiveX / OLE, which you could use in Internet Explorer, Visual Basic, and other OLE containers.

It had a rather elaborate set of tabbed property sheets that let you edit and preview them in various ways, but I was never very happy with it, since there is such cognitive dissonance between the automatic circular layout, and the scrolling list / tree controls.

So I made a preview tab that showed how each menu would look, but that was not directly editable via drag-and-drop.

But Simon Schneegans’ Gnome-Pie application launcher has a wonderful drag-and-drop pie menus editor, that you should definitely check out:

But one thing I tried that worked pretty well for both pie and linear menus, up to a point, was editing a tree of nested menus in a regular multi line text editor, as an indented text outline! The ActiveX pie menu demo shows how that works at 7:15. That was an idea by Arthur van Hoff, which he implemented for the HyperTIES user interface builder (which was like HyperCard in NeWS PostScript).

It’s very simple and easy for people to understand and use (nothing to learn since everybody knows how to use a standard text editor and indent text with spaces, and very easy to code), and it takes fewer keystrokes to create and edit a tree of nested menus, than it would take by clicking through tree controls and dialogs.

Its limitation is that it didn’t let you associate properties with each menu item (since there was no way to express it in the text outline, that information could not “round trip” between the text representation and the structural representation).

Of course XML (or JSON but it wasn’t a thing at the time) is the obvious way to represent both text and structure. But then you’re using XML, and nobody wants to edit that directly.

But I think it’s worth considering using simple text outlines in a standard multi line text editor as a way to quickly input and edit the initial tree of menu items.

And if you really wanted to make it possible to edit the menu tree structure in the text editor without losing the formatting and other information on the individual items, you might do something like appending an id tag like “#1" to each line, to associate the text with the metadata (formatting and layout properties, callback, etc). Or maybe you can come up with a better solution, or use a more advanced editor that can handle properties, instead of a standard multi line text editor.

Perhaps you could indent properties below items and prefix them with a dash, or use something like yaml. But I think it would be better to stick to a super simple syntax designed specifically for editing menu trees as much as possible, because yaml is actually quite complicated and quirky and a bit of an overkill (with a lot of the same problems as xml or json).

3 Likes

@Tempo my suggestions are already in your todo list. Thankyou so much for doing this great work for blender and community.

One of the most anticipated features for me. More control over excellent Blender’s customization is what makes Blender imba!

1 Like

I’m viewing the images in the weekly report and the first thing that comes to my mind is - Wouldn’t it be easier for you and visually more logical to use something like the tree view in outliner or keymap editor to edit the menus?
Drag and drop to rearrange items would be appreciated :slight_smile:

@Tempo any updates or new builds i can test.

Hi everyone,

A lot of people are asking about addon management and/or topbar/sidebar. I am before all working on the basis of the editor so I don’t think I’ll be able to do much more. (it’s still good to propose and give your opinion thought as your idea can be implemented in the future, and by other developers.)

@d-V-b
It’s already been talked about here T73178 (and it’s more likely that the keymap editor is the one that will be changed T68884).

@johnsyed
It took me some time to implement the possibility to work on differents user menus but now it’s done so new features might come soon and more often. You can take a look at the weekly reports if not done already to stay updated.

Thank you for all the support !

4 Likes

Hi, Amazing work so far, I have a kind of UX suggestion.
Currently, when assigning the same shortcut to multiple ops blender picks the first one on the list.
I think making under the hood a new custom menu will be super cool.

1 Like

Hi everyone !
The Google Summer of code is finished and we hope the final version will please you.
Of course many improvements can be made and new features can be added, so I hope you will try the current build to report potentials bugs and crashes, as well as give feedback.
You can get a look at the final report here.

edit : link to the build

Thank for your feedback and suggestions !

19 Likes

I can’t wait to see it in master, it’s going to be a godsend! I see macro and custom bar were finally decided against, that’s too bad…do you know if there is any way to link a script as a menu item?

Anyway, great job, congrats! And thanks a lot for all the work you’ve put into it!

great job, this will improve UX a lot!

Hi. I have downloaded the build (the 33bc2f738f604a24b57555c4acad80ea.7z file from GraphicAll) but when I launched Blender.exe, here is what I saw in the Preferences window :

… there’s nothing.

I believe you need to delete your user.prefs. The user pref save files are incompatible.

1 Like

Is this Project still in development, BTW?
I’ve just bought the sculpt- and paintwheel addon on the blender market and was reminded again how awesome this kind of customization thing can be for display tablet users.

4 Likes

hey @Tempo what’s the status? Or did you lose interest in this project? This was one of my favorite GSoC projects last year!

4 Likes

I mean … it seems that the project was somewhat finished but never finalized or pulled into the main branch:
https://wiki.blender.org/wiki/User:Tempo/GSoC2020/Final_Report

Sad to see. It reads rather useable in it’s last state.
I’d really love to know just what the final status on this is. :no_mouth:

6 Likes

Yeah it would be useful to know what is missing for a merge in master. Idk who was the mentor of this project but maybe he could clarify what still needs to be done. Or @Tempo ?

4 Likes

Yeah, i dont understand why

Actually, pretty familiar team members also very ling team members of Blender Foundation
Campbell Barton, Dalai Felinto

The Code was so far from done and also had remaining todos, I checked the code recently and found main has changed a lot so bringing the code to current is a huge task and finishing the remaining TODOs will take a lot of time.

2 Likes

Aw damn. :face_with_diagonal_mouth:
Hope it might get picked up another GSoC or maybe even in a revamped design form. Thanks for checking.

2 Likes