UI: Gizmo Button for Lock Camera to View #111076

Merged
Harley Acheson merged 3 commits from Harley/blender:LockCameraView into main 2024-02-01 21:47:59 +01:00
Member

3DView 2D gizmo navigation button to toggle "Lock Camera to View".


This was proposed earlier, https://archive.blender.org/developer/D10835 , had a lot of "likes", was approved by Campbell, merged, but then later reverted. It was reverted earlier because some are not happy with toggle buttons there and there were concerns about the icon. The following now uses new larger icons created by Alexey Adamitsky.

Currently the "Camera" button works as an operator to move in or out of camera view, but it does not indicate the current state - always looks the same. Here we have an unfilled version of the Camera icon when not in camera view, and a filled version to indicate we are in this state:

preview-LockCamera.gif

The Lock/Unlock icons are similarly unfilled and filled:

preview-LockCamera.gif

3DView 2D gizmo navigation button to toggle "Lock Camera to View". --- This was proposed earlier, https://archive.blender.org/developer/D10835 , had a lot of "likes", was approved by Campbell, merged, but then later reverted. It was reverted earlier because some are not happy with toggle buttons there and there were concerns about the icon. The following now uses new larger icons created by Alexey Adamitsky. Currently the "Camera" button works as an operator to move in or out of camera view, but it does not indicate the current state - always looks the same. Here we have an unfilled version of the Camera icon when not in camera view, and a filled version to indicate we are in this state: ![preview-LockCamera.gif](/attachments/2e3c8c65-7280-4b4f-8c8b-6d6dd05bc8fa) The Lock/Unlock icons are similarly unfilled and filled: ![preview-LockCamera.gif](/attachments/3384e3f0-12cf-408d-932c-bb23c9f866a1)
Harley Acheson added this to the User Interface project 2023-08-12 22:11:58 +02:00
Harley Acheson requested review from Pablo Vazquez 2023-08-12 22:12:05 +02:00
First-time contributor

What's the hold up?

What's the hold up?
First-time contributor

Would be awesome to see this move forward :)

Would be awesome to see this move forward :)
First-time contributor

Any news? Woulde be a nice improvment :)

Any news? Woulde be a nice improvment :)
Author
Member

We haven't reject this and have plans to revisit it again, but I doubt for the very near future. Perhaps we can talk about it again after the Conference.

We haven't reject this and have plans to revisit it again, but I doubt for the very near future. Perhaps we can talk about it again after the Conference.
Contributor

Not a single person shares the opinion that this feature shouldn't be in main because it has 'substantandard icon' and is one of the most widely anticipated change. It is absurd that single individuals can block such a feature in what we consider open-source project.

Not a single person shares the opinion that this feature shouldn't be in main because it has 'substantandard icon' and is one of the most widely anticipated change. It is absurd that single individuals can block such a feature in what we consider open-source project.
First-time contributor
[Doing everything I can...](https://blender.community/c/rightclickselect/myDG/) 😩
First-time contributor

Replying on this again, to put it back on the current radar.

There are numerous UI changes being made all over Blender in the past quarter. It doesn't appear that the Blender UI is in some sort of "lockdown phase", so that 111076 cannot be merged.

It also does not appear that UI must remain "locked" to not have new behavior - search menu,modifier menu, how text fields look, and so on.

What is the reasoning that this commit isn't acceptable and can not move forward?

Replying on this again, to put it back on the current radar. There are *numerous* UI changes being made all over Blender in the past quarter. It doesn't appear that the Blender UI is in some sort of "lockdown phase", so that 111076 cannot be merged. It also does not appear that UI must remain "locked" to not have new behavior - search menu,modifier menu, how text fields look, and so on. What is the reasoning that this commit isn't acceptable and can not move forward?
First-time contributor

Again, it would be awesome to see this move forward. The number of hearts and upvotes on this PR is, as best as I can tell, the highest of any open pull request. It seems like this is the single most important thing to the community of all the open PRs, so it would be great to have that reflected in an actionable way

Again, it would be awesome to see this move forward. The number of hearts and upvotes on this PR is, as best as I can tell, the _highest of any open pull request_. It seems like this is the single most important thing to the community of all the open PRs, so it would be great to have that reflected in an actionable way
Author
Member

In a nutshell we aren't really happy with the current "toggle" buttons there, so it is tough to add a new one.

The "Camera" button toggles but does change the icon at all, so you can't tell which mode you are in from looking at it. The "Persp/Ortho" button change the icon, but it isn't really clear that this indicates the mode you are in versus the mode you get. So I have found that adding a new one to the list has been a tall ask.

Perhaps if all those icons were improved in some cohesive way I might be able to add to it.

In a nutshell we aren't really happy with the current "toggle" buttons there, so it is tough to add a new one. The "Camera" button toggles but does change the icon at all, so you can't tell which mode you are in from looking at it. The "Persp/Ortho" button change the icon, but it isn't really clear that this indicates the mode you are in versus the mode you get. So I have found that adding a new one to the list has been a tall ask. Perhaps if all those icons were improved in some cohesive way I might be able to add to it.
Contributor

But in gif it shows lock icon changing? I think its a great place for that actually. In my experience newcomers to Blender have problem remembering location of only handful of properties, and this one tops the list. Its so hidden, I tell everyone to assign shortcut to it and remember, but people prefer buttons.

If we want to make locked state more apparent, how about we add red tint to the icon when its locked?

image

I think for a feature that requested and that badly needed, its ok if it doesnt fit into Blenders or anybodys design, because it will simply make life easier for absolutely everyone. But I hope we can find middle ground here so that everyones happy and we can land this in 4.1

But in gif it shows lock icon changing? I think its a great place for that actually. In my experience newcomers to Blender have problem remembering location of only handful of properties, and this one tops the list. Its so hidden, I tell everyone to assign shortcut to it and remember, but people prefer buttons. If we want to make locked state more apparent, how about we add red tint to the icon when its locked? ![image](/attachments/ff937c5d-e7e8-428e-8441-2dd90a947bdb) I think for a feature that requested and that badly needed, its ok if it doesnt fit into Blenders or anybodys design, because it will simply make life easier for absolutely everyone. But I hope we can find middle ground here so that everyones happy and we can land this in 4.1
First-time contributor

I agree with @nickberckley :

I think for a feature that requested and that badly needed, its ok if it doesnt fit into Blenders or anybodys design...

If the requirement for this to move forward is a perfect icon, it's never going to happen, and that would be a colossal tragedy

I agree with @nickberckley : > I think for a feature that requested and that badly needed, its ok if it doesnt fit into Blenders or anybodys design... If the requirement for this to move forward is a perfect icon, it's never going to happen, and that would be a colossal tragedy
First-time contributor

We are nearly 4 years since this matter was discussed in this thread.

Four. Years.

The single thing I most despise about downloading daily builds for testing, is having to deal with Camera Lock being buried in the interface. I know exactly where it lives, and in my "production" build of blender I've got a custom space_view3d.py that puts the function in the toolbar (but I don't play such games with testing Alpha versions, for reasons that should be obvious.)

One might wish those little rounds buttons have never been put into the UI - ok, well... that train left the station a few years ago. At present, they're part of the established UI and honestly I have no problem with them at all. The buttons are convenient, and work well. I also believe that the GIF example as shown, looks to work perfectly well and there is nothing wrong with the appearance whatsoever. The state of "In Camera" is clearly indicated the the perspective icon is no longer present, and the LOCK state icon makes the situation quite obvious. I see no ambiguity here at all.

It might be unfortunate that years ago, someone overlooked the fact that the view "pop out" of camera mode *just because you want to rotate the view (a completely normal activity) required added the "lock to view" checkbox and hid it away in the interface. But, again - that train has also left the station.

My perception of the PR is to take a minimal step towards SANITY in this matter. The goalpost needs to stop being moved into areas of "I don't like the icon", or "I wish these icons weren't even here." NONE of that is worse than the situation itself.

This PR is being held to standards that few recent other UI changes have had to pass examination on; they have drastically changed user behaviors, yet have been blessed with approval with less ... scrutiny, than this particular feature/PR has faced.

Four. Years.

We are nearly 4 years since this matter was discussed in [this thread](https://devtalk.blender.org/t/lock-camera-to-view-it-was-torture-to-find-it/5473/1). Four. Years. The single thing I **most** despise about downloading daily builds for testing, is having to deal with Camera Lock being buried in the interface. I know exactly where it lives, and in my "production" build of blender I've got a custom space_view3d.py that puts the function in the toolbar (but I don't play such games with testing Alpha versions, for reasons that should be obvious.) One might wish those little rounds buttons have never been put into the UI - ok, well... that train left the station a few years ago. At present, they're part of the established UI and honestly I have no problem with them at all. The buttons are convenient, and work well. I also believe that the GIF example as shown, looks to work perfectly well and there is nothing wrong with the appearance whatsoever. The state of "In Camera" is clearly indicated the the perspective icon is no longer present, and the LOCK state icon makes the situation quite obvious. I see no ambiguity here at all. It might be unfortunate that years ago, someone overlooked the fact that the view "pop out" of camera mode *just because you want to rotate the view (a completely normal activity) required added the "lock to view" checkbox and hid it away in the interface. But, again - that train has also left the station. My perception of the PR is to take a *minimal* step towards SANITY in this matter. The goalpost needs to stop being moved into areas of "I don't like the icon", or "I wish these icons weren't even here." NONE of that is **worse** than the situation itself. This PR is being held to standards that few recent other UI changes have had to pass examination on; they have *drastically* changed user behaviors, yet have been blessed with approval with less ... scrutiny, than this particular feature/PR has faced. Four. Years.
First-time contributor

I also agree with @nickberckley and everyone else. I think the extreme usefulness and ease of access/discoverability for this essencial feature are way more important than some very minor design issues on the icons.

To be honest, this situation is a bit laughable to me, especially since it was already committed and worked fine. If every feature that was to be added to Blender were held to this standard, there would be no software. I'd much rather have a function that has some minor inconsistently in its designed, but works well when pressed, than nothing at all.

The very minor design issues are already there in the current Blender, and I don't see how this makes it any worse. It does not stop it from getting a redesign anytime in the future either. We only miss out on a really nice UI feature that should have already been there in the first place. It would make it way easier for beginners to find the function and for pro users, not needing to waste time remembering to set up a shortcut for this essencial function in order to work efficiently.

Why can't we have nice things, sigh :(

I also agree with @nickberckley and everyone else. I think the extreme usefulness and ease of access/discoverability for this essencial feature are way more important than some very minor design issues on the icons. To be honest, this situation is a bit laughable to me, especially since it was already committed and worked fine. If every feature that was to be added to Blender were held to this standard, there would be no software. I'd much rather have a function that has some minor inconsistently in its designed, but works well when pressed, than nothing at all. The very minor design issues are already there in the current Blender, and I don't see how this makes it any worse. It does not stop it from getting a redesign anytime in the future either. We only miss out on a really nice UI feature that should have already been there in the first place. It would make it way easier for beginners to find the function and for pro users, not needing to waste time remembering to set up a shortcut for this essencial function in order to work efficiently. Why can't we have nice things, sigh :(
First-time contributor

I wish they would at least address other alternatives.
This is a much needed feature.

I wish they would at least address other alternatives. This is a much needed feature.
Author
Member

I tried, once again, to improve the icons used without any success. Lock and unlock are the only set that works well there.

The Persp/ortho button shows current state, not what you get if you click on it. And Lock Camera to View is off by default. This means the icon shown initially has to indicate the normal non-locked status. Hard to find anything that works better than "unlocked".

I also find that with that mishmash of navigate buttons these really need a matched pair where the two states are visually very similar, like lock and unlock.

I also tried using "Lock Camera to View" as as sort of "Camera composition" mode, so while on we could add new buttons for camera moves, focal length changes, etc. But that row of navigate buttons can't get very long, and they get confusing when some are removed when clicking on a button below. It never quite worked. And using "Lock Camera to View" as a mode for other features doesn't work when the buttons show current state, rather than potential state. You'd want to click on a "Camera composition", not a ""Camera composition is off" button.

It is tough trying to "improve" this thing without any direction on why it needs it or how to address the unspoken objections. This was made and proposed, approved by a UI Module member and senior developer, and committed. It was reverted by the request of a single person who has never given direction on what would be needed for it to be approved again.

I tried, once again, to improve the icons used without any success. Lock and unlock are the only set that works well there. The Persp/ortho button shows current state, not what you get if you click on it. And Lock Camera to View is off by default. This means the icon shown initially has to indicate the normal non-locked status. Hard to find anything that works better than "unlocked". I also find that with that mishmash of navigate buttons these really need a matched pair where the two states are visually very similar, like lock and unlock. I also tried using "Lock Camera to View" as as sort of "Camera composition" mode, so while on we could add new buttons for camera moves, focal length changes, etc. But that row of navigate buttons can't get very long, and they get confusing when some are removed when clicking on a button below. It never quite worked. And using "Lock Camera to View" as a mode for other features doesn't work when the buttons show current state, rather than potential state. You'd want to click on a "Camera composition", not a ""Camera composition is off" button. It is tough trying to "improve" this thing without any direction on why it needs it or how to address the unspoken objections. This was made and proposed, approved by a UI Module member and senior developer, and committed. It was reverted by the request of a single person who has never given direction on what would be needed for it to be approved again.
First-time contributor

It is tough trying to "improve" this thing without any direction on why it needs it or how to address the unspoken objections. This was made and proposed, approved by a UI Module member and senior developer, and committed. It was reverted by the request of a single person who has never given direction on what would be needed for it to be approved again.

This seems like a good topic for a UI Module meeting, because your subtext is right, this is a classic example of red tape gone wrong.

If this single person has veto power over every UI decision, they should be actively working to explain decisions and move things forward. If they don’t, it would be for the best to ignore their opinion entirely here. Either way, @Harley , you’re doing everything right, please keep it up and fight past this ridiculous roadblock

> It is tough trying to "improve" this thing without any direction on why it needs it or how to address the unspoken objections. This was made and proposed, approved by a UI Module member and senior developer, and committed. It was reverted by the request of a single person who has never given direction on what would be needed for it to be approved again. This seems like a good topic for a UI Module meeting, because your subtext is right, this is a classic example of red tape gone wrong. If this single person has veto power over every UI decision, they should be actively working to explain decisions and move things forward. If they don’t, it would be for the best to ignore their opinion entirely here. Either way, @Harley , you’re doing everything right, please keep it up and fight past this ridiculous roadblock
First-time contributor

That's really sad.
This is where user feedback goes to waste.

That's really sad. This is where user feedback goes to waste.
Contributor

@Harley if one developers request is enough to get feature removed, how many user requests does it take to add it back?

As for icon. Youre overthinking it. It shouldnt show you whats gonna happen. It should show current state. Unlock ìcon when its unlocked and lock icon when its locked. Heres reasons:

  1. Thats how perspective toggle icons work
  2. Blender already has standard about lock icons. Everywhere else it works like that. For example dope sheet channels. How weird would it be if channels all had lock icon because it will get locked if you press it? They have unlock icons because theyre unlocked.

Do you ever get bug reports like all my channels are unlocked even tho icon shows theyre currently locked? No because reason 3
3. Thats how it works in every software ever. There is no learning curve here. Sometimes Blender devs have tendency to forget other softwates exist and people are not learning computers with Blender. We know how lock icons work, were not that dumb. And if someone is confused about why there is unlovk icon there for some reason thats how it will go:

  • hm. What does this do?
  • oh cool

Thats it. Its a button there is nothing complicated about it.

@Harley if one developers request is enough to get feature removed, how many user requests does it take to add it back? As for icon. Youre overthinking it. It shouldnt show you whats gonna happen. It should show current state. Unlock ìcon when its unlocked and lock icon when its locked. Heres reasons: 1. Thats how perspective toggle icons work 2. Blender already has standard about lock icons. Everywhere else it works like that. For example dope sheet channels. How weird would it be if channels all had lock icon because it will get locked if you press it? They have unlock icons because theyre unlocked. Do you ever get bug reports like all my channels are unlocked even tho icon shows theyre currently locked? No because reason 3 3. Thats how it works in every software ever. There is no learning curve here. Sometimes Blender devs have tendency to forget other softwates exist and people are not learning computers with Blender. We know how lock icons work, were not that dumb. And if someone is confused about why there is unlovk icon there for some reason thats how it will go: - hm. What does this do? - oh cool Thats it. Its a button there is nothing complicated about it.
First-time contributor

It seems like the reviewer might not be aware of this or active, as it's been open for months with absolutely no activity from them. Can the reviewer be changed to someone more active?

It seems like the reviewer might not be aware of this or active, as it's been open for months with absolutely no activity from them. Can the reviewer be changed to someone more active?
Author
Member

It seems like the reviewer might not be aware of this or active, as it's been open for months with absolutely no activity from them. Can the reviewer be changed to someone more active?

Actually this PR couldn't go in even with Pablo's approval. This PR requires discussion of the UI Module again to see if any changes can be made that could it allow it to be merged. I had it on our agenda for the meeting on the 2nd but nobody showed up. It is on our agenda for the next meeting.

> It seems like the reviewer might not be aware of this or active, as it's been open for months with absolutely no activity from them. Can the reviewer be changed to someone more active? Actually this PR couldn't go in even with Pablo's approval. This PR requires discussion of the UI Module again to see if any changes can be made that could it allow it to be merged. I had it on our agenda for the meeting on the 2nd but nobody showed up. It is on our agenda for the [next meeting](https://devtalk.blender.org/t/2024-1-16-user-interface-meeting/32774).
First-time contributor

Based on the latest changes, I would recommend improving the visual feedback of zoom and pan buttons. While the mouse left click is down, keep the background color of the icon blue (active color) signaling the user that it's the current active action. It'll follow the new visual feedback logic of navigation buttons.

Based on the latest changes, I would recommend improving the visual feedback of zoom and pan buttons. While the mouse left click is down, keep the background color of the icon blue (active color) signaling the user that it's the current active action. It'll follow the new visual feedback logic of navigation buttons.
Author
Member

@AlexeyAdamitsky - While the mouse left click is down, keep the background color of the icon blue (active color) signaling the user that it's the current active action. It'll follow the new visual feedback logic of navigation buttons.

Yes, that would be nice. I'm (so far) not seeing a way to do that with current code. Will keep looking though.

> @AlexeyAdamitsky - While the mouse left click is down, keep the background color of the icon blue (active color) signaling the user that it's the current active action. It'll follow the new visual feedback logic of navigation buttons. Yes, that would be nice. I'm (so far) not seeing a way to do that with current code. Will keep looking though.
Member

Module meeting consensus was that the blue would be indeed be a bit too much, considering the size of these special widgets.

Proposal:

  • Remove the blue highlight
  • Make the camera toggle use the outline version of the icon when not in camera view, so it matches the lock icon change.

After these changes I think this would be good to go, in time for 4.1

Module meeting consensus was that the blue would be indeed be a bit too much, considering the size of these special widgets. Proposal: * Remove the blue highlight * Make the camera toggle use the outline version of the icon when not in camera view, so it matches the lock icon change. After these changes I think this would be good to go, in time for 4.1
Author
Member

I am now in possession of an unfilled camera icon that matches existing widget camera, from Alexey Adamitsky! Will update this PR with it soon.

I am now in possession of an unfilled camera icon that matches existing widget camera, from Alexey Adamitsky! Will update this PR with it soon.
Pablo Vazquez approved these changes 2024-02-01 11:24:26 +01:00
Pablo Vazquez left a comment
Member

Thanks! (and thanks Alexey for the icons!)

Design wise I think this one is good to go.

Thanks! (and thanks Alexey for the icons!) Design wise I think this one is good to go.
Harley Acheson force-pushed LockCameraView from 72f30d646b to dd067867bc 2024-02-01 21:07:30 +01:00 Compare
Harley Acheson added 1 commit 2024-02-01 21:10:10 +01:00
buildbot/vexp-code-patch-lint Build done. Details
buildbot/vexp-code-patch-linux-x86_64 Build done. Details
buildbot/vexp-code-patch-darwin-x86_64 Build done. Details
buildbot/vexp-code-patch-windows-amd64 Build done. Details
buildbot/vexp-code-patch-darwin-arm64 Build done. Details
buildbot/vexp-code-patch-coordinator Build done. Details
2f53d604ce
Unintentional change - was only when highlighting color
Author
Member

Code was reviewed and accepted by Campbell Barton on Mar 30 2021. He actually wrote the code to let the gizmos change property values.

Code was reviewed and accepted by Campbell Barton on Mar 30 2021. He actually wrote the code to let the gizmos change property values.
Author
Member

@blender-bot build

@blender-bot build
Harley Acheson added 1 commit 2024-02-01 21:47:10 +01:00
Harley Acheson merged commit 23faaac68b into main 2024-02-01 21:47:59 +01:00
Harley Acheson deleted branch LockCameraView 2024-02-01 21:48:01 +01:00
First-time contributor

Thanks a lot! @Harley 🥳 Look forward to use this in 4.1! 😄

Thanks a lot! @Harley 🥳 Look forward to use this in 4.1! 😄
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
9 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#111076
No description provided.