Commit graph

55 commits

Author SHA1 Message Date
Ivan Sorokin
e5c024967d Emit TorrentModel::dataChanged() signal only for specific rows, not for the entire table
In commit b50d733 TorrentModel moved from a periodic refresh, to using
postStatusUpdate(). In this transition I forgot to remove emition of
dataChanged() signal for the entire table.

According to my measurements this commit reduce CPU usage of qbittorrent
by a factor of 3:

Before:
   Total wall clock:                                      97.07s
   CPU time:                                              21.77s
   - Time spent in TransferListDelegate::paint():         14.60s
   - Time spent in TorrentModel::forceModelRefresh():      1.44s
   - Time spent in TorrentModel::stateUpdated():           0.02s

After:
   Total wall clock:                                      96.13s
   CPU time:                                               6.68s
   - Time spent in TransferListDelegate::paint():          2.63s
   - Time spent in TorrentModel::forceModelRefresh():     <0.01s
   - Time spent in TorrentModel::stateUpdated():           1.73s

As it is seen the time spent in painting is reduced by a factor of 6 (14.60->2.63) at
the cost of slightly increased time of notifications that model is
changed (1.44->1.73). The next commits attempt to address this issue.
2014-11-09 03:58:50 +03:00
Gabriele
b63f647c2c Add "Total Size" column to transfer list
This column shows the total size of the related torrent taking into
account also the unwanted data.

Closes #1233.
2014-11-02 19:56:03 +01:00
Gabriele
b1af99ffba Add "Last Activity" column to transfer list
This column shows the time elapsed since the related torrent has
received or sent a chunk.

Closes #517.
2014-11-02 19:56:03 +01:00
Gabriele
a501f9d223 Add "Last Seen Complete" column to transfer list
This column shows when we or one of our peers last saw a complete
copy of the related torrent.

Closes #483.
2014-11-02 19:15:10 +01:00
sledgehammer999
d62498b48c Merge pull request #2106 from sorokin/fix-memleak-in-torrentmodel
Fix a memleak in torrentmodel.
2014-11-02 16:43:04 +02:00
sledgehammer999
cfa28ec68c Merge pull request #2080 from sorokin/cleanup-torrent-model
Cleanup torrent model item
2014-11-02 16:36:52 +02:00
Ivan Sorokin
807960b768 Fix a memleak in torrentmodel.
Perhaps we should finally move to C++11 and std::unique_ptr?
2014-11-02 14:56:19 +03:00
Ivan Sorokin
2d98b8f192 Call TorrentModelItem::state() directly in getTorrentStatusReport
There is no point in wraping/unwraping QVariant.
2014-10-25 14:25:26 +04:00
Ivan Sorokin
80297697dd Remove mutable fields from TorrentModelItem
The querying of TR_STATUS doesn't affect color and icon now.
2014-10-25 14:25:25 +04:00
Ivan Sorokin
ad116edac7 Use Qt::GlobalColor to refer to color instead of string
Qt uses binary search to convert string to QColor, we don't need that
binary search at all. This patch could be considered as optimization, but
in reality creating QColor takes only 0.2% of time. So it should be visible
at all.

This could be considered as cleanup for not calling expensive functions
from non-expensive ones.
2014-10-25 14:25:21 +04:00
sledgehammer999
ce4ef37820 Remove superfluous semicolon(;). 2014-10-20 20:39:13 +03:00
Ivan Sorokin
de5f38a160 Speedup compilation speed
libtorrent has a relatively heavy headers, that take lots of time to
process. This commit removes unnecessary includes of libtorrent headers
and replaces them with forward declarations.

I had to move some functions in QBtSession from slots to regular
functions because moc'ed file want to see complete types of all
parameters of slots.

"time make" of full rebuild before this series of commits:

real    13m35.937s
user    12m1.295s
sys     1m25.908s

after:

real    10m54.390s
user    9m31.167s
sys     1m12.580s
2014-10-18 12:19:05 +04:00
Ivan Sorokin
d89d9c2f75 Fewer calls to torrent_handle::info_hash() 2014-10-12 12:09:52 +04:00
sledgehammer999
e294b2f456 Added 'Ratio Limit' column. Closes #936. 2014-08-14 21:05:53 +03:00
sledgehammer999
e0190d5576 Add 'Completed' column. Closes #1241. 2014-08-14 20:22:02 +03:00
sledgehammer999
36cba3b354 When qBT is launched with a magnet don't show it in the transferlist while the metadata are being loaded in the background. 2014-08-09 22:07:49 +03:00
sledgehammer999
d58d87a691 Use completed time from libtorrent directly. Closes #1726. 2014-06-07 14:44:08 +03:00
sledgehammer999
a361c0ea03 Use the torrent_status for the queue_position too. 2014-06-04 20:26:23 +03:00
sledgehammer999
a6fa27467f Fix previous commits. 2014-06-03 21:19:25 +03:00
Ivan Sorokin
b50d7331c7 use post_status_update()
Conflicts:
	src/qtlibtorrent/qbtsession.cpp
