qBittorrent
TransferListFiltersWidget Class Referencefinal

#include <transferlistfilterswidget.h>

Inheritance diagram for TransferListFiltersWidget:
Collaboration diagram for TransferListFiltersWidget:

Public Slots

void addTrackers (const BitTorrent::Torrent *torrent, const QVector< BitTorrent::TrackerEntry > &trackers)
 
void removeTrackers (const BitTorrent::Torrent *torrent, const QVector< BitTorrent::TrackerEntry > &trackers)
 
void changeTrackerless (const BitTorrent::Torrent *torrent, bool trackerless)
 
void trackerSuccess (const BitTorrent::Torrent *torrent, const QString &tracker)
 
void trackerWarning (const BitTorrent::Torrent *torrent, const QString &tracker)
 
void trackerError (const BitTorrent::Torrent *torrent, const QString &tracker)
 

Signals

void trackerSuccess (const BitTorrent::TorrentID &id, const QString &tracker)
 
void trackerError (const BitTorrent::TorrentID &id, const QString &tracker)
 
void trackerWarning (const BitTorrent::TorrentID &id, const QString &tracker)
 

Public Member Functions

 TransferListFiltersWidget (QWidget *parent, TransferListWidget *transferList, bool downloadFavicon)
 
void setDownloadTrackerFavicon (bool value)
 

Private Slots

void onCategoryFilterStateChanged (bool enabled)
 
void onTagFilterStateChanged (bool enabled)
 

Private Member Functions

void toggleCategoryFilter (bool enabled)
 
void toggleTagFilter (bool enabled)
 

Private Attributes

TransferListWidgetm_transferList
 
TrackerFiltersListm_trackerFilters
 
CategoryFilterWidgetm_categoryFilterWidget
 
TagFilterWidgetm_tagFilterWidget
 

Detailed Description

Definition at line 144 of file transferlistfilterswidget.h.

Constructor & Destructor Documentation

◆ TransferListFiltersWidget()

TransferListFiltersWidget::TransferListFiltersWidget ( QWidget *  parent,
TransferListWidget transferList,
bool  downloadFavicon 
)

Definition at line 648 of file transferlistfilterswidget.cpp.

