Opened 10 years ago

Closed 10 years ago

Last modified 10 years ago

#4389 closed Enhancement (fixed)

Share ratio progress bar indication counter-intuitive

Reported by: Forage Owned by: jordan
Priority: Normal Milestone: 2.51
Component: Qt Client Version: 2.33
Severity: Normal Keywords:



I recently updated Transmission to version 2.33, having skipped 2.32. One of the versions added a share ratio indication using the progress bar by letting it fill up from right to left.

I had a couple of downloads in progress and a couple already done when updating Transmission. My first reaction when launching Transmission after the update was: "Weird, the progress bars have rendering issues". So I restarted the application only to discover that the issue was still present. I ignored it for the time being, only to discover that the bars changed when I returned to the application. It wasn't until then that I noticed that the bars where filling up from the other side. This while the torrent was already completely downloaded. Why? After a bit I concluded that it must be the share ratio indication.

I'm sorry to say so but filling up the progress bars this way for this purpose if completely counter-intuitive. A visual indication of the share ratio is nice to have but this goes against any usability practice. One moment your download is complete, the other moment it appears to have stated over again because people don't pay attention to something on the right when dealing with progress bars.

The, in my case, orange fill-up colour gives me an indication for the download progress, the grey background colour indicates the part it hasn't downloaded yet. I would suggests to stick to this only, not using the same concept the other way around. Instead, you could fill up the same progress bar with e.g. a pattern over the orange filled progress bar. A second option would be a second progress line underneath the already filled progress bar.

See attachments to see what I mean.

OS: Ubuntu 11.04 Client: GTK+

Attachments (5)

Progress-pattern.png (12.8 KB) - added by Forage 10 years ago.
Progress bar with pattern fill share ration indication
Progress-line.png (12.7 KB) - added by Forage 10 years ago.
Progress bar with additional line share ration indication
Progress-line2.png (12.7 KB) - added by Forage 10 years ago.
Progress bar with line share ration indication within the bar
color-progress-bar.patch (5.0 KB) - added by rb07 10 years ago.
Patch for rev.13236 (version 2.50) to add color to the progress bar, similar to Web client; also restores seed bar to normal filling, not the reverse or emptying.
qt.png (34.6 KB) - added by gunzip 10 years ago.
Screenshot of Transmission QT Seed Progress Bar with color-progress-bar.patch

Download all attachments as: .zip

Change History (19)

Changed 10 years ago by Forage

Progress bar with pattern fill share ration indication

Changed 10 years ago by Forage

Progress bar with additional line share ration indication

comment:1 Changed 10 years ago by livings124

  • Component changed from Transmission to GTK+ Client
  • Owner set to jordan

Changed 10 years ago by Forage

Progress bar with line share ration indication within the bar

comment:2 Changed 10 years ago by jordan


I think you're correct about the right-to-left progressbars. You're not the only person to complain about them, so I've removed that behavior in r12827.

About these other progressbar suggestions -- I like Progress-line.png as the best out of the three. This kind of customization doesn't seem to be possible in GTK+ 2, but it looks like GTK+ 3 is a little more flexible.

comment:3 Changed 10 years ago by rb07

For reference I show what I do with Transmission-Qt 2.33 on Windows, this is a standard (default colors, icons, etc.) Windows XP installation in Spanish:

The change to the code was to modify the background color when a torrent is seeding. Of course TrQt's bar moves always left to right (unlike the problem reported with TrGTK).

This approach works the same with both views, compact and expanded. It could be carried further, say one color for downloading (currently blue/white), another for seeding (which I modified to blue/green), maybe others (no red bars please ;-).

The only problem would be color schemes, or put another way, which color to choose for the background. An user can use any color scheme for his desktop, for instance I have a green scheme on my regular PC, so the bar is green on green (but different shades), there is the possibility that both shades could be equal but a note on the documentation would be enough warning.

comment:4 Changed 10 years ago by mag

I originally authored the right-to-left progress bar hack and attached it to ticket #4281. After having used it since that day, I agree that it is counter-intuitive. It never even gets to feel natural when you're used to it.

Of the proposals attached to this ticket, "Progress-line.png" seems to make the most sense and be the easiest one to implement.

However, I really do like the progress bars in the web- and OSX clients. It is immediately obvious what they convey.

I would like to propose implementing such a progress bar with both GTK and Qt.

The difficulty with this is of course how to avoid having it look totally out of place, but I think it can be permissible to deviate from the standard progress bar for this application. The progress bar GUI element was designed to be on its own, not in a list of many, as it is in transmission. For this reason, a new progress bar is appropriate for this application.

comment:5 Changed 10 years ago by rb07

I don't know about GTK+ but with Qt it could be as easy as changing the style.

