ElvishArtisan / rivendell

A full-featured radio automation system targeted for use in professional broadcast and media environments
197 stars 63 forks source link

Rivendell 4 RDLogManager Horizontal Scrollbar "Jump" #884

Closed dklann closed 1 year ago

dklann commented 1 year ago

Summary

In all recent versions of Rivendell 4.0.0, some (not all) horizontal window scrollbars behave unexpectedly when one clicks inside the window. This doesn't seem like a show-stopper, but it confuses users.

For example, I noticed that between RC releases (not sure exactly which), this effect was fixed for the full-log panel in RDAirPlay. It used to jump horizontally, but now does not. In fact, while filing this report, I can't see this effect in any other Rivendell app that shows a horizontal scrollbar... Maybe RDLogManager Edit Clocks is the last one...

Steps to reproduce

Example in this Screencast

(In words):

This seems like an artifact of moving to QT5 and I have no idea how to start looking deeper at the problem.

ElvishArtisan commented 1 year ago

This seems like an artifact of moving to QT5 and I have no idea how to start looking deeper at the problem.

That's been my conclusion as well. It's bugged me for a long time, but I've not found any way to address it either. The behavior appears to be 'baked in' to Qt5.

dklann commented 1 year ago

Thanks for your comment Fred. I have no doubt you've dug deeply into this. I wonder if it's similar to "column sorting" (something that used to be built in to QT3, and with QT5 one must provide one's own sort method to enable sortable columns). Maybe there's something in this that's related?

ElvishArtisan commented 1 year ago

Ok, I see what is going on here. When the user selects a cell in a model view (by clicking on it), the Qt code automatically attempts to scroll to the position where as much as the cell's content as possible becomes visible. That makes sense where each cell can be individually selected (QAbstractItemView::SelectionBehavior=SelectItems), but not where a click selects an entire row (QAbstractItemView::SelectionBehavior=SelectRows), where no horizontal auto-scrolling should occur at all; the visual intent being to operate on the entire row without regard to the column boundaries.

However, while this really is a Qt bug, it's prevelance in certain places also strongly implies that we're not providing enough horizontal real estate in those places to allow the data to be displayed optimally.

dklann commented 1 year ago

Ah! I see what you mean. Good call! Clicking in a row where the column is fully visible does not cause the horizontal jump. Seems like just a "documentation issue" to me. :)

With wider displays readily available, and the changes to RDAirPlay (window resizing), might it make sense to modify the Edit Clock window in RDLogManager making it slightly larger, or resizable?

Thanks!

ElvishArtisan commented 1 year ago

Done, in b548473.

Now, some similiar treatment for the 'Edit Event' dialog...

dklann commented 1 year ago

b548473 changes look good here! Thanks!

dklann commented 1 year ago

Not sure whether this is related to this issue...

Running commit cabbfe1a, I see that when editing a clock, the "pie" does not appear in the right-hand panel of the Edit Clock window until one clicks on an event line.

I didn't notice this (one way or the other) when testing commit b548473.

image

dklann commented 1 year ago

I'll keep this thread going here instead of starting a new issue...

Commit cabbfe1a introduces a resizable Edit Event window. In that window, the right-hand edge of the contents is cut off. This is on an up-to-date Linux Mint 21.1 running in a virtual machine. Resizing the window so that it is wider does not reveal the contents at the right-hand edge.

image

ElvishArtisan commented 1 year ago

Running commit https://github.com/ElvishArtisan/rivendell/commit/cabbfe1a1eaa9149d440316958d3f0227f4ec617, I see that when editing a clock, the "pie" does not appear in the right-hand panel of the Edit Clock window until one clicks on an event line.

Just a difference in behavior. For consistency sake, we should probably should put the blank circle back for when no event is selected.

ElvishArtisan commented 1 year ago

Commit https://github.com/ElvishArtisan/rivendell/commit/cabbfe1a1eaa9149d440316958d3f0227f4ec617 introduces a resizable Edit Event window. In that window, the right-hand edge of the contents is cut off. This is on an up-to-date Linux Mint 21.1 running in a virtual machine. Resizing the window so that it is wider does not reveal the contents at the right-hand edge.

Thanks for the feedback. That window is still very much a WIP.

dklann commented 1 year ago

Running commit cabbfe1, I see that when editing a clock, the "pie" does not appear in the right-hand panel of the Edit Clock window until one clicks on an event line.

Just a difference in behavior. For consistency sake, we should probably should put the blank circle back for when no event is selected.

Understood. I concur that showing the pie circle would reduce existing users' confusion...

ElvishArtisan commented 1 year ago

Done in 0d7ccdd.