Browse Source

Merge pull request #11914 from glassez/fix-hide-zeroes

Fix hide zero values
adaptive-webui-19844
Vladimir Golovnev 5 years ago committed by GitHub
parent
commit
07c22f8c87
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 29
      src/gui/transferlistmodel.cpp
  2. 10
      src/gui/transferlistmodel.h

29
src/gui/transferlistmodel.cpp

@ -105,6 +105,9 @@ TransferListModel::TransferListModel(QObject *parent) @@ -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, @@ -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 @@ -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;

10
src/gui/transferlistmodel.h

@ -111,6 +111,7 @@ private slots: @@ -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: @@ -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…
Cancel
Save