UI Experiment: Workspace Tooltip Previews #117008

Closed
Harley Acheson wants to merge 1 commits from Harley/blender:WorkspacePreviews into main

When changing the target branch, be careful to rebase the branch in your fork to match. See documentation.
Member

Show previews of layouts in the tooltips of Workspace tabs.


More of a conversation starter than a useful thing.

The tooltips for all the Workspace tabs say the exact same thing: "Active workspace showing in the window." With this PR they instead show a graphical representation of the layout. This was something we've talked about a long time ago.

WorkspacePreviews.gif

Show previews of layouts in the tooltips of Workspace tabs. --- More of a conversation starter than a useful thing. The tooltips for all the Workspace tabs say the exact same thing: "Active workspace showing in the window." With this PR they instead show a graphical representation of the layout. This was something we've talked about a long time ago. ![WorkspacePreviews.gif](/attachments/950ba98b-0669-40a4-9f91-ef610f98f136)
Harley Acheson added 1 commit 2024-01-11 01:42:07 +01:00
fd139975e0 UI Experiment: Workspace Tooltip Previews
Show previews of layouts in the tooltips of Workspace tabs.
Harley Acheson added this to the User Interface project 2024-01-11 01:43:40 +01:00
First-time contributor

It would be interesting if we could somehow assign an editor icon for the workspace.
Say show a Compositor icon for the compositing workdpace, or an NLA or Curve editor for the Animation Workspace, etc.

The issue is I don't think there's a good way to determine one automatically, we need an UI to explicit assign one somehow.

Would an acceptable heuristic be to inferred an icon from the editor with the largest size by area? Would this be feasible within acceptable performance penalties?

It would be interesting if we could somehow assign an editor icon for the workspace. Say show a _Compositor_ icon for the compositing workdpace, or an _NLA_ or _Curve_ editor for the _Animation_ Workspace, etc. The issue is I don't think there's a good way to determine one automatically, we need an UI to explicit assign one somehow. Would an acceptable heuristic be to inferred an icon from the editor with the largest size by area? Would this be feasible within acceptable performance penalties?
Author
Member

It would be interesting if we could somehow assign an editor icon for the workspace.

That is worth experimenting with, but not sure it if that would give us anything more than the name itself.

Would an acceptable heuristic be to inferred an icon from the editor with the largest size by area?

That would need some thought. So many of the the layouts have the 3D View as the largest area. And even differentiating between modes might not be enough.

Would this be feasible within acceptable performance penalties?

We basically have a little blank bitmap - currently 128 pixels wide by a vertical amount that matches your current window - and we can draw anything on it we want. Currently just filling with the Editor Outline color and then filling a rectangle for each editor in its background color. This is pretty trivial.

If the little area is large enough we could show its icon at its top-left. Although I tend to think drawing something more representative in the middle would make more sense visually. As in the icon for a 3D object in the middle of 3DView, Icon representing an image in middle of Image editor.

Probably possible to get a bit fancier with the drawing of these areas but might be tricky to do so and not detract from the clear division lines between them.

> It would be interesting if we could somehow assign an editor icon for the workspace. That is worth experimenting with, but not sure it if that would give us anything more than the name itself. > Would an acceptable heuristic be to inferred an icon from the editor with the largest size by area? That would need some thought. So many of the the layouts have the 3D View as the largest area. And even differentiating between modes might not be enough. > Would this be feasible within acceptable performance penalties? We basically have a little blank bitmap - currently 128 pixels wide by a vertical amount that matches your current window - and we can draw anything on it we want. Currently just filling with the Editor Outline color and then filling a rectangle for each editor in its background color. This is pretty trivial. If the little area is large enough we could show its icon at its top-left. Although I tend to think drawing something more representative in the middle would make more sense visually. As in the icon for a 3D object in the middle of 3DView, Icon representing an image in middle of Image editor. Probably possible to get a bit fancier with the drawing of these areas but might be tricky to do so and not detract from the clear division lines between them.
First-time contributor