2014-06-02 00:31:45 +04:00
Ivan Sorokin
329b754197 cache torrent_status 2014-06-02 00:31:42 +04:00
Ivan Sorokin
1c98c11dd0 speed up icon loading 2014-05-25 12:32:09 +04:00
Ivan Sorokin
bbc4080a5d fewer calls to hash() 2014-05-25 12:32:09 +04:00
sledgehammer999
5d2663660d Count magnet links in the 'downloading' filter and make them prevent system inhibition. Closes #1558 2014-05-15 22:01:27 +03:00
Nick Tiskov
1dd8fa3c58 Use shorter names for amount columns in main UI 2014-01-25 23:28:34 +04:00
Nick Tiskov
4390530cbe Update Main UI 2014-01-22 19:37:31 +04:00
sledgehammer999
f09328c13c Fix inhibit system functionality. Closes #766. 2013-11-16 19:29:50 +02:00
sledgehammer999
51a9a9aabb Make all columns and headers use the same text alignment in the transferlist. 2013-11-09 19:39:13 +02:00
sledgehammer999
8f955fe110 Distinguish more torrent states. 2013-10-22 21:34:27 +03:00
sledgehammer999
14310f9b05 Improve loading of magnet metadata in the background.
Conflicts:
	src/qtlibtorrent/qbtsession.cpp
2013-10-06 13:49:23 +03:00
sledgehammer999
102b2dc738 Fix text size problem on Windows with custom DPI. (closes #758)
On Windows FontMetrics seem to be broken when custom DPI is set by the user.
2013-07-21 23:03:14 +03:00
sledgehammer999
82a0c4585c Merge pull request #622 from john-peterson/column
Adding "Save path" column
2013-07-06 07:29:33 -07:00
sledgehammer999
01307b377e Improve drawing speed of transferlist with many torrents. 2013-06-29 17:58:41 +03:00
John Peterson
d1c3a07ba6 Adding "Save path" column
because it's useful when moving files

It's the same path as in properties because that's consistent
2013-05-01 09:05:14 +02:00
Nick Tiskov
34a88c83f0 Calculate eta for seed only torrents using ratio limits 2013-03-10 20:59:19 +04:00
Nick Tiskov
54e99b73d6 Fix 'Amount Uploaded' contradiction between main view and properties widget 2012-12-27 17:57:31 +04:00
Nick Tiskov
680998f9c2 Add 'Uploaded' column to main view 2012-12-27 17:55:40 +04:00
Christophe Dumez
d09a0f6167 "Completed On" column is not updated until restart (closes #84) 2012-09-10 21:09:22 +03:00
Christophe Dumez
d62554aaba Minor code clean up 2012-08-25 16:34:00 +03:00
BotanEgg
bb11d11a72 Itr cache 2012-07-14 06:28:23 +08:00
Константин Гончарик
abf8c179fc Use preincrement for iterators instead of postincrement 2012-07-13 21:48:19 +03:00
Christophe Dumez
a8a7b61ea9 Coding style clean up 2012-02-20 19:30:53 +02:00
Christophe Dumez
a4c1b93a42 Added debug output 2011-03-14 19:18:52 +00:00
Christophe Dumez
e142aafea1 Do not report torrent being checked as queued 2011-03-13 09:40:31 +00:00
Christophe Dumez
1ce6f4a7c3 Fix magnet link name update problem 2011-01-10 17:33:53 +00:00
Christophe Dumez
bc035b3873 FEATURE: Added "Time Active/Seeded" column to transfer list 2010-12-21 18:25:44 +00:00
Christophe Dumez
19db0d471f Signal / slot fixes 2010-11-24 20:31:14 +00:00
Christophe Dumez
a640b08414 FEATURE: Added "Amount downloaded/left" columns to transfer list
Fix bug in column display menu
2010-11-16 17:43:54 +00:00
Christophe Dumez
9fe64982bb Updated copyright 2010-11-14 19:32:29 +00:00
Christophe Dumez
1d795d85d2 Another torrent deletion fix 2010-11-14 19:11:52 +00:00