Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

New colored progress bars do not match current plan to make progress bar match Mac client #185

Open
Pentaphon opened this issue Apr 15, 2024 · 8 comments

Comments

@Pentaphon
Copy link

Pentaphon commented Apr 15, 2024

First of all, thanks for the colored progress bars. They really help with visual cues and don't impact CPU on browsers like Firefox.

There's just a few issues right now. When downloading a torrent, the progress bar is green instead of blue as it fills up to 100%
1 3

It should match the mac client which is blue when filling up to 100%

mac

As a summary:

  1. Blue when downloading (filling up) to 100% and Blue when 100% and not seeding (to match the large progress bar in the bottom details window. Not sure if the Mac client does it exactly this way but it makes more sense this way to show that blue at 100% = complete but not transferring any data to peers)
  2. Green when 100% and actively seeding to other peers. (this is currently fine)
  3. Grey when under 100% and paused (currently blue but not sure if you care to change this from blue to grey)
  4. Red when error (which I just noticed and is great!)
  5. Grey when stopped and 100% instead of dark green. (Green should only be used for actively seeding a torrent so we always know when we are actively sending data to peers)

stop

Also, the details windows at the bottom does not match what is happening in the torrent list. If a selected torrent is seeding with a green color, the details window progress bar should also say seeding in a green color.

details

See below for how the Transmission team is going to have all their official clients match the Mac client progressbar colors.

transmission/transmission#5648

These changes should be all that is needed to make the colors consistent and match the plans for the official client. Thanks.

CC @melyux in case you think other tweaks need to be made.

@qu1ck
Copy link
Member

qu1ck commented Apr 16, 2024

It should match the mac client

These changes should be all that is needed to make the colors consistent and match the plans for the official client

There is no obligation or goal for TrguiNG to match behavior or colors of official client. So UI decisions of transmission team are only useful in terms of information about what different approaches exist out there, not as a guidance on how TrguiNG should work. TrguiNG intentionally differs both in logic and design approaches in places where I feel it benefits the project.

That doesn't mean progressbar colors and logic can't be improved, just don't expect me to blindly follow what official client does.

Grey when under 100% and paused

the details windows at the bottom does not match what is happening in the torrent list

These will be added

Red when magnetizing.

This won't, red is for error state only.

Blue when downloading (filling up) to 100% and Blue when 100% and not seeding (to match the large progress bar in the bottom details window. Not sure if the Mac client does it exactly this way but it makes more sense this way to show that blue at 100% = complete but not transferring any data to peers)

Dark blue when stopped and 100% instead of dark green. (Green should only be used for actively seeding a torrent so we always know when we are actively sending data to peers)

This is where major difference is, I think downloading torrents that are active should be differentiated and not stay blue. To me active when downloading and active when seeding are not much different so I made both green but I can see reasoning behind wanting seeding being separate.
Probably better to have dark green/light green for complete/actively seeding (as is now) and dark blue/light blue for downloading/active downloading (needs that light blue added). That way there is color differentiation for all states. Now to squeeze all that into color space, accounting for dark and white themes, that's a task and a half...

@Pentaphon
Copy link
Author

Pentaphon commented Apr 16, 2024

That doesn't mean progressbar colors and logic can't be improved, just don't expect me to blindly follow what official client does.

Fair enough. I agree. I would have been fine with you using the same colors or your own colors as long as torrent states had distinct colors to tell the different states apart.

These will be added

Thanks!

This won't, red is for error state only.

Fair enough. The magnet icon + magnetizing is enough.

I think downloading torrents that are active should be differentiated and not stay blue. To me active when downloading and active when seeding are not much different so I made both green but I can see reasoning behind wanting seeding being separate.

One of the reasons I wanted downloading to stay blue is because it is consistent with the previous colors. I didn't think any change was necessary. The only state that was actually different is when you are actively seeding 100% of a file to other peers, which is a completely different activity than just downloading or having a 100% complete file. Users find it very useful to see which of their torrents are actually seeding to other peers, especially on private trackers, and the green makes them stand out from the blue completed torrents.

Probably better to have dark green/light green for complete/actively seeding (as is now) and dark blue/light blue for downloading/active downloading (needs that light blue added). That way there is color differentiation for all states.

It currently shows dark green/light green for stopped/actively seeding. Stopped is much different than actively seeding so I would prefer to use another color for stopped like a grey progressbar.

I'm not sure you need to show dark and light blue for downloading/actively downloading because the progress in the progressbar will show you what is actively downloading with the same blue color.

Now to squeeze all that into color space, accounting for dark and white themes, that's a task and a half...

