I had a discussion with another user about a little thing about the drop down menu, that sets view orientation...
Currently the menu allows 8 items to be visible but, when you open a new scene, 9 items appear on that menu already. So, what happens is that the user rotates the view once, the orientation becomes "Other", then the user wants to return the orientation to "Front" and has to scroll the menu just the one step that does not quite fit the viewable list...
You might not believe but this is actually very annoying, especially because it feels so unnecessary.
The menu is made out of a BComboBox, that has a method to change the preferred amount of lines, but though the menu itself can be picked out from the View, I did not find a way to change the behaviour (it is inside an inner class and set private).
I also tried to make different copy of it and replace the menu by plugin, but that one could not add cameras and lights into the list (the setting of the preferred amount of lines was working though).
We discussed that something like 16 to 20 lines might be a good amount. 20 may seem long but it is still manageable. Into 16 you could add another camera and a few spot/directional lights and still not have to scroll the menu all the time....
So:
1) Is there any way of accessing the amount of lines, for example by a start-up script?
2) Is it possible to make a custom copy of the menu (in a different package) work with the rest of the software?
3) Could the preferred number of lines be made a user preference? (I'd favour this option)
-P-
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Pete, I think that the start-up script and plugin options are out. ViewOrientationControl is kind of hard-coded at the moment. I think that the easiest way to deal with this would be to modify the class to have a larger number of available lines. The default max may have been sane at one time, but that was before every spotlight was available as a camera location...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
It does work, but has an edge case. If for some reason someone adds many lights or cameras to a scene, the box will end up crawling off the top and bottom of the screen.
On my system, that ended up being about 60 extra view entries, but I have an HD screen, and I keep my system text settings fairly small. I should note, even before the list got that large, it started to have some display issues, as it would have to offset from the dropdown location to fit on the screen.
I might suggest having:
setPreferredVisibleRows(20)
and then have the list ordered such that all cameras are above the list of spot and directional lights, just in case someone has a large number of either...
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
if (getItemCount() > 20)
setPreferredVisibleRows(16);
else
setPreferredVisibleRows(getItemCount());
That would take care of the scrolling-for-just-one-item-issue. The numbers don't have to be 16 and 20 but probably not more than 20 and 25 anyway...
I have also sometimes played with some 20-30 spotlights. The drop down menu definitely needs a limit. :) (I'm not sure what adds the lights into the list, or if the above would work correctly with those, but I agree that those should be after all the cameras.)
Last edit: Pete 2015-04-16
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
After thinking about this a bit more, I decided I was making it more complicated than it needed to be, and just called setPreferredVisibleRows(20) in the constructor. I think that should work well. It's checked in.
Peter
If you would like to refer to this comment somewhere else in this project, copy and paste the following link:
Hi.
I had a discussion with another user about a little thing about the drop down menu, that sets view orientation...
Currently the menu allows 8 items to be visible but, when you open a new scene, 9 items appear on that menu already. So, what happens is that the user rotates the view once, the orientation becomes "Other", then the user wants to return the orientation to "Front" and has to scroll the menu just the one step that does not quite fit the viewable list...
You might not believe but this is actually very annoying, especially because it feels so unnecessary.
The menu is made out of a BComboBox, that has a method to change the preferred amount of lines, but though the menu itself can be picked out from the View, I did not find a way to change the behaviour (it is inside an inner class and set private).
I also tried to make different copy of it and replace the menu by plugin, but that one could not add cameras and lights into the list (the setting of the preferred amount of lines was working though).
We discussed that something like 16 to 20 lines might be a good amount. 20 may seem long but it is still manageable. Into 16 you could add another camera and a few spot/directional lights and still not have to scroll the menu all the time....
So:
1) Is there any way of accessing the amount of lines, for example by a start-up script?
2) Is it possible to make a custom copy of the menu (in a different package) work with the rest of the software?
3) Could the preferred number of lines be made a user preference? (I'd favour this option)
-P-
Pete, I think that the start-up script and plugin options are out. ViewOrientationControl is kind of hard-coded at the moment. I think that the easiest way to deal with this would be to modify the class to have a larger number of available lines. The default max may have been sane at one time, but that was before every spotlight was available as a camera location...
How about the following change. Add this line to the very end of rebuildCameraList() (in ViewOrientationControl.java):
That way it will always try to make all items visible. Does that work for you? If so, I'll check it in.
Peter
It does work, but has an edge case. If for some reason someone adds many lights or cameras to a scene, the box will end up crawling off the top and bottom of the screen.
On my system, that ended up being about 60 extra view entries, but I have an HD screen, and I keep my system text settings fairly small. I should note, even before the list got that large, it started to have some display issues, as it would have to offset from the dropdown location to fit on the screen.
I might suggest having:
and then have the list ordered such that all cameras are above the list of spot and directional lights, just in case someone has a large number of either...
How about
That would take care of the scrolling-for-just-one-item-issue. The numbers don't have to be 16 and 20 but probably not more than 20 and 25 anyway...
I have also sometimes played with some 20-30 spotlights. The drop down menu definitely needs a limit. :) (I'm not sure what adds the lights into the list, or if the above would work correctly with those, but I agree that those should be after all the cameras.)
Last edit: Pete 2015-04-16
The directional lights are stored right in
SceneViewer.getCameras()
backing array.Wonder if the name there should be refactored as
SceneViewer.getViewLocations()
or similar, as right now it implies just the camera objects.Should not be too hard to edit the method to order all the cameras before the lights...
Actually, the cameras do get arranged above the lights already. :D
Uh... Yeah, looks like that method does two passes to build up the list. Should have noticed that from three seconds looking at the code... =D
After thinking about this a bit more, I decided I was making it more complicated than it needed to be, and just called setPreferredVisibleRows(20) in the constructor. I think that should work well. It's checked in.
Peter