mirror of
https://github.com/d47081/qBittorrent.git
synced 2025-01-12 15:57:57 +00:00
Add a "Moving" status filter
Because sometime (when your save and download path are on different drives, when your disk drive is super busy, ...) move operations can stack up, I add this "Moving" status filter so you can see in a blink of the eye which torrents are in a move state. PR #17810.
This commit is contained in:
parent
17a5bd03c5
commit
e028d8085b
@ -222,6 +222,7 @@ namespace BitTorrent
|
||||
virtual bool isForced() const = 0;
|
||||
virtual bool isChecking() const = 0;
|
||||
virtual bool isDownloading() const = 0;
|
||||
virtual bool isMoving() const = 0;
|
||||
virtual bool isUploading() const = 0;
|
||||
virtual bool isCompleted() const = 0;
|
||||
virtual bool isActive() const = 0;
|
||||
|
@ -873,6 +873,11 @@ bool TorrentImpl::isDownloading() const
|
||||
return false;
|
||||
}
|
||||
|
||||
bool TorrentImpl::isMoving() const
|
||||
{
|
||||
return m_state == TorrentState::Moving;
|
||||
}
|
||||
|
||||
bool TorrentImpl::isUploading() const
|
||||
{
|
||||
switch (m_state)
|
||||
|
@ -145,6 +145,7 @@ namespace BitTorrent
|
||||
bool isForced() const override;
|
||||
bool isChecking() const override;
|
||||
bool isDownloading() const override;
|
||||
bool isMoving() const override;
|
||||
bool isUploading() const override;
|
||||
bool isCompleted() const override;
|
||||
bool isActive() const override;
|
||||
|
@ -46,6 +46,7 @@ const TorrentFilter TorrentFilter::StalledTorrent(TorrentFilter::Stalled);
|
||||
const TorrentFilter TorrentFilter::StalledUploadingTorrent(TorrentFilter::StalledUploading);
|
||||
const TorrentFilter TorrentFilter::StalledDownloadingTorrent(TorrentFilter::StalledDownloading);
|
||||
const TorrentFilter TorrentFilter::CheckingTorrent(TorrentFilter::Checking);
|
||||
const TorrentFilter TorrentFilter::MovingTorrent(TorrentFilter::Moving);
|
||||
const TorrentFilter TorrentFilter::ErroredTorrent(TorrentFilter::Errored);
|
||||
|
||||
using BitTorrent::Torrent;
|
||||
@ -106,6 +107,8 @@ bool TorrentFilter::setTypeByName(const QString &filter)
|
||||
type = StalledDownloading;
|
||||
else if (filter == u"checking")
|
||||
type = Checking;
|
||||
else if (filter == u"moving")
|
||||
type = Moving;
|
||||
else if (filter == u"errored")
|
||||
type = Errored;
|
||||
|
||||
@ -184,6 +187,8 @@ bool TorrentFilter::matchState(const BitTorrent::Torrent *const torrent) const
|
||||
return (torrent->state() == BitTorrent::TorrentState::CheckingUploading)
|
||||
|| (torrent->state() == BitTorrent::TorrentState::CheckingDownloading)
|
||||
|| (torrent->state() == BitTorrent::TorrentState::CheckingResumeData);
|
||||
case Moving:
|
||||
return torrent->isMoving();
|
||||
case Errored:
|
||||
return torrent->isErrored();
|
||||
}
|
||||
|
@ -59,6 +59,7 @@ public:
|
||||
StalledUploading,
|
||||
StalledDownloading,
|
||||
Checking,
|
||||
Moving,
|
||||
Errored
|
||||
};
|
||||
|
||||
@ -78,6 +79,7 @@ public:
|
||||
static const TorrentFilter StalledUploadingTorrent;
|
||||
static const TorrentFilter StalledDownloadingTorrent;
|
||||
static const TorrentFilter CheckingTorrent;
|
||||
static const TorrentFilter MovingTorrent;
|
||||
static const TorrentFilter ErroredTorrent;
|
||||
|
||||
TorrentFilter() = default;
|
||||
|
@ -207,6 +207,9 @@ StatusFilterWidget::StatusFilterWidget(QWidget *parent, TransferListWidget *tran
|
||||
auto *checking = new QListWidgetItem(this);
|
||||
checking->setData(Qt::DisplayRole, tr("Checking (0)"));
|
||||
checking->setData(Qt::DecorationRole, UIThemeManager::instance()->getIcon(u"force-recheck"_qs));
|
||||
auto *moving = new QListWidgetItem(this);
|
||||
moving->setData(Qt::DisplayRole, tr("Moving (0)"));
|
||||
moving->setData(Qt::DecorationRole, UIThemeManager::instance()->getIcon(u"set-location"_qs));
|
||||
auto *errored = new QListWidgetItem(this);
|
||||
errored->setData(Qt::DisplayRole, tr("Errored (0)"));
|
||||
errored->setData(Qt::DecorationRole, UIThemeManager::instance()->getIcon(u"error"_qs));
|
||||
@ -267,6 +270,7 @@ void StatusFilterWidget::updateTorrentStatus(const BitTorrent::Torrent *torrent)
|
||||
update(TorrentFilter::StalledUploading, m_nbStalledUploading);
|
||||
update(TorrentFilter::StalledDownloading, m_nbStalledDownloading);
|
||||
update(TorrentFilter::Checking, m_nbChecking);
|
||||
update(TorrentFilter::Moving, m_nbMoving);
|
||||
update(TorrentFilter::Errored, m_nbErrored);
|
||||
|
||||
m_nbStalled = m_nbStalledUploading + m_nbStalledDownloading;
|
||||
@ -287,6 +291,7 @@ void StatusFilterWidget::updateTexts()
|
||||
item(TorrentFilter::StalledUploading)->setData(Qt::DisplayRole, tr("Stalled Uploading (%1)").arg(m_nbStalledUploading));
|
||||
item(TorrentFilter::StalledDownloading)->setData(Qt::DisplayRole, tr("Stalled Downloading (%1)").arg(m_nbStalledDownloading));
|
||||
item(TorrentFilter::Checking)->setData(Qt::DisplayRole, tr("Checking (%1)").arg(m_nbChecking));
|
||||
item(TorrentFilter::Moving)->setData(Qt::DisplayRole, tr("Moving (%1)").arg(m_nbMoving));
|
||||
item(TorrentFilter::Errored)->setData(Qt::DisplayRole, tr("Errored (%1)").arg(m_nbErrored));
|
||||
}
|
||||
|
||||
@ -350,6 +355,8 @@ void StatusFilterWidget::torrentAboutToBeDeleted(BitTorrent::Torrent *const torr
|
||||
--m_nbStalledDownloading;
|
||||
if (status[TorrentFilter::Checking])
|
||||
--m_nbChecking;
|
||||
if (status[TorrentFilter::Moving])
|
||||
--m_nbMoving;
|
||||
if (status[TorrentFilter::Errored])
|
||||
--m_nbErrored;
|
||||
|
||||
|
@ -114,6 +114,7 @@ private:
|
||||
int m_nbStalledUploading = 0;
|
||||
int m_nbStalledDownloading = 0;
|
||||
int m_nbChecking = 0;
|
||||
int m_nbMoving = 0;
|
||||
int m_nbErrored = 0;
|
||||
};
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user