Mag is right, the 'native' styles will not look right ever (and in Mac OSX and MS Windows they can't be changed, not even the colors).

The first alternative (what I tried to show above) is using one of Qt's standard styles, cleanlooks allows you to change the colors, foreground and background. This alternative also has problems, the proposed bar styles and the one used by the Web client could be easily be implemented by using a "style sheet" which is a textual specification, but the problem is that it doesn't take on the application (i.e. the way Transmission-Qt is implemented, specifically like Mag said, the way progress bars are used makes them work different that regular progress bars).

I finally decided to make my own style, derived from cleanlooks, and it didn't work. But while I was working on that I found a 3rd party style, QtCurve, which is much better and does allow me to change colors (oh by the way, I already had modified that left-to-right behavior, the colors are the only indicator of torrent status: downloading or seeding), and the many "themes" it has makes it trivial to make those bars look like the Web client: just chose a theme, set the colors in the application.

All right, its a bit more complicated than that, but you get the idea. And I haven't got anything like "Progress-line.png", which I haven't tried (I think its not a good idea since the bars are too thin, and too small in the compact view; small details don't show well).

For reference here is the default QtCurve style:

Which just as easily can be changed into something like this:

comment:6 Changed 10 years ago by rb07

I forgot to add that QtCurve? is already a style for Linux desktops, trying something like this could be done now, no change in the GTK+ or Qt application, then, if you like it, modify the application to use left-to-right progress bars always (a 2 line change).

comment:7 Changed 10 years ago by Forage

Strangely enough I did not receive half of the past comments, hence the lack of response from my side.

rb07's suggestion, in terms of style, is nice. In concept it's the same as what I suggested with "Progress-pattern.png", though more subtle without the pattern and using a different background colour, without me knowing it was already used (I did not use the web interface much, just the API). I guess coming with the same result from two sources independently should be enough to suggests it is the way to go for the application GUI as well.

I can't say anything about the feasibility, in terms of implementation, but I'd like to see it become a reality.

comment:8 Changed 10 years ago by Forage

One disadvantage with the suggested style is the inability to have a visual indication of the share ratio when the download is still in progress. You also can't see if the share ratio percentage is ahead of the download percentage. This isn't the biggest deal, of course, but just inaccuracy that came to mind.

comment:9 Changed 10 years ago by rb07

Forage :

I didn't receive your latest comments, so it must be a bug on trac, or the ticket was closed (but I still see it as open).

Your point is valid, but it means that the application should use 2 bars, shown at the same time, which is different from anything in use at the moment. One disadvantage of a separate seed bar is that, in my experience, it gets well above 100% while downloading... how to represent that? sure there are ways to indicate the overflow, but that just adds complexity where we want something as simple (and intuitive) as possible.

About the feasibility, what I show with Transmission-Qt is real, I've been using it for about a month. Its just a few changes in the application, my guess is that the GTK+ application is just as easy.

Changed 10 years ago by rb07

Patch for rev.13236 (version 2.50) to add color to the progress bar, similar to Web client; also restores seed bar to normal filling, not the reverse or emptying.

comment:10 Changed 10 years ago by rb07

A note about the patch:

The background color is set twice, the first call works with the usual Qt styles which use Base as the progress bar background, the second call I added for my own use which links the application with QtCurve to use that style. I also modified QtCurve's default style to use Background as the background color in progress bars.

In short, what I posted is overkill, only the first of those 2 calls is needed. As the patch stands it allows users to have it both ways, use one of the Qt styles which for Linux/Mac/other-out-of-the-box-builds would be the default, or try a custom style (which is not included with the released source).

Note 2: Sorry for only patching the Qt application, I know this ticket is about the GTK+ application, which I don't use.

Last edited 10 years ago by rb07 (previous) (diff)

comment:11 Changed 10 years ago by gunzip

the QT color-progress-bar.patch by rb07 works fine on this end.

1) the torrent bar color now goes from blue (downloading) to green (seeding), whereas before the bar was always a fixed blue.

2) the seeding progress-bar now fills in "normal" expected direction, whereas before it was inverted and awkward.

these are definitely major improvements to the look and user-friendliness of the QT interface.

test conditions: patch applied to transmission-qt 2.50 (13228), OS Linux Debian

Changed 10 years ago by gunzip

Screenshot of Transmission QT Seed Progress Bar with color-progress-bar.patch

comment:12 Changed 10 years ago by jordan

  • Component changed from GTK+ Client to Qt Client
  • Milestone changed from None Set to 2.51
  • Status changed from new to assigned

Patch applied with no changes to r13244. Thanks rb07!

comment:13 Changed 10 years ago by jordan

  • Resolution set to fixed
  • Status changed from assigned to closed

comment:14 Changed 10 years ago by mag

Wow! Looks good! Thanks :) (Apparently, I suddenly disappeared for a while)

Note: See TracTickets for help on using tickets.