649  : QFrame(parent)
650  , m_transferList(transferList)
651 {
652  Preferences *const pref = Preferences::instance();
653 
654  // Construct lists
655  auto *vLayout = new QVBoxLayout(this);
656  auto *scroll = new QScrollArea(this);
657  QFrame *frame = new QFrame(scroll);
658  auto *frameLayout = new QVBoxLayout(frame);
659  QFont font;
660  font.setBold(true);
661  font.setCapitalization(QFont::AllUppercase);
662 
663  scroll->setWidgetResizable(true);
664  scroll->setHorizontalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
665 
666  setStyleSheet("QFrame {background: transparent;}");
667  scroll->setStyleSheet("QFrame {border: none;}");
668  vLayout->setContentsMargins(0, 0, 0, 0);
669  frameLayout->setContentsMargins(0, 2, 0, 0);
670  frameLayout->setSpacing(2);
671  frameLayout->setAlignment(Qt::AlignLeft | Qt::AlignTop);
672 
673  frame->setLayout(frameLayout);
674  scroll->setWidget(frame);
675  vLayout->addWidget(scroll);
676  setLayout(vLayout);
677 
678  QCheckBox *statusLabel = new ArrowCheckBox(tr("Status"), this);
679  statusLabel->setChecked(pref->getStatusFilterState());
680  statusLabel->setFont(font);
681  frameLayout->addWidget(statusLabel);
682 
683  auto *statusFilters = new StatusFilterWidget(this, transferList);
684  frameLayout->addWidget(statusFilters);
685 
686  QCheckBox *categoryLabel = new ArrowCheckBox(tr("Categories"), this);
687  categoryLabel->setChecked(pref->getCategoryFilterState());
688  categoryLabel->setFont(font);
689  connect(categoryLabel, &QCheckBox::toggled, this
691  frameLayout->addWidget(categoryLabel);
692 
701  , transferList, &TransferListWidget::applyCategoryFilter);
703  frameLayout->addWidget(m_categoryFilterWidget);
704 
705  QCheckBox *tagsLabel = new ArrowCheckBox(tr("Tags"), this);
706  tagsLabel->setChecked(pref->getTagFilterState());
707  tagsLabel->setFont(font);
708  connect(tagsLabel, &QCheckBox::toggled, this, &TransferListFiltersWidget::onTagFilterStateChanged);
709  frameLayout->addWidget(tagsLabel);
710 
719  , transferList, &TransferListWidget::applyTagFilter);
721  frameLayout->addWidget(m_tagFilterWidget);
722 
723  QCheckBox *trackerLabel = new ArrowCheckBox(tr("Trackers"), this);
724  trackerLabel->setChecked(pref->getTrackerFilterState());
725  trackerLabel->setFont(font);
726  frameLayout->addWidget(trackerLabel);
727 
728  m_trackerFilters = new TrackerFiltersList(this, transferList, downloadFavicon);
729  frameLayout->addWidget(m_trackerFilters);
730 
731  connect(statusLabel, &QCheckBox::toggled, statusFilters, &StatusFilterWidget::toggleFilter);
732  connect(statusLabel, &QCheckBox::toggled, pref, &Preferences::setStatusFilterState);
733  connect(trackerLabel, &QCheckBox::toggled, m_trackerFilters, &TrackerFiltersList::toggleFilter);
734  connect(trackerLabel, &QCheckBox::toggled, pref, &Preferences::setTrackerFilterState);
735 
736  connect(this, qOverload<const BitTorrent::TorrentID &, const QString &>(&TransferListFiltersWidget::trackerSuccess)
738  connect(this, qOverload<const BitTorrent::TorrentID &, const QString &>(&TransferListFiltersWidget::trackerError)
740  connect(this, qOverload<const BitTorrent::TorrentID &, const QString &>(&TransferListFiltersWidget::trackerWarning)
742 }
void toggleFilter(bool checked)
void categoryChanged(const QString &categoryName)
void actionDeleteTorrentsTriggered()
void actionPauseTorrentsTriggered()
void actionResumeTorrentsTriggered()
static Preferences * instance()
bool getStatusFilterState() const
bool getTrackerFilterState() const
void setStatusFilterState(bool checked)
bool getCategoryFilterState() const
void setTrackerFilterState(bool checked)
bool getTagFilterState() const
void actionPauseTorrentsTriggered()
void actionResumeTorrentsTriggered()
void tagChanged(const QString &tag)
void actionDeleteTorrentsTriggered()
void trackerError(const BitTorrent::TorrentID &id, const QString &tracker)
void trackerSuccess(const BitTorrent::TorrentID &id, const QString &tracker)
void trackerWarning(const BitTorrent::TorrentID &id, const QString &tracker)
void onCategoryFilterStateChanged(bool enabled)
void trackerWarning(const BitTorrent::Torrent *torrent, const QString &tracker)
void trackerError(const BitTorrent::Torrent *torrent, const QString &tracker)
void trackerSuccess(const BitTorrent::Torrent *torrent, const QString &tracker)
CategoryFilterWidget * m_categoryFilterWidget
void applyCategoryFilter(const QString &category)
void applyTagFilter(const QString &tag)

References CategoryFilterWidget::actionDeleteTorrentsTriggered(), TagFilterWidget::actionDeleteTorrentsTriggered(), CategoryFilterWidget::actionPauseTorrentsTriggered(), TagFilterWidget::actionPauseTorrentsTriggered(), CategoryFilterWidget::actionResumeTorrentsTriggered(), TagFilterWidget::actionResumeTorrentsTriggered(), TransferListWidget::applyCategoryFilter(), TransferListWidget::applyTagFilter(), CategoryFilterWidget::categoryChanged(), TransferListWidget::deleteVisibleTorrents(), Preferences::getCategoryFilterState(), Preferences::getStatusFilterState(), Preferences::getTagFilterState(), Preferences::getTrackerFilterState(), Preferences::instance(), m_categoryFilterWidget, m_tagFilterWidget, m_trackerFilters, onCategoryFilterStateChanged(), onTagFilterStateChanged(), TransferListWidget::pauseVisibleTorrents(), Preferences::setStatusFilterState(), Preferences::setTrackerFilterState(), TransferListWidget::startVisibleTorrents(), TagFilterWidget::tagChanged(), toggleCategoryFilter(), BaseFilterWidget::toggleFilter(), toggleTagFilter(), trackerError(), TrackerFiltersList::trackerError(), trackerSuccess(), TrackerFiltersList::trackerSuccess(), trackerWarning(), and TrackerFiltersList::trackerWarning().

Here is the call graph for this function:

Member Function Documentation

◆ addTrackers

void TransferListFiltersWidget::addTrackers ( const BitTorrent::Torrent torrent,
const QVector< BitTorrent::TrackerEntry > &  trackers 
)
slot

Definition at line 749 of file transferlistfilterswidget.cpp.

750 {
751  for (const BitTorrent::TrackerEntry &tracker : trackers)
752  m_trackerFilters->addItem(tracker.url, torrent->id());
753 }
TorrentID id() const
Definition: torrent.cpp:54
void addItem(const QString &tracker, const BitTorrent::TorrentID &id)
Definition: trackerentry.h:38

References TrackerFiltersList::addItem(), BitTorrent::Torrent::id(), and m_trackerFilters.

Referenced by MainWindow::MainWindow().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ changeTrackerless

void TransferListFiltersWidget::changeTrackerless ( const BitTorrent::Torrent torrent,
bool  trackerless 
)
slot

Definition at line 761 of file transferlistfilterswidget.cpp.

762 {
763  m_trackerFilters->changeTrackerless(trackerless, torrent->id());
764 }
void changeTrackerless(bool trackerless, const BitTorrent::TorrentID &id)

References TrackerFiltersList::changeTrackerless(), BitTorrent::Torrent::id(), and m_trackerFilters.

Referenced by MainWindow::MainWindow().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onCategoryFilterStateChanged

void TransferListFiltersWidget::onCategoryFilterStateChanged ( bool  enabled)
privateslot

Definition at line 781 of file transferlistfilterswidget.cpp.

782 {
783  toggleCategoryFilter(enabled);
785 }
void setCategoryFilterState(bool checked)

References Preferences::instance(), Preferences::setCategoryFilterState(), and toggleCategoryFilter().

Referenced by TransferListFiltersWidget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ onTagFilterStateChanged

void TransferListFiltersWidget::onTagFilterStateChanged ( bool  enabled)
privateslot

Definition at line 793 of file transferlistfilterswidget.cpp.

794 {
795  toggleTagFilter(enabled);
797 }
void setTagFilterState(bool checked)

References Preferences::instance(), Preferences::setTagFilterState(), and toggleTagFilter().

Referenced by TransferListFiltersWidget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ removeTrackers

void TransferListFiltersWidget::removeTrackers ( const BitTorrent::Torrent torrent,
const QVector< BitTorrent::TrackerEntry > &  trackers 
)
slot

Definition at line 755 of file transferlistfilterswidget.cpp.

756 {
757  for (const BitTorrent::TrackerEntry &tracker : trackers)
758  m_trackerFilters->removeItem(tracker.url, torrent->id());
759 }
void removeItem(const QString &tracker, const BitTorrent::TorrentID &id)

References BitTorrent::Torrent::id(), m_trackerFilters, and TrackerFiltersList::removeItem().

Referenced by MainWindow::MainWindow().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ setDownloadTrackerFavicon()

void TransferListFiltersWidget::setDownloadTrackerFavicon ( bool  value)

Definition at line 744 of file transferlistfilterswidget.cpp.

745 {
747 }
void setDownloadTrackerFavicon(bool value)
T value(const QString &key, const T &defaultValue={})
Definition: preferences.cpp:64

References m_trackerFilters, TrackerFiltersList::setDownloadTrackerFavicon(), and anonymous_namespace{preferences.cpp}::value().

Referenced by MainWindow::setDownloadTrackerFavicon().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toggleCategoryFilter()

void TransferListFiltersWidget::toggleCategoryFilter ( bool  enabled)
private

Definition at line 787 of file transferlistfilterswidget.cpp.

788 {
789  m_categoryFilterWidget->setVisible(enabled);
791 }
QString currentCategory() const

References TransferListWidget::applyCategoryFilter(), CategoryFilterWidget::currentCategory(), m_categoryFilterWidget, and m_transferList.

Referenced by onCategoryFilterStateChanged(), and TransferListFiltersWidget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ toggleTagFilter()

void TransferListFiltersWidget::toggleTagFilter ( bool  enabled)
private

Definition at line 799 of file transferlistfilterswidget.cpp.

800 {
801  m_tagFilterWidget->setVisible(enabled);
802  m_transferList->applyTagFilter(enabled ? m_tagFilterWidget->currentTag() : QString());
803 }
QString currentTag() const

References TransferListWidget::applyTagFilter(), TagFilterWidget::currentTag(), m_tagFilterWidget, and m_transferList.

Referenced by onTagFilterStateChanged(), and TransferListFiltersWidget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ trackerError [1/2]

void TransferListFiltersWidget::trackerError ( const BitTorrent::Torrent torrent,
const QString &  tracker 
)
slot

Definition at line 776 of file transferlistfilterswidget.cpp.

777 {
778  emit trackerError(torrent->id(), tracker);
779 }

References BitTorrent::Torrent::id().

Referenced by MainWindow::MainWindow(), and TransferListFiltersWidget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ trackerError [2/2]

void TransferListFiltersWidget::trackerError ( const BitTorrent::TorrentID id,
const QString &  tracker 
)
signal

◆ trackerSuccess [1/2]

void TransferListFiltersWidget::trackerSuccess ( const BitTorrent::Torrent torrent,
const QString &  tracker 
)
slot

Definition at line 766 of file transferlistfilterswidget.cpp.

767 {
768  emit trackerSuccess(torrent->id(), tracker);
769 }

References BitTorrent::Torrent::id().

Referenced by MainWindow::MainWindow(), and TransferListFiltersWidget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ trackerSuccess [2/2]

void TransferListFiltersWidget::trackerSuccess ( const BitTorrent::TorrentID id,
const QString &  tracker 
)
signal

◆ trackerWarning [1/2]

void TransferListFiltersWidget::trackerWarning ( const BitTorrent::Torrent torrent,
const QString &  tracker 
)
slot

Definition at line 771 of file transferlistfilterswidget.cpp.

772 {
773  emit trackerWarning(torrent->id(), tracker);
774 }

References BitTorrent::Torrent::id().

Referenced by MainWindow::MainWindow(), and TransferListFiltersWidget().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ trackerWarning [2/2]

void TransferListFiltersWidget::trackerWarning ( const BitTorrent::TorrentID id,
const QString &  tracker 
)
signal

Member Data Documentation

◆ m_categoryFilterWidget

CategoryFilterWidget* TransferListFiltersWidget::m_categoryFilterWidget
private

Definition at line 176 of file transferlistfilterswidget.h.

Referenced by toggleCategoryFilter(), and TransferListFiltersWidget().

◆ m_tagFilterWidget

TagFilterWidget* TransferListFiltersWidget::m_tagFilterWidget
private

Definition at line 177 of file transferlistfilterswidget.h.

Referenced by toggleTagFilter(), and TransferListFiltersWidget().

◆ m_trackerFilters

TrackerFiltersList* TransferListFiltersWidget::m_trackerFilters
private

◆ m_transferList

TransferListWidget* TransferListFiltersWidget::m_transferList
private

Definition at line 174 of file transferlistfilterswidget.h.

Referenced by toggleCategoryFilter(), and toggleTagFilter().


The documentation for this class was generated from the following files: