mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-29 13:58:51 +03:00
Merge pull request #3447 from glassez/filters
Fix label filter. Closes #3429.
This commit is contained in:
commit
256793aad7
4 changed files with 14 additions and 21 deletions
|
@ -107,7 +107,10 @@ bool TorrentFilter::setHashSet(const QStringSet &hashSet)
|
||||||
|
|
||||||
bool TorrentFilter::setLabel(const QString &label)
|
bool TorrentFilter::setLabel(const QString &label)
|
||||||
{
|
{
|
||||||
if (m_label != label) {
|
// QString::operator==() doesn't distinguish between empty and null strings.
|
||||||
|
if ((m_label != label)
|
||||||
|
|| (m_label.isNull() && !label.isNull())
|
||||||
|
|| (!m_label.isNull() && label.isNull())) {
|
||||||
m_label = label;
|
m_label = label;
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
@ -154,6 +157,7 @@ bool TorrentFilter::matchHash(BitTorrent::TorrentHandle *const torrent) const
|
||||||
|
|
||||||
bool TorrentFilter::matchLabel(BitTorrent::TorrentHandle *const torrent) const
|
bool TorrentFilter::matchLabel(BitTorrent::TorrentHandle *const torrent) const
|
||||||
{
|
{
|
||||||
if (m_label == AnyLabel) return true;
|
if (m_label.isNull()) return true;
|
||||||
|
else if (m_label.isEmpty()) return torrent->label().isEmpty();
|
||||||
else return (torrent->label() == m_label);
|
else return (torrent->label() == m_label);
|
||||||
}
|
}
|
||||||
|
|
|
@ -375,16 +375,7 @@ void LabelFiltersList::showMenu(QPoint)
|
||||||
|
|
||||||
void LabelFiltersList::applyFilter(int row)
|
void LabelFiltersList::applyFilter(int row)
|
||||||
{
|
{
|
||||||
switch (row) {
|
|
||||||
case 0:
|
|
||||||
transferList->applyLabelFilterAll();
|
|
||||||
break;
|
|
||||||
case 1:
|
|
||||||
transferList->applyLabelFilter(QString());
|
|
||||||
break;
|
|
||||||
default:
|
|
||||||
transferList->applyLabelFilter(labelFromRow(row));
|
transferList->applyLabelFilter(labelFromRow(row));
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void LabelFiltersList::handleNewTorrent(BitTorrent::TorrentHandle *const torrent)
|
void LabelFiltersList::handleNewTorrent(BitTorrent::TorrentHandle *const torrent)
|
||||||
|
@ -407,7 +398,9 @@ void LabelFiltersList::torrentAboutToBeDeleted(BitTorrent::TorrentHandle *const
|
||||||
|
|
||||||
QString LabelFiltersList::labelFromRow(int row) const
|
QString LabelFiltersList::labelFromRow(int row) const
|
||||||
{
|
{
|
||||||
Q_ASSERT(row > 1);
|
if (row == 0) return QString(); // All
|
||||||
|
if (row == 1) return QLatin1String(""); // Unlabeled
|
||||||
|
|
||||||
const QString &label = item(row)->text();
|
const QString &label = item(row)->text();
|
||||||
QStringList parts = label.split(" ");
|
QStringList parts = label.split(" ");
|
||||||
Q_ASSERT(parts.size() >= 2);
|
Q_ASSERT(parts.size() >= 2);
|
||||||
|
|
|
@ -832,14 +832,11 @@ void TransferListWidget::currentChanged(const QModelIndex& current, const QModel
|
||||||
emit currentTorrentChanged(torrent);
|
emit currentTorrentChanged(torrent);
|
||||||
}
|
}
|
||||||
|
|
||||||
void TransferListWidget::applyLabelFilterAll()
|
|
||||||
{
|
|
||||||
nameFilterModel->disableLabelFilter();
|
|
||||||
}
|
|
||||||
|
|
||||||
void TransferListWidget::applyLabelFilter(QString label)
|
void TransferListWidget::applyLabelFilter(QString label)
|
||||||
{
|
{
|
||||||
qDebug("Applying Label filter: %s", qPrintable(label));
|
if (label.isNull())
|
||||||
|
nameFilterModel->disableLabelFilter();
|
||||||
|
else
|
||||||
nameFilterModel->setLabelFilter(label);
|
nameFilterModel->setLabelFilter(label);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -86,7 +86,6 @@ public slots:
|
||||||
void displayDLHoSMenu(const QPoint&);
|
void displayDLHoSMenu(const QPoint&);
|
||||||
void applyNameFilter(const QString& name);
|
void applyNameFilter(const QString& name);
|
||||||
void applyStatusFilter(int f);
|
void applyStatusFilter(int f);
|
||||||
void applyLabelFilterAll();
|
|
||||||
void applyLabelFilter(QString label);
|
void applyLabelFilter(QString label);
|
||||||
void applyTrackerFilterAll();
|
void applyTrackerFilterAll();
|
||||||
void applyTrackerFilter(const QStringList &hashes);
|
void applyTrackerFilter(const QStringList &hashes);
|
||||||
|
|
Loading…
Reference in a new issue