qbittorrent / qBittorrent

qBittorrent BitTorrent client
https://www.qbittorrent.org
Other
27.05k stars 3.89k forks source link

Feature: Tray icon right-click context menu entry provides ability to pause/unpause queue #1243

Open philipzae opened 10 years ago

philipzae commented 10 years ago

well normally when i need to pause my torrents, i just need to pause the ones that are in the queue as thats where the bandwidth is going and i'd like to just unpause the ones that were paused in the queue.

JinxDojo commented 10 years ago

I think what you want is a differentiated "Pause" and "Stop" status, like µTorrent has.

Please comment here: https://github.com/qbittorrent/qBittorrent/issues/948

philipzae commented 10 years ago

Nope thats not what i'm asking. I'm asking for a more intuitive pause and resume option in the tray icon right-click. Right now, if you had 10 torrents in the list with 8 paused and 2 downloading, and you tray icon right-click 'pause all', it will have all 10 torrents in the pause state and then if you 'resume all' from the tray icon right-click it will resume all 10. What i want is when you click 'pause all', it records which entries are not paused and then when you click 'resume all' it only resumes those which paused.

JinxDojo commented 10 years ago

... and doing that requires differentiated "Pause" and "Stop" statuses, as I suggested in #948 . That is what is needed to do what you want--a "true pause" status.

As you implied, qBT has to be able to distinguish between the two sets of torrents somehow. "Recording the entries" is equivalent to creating a new class/status, which is the "true pause" (the current "paused" is a misnomer and should be renamed "stopped"). With these two statuses, qBT will know which torrents are active ("downloading") and can be paused, and which are stopped. The tray-icon GUI is comparatively trivial once #948 is implemented.

philipzae commented 10 years ago

I'm assuming you'd just need to differentiate between 'Paused' and all those that dont have the 'Paused' status, which includes 'Downloading', 'Stalled', and 'Queued'. From the view i'm looking from, torrents in qBT only have two states, 1) downloading and 2) paused, and it should be easy to identify which ones are in the downloading state. Ticket #948 is asking for a third status to be added to qBT.

JinxDojo commented 10 years ago

Creating your list of which ones were active/downloading is equivalent to creating a new ("third") status. However, your status would be much more particular to your single use case, whereas adding a stop status could have a lot of other uses, such as refining/controlling when/which files are verified on client start.

philipzae commented 10 years ago

Its not really creating a list. Presently now the 'pause all' function loops through the list and sets them all to pause, i'm asking that it checks which ones are not paused and save that in an internal array, so when i click 'resume all' it just reactivates entries in the array. A third status of stop may have various other effects throughout the code, which is why i'm assuming it hasnt been done yet.

JinxDojo commented 10 years ago

Sorry to get semantic here, but "array" = list.

I understand your point regarding "other effects," and I agree that your proposal is simpler/more straight-forward than formally adding another status, but it is also far more limited in scope/usefulness. So, I guess it comes down to whether sledgehammer wants to code "stop-gap solutions" or make bigger, more long-term framework changes; I'd of course opt for the latter.

948 was left open for a reason. Your proposal can provide the extra nudge needed to make it a possibility.

philipzae commented 10 years ago

well i had already asked sledgehammer in issue #1227 about the stop status and he stated "already asked at another issue(low priority)". even with a stop status, my concept is still a valid issue, because for example we have 3 torrents - 1 stop, 1 pause and 1 download. if i clicked 'pause queue', it would only effect the one that is downloading. i just want to pause the state of qBT as it is and then unpause/restore it when i need it.

ngosang commented 9 years ago

@sledgehammer999 there are options to Start Pause all torrents. Pause only queued looks too advanced to be in these menu.

sledgehammer999 commented 9 years ago

I think he wants "Session Pause". This is feasible if we pause the libtorrent::session instead of the individual torrents.

JinxDojo commented 9 years ago

What would "Session Pause" be? Simply pausing all activity? In that case, how would that behavior be different from closing qBT?

Not wanting to beat this to death, but if I recall from years ago, µTorrent handles this by using a stop status (which is what I suggested in #948, explicitly for this exact use case). Stopped torrents are not resumed. Paused torrents are. It's very simple and intuitive.

@sledgehammer999: in #2736, you referenced a forum post for more information on why stop==pause. Specifically, referring to the "missing files" status, you stated: "IMO, that's the only useful thing from the 'stop' button from utorrent."

I submit that, due to this issue (and #948), the "missing files" status is still not sufficient. Much of that forum discussion revolves around what/when you report to the tracker. However, please bear in mind you need not make the "pause" status "lie" to the tracker--it can still behave just as it does. It's simply a marker to note which torrents were active, so that they can be easily resumed.

If this still does not meet your criteria, then another possible option is to somehow utilize the new labeling system to create temporary labels. This is far less convenient and not really reflective of their "status," but I suppose it could suffice as a workaround.

Forum URLs: https://qbforums.shiki.hu/index.php/topic,2666.msg15927.html#msg15927

P.S. Forgive me if this is already implemented in the beta build from 20150329; I have yet to try it.

sledgehammer999 commented 9 years ago

Pausing the session has specific meaning in the libtorrent terminology. It pauses(aka stops) all torrents. However, when you resume the session only previously resumed torrents resume again. Previously paused torrents stay paused.

JinxDojo commented 9 years ago

In that case, I highly recommend simply renaming the current "paused" status to "stopped," and using the pause session feature as you described. While the change may only be semantic, I think this would help avoid confusion, and it also would open up the "paused" term for use as a status for this situation.

I assume that when a session is paused, one can still resume torrents individually? For example: if torrents A, B, and D are active, and the session is paused, one could first start up torrent A and E individually, then later hit "session resume" to resume B and D?

darkcity87 commented 4 years ago

Can i hope any progress for this issue? I am not trying to push anything issue quite old just only want to know.