mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-27 11:49:01 +03:00
Merge pull request #11914 from glassez/fix-hide-zeroes
Fix hide zero values
This commit is contained in:
commit
07c22f8c87
2 changed files with 36 additions and 3 deletions
|
@ -105,6 +105,9 @@ TransferListModel::TransferListModel(QObject *parent)
|
|||
{BitTorrent::TorrentState::Error, getColorByState(BitTorrent::TorrentState::Error)}
|
||||
}
|
||||
{
|
||||
configure();
|
||||
connect(Preferences::instance(), &Preferences::changed, this, &TransferListModel::configure);
|
||||
|
||||
// Load the torrents
|
||||
using namespace BitTorrent;
|
||||
for (TorrentHandle *const torrent : asConst(Session::instance()->torrents()))
|
||||
|
@ -205,9 +208,11 @@ QVariant TransferListModel::headerData(int section, Qt::Orientation orientation,
|
|||
|
||||
QString TransferListModel::displayValue(const BitTorrent::TorrentHandle *torrent, const int column) const
|
||||
{
|
||||
const bool isHideState = (Preferences::instance()->getHideZeroComboValues() == 1)
|
||||
&& (torrent->state() == BitTorrent::TorrentState::PausedDownloading); // paused torrents only
|
||||
const bool hideValues = Preferences::instance()->getHideZeroValues() && isHideState;
|
||||
bool hideValues = false;
|
||||
if (m_hideZeroValuesMode == HideZeroValuesMode::Always)
|
||||
hideValues = true;
|
||||
else if (m_hideZeroValuesMode != HideZeroValuesMode::Never)
|
||||
hideValues = (torrent->state() == BitTorrent::TorrentState::PausedDownloading);
|
||||
|
||||
const auto availabilityString = [hideValues](const qreal value) -> QString
|
||||
{
|
||||
|
@ -575,6 +580,24 @@ void TransferListModel::handleTorrentsUpdated(const QVector<BitTorrent::TorrentH
|
|||
}
|
||||
}
|
||||
|
||||
void TransferListModel::configure()
|
||||
{
|
||||
const Preferences *pref = Preferences::instance();
|
||||
|
||||
HideZeroValuesMode hideZeroValuesMode = HideZeroValuesMode::Never;
|
||||
if (pref->getHideZeroValues()) {
|
||||
if (pref->getHideZeroComboValues() == 1)
|
||||
hideZeroValuesMode = HideZeroValuesMode::Paused;
|
||||
else
|
||||
hideZeroValuesMode = HideZeroValuesMode::Always;
|
||||
}
|
||||
|
||||
if (m_hideZeroValuesMode != hideZeroValuesMode) {
|
||||
m_hideZeroValuesMode = hideZeroValuesMode;
|
||||
emit dataChanged(index(0, 0), index((rowCount() - 1), (columnCount() - 1)));
|
||||
}
|
||||
}
|
||||
|
||||
void TransferListModel::setStateForeground(const BitTorrent::TorrentState state, const QColor &color)
|
||||
{
|
||||
m_stateForegroundColors[state] = color;
|
||||
|
|
|
@ -111,6 +111,7 @@ private slots:
|
|||
void handleTorrentsUpdated(const QVector<BitTorrent::TorrentHandle *> &torrents);
|
||||
|
||||
private:
|
||||
void configure();
|
||||
QString displayValue(const BitTorrent::TorrentHandle *torrent, int column) const;
|
||||
QVariant internalValue(const BitTorrent::TorrentHandle *torrent, int column, bool alt = false) const;
|
||||
|
||||
|
@ -119,6 +120,15 @@ private:
|
|||
const QHash<BitTorrent::TorrentState, QString> m_statusStrings;
|
||||
// row text colors
|
||||
QHash<BitTorrent::TorrentState, QColor> m_stateForegroundColors;
|
||||
|
||||
enum class HideZeroValuesMode
|
||||
{
|
||||
Never,
|
||||
Paused,
|
||||
Always
|
||||
};
|
||||
|
||||
HideZeroValuesMode m_hideZeroValuesMode = HideZeroValuesMode::Never;
|
||||
};
|
||||
|
||||
#endif // TRANSFERLISTMODEL_H
|
||||
|
|
Loading…
Reference in a new issue