1
mirror of https://github.com/qbittorrent/qBittorrent synced 2025-10-09 18:32:15 +02:00

Compare commits

..

559 Commits

Author SHA1 Message Date
Christophe Dumez
14fc4912e3 Tagged v2.2.9 release 2010-06-13 11:49:19 +00:00
Christophe Dumez
ca06f9be5c Updated czech translation 2010-06-13 11:43:53 +00:00
Christophe Dumez
287ecf165b Updated Changelog 2010-06-13 11:42:08 +00:00
Christophe Dumez
fdf71c3006 Updated German translation 2010-06-13 11:40:17 +00:00
Christophe Dumez
cc6179b26f Updated Changelog 2010-06-13 09:45:34 +00:00
Christophe Dumez
7765b763f0 Fix bundle identifier 2010-06-13 09:41:14 +00:00
Christophe Dumez
84abef1184 Bump to v2.2.9 2010-06-13 09:29:54 +00:00
Christophe Dumez
0755eccf4f Fix Info.plist file 2010-06-13 09:26:30 +00:00
Christophe Dumez
425150cd01 Fix mime type 2010-06-13 09:15:08 +00:00
Christophe Dumez
55d1076573 Several language files updates 2010-06-13 08:40:26 +00:00
Christophe Dumez
6e74eb45b2 Update Serbian and Croatian translations 2010-06-12 08:21:43 +00:00
Christophe Dumez
e258a1a2d2 Updated Changelog 2010-06-10 19:57:13 +00:00
Christophe Dumez
6070fac3f5 Fix window hiding issue (closes #589070) 2010-06-10 19:42:54 +00:00
Christophe Dumez
ac3a88d3e3 Added debug output 2010-06-10 12:52:41 +00:00
Christophe Dumez
e3360713de Fix typo 2010-06-10 09:04:52 +00:00
Christophe Dumez
6cb6d2724b Mac fixes 2010-06-09 22:19:19 +00:00
Christophe Dumez
ff8354b1f6 Fix typo in plist file 2010-06-09 15:52:56 +00:00
Christophe Dumez
1a2cb6aee7 Disable systray icon on Mac 2010-06-09 15:48:20 +00:00
Christophe Dumez
25998d69a7 Fix typo 2010-06-09 15:20:14 +00:00
Christophe Dumez
3e55e8dc6e Vavious Mac related changes by Mirco Chinelli 2010-06-09 15:18:52 +00:00
Christophe Dumez
b8b2f96d76 Comment useless pri import 2010-06-09 14:47:26 +00:00
Christophe Dumez
cc609badec Fix compilation on Windows 2010-06-09 14:40:42 +00:00
Christophe Dumez
a1aa507bdb Fix race condition allowing to run multiple instances at the same time (closes #286968) 2010-06-09 10:12:15 +00:00
Christophe Dumez
779b2baa74 Fix error in project file 2010-06-09 08:52:56 +00:00
Christophe Dumez
58e0d6b11e Updated changelog 2010-06-09 07:39:38 +00:00
Christophe Dumez
1827337f90 Unified toolbar and title on Mac 2010-06-09 07:38:25 +00:00
Christophe Dumez
08044bc47d Updated spanish and catalan translations 2010-06-09 07:31:37 +00:00
Christophe Dumez
272852f25b Delete qApp on exit on Win32 2010-06-09 06:43:17 +00:00
Christophe Dumez
6575866907 Forgot to commit those files 2010-06-08 22:33:53 +00:00
Christophe Dumez
816b61da76 Updated Arabic translation 2010-06-08 20:24:45 +00:00
Christophe Dumez
d0a6366b35 Updated Hungarian and Finnish translations 2010-06-08 18:29:37 +00:00
Christophe Dumez
d4753b2624 Fix encoding in peer list 2010-06-08 17:30:15 +00:00
Christophe Dumez
323fd791c5 Better Mac integration 2010-06-08 15:23:11 +00:00
Christophe Dumez
56e45a11a8 Updated swedish translation 2010-06-08 15:05:28 +00:00
Christophe Dumez
f04d912fb6 Updated Ukrainian translation 2010-06-08 14:47:57 +00:00
Christophe Dumez
2985f85f82 Updated Slovak translation 2010-06-08 11:40:52 +00:00
Christophe Dumez
49c0e9423e Updated language files 2010-06-08 10:05:32 +00:00
Christophe Dumez
15a4abff5b Update to Mootools v1.2.4 (Web UI)
Fix Web UI javascript error in Internet Explorer
Fix another encoding problem in Web UI
2010-06-07 13:34:12 +00:00
Christophe Dumez
bd51ffd7ca Fix msvc compilation warnings 2010-06-07 09:50:14 +00:00
Christophe Dumez
1288c7092b Use libtorrent version.hpp instead of our own DEFINE 2010-06-07 08:47:56 +00:00
Christophe Dumez
9650b268b2 BUGFIX: Fix Web UI authentication with Opera Browser 2010-06-06 20:51:43 +00:00
Christophe Dumez
30c4c62d2e Fix encoding problem in search engine 2010-06-06 15:39:58 +00:00
Christophe Dumez
8b6a5d985f Updated language files 2010-06-06 15:36:14 +00:00
Christophe Dumez
0bd1410b95 Fix file encoding problem 2010-06-06 15:33:23 +00:00
Christophe Dumez
f1451dafee Fix another unicode problem 2010-06-06 13:55:47 +00:00
Christophe Dumez
74f16c8e76 Fix several remaining unicode issues 2010-06-06 13:23:39 +00:00
Christophe Dumez
1b954f157f Fix variable name conflict 2010-06-06 10:10:14 +00:00
Christophe Dumez
e8931c5747 Fix compilation and execution with msvc 2010-06-06 09:55:02 +00:00
Christophe Dumez
31165675b8 Fixes to last commit 2010-06-05 19:17:49 +00:00
Christophe Dumez
4001ed304e Several msvc 9.0 related fixes 2010-06-05 13:33:25 +00:00
Christophe Dumez
e8b3016771 Fix some other unicode issues 2010-06-04 16:41:47 +00:00
Christophe Dumez
e3e9461901 Display paths with '\' separator on Win32 2010-06-03 20:56:54 +00:00
Christophe Dumez
45c068f0f7 Updated Changelog 2010-06-03 19:47:34 +00:00
Christophe Dumez
4b2d09a07b Fix a lot of String encoding issues on non-unicode systems
Renaming a folder causes the old folder to be removed
Fix some path separator issues on Win32
Fix file/folder opening in file browser on Win32
2010-06-03 19:41:32 +00:00
Christophe Dumez
2d57d9d32c Fix default save path on Windows 2010-06-02 22:33:20 +00:00
Christophe Dumez
4a01d01cba Fix issue with torrentdownloads.net Website 2010-06-02 22:31:44 +00:00
Christophe Dumez
98cc53e287 Improved column visibility patch 2010-06-02 13:52:03 +00:00
Christophe Dumez
5ad0bf1d34 Search requests can now be cancelled on Win32 2010-06-02 13:38:09 +00:00
Christophe Dumez
35a9d30143 Fix minimize to tray feature on Win32 2010-06-02 09:16:31 +00:00
Christophe Dumez
6bc0aebe0d Remember if the window was maximized on exit 2010-06-02 08:28:33 +00:00
Christophe Dumez
c099af380a Fix column null width when toggling column visibility (Win32) 2010-06-02 08:13:33 +00:00
Christophe Dumez
59651545ae Better Python detection using windows registry (Win32)
Propose to install python if missing (Win32)
2010-06-01 22:36:34 +00:00
Christophe Dumez
8469570f80 BUGFIX: Disable torrent addition dialog as a default 2010-06-01 16:32:50 +00:00
Christophe Dumez
d513b7d0d8 Changed Window title on Mac and Windows 2010-06-01 16:13:51 +00:00
Christophe Dumez
13e06b3444 Fix encoding in Web UI on non-unicode systems 2010-06-01 14:31:28 +00:00
Christophe Dumez
d6206d91eb Link dynamically against OpenSSL 2010-06-01 13:53:06 +00:00
Christophe Dumez
cae8a3173d Fix torrent availability computation (closes #587337) 2010-05-31 14:26:56 +00:00
Christophe Dumez
48e6b46967 Only check for file association once (Win32)
Magnet link association (Win32)
2010-05-31 12:25:58 +00:00
Christophe Dumez
9c1bc13d6f Updated language files 2010-05-30 21:50:59 +00:00
Christophe Dumez
c15a890952 Check for file association on startup and ask the user if he wants to (Win32 only)
Added an executable icon on Win32
2010-05-30 21:34:15 +00:00
Christophe Dumez
12b4ee72fa Updated language files 2010-05-30 18:36:11 +00:00
Christophe Dumez
e5290e61ca Updated Changelog 2010-05-30 17:54:04 +00:00
Christophe Dumez
08cbe38f96 Updated AUTHORS 2010-05-30 17:50:55 +00:00
Christophe Dumez
47e337dc5d Fix torrent download on win32 (all seems functional now). 2010-05-30 17:23:41 +00:00
Christophe Dumez
cfc4e7c8f6 Fix Geoip database embedding
Fix Geoip path issue on Win32
2010-05-30 15:19:40 +00:00
Christophe Dumez
4eb8be372e Detect Python interpreter on Windows (the search engine is now working!) 2010-05-30 14:46:47 +00:00
Christophe Dumez
11f79432b5 Windows execution fixes (it runs now!) 2010-05-30 11:36:56 +00:00
Christophe Dumez
ec15e8247d Windows compilation Fix 2010-05-28 20:39:41 +00:00
Christophe Dumez
6b4588ef6d Mac compilation Fix 2010-05-25 18:20:53 +00:00
Christophe Dumez
ef0a826180 Bump to v2.2.8 2010-05-24 19:40:22 +00:00
Christophe Dumez
d79f779c0a BUGFIX: Fix possible checkbox update in Web UI 2010-05-24 18:52:12 +00:00
Christophe Dumez
1dadc08625 BUGFIX: Fix torrent error state clearance on resuming 2010-05-24 14:09:15 +00:00
Christophe Dumez
5f49af5ade Torrent queue position now starts at 1 (closes #581130) 2010-05-21 12:02:22 +00:00
Christophe Dumez
1e67f0afa4 Fix sorting of ETA column when having infinite values (closes #583347) 2010-05-21 11:47:55 +00:00
Christophe Dumez
dd9cf6c3ab Make sure seeding torrents ETA stays 0 under all circumstances 2010-05-21 11:36:21 +00:00
Christophe Dumez
36483d795e ETA for finished torrent is now 0 instead of Infinite (closes #583704)
Fix unicode issue in start seeding after torrent creation code
2010-05-21 11:28:36 +00:00
Christophe Dumez
303c209839 Fix torrent properties layout 2010-05-18 07:24:49 +00:00
Christophe Dumez
6790889cc3 Fixed Croatian translator name 2010-05-17 21:48:12 +00:00
Christophe Dumez
3a24b66adc Updated changelog date 2010-05-12 19:50:53 +00:00
Christophe Dumez
1a3f5e81e3 BUGFIX: Added support for url encoded ampersands in RSS 2010-05-12 19:42:32 +00:00
Christophe Dumez
818a79c9db COSMETIC: Sort torrent labels in popup menu 2010-05-12 19:05:50 +00:00
Christophe Dumez
93f635f9f4 Updated Croatian string 2010-05-05 21:01:50 +00:00
Christophe Dumez
73ec018732 Fix possible crash in RSS selection code 2010-05-05 14:32:22 +00:00
Christophe Dumez
68832df0c4 Even safer dateTime parsing 2010-05-01 18:09:42 +00:00
Christophe Dumez
ce817836c0 Made Datetime parsing more reliable 2010-05-01 17:40:14 +00:00
Christophe Dumez
89fbfdbd1b BUGFIX: Use guid or news url as RSS items identifier (instead of title) 2010-05-01 09:44:09 +00:00
Christophe Dumez
797d89fc3c Update resource file 2010-05-01 08:50:35 +00:00
Christophe Dumez
abc6e1c719 Added Croatian binary file 2010-05-01 08:49:05 +00:00
Christophe Dumez
31558aea8d Added Croatian translation 2010-05-01 08:47:37 +00:00
Christophe Dumez
be711920fd Commit croatian translation 2010-05-01 08:41:22 +00:00
Christophe Dumez
5d899bbe7c Bump to v2.2.7 2010-05-01 08:37:16 +00:00
Christophe Dumez
9c63e418cf Improved empty folder removing code 2010-05-01 08:31:28 +00:00
Christophe Dumez
984e7c7c7b BUGFIX: Fix torrent moving after completion feature 2010-05-01 08:14:30 +00:00
Christophe Dumez
1ae460bc67 Windows compilation fixes (Thanks LiHuiShuo 2010-04-28 11:47:11 +00:00
Christophe Dumez
c7ffa9096c Fix in last commit 2010-04-23 16:47:43 +00:00
Christophe Dumez
01448f4c14 Another initialization fix for Web UI 2010-04-23 08:11:38 +00:00
Christophe Dumez
7e8754baf3 Updated Changelog
Added some debug information
2010-04-23 08:07:25 +00:00
Christophe Dumez
8206ec9012 Fix possible initialization problem in Web UI 2010-04-23 08:03:31 +00:00
Christophe Dumez
a611361823 Translated menu entry into Arabic 2010-04-19 12:55:23 +00:00
Christophe Dumez
59c77a3f9c Prepare for v2.2.6 release 2010-04-18 13:56:53 +00:00
Christophe Dumez
8ce9649310 Make sure status filters height is correct when the visual style changes 2010-04-17 14:21:34 +00:00
Christophe Dumez
fe5ac5d083 Updated Arabic translation 2010-04-16 18:33:09 +00:00
Christophe Dumez
8740627c12 Arabic translation fixes 2010-04-15 19:22:20 +00:00
Christophe Dumez
c47f2e449b Support Right to left languages 2010-04-13 18:46:44 +00:00
Christophe Dumez
db09e40690 Added an OS/2 specific README file 2010-04-13 10:42:10 +00:00
Christophe Dumez
3ca3f91590 Some Arabic related improvements 2010-04-12 19:23:24 +00:00
Christophe Dumez
ee9a8d0563 Added Arabic translation 2010-04-12 18:59:39 +00:00
Christophe Dumez
3542980e50 BUGFIX: Stop rechecking torrents when they are moved 2010-04-10 15:55:57 +00:00
Christophe Dumez
f243b8535a - BUGFIX: Remove old folder when moving a torrent
- BUGFIX: Improved reliability of torrent moving
2010-04-10 15:03:16 +00:00
Christophe Dumez
7953809024 BUGFIX: Added support for single-thread boost 2010-04-09 18:51:32 +00:00
Christophe Dumez
3ac65a477c Remove some unneeded dependencies for qBittorrent nox 2010-04-09 15:32:40 +00:00
Christophe Dumez
00cab62381 Improved previous patch 2010-04-08 16:37:02 +00:00
Christophe Dumez
ab31300201 eCS (OS/2) compilation fix (Thanks Silvan Scherrer) 2010-04-08 16:32:21 +00:00
Christophe Dumez
754eb2788f Qt 4.4 compilation fix 2010-04-07 10:02:00 +00:00
Christophe Dumez
8dcb9f17bc Updated INSTALL file 2010-04-07 09:58:53 +00:00
Christophe Dumez
38121920a1 Bring back compatibility with boost v1.34 2010-04-07 09:54:48 +00:00
Christophe Dumez
e815f934e1 Improved libboost detection again 2010-04-07 09:48:34 +00:00
Christophe Dumez
4a305222be Updated boost dependencies in INSTALL file 2010-04-07 09:43:19 +00:00
Christophe Dumez
dcfed67173 Improved libboost detection by configure file 2010-04-07 09:36:44 +00:00
Christophe Dumez
db43606620 Do not display a warning when libtorrent v0.14.x is detected since it is the advised version 2010-04-07 09:07:09 +00:00
Christophe Dumez
3b16a89c36 Improved slow_off icon 2010-04-07 09:03:43 +00:00
Christophe Dumez
4c03e708e0 Added icons to menu actions in Web UI 2010-04-07 08:33:01 +00:00
Christophe Dumez
3e0fc5234f Flat buttons in status bar should never get focus 2010-04-07 08:20:32 +00:00
Christophe Dumez
5ba7e643b9 Bump to v2.2.5 2010-04-07 08:07:07 +00:00
Christophe Dumez
c53e265b70 Improved speed limits icons location in preferences 2010-04-07 08:03:50 +00:00
Christophe Dumez
2b5f12e014 Fix transparency of speed limits icons
Dropped dependency on Qt gif library
2010-04-07 08:01:37 +00:00
Christophe Dumez
ee518973ea BUGFIX: Fix Download from URL title size in Web UI 2010-04-06 17:03:54 +00:00
Christophe Dumez
aa08552686 Fix deprecation warnings with libtorrent v0.15 2010-04-06 16:55:11 +00:00
Christophe Dumez
fa43393b65 BUGFIX: Fix HTTPS protocol support in torrent/rss downloader 2010-04-06 16:27:34 +00:00
Christophe Dumez
48dcfb56ad Fix torrent addition dialog buttons height (Thanks Mariusz Fik) 2010-04-06 16:15:01 +00:00
Christophe Dumez
511fa5d988 BUGFIX: Fix crash when adding a new torrent label 2010-04-06 16:09:06 +00:00
Christophe Dumez
5694c8aa8b Updated Polish translation 2010-04-06 16:01:25 +00:00
Christophe Dumez
e3098c5191 Fix default width of file name column in torrent content 2010-04-06 09:30:35 +00:00
Christophe Dumez
dbacb1961c Added forgotten icons 2010-04-06 07:50:08 +00:00
Christophe Dumez
1092064115 Updated Changelog 2010-04-05 23:34:47 +00:00
Christophe Dumez
7988f15da7 Update icons resource file 2010-04-05 23:17:25 +00:00
Christophe Dumez
689df74d7e Bump to v2.2.4 2010-04-05 23:16:10 +00:00
Christophe Dumez
c59dde4f58 Fix in last commit 2010-04-05 21:04:14 +00:00
Christophe Dumez
4bc36b4d28 COSMETIC: Improved alternative speed limits icons 2010-04-05 20:55:37 +00:00
Christophe Dumez
430c7d2deb BUGFIX: Display correct share ratio for paused torrents 2010-04-05 20:11:27 +00:00
Christophe Dumez
d72c79b259 Correctly clear trackers error messages once they work 2010-04-05 20:00:12 +00:00
Christophe Dumez
efbf470585 Fix Web UI about dialog 2010-04-05 19:53:08 +00:00
Christophe Dumez
4e20723ae6 BUGFIX: Fix torrent addition window layout (torrent content not expanding) 2010-04-05 19:44:27 +00:00
Christophe Dumez
f3268bf49e Similar fix 2010-04-05 19:33:12 +00:00
Christophe Dumez
5aba9179c4 Similar fixes 2010-04-05 19:32:06 +00:00
Christophe Dumez
450814ae23 Fix possible crash when adding a torrent 2010-04-05 19:02:21 +00:00
Christophe Dumez
ba22fa8331 Bump to v2.2.3 2010-04-04 19:55:16 +00:00
Christophe Dumez
5ce02cb612 Clean fix for progress display with cleanlooks style 2010-03-31 14:36:16 +00:00
Christophe Dumez
1013f39a42 A msvc compilation fix 2010-03-30 19:40:35 +00:00
Christophe Dumez
cd5c4bf464 On Windows, add qBittorrent executable folder to PATH envar 2010-03-30 19:03:12 +00:00
Christophe Dumez
84bfc54b03 Updated Changelog 2010-03-30 12:13:43 +00:00
Christophe Dumez
5b3b5eb2ef Enable Apply button when alternative rate limits are changed 2010-03-30 12:09:51 +00:00
Christophe Dumez
990a863d41 Several compilation and execution fixes for Windows and OS/2
Cleaner binutils gold linker support
2010-03-30 11:39:40 +00:00
Christophe Dumez
7f27d10735 Fix possible error in boost exception handling 2010-03-29 10:44:33 +00:00
Christophe Dumez
1377a75a53 Fix typo 2010-03-27 16:00:47 +00:00
Christophe Dumez
bcd33fc861 ANother Windows fix 2010-03-27 15:58:28 +00:00
Christophe Dumez
46d8fa1656 Another compilation fix 2010-03-27 15:50:50 +00:00
Christophe Dumez
28cf69b84d Windows compilation fix improvement 2010-03-27 09:17:40 +00:00
Christophe Dumez
89389df74d Compilation fix on Windows (getuid missing) 2010-03-27 09:06:01 +00:00
Christophe Dumez
77c29f48cb Fix possible crash when deleting a torrent just after pausing it 2010-03-23 21:42:33 +00:00
Christophe Dumez
c5d92f3d69 FEATURE: DHT port can be set from Web UI 2010-03-22 20:41:36 +00:00
Christophe Dumez
54487c8247 Improvement to last commit 2010-03-22 19:42:47 +00:00
Christophe Dumez
be64008870 Bump to v2.2.2 2010-03-22 19:12:34 +00:00
Christophe Dumez
8113b150dd Updated french translation 2010-03-22 19:07:36 +00:00
Christophe Dumez
4a33367cb0 Fix to last commit 2010-03-22 19:04:48 +00:00
Christophe Dumez
0af5d82114 BUGFIX: Fix possible crash with folder scanning 2010-03-22 18:57:32 +00:00
Christophe Dumez
10c4fd330a I18N: Updated Polish translation (thanks Szymon Świerkosz) 2010-03-22 18:24:32 +00:00
Christophe Dumez
9a30d5a295 Properly raise SIGSEGV/SIGABRT after catching it 2010-03-20 21:44:11 +00:00
Christophe Dumez
724b47d999 Save fast resume data every 3 minutes 2010-03-20 21:25:31 +00:00
Christophe Dumez
2c0f7c33a2 Made M3U files previewable 2010-03-20 19:38:21 +00:00
Christophe Dumez
ce33e266fe Attempt to fix mac compilation 2010-03-20 19:14:17 +00:00
Christophe Dumez
2f291daefa Fix Ctrl+A in Web UI 2010-03-20 15:48:48 +00:00
Christophe Dumez
722f2aeb5d BUGFIX: Ask for user confirmation for recursive torrent download
BUGFIX: Fix "add file" dialog in torrent creation tool
2010-03-20 11:33:09 +00:00
Christophe Dumez
d5b9598b5b BUGFIX: Fix file filtering in complex torrents 2010-03-19 11:14:35 +00:00
Christophe Dumez
cc7d74b67c BUGFIX: Fix progress display with cleanlook style 2010-03-19 08:06:56 +00:00
Christophe Dumez
e853b0b736 Code optimization 2010-03-18 23:25:17 +00:00
Christophe Dumez
5e395b24a9 Code optimization 2010-03-18 23:13:41 +00:00
Christophe Dumez
9c3789f83f FEATURE: Display pieces that are being downloaded 2010-03-18 23:03:56 +00:00
Christophe Dumez
758595dc8c BUGFIX: Added back file prioritizing in Web UI 2010-03-18 20:07:10 +00:00
Christophe Dumez
01f9e989ef Bump to v2.2.1 2010-03-18 19:32:43 +00:00
Christophe Dumez
eb9f0cb559 Added back folder watching to Web UI 2010-03-18 19:27:23 +00:00
Christophe Dumez
2592948182 Fix Web UI compatiblity with Safari 2010-03-16 00:24:39 +00:00
Christophe Dumez
6f6ab1c439 Qt 4.4 compilation fix 2010-03-15 18:12:55 +00:00
Christophe Dumez
b10e606dda Branched v2.2.x 2010-03-14 20:44:17 +00:00
Christophe Dumez
9034094cf9 Fix headless compilation 2010-03-04 08:36:23 +00:00
Christophe Dumez
c48766aeb7 - Slight RSS cleanup 2010-03-03 23:11:40 +00:00
Christophe Dumez
28a6afeb02 Clean up and optimize transferlist class 2010-03-03 21:59:12 +00:00
Christophe Dumez
c8d0f5a104 Folder scanning settings are now properly saved 2010-03-03 21:17:45 +00:00
Christophe Dumez
3c396257de Use QXmlStreamReader instead of QDomDocument to save memory when parsing the RSS documents 2010-03-03 21:11:40 +00:00
Christophe Dumez
a9be841d2d Keep on cleaning up 2010-03-03 19:04:34 +00:00
Christophe Dumez
7d0581a7a5 Started code clean up and optimization 2010-03-03 17:27:25 +00:00
Christophe Dumez
4efeb66b73 Remove useless cast
Added missing include that caused misleading error message
2010-03-03 15:23:34 +00:00
Christophe Dumez
3b05f8b4b4 Reorganized header file 2010-03-03 14:48:49 +00:00
Christophe Dumez
6b4f09d740 - Cleanup GUI class 2010-03-03 14:42:57 +00:00
Christophe Dumez
f1b02c1280 Make sure options and console windows are deleted on exit 2010-03-03 13:15:13 +00:00
Christophe Dumez
3d546a4c5d BUGFIX: Only one log window can be opened at a time 2010-03-03 13:07:27 +00:00
Christophe Dumez
19368bcefa Added virtual destructor to avoid memory leaks 2010-03-03 13:03:13 +00:00
Christophe Dumez
dbbf26449c - Clean up main code
- Use fromLocal8Bit() instead fromUtf8() on program parameters
2010-03-03 12:55:42 +00:00
Christophe Dumez
8f28804f8c Added Json encode support for QVariantList and QStringList 2010-02-28 17:24:35 +00:00
Christophe Dumez
b7edfea4ce Disable scan folder preferences in Web UI (for now) since it was broken by "multipleScanFolders" patch 2010-02-28 17:17:14 +00:00
Christophe Dumez
23b2f94c40 Call qDeleteAll on m_pathList 2010-02-28 16:23:59 +00:00
Christophe Dumez
8f40f41fef Qt4.4 Compatibility fix (QDate::StandaloneFormat) 2010-02-28 16:07:09 +00:00
Christophe Dumez
33f868144b Use a regular pointer instead of a QSharedPointer to fix Qt 4.4 compatibility 2010-02-28 16:00:52 +00:00
Christophe Dumez
b2545bb709 Added Christian Kandeler to contributors 2010-02-28 15:50:25 +00:00
Christophe Dumez
3b6e1e82d9 Updated language files 2010-02-28 15:22:31 +00:00
Christophe Dumez
7710c88797 FEATURE: Support for multiple scan folders
* Patch by Christian Kandeler (Thanks!)
2010-02-28 15:15:00 +00:00
Christophe Dumez
4d5001d18d Display more useful information in log window when an I/O error occurs
I/O errors are now reported in nox version too
2010-02-22 19:30:36 +00:00
Christophe Dumez
0f4f108eb5 BUGFIX: Fix ratio calculation for directly seeded torrents (Thanks phorane) 2010-02-17 08:10:57 +00:00
Christophe Dumez
f0d0bb7170 FEATURE: Allow to change the priority of several files at once 2010-02-16 20:50:44 +00:00
Christophe Dumez
66157da5c2 Fix browse button for torrent export directory in preferences 2010-02-16 19:40:41 +00:00
Christophe Dumez
13493e1afe - Global Upload/Download rates can be set by clicking on the status bar values 2010-02-15 20:57:55 +00:00
Christophe Dumez
f6bfacda2c FEATURE: Global transfer information are displayed in the new Web UI status bar 2010-02-15 20:07:15 +00:00
Christophe Dumez
f7a86b5484 Add URL seeds from duplicate torrents to existing ones 2010-02-15 18:45:39 +00:00
Christophe Dumez
66cd3f8184 Fix save path display in Web UI too 2010-02-14 15:30:10 +00:00
Christophe Dumez
3a237c93be Make sure torrent save path is displayed 2010-02-14 15:22:34 +00:00
Christophe Dumez
4c34066727 FEATURE: Trackers can be added from Web UI 2010-02-14 15:15:35 +00:00
Christophe Dumez
1960008c83 Fix Web UI authentication with Konqueror 2010-02-12 00:00:55 +00:00
Christophe Dumez
deffbd6321 Updated Russian translation 2010-02-11 11:45:30 +00:00
Christophe Dumez
53927c9aa0 Revert useless 64bits patch 2010-02-10 23:22:47 +00:00
Christophe Dumez
d84346616a Added -L/usr/lib64 for 64bits 2010-02-10 22:28:01 +00:00
Christophe Dumez
e1183dbc0b Bump to beta4 2010-02-10 21:34:31 +00:00
Christophe Dumez
602f1574ca - Fix possible race condition in search engine 2010-02-10 21:20:44 +00:00
Christophe Dumez
358f7d16da Add back CONFIG += link_pkgconfig or it causes crashes 2010-02-10 21:14:44 +00:00
Christophe Dumez
e4006d6175 - Update helper version 2010-02-10 20:15:21 +00:00
Christophe Dumez
949b4ce4e9 - Improve gzip file detection in HTTP downloader (do not trust HTTP header, check magic number) 2010-02-10 20:02:55 +00:00
Christophe Dumez
cbafac8ea9 - Make it impossible to open more than one options dialog 2010-02-09 23:32:54 +00:00
Christophe Dumez
e4bf116ce8 - Fix a crash when adding an already existing torrent 2010-02-09 21:35:20 +00:00
Christophe Dumez
bccdad4b1b - Fix memory leak in rss 2010-02-09 21:20:43 +00:00
Christophe Dumez
9b372b3cce Important fix regarding actions on selected torrents. With filters enabled, it could happen that non-selected torrents are affected. 2010-02-09 20:44:33 +00:00
Christophe Dumez
98d0c00f85 Link against boost and ssl to fix issues with gold linker 2010-02-09 12:01:13 +00:00
Christophe Dumez
9d2f2230ee - Fix bugs with new feature: "Add trackers from duplicate torrent" 2010-02-09 08:06:49 +00:00
Christophe Dumez
81c6958428 - Bump to beta3 2010-02-08 19:06:21 +00:00
Christophe Dumez
f976eda6a9 - Updated French translation 2010-02-08 19:05:41 +00:00
Christophe Dumez
fe8d5a3528 - Fix file prioritizing in a torrent 2010-02-08 18:49:04 +00:00
Christophe Dumez
240c3508fe Fix possible crash when changing torrents label 2010-02-07 18:37:26 +00:00
Christophe Dumez
1065f5fb86 FEATURE: If 2 torrents have the same hash, add new trackers to the existin
g torrent
2010-02-07 14:31:45 +00:00
Christophe Dumez
2b37986007 Updated Spanish/Catalan translations 2010-02-06 21:45:47 +00:00
Christophe Dumez
22d0c4a241 - Fix possible crash when removing a torrent 2010-02-06 21:31:51 +00:00
Christophe Dumez
dd47ce6767 Fix font size of two torrent addition dialog buttons (Patch by Mariusz Fik) 2010-02-05 19:06:11 +00:00
Christophe Dumez
5c80ce42e0 Cosmetic fix to usage display (--help)
Usage display is now localized
2010-02-05 19:02:27 +00:00
Christophe Dumez
adb727d282 Make sure seeding torrents display a progress of 100% 2010-02-04 20:18:58 +00:00
Christophe Dumez
e17ca355ae Startup optimization 2010-02-04 19:16:04 +00:00
Christophe Dumez
b80940ac4f - Optimize startup speed (do not resave fastresume data for torrents that were seeded in the previous session) 2010-02-04 17:19:00 +00:00
Christophe Dumez
1eca139db9 Fix new "Automatically recheck torrents on completion" feature (would keep on rechecking) 2010-02-03 19:44:19 +00:00
Christophe Dumez
25278beb2f Minor code optimization 2010-02-03 19:31:13 +00:00
Christophe Dumez
5922ffff62 Fix to Spanish and catalan translations 2010-02-03 18:55:49 +00:00
Christophe Dumez
ff084e9681 - Fixes to German translation 2010-02-03 07:59:36 +00:00
Christophe Dumez
86e5d219d2 Updated Ukranian translation
Added Oleh Prypin as Ukrainian translator
2010-02-02 20:24:52 +00:00
Christophe Dumez
b78e0a54ed Updated spanish and catalan translations 2010-02-02 20:05:47 +00:00
Christophe Dumez
4bfacb8b91 - Clear torrent errors when starting a torrent 2010-01-31 19:03:34 +00:00
Christophe Dumez
e9ad58a373 Improved application style handling 2010-01-31 17:46:21 +00:00
Christophe Dumez
09c48539ad - COSMETIC: Improved style management 2010-01-31 17:30:17 +00:00
Christophe Dumez
3693ecdd30 Moved peer resolution settings to advanced settings 2010-01-31 16:43:19 +00:00
Christophe Dumez
ddc66e6005 - Cosmetic changes to advanced preferences 2010-01-31 16:34:38 +00:00
Christophe Dumez
fd0b1f8931 - Did not mean to commit that 2010-01-31 16:27:05 +00:00
Christophe Dumez
1a4f638ff6 - Moved "Transfer list refresh interval" to advanced settings 2010-01-31 16:25:04 +00:00
Christophe Dumez
77239db3c5 FEATURE: Torrents can be automatically rechecked on completion 2010-01-31 16:14:56 +00:00
Christophe Dumez
0ea59c8d58 Bump to beta2 2010-01-31 16:00:50 +00:00
Christophe Dumez
54e2a8c7fe - Update language files 2010-01-31 16:00:14 +00:00
Christophe Dumez
245a8e0a3a FEATURE: User can choose to include the protocol overhead in transfer limits 2010-01-31 15:57:07 +00:00
Christophe Dumez
51e474c893 FEATURE: User can choose to apply transfer limits on LAN too 2010-01-31 15:42:24 +00:00
Christophe Dumez
81d3e64518 - Advanced preferences: Property column should not be editable 2010-01-31 15:31:41 +00:00
Christophe Dumez
95da161be3 FEATURE: Outgoing ports range can be customized (for QoS) 2010-01-31 15:27:54 +00:00
Christophe Dumez
8618f13b7a - Created "Advanced settings" tab in program preferences and moved "Disk cache" there 2010-01-31 15:11:15 +00:00
Christophe Dumez
e24e7578f2 Added "Export .torrent files to..." feature to the Web UI
Fix Scan dir preferences in Web UI
2010-01-31 13:47:57 +00:00
Christophe Dumez
a03ad3de23 FEATURE: Torrent files can be exported to a given directory
BUGFIX: Fix crash when double-clicking on a torrent that has no metadata to open its save path
2010-01-31 13:09:46 +00:00
Christophe Dumez
9bd40a9b79 - Updated language files 2010-01-30 18:17:27 +00:00
Christophe Dumez
b4b61b9b7d - Launch directly the new search instead of stopping the current one if the user changed the search pattern 2010-01-30 18:15:25 +00:00
Christophe Dumez
5656fe9a9b FEATURE: Added "Upload/Download limit" columns to transfer list 2010-01-30 17:47:01 +00:00
Christophe Dumez
fb79146ae6 FEATURE: Added "Added/Completed On" columns to transfer list 2010-01-30 16:28:07 +00:00
Christophe Dumez
ba27191b2a - Fix compilation error when geoip database is embedded 2010-01-29 19:01:32 +00:00
Christophe Dumez
dc87aa3d5c - Download thread now supports HTTP redirection 2010-01-29 18:37:47 +00:00
Christophe Dumez
83cf3aebab Clean up URL seed code
Center bandwidth limiting dialogs
2010-01-27 20:34:53 +00:00
Christophe Dumez
dedd9bd03c - Add more RSS and tracker debug 2010-01-27 12:21:14 +00:00
Christophe Dumez
ab36a358b7 - Fix "Append .!qB extension to incomplete files". The extension would stay under certain conditions 2010-01-26 08:02:15 +00:00
Christophe Dumez
6ea97f09cf - Updated spanish and catalan translations 2010-01-25 20:06:22 +00:00
Christophe Dumez
5f7822d202 Fix alternative upload speed limit overwriting standard upload speed limit. 2010-01-25 19:54:46 +00:00
Christophe Dumez
6a87225dd0 - Fix typo in src.pro 2010-01-24 19:19:58 +00:00
Christophe Dumez
b6f56c0812 - Bump to v2.2.0beta1 2010-01-24 18:16:42 +00:00
Christophe Dumez
c4ce2a2549 Improved user friendlyness of size units (Use 1KiB/s instead of 1024B/s)
Optimized transfer list repainting
2010-01-24 18:06:51 +00:00
Christophe Dumez
41650da297 - I should not have to call repaint() manually 2010-01-24 17:16:20 +00:00
Christophe Dumez
74c61e6805 - Fix for translations 2010-01-24 17:03:57 +00:00
Christophe Dumez
e8dd7bbcc9 - Fix possible race condition in RSS that could cause crash on startup (bug #511441) 2010-01-24 16:46:10 +00:00
Christophe Dumez
335d012d55 - Updated a field that should not be translatable 2010-01-24 15:55:55 +00:00
Christophe Dumez
17fc58840a - Updated language files 2010-01-24 15:37:58 +00:00
Christophe Dumez
0e8c55b9f5 FEATURE: Added back file prioritizing in a torrent (it seems users were using it after all) 2010-01-24 15:26:29 +00:00
Christophe Dumez
d581f653c6 Nox compilation fix 2010-01-24 12:07:07 +00:00
Christophe Dumez
48dbaf05ae FEATURE: Bandwidth scheduler (automatically use alternative speed limits for a given period) 2010-01-24 11:57:15 +00:00
Christophe Dumez
540da69d61 - Remember alternative speeds state on restart 2010-01-23 20:45:14 +00:00
Christophe Dumez
06efd64a80 FEATURE: User can set alternative speed limits for fast toggling
Bandwidth scheduler is not functional yet (but appears in program preferences)
2010-01-23 20:44:09 +00:00
Christophe Dumez
62d872984b Make sure invalid torrent are removed from the transfer list 2010-01-23 19:15:00 +00:00
Christophe Dumez
1dd11dd8f8 Fix possible issue where torrents would not be displayed in the transfer list 2010-01-23 19:01:10 +00:00
Christophe Dumez
2ce375d8eb - Improved date handling in RSS 2010-01-23 16:16:42 +00:00
Christophe Dumez
8ed0e58d63 - "Open destination folder" now opens torrent root folder (if it contains one) instead of the parent folder 2010-01-23 09:54:50 +00:00
Christophe Dumez
660a6929fd Apply patch from Elrond to improve transfer speed display in peers list 2010-01-21 23:59:55 +00:00
Christophe Dumez
44f6c972d4 Moved screenCenter function to misc.h to avoid code duplication
Make sure torrent deletion dialog is now centered on screen
2010-01-21 22:23:13 +00:00
Christophe Dumez
6a6077bf1d Improved previous patch: Force recheck only if we detected that renaming overwrote an existing file 2010-01-21 21:14:54 +00:00
Christophe Dumez
30234a4e78 - Force recheck after renaming files 2010-01-21 20:27:59 +00:00
Christophe Dumez
dc9edf7538 - Fix overwrite check when renaming a folder in a torrent 2010-01-21 18:33:53 +00:00
Christophe Dumez
92574458d0 "Add in pause" setting is no longer ignored if torrent is loaded from a watched directory 2010-01-20 18:53:11 +00:00
Christophe Dumez
c35ef9ad15 - Fix opening on torrent folder in explorer when path contains special characters or spaces 2010-01-20 18:41:12 +00:00
Christophe Dumez
4059bcc0fa Updated Russian translation 2010-01-20 18:38:38 +00:00
Christophe Dumez
1840d1c49f - Paused torrents can now be rechecked 2010-01-20 18:02:26 +00:00
Christophe Dumez
cbd948f6f3 Updated hungarian translation 2010-01-20 16:02:56 +00:00
Christophe Dumez
454c093033 - qBittorrent can now listen on ports < 1024 (must be root) 2010-01-20 09:54:51 +00:00
Christophe Dumez
45eaf7ce58 - Updated Simplified chinese translation (legal notice was missing) 2010-01-20 09:44:45 +00:00
Christophe Dumez
04b7af4df5 - Fix renaming of files with unicode characters 2010-01-20 08:45:31 +00:00
Christophe Dumez
8c6978be82 - Exceptions to "Add Torrent is paused" setting can now be set in torrent addition dialog 2010-01-20 08:35:36 +00:00
Christophe Dumez
6c9e7156f7 - Fix magnet link support 2010-01-19 23:43:29 +00:00
Christophe Dumez
bc89845523 - Improve configure file output 2010-01-19 23:12:13 +00:00
Christophe Dumez
9ffe9c2006 - Configure file now checks for pkg-config executable since it is required to detect libtorrent-rasterbar 2010-01-19 22:55:49 +00:00
Christophe Dumez
1d598d7772 - Nox version should not require libqtxml 2010-01-19 22:40:23 +00:00
Christophe Dumez
7f576ccc82 - Fix folder renaming (would misbehave under certain conditions) 2010-01-19 22:35:54 +00:00
Christophe Dumez
d5da8a6277 - Save torrent file as soon as we get the torrent metadata so that it does not have to be redownloaded on restart 2010-01-19 21:47:53 +00:00
Christophe Dumez
a297204b27 Updated spanish and catalan translations 2010-01-19 09:42:55 +00:00
Christophe Dumez
e0182bb03e - Enabling debug in trunk 2010-01-19 00:32:53 +00:00
Christophe Dumez
ca5bf5e9d7 Removed useless include in project file 2010-01-18 23:52:05 +00:00
Christophe Dumez
5475d730ff - Actual Qt4.4 compilation fix 2010-01-18 22:09:28 +00:00
Christophe Dumez
7796520580 - Attempt to fix compilation with Qt 4.4 2010-01-18 21:46:04 +00:00
Christophe Dumez
340500c351 - Fix compilation warning in nox mode (introduced in v2.2.0alpha) 2010-01-18 21:28:54 +00:00
Christophe Dumez
043d33ff91 - Updated language files 2010-01-18 19:29:02 +00:00
Christophe Dumez
baf991b342 - The user must now press 'y' to accept the legal notice in nox mode (other keys will refuse and stop the program). Thanks Mariusz Fik 2010-01-18 19:20:59 +00:00
Christophe Dumez
dc47e90126 Applied legal notice patch for Mariusz Fik 2010-01-18 19:16:18 +00:00
Christophe Dumez
67e3f9e686 - Trunk is now v2.2.0alpha 2010-01-18 19:14:33 +00:00
Christophe Dumez
aaeb6b90ed Updated Greek and Bulgarian translations 2010-01-18 18:33:54 +00:00
Christophe Dumez
d124ada755 - Make sure status bar is rendered properly when the font size is higher than default 2010-01-18 18:24:43 +00:00
Christophe Dumez
31105aefe4 - Updated configure file (libtorrent >= 0.14.4 is required) 2010-01-18 17:10:25 +00:00
Christophe Dumez
44c258796e - Bump to final, updated changelog (Release is nearing) 2010-01-18 17:06:42 +00:00
Christophe Dumez
26100120a9 Updated Portuguese and Brazilian translations 2010-01-17 23:18:41 +00:00
Christophe Dumez
0db8ce891b Updated czech translation 2010-01-17 23:09:44 +00:00
Christophe Dumez
979aba5685 Updated Serbian translation 2010-01-17 21:31:17 +00:00
Christophe Dumez
396da6bd94 - Fix to make sure that the filters list height is always sufficient to display all the filters (without the need for a scrollbar) 2010-01-17 21:27:08 +00:00
Christophe Dumez
1b0d86220f - Increased number of failed authentication attempts to 5 in Web UI 2010-01-17 09:09:57 +00:00
Christophe Dumez
957d2c0d1a Updated Korean translation 2010-01-17 02:15:17 +00:00
Christophe Dumez
455657912a Updated Simplified Chinese translation 2010-01-17 02:02:55 +00:00
Christophe Dumez
e3da1902df French translation fix 2010-01-17 01:27:20 +00:00
Christophe Dumez
d0f8e9208f - Fixed year in man pages 2010-01-16 16:34:37 +00:00
Christophe Dumez
de50346428 HTTP proxy support for peer communication 2010-01-15 16:41:39 +00:00
Christophe Dumez
c7ca51f950 Use HTTP digest mode for Web UI authentication (instead of Basic) 2010-01-15 14:20:20 +00:00
Christophe Dumez
4522174555 Updated spanish and catalan translations 2010-01-15 07:32:33 +00:00
Christophe Dumez
126230ad08 BUGFIX: Properly display torrents with one file in subfolder(s) 2010-01-14 22:53:59 +00:00
Christophe Dumez
6aa1f4156a - bump to rc7 2010-01-14 22:08:06 +00:00
Christophe Dumez
2726faa090 - Updated french translation 2010-01-14 20:49:01 +00:00
Christophe Dumez
230b84032d - Updated Changelog 2010-01-14 20:41:58 +00:00
Christophe Dumez
9c4c5e2d1a - Protect Web UI authentication against brute forcing (IP are banned after 3 failed attempts) 2010-01-14 20:40:06 +00:00
Christophe Dumez
2bf8e2d2d7 - file priority can be set for finished torrents that have filtered files 2010-01-14 20:01:30 +00:00
Christophe Dumez
9bb05c8dea - Patch by Mariusz Fik to fix font inconsistancy in program preferences 2010-01-14 15:38:07 +00:00
Christophe Dumez
2707aa2818 - Display favicon in Web UI 2010-01-14 12:37:19 +00:00
Christophe Dumez
93c644da88 - Make sure no scroll bar is displayed in filters list 2010-01-14 12:22:52 +00:00
Christophe Dumez
4a114c0fdc - Updated spanish and Catalan translations 2010-01-14 12:17:47 +00:00
Christophe Dumez
f95108155d - Maximum value for rate limiting in peer list is now taken from program preferences 2010-01-13 21:23:02 +00:00
Christophe Dumez
75f75854c2 - Use automatic width for context menu in Web UI 2010-01-13 19:28:38 +00:00
Christophe Dumez
e20c3cd0b6 Updated Polish translation 2010-01-13 18:58:59 +00:00
Christophe Dumez
2273ea4099 - Use Alternating row colors in {Peers, trackers, Files} lists too (if enabled) 2010-01-12 23:16:18 +00:00
Christophe Dumez
b115b0c6a3 Updated German translation 2010-01-12 21:16:00 +00:00
Christophe Dumez
9d79a51f18 - Fix compilation error with libtorrent v0.14.3 2010-01-12 08:23:18 +00:00
Christophe Dumez
db9005158e - Updated Korean translation 2010-01-12 08:22:12 +00:00
Christophe Dumez
4491999a8c - qBittorrent requires libtorrent-rasterbar >= 0.14.4 2010-01-11 22:09:56 +00:00
Christophe Dumez
113a502a7e - Bump to rc6 2010-01-11 20:23:28 +00:00
Christophe Dumez
7ad39003f4 - Fix error in torrent addition dialog when the label name is left empty 2010-01-11 20:09:32 +00:00
Christophe Dumez
4b43871708 - Bump to v2.1.0rc5
- Disabled debug mode
2010-01-11 14:53:56 +00:00
Christophe Dumez
aa8f7552a2 - RSS filters are now alphabetically sorted
- Fix crash when renaming currently displayed RSS filter
- Remove overwriting confirmation when exporting RSS filters since Qt takes care of it
2010-01-11 14:39:58 +00:00
Christophe Dumez
19d94b53d2 Updated Swedish translation 2010-01-11 07:59:56 +00:00
Christophe Dumez
ca98a261e6 Updated Serbian translation 2010-01-10 18:53:19 +00:00
Christophe Dumez
535ec2ced6 Updated Romania and traditiona chinese translations 2010-01-10 16:15:44 +00:00
Christophe Dumez
a300c236ba - Code cleanup 2010-01-09 23:33:45 +00:00
Christophe Dumez
b16c26b24c - Label list is now alphabetically sorted 2010-01-09 23:24:50 +00:00
Christophe Dumez
1b1dde3fc8 - Fix '!' support in label names 2010-01-09 22:09:20 +00:00
Christophe Dumez
bd5880843f - flush cache before file preview (libtorrent >= 0.15 only) 2010-01-09 21:39:17 +00:00
Christophe Dumez
abf35a31f3 Updated Finnish translation 2010-01-09 21:06:50 +00:00
Christophe Dumez
015638035a Updated Spanish and Catalan translation 2010-01-09 20:08:47 +00:00
Christophe Dumez
8e27fe83f1 Updated greek translation 2010-01-09 19:02:40 +00:00
Christophe Dumez
ce4b105065 Updated slovak translation 2010-01-09 17:53:54 +00:00
Christophe Dumez
37a7b79a6f - Translated legal notice into French 2010-01-09 15:32:58 +00:00
Christophe Dumez
ef19e8aeef - Added legal notice dialog on startup. The user must agree for the program to start. 2010-01-09 15:26:20 +00:00
Christophe Dumez
f6886b4749 - Compilation fix for Qt 4.4 2010-01-09 14:19:43 +00:00
Christophe Dumez
8306959cb4 - Make sure the application is not built against QtGui when the GUI is disabled 2010-01-09 13:55:24 +00:00
Christophe Dumez
d1918ee206 Updated Serbian translation 2010-01-09 09:33:01 +00:00
Christophe Dumez
b2b76f9e35 Updated Traditional Chinese translation 2010-01-09 08:53:59 +00:00
Christophe Dumez
a07fb264e8 Updated German translation 2010-01-08 22:51:14 +00:00
Christophe Dumez
881f2d04d2 - Updated french translation 2010-01-08 20:45:09 +00:00
Christophe Dumez
e1b629df88 - Bump to rc4
- Clean up project file
2010-01-08 20:33:54 +00:00
Christophe Dumez
eab6a194e1 - Updated AUTHORS file 2010-01-08 20:17:12 +00:00
Christophe Dumez
3733bc9148 FEATURE: Search engine can now use a SOCKS5 proxy
BUGFIX: Search engine loads new proxy settings without program restart
Fix a bug in HTTP communication proxy settings
2010-01-08 20:15:08 +00:00
Christophe Dumez
ae5746a636 - Updated Changelog 2010-01-07 21:12:11 +00:00
Christophe Dumez
cb509cebb3 - Updated search resource file 2010-01-07 21:11:07 +00:00
Christophe Dumez
511c4474c7 - Promoted torrentdownloads.net and vertor.com search plugins from unofficial plugins to official (in qBittorrent v2.1.0) 2010-01-07 21:08:58 +00:00
Christophe Dumez
d063aea977 - Double-clicking on folders in torrent content opens it in a file explorer 2010-01-07 20:48:52 +00:00
Christophe Dumez
447efc52d8 - Added SOCKS5 proxy for http connections to Web UI too 2010-01-07 20:40:39 +00:00
Christophe Dumez
296acf820c Fix to proxy settings
Added back SOCKS5 proxy support for HTTP communications
2010-01-07 20:35:12 +00:00
Christophe Dumez
6ae49acb69 - qbittorrent-nox no longer installs a desktop files, nor qbittorrent icons 2010-01-07 20:02:25 +00:00
Christophe Dumez
af1b06c5be - Fix several bugs in RSS plugin
* RSS downloader takes into consideration maximum number of articles per feed
  * Fix possible issue with RSS folder deletion
  * Clear persistant data whenever a RSS feed is deleted
2010-01-07 19:51:25 +00:00
Christophe Dumez
4732c8565d - Refresh RSS feed as soon as feed downloader is enabled 2010-01-07 18:42:47 +00:00
Christophe Dumez
52dd1476db - Fix addInPause setting in torrent addition dialog 2010-01-07 18:17:20 +00:00
Christophe Dumez
63170b9214 - Updated spanish and catalan translations 2010-01-07 07:37:51 +00:00
Christophe Dumez
2203b399df Updated Catalan and spanish translations 2010-01-07 07:34:41 +00:00
Christophe Dumez
d80f7a6ef3 - Updated Polish, Finnish, Catalan and spanish translations 2010-01-06 18:04:03 +00:00
Christophe Dumez
88c56d8250 - Added support for magnet links in search engine. Most search Web sites provides magnet links now and in the futures, they may provide only the magnet links. 2010-01-05 22:31:06 +00:00
Christophe Dumez
fca24a8f84 - Bump to rc3 2010-01-05 21:06:20 +00:00
Christophe Dumez
6d140a141a - Updated french translation 2010-01-05 21:05:37 +00:00
Christophe Dumez
a18e325c18 FEATURE: Files contained in a torrent are opened on double click (files panel) 2010-01-05 20:57:33 +00:00
Christophe Dumez
c4d9c51e49 - Never display a horizontal scrollbar in status filters list 2010-01-05 20:31:20 +00:00
Christophe Dumez
27e980de28 - Added buttons to change trackers priority (libtorrent v0.14 only) 2010-01-05 19:59:25 +00:00
Christophe Dumez
3c4906bb4d - Patch in last commit was wrong 2010-01-05 18:48:51 +00:00
Christophe Dumez
da796c80c3 - Forgot to move the torrent data when its label is deleted 2010-01-05 18:11:52 +00:00
Christophe Dumez
7a2af0f506 - Updated spanish and Catalan translation 2010-01-05 17:19:19 +00:00
Christophe Dumez
3e562e7450 - Updated French translation 2010-01-05 12:30:20 +00:00
Christophe Dumez
4fc777268b - Validate new file names to make sure they are allowed by the file system 2010-01-05 12:28:42 +00:00
Christophe Dumez
037e57b687 - Validate label names to make sure there is no character forbidden by the file system 2010-01-05 12:18:17 +00:00
Christophe Dumez
2b289655c1 - Fix torrent deletion confirmation dialog so that the text does not get cut on the right. (Fix by Elrond, Thanks!) 2010-01-04 22:40:20 +00:00
Christophe Dumez
118ea6093d - Rename GUI-less qBittorrent executable to "qbittorrent-nox", with its own man page 2010-01-04 22:29:48 +00:00
Christophe Dumez
cac6f7428c - When incomplete torrents are saved to a different path, check if content is already present at final location
- Automacillay force a data recheck every time a torrent is moved (because libtorrent does not take care of checking if the torrent data exists at the destination location)
2010-01-04 21:16:33 +00:00
Christophe Dumez
ae6acc4ca2 - Fix possible issue with label counts when deleting a torrent 2010-01-04 19:44:03 +00:00
Christophe Dumez
641c6f0132 - Updated slovak translation 2010-01-04 19:34:07 +00:00
Christophe Dumez
56dc8cad71 - Added ASSERT 2010-01-03 21:09:01 +00:00
Christophe Dumez
7cc07d842c - Put back the ASSERT (it should no longer be hit) 2010-01-03 19:03:05 +00:00
Christophe Dumez
baaadf07fa - Do not save currently selected label since we no longer restore it on startup 2010-01-03 18:52:43 +00:00
Christophe Dumez
719b32ba36 - Fix bugs with torrent labeling (Problems when adding a torrent when a filter was selected) 2010-01-03 18:51:24 +00:00
Christophe Dumez
af5c1096b5 - Fix crash on start introduced in last commit 2010-01-03 18:42:16 +00:00
Christophe Dumez
3008222b92 - Make sure QModelIndex is correct before using it 2010-01-03 18:34:37 +00:00
Christophe Dumez
5ef9faacd5 Updated french translation
Bump to rc2
2010-01-03 15:04:04 +00:00
Christophe Dumez
ff65b6ea2f - Adapt torrent addition dialog size when the torrent is a magnet link (since we don't display torrent content) 2010-01-03 14:59:14 +00:00
Christophe Dumez
4c8a087b81 - Fix signal bug introduced in last commit 2010-01-03 14:41:29 +00:00
Christophe Dumez
8f4bf93f02 - Fix defining a new label from torrent addition dialog
- Stop catching SIGABRT, SIGSEGV once one is received to avoid possible infinite loop
2010-01-03 14:38:59 +00:00
Christophe Dumez
824b2f6fff - Update changelog and language files 2010-01-03 14:24:05 +00:00
Christophe Dumez
ba0c7334b7 - Use torrent addition dialog for Magnet URIs too 2010-01-03 14:20:31 +00:00
Christophe Dumez
a1dd724220 - Fix issue with torrent label not being remembered on startup under certain circumstances 2010-01-03 13:15:26 +00:00
Christophe Dumez
a7820e5f08 - Make sure the torrent file is valid before loading it 2010-01-03 13:00:16 +00:00
Christophe Dumez
1a2eee8060 - Fix to spanish and Catalan translations 2010-01-03 12:47:40 +00:00
Christophe Dumez
4a2713a9f0 - Updated program usage translatable strings to make sure translators do not translate program parameters 2010-01-03 09:17:41 +00:00
Christophe Dumez
5ece0b4f70 - Spanish and Catalan translations are now complete 2010-01-03 09:08:07 +00:00
Christophe Dumez
44e8ec2b37 - Removed "Bullet" from translatable strings since it is not displayed 2010-01-03 01:19:37 +00:00
Christophe Dumez
d7e5f4b895 - Update Spanish and Catalan translations 2010-01-03 01:02:04 +00:00
Christophe Dumez
b0c7bdf82b - Made program usage message (help) translatable
- Bump to rc1
2010-01-02 23:40:57 +00:00
Christophe Dumez
a239ac1a52 - Removed debug 2010-01-02 23:12:40 +00:00
Christophe Dumez
99459dc55d - Fixing indentation
- Stop catching SIGINT and SIGTERM once the application has exiting
2010-01-02 23:03:46 +00:00
Christophe Dumez
78ba99778a - Fix crash when deleting a label 2010-01-02 22:53:27 +00:00
Christophe Dumez
96d3df3135 - Updated Changelog and INSTALL file 2010-01-02 22:29:36 +00:00
Christophe Dumez
cbe4bbac6a - Merged headless branch 2010-01-02 22:20:37 +00:00
Christophe Dumez
f502e82ec4 - Fix to Catalan translation 2010-01-02 15:09:35 +00:00
Christophe Dumez
a5d8766a9e Use XDG folders (.cache, .local) instead of .qbittorrent
old .qbittorrent is imported and moved to XDG folder by qBittorrent so that the user does not loose anything
2010-01-02 11:22:44 +00:00
Christophe Dumez
55d8e3d76b Updated Catalan translation 2010-01-02 09:10:51 +00:00
Christophe Dumez
7b7fb4d278 - Updated Spanish and Catalan translations 2010-01-01 20:34:32 +00:00
Christophe Dumez
09c7c50ad3 - qBittorrent can now identify itself as KTorrent too 2010-01-01 20:29:03 +00:00
Christophe Dumez
131250dc03 - Bump to beta4 2010-01-01 13:38:55 +00:00
Christophe Dumez
130187723c - Updated language files and french translation 2010-01-01 13:38:23 +00:00
Christophe Dumez
7bac95c9ad - Torrents can be renamed in transfer list 2010-01-01 13:25:59 +00:00
Christophe Dumez
add2475700 - Files / Folders can also be renamed directly from torrent addition dialog 2010-01-01 10:55:13 +00:00
Christophe Dumez
533e402bca - Updated Spanish translation 2009-12-31 18:23:06 +00:00
Christophe Dumez
b87a23037e - Fix crash in pieces downloaded/availability bars when the torrent has too many pieces 2009-12-31 16:34:56 +00:00
Christophe Dumez
6d88bb5b83 - Made sure the pixmap cannot be drawn with uninitialized data 2009-12-31 15:10:30 +00:00
Christophe Dumez
435801c893 - Added Peer id spoofing settings to Web UI 2009-12-30 17:47:10 +00:00
Christophe Dumez
9d0577fa5c - Display the correct DHT port in the console 2009-12-30 16:47:03 +00:00
Christophe Dumez
f2891dae74 - Another fix for global download rate limiting in Web UI 2009-12-30 16:40:52 +00:00
Christophe Dumez
a43a1f5b67 - Fix global download rate limiting (Web UI) 2009-12-30 16:37:34 +00:00
Christophe Dumez
ee9ca1ece7 - Use global maximum transfer rates as maximum values in per-torrent speed limiting dialogs (Web UI) 2009-12-30 16:32:19 +00:00
Christophe Dumez
8271e20fac - Started work on adding Peer ID spoofing settings for Web UI (incomplete) 2009-12-30 16:21:05 +00:00
Christophe Dumez
132b1f7ffe - Use global maximum transfer rates as maximum values in per-torrent speed limiting dialogs 2009-12-30 16:18:50 +00:00
Christophe Dumez
77b4d97069 - Display current version in fields when the combobox value is changed (Peer ID spoofing) 2009-12-30 15:55:21 +00:00
Christophe Dumez
2168d5a30e - qBittorrent no longer listens on a random port whenever it receives a listen_failed_alert (because it may correspond to another network interface)
- Display a "disconnected" icon in status bar whenever qBittorrent fails to listen on the selected port
2009-12-30 15:52:20 +00:00
Christophe Dumez
7ad90b1b80 - Fix Proxy type rank in enum (to be consistent with older qBittorrent versions)
- Added Proxy settings to Web UI
- Fix tiny bugs in proxy settings
2009-12-30 15:07:51 +00:00
Christophe Dumez
f60ef5dbd5 - Added a button to reset spoofed client version/build to latest
- Fix little bug when loading saved version/build for spoofed client
2009-12-30 13:26:35 +00:00
Christophe Dumez
4dc26d0a77 - FEATURE: qBittorrent can identify itself as uTorrent or Vuze (Any version) 2009-12-30 13:10:06 +00:00
Christophe Dumez
551273b831 - Updated language files 2009-12-30 10:56:08 +00:00
Christophe Dumez
d5a09674ae FEATURE: Better proxy support and preferences remodeling 2009-12-30 10:53:58 +00:00
Christophe Dumez
907e620e9e - Added console message for Web UI (with port)
- Updated language files
2009-12-30 09:49:56 +00:00
Christophe Dumez
f96ec75eec - Improve Web UI settings so that the HTTP server is reconstructed only when necessary 2009-12-30 09:46:06 +00:00
Christophe Dumez
4d00db2b42 - Encode correctly Float Type using QVariant/JSON (introduced in Qt 4.6) 2009-12-29 22:53:00 +00:00
Christophe Dumez
db564b4521 - wildcard matching for "do not match" tokens too 2009-12-29 21:42:31 +00:00
Christophe Dumez
3f2076d195 - Use Wildcard matching instead of full regex one (much simpler and seems to be what the user expects) in RSS feed downloader 2009-12-29 21:40:23 +00:00
Christophe Dumez
ed13c43e93 - Fix several issues with the files properties in Web UI (introduced recently) 2009-12-29 20:26:32 +00:00
Christophe Dumez
b5a9fe71e1 - Fix JSON communication between qBittorrent and Web UI 2009-12-29 20:09:46 +00:00
Christophe Dumez
d0037d90f4 FEATURE: uTorrent compatible tracker list support (use torrentz.com url as a default) 2009-12-29 16:36:36 +00:00
Christophe Dumez
e885ee0d35 - Fix some other DHT port issues 2009-12-29 10:04:41 +00:00
Christophe Dumez
ff5e5d1062 - Fix some other listen port issues 2009-12-29 09:59:32 +00:00
Christophe Dumez
1bfadf5219 - Little piece availability computation optimization 2009-12-28 21:45:34 +00:00
Christophe Dumez
4f9eca78d9 - Fix to port settings 2009-12-28 21:17:15 +00:00
Christophe Dumez
7aa2994078 - Fix possible crash when closing a search tab 2009-12-28 20:52:21 +00:00
Christophe Dumez
1128b3ea83 * Replace priority combo boxes by check boxes in Web UI as in Regular UI
* Prepare http server and preferences classes to add new settings to Web UI
  * Tabified Program preferences in Web UI since there will be a lot of settings soon
  * Started to add new settings to Web UI (PeX, LSD, Encryption, save path, temp path, scan dir, preallocateall, queueing, listen_port, upnp, nat-pmp, language, ip filter) -> Proxy is missing
  * Added a command line parameter to change the web ui port
  * Fix PeerGuardian .p2b binary filter support
2009-12-28 19:39:47 +00:00
Christophe Dumez
9d06947125 - Updated Catalan author name 2009-12-23 20:11:48 +00:00
Christophe Dumez
14cc600a8b - Updated Spanish and Catalan translations 2009-12-23 20:07:34 +00:00
Christophe Dumez
4f3fd86f91 - Bump to v2.1.0beta2 2009-12-23 09:01:06 +00:00
Christophe Dumez
e663717d64 - Update comment 2009-12-22 19:23:34 +00:00
Christophe Dumez
8b5d388e77 - Use the save path set in program preferences as a default in torrent addition dialog 2009-12-22 19:17:27 +00:00
Christophe Dumez
22d781edd5 - Updated Changelog 2009-12-22 17:41:12 +00:00
Christophe Dumez
4252832ba5 - Fix issue with speed limiting (Infinite value was not handled properly)
- Improved bandwith limiting dialog by adding a SpinBox so that the user can input the value manually
2009-12-22 17:39:12 +00:00
Christophe Dumez
fab58296af - Fix exception in tracker list when torrent has no metadata. The exeption was caught anyway but the trackers were not displayed 2009-12-22 15:37:48 +00:00
Christophe Dumez
e142877e10 - Fix little typo 2009-12-22 14:20:16 +00:00
Christophe Dumez
6f6e453ae4 - COSMETIC: Use alternating row colors in transfer list (set in program preferences) 2009-12-22 14:06:36 +00:00
Christophe Dumez
50e620daf2 - Handle paths with (~, ., ..) properly 2009-12-22 10:29:39 +00:00
Christophe Dumez
c334439df6 - Updated spanish translator name 2009-12-21 16:53:18 +00:00
Christophe Dumez
2d9b4f273e - Updated Spanish translation 2009-12-21 16:09:11 +00:00
Christophe Dumez
15c7099e85 - Fix "Browse" button in program preferences for "Temp path" 2009-12-19 20:39:38 +00:00
Christophe Dumez
d2b1f6176f - Fix to Serbian translation 2009-12-19 19:35:08 +00:00
Christophe Dumez
8306d7931b - Updated French translation 2009-12-19 19:14:39 +00:00
Christophe Dumez
b07fbb726e - Bump to beta1 2009-12-19 18:55:55 +00:00
Christophe Dumez
9586f0e61c - Use checkboxes for selective downloading instead of comboboxes 2009-12-19 18:55:04 +00:00
Christophe Dumez
7d66c07cef - Remove old folders after renaming 2009-12-19 16:53:27 +00:00
Christophe Dumez
28ecb2fe1d - Check if Folder name is already in use before renaming
- Made overwrite check case insensitive on Windows
2009-12-19 15:39:39 +00:00
Christophe Dumez
a9cafeaa76 - Torrent folders can also be renamed 2009-12-19 15:31:50 +00:00
Christophe Dumez
5fc69ccb73 - Torrent files can be renamed 2009-12-19 14:59:38 +00:00
Christophe Dumez
bc626e3512 - Updated Serbian translation 2009-12-19 07:48:08 +00:00
Christophe Dumez
98561f9db9 - Fix "Append .!qB extension" for torrents without metadata (Magnet Links) 2009-12-18 20:33:59 +00:00
Christophe Dumez
b56dee2a92 - Minor cosmetic changes to program preferences 2009-12-18 19:56:14 +00:00
Christophe Dumez
885a7f592e - Fix removal of !.qB extension when files get completed 2009-12-18 17:57:47 +00:00
Christophe Dumez
6965448a24 - Little cosmetic change in torrent addition dialog 2009-12-18 17:31:51 +00:00
Christophe Dumez
475d63dad8 - Fix "Append .!qB extension" feature. It appeared only for empty files (instead of incomplete ones) 2009-12-18 17:26:00 +00:00
Christophe Dumez
c87a0bde0b - Do not display .!qB incomplete files extension in files panel 2009-12-18 17:22:53 +00:00
Christophe Dumez
c1bc9886b7 - Fix "Append .!qB extension to incomplete files" feature 2009-12-18 17:18:43 +00:00
Christophe Dumez
88f8437c5a - Fix "Append .!qB extension to incomplete files" feature for torrents added from magnet links 2009-12-18 17:01:47 +00:00
Christophe Dumez
411a1c641d - Fix several bugs in new "Append label to save path" feature 2009-12-18 16:56:57 +00:00
Christophe Dumez
dc0ad73eca - Fix torrent Labeling from torrent addition dialog 2009-12-18 16:36:48 +00:00
Christophe Dumez
04e008afa0 - Fix new settings not being saved 2009-12-18 16:32:26 +00:00
Christophe Dumez
a6207f70d5 - Fix .qbittorrent folder not being created 2009-12-18 15:13:39 +00:00
Christophe Dumez
b8a30be7bc - Read RSS items are now remembered correctly on restart for feeds with no torrents attached 2009-12-18 14:45:07 +00:00
Christophe Dumez
67d60766c1 - Fix Mininova search engine plugin 2009-12-18 14:14:21 +00:00
Christophe Dumez
97c0b28a98 - Fix piratebay search plugin 2009-12-18 13:58:13 +00:00
Christophe Dumez
c61aded388 - Initial implementation of "Append .!qB extension to incomplete files" (untested)
- Update torrent save path when its label is changed and "Append label to save path" setting is set
2009-12-18 13:36:47 +00:00
Christophe Dumez
1fd57b5d63 - FEATURE: Labeled torrent can be downloaded corresponding subfolders 2009-12-17 20:28:30 +00:00
Christophe Dumez
755b8dec30 - Peer Exchange can be disabled from preferences 2009-12-17 18:00:21 +00:00
Christophe Dumez
ecd5c1fcc3 - Updated language files 2009-12-17 17:40:55 +00:00
Christophe Dumez
db5402385a FEATURE: Disk cache size can be set from preferences 2009-12-17 17:37:54 +00:00
Christophe Dumez
09ef3073a1 - Forgot to make "Label" string translatable 2009-12-17 10:01:01 +00:00
Christophe Dumez
6dd3833e0f - Added icons for label actions in context menu 2009-12-17 09:59:43 +00:00
Christophe Dumez
d4762a4d8d - Updated Changelog 2009-12-16 22:20:28 +00:00
Christophe Dumez
38cc55ea09 - Add hover effect of labels/categories to animate drag'n drop 2009-12-16 22:06:24 +00:00
Christophe Dumez
5d60295db3 - Drag'n drop to labels cleanup 2009-12-16 15:06:02 +00:00
Christophe Dumez
18bd3b855c - Added drag'n Drop from torrent list to labels (for torrent labeling)
- Fix label counters update in some cases
2009-12-16 14:55:07 +00:00
Christophe Dumez
868d423c82 - Use folder icon for labels 2009-12-16 13:20:38 +00:00
Christophe Dumez
edb6857de0 - Label counters are now properly updated (and labeling seems to work fine) 2009-12-16 13:09:30 +00:00
Christophe Dumez
ed803fb994 - Initiated work on torrent labeling/categorization (functional but not perfect yet 2009-12-15 19:52:43 +00:00
Christophe Dumez
83d83a364d - Added Frederic Lassabe to AUTHORS file 2009-12-15 13:08:34 +00:00
Christophe Dumez
690bb92154 - Catch CTRL+C and exit cleanly 2009-12-15 13:01:57 +00:00
Christophe Dumez
8e39eef7aa - Display console messages on Terminal
- Program seems to be working
2009-12-15 12:55:46 +00:00
Christophe Dumez
1923a51c59 - Prepare a little headlessloader class 2009-12-15 11:59:48 +00:00
Christophe Dumez
3dc1107b40 - Fix typo in src.pro that broke compilation with GUI enabled 2009-12-15 11:48:57 +00:00
Christophe Dumez
dd22e9009c - Added exit() function to headless loader class so that we have a way to return to prompt 2009-12-15 11:14:03 +00:00
Christophe Dumez
c7ccf39abf - Use QCoreApplication instead of QApplication when GUI is disabled 2009-12-15 11:10:47 +00:00
Christophe Dumez
af166f53d3 - Added headlessloader class to prepare Fred's work 2009-12-15 11:08:22 +00:00
Christophe Dumez
21eb26a374 - Commit changes to helpers.py (add referer to download_file() helper function) 2009-12-15 11:03:04 +00:00
Christophe Dumez
e2aaf5d1de - Edited project file in order not to compile UI classes when DISABLE_GUI is defined
- Added #ifndef directives to main.cpp in order to fix compilation when DISABLE_GUI is defined
2009-12-15 10:56:41 +00:00
Christophe Dumez
0b7ca15c4f - Added --disable-gui flag to configure file (adds DISABLE_GUI define) 2009-12-15 10:36:18 +00:00
Christophe Dumez
07ee2a4aff Branched for work on headless running 2009-12-15 10:23:41 +00:00
Christophe Dumez
141d3b6737 - Fix RSS Feed downloader for RSS with no torrent attachment (but articles link points to the torrent instead) 2009-12-14 18:42:21 +00:00
Christophe Dumez
e2c3e6dbaa - Better checking of based32 encoded Magnet Links to increase robustness 2009-12-13 10:13:41 +00:00
Christophe Dumez
b1126556c0 - Added Hex Magnet link support 2009-12-13 09:50:06 +00:00
Christophe Dumez
69cb8d1398 - Fix possible crash in torrent properties 2009-12-13 00:34:54 +00:00
Christophe Dumez
094d979ce6 - Fix "Object::connect: No such slot TransferListWidget::toggleSelectedTorrentsSuperSeeding()" warning when using libtorrent v0.14 2009-12-12 23:57:31 +00:00
Christophe Dumez
92dd669597 - Updated version number to v2.1.0alpha in trunk (new development focus) 2009-12-12 22:54:47 +00:00
214 changed files with 71783 additions and 24116 deletions

17
AUTHORS
View File

@@ -3,15 +3,26 @@ Author:
Contributors:
* Stefanos Antaris <santaris@csd.auth.gr>
* Mohammad Dib <mdib@qbittorrent.org>
* Mirco Chinelli <infinity89@fastwebmail.it>
* Ishan Arora <ishan@qbittorrent.org>
* Arnaud Demaizière <arnaud@qbittorrent.org>
* Grigis Gaëtan <cipher16@gmail.com>
* Christian Kandeler <zambesi@users.sourceforge.net>
Code from other projects:
* files src/qtsingleapp/*
copyright: Nokia Corporation
license: LGPL
* files src/ico.cpp src/ico.h
copyright: Malte Starostik <malte@kde.org>
license: LGPL
* files src/search_engine/socks.py
copyright: Dan Haim <negativeiq@users.sourceforge.net>
license: BSD
Images Authors:
* files: src/Icons/*.png
copyright: Gnome Icon Theme
@@ -55,11 +66,13 @@ Images Authors:
Translations authors:
* files: src/lang/*.ts
copyright:
- Arabic: SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)
- Brazilian: Nick Marinho (nickmarinho@gmail.com)
- Bulgarian: Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net)
- Bulgarian: Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)
- Catalan: Francisco Luque Contreras (frannoe@ya.com)
- Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com)
- Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com)
- Croatian: Oliver Mucafir (oliver.untwist@gmail.com)
- Czech: Jirka Vilim (web@tets.cz)
- Danish: Mathias Nielsen (comoneo@gmail.com)
- Dutch: Joost Schipper (heavyjoost@users.sourceforge.net)
@@ -82,5 +95,5 @@ Translations authors:
- Spanish: Francisco Luque Contreras (frannoe@ya.com)
- Swedish: Daniel Nylander (po@danielnylander.se)
- Turkish: Hasan Yilmaz (iletisim@hedefturkce.com)
- Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net)
- Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net) and Oleh Prypin (blaxpirit@gmail.com)
license: GPLv2

160
Changelog
View File

@@ -1,4 +1,162 @@
* Web Dec 31 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.5
* Sun Jun 13 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.9
- FEATURE: Official support for Win32 platform
- FEATURE: Better integration with Mac OS
- BUGFIX: Fix torrent availability computation (closes #587337)
- BUGFIX: Disable torrent addition dialog as a default
- BUGFIX: Fix Web UI authentication with Opera Browser
- BUGFIX: Fix Javascript error in Web UI when using IE
- BUGFIX: Fix a lot of encoding problems on non UTF-8 systems
- BUGFIX: Fix race condition allowing to run multiple instances (closes #286968)
- BUGFIX: Fix window hiding problem when having a modal window (closes #589070)
* Mon May 24 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.8
- BUGFIX: ETA for finished torrent is now 0 instead of Infinite (closes #583704)
- BUGFIX: Fix sorting of ETA column when having infinite values (closes #583347)
- BUGFIX: Torrent queue position now starts at 1 (closes #581130)
- BUGFIX: Fix unicode issue in start seeding after torrent creation code
- BUGFIX: Fix torrent error state clearance on resuming
- BUGFIX: Fix possible checkbox update in Web UI
- COSMETIC: Fix torrent properties layout
* Wed May 12 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.7
- BUGFIX: Fix unicode problem in torrent moving code
- BUGFIX: Fix possible initialization problem in Web UI
- BUGFIX: Fix torrent moving after completion feature
- BUGFIX: Improved empty folder removing code
- BUGFIX: Use guid or news url as RSS items identifier (instead of title)
- BUGFIX: Fix possible crash in RSS item selection code
- BUGFIX: Added support for url encoded ampersands in RSS
- COSMETIC: Sort torrent labels in popup menu
- I18N: Added Croatian translation
* Sun Apr 18 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.6
- BUGFIX: Announce to all trackers at once
- BUGFIX: Added support for single-thread boost
- BUGFIX: Remove old folder when moving a torrent
- BUGFIX: Improved reliability of torrent moving
- BUGFIX: Stop rechecking torrents when they are moved
- BUGFIX: Status filters height stays correct when the visual style changes
- I18N: Added Arabic translation
* Wed Apr 07 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.5
- BUGFIX: Fix crash when adding a new torrent label
- BUGFIX: Fix HTTPS protocol support in torrent/rss downloader
- BUGFIX: Fix default width of file name column in torrent content
- BUGFIX: Fix torrent addition dialog buttons height
- BUGFIX: Fix deprecation warnings with libtorrent v0.15
- BUGFIX: Fix "Download from URL" title size in Web UI
- BUGFIX: Fix transparency of speed limits icons
- BUGFIX: Dropped dependency on Qt gif library
- BUGFIX: Improved libboost detection by configure file
- BUGFIX: Bring back compatibility with boost v1.34
- COSMETIC: Added icons to menu actions in Web UI
* Tue Apr 06 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.4
- BUGFIX: Fix possible crash when adding a torrent
- BUGFIX: Fix failure to remember some torrents on startup
- BUGFIX: Fix torrent addition window layout (torrent content not expanding)
- BUGFIX: Fix about dialog in Web UI
- BUGFIX: Correctly clear trackers error messages once they work
- BUGFIX: Display correct share ratio for paused torrents
- COSMETIC: Improved alternative speed limits icons
* Sun Apr 04 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.3
- BUGFIX: Fix possible crash when deleting a torrent just after pausing it
- BUGFIX: Enable Apply button when alternative rate limits are changed
- BUGFIX: Source compatibility with Windows (Thanks Ishan Arora)
- BUGFIX: Source compatibility with eCS (OS/2) (Thanks Silvan Scherrer)
- BUGFIX: Cleaner binutils gold linker support
- BUGFIX: Clean fix for progress display with cleanlooks style
* Mon Mar 22 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.2
- FEATURE: DHT port can be set from Web UI
- BUGFIX: Fix possible crash with folder scanning
- BUGFIX: Fix Mac compilation
- BUGFIX: Save fast resume data every 3 minutes (for robustness)
- I18N: Updated Polish translation (thanks Szymon Świerkosz)
* Sat Mar 20 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.1
- FEATURE: Display pieces that are being downloaded
- FEATURE: Added back folder watching in Web UI
- FEATURE: Added back file prioritizing in Web UI
- BUGFIX: Fix compilation with Qt 4.4
- BUGFIX: Fix Web UI compatibility with Safari
- BUGFIX: Fix progress display with cleanlook style
- BUGFIX: Fix file filtering in complex torrents
- BUGFIX: Ask for user confirmation for recursive torrent download
- BUGFIX: Fix "add file" dialog in torrent creation tool
- BUGFIX: Fix "Ctrl+A" in Web UI
* Sun Mar 14 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.0
- FEATURE: User can set alternative speed limits for fast toggling
- FEATURE: Bandwidth scheduler (automatically use alternative speed limits for a given period)
- FEATURE: Added "Added/Completed On" columns to transfer list
- FEATURE: Added "Upload/Download limit" columns to transfer list
- FEATURE: Torrent files can be exported to a given directory
- FEATURE: Outgoing ports range can be customized (for QoS)
- FEATURE: User can choose to apply transfer limits on LAN too
- FEATURE: User can choose to include the protocol overhead in transfer limits
- FEATURE: Torrents can be automatically rechecked on completion
- FEATURE: If 2 torrents have the same hash, add new trackers/URL seeds to the existing torrent
- FEATURE: Trackers can be added from Web UI
- FEATURE: Global transfer information are displayed in the new Web UI status bar
- FEATURE: Allow to change the priority of several files at once
- FEATURE: Support for multiple scan folders (Patch by Christian Kandeler)
- BUGFIX: Only one log window can be opened at a time
- BUGFIX: Optimized RSS module memory usage
- BUGFIX: Consider HTTP downloads >1MB as invalid .torrent files and abort
- BUGFIX: Fix Web UI authentication with some browsers
- BUGFIX: Set Web UI ban period to 1 hour
- COSMETIC: Improved style management
* Mon Jan 18 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.0
- FEATURE: Graphical User Interface can be disabled at compilation time (headless running)
- FEATURE: Torrents can be labeled/categorized
- FEATURE: Labeled torrent can be downloaded corresponding subfolders
- FEATURE: Disk cache size can be set from preferences
- FEATURE: Peer Exchange (PeX) can be disabled from preferences
- FEATURE: Append !.qB extension to incomplete files option (libtorrent >= v0.15 only)
- FEATURE: Torrent files/folders can be renamed (torrent addition dialog or files properties)
- FEATURE: uTorrent compatible tracker list support (use torrentz.com url as a default)
- FEATURE: Better proxy support and preferences remodeling
- FEATURE: qBittorrent can identify itself as uTorrent, Vuze or KTorrent (Any stable version)
- FEATURE: Torrents can be renamed in transfer list
- FEATURE: Display torrent addition dialog for magnet links too
- FEATURE: Files contained in a torrent are opened on double click (files panel)
- FEATURE: Added support for magnet links in search engine
- FEATURE: Added vertor.com and torrentdownloads.net search plugins
- FEATURE: Search engine can now use a SOCKS5 proxy
- FEATURE: HTTP proxy support for peer communication
- BUGFIX: Search engine loads new proxy settings without program restart
- BUGFIX: Use XDG folders (.cache, .local) instead of .qbittorrent
- BUGFIX: Added legal notice on startup that the user must accept
- BUGFIX: Protect Web UI authentication against brute forcing
- BUGFIX: Use HTTP digest mode for Web UI authentication (instead of Basic)
- BUGFIX: Properly display torrents with one file in subfolder(s)
- BUGFIX: Display Web UI favicon
- BUGFIX: File priority can be set for finished torrents that have filtered files
- COSMETIC: Use checkboxes to filter torrent content instead of comboboxes
- COSMETIC: Use alternating row colors in transfer list (set in program preferences)
- COSMETIC: Added a spin box to speed limiting dialog for manual input
* Mon Jan 11 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.0.7
- BUGFIX: Fix 'Add in pause' setting in torrent addition dialog
- BUGFIX: Update RSS feed as soon as feed downloader is enabled
- BUGFIX: RSS Feed downloader ignores articles above maximum number of articles
- BUGFIX: Fix possible bug when deleting a RSS folder
- BUGFIX: Remove persistant data when a RSS feed is deleted
- BUGFIX: RSS filters are now alphabetically sorted
- BUGFIX: Fix crash when renaming currently displayed RSS filter
- BUGFIX: Remove overwriting confirmation when exporting RSS filters since Qt takes care of it
* Tue Jan 5 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.0.6
- BUGFIX: Fix detection of invalid torrent files
- BUGFIX: Stop catching signals once one has been caught to avoid possible infinite loop
- BUGFIX: Force data recheck whenever a torrent is moved
- BUGFIX: Detect existing torrent data even if incomplete torrents are saved to a different folder
- COSMETIC: Improve torrent deletion confirmation dialog so that the text that not get truncated
* Thu Dec 31 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.5
- BUGFIX: Fix crash with downloaded/availability bars when the torrent has too many pieces
* Wed Dec 30 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.4

63
INSTALL
View File

@@ -1,32 +1,57 @@
qBittorrent - A BitTorrent client in C++ / Qt4
------------------------------------------
./configure
make && make install
qbittorrent
1) Compile and install qBittorrent with Qt4 Graphical Interface
will install and execute qBittorrent hopefully without any problems.
$ ./configure
$ make && make install
$ qbittorrent
Dependencies:
- Qt >= 4.4.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
will install and execute qBittorrent hopefully without any problems.
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.0 REQUIRED, >= v0.15.0 ADVISED)
-> http://www.qbittorrent.org/download.php (advised)
-> http://www.libtorrent.net
Be careful: another library (the one used by rTorrent) uses a similar name.
Dependencies:
- Qt >= 4.4.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
- pkg-config executable
- python >= 2.3 (needed by search engine)
* Run time only dependency
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, compatible with v0.15.x)
-> http://www.libtorrent.net
Be careful: another library (the one used by rTorrent) uses a similar name.
- 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
- libboost 1.34.x (libboost-filesystem, libboost-thread, libboost-date-time) + libasio
or
- libboost >= 1.35.x (libboost-system, libboost-filesystem, libboost-thread, libboost-date-time)
- 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
2) Compile and install qBittorrent without Qt4 Graphical interface
$ ./configure --disable-gui
$ make && make install
$ qbittorrent
will install and execute qBittorrent hopefully without any problems.
Dependencies:
- Qt >= 4.4.0 (libqt-devel, libqtcore, libqtnetwork)
- pkg-config executable
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, >= v0.15.0 ADVISED)
-> http://www.libtorrent.net
Be careful: another library (the one used by rTorrent) uses a similar name.
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
- 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
DOCUMENTATION:
Please note that there is a documentation with a "compiling howto" at http://wiki.qbittorrent.org.

62
README.os2 Normal file
View File

@@ -0,0 +1,62 @@
qBittorrent - A BitTorrent client in Qt4
------------------------------------------
This is the eComStation (OS/2) qBittorrent part of the readme. See also README for more general information.
Building qBittorrent
********************
Requirements
============
- gcc based build env (recommended gcc v4.4.2 or greater)
- Qt4 for eCS (OS/2) dev package (see http://svn.netlabs.org/qt4 for more information)
- libtorrent-rasterbar for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information)
- boost for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information)
How to build
============
First you need to create the conf.pri file in the same dir as this readme.os2 is.
the conf.pri file has the following content:
##### conf.pri content beginn #####
PREFIX = .
BINDIR = ./bin
INCDIR = ./include
LIBDIR = ./lib
DATADIR = ./share
CONFIG += staticlib
INCLUDEPATH += x:/trees/libtorrent/trunk/include
LIBS += -Lx:/trees/libtorrent/trunk/src/.libs \
-Lx:/trees/boost/trunk/stage/lib \
-Lx:/trees/openssl \
-Lx:/extras/lib
##### conf.pri content end #####
Of course all the above path references have to be adjusted to your build env.
It should now be easy to build qBittorrent:
Simply type:
$ qmake
Followed by:
$ make
If all works fine you should get a working qbittorrent executable.
If you have any question regarding the eCS (OS/2) port of qBittorrent you can meet me (_diver) on IRC:
#netlabs on irc.freenode.net
------------------------------------------
Silvan Scherrer <silvan.scherrer@aroa.ch>

137
configure vendored
View File

@@ -18,7 +18,10 @@ Main options:
--help This help text.
Dependency options:
--disable-gui Disable qBittorrent Graphical user
interface for headless running
--with-libboost-inc=[path] Path to libboost include files
--with-libboost-lib=[path] Path to libboost library files
--disable-libnotify Disable use of libnotify
--disable-geoip-database Disable use of geoip-database
--with-geoip-database-embedded Geoip Database will be embedded in
@@ -140,11 +143,21 @@ while [ $# -gt 0 ]; do
shift
;;
--disable-gui)
QC_DISABLE_GUI="Y"
shift
;;
--with-libboost-inc=*)
QC_WITH_LIBBOOST_INC=$optarg
shift
;;
--with-libboost-lib=*)
QC_WITH_LIBBOOST_LIB=$optarg
shift
;;
--disable-libnotify)
QC_DISABLE_libnotify="Y"
shift
@@ -181,7 +194,9 @@ echo PREFIX=$PREFIX
echo BINDIR=$BINDIR
echo DATADIR=$DATADIR
echo EX_QTDIR=$EX_QTDIR
echo QC_DISABLE_GUI=$QC_DISABLE_GUI
echo QC_WITH_LIBBOOST_INC=$QC_WITH_LIBBOOST_INC
echo QC_WITH_LIBBOOST_LIB=$QC_WITH_LIBBOOST_LIB
echo QC_DISABLE_libnotify=$QC_DISABLE_libnotify
echo QC_DISABLE_geoip_database=$QC_DISABLE_geoip_database
echo QC_WITH_GEOIP_DATABASE_EMBEDDED=$QC_WITH_GEOIP_DATABASE_EMBEDDED
@@ -290,6 +305,7 @@ cat >$1/modules.cpp <<EOT
/*
-----BEGIN QCMOD-----
name: Qt >= 4.4
arg: disable-gui, Disable qBittorrent Graphical user interface for headless running
-----END QCMOD-----
*/
class qc_qt4 : public ConfObj
@@ -300,11 +316,27 @@ public:
QString shortname() const { return "Qt 4.4"; }
bool exec()
{
if(QT_VERSION >= 0x040500) {
conf->addDefine("QT_4_5");
}
if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
conf->addDefine("DISABLE_GUI");
}
return(QT_VERSION >= 0x040400);
}
};
#line 1 "pkg-config.qcm"
/*
-----BEGIN QCMOD-----
name: pkg-config
-----END QCMOD-----
*/
#include <QProcess>
class qc_pkg_config : public ConfObj
{
public:
qc_pkg_config(Conf *c) : ConfObj(c) {}
QString name() const { return "pkg-config executable"; }
QString shortname() const { return "pkg-config"; }
bool exec(){
return !conf->findProgram("pkg-config").isEmpty();
}
};
#line 1 "libtorrent-rasterbar.qcm"
@@ -318,24 +350,20 @@ class qc_libtorrent_rasterbar : public ConfObj
{
public:
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
QString name() const { return "libtorrent-rasterbar >= 0.14.0 (>= 0.15.0 advised)"; }
QString name() const { return "libtorrent-rasterbar >= 0.14.4"; }
QString shortname() const { return "libtorrent-rasterbar"; }
bool exec(){
QStringList incs;
QString req_ver = "0.14.0";
QString adv_ver = "0.15.0";
QString req_ver = "0.14.4";
QString version, libs, other;
VersionMode mode = VersionMin;
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other))
return false;
for(int n = 0; n < incs.count(); ++n)
conf->addIncludePath(incs[n]);
if(!libs.isEmpty())
conf->addLib(libs);
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other))
printf("\nWarning: libtorrent-rasterbar v%s was detected.\nAlthough it will compile and run, you will be missing some features. Please consider updating to v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
else
conf->addDefine("LIBTORRENT_0_15");
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
conf->addLib("-lcrypto");
}
return true;
}
};
@@ -344,14 +372,39 @@ public:
-----BEGIN QCMOD-----
name: libboost
arg: with-libboost-inc=[path], Path to libboost include files
arg: with-libboost-lib=[path], Path to libboost library files
-----END QCMOD-----
*/
#include <boost/version.hpp>
class qc_libboost : public ConfObj
{
public:
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);
QStringList filters;
filters << "libboost_"+lib+"*-mt*.so";
QStringList result = libDir.entryList(filters, QDir::Files);
if(!result.empty()) {
name = result.first().mid(3);
// Remove .so
name.chop(3);
} else {
// Fall back to non -mt boost lib
filters.clear();
filters << "libboost_"+lib+"*.so";
result = libDir.entryList(filters, QDir::Files);
if(!result.empty()) {
name = result.first().mid(3);
// Remove .so
name.chop(3);
}
}
return name;
}
bool exec(){
QString s;
s = conf->getenv("QC_WITH_LIBBOOST_INC");
@@ -393,6 +446,43 @@ public:
}
}
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" << "thread";
}
QStringList libDirs;
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 {
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;
}
}
}
return true;
}
};
@@ -409,7 +499,15 @@ public:
qc_libnotify(Conf *c) : ConfObj(c) {}
QString name() const { return "libnotify >= 0.4.2 (optional)"; }
QString shortname() const { return "libnotify"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec(){
if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) {
return false;
}
QStringList incs;
QString req_ver = "0.4.2";
QString version, libs, other;
@@ -452,7 +550,15 @@ public:
qc_geoip_database(Conf *c) : ConfObj(c) {}
QString name() const { return "GeoIP Database (optional)"; }
QString shortname() const { return "GeoIP Database"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec() {
if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) {
return false;
}
#ifdef Q_WS_X11
if(!conf->getenv("QC_WITH_GEOIP_DATABASE_EMBEDDED").isEmpty()) {
#endif
@@ -474,6 +580,9 @@ cat >$1/modules_new.cpp <<EOT
o = new qc_qt4(conf);
o->required = true;
o->disabled = false;
o = new qc_pkg_config(conf);
o->required = true;
o->disabled = false;
o = new qc_libtorrent_rasterbar(conf);
o->required = true;
o->disabled = false;
@@ -1431,7 +1540,9 @@ export PREFIX
export BINDIR
export DATADIR
export EX_QTDIR
export QC_DISABLE_GUI
export QC_WITH_LIBBOOST_INC
export QC_WITH_LIBBOOST_LIB
export QC_DISABLE_libnotify
export QC_DISABLE_geoip_database
export QC_WITH_GEOIP_DATABASE_EMBEDDED

44
doc/qbittorrent-nox.1 Normal file
View File

@@ -0,0 +1,44 @@
.\" This manpage has been automatically generated by docbook2man
.\" from a DocBook document. This tool can be found at:
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>.
.TH "QBITTORRENT\-NOX" "1" "January 16th 2010" "Command line Bittorrent client written in C++ / Qt4" ""
.SH "NAME"
qBittorrent\-nox \- a command line Bittorrent client written in C++ / Qt4
.SH "SYNOPSIS"
\fBqbittorrent\-nox\fR [\-\-webui-port=x] [TORRENT_FILE | URL]...
\fBqbittorrent\-nox\fR \-\-help
\fBqbittorrent\-nox\fR \-\-version
.PP
.SH "DESCRIPTION"
\fBqBittorrent-nox\fR is an advanced command-line Bittorrent client written in C++ / Qt4,
using the \fBlibtorrent-rasterbar\fR library by Arvid Norberg. qBittorrent\-nox aims
to be a good alternative to other command line bittorrent clients and provides features similar to popular graphical clients.
qBittorrent\-nox is fast, stable, light and it supports unicode.
It also comes with UPnP port forwarding / NAT-PMP, encryption (Vuze compatible),
FAST extension (mainline) and PeX support (utorrent compatible).
qBittorrent\-nox is meant to be controlled via its feature-rich Web UI which is accessible as a default on http://localhost:8080. The Web UI access is secured and the default account user name is "admin" with "adminadmin" as a password.
.SH "OPTIONS"
\fB--help\fR Prints the command line options.
\fB--version\fR Prints qbittorrent program version number.
\fB--webui-port=x\fR Changes Web UI port to x (default: 8080).
.SH "BUGS"
If you find a bug, please report it at http://bugs.qbittorrent.org
.SH "AUTHOR"
Christophe Dumez <chris@qbittorrent.org>

View File

@@ -1,14 +1,14 @@
.\" This manpage has been automatically generated by docbook2man
.\" from a DocBook document. This tool can be found at:
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>.
.TH "QBITTORRENT" "1" "September 30th 2009" "Bittorrent client written in C++ / Qt4" ""
.TH "QBITTORRENT" "1" "January 16th 2010" "Bittorrent client written in C++ / Qt4" ""
.SH "NAME"
qBittorrent \- a Bittorrent client written in C++ / Qt4
.SH "SYNOPSIS"
\fBqbittorrent\fR [\-\-no-splash] [TORRENT_FILE | URL]...
\fBqbittorrent\fR [\-\-no-splash] [\-\-webui-port=x] [TORRENT_FILE | URL]...
\fBqbittorrent\fR \-\-help
@@ -18,10 +18,9 @@ qBittorrent \- a Bittorrent client written in C++ / Qt4
.SH "DESCRIPTION"
\fBqBittorrent\fR is an advanced Bittorrent client written in C++ / Qt4,
using the \fBrblibtorrent\fR library by Arvid Norberg. qBittorrent aims
to be a good alternative to all other bittorrent clients out there. qBittorrent
using the \fBlibtorrent-rasterbar\fR library by Arvid Norberg. qBittorrent is similar to uTorrent. qBittorrent
is fast, stable, light, it supports unicode and it provides a good integrated search engine.
It also comes with UPnP port forwarding / NAT-PMP, encryption (Azureus compatible),
It also comes with UPnP port forwarding / NAT-PMP, encryption (Vuze compatible),
FAST extension (mainline) and PeX support (utorrent compatible).
.SH "OPTIONS"
@@ -32,6 +31,8 @@ FAST extension (mainline) and PeX support (utorrent compatible).
\fB--no-splash\fR Disables splash screen on startup.
\fB--webui-port=x\fR Changes Web UI port to x (default: 8080).
.SH "BUGS"
If you find a bug, please report it at http://bugs.qbittorrent.org

View File

@@ -1,6 +1,4 @@
TEMPLATE = subdirs
include(conf.pri)
SUBDIRS += src

View File

@@ -6,6 +6,9 @@
<dep type='qt4'>
<required/>
</dep>
<dep type='pkg-config'>
<required/>
</dep>
<dep type='libtorrent-rasterbar'>
<required/>
</dep>

View File

@@ -11,7 +11,15 @@ public:
qc_geoip_database(Conf *c) : ConfObj(c) {}
QString name() const { return "GeoIP Database (optional)"; }
QString shortname() const { return "GeoIP Database"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec() {
if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) {
return false;
}
#ifdef Q_WS_X11
if(!conf->getenv("QC_WITH_GEOIP_DATABASE_EMBEDDED").isEmpty()) {
#endif

View File

@@ -2,14 +2,39 @@
-----BEGIN QCMOD-----
name: libboost
arg: with-libboost-inc=[path], Path to libboost include files
arg: with-libboost-lib=[path], Path to libboost library files
-----END QCMOD-----
*/
#include <boost/version.hpp>
class qc_libboost : public ConfObj
{
public:
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);
QStringList filters;
filters << "libboost_"+lib+"*-mt*.so";
QStringList result = libDir.entryList(filters, QDir::Files);
if(!result.empty()) {
name = result.first().mid(3);
// Remove .so
name.chop(3);
} else {
// Fall back to non -mt boost lib
filters.clear();
filters << "libboost_"+lib+"*.so";
result = libDir.entryList(filters, QDir::Files);
if(!result.empty()) {
name = result.first().mid(3);
// Remove .so
name.chop(3);
}
}
return name;
}
bool exec(){
QString s;
s = conf->getenv("QC_WITH_LIBBOOST_INC");
@@ -51,6 +76,43 @@ public:
}
}
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" << "thread";
}
QStringList libDirs;
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 {
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;
}
}
}
return true;
}
};