That's why I wanted it to be

  • downloading = blue with partial progressbar to show progress
  • complete = blue filled up to 100%
  • seeding to other peers = green filled up to 100%
  • paused/stopped under 100% = grey with partial progressbar to show progress
  • paused/stopped at 100% = grey

Using both light and dark versions of each color just makes using dark and light themes more difficult. That's why I wanted to keep it simple for each state and use 1 color per state plus the current progress.

@qu1ck
Copy link
Member

qu1ck commented Apr 16, 2024

Problem is these things are so subjective. You say users need to see 100% seeding as a completely different thing, others say stopped at 100% is completely different thing from stopped at < 100%, I find it important to see when 50% torrent actually has down traffic vs not and someone else will find some other thing important to differentiate for them.

It will be either infinite bikeshedding or a monstrosity of configuration for a dozen of possible state combinations and I'm a fan of neither.

So I'll probably return to this once with some of the additions mentioned above and be done with it. There is a table, it has fields. Use them, not everything has to be encoded in the progress bar color.

@Pentaphon
Copy link
Author

Problem is these things are so subjective. You say users need to see 100% seeding as a completely different thing, others say stopped at 100% is completely different thing from stopped at < 100%,

Subjectivity when it comes to people's opinions doesn't matter, because everybody can have thousands of ways to color any software on github. Every dev would go crazy if they kept listening to how people think their software should look.

What matters is that as long as you, the dev, comes up with a color scheme that gives visual cues that make sense and show something different for every torrent state, people will have to accept your solution as long as it is a solution that works. All the examples you gave have an easy to discern color and progress state based on what I mentioned before.

  • 100% seeding (aka transferring data to peers) = full green progressbar
  • stopped at 100% = full grey progressbar
  • stopped at < 100% = partially filled grey progressbar at X%
  • 50% torrent = 50% filled blue progressbar

I find it important to see when 50% torrent actually has down traffic vs not and someone else will find some other thing important to differentiate for them.

Again, as long as you provide a solution to show "down traffic vs not", subjectivity doesn't matter. There's simple solutions for that with colored progressbars. Similar to how you gave errored torrents a red progressbar, you can introduce a Yellow progressbar to show no data is being downloaded. I'd be happy with that, and it will look great on both dark and light themes. Instead of that torrent being classified as "downloading" status you can just classify it as "No peers" status. This would be much more informative than the current way of showing a torrent with no down traffic. People would immediately notice the yellow progressbar and do whatever they can to get the torrent to continue downloading.

25% downloaded with NO down traffic = yellow 25% bar with "No Peers" status.
25% downloaded with down traffic = blue 25% bar with "Downloading" status

@qu1ck
Copy link
Member

qu1ck commented Apr 16, 2024

What you think makes sense and what others think differs, that's the problem. People use the software differently and give more weight to various states based on what they find useful in their experience. And since not everything can have it's own color, someone will be unhappy either way.

stopped at 100% = full grey progressbar
stopped at < 100% = partially filled grey progressbar at X%

That doesn't work when X is 99%. You won't differentiate it from 100% and the "Completed torrents with finished seeding need to be absolutely visually different" camp will be unhappy.

25% downloaded with NO down traffic = yellow 25% bar with "No Peers" status.
25% downloaded with down traffic = blue 25% bar with "Downloading" status

  1. there is no "no peers" status and I don't want to invent one that is not coming from API. There is already enough complications with fuzzing "error" status to cover more states than what transmission API originally considers error.
  2. "no peers" is not the same as "no down traffic"
  3. Yellow is too contrasting with blue which will blink a lot. (There is currently the same problem with current green/blue contrast blinking).

See what I mean now about infinite bikeshedding? We are already falling into that hole.

@Pentaphon
Copy link
Author

And since not everything can have it's own color, someone will be unhappy either way.

That's something they simply have to live with as you are the maintainer. I am personally grateful that you even offer me and others on Github a solution to an easy to see, low-CPU usage solution to torrent state changes.

That doesn't work when X is 99%. You won't differentiate it from 100%

It will say 99% in the progressbar and the grey bar would make it even more obvious, no? Showing when torrents are stopped with a grey progressbar is pretty straightforward.

See what I mean now about infinite bikeshedding? We are already falling into that hole.

Only because we are even entertaining what people might theoretically say about showing "down traffic vs not". I was simply throwing out ideas using the colored progressbar concept. I hope you take no offense from my proposed tweaks to the current colored progressbar implementation. I merely wanted to point out any inconsistencies that still needed to be ironed out.