That is worth experimenting with, but not sure it if that would give us anything more than the name itself.
That would need some thought. So many of the the layouts have the 3D View as the largest area. And even differentiating between modes might not be enough.

Right, probably not a good idea by area size, not always enough to disambiguate meaningfully

If the little area is large enough we could show its icon at its top-left. Although I tend to think drawing something more representative in the middle would make more sense visually. As in the icon for a 3D object in the middle of 3DView, Icon representing an image in middle of Image editor.
Probably possible to get a bit fancier with the drawing of these areas but might be tricky to do so and not detract from the clear division lines between them.

I also pondered about drawing an icon for every area, but at this size it will probably just look confusing and cluttered.
Maybe drawing an icon or pictogram only for areas above a certain size solves the practical side of actually fitting the icon in the available space. Hopefully this would coincide vaguely with the purpose of a workspace assuming larger areas are more representative, though as you say it is a stretch, many will just be 3D views.

Drawing a Mode icon may give a little more hints about the goal, but at this point I'm wondering if it is worth sacrificing the current simplicity

> That is worth experimenting with, but not sure it if that would give us anything more than the name itself. > That would need some thought. So many of the the layouts have the 3D View as the largest area. And even differentiating between modes might not be enough. Right, probably not a good idea by area size, not always enough to disambiguate meaningfully > If the little area is large enough we could show its icon at its top-left. Although I tend to think drawing something more representative in the middle would make more sense visually. As in the icon for a 3D object in the middle of 3DView, Icon representing an image in middle of Image editor. > Probably possible to get a bit fancier with the drawing of these areas but might be tricky to do so and not detract from the clear division lines between them. I also pondered about drawing an icon for every area, but at this size it will probably just look confusing and cluttered. Maybe drawing an icon or pictogram only for areas above a certain size solves the practical side of actually fitting the icon in the available space. Hopefully this would coincide vaguely with the purpose of a workspace assuming larger areas are more representative, though as you say it is a stretch, many will just be 3D views. Drawing a _Mode_ icon may give a little more hints about the goal, but at this point I'm wondering if it is worth sacrificing the current simplicity
Author
Member

@DuarteRamos - Have you noticed a way of getting the bitmap of an interface icon?

@DuarteRamos - Have you noticed a way of getting the bitmap of an interface icon?
First-time contributor

@DuarteRamos - Have you noticed a way of getting the bitmap of an interface icon?

I only know how to get icon to show in Python layouts, but I don't think it would be useful here, would it?

> @DuarteRamos - Have you noticed a way of getting the bitmap of an interface icon? I only know how to get icon to show in Python layouts, but I don't think it would be useful here, would it?

Personally I don't think this is solving any real problem, there is no need to preview an action like this when you can just do it. The particular layout is also not the important information, it's the editors and modes that are used.

I would not add this type of functionality.

Personally I don't think this is solving any real problem, there is no need to preview an action like this when you can just do it. The particular layout is also not the important information, it's the editors and modes that are used. I would not add this type of functionality.
Author
Member

@brecht - ...don't think this is solving any real problem...I would not add this type of functionality.

Yeah, was hoping that it could turn into something useful, but definitely not as is here.

Current best thought is to include the icons of the editors, but it looks to be a pain to get the bitmaps of these:

image

Surprisingly, this type of thing is quite readable, but would require us supplying an image (just on disk) for each workspace:

image

> @brecht - ...don't think this is solving any real problem...I would not add this type of functionality. Yeah, was hoping that it could turn into something useful, but definitely not as is here. Current best thought is to include the icons of the editors, but it looks to be a pain to get the bitmaps of these: ![image](/attachments/2225676b-f749-4163-a1c0-5324b0d14fae) Surprisingly, this type of thing is quite readable, but would require us supplying an image (just on disk) for each workspace: ![image](/attachments/faf6983c-8f24-4479-a8aa-601ebec2cc96)
First-time contributor