View File

@@ -10,7 +10,15 @@ public:
qc_libnotify(Conf *c) : ConfObj(c) {}
QString name() const { return "libnotify >= 0.4.2 (optional)"; }
QString shortname() const { return "libnotify"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec(){
if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) {
return false;
}
QStringList incs;
QString req_ver = "0.4.2";
QString version, libs, other;

View File

@@ -8,24 +8,20 @@ class qc_libtorrent_rasterbar : public ConfObj
{
public:
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
QString name() const { return "libtorrent-rasterbar >= 0.14.0 (>= 0.15.0 advised)"; }
QString name() const { return "libtorrent-rasterbar >= 0.14.4"; }
QString shortname() const { return "libtorrent-rasterbar"; }
bool exec(){
QStringList incs;
QString req_ver = "0.14.0";
QString adv_ver = "0.15.0";
QString req_ver = "0.14.4";
QString version, libs, other;
VersionMode mode = VersionMin;
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other))
return false;
for(int n = 0; n < incs.count(); ++n)
conf->addIncludePath(incs[n]);
if(!libs.isEmpty())
conf->addLib(libs);
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other))
printf("\nWarning: libtorrent-rasterbar v%s was detected.\nAlthough it will compile and run, you will be missing some features. Please consider updating to v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
else
conf->addDefine("LIBTORRENT_0_15");
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
conf->addLib("-lcrypto");
}
return true;
}
};

16
qcm/pkg-config.qcm Normal file
View File

@@ -0,0 +1,16 @@
/*
-----BEGIN QCMOD-----
name: pkg-config
-----END QCMOD-----
*/
#include <QProcess>
class qc_pkg_config : public ConfObj
{
public:
qc_pkg_config(Conf *c) : ConfObj(c) {}
QString name() const { return "pkg-config executable"; }
QString shortname() const { return "pkg-config"; }
bool exec(){
return !conf->findProgram("pkg-config").isEmpty();
}
};

View File

@@ -1,6 +1,7 @@
/*
-----BEGIN QCMOD-----
name: Qt >= 4.4
arg: disable-gui, Disable qBittorrent Graphical user interface for headless running
-----END QCMOD-----
*/
class qc_qt4 : public ConfObj
@@ -11,10 +12,9 @@ public:
QString shortname() const { return "Qt 4.4"; }
bool exec()
{
if(QT_VERSION >= 0x040500) {
conf->addDefine("QT_4_5");
}
if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
conf->addDefine("DISABLE_GUI");
}
return(QT_VERSION >= 0x040400);
}
};

File diff suppressed because it is too large Load Diff

196
src/GUI.h
View File

@@ -43,7 +43,6 @@ class Bittorrent;
class QTimer;
class downloadFromURL;
class SearchEngine;
class QLocalServer;
class QCloseEvent;
class RSSImp;
class QShortcut;
@@ -55,108 +54,115 @@ class TransferListFiltersWidget;
class QSplitter;
class PropertiesWidget;
class StatusBar;
class consoleDlg;
class about;
class createtorrent;
class downloadFromURL;
class GUI : public QMainWindow, private Ui::MainWindow{
Q_OBJECT
private:
// Bittorrent
Bittorrent *BTSession;
QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed?
// GUI related
QTimer *guiUpdater;
QTabWidget *tabs;
StatusBar *status_bar;
QPointer<options_imp> options;
QPointer<QSystemTrayIcon> systrayIcon;
QPointer<QTimer> systrayCreator;
QMenu *myTrayIconMenu;
TransferListWidget *transferList;
TransferListFiltersWidget *transferListFilters;
PropertiesWidget *properties;
bool displaySpeedInTitle;
bool force_exit;
// Keyboard shortcuts
QShortcut *switchSearchShortcut;
QShortcut *switchSearchShortcut2;
QShortcut *switchTransferShortcut;
QShortcut *switchRSSShortcut;
// Widgets
QAction *prioSeparator;
QAction *prioSeparator2;
QSplitter *hSplitter;
QSplitter *vSplitter;
// Search
SearchEngine *searchEngine;
// RSS
QPointer<RSSImp> rssWidget;
// Misc
QLocalServer *localServer;
public:
// Construct / Destruct
GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
~GUI();
// Methods
int getCurrentTabIndex() const;
TransferListWidget* getTransferList() const { return transferList; }
QMenu* getTrayIconMenu();
protected slots:
// GUI related slots
void dropEvent(QDropEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void toggleVisibility(QSystemTrayIcon::ActivationReason e);
void on_actionAbout_triggered();
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 balloonClicked();
void writeSettings();
void readSettings();
void on_actionExit_triggered();
void createTrayIcon();
void fullDiskError(QTorrentHandle& h, QString msg) const;
void handleDownloadFromUrlFailure(QString, QString) const;
void createSystrayDelayed();
void tab_changed(int);
// Keyboard shortcuts
void createKeyboardShortcuts();
void displayTransferTab() const;
void displaySearchTab() const;
void displayRSSTab() const;
// Torrent actions
void on_actionSet_global_upload_limit_triggered();
void on_actionSet_global_download_limit_triggered();
void on_actionDocumentation_triggered() const;
void on_actionOpen_triggered();
void updateGUI();
void loadPreferences(bool configure_session=true);
void processParams(const QStringList& params);
void addTorrent(QString path);
void addUnauthenticatedTracker(QPair<QTorrentHandle,QString> tracker);
void processDownloadedFiles(QString path, QString url);
void downloadFromURLList(const QStringList& urls);
void finishedTorrent(QTorrentHandle& h) const;
// Options slots
void on_actionOptions_triggered();
void optionsSaved();
// HTTP slots
void on_actionDownload_from_URL_triggered();
public slots:
void trackerAuthenticationRequired(QTorrentHandle& h);
void setTabText(int index, QString text) const;
void showNotificationBaloon(QString title, QString msg) const;
void downloadFromURLList(const QStringList& urls);
void updateAltSpeedsBtn(bool alternative);
protected slots:
// GUI related slots
void dropEvent(QDropEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void toggleVisibility(QSystemTrayIcon::ActivationReason e);
void on_actionAbout_triggered();
void on_actionCreate_torrent_triggered();
void on_actionWebsite_triggered() const;
void on_actionBugReport_triggered() const;
void on_actionShow_console_triggered();
void balloonClicked();
void writeSettings();
void readSettings();
void on_actionExit_triggered();
void createTrayIcon();
void fullDiskError(QTorrentHandle& h, QString msg) const;
void handleDownloadFromUrlFailure(QString, QString) const;
void createSystrayDelayed();
void tab_changed(int);
// Keyboard shortcuts
void createKeyboardShortcuts();
void displayTransferTab() const;
void displaySearchTab() const;
void displayRSSTab() const;
// Torrent actions
void on_actionSet_global_upload_limit_triggered();
void on_actionSet_global_download_limit_triggered();
void on_actionDocumentation_triggered() const;
void on_actionOpen_triggered();
void updateGUI();
void loadPreferences(bool configure_session=true);
void processParams(const QString& params);
void processParams(const QStringList& params);
void addTorrent(QString path);
void addUnauthenticatedTracker(const QPair<QTorrentHandle,QString> &tracker);
void processDownloadedFiles(QString path, QString url);
void finishedTorrent(QTorrentHandle& h) const;
void askRecursiveTorrentDownloadConfirmation(QTorrentHandle &h);
// Options slots
void on_actionOptions_triggered();
void optionsSaved();
// HTTP slots
void on_actionDownload_from_URL_triggered();
public slots:
void trackerAuthenticationRequired(QTorrentHandle& h);
void setTabText(int index, QString text) const;
void showNotificationBaloon(QString title, QString msg) const;
protected:
void closeEvent(QCloseEvent *);
void showEvent(QShowEvent *);
bool event(QEvent * event);
void displayRSSTab(bool enable);
protected:
void closeEvent(QCloseEvent *);
void showEvent(QShowEvent *);
bool event(QEvent * event);
void displayRSSTab(bool enable);
public:
// Construct / Destruct
GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
~GUI();
// Methods
int getCurrentTabIndex() const;
QPoint screenCenter() const;
private:
// Bittorrent
Bittorrent *BTSession;
QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed?
// GUI related
QTimer *guiUpdater;
QTabWidget *tabs;
StatusBar *status_bar;
QPointer<options_imp> options;
QPointer<consoleDlg> console;
QPointer<about> aboutDlg;
QPointer<createtorrent> createTorrentDlg;
QPointer<downloadFromURL> downloadFromURLDialog;
QPointer<QSystemTrayIcon> systrayIcon;
QPointer<QTimer> systrayCreator;
QPointer<QMenu> myTrayIconMenu;
TransferListWidget *transferList;
TransferListFiltersWidget *transferListFilters;
PropertiesWidget *properties;
bool displaySpeedInTitle;
bool force_exit;
// Keyboard shortcuts
QShortcut *switchSearchShortcut;
QShortcut *switchSearchShortcut2;
QShortcut *switchTransferShortcut;
QShortcut *switchRSSShortcut;
// Widgets
QAction *prioSeparator;
QAction *prioSeparator2;
QSplitter *hSplitter;
QSplitter *vSplitter;
// Search
SearchEngine *searchEngine;
// RSS
QPointer<RSSImp> rssWidget;
};
#endif

Binary file not shown.

After

Width:  |  Height:  |  Size: 546 B

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

BIN
src/Icons/oxygen/gear32.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

View File

@@ -1,8 +1,9 @@
[Desktop Entry]
Categories=Qt;Network;P2P;
Comment=V2.0.5
Comment=V2.2.9
Exec=qbittorrent %f
GenericName=Bittorrent client
GenericName[ar]=العميل Bittorrent
GenericName[bg]=Торент клиент
GenericName[cs]=Bittorrent klient
GenericName[de]=Bittorren Client
@@ -10,6 +11,7 @@ GenericName[el]=Bittorrent πελάτης
GenericName[es]=Cliente Bittorrent
GenericName[fi]=Bittorrent-ohjelma
GenericName[fr]=Client Bittorrent
GenericName[hr]=Bittorrent klijent
GenericName[hu]=Bittorrent kliens
GenericName[it]=Client Bittorrent
GenericName[ja]=Bittorrent クライアント

Binary file not shown.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

BIN
src/Icons/slow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.7 KiB

BIN
src/Icons/slow_off.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.3 KiB

60
src/Info.plist Normal file
View File

@@ -0,0 +1,60 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDocumentTypes</key>
<array>
<dict>
<key>CFBundleTypeExtensions</key>
<array>
<string>torrent</string>
</array>
<key>CFBundleTypeIconFile</key>
<string>qbittorrentDocument</string>
<key>CFBundleTypeName</key>
<string>BitTorrent Document</string>
<key>CFBundleTypeMIMETypes</key>
<array>
<string>application/x-bittorrent</string>
</array>
<key>CFBundleTypeRole</key>
<string>Viewer</string>
<key>LSHandlerRank</key>
<string>Owner</string>
<key>LSItemContentTypes</key>
<array>
<string>org.bittorrent.torrent</string>
</array>
<key>LSIsAppleDefaultForType</key>
<true/>
</dict>
</array>
<key>CFBundleURLTypes</key>
<array>
<dict>
<key>CFBundleURLSchemes</key>
<array>
<string>magnet</string>
</array>
<key>CFBundleURLName</key>
<string>BitTorrent Magnet URL</string>
</dict>
</array>
<key>CFBundleIconFile</key>
<string>qbittorrent_mac.icns</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
<string>2.2.9</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>
<string>qbittorrent</string>
<key>CFBundleIdentifier</key>
<string>org.qbittorrent</string>
<key>NOTE</key>
<string>This file was generated by Qt/QMake.</string>
</dict>
</plist>

View File

@@ -54,19 +54,21 @@ class about : public QDialog, private Ui::AboutDlg{
te_thanks->append(QString::fromUtf8("<a name='top'></a>"));
te_thanks->append(QString::fromUtf8("<ul><li>I would first like to thank sourceforge.net for hosting qBittorrent project and for their support.</li>"));
te_thanks->append(QString::fromUtf8("<li>I am pleased that people from all over the world are contributing to qBittorrent: Ishan Arora (India), Arnaud Demaizière (France) and Stephanos Antaris (Greece). Their help is greatly appreciated</li>"));
te_thanks->append(QString::fromUtf8("<li>I also want to thank Jeffery Fernandez (jeffery@qbittorrent.org), project consultant, for his help and support since the beginning of this project.</li>"));
te_thanks->append(QString::fromUtf8("<li>I am grateful to Peter Koeleman (peter@qbittorrent.org) for working on qBittorrent port to Windows.</li>"));
te_thanks->append(QString::fromUtf8("<li>I also want to thank Στέφανος Αντάρης (santaris@csd.auth.gr) and Mirco Chinelli (infinity89@fastwebmail.it) for working on Mac OS X packaging.</li>"));
te_thanks->append(QString::fromUtf8("<li>I am grateful to Peter Koeleman (peter@qbittorrent.org) and Mohammad Dib (mdib@qbittorrent.org) for working on qBittorrent port to Windows.</li>"));
te_thanks->append(QString::fromUtf8("<li>Thanks a lot to our graphist Mateusz Toboła (tobejodok@qbittorrent.org) for his great work.</li></ul><br><br>"));
te_thanks->scrollToAnchor(QString::fromUtf8("top"));
// Translation
te_translation->append(QString::fromUtf8("<a name='top'></a>"));
te_translation->append(tr("I would like to thank the following people who volunteered to translate qBittorrent:")+QString::fromUtf8("<br>"));
te_translation->append(QString::fromUtf8(
"<i>- <u>Brazilian:</u> Nick Marinho (nickmarinho@gmail.com)<br>\
- <u>Bulgarian:</u> Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net)<br>\
"<i><u>Arabic:</u> SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)<br>\
- <u>Brazilian:</u> Nick Marinho (nickmarinho@gmail.com)<br>\
- <u>Bulgarian:</u> Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)<br>\
- <u>Catalan:</u> Francisco Luque Contreras (frannoe@ya.com)<br>\
- <u>Chinese (Simplified):</u> Guo Yue (yue.guo0418@gmail.com)<br>\
- <u>Chinese (Traditional):</u> Yi-Shun Wang (dnextstep@gmail.com)<br>\
- <u>Croatian:</u> Oliver Mucafir (oliver.untwist@gmail.com)<br>\
- <u>Czech:</u> Jirka Vilim (web@tets.cz)<br>\
- <u>Danish:</u> Mathias Nielsen (comoneo@gmail.com)<br>\
- <u>Dutch:</u> Joost Schipper (heavyjoost@users.sourceforge.net) and Peter Koeleman (peter@peerweb.nl)<br>\
@@ -87,11 +89,14 @@ class about : public QDialog, private Ui::AboutDlg{
- <u>Spanish:</u> Francisco Luque Contreras (frannoe@ya.com)<br>\
- <u>Swedish:</u> Daniel Nylander (po@danielnylander.se)<br>\
- <u>Turkish:</u> Hasan YILMAZ (iletisim@hedefturkce.com) and Erdem Bingöl (erdem84@gmail.com)<br>\
- <u>Ukrainian:</u> Andrey Shpachenko (masterfix@users.sourceforge.net)<br><br>"));
- <u>Ukrainian:</u> Andrey Shpachenko (masterfix@users.sourceforge.net) and Oleh Prypin (blaxpirit@gmail.com)<br><br>"));
te_translation->append(tr("Please contact me if you would like to translate qBittorrent into your own language."));
te_translation->scrollToAnchor(QString::fromUtf8("top"));
// License
te_license->append(QString::fromUtf8("<a name='top'></a>"));
#ifdef Q_WS_WIN
te_license->append(QString::fromUtf8("qBittorrent is licensed under the GNU General Public License version 2."));
#else
te_license->append(QString::fromUtf8("qBittorrent is licensed under the GNU General Public License version 2 with the\
addition of the following special exception:\
<br><br>\
@@ -438,6 +443,7 @@ exception statement from your version.</i>\
consider it more useful to permit linking proprietary applications with the<br>\
library. If this is what you want to do, use the GNU Library General<br>\
Public License instead of this License.<br>"));
#endif
te_license->scrollToAnchor(QString::fromUtf8("top"));
show();
}

147
src/advancedsettings.h Normal file
View File

@@ -0,0 +1,147 @@
#ifndef ADVANCEDSETTINGS_H
#define ADVANCEDSETTINGS_H
#include <QTableWidget>
#include <QHeaderView>
#include <QSpinBox>
#include <QCheckBox>
#include <libtorrent/version.hpp>
#include "preferences.h"
enum AdvSettingsCols {PROPERTY, VALUE};
enum AdvSettingsRows {DISK_CACHE, OUTGOING_PORT_MIN, OUTGOING_PORT_MAX, IGNORE_LIMIT_LAN, COUNT_OVERHEAD, RECHECK_COMPLETED, LIST_REFRESH, RESOLVE_COUNTRIES, RESOLVE_HOSTS };
#define ROW_COUNT 9
class AdvancedSettings: public QTableWidget {
Q_OBJECT
private:
QSpinBox *spin_cache, *outgoing_ports_min, *outgoing_ports_max, *spin_list_refresh;
QCheckBox *cb_ignore_limits_lan, *cb_count_overhead, *cb_recheck_completed, *cb_resolve_countries, *cb_resolve_hosts;
public:
AdvancedSettings(QWidget *parent=0): QTableWidget(parent) {
// Set visual appearance
setEditTriggers(QAbstractItemView::NoEditTriggers);
setAlternatingRowColors(true);
setColumnCount(2);
QStringList header;
header << tr("Property") << tr("Value");
setHorizontalHeaderLabels(header);
setColumnWidth(0, width()/2);
horizontalHeader()->setStretchLastSection(true);
verticalHeader()->setVisible(false);
setRowCount(ROW_COUNT);
// Load settings
loadAdvancedSettings();
}
~AdvancedSettings() {
delete spin_cache;
delete outgoing_ports_min;
delete outgoing_ports_max;
delete cb_ignore_limits_lan;
delete cb_count_overhead;
delete cb_recheck_completed;
delete spin_list_refresh;
delete cb_resolve_countries;
delete cb_resolve_hosts;
}
public slots:
void saveAdvancedSettings() {
// Disk write cache
Preferences::setDiskCacheSize(spin_cache->value());
// Outgoing ports
Preferences::setOutgoingPortsMin(outgoing_ports_min->value());
Preferences::setOutgoingPortsMax(outgoing_ports_max->value());
// Ignore limits on LAN
Preferences::ignoreLimitsOnLAN(cb_ignore_limits_lan->isChecked());
// Include protocol overhead in transfer limits
Preferences::includeOverheadInLimits(cb_count_overhead->isChecked());
// Recheck torrents on completion
Preferences::recheckTorrentsOnCompletion(cb_recheck_completed->isChecked());
// Transfer list refresh interval
Preferences::setRefreshInterval(spin_list_refresh->value());
// Peer resolution
Preferences::resolvePeerCountries(cb_resolve_countries->isChecked());
Preferences::resolvePeerHostNames(cb_resolve_hosts->isChecked());
}
protected slots:
void loadAdvancedSettings() {
// Disk write cache
setItem(DISK_CACHE, PROPERTY, new QTableWidgetItem(tr("Disk write cache size")));
spin_cache = new QSpinBox();
connect(spin_cache, SIGNAL(valueChanged(int)), this, SLOT(emitSettingsChanged()));
spin_cache->setMinimum(1);
spin_cache->setMaximum(200);
spin_cache->setValue(Preferences::diskCacheSize());
spin_cache->setSuffix(tr(" MiB"));
setCellWidget(DISK_CACHE, VALUE, spin_cache);
// Outgoing port Min
setItem(OUTGOING_PORT_MIN, PROPERTY, new QTableWidgetItem(tr("Outgoing ports (Min) [0: Disabled]")));
outgoing_ports_min = new QSpinBox();
connect(outgoing_ports_min, SIGNAL(valueChanged(int)), this, SLOT(emitSettingsChanged()));
outgoing_ports_min->setMinimum(0);
outgoing_ports_min->setMaximum(65535);
outgoing_ports_min->setValue(Preferences::outgoingPortsMin());
setCellWidget(OUTGOING_PORT_MIN, VALUE, outgoing_ports_min);
// Outgoing port Min
setItem(OUTGOING_PORT_MAX, PROPERTY, new QTableWidgetItem(tr("Outgoing ports (Max) [0: Disabled]")));
outgoing_ports_max = new QSpinBox();
connect(outgoing_ports_max, SIGNAL(valueChanged(int)), this, SLOT(emitSettingsChanged()));
outgoing_ports_max->setMinimum(0);
outgoing_ports_max->setMaximum(65535);
outgoing_ports_max->setValue(Preferences::outgoingPortsMax());
setCellWidget(OUTGOING_PORT_MAX, VALUE, outgoing_ports_max);
// Ignore transfer limits on local network
setItem(IGNORE_LIMIT_LAN, PROPERTY, new QTableWidgetItem(tr("Ignore transfer limits on local network")));
cb_ignore_limits_lan = new QCheckBox();
connect(cb_ignore_limits_lan, SIGNAL(toggled(bool)), this, SLOT(emitSettingsChanged()));
cb_ignore_limits_lan->setChecked(Preferences::ignoreLimitsOnLAN());
setCellWidget(IGNORE_LIMIT_LAN, VALUE, cb_ignore_limits_lan);
// Consider protocol overhead in transfer limits
setItem(COUNT_OVERHEAD, PROPERTY, new QTableWidgetItem(tr("Include TCP/IP overhead in transfer limits")));
cb_count_overhead = new QCheckBox();
connect(cb_count_overhead, SIGNAL(toggled(bool)), this, SLOT(emitSettingsChanged()));
cb_count_overhead->setChecked(Preferences::includeOverheadInLimits());
setCellWidget(COUNT_OVERHEAD, VALUE, cb_count_overhead);
// Recheck completed torrents
setItem(RECHECK_COMPLETED, PROPERTY, new QTableWidgetItem(tr("Recheck torrents on completion")));
cb_recheck_completed = new QCheckBox();
connect(cb_recheck_completed, SIGNAL(toggled(bool)), this, SLOT(emitSettingsChanged()));
cb_recheck_completed->setChecked(Preferences::recheckTorrentsOnCompletion());
setCellWidget(RECHECK_COMPLETED, VALUE, cb_recheck_completed);
// Transfer list refresh interval
setItem(LIST_REFRESH, PROPERTY, new QTableWidgetItem(tr("Transfer list refresh interval")));
spin_list_refresh = new QSpinBox();
connect(spin_list_refresh, SIGNAL(valueChanged(int)), this, SLOT(emitSettingsChanged()));
spin_list_refresh->setMinimum(30);
spin_list_refresh->setMaximum(99999);
spin_list_refresh->setValue(Preferences::getRefreshInterval());
spin_list_refresh->setSuffix(tr(" ms", " milliseconds"));
setCellWidget(LIST_REFRESH, VALUE, spin_list_refresh);
// Resolve Peer countries
setItem(RESOLVE_COUNTRIES, PROPERTY, new QTableWidgetItem(tr("Resolve peer countries (GeoIP)")));
cb_resolve_countries = new QCheckBox();
connect(cb_resolve_countries, SIGNAL(toggled(bool)), this, SLOT(emitSettingsChanged()));
cb_resolve_countries->setChecked(Preferences::resolvePeerCountries());
setCellWidget(RESOLVE_COUNTRIES, VALUE, cb_resolve_countries);
// Resolve peer hosts
setItem(RESOLVE_HOSTS, PROPERTY, new QTableWidgetItem(tr("Resolve peer host names")));
cb_resolve_hosts = new QCheckBox();
connect(cb_resolve_hosts, SIGNAL(toggled(bool)), this, SLOT(emitSettingsChanged()));
cb_resolve_hosts->setChecked(Preferences::resolvePeerHostNames());
setCellWidget(RESOLVE_HOSTS, VALUE, cb_resolve_hosts);
}
void emitSettingsChanged() {
emit settingsChanged();
}
signals:
void settingsChanged();
};
#endif // ADVANCEDSETTINGS_H

111
src/bandwidthscheduler.h Normal file
View File

@@ -0,0 +1,111 @@
#ifndef BANDWIDTHSCHEDULER_H
#define BANDWIDTHSCHEDULER_H
#include <QTimer>
#include <QTime>
#include <QDateTime>
#include "preferences.h"
#include <iostream>
class BandwidthScheduler: public QTimer {
Q_OBJECT
private:
bool in_alternative_mode;
public:
BandwidthScheduler(QObject *parent): QTimer(parent), in_alternative_mode(false) {
Q_ASSERT(Preferences::isSchedulerEnabled());
// Signal shot, we call start() again manually
setSingleShot(true);
// Connect Signals/Slots
connect(this, SIGNAL(timeout()), this, SLOT(switchMode()));
}
public slots:
void start() {
Q_ASSERT(Preferences::isSchedulerEnabled());
QTime startAltSpeeds = Preferences::getSchedulerStartTime();
QTime endAltSpeeds = Preferences::getSchedulerEndTime();
if(startAltSpeeds == endAltSpeeds) {
std::cerr << "Error: bandwidth scheduler have the same start time and end time." << std::endl;
std::cerr << "The bandwidth scheduler will be disabled" << std::endl;
stop();
emit switchToAlternativeMode(false);
return;
}
// Determine what the closest QTime is
QTime now = QTime::currentTime();
uint time_to_start = secsTo(now, startAltSpeeds);
uint time_to_end = secsTo(now, endAltSpeeds);
if(time_to_end < time_to_start) {
// We should be in alternative mode
in_alternative_mode = true;
// Start counting
QTimer::start(time_to_end*1000);
} else {
// We should be in normal mode
in_alternative_mode = false;
// Start counting
QTimer::start(time_to_start*1000);
}
// Send signal to notify BTSession
emit switchToAlternativeMode(in_alternative_mode);
}
void switchMode() {
// Get the day this mode was started (either today or yesterday)
QDate current_date = QDateTime::currentDateTime().toLocalTime().date();
int day = current_date.dayOfWeek();
if(in_alternative_mode) {
// It is possible that starttime was yesterday
if(QTime::currentTime().secsTo(Preferences::getSchedulerStartTime()) > 0) {
current_date.addDays(-1); // Go to yesterday
day = current_date.day();
}
}
// Check if the day is in scheduler days
// Notify BTSession only if necessary
switch(Preferences::getSchedulerDays()) {
case EVERY_DAY:
emit switchToAlternativeMode(!in_alternative_mode);
break;
case WEEK_ENDS:
if(day == Qt::Saturday || day == Qt::Sunday)
emit switchToAlternativeMode(!in_alternative_mode);
break;
case WEEK_DAYS:
if(day != Qt::Saturday && day != Qt::Sunday)
emit switchToAlternativeMode(!in_alternative_mode);
break;
default:
// Convert our enum index to Qt enum index
int scheduler_day = ((int)Preferences::getSchedulerDays()) - 2;
if(day == scheduler_day)
emit switchToAlternativeMode(!in_alternative_mode);
break;
}
// Call start again
start();
}
signals:
void switchToAlternativeMode(bool alternative);
private:
// Qt function can return negative values and we
// don't want that
uint secsTo(QTime now, QTime t) {
int diff = now.secsTo(t);
if(diff < 0) {
// 86400 seconds in a day
diff += 86400;
}
Q_ASSERT(diff >= 0);
return diff;
}
};
#endif // BANDWIDTHSCHEDULER_H

Some files were not shown because too many files have changed in this diff Show More