I'm perfectly happy with the progressbar being the current blue color even when there's no down traffic since all other clients already do it that way in that "no down traffic" state. I'm all for keeping things simple as long as they show different states with simple color changes. Thanks again for your work on this. Your WebGUI is easily the best for Transmission right now and I am happy that you are making this happen.

@qu1ck
Copy link
Member

qu1ck commented Apr 16, 2024

It will say 99% in the progressbar and the grey bar would make it even more obvious, no? Showing when torrents are stopped with a grey progressbar is pretty straightforward.

I'm saying that with that logic stopped incomplete torrent and stopped torrent after it finished seeding are almost indistinguishable (by progress bar alone) even though they are in very different spots in a typical torrent lifecycle in the client. Therefore people that have configured auto stop after certain ratio will be understandably unhappy.

Only because we are even entertaining what people might theoretically say about showing "down traffic vs not".

It's not theoretical, I'm saying this from my personal experience. I have lots of torrents that rarely have full seeds and seeing which ones still get traffic is useful to me to know which ones are hopeless and should be removed. Can I do it by looking at down speed column? Yes, different progressbar is not necessary. But neither is it necessary for actively seeding torrents by the same logic. Or for anything else, really, other fields do cover everything.

I hope you take no offense

Of course not, polite and constructive feedback/suggestions/discussions are always welcome, even if I don't agree. And in this case I only partially disagree. I'll have to play with colors more and see what can be done.

@Pentaphon
Copy link
Author

Pentaphon commented Apr 16, 2024

I'm saying that with that logic stopped incomplete torrent and stopped torrent after it finished seeding are almost indistinguishable (by progress bar alone) even though they are in very different spots in a typical torrent lifecycle in the client. Therefore people that have configured auto stop after certain ratio will be understandably unhappy.

I'd venture to say that people who configure auto stop after a certain ratio are a minority that is even smaller than the people who are willing to use colored progressbars, and even some of those people would not be deterred by grey as a universal inactive or stopped color as long as the status is stopped and the progressbar says 99% instead of 100%.

I think it's more concerning that the current stopped complete torrent = dark green clashes with a seeding torrent that is transferring data = light green because green should mean seeding, not stopped. Same with a stopped incomplete torrent = blue which clashes with the blue used to show an active torrent that is complete or downloading. I think giving all stopped torrents a grey progressbar, regardless of completeness, is more important to convey to the user as a universal color to show that a torrent is stopped/inactive. In other words, I think green and blue are overused right now. Green and blue should mean that there's activity going on, like blue = flowing water when downloading or pooling at a lake when complete, and green = seeding to other peers like a planted seed that is sprouting. Grey should be used for inactive/stopped torrents because grey typically means a lack of activity like a dusty unused room. That's what comes to mind for me when I see these colors, which is why I wanted to point them out to you. Hope this makes sense.

It's not theoretical, I'm saying this from my personal experience. I have lots of torrents that rarely have full seeds and seeing which ones still get traffic is useful to me to know which ones are hopeless and should be removed. Can I do it by looking at down speed column? Yes, different progressbar is not necessary. But neither is it necessary for actively seeding torrents by the same logic. Or for anything else, really, other fields do cover everything.

I find that people don't really remove torrents even if they don't have seeders at the moment because you never know one day when a seeder or incomplete peer will come out of nowhere and give you more of that file so removing it is hardly productive. It's more beneficial to just load up another torrent that has more seeders and if there's no such torrent, to just keep the previous torrent loaded in case peers come by to get it moving.

I find the green color for actively seeding torrents to be useful because I want to see which torrents are currently sending data to other peers at any given time. Most of my torrents are complete and I'm looking for torrents that still are in demand. This is especially useful for private torrents. I'm more likely to remove torrents that have no demand or have enough seeders that I barely seed any data compared to the other peers in the swarm. The blue color is less useful to me because the progressbar percentage is what I'm really looking at for incomplete torrents which usually successfully download. The grey = stopped and red = error are probably even more useful.

Of course not, polite and constructive feedback/suggestions/discussions are always welcome, even if I don't agree. And in this case I only partially disagree. I'll have to play with colors more and see what can be done.

Thanks again. I hope you find my feedback constructive. I really am grateful for this colored progressbar feature because so many clients either don't try to be creative by changing the progressbar color like Transmission does (at least in the Mac client) or do something silly like color the torrent list text a bunch of hideous colors such as qBittorrent currently does. Coloring the progressbar is a very simple, obvious, straightforward way to show different states and I wish every client did it so I'm glad you embraced it as an optional feature. I'm looking forward to seeing what you come up with and I hope other users come forward to help you finalize a color scheme.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants