Browse Source

FEATURE: Added "Amount downloaded/left" columns to transfer list

Fix bug in column display menu
adaptive-webui-19844
Christophe Dumez 14 years ago
parent
commit
a640b08414
  1. 1
      Changelog
  2. 4
      src/qtlibtorrent/qtorrenthandle.cpp
  3. 1
      src/qtlibtorrent/qtorrenthandle.h
  4. 8
      src/qtlibtorrent/torrentmodel.cpp
  5. 2
      src/qtlibtorrent/torrentmodel.h
  6. 2
      src/transferlistdelegate.h
  7. 4
      src/transferlistwidget.cpp

1
Changelog

@ -9,6 +9,7 @@
- FEATURE: The optimal piece size is now automatically computed in the torrent creation tool - FEATURE: The optimal piece size is now automatically computed in the torrent creation tool
- FEATURE: Bring up the connection settings when clicking on the connection status icon - FEATURE: Bring up the connection settings when clicking on the connection status icon
- FEATURE: Major code refactoring and optimization - FEATURE: Major code refactoring and optimization
- FEATURE: Added "Amount downloaded/left" columns to transfer list
- COSMETIC: Replaced message box by on-screen notification for download errors - COSMETIC: Replaced message box by on-screen notification for download errors
- COSMETIC: Improved the torrent creation tool appearance - COSMETIC: Improved the torrent creation tool appearance
- OTHERS: Dropped support for Qt <= 4.4 - OTHERS: Dropped support for Qt <= 4.4

4
src/qtlibtorrent/qtorrenthandle.cpp

@ -146,6 +146,10 @@ size_type QTorrentHandle::total_wanted_done() const {
return torrent_handle::status().total_wanted_done; return torrent_handle::status().total_wanted_done;
} }
size_type QTorrentHandle::total_wanted() const {
return torrent_handle::status().total_wanted;
}
float QTorrentHandle::download_payload_rate() const { float QTorrentHandle::download_payload_rate() const {
return torrent_handle::status().download_payload_rate; return torrent_handle::status().download_payload_rate;
} }

1
src/qtlibtorrent/qtorrenthandle.h

@ -67,6 +67,7 @@ class QTorrentHandle : public torrent_handle {
size_type piece_length() const; size_type piece_length() const;
int num_pieces() const; int num_pieces() const;
size_type total_wanted_done() const; size_type total_wanted_done() const;
size_type total_wanted() const;
float download_payload_rate() const; float download_payload_rate() const;
float upload_payload_rate() const; float upload_payload_rate() const;
int num_connections() const; int num_connections() const;

8
src/qtlibtorrent/torrentmodel.cpp

@ -180,6 +180,10 @@ QVariant TorrentModelItem::data(int column, int role) const
return m_torrent.download_limit(); return m_torrent.download_limit();
case TR_UPLIMIT: case TR_UPLIMIT:
return m_torrent.upload_limit(); return m_torrent.upload_limit();
case TR_AMOUNT_DOWNLOADED:
return static_cast<qlonglong>(m_torrent.total_wanted_done());
case TR_AMOUNT_LEFT:
return static_cast<qlonglong>(m_torrent.total_wanted() - m_torrent.total_wanted_done());
default: default:
return QVariant(); return QVariant();
} }
@ -241,6 +245,8 @@ QVariant TorrentModel::headerData(int section, Qt::Orientation orientation,
case TorrentModelItem::TR_TRACKER: return tr("Tracker"); case TorrentModelItem::TR_TRACKER: return tr("Tracker");
case TorrentModelItem::TR_DLLIMIT: return tr("Down Limit", "i.e: Download limit"); case TorrentModelItem::TR_DLLIMIT: return tr("Down Limit", "i.e: Download limit");
case TorrentModelItem::TR_UPLIMIT: return tr("Up Limit", "i.e: Upload limit"); case TorrentModelItem::TR_UPLIMIT: return tr("Up Limit", "i.e: Upload limit");
case TorrentModelItem::TR_AMOUNT_DOWNLOADED: return tr("Amount downloaded", "Amount of data downloaded (e.g. in MB)");
case TorrentModelItem::TR_AMOUNT_LEFT: return tr("Amount left", "Amount of data left to download (e.g. in MB)");
default: default:
return QVariant(); return QVariant();
} }
@ -256,6 +262,8 @@ QVariant TorrentModel::headerData(int section, Qt::Orientation orientation,
case TorrentModelItem::TR_RATIO: case TorrentModelItem::TR_RATIO:
case TorrentModelItem::TR_DLLIMIT: case TorrentModelItem::TR_DLLIMIT:
case TorrentModelItem::TR_UPLIMIT: case TorrentModelItem::TR_UPLIMIT:
case TorrentModelItem::TR_AMOUNT_DOWNLOADED:
case TorrentModelItem::TR_AMOUNT_LEFT:
return Qt::AlignRight; return Qt::AlignRight;
case TorrentModelItem::TR_PROGRESS: case TorrentModelItem::TR_PROGRESS:
return Qt::AlignHCenter; return Qt::AlignHCenter;

2
src/qtlibtorrent/torrentmodel.h

@ -49,7 +49,7 @@ Q_OBJECT
public: public:
enum State {STATE_DOWNLOADING, 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_INVALID}; enum State {STATE_DOWNLOADING, 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_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, NB_COLUMNS}; 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_LEFT, NB_COLUMNS};
public: public:
TorrentModelItem(const QTorrentHandle& h); TorrentModelItem(const QTorrentHandle& h);

2
src/transferlistdelegate.h

@ -60,6 +60,8 @@ public:
QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option); QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option);
painter->save(); painter->save();
switch(index.column()){ switch(index.column()){
case TorrentModelItem::TR_AMOUNT_DOWNLOADED:
case TorrentModelItem::TR_AMOUNT_LEFT:
case TorrentModelItem::TR_SIZE:{ case TorrentModelItem::TR_SIZE:{
QItemDelegate::drawBackground(painter, opt, index); QItemDelegate::drawBackground(painter, opt, index);
opt.displayAlignment = Qt::AlignRight; opt.displayAlignment = Qt::AlignRight;

4
src/transferlistwidget.cpp

@ -512,6 +512,8 @@ bool TransferListWidget::loadHiddenColumns() {
setColumnHidden(TorrentModelItem::TR_UPLIMIT, true); setColumnHidden(TorrentModelItem::TR_UPLIMIT, true);
setColumnHidden(TorrentModelItem::TR_DLLIMIT, true); setColumnHidden(TorrentModelItem::TR_DLLIMIT, true);
setColumnHidden(TorrentModelItem::TR_TRACKER, true); setColumnHidden(TorrentModelItem::TR_TRACKER, true);
setColumnHidden(TorrentModelItem::TR_AMOUNT_DOWNLOADED, true);
setColumnHidden(TorrentModelItem::TR_AMOUNT_LEFT, true);
} }
return loaded; return loaded;
} }
@ -521,7 +523,7 @@ void TransferListWidget::displayDLHoSMenu(const QPoint&){
QMenu hideshowColumn(this); QMenu hideshowColumn(this);
hideshowColumn.setTitle(tr("Column visibility")); hideshowColumn.setTitle(tr("Column visibility"));
QList<QAction*> actions; QList<QAction*> actions;
for(int i=0; i < listModel->rowCount(); ++i) { for(int i=0; i < listModel->columnCount(); ++i) {
if(!BTSession->isQueueingEnabled() && i == TorrentModelItem::TR_PRIORITY) { if(!BTSession->isQueueingEnabled() && i == TorrentModelItem::TR_PRIORITY) {
actions.append(0); actions.append(0);
continue; continue;

Loading…
Cancel
Save