You've already forked qBittorrent
mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-10-09 18:32:15 +02:00
Compare commits
334 Commits
release-2.
...
release-2.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
204b02a480 | ||
![]() |
eb7a844099 | ||
![]() |
84dbb76331 | ||
![]() |
fb21944aae | ||
![]() |
14625a565d | ||
![]() |
3f875324d8 | ||
![]() |
03f2293b2a | ||
![]() |
47482586a1 | ||
![]() |
96fd1624ce | ||
![]() |
8ea2312b4f | ||
![]() |
9382de64d6 | ||
![]() |
b0e3549780 | ||
![]() |
d2abe18497 | ||
![]() |
ede004148f | ||
![]() |
91bfe3585c | ||
![]() |
f99adf8e9a | ||
![]() |
ebab7c5760 | ||
![]() |
baf5fe45b4 | ||
![]() |
54793e4195 | ||
![]() |
e8da08906c | ||
![]() |
ae7e9cd1df | ||
![]() |
7679b852b8 | ||
![]() |
eda04b3ef3 | ||
![]() |
3ef6e7bf65 | ||
![]() |
146cf9a435 | ||
![]() |
dff6b057b9 | ||
![]() |
3b7448dfc7 | ||
![]() |
4e4ac771a9 | ||
![]() |
06a376d014 | ||
![]() |
b3d2f9b701 | ||
![]() |
055a99239b | ||
![]() |
e779c9a7db | ||
![]() |
b0f7f5ae58 | ||
![]() |
512ab58832 | ||
![]() |
9ad088682c | ||
![]() |
d2fad8249c | ||
![]() |
20fb7c3adf | ||
![]() |
c4fdfec420 | ||
![]() |
a3e03e739c | ||
![]() |
9846dc0fff | ||
![]() |
1b29b148d8 | ||
![]() |
6dab35cb8e | ||
![]() |
6b2d922005 | ||
![]() |
1d92ae6382 | ||
![]() |
62f4d6386a | ||
![]() |
e74ef4c6fd | ||
![]() |
282ee0e879 | ||
![]() |
697d2ccb71 | ||
![]() |
71d163d743 | ||
![]() |
83685942de | ||
![]() |
6f34c81014 | ||
![]() |
5e826dffc8 | ||
![]() |
b4dc66020c | ||
![]() |
cb4741ed89 | ||
![]() |
4c3976e5df | ||
![]() |
fd7fb115ff | ||
![]() |
197d5b3a05 | ||
![]() |
624d6aa6a1 | ||
![]() |
28d7dc137b | ||
![]() |
351d84e2f7 | ||
![]() |
774b8f4fd6 | ||
![]() |
2fc6470696 | ||
![]() |
1038b00553 | ||
![]() |
c3b37b4f1f | ||
![]() |
41faf341cc | ||
![]() |
44e92a7f3d | ||
![]() |
599f956269 | ||
![]() |
79a9606e86 | ||
![]() |
5b576baf67 | ||
![]() |
aa3ce90478 | ||
![]() |
2c433e35b0 | ||
![]() |
3e4f74ab4e | ||
![]() |
f7c586b47a | ||
![]() |
98b09f68ae | ||
![]() |
357e309dad | ||
![]() |
2e544f6a74 | ||
![]() |
b0d6f3f9bf | ||
![]() |
380989d808 | ||
![]() |
6357d6372c | ||
![]() |
d744968ea6 | ||
![]() |
76ca967d70 | ||
![]() |
9cff66df3f | ||
![]() |
72af6cb206 | ||
![]() |
c7043d5c39 | ||
![]() |
1036990499 | ||
![]() |
f386fd9e23 | ||
![]() |
1e75fa9086 | ||
![]() |
252d2009cd | ||
![]() |
a48d36c9a2 | ||
![]() |
01ad2e9746 | ||
![]() |
2f7b20c704 | ||
![]() |
aae85b4498 | ||
![]() |
c39244aeb6 | ||
![]() |
8f22279428 | ||
![]() |
5a68bc5801 | ||
![]() |
46a3b382db | ||
![]() |
dae959a533 | ||
![]() |
eeda9379d5 | ||
![]() |
80bf89857a | ||
![]() |
65eb40d1f5 | ||
![]() |
9cf37f5364 | ||
![]() |
1ad1498c5d | ||
![]() |
405b804eb5 | ||
![]() |
183e150da1 | ||
![]() |
f98d4e9149 | ||
![]() |
dad1568657 | ||
![]() |
f13fd37819 | ||
![]() |
ae692ba9b8 | ||
![]() |
2036326403 | ||
![]() |
3ad81595df | ||
![]() |
9115a2ddc2 | ||
![]() |
102e25771c | ||
![]() |
d65fc4575a | ||
![]() |
928936046e | ||
![]() |
fe6df6176d | ||
![]() |
6c52dbd477 | ||
![]() |
37f5c8710e | ||
![]() |
341a88c2ef | ||
![]() |
efe2280224 | ||
![]() |
a6294e5739 | ||
![]() |
c9c481fe69 | ||
![]() |
8219c29b0c | ||
![]() |
1e1094f8da | ||
![]() |
452a8b2ae2 | ||
![]() |
bf746be692 | ||
![]() |
de2d2c7469 | ||
![]() |
384eae7014 | ||
![]() |
09ef9947b0 | ||
![]() |
4385b941bb | ||
![]() |
ab0355f8d6 | ||
![]() |
8f439589ea | ||
![]() |
ce6348bc32 | ||
![]() |
4c5dd66b0f | ||
![]() |
5fe562c0fa | ||
![]() |
61faf34ef7 | ||
![]() |
1038376cdb | ||
![]() |
28d1671bb8 | ||
![]() |
8e026e68d7 | ||
![]() |
4be897a4e5 | ||
![]() |
3f4947259b | ||
![]() |
e10a51e61e | ||
![]() |
381eaf4b53 | ||
![]() |
1b7e681e6d | ||
![]() |
1ad764de7b | ||
![]() |
246903fa0a | ||
![]() |
b298f9a06e | ||
![]() |
efdcdeb210 | ||
![]() |
6e4826a512 | ||
![]() |
28ba0c25a7 | ||
![]() |
ea0f384dbf | ||
![]() |
9218f69d87 | ||
![]() |
b9b82e959b | ||
![]() |
6606cf60af | ||
![]() |
94a23cf1d4 | ||
![]() |
15c3836a25 | ||
![]() |
afbac42420 | ||
![]() |
7354e9b738 | ||
![]() |
8abb1d917b | ||
![]() |
7bd8bb4880 | ||
![]() |
3d5487dfcb | ||
![]() |
be09284192 | ||
![]() |
cdf68c90ba | ||
![]() |
a46f665dd4 | ||
![]() |
e5e254a184 | ||
![]() |
2a55aba5fa | ||
![]() |
f5d04a1be9 | ||
![]() |
73132afe6c | ||
![]() |
1d27fa9c03 | ||
![]() |
1585b307bc | ||
![]() |
c882bc8a1d | ||
![]() |
aefa1dba18 | ||
![]() |
7bd19f7696 | ||
![]() |
c25f51e866 | ||
![]() |
68b13f10fe | ||
![]() |
9764fe2a91 | ||
![]() |
7c29e613f0 | ||
![]() |
2a88e790df | ||
![]() |
deb7327ee6 | ||
![]() |
a82ccd8e95 | ||
![]() |
4ffe100287 | ||
![]() |
5990615248 | ||
![]() |
e83618a1b2 | ||
![]() |
9e9cdedfd3 | ||
![]() |
ed5e55f85d | ||
![]() |
d2907dc08c | ||
![]() |
69984f9550 | ||
![]() |
94f92aa4f9 | ||
![]() |
9e5ec56770 | ||
![]() |
b58b4d0066 | ||
![]() |
11a068dfdd | ||
![]() |
deb7cb9d9e | ||
![]() |
085ab0e660 | ||
![]() |
2ff28ff46f | ||
![]() |
eb159c0b18 | ||
![]() |
51b3a5164d | ||
![]() |
fa30d7bd1c | ||
![]() |
ea159c0146 | ||
![]() |
f4c2fdd2fd | ||
![]() |
0c7643cfb3 | ||
![]() |
3282e53e93 | ||
![]() |
2e07e911e4 | ||
![]() |
e838b515b3 | ||
![]() |
7854911d2f | ||
![]() |
7846afaeb8 | ||
![]() |
72b27eecff | ||
![]() |
8c491cc831 | ||
![]() |
ac097b9904 | ||
![]() |
9066520076 | ||
![]() |
2d83482395 | ||
![]() |
7a7016b4bd | ||
![]() |
f2e222adb1 | ||
![]() |
d4d3991795 | ||
![]() |
6d9e519cdc | ||
![]() |
16ad56c13f | ||
![]() |
f2df8ce1d9 | ||
![]() |
921512e51d | ||
![]() |
3529c5c7a0 | ||
![]() |
984e6f9927 | ||
![]() |
8b2f7c4661 | ||
![]() |
83ce77b398 | ||
![]() |
170b0798fd | ||
![]() |
4795e9980b | ||
![]() |
83317ca2d0 | ||
![]() |
02fbd6a135 | ||
![]() |
53900c386b | ||
![]() |
669d1a3a46 | ||
![]() |
122db6a77e | ||
![]() |
86d3c98069 | ||
![]() |
dc87b9f9f4 | ||
![]() |
c7c30ccaee | ||
![]() |
b59dded2a4 | ||
![]() |
b48b9479d2 | ||
![]() |
65883317c3 | ||
![]() |
18e08c319f | ||
![]() |
6265e2e092 | ||
![]() |
bc10bbe135 | ||
![]() |
31aebdc7bf | ||
![]() |
269a50efe5 | ||
![]() |
9b31b1cd72 | ||
![]() |
e989e686a4 | ||
![]() |
d6b5627363 | ||
![]() |
7381b0dcf6 | ||
![]() |
8589eb7c0f | ||
![]() |
284fbf5512 | ||
![]() |
b9aec63e92 | ||
![]() |
88c063cd4d | ||
![]() |
ed3fa0ccee | ||
![]() |
4ec78d1405 | ||
![]() |
8bfbb98509 | ||
![]() |
44011c9cd9 | ||
![]() |
92c7996ff4 | ||
![]() |
0a17eb32cc | ||
![]() |
52e7d4ad03 | ||
![]() |
f843a4b13a | ||
![]() |
719c30c70b | ||
![]() |
b41bcdc605 | ||
![]() |
0ead6f72c6 | ||
![]() |
104ebbc9a1 | ||
![]() |
982098a205 | ||
![]() |
d5bdd2ea3e | ||
![]() |
641b38690c | ||
![]() |
ea433c0619 | ||
![]() |
8847df60e1 | ||
![]() |
3995af6489 | ||
![]() |
4412476109 | ||
![]() |
0c2a121304 | ||
![]() |
885753391d | ||
![]() |
cff7174bbb | ||
![]() |
40bd040c4a | ||
![]() |
0241fa7593 | ||
![]() |
2f06099518 | ||
![]() |
4489934c21 | ||
![]() |
10d815c60d | ||
![]() |
c85cb8799e | ||
![]() |
fd4f46485c | ||
![]() |
3154461f28 | ||
![]() |
da32321f10 | ||
![]() |
aec3087528 | ||
![]() |
9d83439b83 | ||
![]() |
684e00d639 | ||
![]() |
f982501576 | ||
![]() |
87a744fcf6 | ||
![]() |
aca939f0ce | ||
![]() |
675e8282b0 | ||
![]() |
a1272fff82 | ||
![]() |
5579c7ff3d | ||
![]() |
f5d4404b67 | ||
![]() |
851a677a48 | ||
![]() |
fd8157f6ba | ||
![]() |
450c1fc124 | ||
![]() |
493d6ce702 | ||
![]() |
35a2b227b2 | ||
![]() |
6b0c976a0d | ||
![]() |
f9c4150374 | ||
![]() |
fad028cfa2 | ||
![]() |
d9aa8cf4fd | ||
![]() |
6b2da46e87 | ||
![]() |
037cc655ba | ||
![]() |
58bfa6f1bb | ||
![]() |
0a6f591cf5 | ||
![]() |
4ee623f921 | ||
![]() |
e85059521e | ||
![]() |
2a4abe6a77 | ||
![]() |
8217ddc705 | ||
![]() |
5f301b5a04 | ||
![]() |
9a5568349f | ||
![]() |
dc2de49cdb | ||
![]() |
c63503aaa6 | ||
![]() |
eaac9180e5 | ||
![]() |
b8797d075f | ||
![]() |
ea04f79e0f | ||
![]() |
6a3d0da4ad | ||
![]() |
4828a05ced | ||
![]() |
f379084b68 | ||
![]() |
c7314b99ea | ||
![]() |
d0afd46fd3 | ||
![]() |
ba7ece348c | ||
![]() |
01b5844174 | ||
![]() |
dfa16320f0 | ||
![]() |
93a84655b6 | ||
![]() |
a24dc147ab | ||
![]() |
e247d0e5dc | ||
![]() |
b410b7751e | ||
![]() |
028051d6a5 | ||
![]() |
7d4a1bc92a | ||
![]() |
924b09b0f1 | ||
![]() |
188a8ae4f5 | ||
![]() |
1489a6bbd6 | ||
![]() |
9c57cca93c | ||
![]() |
6ed4724e33 | ||
![]() |
63feffd985 | ||
![]() |
d988b0df9c | ||
![]() |
85d6365bc2 | ||
![]() |
784d972602 |
14
.gitignore
vendored
Normal file
14
.gitignore
vendored
Normal file
@@ -0,0 +1,14 @@
|
||||
src/geoip/GeoIP.dat
|
||||
src/qbittorrent
|
||||
qbittorrent.pro.user
|
||||
conf.pri
|
||||
Makefile
|
||||
*.pyc
|
||||
*.log
|
||||
# Compiled object files
|
||||
*.o
|
||||
# Generated MOC, resource and UI files
|
||||
moc_*.cpp
|
||||
qrc_*.cpp
|
||||
ui_*.h
|
||||
*.moc
|
7
AUTHORS
7
AUTHORS
@@ -50,7 +50,7 @@ Images Authors:
|
||||
copyright: Greg Houston <gregory.houston@gmail.com>
|
||||
license: MIT
|
||||
|
||||
* file: src/Icons/skin/qbittorrent_mono.svg
|
||||
* file: src/Icons/skin/qbittorrent_mono*
|
||||
copyright: Daniel Eguren <deguren@gmail.com>
|
||||
license: LGPL
|
||||
|
||||
@@ -74,6 +74,8 @@ Translations authors:
|
||||
copyright:
|
||||
- Arabic: SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)
|
||||
- Armenian: Hrant Ohanyan (hrantohanyan@mail.am)
|
||||
- Basque: Xabier Aramendi (azpidatziak@gmail.com)
|
||||
- Belarusian: Mihas Varantsou (meequz@gmail.com)
|
||||
- Brazilian: Nick Marinho (nickmarinho@gmail.com)
|
||||
- Bulgarian: Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)
|
||||
- Catalan: Francisco Luque Contreras (frannoe@ya.com)
|
||||
@@ -87,11 +89,12 @@ Translations authors:
|
||||
- Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net)
|
||||
- French: Christophe Dumez (chris@qbittorrent.org)
|
||||
- Galician: Marcos Lans (marcoslansgarza@gmail.com)
|
||||
- Georgian: Beqa Arabuli (arabulibeqa@yahoo.com)
|
||||
- German: Niels Hoffmann (zentralmaschine@users.sourceforge.net)
|
||||
- Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net) and Stephanos Antaris (santaris@csd.auth.gr)
|
||||
- Hungarian: Majoros Péter (majoros.j.p@t-online.hu)
|
||||
- Italian: Matteo Sechi (bu17714@gmail.com)
|
||||
- Japanese: Nardog (alphisation@gmail.com)
|
||||
- Japanese: Masato Hashimoto (cabezon.hashimoto@gmail.com)
|
||||
- Korean: Jin Woo Sin (jin828sin@users.sourceforge.net)
|
||||
- Lithuanian: Naglis Jonaitis (njonaitis@gmail.com)
|
||||
- Norwegian: Tomaso
|
||||
|
95
Changelog
95
Changelog
@@ -1,12 +1,89 @@
|
||||
* Sat Mar 26 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.7.1
|
||||
- BUGFIX: Limit file names to 255 bytes to avoid issues on Linux FS
|
||||
- BUGFIX: Fix possible crash when changing the priority of a file
|
||||
- BUGFIX: Magnet link association fix on Win32 (sledgehammer999)
|
||||
- BUGFIX: Easier compilation on Win32 using MinGW (sledgehammer999)
|
||||
- BUGFIX: Sync program preferences before computer shutdown to avoid loss
|
||||
- OTHER: Get rid of QtSVG dependency
|
||||
- I18N: Updated German, Italian, Hungarian, Portuguese, Brazilian,
|
||||
Spanish and Catalan translations
|
||||
* Sat Mar 17 2012 - Christophe Dumez <chris@qbittorrent.org> - v2.9.6
|
||||
- BUGFIX: Fix download first/last pieces state reporting
|
||||
- BUGFIX: Fix name of progress column in torrent content panel
|
||||
- BUGFIX: Disable system tray icon on Mac OS X
|
||||
- BUGFIX: RSS downloader should not ignore "Do not start automatically" rule (closes #946910)
|
||||
- BUGFIX: Fix DHT port setting in Web UI (Closes #952182)
|
||||
- BUGFIX: Fix possible Web UI authentication problem when using SSL (closes #941343)
|
||||
- BUGFIX: Fix possible issues with folder removal when removing a torrent
|
||||
- I18N: Add Basque translation
|
||||
|
||||
* Sat Feb 18 2012 - Christophe Dumez <chris@qbittorrent.org> - v2.9.5
|
||||
- BUGFIX: Fix crash when disabling then reenabling RSS
|
||||
- BUGFIX: Fix duplicate torrent detection when adding a magnet link
|
||||
- BUGFIX: Fix import of new trackers when adding a torrent with same hash (Closes #747000)
|
||||
- BUGFIX: Fix possible redownload of torrents marked as read (Closes #927495)
|
||||
- BUGFIX: Properly remove RSS feed settings/history upon feed removal
|
||||
|
||||
* Sat Feb 18 2012 - Christophe Dumez <chris@qbittorrent.org> - v2.9.4
|
||||
- BUGFIX: qBittorrent does not handle redirection to relative URLs correctly (Closes #919905)
|
||||
- BUGFIX: Cmd+M minimizes main window on Mac OS X (Closes #928216)
|
||||
- BUGFIX: Cmd+Del removes torrents on Mac OS X (Closes #928852)
|
||||
- BUGFIX: Fix potential bug when moving single file torrents to tmp folder (closes #932861)
|
||||
- BUGFIX: Fix torrent import dialog layout (Closes #930932)
|
||||
- BUGFIX: Prevent log window buffer from filling up (Closes #929673)
|
||||
- I18N: Add Belarusian translation
|
||||
|
||||
* Thu Dec 29 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.9.3
|
||||
- BUGFIX: Fix btdigg plugin (Python3 support + torrent name in magnet links)
|
||||
- BUGFIX: Fix banning of IPv6 peers (Closes #885021)
|
||||
- BUGFIX: Fix torrent addition dialog layout problem (Closes #84650522)
|
||||
- BUGFIX: Do not report any progress for disabled files (Closes #56731485)
|
||||
- BUGFIX: Make torrent sorting case insensitive (Closes #857154)
|
||||
- BUGFIX: Improve Web UI usability of small devices
|
||||
- BUGFIX: Program updater: More reliable version detection / comparison
|
||||
- I18N: Add Georgian translation
|
||||
|
||||
* Sat Oct 29 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.9.2
|
||||
- BUGFIX: Fix mimimum dimensions for torrent addition dialog
|
||||
- BUGFIX: Remove dependency on boost-datetime
|
||||
- BUGFIX: Remove dependency on boost-filesystem (libtorrent v0.16.x)
|
||||
|
||||
* Sun Oct 23 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.9.1
|
||||
- BUGFIX: Add support for speed limits scheduling (Web UI)
|
||||
- BUGFIX: Fix ratio calculation for purely seeded torrents
|
||||
- I18N: Update Russian translation
|
||||
- COSMETIC: Torrent addition dialog layout fixes
|
||||
|
||||
* Sat Oct 08 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.9.0
|
||||
- FEATURE: Add file association settings to program preferences (Windows)
|
||||
- FEATURE: Add setting to ignore slow torrents in queueing system
|
||||
- FEATURE: Add advanced setting to announce to all trackers
|
||||
- FEATURE: Add support for anonymous mode (libtorrent >= v0.16)
|
||||
- FEATURE: Add quick "set as default save path" checkbox to torrent addition dialog (sledgehammer999)
|
||||
- BUGFIX: Add tray menu entry for toggling window visibility
|
||||
- BUGFIX: Fix execution log lines selection and copying
|
||||
- BUGFIX: Reduce CPU usage when running Web UI
|
||||
- BUGFIX: Save RSS items to disk regularly for safety
|
||||
- BUGFIX: Fix ratio calculation (use all_time_download)
|
||||
- BUGFIX: Fix torrent upload issues (Web UI)
|
||||
- BUGFIX: Fix some IE incompatibilities (Web UI)
|
||||
- COSMETIC: Display speed at the beginning of the Window title
|
||||
- COSMETIC: Several cosmetic fixes to the Web UI
|
||||
- COSMETIC: Make top toolbar follow system style
|
||||
- OTHER: Display libraries versions in about dialog (sledgehammer999)
|
||||
- OTHER: Display qBittorrent version in Web UI about dialog
|
||||
|
||||
* Thu Jun 02 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.8.0
|
||||
- FEATURE: Added full libtorrent v0.16 support (uTP, ...)
|
||||
- FEATURE: Proxy can be disabled for peer connections
|
||||
- FEATURE: Added support for secure SMTP connection (SSL)
|
||||
- FEATURE: Added support for SMTP authentication
|
||||
- FEATURE: Added UPnP/NAT-PMP port forward for the Web UI port
|
||||
- FEATURE: qBittorrent can update dynamic DNS services (DynDNS, no-ip)
|
||||
- FEATURE: Display peer connection type in peer list (BT, uTP, Web)
|
||||
- FEATURE: Added full regex support to RSS downloader
|
||||
- FEATURE: Added regex help and validation in RSS downloader
|
||||
- FEATURE: Added HTTPS support to Web UI (Ishan Arora)
|
||||
- BUGFIX: Change systray icon on the fly (no restart needed)
|
||||
- BUGFIX: Remember peer-level rate limits (requires libtorrent v0.16)
|
||||
- BUGFIX: Stop annoncing to trackers an all tiers (more respectful)
|
||||
- BUGFIX: Stop sharing private trackers with other peers
|
||||
- BUGFIX: Tracker exchange extension can be disabled
|
||||
- BUGFIX: Cleaner program exit on system log out
|
||||
- BUGFIX: Fix possible magnet link parsing problems
|
||||
- BUGFIX: Fix possible RSS URL parsing problems
|
||||
- COSMETIC: Added monochrome icon for light themes
|
||||
|
||||
* Sun Mar 20 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.7.0
|
||||
- FEATURE: Added search field for torrent content
|
||||
|
14
INSTALL
14
INSTALL
@@ -10,25 +10,23 @@ qBittorrent - A BitTorrent client in C++ / Qt4
|
||||
will install and execute qBittorrent hopefully without any problems.
|
||||
|
||||
Dependencies:
|
||||
- Qt >= 4.5.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
|
||||
- Qt >= 4.5.0 (libqtgui, libqtcore, libqtnetwork, libqtxml, libqtdbus/optional)
|
||||
|
||||
- pkg-config executable
|
||||
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, compatible with v0.15.x)
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, compatible with v0.15.x/v0.16.x)
|
||||
-> http://www.libtorrent.net
|
||||
Be careful: another library (the one used by rTorrent) uses a similar name.
|
||||
|
||||
- libboost 1.34.x (libboost-filesystem, libboost-date-time) + libasio
|
||||
- libboost 1.34.x (libboost-filesystem°) + libasio
|
||||
or
|
||||
- libboost >= 1.35.x (libboost-system, libboost-filesystem, libboost-date-time)
|
||||
- libboost >= 1.35.x (libboost-system, libboost-filesystem°)
|
||||
|
||||
°libboost-filesystem is not needed if libtorrent-rasterbar >= v0.16.x is used
|
||||
|
||||
- python >= 2.3 (needed by search engine)
|
||||
* Run time only dependency
|
||||
|
||||
- libnotify >= 0.4.2, glib-2.0 (optional)
|
||||
* Can be used for system notifications to replace standard Qt notifications
|
||||
so that it integrates better into the Desktop
|
||||
|
||||
- geoip-database (optional)
|
||||
* If qBittorrent cannot find this database, it will try to resolve countries using the Internet but it will be a lot slower.
|
||||
* Run time only dependency
|
||||
|
18
macxconf.pri
18
macxconf.pri
@@ -2,8 +2,22 @@ PREFIX = /usr/local
|
||||
BINDIR = /usr/local/bin
|
||||
DATADIR = /usr/local/share
|
||||
|
||||
INCLUDEPATH += /usr/local/include/libtorrent /usr/include/openssl /usr/include /opt/local/include/boost /opt/local/include
|
||||
LIBS += -ltorrent-rasterbar -lcrypto -L/opt/local/lib -lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt -framework Cocoa -framework Carbon
|
||||
# Use pkg-config to get all necessary libtorrent DEFINES
|
||||
CONFIG += link_pkgconfig
|
||||
PKGCONFIG += libtorrent-rasterbar
|
||||
|
||||
# Special include/libs paths (macports)
|
||||
INCLUDEPATH += /usr/include/openssl /usr/include /opt/local/include/boost /opt/local/include
|
||||
LIBS += -L/opt/local/lib
|
||||
|
||||
# OpenSSL lib
|
||||
LIBS += -lssl -lcrypto
|
||||
# Boost system lib
|
||||
LIBS += -lboost_system-mt
|
||||
# Boost filesystem lib (Not needed for libtorrent >= 0.16.0)
|
||||
LIBS += -lboost_filesystem-mt
|
||||
# Carbon
|
||||
LIBS += -framework Carbon -framework IOKit
|
||||
|
||||
document_icon.path = Contents/Resources
|
||||
document_icon.files = Icons/qBitTorrentDocument.icns
|
||||
|
@@ -11,5 +11,8 @@ LIBS += -ltorrent-rasterbar \
|
||||
|
||||
RC_FILE = qbittorrent_os2.rc
|
||||
|
||||
# LIBTORRENT DEFINES
|
||||
DEFINES += WITH_SHIPPED_GEOIP_H
|
||||
|
||||
DEFINES += WITH_GEOIP_EMBEDDED
|
||||
message("On eCS(OS/2), GeoIP database must be embedded.")
|
||||
|
@@ -2,3 +2,15 @@ TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += src
|
||||
|
||||
include(version.pri)
|
||||
|
||||
# Dist
|
||||
dist.commands += rm -fR ../$${PROJECT_NAME}-$${PROJECT_VERSION}/ &&
|
||||
dist.commands += git clone . ../$${PROJECT_NAME}-$${PROJECT_VERSION} &&
|
||||
dist.commands += rm -fR ../$${PROJECT_NAME}-$${PROJECT_VERSION}/.git &&
|
||||
dist.commands += rm -f ../$${PROJECT_NAME}-$${PROJECT_VERSION}/.gitignore &&
|
||||
dist.commands += cd .. &&
|
||||
dist.commands += tar czf $${PROJECT_NAME}-$${PROJECT_VERSION}.tar.gz $${PROJECT_NAME}-$${PROJECT_VERSION} &&
|
||||
dist.commands += rm -fR $${PROJECT_NAME}-$${PROJECT_VERSION}
|
||||
|
||||
QMAKE_EXTRA_TARGETS += dist
|
||||
|
@@ -17,8 +17,6 @@
|
||||
<dep type='libboost'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='libnotify'>
|
||||
</dep>
|
||||
<dep type='geoip-database'>
|
||||
</dep>
|
||||
<dep type='qtsingleapplication'>
|
||||
|
117
qcm/libboost.qcm
117
qcm/libboost.qcm
@@ -6,12 +6,15 @@ arg: with-libboost-lib=[path], Path to libboost library files
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
#include <boost/version.hpp>
|
||||
#include <libtorrent/version.hpp>
|
||||
|
||||
class qc_libboost : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_libboost(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "libboost"; }
|
||||
QString shortname() const { return "libboost"; }
|
||||
qc_libboost(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "libboost"; }
|
||||
QString shortname() const { return "libboost"; }
|
||||
|
||||
QString findBoostLib(QString path, QString lib) const {
|
||||
QString name;
|
||||
QDir libDir(path);
|
||||
@@ -35,78 +38,60 @@ public:
|
||||
}
|
||||
return name;
|
||||
}
|
||||
bool exec(){
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBBOOST_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "boost/format.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/include";
|
||||
sl << "/usr/local/include";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkHeader(s, "boost/format.hpp")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
// Find library
|
||||
s = conf->getenv("QC_WITH_LIBBOOST_LIB");
|
||||
|
||||
bool exec(){
|
||||
QStringList sl;
|
||||
QString s = conf->getenv("QC_WITH_LIBBOOST_INC");
|
||||
if (!s.isEmpty())
|
||||
sl << s;
|
||||
sl << "/usr/include";
|
||||
sl << "/usr/local/include";
|
||||
bool found = false;
|
||||
foreach (s, sl) {
|
||||
if (conf->checkHeader(s, "boost/format.hpp")
|
||||
#if LIBTORRENT_VERSION_MAJOR == 0 && LIBTORRENT_VERSION_MINOR < 16
|
||||
&& conf->checkHeader(s, "boost/filesystem/path.hpp")
|
||||
#endif
|
||||
) {
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if (!found)
|
||||
return false;
|
||||
|
||||
conf->addIncludePath(s);
|
||||
|
||||
// Find library
|
||||
s = conf->getenv("QC_WITH_LIBBOOST_LIB");
|
||||
QStringList required_libs;
|
||||
#if BOOST_VERSION >= 103500
|
||||
required_libs << "system";
|
||||
#endif
|
||||
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
||||
// Not required by nox
|
||||
required_libs << "filesystem" ;
|
||||
}
|
||||
#if LIBTORRENT_VERSION_MAJOR == 0 && LIBTORRENT_VERSION_MINOR < 16
|
||||
required_libs << "filesystem" ;
|
||||
#endif
|
||||
required_libs << "thread";
|
||||
QStringList libDirs;
|
||||
if (!s.isEmpty())
|
||||
libDirs << s;
|
||||
libDirs << "/usr/lib/" << "/usr/lib64/" << "/usr/local/lib/" << "/usr/local/lib64/";
|
||||
|
||||
foreach(const QString& lib, required_libs) {
|
||||
if(!s.isEmpty()) {
|
||||
QString detected_name = findBoostLib(s, lib);
|
||||
if(detected_name.isEmpty()) {
|
||||
printf("Could not find boost %s library!\n", qPrintable(lib));
|
||||
return false;
|
||||
} else {
|
||||
bool found = false;
|
||||
foreach(const QString& libDir, libDirs) {
|
||||
QString detected_name = findBoostLib(libDir, lib);
|
||||
if(!detected_name.isEmpty()) {
|
||||
conf->addLib("-l"+detected_name);
|
||||
}
|
||||
} else {
|
||||
bool found = false;
|
||||
foreach(const QString& libDir, libDirs) {
|
||||
QString detected_name = findBoostLib(libDir, lib);
|
||||
if(!detected_name.isEmpty()) {
|
||||
conf->addLib("-l"+detected_name);
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
printf("Could not find boost %s library!\n", qPrintable(lib));
|
||||
return false;
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
printf("Could not find boost %s library!\n", qPrintable(lib));
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@@ -19,9 +19,6 @@ public:
|
||||
return false;
|
||||
for(int n = 0; n < incs.count(); ++n)
|
||||
conf->addIncludePath(incs[n]);
|
||||
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
||||
conf->addLib("-lcrypto");
|
||||
}
|
||||
return true;
|
||||
}
|
||||
};
|
||||
|
@@ -19,7 +19,11 @@ public:
|
||||
}
|
||||
// Debug mode
|
||||
if(!conf->getenv("QC_ENABLE_DEBUG").isEmpty()) {
|
||||
conf->addExtra("CONFIG -= release");
|
||||
conf->addExtra("CONFIG += debug");
|
||||
} else {
|
||||
conf->addExtra("CONFIG -= debug");
|
||||
conf->addExtra("CONFIG += release");
|
||||
}
|
||||
#ifdef Q_OS_FREEBSD
|
||||
conf->addLib("-lexecinfo");
|
||||
|
BIN
src/Icons/oxygen/security-high.png
Normal file
BIN
src/Icons/oxygen/security-high.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
BIN
src/Icons/oxygen/security-low.png
Normal file
BIN
src/Icons/oxygen/security-low.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
BIN
src/Icons/oxygen/task-attention.png
Normal file
BIN
src/Icons/oxygen/task-attention.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 651 B |
BIN
src/Icons/skin/qbittorrent_mono_light.png
Normal file
BIN
src/Icons/skin/qbittorrent_mono_light.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 1.6 KiB |
@@ -47,7 +47,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>2.7.1</string>
|
||||
<string>2.9.6</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
|
126
src/about.ui
126
src/about.ui
File diff suppressed because one or more lines are too long
@@ -33,6 +33,9 @@
|
||||
|
||||
#include "ui_about.h"
|
||||
#include <QFile>
|
||||
#include <QtGlobal>
|
||||
#include <libtorrent/version.hpp>
|
||||
#include <boost/version.hpp>
|
||||
|
||||
class about : public QDialog, private Ui::AboutDlg{
|
||||
Q_OBJECT
|
||||
@@ -61,6 +64,8 @@ class about : public QDialog, private Ui::AboutDlg{
|
||||
QString trans_txt = "<p>"+tr("I would like to thank the following people who volunteered to translate qBittorrent:")+"</p>";
|
||||
trans_txt += QString::fromUtf8("<ul><li><u>Arabic:</u> SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)</li>\
|
||||
<li><u>Armenian:</u> Hrant Ohanyan (hrantohanyan@mail.am)</li>\
|
||||
<li><u>Basque:</u> Xabier Aramendi (azpidatziak@gmail.com)</li>\
|
||||
<li><u>Belarusian:</u> Mihas Varantsou (meequz@gmail.com)</li>\
|
||||
<li><u>Brazilian:</u> Nick Marinho (nickmarinho@gmail.com)</li>\
|
||||
<li><u>Bulgarian:</u> Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)</li>\
|
||||
<li><u>Catalan:</u> Francisco Luque Contreras (frannoe@ya.com)</li>\
|
||||
@@ -72,11 +77,12 @@ class about : public QDialog, private Ui::AboutDlg{
|
||||
<li><u>Dutch:</u> Pieter Heyvaert (pieter_heyvaert@hotmail.com)</li>\
|
||||
<li><u>Finnish:</u> Niklas Laxström (nikerabbit@users.sourceforge.net) and Pekka Niemi (pekka.niemi@iki.fi)</li>\
|
||||
<li><u>Galician:</u> Marcos Lans (marcoslansgarza@gmail.com)</li>\
|
||||
<li><u>Georgian:</u> Beqa Arabuli (arabulibeqa@yahoo.com)</li>\
|
||||
<li><u>German:</u> Niels Hoffmann (zentralmaschine@users.sourceforge.net)</li>\
|
||||
<li><u>Greek:</u> Tsvetan Bankov (emerge_life@users.sourceforge.net)</li>\
|
||||
<li><u>Hungarian:</u> Majoros Péter (majoros.peterj@gmail.com)</li>\
|
||||
<li><u>Italian:</u> Matteo Sechi (bu17714@gmail.com)</li>\
|
||||
<li><u>Japanese:</u> Nardog (alphisation@gmail.com)</li>\
|
||||
<li><u>Japanese:</u> Masato Hashimoto (cabezon.hashimoto@gmail.com)</li>\
|
||||
<li><u>Korean:</u> Jin Woo Sin (jin828sin@users.sourceforge.net)</li>\
|
||||
<li><u>Lithuanian:</u> Naglis Jonaitis (njonaitis@gmail.com)</li>\
|
||||
<li><u>Norwegian:</u> Tomaso</li>\
|
||||
@@ -99,6 +105,10 @@ class about : public QDialog, private Ui::AboutDlg{
|
||||
te_license->setHtml(licensefile.readAll());
|
||||
licensefile.close();
|
||||
}
|
||||
// Libraries
|
||||
label_11->setText(QT_VERSION_STR);
|
||||
label_12->setText(LIBTORRENT_VERSION);
|
||||
label_13->setText(QString::number(BOOST_VERSION / 100000) + "." + QString::number((BOOST_VERSION / 100) % 1000) + "." + QString::number(BOOST_VERSION % 100));
|
||||
show();
|
||||
}
|
||||
};
|
||||
|
288
src/dnsupdater.cpp
Normal file
288
src/dnsupdater.cpp
Normal file
File diff suppressed because it is too large
Load Diff
81
src/dnsupdater.h
Normal file
81
src/dnsupdater.h
Normal file
@@ -0,0 +1,81 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt4 and libtorrent.
|
||||
* Copyright (C) 2011 Christophe Dumez
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* 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
|
||||
*/
|
||||
|
||||
#ifndef DNSUPDATER_H
|
||||
#define DNSUPDATER_H
|
||||
|
||||
#include <QObject>
|
||||
#include <QHostAddress>
|
||||
#include <QNetworkReply>
|
||||
#include <QDateTime>
|
||||
#include <QTimer>
|
||||
#include "preferences.h"
|
||||
|
||||
/*!
|
||||
* Based on http://www.dyndns.com/developers/specs/
|
||||
*/
|
||||
class DNSUpdater : public QObject
|
||||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit DNSUpdater(QObject *parent = 0);
|
||||
~DNSUpdater();
|
||||
static QUrl getRegistrationUrl(int service);
|
||||
|
||||
public slots:
|
||||
void updateCredentials();
|
||||
|
||||
private slots:
|
||||
void checkPublicIP();
|
||||
void ipRequestFinished(QNetworkReply* reply);
|
||||
void updateDNSService();
|
||||
void ipUpdateFinished(QNetworkReply* reply);
|
||||
|
||||
private:
|
||||
QUrl getUpdateUrl() const;
|
||||
void processIPUpdateReply(const QString &reply);
|
||||
|
||||
private:
|
||||
QHostAddress m_lastIP;
|
||||
QDateTime m_lastIPCheckTime;
|
||||
QTimer m_ipCheckTimer;
|
||||
int m_state;
|
||||
// Service creds
|
||||
DNS::Service m_service;
|
||||
QString m_domain;
|
||||
QString m_username;
|
||||
QString m_password;
|
||||
|
||||
private:
|
||||
static const int IP_CHECK_INTERVAL_MS = 1800000; // 30 min
|
||||
enum State { OK, INVALID_CREDS, FATAL };
|
||||
};
|
||||
|
||||
#endif // DNSUPDATER_H
|
@@ -66,9 +66,14 @@ void DownloadThread::processDlFinished(QNetworkReply* reply) {
|
||||
const QVariant redirection = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
|
||||
if(redirection.isValid()) {
|
||||
// We should redirect
|
||||
qDebug("Redirecting from %s to %s", qPrintable(url), qPrintable(redirection.toUrl().toString()));
|
||||
m_redirectMapping.insert(redirection.toUrl().toString(), url);
|
||||
downloadUrl(redirection.toUrl().toString());
|
||||
QUrl newUrl = redirection.toUrl();
|
||||
// Resolve relative urls
|
||||
if (newUrl.isRelative())
|
||||
newUrl = reply->url().resolved(newUrl);
|
||||
const QString newUrlString = newUrl.toString();
|
||||
qDebug("Redirecting from %s to %s", qPrintable(url), qPrintable(newUrlString));
|
||||
m_redirectMapping.insert(newUrlString, url);
|
||||
downloadUrl(newUrlString);
|
||||
reply->deleteLater();
|
||||
return;
|
||||
}
|
||||
@@ -86,9 +91,8 @@ void DownloadThread::processDlFinished(QNetworkReply* reply) {
|
||||
// TODO: Support GZIP compression
|
||||
tmpfile->write(reply->readAll());
|
||||
tmpfile->close();
|
||||
// XXX: For some reason, tmpfile has to be destroyed before
|
||||
// the signal is sent or the file stays locked on Windows
|
||||
// for some reason.
|
||||
// XXX: tmpfile needs to be deleted on Windows before using the file
|
||||
// or it will complain that the file is used by another process.
|
||||
delete tmpfile;
|
||||
// Send finished signal
|
||||
emit downloadFinished(url, filePath);
|
||||
|
@@ -1,32 +1,77 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt4 and libtorrent.
|
||||
* Copyright (C) 2011 Christophe Dumez
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* 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
|
||||
*/
|
||||
|
||||
#include <QListWidgetItem>
|
||||
#include <QLabel>
|
||||
#include "executionlog.h"
|
||||
#include "ui_executionlog.h"
|
||||
#include "qbtsession.h"
|
||||
#include "iconprovider.h"
|
||||
#include "loglistwidget.h"
|
||||
|
||||
ExecutionLog::ExecutionLog(QWidget *parent) :
|
||||
QWidget(parent),
|
||||
ui(new Ui::ExecutionLog)
|
||||
QWidget(parent),
|
||||
ui(new Ui::ExecutionLog),
|
||||
m_logList(new LogListWidget(MAX_LOG_MESSAGES)),
|
||||
m_banList(new LogListWidget(MAX_LOG_MESSAGES))
|
||||
{
|
||||
ui->setupUi(this);
|
||||
|
||||
ui->tabConsole->setTabIcon(0, IconProvider::instance()->getIcon("view-calendar-journal"));
|
||||
ui->tabConsole->setTabIcon(1, IconProvider::instance()->getIcon("view-filter"));
|
||||
ui->textConsole->setHtml(QBtSession::instance()->getConsoleMessages().join("<br>"));
|
||||
ui->tabGeneral->layout()->addWidget(m_logList);
|
||||
ui->tabBan->layout()->addWidget(m_banList);
|
||||
|
||||
const QStringList log_msgs = QBtSession::instance()->getConsoleMessages();
|
||||
foreach(const QString& msg, log_msgs)
|
||||
addLogMessage(msg);
|
||||
const QStringList ban_msgs = QBtSession::instance()->getPeerBanMessages();
|
||||
foreach(const QString& msg, ban_msgs)
|
||||
addBanMessage(msg);
|
||||
connect(QBtSession::instance(), SIGNAL(newConsoleMessage(QString)), SLOT(addLogMessage(QString)));
|
||||
ui->textBannedPeers->setHtml(QBtSession::instance()->getPeerBanMessages().join("<br>"));
|
||||
connect(QBtSession::instance(), SIGNAL(newBanMessage(QString)), SLOT(addBanMessage(QString)));
|
||||
}
|
||||
|
||||
ExecutionLog::~ExecutionLog()
|
||||
{
|
||||
delete m_logList;
|
||||
delete m_banList;
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void ExecutionLog::addLogMessage(const QString &msg)
|
||||
{
|
||||
ui->textConsole->setHtml(msg+ui->textConsole->toHtml());
|
||||
m_logList->appendLine(msg);
|
||||
}
|
||||
|
||||
void ExecutionLog::addBanMessage(const QString &msg)
|
||||
{
|
||||
ui->textBannedPeers->setHtml(msg+ui->textBannedPeers->toHtml());
|
||||
m_banList->appendLine(msg);
|
||||
}
|
||||
|
@@ -1,3 +1,33 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt4 and libtorrent.
|
||||
* Copyright (C) 2011 Christophe Dumez
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* 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
|
||||
*/
|
||||
|
||||
#ifndef EXECUTIONLOG_H
|
||||
#define EXECUTIONLOG_H
|
||||
|
||||
@@ -7,6 +37,7 @@ QT_BEGIN_NAMESPACE
|
||||
namespace Ui {
|
||||
class ExecutionLog;
|
||||
}
|
||||
class LogListWidget;
|
||||
QT_END_NAMESPACE
|
||||
|
||||
class ExecutionLog : public QWidget
|
||||
@@ -22,7 +53,11 @@ public slots:
|
||||
void addBanMessage(const QString &msg);
|
||||
|
||||
private:
|
||||
Ui::ExecutionLog *ui;
|
||||
Ui::ExecutionLog *ui;
|
||||
|
||||
LogListWidget *m_logList;
|
||||
LogListWidget *m_banList;
|
||||
int m_maxLines;
|
||||
};
|
||||
|
||||
#endif // EXECUTIONLOG_H
|
||||
|
@@ -22,25 +22,17 @@
|
||||
<property name="currentIndex">
|
||||
<number>0</number>
|
||||
</property>
|
||||
<widget class="QWidget" name="tab">
|
||||
<widget class="QWidget" name="tabGeneral">
|
||||
<attribute name="title">
|
||||
<string>General</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout">
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="textConsole"/>
|
||||
</item>
|
||||
</layout>
|
||||
<layout class="QVBoxLayout"/>
|
||||
</widget>
|
||||
<widget class="QWidget" name="tab_2">
|
||||
<widget class="QWidget" name="tabBan">
|
||||
<attribute name="title">
|
||||
<string>Blocked IPs</string>
|
||||
</attribute>
|
||||
<layout class="QVBoxLayout" name="_2">
|
||||
<item>
|
||||
<widget class="QTextBrowser" name="textBannedPeers"/>
|
||||
</item>
|
||||
</layout>
|
||||
<layout class="QVBoxLayout" name="_2"/>
|
||||
</widget>
|
||||
</widget>
|
||||
</item>
|
||||
|
@@ -9,6 +9,7 @@
|
||||
<file>Icons/magnet.png</file>
|
||||
<file>Icons/slow.png</file>
|
||||
<file>Icons/L.gif</file>
|
||||
<file>Icons/skin/qbittorrent_mono_light.png</file>
|
||||
<file>Icons/skin/seeding.png</file>
|
||||
<file>Icons/skin/splash.png</file>
|
||||
<file>Icons/skin/tabs.gif</file>
|
||||
@@ -291,6 +292,7 @@
|
||||
<file>Icons/oxygen/edit-copy.png</file>
|
||||
<file>Icons/oxygen/folder-documents.png</file>
|
||||
<file>Icons/oxygen/document-edit.png</file>
|
||||
<file>Icons/oxygen/security-low.png</file>
|
||||
<file>Icons/oxygen/insert-link.png</file>
|
||||
<file>Icons/oxygen/network-wired.png</file>
|
||||
<file>Icons/oxygen/mail-mark-read.png</file>
|
||||
@@ -314,9 +316,11 @@
|
||||
<file>Icons/oxygen/edit-delete.png</file>
|
||||
<file>Icons/oxygen/chronometer.png</file>
|
||||
<file>Icons/oxygen/dialog-cancel.png</file>
|
||||
<file>Icons/oxygen/task-attention.png</file>
|
||||
<file>Icons/oxygen/preferences-system-network.png</file>
|
||||
<file>Icons/oxygen/document-properties.png</file>
|
||||
<file>Icons/oxygen/user-group-new.png</file>
|
||||
<file>Icons/oxygen/security-high.png</file>
|
||||
<file>Icons/oxygen/network-server.png</file>
|
||||
<file>Icons/oxygen/wallet-open.png</file>
|
||||
<file>Icons/oxygen/preferences-web-browser-cookies.png</file>
|
||||
|
@@ -33,5 +33,8 @@
|
||||
<file>lang/qbittorrent_en.qm</file>
|
||||
<file>lang/qbittorrent_hr.qm</file>
|
||||
<file>lang/qbittorrent_ro.qm</file>
|
||||
<file>lang/qbittorrent_ka.qm</file>
|
||||
<file>lang/qbittorrent_be.qm</file>
|
||||
<file>lang/qbittorrent_eu.qm</file>
|
||||
</qresource>
|
||||
</RCC>
|
||||
</RCC>
|
||||
|
Binary file not shown.
File diff suppressed because one or more lines are too long
BIN
src/lang/qbittorrent_be.qm
Normal file
BIN
src/lang/qbittorrent_be.qm
Normal file
Binary file not shown.
5343
src/lang/qbittorrent_be.ts
Executable file
5343
src/lang/qbittorrent_be.ts
Executable file
File diff suppressed because one or more lines are too long
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user