Seems like an exercise in finding things to do versus actually improving what is improperly implemented or unfinished.

Seems like an exercise in finding things to do versus actually improving what is improperly implemented or unfinished.
Author
Member

Seems like an exercise in finding things to do versus actually improving what is improperly implemented or unfinished.

Was playing around with this on the weekend. In my spare time I will work on anything I like, just as you do.

> Seems like an exercise in finding things to do versus actually improving what is improperly implemented or unfinished. Was playing around with this on the weekend. In my spare time I will work on anything I like, just as you do.
First-time contributor

Was playing around with this on the weekend. In my spare time I will work on anything I like, just as you do.

Maybe my post had an improper tone. I simply meant for Blender’s greater ultimate focus, since this is the site for Blender’s development. If you don’t want feedback, just let me know.

> Was playing around with this on the weekend. In my spare time I will work on anything I like, just as you do. Maybe my post had an improper tone. I simply meant for Blender’s greater ultimate focus, since this is the site for Blender’s development. If you don’t want feedback, just let me know.
Harley Acheson closed this pull request 2024-01-21 19:29:38 +01:00

Pull request closed

Sign in to join this conversation.
No reviewers
No Label
Interest
Alembic
Interest
Animation & Rigging
Interest
Asset Browser
Interest
Asset Browser Project Overview
Interest
Audio
Interest
Automated Testing
Interest
Blender Asset Bundle
Interest
BlendFile
Interest
Collada
Interest
Compatibility
Interest
Compositing
Interest
Core
Interest
Cycles
Interest
Dependency Graph
Interest
Development Management
Interest
EEVEE
Interest
EEVEE & Viewport
Interest
Freestyle
Interest
Geometry Nodes
Interest
Grease Pencil
Interest
ID Management
Interest
Images & Movies
Interest
Import Export
Interest
Line Art
Interest
Masking
Interest
Metal
Interest
Modeling
Interest
Modifiers
Interest
Motion Tracking
Interest
Nodes & Physics
Interest
OpenGL
Interest
Overlay
Interest
Overrides
Interest
Performance
Interest
Physics
Interest
Pipeline, Assets & IO
Interest
Platforms, Builds & Tests
Interest
Python API
Interest
Render & Cycles
Interest
Render Pipeline
Interest
Sculpt, Paint & Texture
Interest
Text Editor
Interest
Translations
Interest
Triaging
Interest
Undo
Interest
USD
Interest
User Interface
Interest
UV Editing
Interest
VFX & Video
Interest
Video Sequencer
Interest
Virtual Reality
Interest
Vulkan
Interest
Wayland
Interest
Workbench
Interest: X11
Legacy
Blender 2.8 Project
Legacy
Milestone 1: Basic, Local Asset Browser
Legacy
OpenGL Error
Meta
Good First Issue
Meta
Papercut
Meta
Retrospective
Meta
Security
Module
Animation & Rigging
Module
Core
Module
Development Management
Module
EEVEE & Viewport
Module
Grease Pencil
Module
Modeling
Module
Nodes & Physics
Module
Pipeline, Assets & IO
Module
Platforms, Builds & Tests
Module
Python API
Module
Render & Cycles
Module
Sculpt, Paint & Texture
Module
Triaging
Module
User Interface
Module
VFX & Video
Platform
FreeBSD
Platform
Linux
Platform
macOS
Platform
Windows
Priority
High
Priority
Low
Priority
Normal
Priority
Unbreak Now!
Status
Archived
Status
Confirmed
Status
Duplicate
Status
Needs Info from Developers
Status
Needs Information from User
Status
Needs Triage
Status
Resolved
Type
Bug
Type
Design
Type
Known Issue
Type
Patch
Type
Report
Type
To Do
No Milestone
No project
No Assignees
4 Participants
Notifications
Due Date
The due date is invalid or out of range. Please use the format 'yyyy-mm-dd'.

No due date set.

Dependencies

No dependencies set.

Reference: blender/blender#117008
No description provided.