Simple customization of panel layout to clear/arrange space for different workflows

During triage I have read a number of issues very interesting with asks about some sort of panel layout customization.
Here is a proposal for some simple customization of the visible panels in order to allow the user to have the best arrangement of panels based on the workflow to accomplish.
A gear icon is created in each tab. This opens a pop up where one can either click the "eye icon" to hide the panel or the "star icon" to move it to the "BOOKMARK" tab.
Please take a look:
"
Probably next step is to save this to some .json file so the settings can be kept after restart
Let me know what you think.
Thanks!

MassimosteverugiFranSeoanewalpazoomerJohnatomkarinca

Comments

  • Very interesting! Like the ability to hide things, because there's a bunch of stuff I have no idea how/when I would use. Some further suggestions if you haven't already done or thought of them:
    1. Hiding whole tabs (i.e. Services and Systems, Structural Analysis, Facility Management)
    2. Saving the reordering the existing panels within a tab, or in your favorites tab.
    3. A "Reset to default layout" option.

    zoomer
  • @falken10vdl very interesting!
    I remember there was an option in the past where user can enable/unable different panels, but i think it isn't available anymore..
    I like the bookmark panel idea, it could be very useful!

  • Etymology of wiki

  • Lol thought I was on ChatGPT

  • Here with the proposal from @sjb007

    The import/export is still WIP.
    Thanks!

    MassimoGerardTsjb007Johnsteverugi
  • Excellent! Small suggestions:

    • Lose the load/save (import/export) buttons in the main interface if possible. Have them inside the popup dialog, along with a reset to default.
    • Is it possible for the top-most gear icon to be on the same row as the tabs, but still right aligned? It looks a bit peculiar pushing the tabs down a row like that.
  • Something like this, right?

    Allocated 90% of the width to the left column (centered)

                    split = self.layout.split(factor=0.9)
                    col_left = split.column(align=True)
                    row_left = col_left.row(align=True)
                    row_left.alignment = "CENTER"
    

    Let me get the loading/saving logic in place and I will submit a PR for review.
    Thanks!

    sjb007
  • Here the updated proposal.

    I am very new to Bonsai & Blender :) and I am an amateur programmer in python (used to make patches in assembler for Telco Switches...) so I have used scene properties (I guess blender's way) for the booleans to control the panels visibility and if they are in the bookmarks tab and a simple python dictionary with booleans for the tabs visibility. Sincerely I do not know what is best, pros and cons of using either one and best practice. Maybe the core developers could give a hint or point to some discussion between storing in blender's properties vs python's standard or even IFC properties (I have seen that for example arrays are stored in the IFC by means of properties. I do not think that UI info is something probably to store in IFC but who knows ;) ).
    Let me craft some documentation and I will submit a PR for review.
    Thanks!

    MassimoJohnDarth_BlenderzoomerOwura_quatomkarincaGerardTwalpabruno_perdigao
  • Here the PR User UI customization #6638 with the doc updating the interface part for your review.
    I attach the updated doc.
    Thanks!

    MassimosteverugiwalpaDimitris
  • Interesting. I like that it doesn't add too much clutter to the UI, looks streamlined. I think it's still reserved for power users or technical supervisors because newcomers won't know what they need or don't need before knowing what's in available in a panel. I think it makes sense having these properties stored in the Blend file rather than globally in the addon preferences, because different files may entail different workflows. However having a way to define presets or default values in the preferences would be a plus.

    There was some time ago some parameters in the preferences that allowed to fine tune which panels were allowed, but it's been scraped when the whole UI was reworked to display most of the properties in the scene interface. There was some talks about enabling or disabling interface elements depending on the user workflow.

  • @Gorgious I completely agree. Probably, rather than a json file to store these settings a blenderfile (only storing the workspace data block?) could store this and the relative position of the panels within the TAB. When loading the IFC this could also load this UI info from that blend file if it actually exists (ex .bonsai_layout_blend).
    Thanks!

Sign In or Register to comment.