Compare commits
396 Commits
release-1.
...
release-1.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
3d9c81ffa7 | ||
![]() |
9b86ea56ab | ||
![]() |
a326307b0d | ||
![]() |
2e888a1e68 | ||
![]() |
2b1755eb2a | ||
![]() |
7f3832a73d | ||
![]() |
935de375b9 | ||
![]() |
b88ea10937 | ||
![]() |
9b29302d42 | ||
![]() |
e67d3243e8 | ||
![]() |
977dba4be6 | ||
![]() |
114d96195b | ||
![]() |
99786cdf17 | ||
![]() |
0ad7781c8b | ||
![]() |
dceba7e2e1 | ||
![]() |
3a6b5af494 | ||
![]() |
d6ca454bad | ||
![]() |
e7581df394 | ||
![]() |
65d763b30b | ||
![]() |
16798879b9 | ||
![]() |
74ce8fc87e | ||
![]() |
7dde3423f7 | ||
![]() |
4a960a289e | ||
![]() |
aad78a92f6 | ||
![]() |
edaad3f605 | ||
![]() |
6ef317da16 | ||
![]() |
4ba084e7d5 | ||
![]() |
6732d2e3de | ||
![]() |
8e5f0404a8 | ||
![]() |
080965f0e5 | ||
![]() |
cd9b6ec54e | ||
![]() |
e01a87e644 | ||
![]() |
e0cba78dac | ||
![]() |
22ff0374d5 | ||
![]() |
813f52f452 | ||
![]() |
2dd376a5b1 | ||
![]() |
16832d52c0 | ||
![]() |
d128b734b0 | ||
![]() |
9a300db87a | ||
![]() |
54bfb7cda9 | ||
![]() |
c6698cbf5a | ||
![]() |
4c8ecf5459 | ||
![]() |
aa18f19ab7 | ||
![]() |
1a2fdc259c | ||
![]() |
3ae783e9cb | ||
![]() |
83cac18690 | ||
![]() |
3b09203937 | ||
![]() |
5c3f2f0aed | ||
![]() |
e0ef409220 | ||
![]() |
a12621e1c0 | ||
![]() |
d9199ce836 | ||
![]() |
d78a47ad30 | ||
![]() |
60c3ccac7f | ||
![]() |
1fbf7d42a1 | ||
![]() |
4b73172105 | ||
![]() |
ada5d2665b | ||
![]() |
f1ca41a5c5 | ||
![]() |
17e0700a52 | ||
![]() |
cc77b2f578 | ||
![]() |
85463e3910 | ||
![]() |
7bd0dff802 | ||
![]() |
4bc043146d | ||
![]() |
fd78e0b5ce | ||
![]() |
8565f1e61e | ||
![]() |
4c6d6a35f3 | ||
![]() |
fc79b7dc56 | ||
![]() |
da11488ba1 | ||
![]() |
968c3e1c3e | ||
![]() |
68e30de763 | ||
![]() |
573f00c66c | ||
![]() |
ae81dbe088 | ||
![]() |
2edbe66d91 | ||
![]() |
f9f912906e | ||
![]() |
7b4eee7a7d | ||
![]() |
e799ac57ed | ||
![]() |
30c93b9a4a | ||
![]() |
03dc617874 | ||
![]() |
bc29577a7b | ||
![]() |
5509e94778 | ||
![]() |
89330e11de | ||
![]() |
c016c4bf66 | ||
![]() |
3f1081b621 | ||
![]() |
e3ae03c8a8 | ||
![]() |
fbe292d06e | ||
![]() |
1d294e43f1 | ||
![]() |
d883ef27be | ||
![]() |
be934837e5 | ||
![]() |
956f97f6d6 | ||
![]() |
de38ca3e23 | ||
![]() |
1efaea46e3 | ||
![]() |
2694a0947f | ||
![]() |
f61d9d23f5 | ||
![]() |
60dda258b3 | ||
![]() |
c79a4a746f | ||
![]() |
942b579d8e | ||
![]() |
93bc6dca95 | ||
![]() |
f36052351c | ||
![]() |
d40c646561 | ||
![]() |
9412ced722 | ||
![]() |
7037b53ff8 | ||
![]() |
adc72fb9a6 | ||
![]() |
f0ca99ed6c | ||
![]() |
e443aa75b7 | ||
![]() |
282d0a4af6 | ||
![]() |
25adf6b061 | ||
![]() |
88f0ffe86d | ||
![]() |
c786c42bb1 | ||
![]() |
36bc2e96ba | ||
![]() |
f9bf485ed7 | ||
![]() |
c18103539c | ||
![]() |
727f59f73f | ||
![]() |
5d2d1dfa94 | ||
![]() |
cf694d14f3 | ||
![]() |
ec24fe2f49 | ||
![]() |
a0b4e54410 | ||
![]() |
c97bce4d61 | ||
![]() |
afbfe1a96d | ||
![]() |
2651ec5f0b | ||
![]() |
330905da5e | ||
![]() |
4c6359276c | ||
![]() |
ff1fc527e0 | ||
![]() |
d79cb6b66e | ||
![]() |
0ac2554060 | ||
![]() |
1d31e049a4 | ||
![]() |
d5a4794610 | ||
![]() |
29886acc01 | ||
![]() |
f1ed7f06b9 | ||
![]() |
a848538d66 | ||
![]() |
b58046b1fc | ||
![]() |
fe95e90e05 | ||
![]() |
1544300616 | ||
![]() |
028041f874 | ||
![]() |
81f2d7ee4a | ||
![]() |
66874fbd2f | ||
![]() |
f47b3be0be | ||
![]() |
87eee7029d | ||
![]() |
713c80451e | ||
![]() |
60889cac79 | ||
![]() |
d398679c7e | ||
![]() |
2e5330e54b | ||
![]() |
1499138b9b | ||
![]() |
2433a87445 | ||
![]() |
d0de11909f | ||
![]() |
3f5340523f | ||
![]() |
cc5015773b | ||
![]() |
cd260198f9 | ||
![]() |
71e3061c18 | ||
![]() |
6369401150 | ||
![]() |
fa05441e74 | ||
![]() |
81aac9ebcc | ||
![]() |
7a1af536b6 | ||
![]() |
45efcfce13 | ||
![]() |
cddc3a0a43 | ||
![]() |
c38a8a2bec | ||
![]() |
1225d16413 | ||
![]() |
384f3b23ee | ||
![]() |
a3cfa6bba1 | ||
![]() |
51638eddcc | ||
![]() |
41c6a847b9 | ||
![]() |
d57062a45a | ||
![]() |
32f478a8c2 | ||
![]() |
61dae1444b | ||
![]() |
8ed40cc856 | ||
![]() |
941b8c8d2a | ||
![]() |
4f2a2dfab9 | ||
![]() |
4a6ab376af | ||
![]() |
1e37858cc4 | ||
![]() |
668268b6b5 | ||
![]() |
cfcd9b7eaf | ||
![]() |
6a3dddd0cc | ||
![]() |
dfb2046f82 | ||
![]() |
3ae55b6a6f | ||
![]() |
7e53d23e33 | ||
![]() |
ce2294ee96 | ||
![]() |
14646d0f9e | ||
![]() |
717a4b00e1 | ||
![]() |
fca3b66a25 | ||
![]() |
1a861ef240 | ||
![]() |
1590d9a98f | ||
![]() |
112bcd7255 | ||
![]() |
af29228cc9 | ||
![]() |
b8c79e0b5f | ||
![]() |
0d078f660a | ||
![]() |
e7f89f256a | ||
![]() |
cb693a0795 | ||
![]() |
7b57345c4f | ||
![]() |
90879386d5 | ||
![]() |
3678aa4d23 | ||
![]() |
e497789ec7 | ||
![]() |
2134d404a5 | ||
![]() |
e0707f6907 | ||
![]() |
816f35cbab | ||
![]() |
a73d3132df | ||
![]() |
368c122dce | ||
![]() |
c41d17043c | ||
![]() |
3c17a1410b | ||
![]() |
078110851d | ||
![]() |
70725bdfe2 | ||
![]() |
3c0a610a34 | ||
![]() |
d5b74eecd0 | ||
![]() |
1faf183c73 | ||
![]() |
a1773a7cfd | ||
![]() |
1af3515b00 | ||
![]() |
70e2a5d3b3 | ||
![]() |
78409570a9 | ||
![]() |
5133931302 | ||
![]() |
8326cebf5c | ||
![]() |
ab46f11af2 | ||
![]() |
91acb1a6ec | ||
![]() |
c721fad54b | ||
![]() |
2aea2a0032 | ||
![]() |
3164337c3c | ||
![]() |
b984c309ff | ||
![]() |
cfbd06225b | ||
![]() |
b0a0abd764 | ||
![]() |
9618056b4e | ||
![]() |
8b40e43432 | ||
![]() |
01bc15d3f4 | ||
![]() |
3282e1bcc9 | ||
![]() |
e5b6a5605a | ||
![]() |
9b67807926 | ||
![]() |
f3729fbae6 | ||
![]() |
0538c9c3e8 | ||
![]() |
53a0e85b8d | ||
![]() |
453dd93abf | ||
![]() |
669cc2395a | ||
![]() |
82706141cf | ||
![]() |
c536f24d55 | ||
![]() |
764b4e72ca | ||
![]() |
19dd21062b | ||
![]() |
2d24b468b6 | ||
![]() |
2dc75cb98d | ||
![]() |
5e3be25916 | ||
![]() |
49e8bad7cc | ||
![]() |
796aea19e6 | ||
![]() |
dd35f1723b | ||
![]() |
0177e1fee4 | ||
![]() |
949eb2b5f5 | ||
![]() |
2d59fe37bf | ||
![]() |
b6f81c199e | ||
![]() |
c2964dc340 | ||
![]() |
8aebb93424 | ||
![]() |
96c38f7be4 | ||
![]() |
cf2abe45de | ||
![]() |
88ac8adb30 | ||
![]() |
b331478179 | ||
![]() |
bfaa82ccba | ||
![]() |
77f407724d | ||
![]() |
2f5c2e6404 | ||
![]() |
fbb2cdd1a9 | ||
![]() |
63a4e06556 | ||
![]() |
3d934b4a9c | ||
![]() |
697c275d83 | ||
![]() |
25b9601613 | ||
![]() |
276dfd9df6 | ||
![]() |
19f05f0a97 | ||
![]() |
293aaefefe | ||
![]() |
57cdf4ebd1 | ||
![]() |
c4a0c8f100 | ||
![]() |
306991e776 | ||
![]() |
de2384e4a7 | ||
![]() |
236dbcfb4a | ||
![]() |
a1b133d883 | ||
![]() |
4f8825e371 | ||
![]() |
1aa0936c91 | ||
![]() |
d5e22c523e | ||
![]() |
6618e61a42 | ||
![]() |
26283ec228 | ||
![]() |
ed12f5c77e | ||
![]() |
8e074a571a | ||
![]() |
e2c7c973fd | ||
![]() |
eec04761ef | ||
![]() |
f73256e0ea | ||
![]() |
fec1de6383 | ||
![]() |
db35a7efb8 | ||
![]() |
36eae88a5a | ||
![]() |
c01fd75c92 | ||
![]() |
103f2d0720 | ||
![]() |
037c46b587 | ||
![]() |
0879f2c0ca | ||
![]() |
a65cd5c39c | ||
![]() |
d219e7afeb | ||
![]() |
892bb4c432 | ||
![]() |
45b9c6335c | ||
![]() |
78e643039c | ||
![]() |
04e993c674 | ||
![]() |
c3132fc1b0 | ||
![]() |
b1c73cb401 | ||
![]() |
ac6eb8c6bc | ||
![]() |
8a64412cb5 | ||
![]() |
56885cc914 | ||
![]() |
cdd1f9b86c | ||
![]() |
139360cf76 | ||
![]() |
2931d51add | ||
![]() |
aa0bec41b4 | ||
![]() |
b32b42b53e | ||
![]() |
06c4c717bd | ||
![]() |
a3ed44baec | ||
![]() |
0cbb4a7074 | ||
![]() |
af2e487ef5 | ||
![]() |
28fdfdfef1 | ||
![]() |
c95cca6436 | ||
![]() |
86024c6c74 | ||
![]() |
75290cf715 | ||
![]() |
321b76a72a | ||
![]() |
95ecaec11e | ||
![]() |
0e7c16901c | ||
![]() |
43dcbf776b | ||
![]() |
e21c28e9d2 | ||
![]() |
918c1507d3 | ||
![]() |
a189e4403d | ||
![]() |
563291a2e8 | ||
![]() |
9156c9ac8f | ||
![]() |
f0049f1dae | ||
![]() |
a622152747 | ||
![]() |
8440e9982f | ||
![]() |
602d73fa82 | ||
![]() |
c32ebb8d9f | ||
![]() |
deeead4008 | ||
![]() |
937a491409 | ||
![]() |
79d5ae18a6 | ||
![]() |
5cce0c53bf | ||
![]() |
681b8c14ad | ||
![]() |
443567486e | ||
![]() |
c10ebc3086 | ||
![]() |
42a2acefd3 | ||
![]() |
c781545609 | ||
![]() |
ba06affec7 | ||
![]() |
6140d69fcb | ||
![]() |
71a81fd1b7 | ||
![]() |
4e05b62bbe | ||
![]() |
9d366c8c7d | ||
![]() |
940744b0bf | ||
![]() |
6c2518a704 | ||
![]() |
ef51fabf63 | ||
![]() |
1aedd97d4d | ||
![]() |
ff26ea94f5 | ||
![]() |
c7a289d183 | ||
![]() |
2a70c8f4d8 | ||
![]() |
e27b08d970 | ||
![]() |
48ec57604f | ||
![]() |
db1bbea26a | ||
![]() |
7bbb2f542b | ||
![]() |
5563e24781 | ||
![]() |
f131f6210f | ||
![]() |
0356fa4538 | ||
![]() |
b9c4a434c9 | ||
![]() |
a4318cc060 | ||
![]() |
d6e7161eff | ||
![]() |
e428489ebc | ||
![]() |
fa4cffe3d4 | ||
![]() |
a355a87ec5 | ||
![]() |
39749620a4 | ||
![]() |
e7674bfaf8 | ||
![]() |
3e8ad9eb83 | ||
![]() |
6a95f9170c | ||
![]() |
cc4a542e9d | ||
![]() |
fed63b0b85 | ||
![]() |
bf7b11d87d | ||
![]() |
bb959ba465 | ||
![]() |
b77e28fb12 | ||
![]() |
261f981a9a | ||
![]() |
93ad7e889e | ||
![]() |
b79e2906e8 | ||
![]() |
99e8ac3d36 | ||
![]() |
badd36e81e | ||
![]() |
c835502692 | ||
![]() |
4fe7fd537d | ||
![]() |
88ea548eaf | ||
![]() |
360c8500bb | ||
![]() |
7a925f15ba | ||
![]() |
15ce9a7369 | ||
![]() |
4b8532ea2d | ||
![]() |
8e7d0f4dc1 | ||
![]() |
de0ac5cda4 | ||
![]() |
9a9fd4e2d1 | ||
![]() |
4be0cbd2e4 | ||
![]() |
5fef86ec18 | ||
![]() |
1acd05794a | ||
![]() |
5a61b7543b | ||
![]() |
b6b74752a5 | ||
![]() |
27a71ba123 | ||
![]() |
20ae3d997c | ||
![]() |
b73d0548c8 | ||
![]() |
ca118697e9 | ||
![]() |
600308aaa1 | ||
![]() |
9b1ea66659 | ||
![]() |
d29cc3325b | ||
![]() |
9f6e28b741 | ||
![]() |
4c5f349f49 | ||
![]() |
9a321adfb1 | ||
![]() |
e233f27d1c | ||
![]() |
1cadf73a40 | ||
![]() |
77c97b5b43 | ||
![]() |
0054a330fb | ||
![]() |
8ba05c57b0 |
18
AUTHORS
@@ -6,6 +6,11 @@ Contributors:
|
||||
* Ishan Arora <ishan@qbittorrent.org>
|
||||
* Grigis Gaëtan <cipher16@gmail.com>
|
||||
|
||||
Code from other projects:
|
||||
* files src/ico.cpp src/ico.h
|
||||
copyright: Malte Starostik <malte@kde.org>
|
||||
license: LGPL
|
||||
|
||||
Images Authors:
|
||||
* files: src/Icons/*.png
|
||||
copyright: Gnome Icon Theme
|
||||
@@ -17,13 +22,14 @@ Images Authors:
|
||||
license: Creative Commons Public Domain Dedication
|
||||
url: http://www.openclipart.org
|
||||
|
||||
* files: src/Icons/skins/*.png
|
||||
* files: src/Icons/skin/*.png
|
||||
files: src/menuicons/YYxYY/*.png
|
||||
copyright: Mateusz Tobola <tobejodok@qbittorrent.org>
|
||||
license: GPLv2
|
||||
|
||||
* files: src/menuicons/YYxYY/*.png
|
||||
copyright: Mateusz Tobola <tobejodok@qbittorrent.org>
|
||||
license: GPLv2
|
||||
* file: src/Icons/skin/tabs.gif
|
||||
copyright: Greg Houston <gregory.houston@gmail.com>
|
||||
license: MIT
|
||||
|
||||
* file: src/search_engine/engines/btjunkie.png
|
||||
copyright: Downloaded from btjunkie.org
|
||||
@@ -46,7 +52,9 @@ Translations authors:
|
||||
- Brazilian: Nick Marinho (nickmarinho@gmail.com)
|
||||
- Bulgarian: Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net)
|
||||
- Catalan: Gekko Dam Beer (gekko04@users.sourceforge.net)
|
||||
- Chinese (Simplified): Guo Yue (guoyue0418@hotmail.com)
|
||||
- Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com)
|
||||
- Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com)
|
||||
- Czech: Jirka Vilim (web@tets.cz)
|
||||
- Danish: Mathias Nielsen (comoneo@gmail.com)
|
||||
- Dutch: Joost Schipper (heavyjoost@users.sourceforge.net)
|
||||
- English: Christophe Dumez (chris@qbittorrent.org)
|
||||
|
14
COPYING
@@ -1,3 +1,17 @@
|
||||
qBittorrent is licensed under the GNU General Public License version 2 with the
|
||||
addition of the following special exception:
|
||||
|
||||
In addition, as a special exception, the copyright holders give permission to
|
||||
link this program with the OpenSSL project's "OpenSSL" library (or with
|
||||
modified versions of it that use the same license as the "OpenSSL" library),
|
||||
and distribute the linked executables. You must obey the GNU General Public
|
||||
License in all respects for all of the code used other than "OpenSSL". If you
|
||||
modify file(s), you may extend this exception to your version of the file(s),
|
||||
but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version.
|
||||
|
||||
----------
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
|
115
Changelog
@@ -1,4 +1,116 @@
|
||||
* Unknown - Christophe Dumez <chris@qbittorrent.org> - v1.1.0
|
||||
* Sun Jul 12 2009 - Christophe DUMEZ <chris@qbittorrent.org> - v1.3.4
|
||||
- BUGFIX: Fixed IP filter file parsing on 64bits
|
||||
- BUGFIX: Suppressed QLayout: Attempting to add QLayout "" to properties "properties" warning message when opening a properties dialog
|
||||
- BUGFIX: Fixed a little bug in search engine plugins helper file
|
||||
- BUGFIX: Fixed compilation problems with Qt 4.3
|
||||
- BUGFIX: Percentages no longer disapear with default cleanlooks style
|
||||
- BUGFIX: Cleanly fixed popup menus position in lists (no more workarounds)
|
||||
- BUGFIX: Fixed memory leak in search engine
|
||||
- BUGFIX: Torrents with an infinite ratio are no longer affected by ratio_limit set in program preferences
|
||||
- BUGFIX: Display a ratio of 0.0 if total_upload and total_download are both 0
|
||||
- BUGFIX: Remove last separator in top tool bar
|
||||
- BUGFIX: Tuned lists properties to make sure display is correct
|
||||
- COSMETIC: Display date as well as time in log window
|
||||
|
||||
* Sun Apr 5 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.3
|
||||
- BUGFIX: Fixed Web UI torrent upload form
|
||||
- BUGFIX: Fixed unicode support in search engine
|
||||
- BUGFIX: Fixed search engine bug that prevented a torrent from appearing more than once among all tabs
|
||||
- LICENSE: Added an exception to the license regarding OpenSSL.
|
||||
- I18N: Updated Finnish translation
|
||||
|
||||
* Sat Mar 7 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.2
|
||||
- BUGFIX: Fix top toolbar disabling
|
||||
- BUGFIX: Fix building with Qt 4.5
|
||||
- BUGFIX: RSS items read status is now remembered upon restart
|
||||
|
||||
* Mon Jan 26 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.1
|
||||
- BUGFIX: Torrents paused due to an I/O error were displayed as queued
|
||||
- BUGFIX: qBittorrent now prints backtrace in terminal when segfaulting
|
||||
- BUGFIX: Fixed files progress display in torrent properties
|
||||
- BUGFIX: Improved torrent ratio calculation
|
||||
- BUGFIX: Fixed possible crash when parsing filter file
|
||||
- BUGFIX: Made some code optimization
|
||||
- BUGFIX: Fixed download/upload speed decrease problems
|
||||
- I18N: Updated Finnish, Bulgarian and Greek translations
|
||||
|
||||
* Fri Jan 9 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.0
|
||||
- FEATURE: Based on libtorrent-rasterbar v0.14.2
|
||||
- FEATURE: Improved ratio calculation system
|
||||
- FEATURE: Torrent creation code cleanup
|
||||
- FEATURE: Allow to set maximum number of active seeds (queueing)
|
||||
- FEATURE: Now seeds priorities are handled automatically by libtorrent-rasterbar (queueing)
|
||||
- FEATURE: Code cleanup and optimization (save memory and cpu)
|
||||
- FEATURE: ETA calculation now relies on average speed over all sessions
|
||||
- FEATURE: Allow to force rechecking torrents
|
||||
- FEATURE: Added support for 2 new extensions (uTorrent metadata and smart ban plugin)
|
||||
- FEATURE: Allow to change the save path of torrents after addition
|
||||
- FEATURE: Got rid of libmagick++ dependency
|
||||
- FEATURE: Updated Web interface to MochaUI v0.9.5
|
||||
- FEATURE: Added notification in WebUI when qBittorrent is not reachable
|
||||
- FEATURE: Rewrote folder scanning code (Now uses a filesystem watcher)
|
||||
- FEATURE: Added torrent deletion from hard drive function in Web UI
|
||||
- FEATURE: Added queueing priority actions in Web UI
|
||||
- FEATURE: Display progress using progress bars in Web UI
|
||||
- BUGFIX: Made usage of fastresume data more reliable
|
||||
- BUGFIX: qBittorrent shutdown is now faster
|
||||
- BUGFIX: Fixed several memory leaks
|
||||
- BUGFIX: WebUI is now working with IE7
|
||||
- BUGFIX: Fixed spacing problem in toolbar when toggling its visibility
|
||||
- BUGFIX: Fixed some compilation and Qt4 warnings
|
||||
- BUGFIX: Do not use an addition dialog for torrents from folder scanning
|
||||
- BUGFIX: Catch SIGTERM to exit cleanly (e.g. computer shutdown)
|
||||
- BUGFIX: Improved proxy support code
|
||||
- BUGFIX: Fixed systray icon tooltip on Windows
|
||||
- BUGFIX: Proxy settings are now saved even if disabled
|
||||
|
||||
* Sun Nov 9 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.2.1
|
||||
- BUGFIX: Fixed possible crash when deleting a torrent permanently
|
||||
- BUGFIX: Queued_for_checking torrents were not displayed as checking in seeding list
|
||||
- BUGFIX: Speed up startup time when having a lot of torrents
|
||||
|
||||
* Wed Oct 29th 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.2.0
|
||||
- FEATURE: Torrent queueing system (with priorities)
|
||||
- FEATURE: The number of DHT nodes is displayed
|
||||
- FEATURE: RSS can now be disabled from program preferences
|
||||
- FEATURE: Added collapse/expand all buttons in addition and properties dialogs
|
||||
- FEATURE: Can have different proxies for Bittorrent and search engine
|
||||
- FEATURE: Allow multiple item selection in Web UI transfer list
|
||||
- FEATURE: Moved uploads to a separate list in Web UI
|
||||
- BUGFIX: Totally rewritten Web UI list refresh system (fixed memory leak)
|
||||
- BUGFIX: Disable ETA calculation when ETA column is hidden
|
||||
- BUGFIX: Removed "disconnected" connection state, detection was far from perfect
|
||||
- BUGFIX: Torrents are no longer starting from scratch when changing default save path (when torrent addition dialog is disabled)
|
||||
- BUGFIX: Single instance code is now more reliable on Qt >= 4.4
|
||||
- COSMETIC: Transfer speed, ratio, connection status and DHT nodes are displayed in status bar
|
||||
- COSMETIC: RSS Tab is now hidden as a default
|
||||
- COSMETIC: Allow to hide or display top toolbar
|
||||
- COSMETIC: Log is now in a separate dialog
|
||||
|
||||
* Sun Sept 14 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.4
|
||||
- FEATURE: DHT is no longer used as fallback only
|
||||
- FEATURE: Ported WebUI to Mootools v1.2
|
||||
- BUGFIX: Fixed 'start seeding after torrent creation' feature
|
||||
- BUGFIX: Fixed compilation with boost v1.36
|
||||
- BUGFIX: Some code optimization
|
||||
- BUGFIX: Fixed memory leak in Web UI
|
||||
- BUGFIX: Fixed problems with column sorting
|
||||
- BUGFIX: Improved code for pausing torrents on startup
|
||||
- BUGFIX: Torrent addition dialog is now disabled for downloads from WebUI
|
||||
- BUGFIX: Give focus to input field in WebUI download dialog
|
||||
|
||||
* Tue Aug 26 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.3
|
||||
- BUGFIX: Fixed ratio saving for seeding torrents
|
||||
- I18N: Added czech and traditional chinese translations
|
||||
|
||||
* Sun Aug 17 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.2
|
||||
- BUGFIX: Fixed progress calculation
|
||||
- BUGFIX: Fixed finished torrent detection
|
||||
|
||||
* Fri Aug 01 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.1
|
||||
- BUGFIX: Fixed bad resource file for icons
|
||||
|
||||
* Fri Aug 01 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.0
|
||||
- FEATURE: Web interface to control qbittorrent (Ishan Arora)
|
||||
- FEATURE: Can spoof Azureus peer id to avoid ban
|
||||
- FEATURE: Allow to hide/show some columns in download and seeding lists
|
||||
@@ -27,6 +139,7 @@
|
||||
- COSMETIC: Display "unpaused/total_torrent" in download/upload tabs
|
||||
- COSMETIC: Allow to resize RSS column
|
||||
- COSMETIC: Global UP/DL speeds and ratio are displayed above tabs
|
||||
- COSMETIC: Use infinity symbol for ETA when time is infinite
|
||||
|
||||
* Fri Apr 11 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.0.0
|
||||
- FEATURE: Based on new libtorrent v0.13
|
||||
|
2
INSTALL
@@ -17,7 +17,7 @@ Dependencies:
|
||||
- Qt >= 4.3.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
|
||||
Qt >= 4.4.0 is advised
|
||||
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= v0.13.1 REQUIRED)
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= v0.14.0 REQUIRED)
|
||||
-> http://www.qbittorrent.org/download.php (advised)
|
||||
-> http://www.libtorrent.net
|
||||
Be careful: another library (the one used by rTorrent) uses a similar name.
|
||||
|
58
TODO
@@ -1,45 +1,21 @@
|
||||
// Easy
|
||||
- Translations into as many languages as possible
|
||||
- Use Launchpad/Rosetta for translations once it supports TS files
|
||||
See https://blueprints.launchpad.net/qbittorrent/
|
||||
|
||||
// Intermediate
|
||||
- Port on MacOS, Windows (and create an installer for Windows) - Slow progress
|
||||
- Add some transparency (menus,...), improve look / usabilty
|
||||
- Skins support? (contact Mateusz)
|
||||
|
||||
// Harder
|
||||
- Torrent scheduler ala µtorrent/Bitcomet
|
||||
|
||||
// Waiting for libtorrent
|
||||
- Allow to prioritize torrents (may code this in qBittorrent?)
|
||||
|
||||
// Unsure
|
||||
- Display the peers we are connected to for each torrent with infos (like flag, dl/up speeds, ...)
|
||||
- Azureus spoofing to prevent ban from trackers?
|
||||
- Option to shutdown computer when downloads are finished
|
||||
- NAT checker/Tester
|
||||
- Display hard drive space left?
|
||||
- Make use of dbus on Linux for the single instance instead of socket communication?
|
||||
(http://techbase.kde.org/Development/Tutorials/D-Bus/Accessing_Interfaces)
|
||||
- When favicon can't be downloaded, try to parse the webpage for:
|
||||
<link rel="icon" href="http://example.com/favicon.ico" type="image/vnd.microsoft.icon">
|
||||
* Be careful, the link can be relative
|
||||
- Improve search plugin install (choose in a list taken from plugins.qbittorrent.org)
|
||||
- support zipped torrents? (useful?)
|
||||
- Allow to limit the number of downloading torrents simultaneously (other are paused until a download finishes)
|
||||
|
||||
// in v1.2.0
|
||||
- Allow user to organize the downloads into categories/folders?
|
||||
|
||||
// in v1.1.0
|
||||
- Stop calculating ETAs when ETA column is hidden
|
||||
-> See https://blueprints.launchpad.net/qbittorrent
|
||||
|
||||
Translations updated:
|
||||
// translations done in v1.3.0
|
||||
- Romanian
|
||||
- Russian
|
||||
- Hungarian
|
||||
- German
|
||||
- Chinese (traditional)
|
||||
- Chinese (simplified)
|
||||
- Italian
|
||||
- Swedish
|
||||
- Turkish
|
||||
- French
|
||||
- Chinese
|
||||
- Polish
|
||||
- Slovak
|
||||
- Czech
|
||||
- Korean
|
||||
- Portuguese
|
||||
- Brazilian
|
||||
- Slovak
|
||||
- Swedish
|
||||
- Greek
|
||||
- Bulgarian
|
||||
- Finnish
|
||||
|
113
configure
vendored
@@ -26,9 +26,6 @@ Dependency options:
|
||||
--with-libboost-inc=[path] Path to libboost include files
|
||||
--with-libcurl-inc=[path] Path to libcurl include files
|
||||
--with-libcurl-lib=[path] Path to libcurl library files
|
||||
--disable-libmagick Disable use of libmagick
|
||||
--with-libmagick-inc=[path] Path to libmagick++ include files
|
||||
--with-libmagick-lib=[path] Path to libmagick++ library files
|
||||
--disable-libzzip Disable use of libzzip
|
||||
--with-libzzip-inc=[path] Path to libzzip++ include files
|
||||
--with-libzzip-lib=[path] Path to libzzip++ library files
|
||||
@@ -178,21 +175,6 @@ while [ $# -gt 0 ]; do
|
||||
shift
|
||||
;;
|
||||
|
||||
--disable-libmagick)
|
||||
QC_DISABLE_libmagick="Y"
|
||||
shift
|
||||
;;
|
||||
|
||||
--with-libmagick-inc=*)
|
||||
QC_WITH_LIBMAGICK_INC=$optarg
|
||||
shift
|
||||
;;
|
||||
|
||||
--with-libmagick-lib=*)
|
||||
QC_WITH_LIBMAGICK_LIB=$optarg
|
||||
shift
|
||||
;;
|
||||
|
||||
--disable-libzzip)
|
||||
QC_DISABLE_libzzip="Y"
|
||||
shift
|
||||
@@ -235,9 +217,6 @@ echo QC_WITH_LIBTORRENT_STATIC_LIB=$QC_WITH_LIBTORRENT_STATIC_LIB
|
||||
echo QC_WITH_LIBBOOST_INC=$QC_WITH_LIBBOOST_INC
|
||||
echo QC_WITH_LIBCURL_INC=$QC_WITH_LIBCURL_INC
|
||||
echo QC_WITH_LIBCURL_LIB=$QC_WITH_LIBCURL_LIB
|
||||
echo QC_DISABLE_libmagick=$QC_DISABLE_libmagick
|
||||
echo QC_WITH_LIBMAGICK_INC=$QC_WITH_LIBMAGICK_INC
|
||||
echo QC_WITH_LIBMAGICK_LIB=$QC_WITH_LIBMAGICK_LIB
|
||||
echo QC_DISABLE_libzzip=$QC_DISABLE_libzzip
|
||||
echo QC_WITH_LIBZZIP_INC=$QC_WITH_LIBZZIP_INC
|
||||
echo QC_WITH_LIBZZIP_LIB=$QC_WITH_LIBZZIP_LIB
|
||||
@@ -376,13 +355,13 @@ class qc_libtorrent_rasterbar : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "libtorrent-rasterbar >= 0.13"; }
|
||||
QString name() const { return "libtorrent-rasterbar >= 0.14"; }
|
||||
QString shortname() const { return "libtorrent-rasterbar"; }
|
||||
bool exec(){
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBTORRENT_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "libtorrent/lsd.hpp")) {
|
||||
if(!conf->checkHeader(s, "libtorrent/magnet_uri.hpp")) {
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
@@ -391,7 +370,7 @@ public:
|
||||
sl << "/usr/local/include";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkHeader(s, "libtorrent/lsd.hpp")){
|
||||
if(conf->checkHeader(s, "libtorrent/magnet_uri.hpp")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
@@ -553,86 +532,6 @@ public:
|
||||
return true;
|
||||
}
|
||||
};
|
||||
#line 1 "libmagick.qcm"
|
||||
/*
|
||||
-----BEGIN QCMOD-----
|
||||
name: libmagick
|
||||
arg: with-libmagick-inc=[path], Path to libmagick++ include files
|
||||
arg: with-libmagick-lib=[path], Path to libmagick++ library files
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
#include <QProcess>
|
||||
class qc_libmagick : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_libmagick(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "ImageMagick library (libmagick++)"; }
|
||||
QString shortname() const { return "libmagick++"; }
|
||||
QString checkString() const {
|
||||
if(!conf->getenv("QC_DISABLE_libmagick").isEmpty())
|
||||
return "";
|
||||
return ConfObj::checkString();
|
||||
}
|
||||
bool exec(){
|
||||
if(!conf->getenv("QC_DISABLE_libmagick").isEmpty())
|
||||
return false;
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBMAGICK_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "Magick++.h")) {
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/include";
|
||||
sl << "/usr/local/include";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkHeader(s, "Magick++.h")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found)
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
|
||||
s = conf->getenv("QC_WITH_LIBMAGICK_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkLibrary(s, "Magick++")) {
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/lib/";
|
||||
sl << "/usr/lib64/";
|
||||
sl << "/usr/local/lib/";
|
||||
sl << "/usr/local/lib64/";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkLibrary(s, "Magick++")) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found)
|
||||
return false;
|
||||
}
|
||||
conf->addLib(QString("-L") + s);
|
||||
QProcess magickConfig;
|
||||
QStringList params;
|
||||
params << "--libs";
|
||||
magickConfig.start("Magick++-config", params, QIODevice::ReadOnly);
|
||||
magickConfig.waitForStarted();
|
||||
magickConfig.waitForFinished();
|
||||
QByteArray result = magickConfig.readAll();
|
||||
result = result.replace("\n", "");
|
||||
conf->addLib(result.data());
|
||||
conf->addDefine("HAVE_MAGICK");
|
||||
return true;
|
||||
}
|
||||
};
|
||||
#line 1 "libzzip.qcm"
|
||||
/*
|
||||
-----BEGIN QCMOD-----
|
||||
@@ -720,9 +619,6 @@ cat >$1/modules_new.cpp <<EOT
|
||||
o = new qc_libcurl(conf);
|
||||
o->required = true;
|
||||
o->disabled = false;
|
||||
o = new qc_libmagick(conf);
|
||||
o->required = false;
|
||||
o->disabled = false;
|
||||
o = new qc_libzzip(conf);
|
||||
o->required = false;
|
||||
o->disabled = false;
|
||||
@@ -1677,9 +1573,6 @@ export QC_WITH_LIBTORRENT_STATIC_LIB
|
||||
export QC_WITH_LIBBOOST_INC
|
||||
export QC_WITH_LIBCURL_INC
|
||||
export QC_WITH_LIBCURL_LIB
|
||||
export QC_DISABLE_libmagick
|
||||
export QC_WITH_LIBMAGICK_INC
|
||||
export QC_WITH_LIBMAGICK_LIB
|
||||
export QC_DISABLE_libzzip
|
||||
export QC_WITH_LIBZZIP_INC
|
||||
export QC_WITH_LIBZZIP_LIB
|
||||
|
@@ -15,6 +15,5 @@
|
||||
<dep type='libcurl'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='libmagick'/>
|
||||
<dep type='libzzip'/>
|
||||
</qconf>
|
||||
|
@@ -1,65 +0,0 @@
|
||||
/*
|
||||
-----BEGIN QCMOD-----
|
||||
name: libcommoncpp2
|
||||
arg: with-libcommoncpp2-inc=[path], Path to libcommoncpp2 include files
|
||||
arg: with-libcommoncpp2-lib=[path], Path to libcommoncpp2 library files
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
class qc_libcommoncpp2 : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_libcommoncpp2(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "GNU Common C++ library (libcommoncpp2)"; }
|
||||
QString shortname() const { return "libcommoncpp2"; }
|
||||
bool exec(){
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBCOMMONCPP2_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "cc++/url.h")) {
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/include";
|
||||
sl << "/usr/local/include";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkHeader(s, "cc++/url.h")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
|
||||
s = conf->getenv("QC_WITH_LIBCOMMONCPP2_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(!QFile::exists(s+QString("/libccext2.so")))
|
||||
return false;
|
||||
if(!QFile::exists(s+QString("/libccgnu2.so")))
|
||||
return false;
|
||||
conf->addLib(QString("-L") + s);
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/lib/";
|
||||
sl << "/usr/lib64/";
|
||||
sl << "/usr/local/lib/";
|
||||
sl << "/usr/local/lib64/";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(QFile::exists(s+QString("libccext2.so"))){
|
||||
if(QFile::exists(s+QString("libccgnu2.so"))){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
if(!found) return false;
|
||||
conf->addLib(QString("-L") + s);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
@@ -6,17 +6,18 @@ arg: with-libtorrent-lib=[path], Path to libtorrent-rasterbar library files
|
||||
arg: with-libtorrent-static-lib=[path], Path to libtorrent-rasterbar .a file
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
// see Conf::findPkgConfig
|
||||
class qc_libtorrent_rasterbar : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "libtorrent-rasterbar >= 0.13"; }
|
||||
QString name() const { return "libtorrent-rasterbar >= 0.14"; }
|
||||
QString shortname() const { return "libtorrent-rasterbar"; }
|
||||
bool exec(){
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBTORRENT_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "libtorrent/lsd.hpp")) {
|
||||
if(!conf->checkHeader(s, "libtorrent/magnet_uri.hpp")) {
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
@@ -25,7 +26,7 @@ public:
|
||||
sl << "/usr/local/include";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkHeader(s, "libtorrent/lsd.hpp")){
|
||||
if(conf->checkHeader(s, "libtorrent/magnet_uri.hpp")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
|
@@ -16,6 +16,15 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holders give permission to
|
||||
* link this program with the OpenSSL project's "OpenSSL" library (or with
|
||||
* modified versions of it that use the same license as the "OpenSSL" library),
|
||||
* and distribute the linked executables. You must obey the GNU General Public
|
||||
* License in all respects for all of the code used other than "OpenSSL". If you
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
@@ -40,7 +49,8 @@
|
||||
#define SEEDSLEECH 5
|
||||
#define RATIO 6
|
||||
#define ETA 7
|
||||
#define HASH 8
|
||||
#define PRIORITY 8
|
||||
#define HASH 9
|
||||
|
||||
class DLListDelegate: public QItemDelegate {
|
||||
Q_OBJECT
|
||||
@@ -71,7 +81,10 @@ class DLListDelegate: public QItemDelegate {
|
||||
case RATIO:{
|
||||
QItemDelegate::drawBackground(painter, opt, index);
|
||||
double ratio = index.data().toDouble();
|
||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1)));
|
||||
if(ratio > 100.)
|
||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString::fromUtf8("∞"));
|
||||
else
|
||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1)));
|
||||
break;
|
||||
}
|
||||
case PROGRESS:{
|
||||
|
@@ -16,6 +16,15 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holders give permission to
|
||||
* link this program with the OpenSSL project's "OpenSSL" library (or with
|
||||
* modified versions of it that use the same license as the "OpenSSL" library),
|
||||
* and distribute the linked executables. You must obey the GNU General Public
|
||||
* License in all respects for all of the code used other than "OpenSSL". If you
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
@@ -39,6 +48,8 @@
|
||||
#define F_RATIO 4
|
||||
#define F_HASH 5
|
||||
|
||||
#define MAX_RATIO 100.
|
||||
|
||||
class FinishedListDelegate: public QItemDelegate {
|
||||
Q_OBJECT
|
||||
|
||||
@@ -63,7 +74,10 @@ class FinishedListDelegate: public QItemDelegate {
|
||||
case F_RATIO:{
|
||||
QItemDelegate::drawBackground(painter, opt, index);
|
||||
double ratio = index.data().toDouble();
|
||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1)));
|
||||
if(ratio > MAX_RATIO)
|
||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString::fromUtf8("∞"));
|
||||
else
|
||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1)));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
|
@@ -16,6 +16,15 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holders give permission to
|
||||
* link this program with the OpenSSL project's "OpenSSL" library (or with
|
||||
* modified versions of it that use the same license as the "OpenSSL" library),
|
||||
* and distribute the linked executables. You must obey the GNU General Public
|
||||
* License in all respects for all of the code used other than "OpenSSL". If you
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
@@ -60,11 +69,11 @@ class FinishedTorrents : public QWidget, public Ui::seeding {
|
||||
void displayFinishedHoSMenu(const QPoint&);
|
||||
void setRowColor(int row, QString color);
|
||||
void saveColWidthFinishedList() const;
|
||||
void sortFinishedList(int index);
|
||||
void toggleFinishedListSortOrder(int index);
|
||||
void sortFinishedList(int index=-1, Qt::SortOrder sortOrder=Qt::AscendingOrder);
|
||||
void sortFinishedListFloat(int index, Qt::SortOrder sortOrder);
|
||||
void sortFinishedListString(int index, Qt::SortOrder sortOrder);
|
||||
void updateFileSize(QString hash);
|
||||
void torrentAdded(QString path, QTorrentHandle& h, bool fastResume);
|
||||
void on_actionSet_upload_limit_triggered();
|
||||
void notifyTorrentDoubleClicked(const QModelIndex& index);
|
||||
void hideOrShowColumnName();
|
||||
@@ -72,15 +81,16 @@ class FinishedTorrents : public QWidget, public Ui::seeding {
|
||||
void hideOrShowColumnUpSpeed();
|
||||
void hideOrShowColumnLeechers();
|
||||
void hideOrShowColumnRatio();
|
||||
void forceRecheck();
|
||||
|
||||
public slots:
|
||||
void addTorrent(QString hash);
|
||||
void updateFinishedList();
|
||||
void updateTorrent(QTorrentHandle h);
|
||||
void pauseTorrent(QString hash);
|
||||
void resumeTorrent(QString hash);
|
||||
void propertiesSelection();
|
||||
void deleteTorrent(QString hash);
|
||||
void showPropertiesFromHash(QString hash);
|
||||
void loadLastSortedColumn();
|
||||
|
||||
signals:
|
||||
void torrentMovedFromFinishedList(QString);
|
||||
|
745
src/GUI.cpp
47
src/GUI.h
@@ -16,6 +16,15 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holders give permission to
|
||||
* link this program with the OpenSSL project's "OpenSSL" library (or with
|
||||
* modified versions of it that use the same license as the "OpenSSL" library),
|
||||
* and distribute the linked executables. You must obey the GNU General Public
|
||||
* License in all respects for all of the code used other than "OpenSSL". If you
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
@@ -24,7 +33,7 @@
|
||||
|
||||
#include <QProcess>
|
||||
#include <QSystemTrayIcon>
|
||||
|
||||
#include <QPointer>
|
||||
#include "ui_MainWindow.h"
|
||||
#include "qtorrenthandle.h"
|
||||
|
||||
@@ -52,6 +61,7 @@ class QTabWidget;
|
||||
class QLabel;
|
||||
class QModelIndex;
|
||||
class HttpServer;
|
||||
class QFrame;
|
||||
|
||||
class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
Q_OBJECT
|
||||
@@ -63,9 +73,9 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers;
|
||||
// GUI related
|
||||
QTabWidget *tabs;
|
||||
options_imp *options;
|
||||
QPointer<options_imp> options;
|
||||
QSystemTrayIcon *myTrayIcon;
|
||||
QTimer *systrayCreator;
|
||||
QPointer<QTimer> systrayCreator;
|
||||
QMenu *myTrayIconMenu;
|
||||
DownloadingTorrents *downloadingTorrentTab;
|
||||
FinishedTorrents *finishedTorrentTab;
|
||||
@@ -75,18 +85,28 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
bool force_exit;
|
||||
unsigned int refreshInterval;
|
||||
QTimer *refresher;
|
||||
QLabel *dlSpeedLbl;
|
||||
QLabel *upSpeedLbl;
|
||||
QLabel *ratioLbl;
|
||||
QLabel *DHTLbl;
|
||||
QFrame *statusSep1;
|
||||
QFrame *statusSep2;
|
||||
QFrame *statusSep3;
|
||||
QFrame *statusSep4;
|
||||
// Keyboard shortcuts
|
||||
QShortcut *switchSearchShortcut;
|
||||
QShortcut *switchSearchShortcut2;
|
||||
QShortcut *switchDownShortcut;
|
||||
QShortcut *switchUpShortcut;
|
||||
QShortcut *switchRSSShortcut;
|
||||
QAction *prioSeparator;
|
||||
QAction *prioSeparator2;
|
||||
// Search
|
||||
SearchEngine *searchEngine;
|
||||
// RSS
|
||||
RSSImp *rssWidget;
|
||||
// Web UI
|
||||
HttpServer *httpServer;
|
||||
QPointer<HttpServer> httpServer;
|
||||
// Misc
|
||||
#ifdef QT_4_4
|
||||
QLocalServer *localServer;
|
||||
@@ -105,6 +125,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
void on_actionCreate_torrent_triggered();
|
||||
void on_actionWebsite_triggered() const;
|
||||
void on_actionBugReport_triggered() const;
|
||||
void on_actionShow_console_triggered();
|
||||
void readParamsOnSocket();
|
||||
void acceptConnection();
|
||||
void togglePausedState(QString hash);
|
||||
@@ -144,19 +165,21 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
void processParams(const QStringList& params);
|
||||
void addTorrent(QString path);
|
||||
void addUnauthenticatedTracker(QPair<QTorrentHandle,QString> tracker);
|
||||
void processScannedFiles(const QStringList& params);
|
||||
void processDownloadedFiles(QString path, QString url);
|
||||
void downloadFromURLList(const QStringList& urls);
|
||||
void deleteTorrent(QString hash);
|
||||
void deleteRatioTorrent(QString fileName);
|
||||
void finishedTorrent(QTorrentHandle& h) const;
|
||||
void torrentChecked(QString hash) const;
|
||||
void updateLists();
|
||||
void addedTorrent(QTorrentHandle& h) const;
|
||||
void checkedTorrent(QTorrentHandle& h) const;
|
||||
void pausedTorrent(QTorrentHandle& h) const;
|
||||
void resumedTorrent(QTorrentHandle& h) const;
|
||||
void updateLists(bool force=false);
|
||||
bool initWebUi(QString username, QString password, int port);
|
||||
void pauseTorrent(QString hash);
|
||||
void on_actionIncreasePriority_triggered();
|
||||
void on_actionDecreasePriority_triggered();
|
||||
// Options slots
|
||||
void on_actionOptions_triggered();
|
||||
void OptionsSaved(QString info, bool deleteOptions);
|
||||
void OptionsSaved(bool deleteOptions);
|
||||
// HTTP slots
|
||||
void on_actionDownload_from_URL_triggered();
|
||||
|
||||
@@ -170,7 +193,9 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *);
|
||||
void hideEvent(QHideEvent *);
|
||||
void showEvent(QShowEvent *);
|
||||
bool event(QEvent * event);
|
||||
void displayRSSTab(bool enable);
|
||||
|
||||
public:
|
||||
// Construct / Destruct
|
||||
|
BIN
src/Icons/flags/czech.png
Normal file
After Width: | Height: | Size: 455 B |
BIN
src/Icons/flags/taiwan.png
Normal file
After Width: | Height: | Size: 333 B |
@@ -1,7 +1,7 @@
|
||||
[Desktop Entry]
|
||||
Categories=Qt;Application;Network;P2P
|
||||
Comment=V1.1.0
|
||||
Exec=qbittorrent
|
||||
Categories=Qt;Network;P2P
|
||||
Comment=V1.3.4
|
||||
Exec=qbittorrent %f
|
||||
GenericName=Bittorrent client
|
||||
GenericName[bg]=Торент клиент
|
||||
GenericName[de]=Bittorren Client
|
||||
@@ -19,7 +19,7 @@ GenericName[tr]=Bittorrent istemcisi
|
||||
GenericName[uk]=Bittorrent-клієнт
|
||||
GenericName[zh]=Bittorrent之用户
|
||||
Icon=qbittorrent
|
||||
MimeType=application/x-bittorrent
|
||||
MimeType=application/x-bittorrent;
|
||||
Name=qBittorrent
|
||||
Name[ko]=큐비토런트
|
||||
Terminal=false
|
||||
|
Before Width: | Height: | Size: 2.3 KiB After Width: | Height: | Size: 1.4 KiB |
Before Width: | Height: | Size: 576 B |
BIN
src/Icons/skin/decrease.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
Before Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 2.8 KiB After Width: | Height: | Size: 1.5 KiB |
BIN
src/Icons/skin/increase.png
Normal file
After Width: | Height: | Size: 5.1 KiB |
BIN
src/Icons/skin/queued.png
Normal file
After Width: | Height: | Size: 493 B |
BIN
src/Icons/skin/tabs.gif
Normal file
After Width: | Height: | Size: 2.0 KiB |
Before Width: | Height: | Size: 1.3 KiB |
Before Width: | Height: | Size: 75 KiB After Width: | Height: | Size: 76 KiB |
Before Width: | Height: | Size: 1.2 KiB |
Before Width: | Height: | Size: 1.2 KiB |
@@ -16,6 +16,15 @@
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holders give permission to
|
||||
* link this program with the OpenSSL project's "OpenSSL" library (or with
|
||||
* modified versions of it that use the same license as the "OpenSSL" library),
|
||||
* and distribute the linked executables. You must obey the GNU General Public
|
||||
* License in all respects for all of the code used other than "OpenSSL". If you
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org
|
||||
*/
|
||||
|
||||
|