UI redesign - preview window

The current version:

The proposal:

source file, in case you would like to play with it :slight_smile:

update, link the proposal to the initial image since it has been updated after discussed.

Does any one can help explain a bit “Half render” button, I never use it, and don’t know what it is for.


It is “Halt Render” (stop render) not “Half Render”.
“Zoom” is effectively a zoom value but it is in relation to 1 and not a percentage as it should be. So word is fine, it is just that the value entry should be a percentage widget instead a normal real widget.

I have one proposal for the Preview window. I dislike to have the render fit into the window size when it is resized by the user. I would prefer or just adjust the window size to the canvas being rendered or don’t adjust and leave the canvas render at full, half, double etc. size as per user request and the window shows just a fraction (or not) of the canvas and offers a scroll bar when needed.


:blush: how careless I was.

:blush: I always considered that it is a value to control quality of preview.

Thanks for your reminder, I now remembered that your proposal is somewhere on the wiki pages.

I will update my mockup and (try to) design icons and look into the code soon.

Looks very nice!
Zoom is not zoom but quality. I’ve posted about this a long time ago here on the forum.

BTW, I miss something to scrub the time line once the preview is rendered. It is a very important feature. The original dialog uses a horizontal scroll bar to move through the frames.

Genete - I think that’s the little circle on the blue line next to the clock icon.


  1. rename Zoom to Quality
  2. add a real zoom widget
  3. cleanup Render Start/Halt buttons
  4. cleanup Play/Stop buttons and
  5. need more design details for the Render start/halt, play/stop buttons

with scrollbars

Yeah! I see it now! :smiley:

Great improvements jcome!

explain a bit about Start \Halt render and Play \Stop buttons. see the above image

I don’t think that Play would be disabled in any case. Let me explain it:
Play/Stop Button should be a two icon button type, exactly like the one at the canvas window. If when user press “Play” there is nothing to play (nothing rendered) nothing is shown. Pressing Stop button will stop playing. Regardless that, user can move the current time to any time that has been already rendered and Play button should play from there.
If a new frame is rendered and play is active then the new frame is shown if the time cursor was at the last rendered frame.
Start render will continue render form the last frame rendered.
Halt render would stop render routine.
Start/Halt render can be a two states button or similar to Play one (with two icons) but it should be only one button at all.
Erase render would remove all the rendered frames. It should be a single action button separated form the Start/Halt render. It is useful when user gets the Preview window opened and changes the animation for already rendered frames.

I think that you better play with the current dialog to understand how does it work. I think that the current behavior is fine.


I am planned to change the play button at canvas window to toggle button with one icon as well. I will write down another post to explain why. There is something funny. If I remember correctly, you mentioned it in one post as well.

I should write those explanation more clearly :slight_smile: at the previous commit. I added some more words, hope it works now.
What I mean “disabled” play button is at the situation there is no any frames rendered, a) the first time, user open the preview window; b) user clicked [Erase All] button. This function reminds a user that s/he should render some frames to preview (play).

Start/Halt render and Erase render can be grouped from my point of view, because one of them generates preview-able frames, the other deletes those frames.

In my first draft on my local repos, I used two buttons for Play/Stop, two buttons for Start/Halt Render solution, but it wastes horizontal space, since the Quality, FPS and Time settings now live in the same bar, we don’t have more space available. And then I use the one shown in the mockup, I think use one toggle button solution is quite clear as well.

Hide the soundtrack widget etc…
The color of toggled buttons is just for better reading of the mockup, will not the same than the final implementation.

What happen when Erase is pressed and Render is pressed?

Erase is not a toggle button but a normal button, so this never happen. But when rendering, if the Erase button is clicked, the Render button will pop up automatically (Halt render), and those rendered frames will be moved at the same time, we will have an empty preview window.

From state 2, if the user press Render button again it will re-render all the frames. Starting from first frame? Does it enlist to erase all the frames first?

From state 0, the user press the Render button and it changes to state 1. Being at this state, after a while user press Play button, it starts to play and render continues. User press Render button again and it halts render but continue playing.

  1. If user press the Render button again, from which frame does it continue rendering?
  2. If user press the Erase button, how will it affect to rendering and playing?

Don’t misunderstand me my friend, but it is a good exercise to catch all the possible toggle combinations before implement it.

Hi Genete, thanks for your input, it is really helpful.

I try my best to explain it clearly :smiley: .

These buttons have to behave as simple as possible.

[Erase] button:
Erase is erase all. It will remove all rendered frames if they existed, and the “preview window” will return to the beginning: nothing rendered, all the buttons will be reset to initial state except the “Loop” button, it is staying as it was.

So the answer of Quesiton2 is rendering and playing will stop. these two buttons([Play] & [Render]) will reset to initial state.

[Render] button:
“Render Start” always starts rendering from scratch, and “Render Halt” will stop rendering completely, and we will have no a state called “pause” for Render.

So the answer of Question1: once the user pressed/toggled off [Render] again, the [Play] pops up and the animation preview will stop at the same time, the time slide indicator back to the frame filled in the “From” entry.

[Play] button:
Once [Play] button is toggled on, the scene will be start playing, when it is toggled off from previous state, the preview will have a pause state, toggled on again, the playing will continue.

[Loop] button:
Nothing special, It affects “playing” behaves, but never be affected by the Render, Erase, Play buttons.

All these buttons will never be affected by “zoom in/out” the previewing scene.

more questions

  1. To have a “pause” for rendering seems nice, but I am not sure if it will help artists.

  2. How about to bring “Seek to Begin/End, next/prev rendered frame” on preview window? Do these functions help the “preview” job?

  3. The time slider, what the length it should have?
    3.a) the entire of scene (canvas time)
    3.b) the specified in the preview window via “From” and “To” entries?
    3.c) the rendered time length (rendered frames)?

Hi jcome!
looks like we are narrowing the behavior of the buttons. :slight_smile:
My comments:
-Erase button: ok. It will clean everything and it will reset any new render to the start of the time. If the user press erase button meanwhile it is rendering. It will move the render current time to start of time and play would do similar.
-Render button: Hmmm… If I press the render button (do render) and then press it again (stop render) I would expect to NOT ERASE any frame at all. User will get confused if he loose the already rendered frames. Remember that render can be a time and cpu consuming act and mybe the user just want to test some first frames and don’t continue waste cpu for frames he is not intersted. Later he might want to continue rendering witout loose the already rendered. I don’t like the descrutctive behavior of the render button. I would like to have the same behavior than play button. Play->Pause->Play (from the same frame): Render->Halt render->Render (from the same frame). Maybe an indicator of the current render frame would be good to have apart of the playing frame.
-Play and loop are fine to me.
-Other questions:
–Seeking keyframes could be good to have but I would implement it later, once the basics are done.
–The time slider should have the From - To length.

I insists on get used of the current behavior of the preview dialog. It does the job fine IMHO and it needs just a face lifting.


I agree with Genete, current behaviour is generally working well, BUT there are a few things that can be improved…

  1. play/stop can be joined as you have done it.
  2. When I have played the preview once the the timeslider is at the end. If I then want to see the sequence again I have to either use the loop function or drag the timeslider back to frame 1, then press play again.
    I would like that if the timeslider is on last frame and play is pressed, then preview starts from beginning again.
  3. FPS settings - please use scene settings.


…Okay, I don’t mean to spam, but the mock-up is radical, dude! :smiley: I just think that the Play and Loop buttons should be at the extreme left, while the parameters to the right, just to minimize confusion.

@Genete - How about using QT4 for designing the interface? Just throwin it out there. Heard about it today, and they say it’s excellent! :smiley: