"Option to Hide Individual Status Filters" #14017

Open
opened 2026-02-22 00:35:39 -05:00 by deekerman · 35 comments
Owner

Originally created by @Bhaalspawn on GitHub (Nov 28, 2022).

Suggestion

Now that we have right click on status filters can you add "hide filter"?
I don't really need all those filters.

Use case

No response

Extra info/examples/attachments

No response

Originally created by @Bhaalspawn on GitHub (Nov 28, 2022). ### Suggestion Now that we have right click on status filters can you add "hide filter"? I don't really need all those filters. ### Use case _No response_ ### Extra info/examples/attachments _No response_
Author
Owner

@sledgehammer999 commented on GitHub (Nov 28, 2022):

You can click on the filter title and it will collapse.

@sledgehammer999 commented on GitHub (Nov 28, 2022): You can click on the filter title and it will collapse.
Author
Owner

@Bhaalspawn commented on GitHub (Nov 28, 2022):

You can click on the filter title and it will collapse.

it's not what i'm asking
i want to see Active torrents, All torrents and maybe downloading.....i don't need many of those filters

@Bhaalspawn commented on GitHub (Nov 28, 2022): > You can click on the filter title and it will collapse. it's not what i'm asking i want to see Active torrents, All torrents and maybe downloading.....i don't need many of those filters
Author
Owner

@Pentaphon commented on GitHub (Nov 28, 2022):

@sledgehammer999 he wants to view SOME but not all the status filters. He would like the option to hide the status filters he doesn't want but keep the ones he does like. I think this issue should be titled "Option to Hide Individual Status Filters"

@Pentaphon commented on GitHub (Nov 28, 2022): @sledgehammer999 he wants to view SOME but not all the status filters. He would like the option to hide the status filters he doesn't want but keep the ones he does like. I think this issue should be titled "Option to Hide Individual Status Filters"
Author
Owner

@barisunsalhn commented on GitHub (Dec 17, 2022):

@sledgehammer999 could you assign me?

@barisunsalhn commented on GitHub (Dec 17, 2022): @sledgehammer999 could you assign me?
Author
Owner

@barisunsalhn commented on GitHub (Dec 19, 2022):

@sledgehammer999 hi, currently we have 3 action items in statusfilterwidget ( one of resume, pause, and remove torrents can be selected) . I added 4th action item as hide. Where should I add recover hidden? As 5th action?

@barisunsalhn commented on GitHub (Dec 19, 2022): @sledgehammer999 hi, currently we have 3 action items in statusfilterwidget ( one of resume, pause, and remove torrents can be selected) . I added 4th action item as hide. Where should I add recover hidden? As 5th action?
Author
Owner

@thalieht commented on GitHub (Dec 19, 2022):

Wouldn't it be better to have a list of the statuses as checkable items in a context menu somewhere? e.g. Right click on STATUS (which i'd prefer) or maybe a submenu on "All" or on all the statuses' context menu.

@thalieht commented on GitHub (Dec 19, 2022): Wouldn't it be better to have a list of the statuses as checkable items in a context menu somewhere? e.g. Right click on STATUS (which i'd prefer) or maybe a submenu on "All" or on all the statuses' context menu.
Author
Owner

@barisunsalhn commented on GitHub (Dec 19, 2022):

Ok, I will try to imolement "right click on status"

@barisunsalhn commented on GitHub (Dec 19, 2022): Ok, I will try to imolement "right click on status"
Author
Owner

@Bhaalspawn commented on GitHub (Dec 19, 2022):

Wouldn't it be better to have a list of the statuses as checkable items in a context menu somewhere? e.g. Right click on STATUS (which i'd prefer) or maybe a submenu on "All" or on all the statuses' context menu.

this is what i mean
context menu on single status is good to hide but it's a problem if i want that status back. context menu on "STATUS" would be great. like when we click on any point of the header to choose which columns we want to see

@Bhaalspawn commented on GitHub (Dec 19, 2022): > Wouldn't it be better to have a list of the statuses as checkable items in a context menu somewhere? e.g. Right click on STATUS (which i'd prefer) or maybe a submenu on "All" or on all the statuses' context menu. this is what i mean context menu on single status is good to hide but it's a problem if i want that status back. context menu on "STATUS" would be great. like when we click on any point of the header to choose which columns we want to see
Author
Owner

@barisunsalhn commented on GitHub (Dec 19, 2022):

Is this style ok(I will replace one label with an image)? Since statusLabel's toggled signal is already taken(see below), I had to define new vertical layout and put a new button.

 connect(statusLabel, &QCheckBox::toggled, statusFilters, &StatusFilterWidget::toggleFilter);
    connect(statusLabel, &QCheckBox::toggled, pref, &Preferences::setStatusFilterState);

Screenshot 2022-12-19 20:13:16

@barisunsalhn commented on GitHub (Dec 19, 2022): Is this style ok(I will replace one label with an image)? Since statusLabel's toggled signal is already taken(see below), I had to define new vertical layout and put a new button. ``` connect(statusLabel, &QCheckBox::toggled, statusFilters, &StatusFilterWidget::toggleFilter); connect(statusLabel, &QCheckBox::toggled, pref, &Preferences::setStatusFilterState); ``` ![Screenshot 2022-12-19 20:13:16](https://user-images.githubusercontent.com/39624400/208481988-4334982a-a623-4503-b6a4-045c56ba88ef.png)
Author
Owner

@Bhaalspawn commented on GitHub (Dec 19, 2022):

what is "One"?

@Bhaalspawn commented on GitHub (Dec 19, 2022): what is "One"?
Author
Owner

@barisunsalhn commented on GitHub (Dec 19, 2022):

Push button's label is currently one.

@barisunsalhn commented on GitHub (Dec 19, 2022): Push button's label is currently one.
Author
Owner

@barisunsalhn commented on GitHub (Dec 19, 2022):

should I use this example?

@barisunsalhn commented on GitHub (Dec 19, 2022): should I use [this](https://doc.qt.io/qtinstallerframework/qtinstallerframework-hidecheckbox-example.html) example?
Author
Owner

@Bhaalspawn commented on GitHub (Dec 19, 2022):

should I use this example?

i don't know what push button is, and it seems you are on Linux
the example seems to have some "separate" settings that is also a good solution

@Bhaalspawn commented on GitHub (Dec 19, 2022): > should I use [this](https://doc.qt.io/qtinstallerframework/qtinstallerframework-hidecheckbox-example.html) example? i don't know what push button is, and it seems you are on Linux the example seems to have some "separate" settings that is also a good solution
Author
Owner

@barisunsalhn commented on GitHub (Dec 19, 2022):

Hmm, I guess I will use the same structure of status. Let me illustrate:
Top line will consist of two expandable sections:
∆ status | settings ∆
Whenever user hits one of them, it expands.
∆ status | eettings ▽
□ cancelled
▣ downloading
...(goes on)

@barisunsalhn commented on GitHub (Dec 19, 2022): Hmm, I guess I will use the same structure of status. Let me illustrate: Top line will consist of two expandable sections: ∆ status | settings ∆ Whenever user hits one of them, it expands. ∆ status | eettings ▽ □ cancelled ▣ downloading ...(goes on)
Author
Owner

@Bhaalspawn commented on GitHub (Dec 19, 2022):

sorry i still don't understand,i'm just and user, not developer. i don''t see any settings.
settings are in the menu (tool-settings)

are you suggesting to ADD "settings" like we now have STATUS LABELS and TRACKERS? that would be the worst solution i think

maybe qbittorrent is different in linux

@Bhaalspawn commented on GitHub (Dec 19, 2022): sorry i still don't understand,i'm just and user, not developer. i don''t see any settings. settings are in the menu (tool-settings) are you suggesting to ADD "settings" like we now have STATUS LABELS and TRACKERS? that would be the worst solution i think maybe qbittorrent is different in linux
Author
Owner

@barisunsalhn commented on GitHub (Dec 19, 2022):

Yeah, I am suggesting to add hideable settings menu. No they are same in both linux and windows, since qt provides unified interface.

@barisunsalhn commented on GitHub (Dec 19, 2022): Yeah, I am suggesting to add hideable settings menu. No they are same in both linux and windows, since qt provides unified interface.
Author
Owner

@barisunsalhn commented on GitHub (Dec 19, 2022):

Ok, I will go back to thalieth's second recommendation.

@barisunsalhn commented on GitHub (Dec 19, 2022): Ok, I will go back to thalieth's second recommendation.
Author
Owner

@xavier2k6 commented on GitHub (Dec 19, 2022):

@lapaz17 Could the "select/de-select filters" option be added in the View menu bar like Log instead of the current context menu?

Does the Filters sidebar or qBittorrent itself have to be closed/re-opened for the selection/de-selection to take effect??

Status Filters->

  • All (This should probably remain un-selectable)
  • Downloading
  • Seeding
  • Completed
  • Resumed
  • Paused
  • Active
  • Inactive
  • Stalled
  • Stalled Uploading
  • Stalled Downloading
  • Checking
  • Moving
  • Errored
@xavier2k6 commented on GitHub (Dec 19, 2022): @lapaz17 Could the "select/de-select filters" option be added in the **View** menu bar like `Log` instead of the current context menu? Does the Filters sidebar or qBittorrent itself have to be closed/re-opened for the selection/de-selection to take effect?? Status Filters-> * [ ] All (This should probably remain un-selectable) * [ ] Downloading * [ ] Seeding * [ ] Completed * [ ] Resumed * [ ] Paused * [ ] Active * [ ] Inactive * [ ] Stalled * [ ] Stalled Uploading * [ ] Stalled Downloading * [ ] Checking * [ ] Moving * [ ] Errored
Author
Owner

@xavier2k6 commented on GitHub (Dec 19, 2022):

A Queued filter could be added here too now if they are to become optional??

@xavier2k6 commented on GitHub (Dec 19, 2022): A `Queued` filter could be added here too now if they are to become optional??
Author
Owner

@Bhaalspawn commented on GitHub (Dec 19, 2022):

i think right click on status is the best. so nothing is added here and there

submenu on all no, it will change the alignment

adding something in the view menu could be good and more complete. i mean if there is "select/de-select filters", in the future you can also add the chance to select which group to show or hide (show status, hide trackers, etc)

@Bhaalspawn commented on GitHub (Dec 19, 2022): i think right click on status is the best. so nothing is added here and there submenu on all no, it will change the alignment adding something in the view menu could be good and more complete. i mean if there is "select/de-select filters", in the future you can also add the chance to select which group to show or hide (show status, hide trackers, etc)
Author
Owner

@thalieht commented on GitHub (Dec 19, 2022):

Since statusLabel's toggled signal is already taken(see below), I had to define new vertical layout and put a new button.

Toggled is for left click IIRC so for right click something like:

--- a/src/gui/transferlistfilterswidget.cpp
+++ b/src/gui/transferlistfilterswidget.cpp
@@ -832,6 +832,8 @@ TransferListFiltersWidget::TransferListFiltersWidget(QWidget *parent, TransferLi
     statusLabel->setChecked(pref->getStatusFilterState());
     statusLabel->setFont(font);
     frameLayout->addWidget(statusLabel);
+    statusLabel->setContextMenuPolicy(Qt::CustomContextMenu);
+    connect(statusLabel, &QWidget::customContextMenuRequested, this, &TransferListFiltersWidget::showStatusFilterContextMenu);
 
     auto *statusFilters = new StatusFilterWidget(this, transferList);
     frameLayout->addWidget(statusFilters);

@thalieht commented on GitHub (Dec 19, 2022): >Since statusLabel's toggled signal is already taken(see below), I had to define new vertical layout and put a new button. Toggled is for left click IIRC so for right click something like: ``` --- a/src/gui/transferlistfilterswidget.cpp +++ b/src/gui/transferlistfilterswidget.cpp @@ -832,6 +832,8 @@ TransferListFiltersWidget::TransferListFiltersWidget(QWidget *parent, TransferLi statusLabel->setChecked(pref->getStatusFilterState()); statusLabel->setFont(font); frameLayout->addWidget(statusLabel); + statusLabel->setContextMenuPolicy(Qt::CustomContextMenu); + connect(statusLabel, &QWidget::customContextMenuRequested, this, &TransferListFiltersWidget::showStatusFilterContextMenu); auto *statusFilters = new StatusFilterWidget(this, transferList); frameLayout->addWidget(statusFilters); ```
Author
Owner

@barisunsalhn commented on GitHub (Dec 19, 2022):

@thalieht Thanks for help, I missed that solution somehow :(

@barisunsalhn commented on GitHub (Dec 19, 2022): @thalieht Thanks for help, I missed that solution somehow :(
Author
Owner

@barisunsalhn commented on GitHub (Dec 20, 2022):

@xavier2k6 I think thalieht ended the confusion, so I am not going to try your suggestions. But thanks for your input.

@barisunsalhn commented on GitHub (Dec 20, 2022): @xavier2k6 I think thalieht ended the confusion, so I am not going to try your suggestions. But thanks for your input.
Author
Owner

@barisunsalhn commented on GitHub (Dec 20, 2022):

hi, I just finished everything except lint. Here is the latest version, anything you want to add?
Screenshot from 2022-12-21 07-29-04

@barisunsalhn commented on GitHub (Dec 20, 2022): hi, I just finished everything except lint. Here is the latest version, anything you want to add? ![Screenshot from 2022-12-21 07-29-04](https://user-images.githubusercontent.com/39624400/208821510-e77f05f9-1e6e-4258-a914-a284b48268ef.png)
Author
Owner

@thalieht commented on GitHub (Dec 21, 2022):

updateGeometry() when checking/unchecking an item to avoid that empty space?

@thalieht commented on GitHub (Dec 21, 2022): `updateGeometry()` when checking/unchecking an item to avoid that empty space?
Author
Owner

@barisunsalhn commented on GitHub (Dec 21, 2022):

Ok

@barisunsalhn commented on GitHub (Dec 21, 2022): Ok
Author
Owner

@barisunsalhn commented on GitHub (Dec 22, 2022):

@thalieht updateGeometry does not work for hidden qlistwidgetitems, you can try it yourself on my branch
I' ve tried many things (spent 7 hours)apart from your recommendation inside my new handler:

void TransferListFiltersWidget::updateStatus(int state)
{
     Preferences *const pref = Preferences::instance();
    QList<Qt::CheckState> individualStatusFilter = pref->getIndividualStatusFilterState();
    auto checkBox = static_cast<QCheckBox*>(sender());
    QList<QListWidgetItem*> items = m_statusFilters->findItems(tr(checkBox->text().toStdString().c_str()), Qt::MatchContains);
    if(state == Qt::Unchecked)
        items.first()->setHidden(true);  
    else
        items.first()->setHidden(false);

    individualStatusFilter[m_statusFilters->row(items.first())] = (static_cast<Qt::CheckState>(state));
    pref->setIndividualStatusFilterState(individualStatusFilter);
    qDebug() << 1;

}

I do not want to use take item, because it will break existing code (out of range errors...)

@barisunsalhn commented on GitHub (Dec 22, 2022): @thalieht updateGeometry does not work for hidden qlistwidgetitems, you can try it yourself on [my branch](https://github.com/lapaz17/qBittorrent/tree/18082) I' ve tried many things (spent 7 hours)apart from your recommendation inside my new handler: ``` void TransferListFiltersWidget::updateStatus(int state) { Preferences *const pref = Preferences::instance(); QList<Qt::CheckState> individualStatusFilter = pref->getIndividualStatusFilterState(); auto checkBox = static_cast<QCheckBox*>(sender()); QList<QListWidgetItem*> items = m_statusFilters->findItems(tr(checkBox->text().toStdString().c_str()), Qt::MatchContains); if(state == Qt::Unchecked) items.first()->setHidden(true); else items.first()->setHidden(false); individualStatusFilter[m_statusFilters->row(items.first())] = (static_cast<Qt::CheckState>(state)); pref->setIndividualStatusFilterState(individualStatusFilter); qDebug() << 1; } ``` I do not want to use [take item](https://doc.qt.io/qt-5/qlistwidget.html#takeItem), because it will break existing code (out of range errors...)
Author
Owner

@thalieht commented on GitHub (Dec 22, 2022):

Sorry about that, for some reason i thought you'd remove the items instead of hide them. I don't know what else to do. If that;s all that remains maybe the devs will suggest something when you open the PR.
Maybe reimplement BaseFilterWidget::sizeHint() for TransferListFiltersWidget and do something with the count() part in it. No idea if that will work.
I may as well mention this now before you open the PR because you'll be required to fix them anyway: please read https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md. I see some extra spaces and broken indentation here and there.

@thalieht commented on GitHub (Dec 22, 2022): Sorry about that, for some reason i thought you'd remove the items instead of hide them. I don't know what else to do. If that;s all that remains maybe the devs will suggest something when you open the PR. Maybe reimplement `BaseFilterWidget::sizeHint()` for `TransferListFiltersWidget` and do something with the `count()` part in it. No idea if that will work. I may as well mention this now before you open the PR because you'll be required to fix them anyway: please read https://github.com/qbittorrent/qBittorrent/blob/master/CODING_GUIDELINES.md. I see some extra spaces and broken indentation here and there.
Author
Owner

@barisunsalhn commented on GitHub (Dec 22, 2022):

Tanks for suggestions. As I mentioned 3 message above, I am aware of linting issues, I will fix after handling resize.

@barisunsalhn commented on GitHub (Dec 22, 2022): Tanks for suggestions. As I mentioned 3 message above, I am aware of linting issues, I will fix after handling resize.
Author
Owner

@stalkerok commented on GitHub (Apr 17, 2024):

Closure? (There is hiding of zero status filters)

@stalkerok commented on GitHub (Apr 17, 2024): Closure? (There is hiding of zero status filters)
Author
Owner

@luzpaz commented on GitHub (Mar 19, 2025):

Closed by:

@luzpaz commented on GitHub (Mar 19, 2025): Closed by: * #18801
Author
Owner

@thalieht commented on GitHub (Mar 19, 2025):

Closed by:

It's not the same:

"Option to Hide Individual Status Filters"

@thalieht commented on GitHub (Mar 19, 2025): > Closed by: > * #18801 It's not the same: >"Option to Hide **Individual** Status Filters"
Author
Owner

@stalkerok commented on GitHub (Mar 20, 2025):

Anyway, it's a bad idea, users will hide the filters and then complain where their torrents disappeared to.

@stalkerok commented on GitHub (Mar 20, 2025): Anyway, it's a bad idea, users will hide the filters and then complain where their torrents disappeared to.
Author
Owner

@Bhaalspawn commented on GitHub (Mar 20, 2025):

so let's remove "delete torrents"
users cond complain they lost all torrents, deleted by mistake...wtf??

Users hide what they want to hide
And i agree that hiding filters with 0 torrents is not the same, not even close

@Bhaalspawn commented on GitHub (Mar 20, 2025): so let's remove "delete torrents" users cond complain they lost all torrents, deleted by mistake...wtf?? Users hide what they want to hide And i agree that hiding filters with 0 torrents is not the same, not even close
Author
Owner

@xavier2k6 commented on GitHub (May 24, 2025):

ANNOUNCEMENT!

For anybody coming across this "Feature Request" & would like/love to see a potential implementation in the future!
Here are some options available to you:

  1. Please select/click the 👍 &/orreactions in the original/opening post of this ticket.

  2. Please feel free (If you have the "skillset") to create a "Pull Request" implementing what's being requested in this ticket.
    (new/existing contributors/developers are always welcome)


DO:

  • Provide constructive feedback.
  • Display how other projects implemented same/similar etc.

DO NOT:

  • Add a "Bump", "me too", "2nd/3rd" etc. or "criticizing" comment(s).
    (These will be disregarded/hidden as "spam/abuse/off-topic" etc. as they don't provide anything constructive.)
@xavier2k6 commented on GitHub (May 24, 2025): ## ANNOUNCEMENT! For anybody coming across this **_"Feature Request"_** & would like/love to see a potential implementation in the future! **Here are some options available to you:** 1. Please select/click the 👍 **&/or** ❤ `reactions` in the original/opening post of this ticket. 2. Please feel free _(If you have the "skillset")_ to create a **_"Pull Request"_** implementing what's being requested in this ticket. **_(new/existing contributors/developers are always welcome)_** ____ **DO:** * Provide constructive feedback. * Display how other projects implemented same/similar etc. **DO NOT:** * Add a "Bump", "me too", "2nd/3rd" etc. or "criticizing" comment(s). **(These will be disregarded/hidden as "spam/abuse/off-topic" etc. as they don't provide anything constructive.)**
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
starred/qBittorrent#14017
No description provided.