mirror of
https://github.com/qbittorrent/qBittorrent.git
synced 2024-11-25 18:56:34 +03:00
Merge pull request #2077 from pmzqla/columns
Add new columns to transfer list
This commit is contained in:
commit
09ab5c37ce
5 changed files with 33 additions and 3 deletions
|
@ -290,6 +290,17 @@ QVariant TorrentModelItem::data(int column, int role) const
|
||||||
QString hash = misc::toQString(m_lastStatus.info_hash);
|
QString hash = misc::toQString(m_lastStatus.info_hash);
|
||||||
return QBtSession::instance()->getMaxRatioPerTorrent(hash, NULL);
|
return QBtSession::instance()->getMaxRatioPerTorrent(hash, NULL);
|
||||||
}
|
}
|
||||||
|
case TR_SEEN_COMPLETE_DATE:
|
||||||
|
return m_lastStatus.last_seen_complete ? QDateTime::fromTime_t(m_lastStatus.last_seen_complete) : QDateTime();
|
||||||
|
case TR_LAST_ACTIVITY:
|
||||||
|
if (m_torrent.is_paused(m_lastStatus) || m_torrent.is_checking(m_lastStatus))
|
||||||
|
return -1;
|
||||||
|
if (m_lastStatus.time_since_upload < m_lastStatus.time_since_download)
|
||||||
|
return m_lastStatus.time_since_upload;
|
||||||
|
else
|
||||||
|
return m_lastStatus.time_since_download;
|
||||||
|
case TR_TOTAL_SIZE:
|
||||||
|
return m_lastStatus.has_metadata ? static_cast<qlonglong>(m_torrent.total_size()) : -1;
|
||||||
default:
|
default:
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
@ -366,6 +377,9 @@ QVariant TorrentModel::headerData(int section, Qt::Orientation orientation,
|
||||||
case TorrentModelItem::TR_SAVE_PATH: return tr("Save path", "Torrent save path");
|
case TorrentModelItem::TR_SAVE_PATH: return tr("Save path", "Torrent save path");
|
||||||
case TorrentModelItem::TR_COMPLETED: return tr("Completed", "Amount of data completed (e.g. in MB)");
|
case TorrentModelItem::TR_COMPLETED: return tr("Completed", "Amount of data completed (e.g. in MB)");
|
||||||
case TorrentModelItem::TR_RATIO_LIMIT: return tr("Ratio Limit", "Upload share ratio limit");
|
case TorrentModelItem::TR_RATIO_LIMIT: return tr("Ratio Limit", "Upload share ratio limit");
|
||||||
|
case TorrentModelItem::TR_SEEN_COMPLETE_DATE: return tr("Last Seen Complete", "Torrent was seen complete on 01/01/2010 08:00");
|
||||||
|
case TorrentModelItem::TR_LAST_ACTIVITY: return tr("Last Activity", "Time passed since a chunk was downloaded/uploaded");
|
||||||
|
case TorrentModelItem::TR_TOTAL_SIZE: return tr("Total Size", "i.e. Size including unwanted data");
|
||||||
default:
|
default:
|
||||||
return QVariant();
|
return QVariant();
|
||||||
}
|
}
|
||||||
|
|
|
@ -49,7 +49,7 @@ Q_OBJECT
|
||||||
|
|
||||||
public:
|
public:
|
||||||
enum State {STATE_DOWNLOADING, STATE_DOWNLOADING_META, STATE_ALLOCATING, STATE_STALLED_DL, STATE_STALLED_UP, STATE_SEEDING, STATE_PAUSED_DL, STATE_PAUSED_UP, STATE_QUEUED_DL, STATE_QUEUED_UP, STATE_CHECKING_UP, STATE_CHECKING_DL, STATE_QUEUED_CHECK, STATE_QUEUED_FASTCHECK, STATE_INVALID};
|
enum State {STATE_DOWNLOADING, STATE_DOWNLOADING_META, STATE_ALLOCATING, STATE_STALLED_DL, STATE_STALLED_UP, STATE_SEEDING, STATE_PAUSED_DL, STATE_PAUSED_UP, STATE_QUEUED_DL, STATE_QUEUED_UP, STATE_CHECKING_UP, STATE_CHECKING_DL, STATE_QUEUED_CHECK, STATE_QUEUED_FASTCHECK, STATE_INVALID};
|
||||||
enum Column {TR_NAME, TR_PRIORITY, TR_SIZE, TR_PROGRESS, TR_STATUS, TR_SEEDS, TR_PEERS, TR_DLSPEED, TR_UPSPEED, TR_ETA, TR_RATIO, TR_LABEL, TR_ADD_DATE, TR_SEED_DATE, TR_TRACKER, TR_DLLIMIT, TR_UPLIMIT, TR_AMOUNT_DOWNLOADED, TR_AMOUNT_UPLOADED, TR_AMOUNT_LEFT, TR_TIME_ELAPSED, TR_SAVE_PATH, TR_COMPLETED, TR_RATIO_LIMIT, NB_COLUMNS};
|
enum Column {TR_NAME, TR_PRIORITY, TR_SIZE, TR_TOTAL_SIZE, TR_PROGRESS, TR_STATUS, TR_SEEDS, TR_PEERS, TR_DLSPEED, TR_UPSPEED, TR_ETA, TR_RATIO, TR_LABEL, TR_ADD_DATE, TR_SEED_DATE, TR_TRACKER, TR_DLLIMIT, TR_UPLIMIT, TR_AMOUNT_DOWNLOADED, TR_AMOUNT_UPLOADED, TR_AMOUNT_LEFT, TR_TIME_ELAPSED, TR_SAVE_PATH, TR_COMPLETED, TR_RATIO_LIMIT, TR_SEEN_COMPLETE_DATE, TR_LAST_ACTIVITY, NB_COLUMNS};
|
||||||
|
|
||||||
public:
|
public:
|
||||||
TorrentModelItem(const QTorrentHandle& h);
|
TorrentModelItem(const QTorrentHandle& h);
|
||||||
|
|
|
@ -58,7 +58,8 @@ void TransferListDelegate::paint(QPainter * painter, const QStyleOptionViewItem
|
||||||
case TorrentModelItem::TR_AMOUNT_UPLOADED:
|
case TorrentModelItem::TR_AMOUNT_UPLOADED:
|
||||||
case TorrentModelItem::TR_AMOUNT_LEFT:
|
case TorrentModelItem::TR_AMOUNT_LEFT:
|
||||||
case TorrentModelItem::TR_COMPLETED:
|
case TorrentModelItem::TR_COMPLETED:
|
||||||
case TorrentModelItem::TR_SIZE: {
|
case TorrentModelItem::TR_SIZE:
|
||||||
|
case TorrentModelItem::TR_TOTAL_SIZE: {
|
||||||
QItemDelegate::drawBackground(painter, opt, index);
|
QItemDelegate::drawBackground(painter, opt, index);
|
||||||
opt.displayAlignment = Qt::AlignRight;
|
opt.displayAlignment = Qt::AlignRight;
|
||||||
QItemDelegate::drawDisplay(painter, opt, option.rect, misc::friendlyUnit(index.data().toLongLong()));
|
QItemDelegate::drawDisplay(painter, opt, option.rect, misc::friendlyUnit(index.data().toLongLong()));
|
||||||
|
@ -201,6 +202,18 @@ void TransferListDelegate::paint(QPainter * painter, const QStyleOptionViewItem
|
||||||
#endif
|
#endif
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
case TorrentModelItem::TR_LAST_ACTIVITY: {
|
||||||
|
QString elapsedString;
|
||||||
|
long long elapsed = index.data().toLongLong();
|
||||||
|
QItemDelegate::drawBackground(painter, opt, index);
|
||||||
|
opt.displayAlignment = Qt::AlignRight;
|
||||||
|
if (elapsed == 0)
|
||||||
|
// Show '< 1m ago' when elapsed time is 0
|
||||||
|
elapsed = 1;
|
||||||
|
elapsedString = tr("%1 ago", "e.g.: 1h 20m ago").arg(misc::userFriendlyDuration(elapsed));
|
||||||
|
QItemDelegate::drawDisplay(painter, opt, option.rect, elapsedString);
|
||||||
|
break;
|
||||||
|
}
|
||||||
default:
|
default:
|
||||||
QItemDelegate::paint(painter, option, index);
|
QItemDelegate::paint(painter, option, index);
|
||||||
}
|
}
|
||||||
|
|
|
@ -59,7 +59,7 @@ protected:
|
||||||
|
|
||||||
return QSortFilterProxyModel::lessThan(left, right);
|
return QSortFilterProxyModel::lessThan(left, right);
|
||||||
}
|
}
|
||||||
else if (column == TorrentModelItem::TR_ADD_DATE || column == TorrentModelItem::TR_SEED_DATE) {
|
else if (column == TorrentModelItem::TR_ADD_DATE || column == TorrentModelItem::TR_SEED_DATE || column == TorrentModelItem::TR_SEEN_COMPLETE_DATE) {
|
||||||
QDateTime vL = left.data().toDateTime();
|
QDateTime vL = left.data().toDateTime();
|
||||||
QDateTime vR = right.data().toDateTime();
|
QDateTime vR = right.data().toDateTime();
|
||||||
|
|
||||||
|
|
|
@ -130,6 +130,9 @@ TransferListWidget::TransferListWidget(QWidget *parent, MainWindow *main_window,
|
||||||
setColumnHidden(TorrentModelItem::TR_SAVE_PATH, true);
|
setColumnHidden(TorrentModelItem::TR_SAVE_PATH, true);
|
||||||
setColumnHidden(TorrentModelItem::TR_COMPLETED, true);
|
setColumnHidden(TorrentModelItem::TR_COMPLETED, true);
|
||||||
setColumnHidden(TorrentModelItem::TR_RATIO_LIMIT, true);
|
setColumnHidden(TorrentModelItem::TR_RATIO_LIMIT, true);
|
||||||
|
setColumnHidden(TorrentModelItem::TR_SEEN_COMPLETE_DATE, true);
|
||||||
|
setColumnHidden(TorrentModelItem::TR_LAST_ACTIVITY, true);
|
||||||
|
setColumnHidden(TorrentModelItem::TR_TOTAL_SIZE, true);
|
||||||
}
|
}
|
||||||
|
|
||||||
//Ensure that at least one column is visible at all times
|
//Ensure that at least one column is visible at all times
|
||||||
|
|
Loading…
Reference in a new issue