1
mirror of https://github.com/qbittorrent/qBittorrent synced 2025-10-14 11:52:15 +02:00

Compare commits

...

192 Commits

Author SHA1 Message Date
Christophe Dumez
51c01a7f24 Tagged v2.7.0 release 2011-03-20 13:06:04 +00:00
Christophe Dumez
3e27595cf1 Bump to v2.7.0 final 2011-03-20 13:01:06 +00:00
Christophe Dumez
44ab905131 Updated Chinese translation 2011-03-20 11:19:05 +00:00
Christophe Dumez
2a04ac55de Remove bad comment 2011-03-20 11:15:58 +00:00
Christophe Dumez
45ad494a3e Updated Croatian translation 2011-03-20 08:11:31 +00:00
Christophe Dumez
78fe44ec01 Process alerts more frequently 2011-03-19 15:48:45 +00:00
Christophe Dumez
536bd85fd0 Another fix for torrent addition from Web browser 2011-03-19 13:58:34 +00:00
Christophe Dumez
84705489fc Updated Russian translation 2011-03-19 13:50:37 +00:00
Christophe Dumez
ff085e955e Updated Dutch translation 2011-03-19 09:35:15 +00:00
Christophe Dumez
4b62c24e54 Fixes to Norwegian translation 2011-03-18 23:49:30 +00:00
Christophe Dumez
c7658e2e96 Linux: Install PNG icon to $$PREFIX/share/pixmaps/ 2011-03-18 22:49:28 +00:00
Christophe Dumez
9fe693630c Bump to v2.7.0rc2 2011-03-18 18:52:55 +00:00
Christophe Dumez
3bba7578af Fix torrent addition from browser 2011-03-18 18:39:21 +00:00
Christophe Dumez
53b6a25442 Added %n (torrent name) parameter to external program call 2011-03-18 18:28:19 +00:00
Christophe Dumez
5e7de313fc Fix typos in Slovak translations 2011-03-16 19:45:44 +00:00
Christophe Dumez
8c91e9d4e2 Update Galician translation 2011-03-15 18:10:21 +00:00
Christophe Dumez
078ee59b4e Bump to rc1 2011-03-15 16:55:26 +00:00
Christophe Dumez
438e277c42 Updated Czech, Swedish and Traditional Chinese translations 2011-03-15 16:48:46 +00:00
Christophe Dumez
a4c1b93a42 Added debug output 2011-03-14 19:18:52 +00:00
Christophe Dumez
82877a9afa Added french translation 2011-03-14 18:51:20 +00:00
Christophe Dumez
6bee757652 Added comment polish translation to desktop file 2011-03-14 18:48:44 +00:00
Christophe Dumez
d8cdc3094a Updated Arabic translation 2011-03-14 18:32:41 +00:00
Christophe Dumez
db455c9832 Update comment in desktop file 2011-03-14 18:23:27 +00:00
Christophe Dumez
b6c931905a Update categories in desktop file 2011-03-14 17:53:39 +00:00
Christophe Dumez
6647973391 Updated Armenian translation 2011-03-14 16:08:23 +00:00
Christophe Dumez
4c85ea678d Updated Slovak translation 2011-03-14 16:06:52 +00:00
Christophe Dumez
dc27b5e976 Updated Greek, Bulgarian and Norwegian translations 2011-03-14 16:04:48 +00:00
Christophe Dumez
4828f6190e Updated Ukrainian translation 2011-03-13 18:32:42 +00:00
Christophe Dumez
84a0f92546 Update French translation 2011-03-13 18:16:38 +00:00
Christophe Dumez
e3a9194010 Fix column hiding/showing in transfer list 2011-03-13 17:49:56 +00:00
Christophe Dumez
727e212b8e Updated Russian translation 2011-03-13 17:30:45 +00:00
Christophe Dumez
df64ede724 BUGFIX: Added length restriction on UI lock password 2011-03-13 13:59:22 +00:00
Christophe Dumez
8a07e01181 Update language files 2011-03-13 13:38:52 +00:00
Christophe Dumez
d67d4a38ce Improve status bar's style 2011-03-13 13:35:08 +00:00
Christophe Dumez
3b898c52d3 Code clean up 2011-03-13 12:48:53 +00:00
Christophe Dumez
4e79411d9f Tooltip text improvement 2011-03-13 12:30:59 +00:00
Christophe Dumez
524875e458 Updated language files 2011-03-13 12:10:08 +00:00
Christophe Dumez
3c75774cfb Bump to beta4 2011-03-13 10:31:26 +00:00
Christophe Dumez
596737ba2f Improve lists columns state saving 2011-03-13 10:09:31 +00:00
Christophe Dumez
e142aafea1 Do not report torrent being checked as queued 2011-03-13 09:40:31 +00:00
Christophe Dumez
09da69918e Make sure the .unwanted folder is removed on soft deletion 2011-03-13 09:28:27 +00:00
Christophe Dumez
e0c2e3dd2c Code clean up 2011-03-13 09:13:13 +00:00
Christophe Dumez
5dc79e67fc Made QtSvg dependency optional 2011-03-12 21:02:59 +00:00
Christophe Dumez
14341f3be2 COSMETIC: Added monochrome tray icon 2011-03-12 20:59:44 +00:00
Christophe Dumez
2acf90d813 Added monochrome icon 2011-03-12 19:21:32 +00:00
Christophe Dumez
ae1d6492d0 Code clean up 2011-03-12 18:57:11 +00:00
Christophe Dumez
0a0579bc8b Fix nox compilation 2011-03-10 19:42:12 +00:00
Christophe Dumez
ead93baa21 Updated language files 2011-03-10 19:04:05 +00:00
Christophe Dumez
39bad79f5a Bump to beta3 2011-03-10 19:02:00 +00:00
Christophe Dumez
f25b198516 FEATURE: Torrent content list is now sortable 2011-03-10 18:58:35 +00:00
Christophe Dumez
15d3b07f34 Improve folder removal behavior 2011-03-10 18:34:28 +00:00
Christophe Dumez
feeecbf395 Fix root folder being cut off if the torrent comes from a scanned folder (Christian Kandeler) 2011-03-10 17:46:56 +00:00
Christophe Dumez
e7abeb9bd4 Code clean up 2011-03-10 17:42:17 +00:00
Christophe Dumez
879a010c3d Code clean up: Use Qt for File I/O instead of boost 2011-03-10 17:36:11 +00:00
Christophe Dumez
89e64a212e Fix Magnet link association (Fisiu) 2011-03-09 20:11:30 +00:00
Christophe Dumez
82c7c02611 Fix to last commit 2011-03-07 20:25:20 +00:00
Christophe Dumez
b6c3189fe3 Make QtDBus dependency optional 2011-03-07 20:22:35 +00:00
Christophe Dumez
82e41f36ee FEATURE: Added per-torrent ratio limiting (Christian Kandeler) 2011-03-07 19:26:44 +00:00
Christophe Dumez
4b1eade157 Slight window position fix 2011-03-07 17:41:32 +00:00
Christophe Dumez
b79ed40e32 Updated Russian translation 2011-03-07 17:23:05 +00:00
Christophe Dumez
d06e0b639e Fix compilation with Qt 4.6 2011-03-03 19:20:49 +00:00
Christophe Dumez
d1cfb4f066 Should fix writings on NTFS when using Linux 2011-03-03 19:10:18 +00:00
Christophe Dumez
efa1f4ebb4 Fix compilation with libtorrent v0.14 2011-03-03 18:19:42 +00:00
Christophe Dumez
fa4eda9c87 Updated Spanish and Catalan translations 2011-03-01 18:48:34 +00:00
Christophe Dumez
1efb122d9c Added magnet mime type to desktop file (Thanks Mariusz Fik) 2011-02-27 17:48:36 +00:00
Christophe Dumez
c2e5ecaaa0 BUGFIX: Fix compilation with namespaced Qt (Christian Kandeler) 2011-02-27 15:41:05 +00:00
Christophe Dumez
313dfd6475 Bump to beta 2 2011-02-27 14:46:54 +00:00
Christophe Dumez
8dd753ce46 Update French translation 2011-02-27 14:46:28 +00:00
Christophe Dumez
435d0e1019 FEATURE: Added search field for torrent content 2011-02-27 14:40:46 +00:00
Christophe Dumez
37cd9c5b7b FEATURE: Added option to disable program exit confirmation 2011-02-27 09:43:58 +00:00
Christophe Dumez
8b9971003d FEATURE: Added option to bypass Web UI authentication for localhost 2011-02-27 09:34:42 +00:00
Christophe Dumez
79cdad47f1 Code optimization 2011-02-26 19:56:15 +00:00
Christophe Dumez
8f1276350e Use data sharing in RSS to save memory and increase performance 2011-02-26 19:25:05 +00:00
Christophe Dumez
c05e6ba580 Fix compilation error on Windows
Fix possible encoding problem on Windows (torrent creation tool)
Fix compilation with boost >= v1.46
2011-02-26 15:04:15 +00:00
Christophe Dumez
2da5e03741 Share ratio can now go over 100 2011-02-24 17:36:20 +00:00
Christophe Dumez
a9ce197d04 Improvement to last commit 2011-02-24 17:22:04 +00:00
Christophe Dumez
1bce5b7837 Fix cursor problem in torrent addition dialog 2011-02-24 17:15:22 +00:00
Christophe Dumez
74718bc568 Added comment 2011-02-22 18:37:56 +00:00
Christophe Dumez
217937217d Fix torrent upload from Web UI (Windows) 2011-02-22 18:35:42 +00:00
Christophe Dumez
af1dfd41ab Disable OS cache for aligned files to reduce memory consumption
Code cleanup
2011-02-22 18:02:15 +00:00
Christophe Dumez
54c6ccc087 Updated Nowegian, Spanish and Catalan translations 2011-02-13 08:34:26 +00:00
Christophe Dumez
d9e15e40f4 Fix "Append Label to Save path" on Windows 2011-02-12 09:50:23 +00:00
Christophe Dumez
12d1e852f4 Another encoding fix 2011-02-10 18:59:55 +00:00
Christophe Dumez
802d262776 Revert encoding changes since they appear to be wrong 2011-02-10 18:48:31 +00:00
Christophe Dumez
04b63829d7 Fix download from URLs on Windows
Fix possible encoding problems in paths (Windows)
2011-02-07 20:13:46 +00:00
Christophe Dumez
8568b29cc1 Complete Lithunian integration 2011-02-07 18:56:17 +00:00
Christophe Dumez
b1471c2a45 Fix typo in desktop file 2011-02-07 17:47:34 +00:00
Christophe Dumez
a86b87244d Updated language files 2011-02-07 17:30:21 +00:00
Christophe Dumez
e431b96ca1 Added Lithuanian translation 2011-02-07 17:29:04 +00:00
Christophe Dumez
ce5cdd0eea Fix the marking of items as read in RSS 2011-02-07 17:17:37 +00:00
Christophe Dumez
c5a831b8ec Use slashes instead of antislashes in URLs (Windows) 2011-02-07 17:10:06 +00:00
Christophe Dumez
872002b730 Bump to v2.7.0beta1 2011-02-06 14:44:25 +00:00
Christophe Dumez
cb6fad87de Updated Russian translation 2011-02-06 14:29:59 +00:00
Christophe Dumez
0f1473e212 FEATURE: Inhibit system sleep when torrents are active (Vladimir Golovnev)
Remove visual style settings
2011-02-06 14:27:34 +00:00
Christophe Dumez
b45171ba43 Fix properties button text color 2011-02-05 21:50:21 +00:00
Christophe Dumez
28b8f36f16 Fix layout problems 2011-02-05 21:27:13 +00:00
Christophe Dumez
35c1389794 Cosmetic changes to the piece availability and downloaded pieces bars 2011-02-05 19:16:48 +00:00
Christophe Dumez
6ae7db4afb Improve main window layout
Improve properties buttons style
2011-02-05 17:45:32 +00:00
Christophe Dumez
7b646018ea Updated language files 2011-02-05 16:01:49 +00:00
Christophe Dumez
4c7a5633da FEATURE: IP address reported to trackers is now customizable 2011-02-05 15:44:48 +00:00
Christophe Dumez
76d3e9033d FEATURE: Added auto-shutdown confirmation dialog 2011-02-05 14:51:31 +00:00
Christophe Dumez
c9d5370dc4 Fixes to Norwegian translation 2011-02-03 15:57:09 +00:00
Christophe Dumez
7cdbe8ef34 Updated AUTHORS file 2011-01-29 15:08:21 +00:00
Christophe Dumez
8b819d7e9e Fix typo in Norwegian translation 2011-01-29 14:48:32 +00:00
Christophe Dumez
7f0c8dde24 Rss code clean up 2011-01-29 14:18:45 +00:00
Christophe Dumez
74c32a0ecd Rss code clean up 2011-01-29 14:10:08 +00:00
Christophe Dumez
87174ef3a4 Rss code clean up 2011-01-29 13:44:56 +00:00
Christophe Dumez
462c821df9 RSS code clean up 2011-01-29 13:03:12 +00:00
Christophe Dumez
42d7e20c1d Fix compilation error in release mode 2011-01-29 11:57:52 +00:00
Christophe Dumez
933b924766 Updated Norwegian translation 2011-01-28 18:11:44 +00:00
Christophe Dumez
be15e6d34c Added new Norwegian translator name 2011-01-28 18:11:16 +00:00
Christophe Dumez
d6997e7833 Fix encoding problem in torrent moving code 2011-01-28 17:05:44 +00:00
Christophe Dumez
e94769b58b Rss code clean up 2011-01-27 19:28:05 +00:00
Christophe Dumez
7616c22897 More RSS code clean up 2011-01-27 18:03:28 +00:00
Christophe Dumez
138cd90736 Updated Russian translation 2011-01-27 17:33:57 +00:00
Christophe Dumez
9aae8040ef Use native file dialogs 2011-01-27 17:30:27 +00:00
Christophe Dumez
2d5612435c RSS code rewrite in progress 2011-01-27 17:18:56 +00:00
Christophe Dumez
2b1e4912f2 Fixes to Russian translation 2011-01-26 16:54:01 +00:00
Christophe Dumez
b1fe50e056 Fix compilation on Windows 2011-01-26 07:38:28 +00:00
Christophe Dumez
09a45abd92 Updated Russian translation 2011-01-25 19:14:57 +00:00
Christophe Dumez
adf615d0cc Fix compilation error 2011-01-25 18:51:14 +00:00
Christophe Dumez
954e010493 RSS optimization 2011-01-25 18:46:38 +00:00
Christophe Dumez
86b4db75be RSS code clean up 2011-01-25 18:07:28 +00:00
Christophe Dumez
587c4f3b14 Code clean up 2011-01-25 17:26:25 +00:00
Christophe Dumez
8238c13dc0 Performance improvement on ARM 2011-01-25 17:04:55 +00:00
Christophe Dumez
5c8dd9f0fb Performance improvement on ARM 2011-01-25 17:01:09 +00:00
Christophe Dumez
dfcdb18b41 Do not display 100% unless the torrent is complete 2011-01-25 16:55:29 +00:00
Christophe Dumez
e402674092 Code clean up 2011-01-24 19:06:47 +00:00
Christophe Dumez
783004ae58 Some more code clean up 2011-01-24 17:58:57 +00:00
Christophe Dumez
6ff7c6ed06 Fixed memory leak in torrent downloader
Code clean up
2011-01-24 17:27:26 +00:00
Christophe Dumez
a0ecbe01a1 Make sure the progress is not 100% unless the file is complete 2011-01-24 16:48:18 +00:00
Christophe Dumez
47c2f2e30a Stop using load_file from libtorrent 2011-01-23 19:31:48 +00:00
Christophe Dumez
721fa821f7 BUGFIX: Fix renaming of single-file torrents (by Vladimir Golovnev) 2011-01-23 08:34:57 +00:00
Christophe Dumez
6580d23263 Make sure the main windows is initially centered 2011-01-22 19:51:06 +00:00
Christophe Dumez
0b874d9c42 Make sure the properties panel is initially hidden 2011-01-22 19:39:43 +00:00
Christophe Dumez
679c91435d Display legal notice on screen center 2011-01-22 19:31:06 +00:00
Christophe Dumez
d68b7fc9cb Code clean up 2011-01-22 19:16:17 +00:00
Christophe Dumez
02722dc3c9 Drop dependency on libboost-thread 2011-01-22 19:01:16 +00:00
Christophe Dumez
844bd52c67 Improved hostname resolution code 2011-01-22 18:55:54 +00:00
Christophe Dumez
51bc67042e Fix possible filter list height problem 2011-01-21 18:38:58 +00:00
Christophe Dumez
a8978b2ae4 Fix compatibility with Qt < 4.7 2011-01-20 20:58:24 +00:00
Christophe Dumez
fcf3b8e14a Fixed translation of size units (Thanks Владимир Головнёв) 2011-01-20 16:45:59 +00:00
Christophe Dumez
015bdc7930 Improved UI translation (Thanks Владимир Головнёв) 2011-01-20 16:14:23 +00:00
Christophe Dumez
370b986ab1 Updated Russian translation 2011-01-20 15:12:04 +00:00
Christophe Dumez
9d7591fc84 Fix compilation on OS/2 2011-01-18 16:55:49 +00:00
Christophe Dumez
9b6b357c9e Cleanup mainwindow startup code 2011-01-17 17:29:25 +00:00
Christophe Dumez
8fd7b86f45 FEATURE: Added option to skip torrent deletion confirmation (Ville Kiiskinen) 2011-01-16 15:29:44 +00:00
Christophe Dumez
35a4e4aa1c Fixes to Polish translation 2011-01-16 09:53:32 +00:00
Christophe Dumez
d24abc3088 Fix labeling in RSS downloader 2011-01-15 18:23:19 +00:00
Christophe Dumez
615e08b74f Added unicode support to email notification
Improved compatibility with various SMTP servers
2011-01-15 16:53:37 +00:00
Christophe Dumez
4644b5cf15 Fix to Russian translation 2011-01-15 14:19:23 +00:00
Christophe Dumez
cb719e2bf5 Fix freebsd compilation 2011-01-15 09:30:41 +00:00
Christophe Dumez
ab8e35b6b4 Really get rid of nox dependency in nox mode 2011-01-15 08:48:20 +00:00
Christophe Dumez
76ea7525e3 Really get rid of DBus dependency in nox mode 2011-01-15 08:42:32 +00:00
Christophe Dumez
64615adc23 Remove dbus dependency in nox mode 2011-01-15 08:38:57 +00:00
Christophe Dumez
a205591178 Fixed file priority context menu 2011-01-14 21:18:45 +00:00
Christophe Dumez
25e27f4614 Updated French translation 2011-01-14 19:11:14 +00:00
Christophe Dumez
4a66c33a2c Improved Web UI translation 2011-01-14 19:03:48 +00:00
Christophe Dumez
16be6fe474 Improved Web UI translation 2011-01-14 19:01:11 +00:00
Christophe Dumez
e170d9c3a8 Improve Web Ui translation 2011-01-14 18:57:15 +00:00
Christophe Dumez
3adc58bb87 Added comment 2011-01-14 17:36:09 +00:00
Christophe Dumez
55aa6c36ee Fix icon size issues 2011-01-14 17:29:30 +00:00
Christophe Dumez
350bf0ffd4 Updated polish translation 2011-01-14 16:52:42 +00:00
Christophe Dumez
a9565e363a Updated Armenian translation 2011-01-14 16:48:23 +00:00
Christophe Dumez
378e24411c Updated Armenian translation 2011-01-14 15:14:35 +00:00
Christophe Dumez
22c785b951 Code clean up 2011-01-13 20:57:10 +00:00
Christophe Dumez
eb0053fe48 Fix possible crashes in full allocation mode 2011-01-13 20:38:38 +00:00
Christophe Dumez
6996ccc2c8 Fix typo in program preferences (Thanks cgreco) 2011-01-12 20:10:10 +00:00
Christophe Dumez
fcef304427 Translate locale names 2011-01-12 17:42:55 +00:00
Christophe Dumez
bf5c1951ba Fix torrent import 2011-01-12 17:12:24 +00:00
Christophe Dumez
e931209860 Fix possible crash on adding magnet links 2011-01-12 16:53:11 +00:00
Christophe Dumez
db4520a13b Updated Russian translation 2011-01-12 16:43:48 +00:00
Christophe Dumez
4305e6b1e0 Updated Croatian translation 2011-01-12 15:50:12 +00:00
Christophe Dumez
b173458814 Updated Armenian settings 2011-01-12 15:47:50 +00:00
Christophe Dumez
833750513b Remove country flags from program preferences 2011-01-11 21:10:11 +00:00
Christophe Dumez
9e63a0babb Updated Ukrainian translation 2011-01-11 21:07:40 +00:00
Christophe Dumez
e48909dea4 Code clea nup 2011-01-11 19:42:34 +00:00
Christophe Dumez
f306d02ac9 Code clean up 2011-01-11 19:05:24 +00:00
Christophe Dumez
f9f3642116 Code clean up 2011-01-11 18:53:28 +00:00
Christophe Dumez
1537c70988 Win32: Added Python 2.7 support (and fix Python 2.5 support) 2011-01-11 17:30:53 +00:00
Christophe Dumez
847a6c75d7 Added Armenian translation 2011-01-11 17:12:39 +00:00
Christophe Dumez
ecffc5e550 Updated Greek and Bulgarian translations 2011-01-11 17:04:48 +00:00
Christophe Dumez
65e9401c5d Fix PeX being wrongly reported as disabled 2011-01-10 21:09:47 +00:00
Christophe Dumez
ae3632e5c1 Fix typo 2011-01-10 21:00:45 +00:00
Christophe Dumez
9ba3862be1 Reduce top toolbar spacing 2011-01-10 17:53:33 +00:00
Christophe Dumez
793c1be9bd trunk is now v2.7.0alpha 2011-01-10 17:40:41 +00:00
Christophe Dumez
1ce6f4a7c3 Fix magnet link name update problem 2011-01-10 17:33:53 +00:00
Christophe Dumez
816cfefbac Move transfer list filter on the right side of the toolbar 2011-01-10 17:11:27 +00:00
Christophe Dumez
0eec718354 Also fix toolbar icon size in Web UI 2011-01-10 16:56:38 +00:00
Christophe Dumez
b80148c7e4 Use 22px size for toolbar icons 2011-01-10 15:52:45 +00:00
Christophe Dumez
3bc946bfb9 Fix some missing icons in the Web UI 2011-01-09 19:38:52 +00:00
Christophe Dumez
a62169001e Remove outdated comment 2011-01-09 17:16:51 +00:00
201 changed files with 34265 additions and 15351 deletions

View File

@@ -2,6 +2,7 @@ Author:
* Christophe Dumez <chris@qbittorrent.org>
Contributors:
* Vladimir Golovnev <glassez@yandex.ru>
* Stefanos Antaris <santaris@csd.auth.gr>
* Mohammad Dib <mdib@qbittorrent.org>
* Mirco Chinelli <infinity89@fastwebmail.it>
@@ -49,6 +50,10 @@ Images Authors:
copyright: Greg Houston <gregory.houston@gmail.com>
license: MIT
* file: src/Icons/skin/qbittorrent_mono.svg
copyright: Daniel Eguren <deguren@gmail.com>
license: LGPL
* file: src/search_engine/engines/btjunkie.png
copyright: Downloaded from btjunkie.org
@@ -68,6 +73,7 @@ Translations authors:
* files: src/lang/*.ts
copyright:
- Arabic: SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)
- Armenian: Hrant Ohanyan (hrantohanyan@mail.am)
- Brazilian: Nick Marinho (nickmarinho@gmail.com)
- Bulgarian: Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)
- Catalan: Francisco Luque Contreras (frannoe@ya.com)
@@ -87,7 +93,8 @@ Translations authors:
- Italian: Matteo Sechi (bu17714@gmail.com)
- Japanese: Nardog (alphisation@gmail.com)
- Korean: Jin Woo Sin (jin828sin@users.sourceforge.net)
- Norwegian: Lars-Erik Labori (hamil@users.sourceforge.net)
- Lithuanian: Naglis Jonaitis (njonaitis@gmail.com)
- Norwegian: Tomaso
- Polish: Mariusz Fik (fisiu@opensuse.org)
- Portuguese: Nick Marinho (nickmarinho@gmail.com)
- Romanian: Obada Denis (obadadenis@users.sourceforge.net)

View File

@@ -1,3 +1,19 @@
* Sun Mar 20 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.7.0
- FEATURE: Added search field for torrent content
- FEATURE: Added auto-shutdown confirmation dialog
- FEATURE: Added option to skip torrent deletion confirmation (Ville Kiiskinen)
- FEATURE: IP address reported to trackers is now customizable
- FEATURE: Inhibit system sleep when torrents are active (Vladimir Golovnev)
- FEATURE: Added option to bypass Web UI authentication for localhost
- FEATURE: Added option to disable program exit confirmation
- FEATURE: Added per-torrent ratio limiting (Christian Kandeler)
- FEATURE: Torrent content list is now sortable
- BUGFIX: Fix compilation with namespaced Qt (Christian Kandeler)
- BUGFIX: Added length restriction on UI lock password
- COSMETIC: Added monochrome tray icon
- COSMETIC: Improved status bar's style
- OTHER: Make QtDBus dependency optional (X11)
* Sun Jan 9 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.6.0
- FEATURE: Use system icons (Linux, Qt >= 4.6)
- FEATURE: Improved ETA calculation

View File

@@ -18,9 +18,9 @@ qBittorrent - A BitTorrent client in C++ / Qt4
-> http://www.libtorrent.net
Be careful: another library (the one used by rTorrent) uses a similar name.
- libboost 1.34.x (libboost-filesystem, libboost-thread, libboost-date-time) + libasio
- libboost 1.34.x (libboost-filesystem, libboost-date-time) + libasio
or
- libboost >= 1.35.x (libboost-system, libboost-filesystem, libboost-thread, libboost-date-time)
- libboost >= 1.35.x (libboost-system, libboost-filesystem, libboost-date-time)
- python >= 2.3 (needed by search engine)
* Run time only dependency

100
configure vendored
View File

@@ -22,6 +22,8 @@ Dependency options:
--disable-gui Disable qBittorrent
Graphical user interface for
headless running
--disable-qt-dbus Disable use of qt-dbus
--disable-qt-svg Disable use of qt-svg
--with-libboost-inc=[path] Path to libboost include
files
--with-libboost-lib=[path] Path to libboost library
@@ -162,6 +164,16 @@ while [ $# -gt 0 ]; do
shift
;;
--disable-qt-dbus)
QC_DISABLE_qt_dbus="Y"
shift
;;
--disable-qt-svg)
QC_DISABLE_qt_svg="Y"
shift
;;
--with-libboost-inc=*)
QC_WITH_LIBBOOST_INC=$optarg
shift
@@ -215,6 +227,8 @@ echo DATADIR=$DATADIR
echo EX_QTDIR=$EX_QTDIR
echo QC_ENABLE_DEBUG=$QC_ENABLE_DEBUG
echo QC_DISABLE_GUI=$QC_DISABLE_GUI
echo QC_DISABLE_qt_dbus=$QC_DISABLE_qt_dbus
echo QC_DISABLE_qt_svg=$QC_DISABLE_qt_svg
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
@@ -346,9 +360,79 @@ public:
if(!conf->getenv("QC_ENABLE_DEBUG").isEmpty()) {
conf->addExtra("CONFIG += debug");
}
#ifdef Q_OS_FREEBSD
conf->addLib("-lexecinfo");
conf->addExtra("MANPREFIX = \$\$PREFIX");
#else
conf->addExtra("MANPREFIX = \$\$PREFIX/share");
#endif
return(QT_VERSION >= 0x040500);
}
};
#line 1 "qt-dbus.qcm"
/*
-----BEGIN QCMOD-----
name: qt-dbus
-----END QCMOD-----
*/
// see Conf::findPkgConfig
class qc_qt_dbus : public ConfObj
{
public:
qc_qt_dbus(Conf *c) : ConfObj(c) {}
QString name() const { return "QtDBus >= 4.5"; }
QString shortname() const { return "qt-dbus"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_qt_dbus").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec(){
if(!conf->getenv("QC_DISABLE_qt_dbus").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return false;
QStringList incs;
QString req_ver = "4.5.0";
QString version, libs, other;
VersionMode mode = VersionMin;
if(conf->findPkgConfig("QtDBus", mode, req_ver, &version, &incs, &libs, &other)) {
conf->addExtra("CONFIG += dbus");
return true;
}
return false;
}
};
#line 1 "qt-svg.qcm"
/*
-----BEGIN QCMOD-----
name: qt-svg
-----END QCMOD-----
*/
// see Conf::findPkgConfig
class qc_qt_svg : public ConfObj
{
public:
qc_qt_svg(Conf *c) : ConfObj(c) {}
QString name() const { return "QtSvg >= 4.5"; }
QString shortname() const { return "qt-svg"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_qt_svg").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec(){
if(!conf->getenv("QC_DISABLE_qt_svg").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return false;
QStringList incs;
QString req_ver = "4.5.0";
QString version, libs, other;
VersionMode mode = VersionMin;
if(conf->findPkgConfig("QtSvg", mode, req_ver, &version, &incs, &libs, &other)) {
conf->addExtra("CONFIG += svg");
return true;
}
return false;
}
};
#line 1 "pkg-config.qcm"
/*
-----BEGIN QCMOD-----
@@ -445,9 +529,6 @@ public:
if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
return false;
}
if(!conf->checkHeader(s, "boost/thread.hpp")) {
return false;
}
}else{
QStringList sl;
sl << "/usr/include";
@@ -468,9 +549,6 @@ public:
if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
return false;
}
if(!conf->checkHeader(s, "boost/thread.hpp")) {
return false;
}
}
conf->addIncludePath(s);
// Find library
@@ -481,7 +559,7 @@ public:
#endif
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
// Not required by nox
required_libs << "filesystem" << "thread";
required_libs << "filesystem" ;
}
QStringList libDirs;
libDirs << "/usr/lib/" << "/usr/lib64/" << "/usr/local/lib/" << "/usr/local/lib64/";
@@ -645,6 +723,12 @@ cat >$1/modules_new.cpp <<EOT
o = new qc_qt4(conf);
o->required = true;
o->disabled = false;
o = new qc_qt_dbus(conf);
o->required = false;
o->disabled = false;
o = new qc_qt_svg(conf);
o->required = false;
o->disabled = false;
o = new qc_pkg_config(conf);
o->required = true;
o->disabled = false;
@@ -1610,6 +1694,8 @@ export DATADIR
export EX_QTDIR
export QC_ENABLE_DEBUG
export QC_DISABLE_GUI
export QC_DISABLE_qt_dbus
export QC_DISABLE_qt_svg
export QC_WITH_LIBBOOST_INC
export QC_WITH_LIBBOOST_LIB
export QC_DISABLE_libnotify

View File

@@ -1,5 +1,3 @@
INCLUDEPATH += $$PWD
exists(conf.pri) {
# to the conf.pri goes all system dependent stuff
include(conf.pri)

View File

@@ -6,6 +6,10 @@
<dep type='qt4'>
<required/>
</dep>
<dep type='qt-dbus'>
</dep>
<dep type='qt-svg'>
</dep>
<dep type='pkg-config'>
<required/>
</dep>

View File

@@ -48,9 +48,6 @@ public:
if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
return false;
}
if(!conf->checkHeader(s, "boost/thread.hpp")) {
return false;
}
}else{
QStringList sl;
sl << "/usr/include";
@@ -71,9 +68,6 @@ public:
if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
return false;
}
if(!conf->checkHeader(s, "boost/thread.hpp")) {
return false;
}
}
conf->addIncludePath(s);
// Find library
@@ -84,7 +78,7 @@ public:
#endif
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
// Not required by nox
required_libs << "filesystem" << "thread";
required_libs << "filesystem" ;
}
QStringList libDirs;
libDirs << "/usr/lib/" << "/usr/lib64/" << "/usr/local/lib/" << "/usr/local/lib64/";

31
qcm/qt-dbus.qcm Normal file
View File

@@ -0,0 +1,31 @@
/*
-----BEGIN QCMOD-----
name: qt-dbus
-----END QCMOD-----
*/
// see Conf::findPkgConfig
class qc_qt_dbus : public ConfObj
{
public:
qc_qt_dbus(Conf *c) : ConfObj(c) {}
QString name() const { return "QtDBus >= 4.5"; }
QString shortname() const { return "qt-dbus"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_qt_dbus").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec(){
if(!conf->getenv("QC_DISABLE_qt_dbus").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return false;
QStringList incs;
QString req_ver = "4.5.0";
QString version, libs, other;
VersionMode mode = VersionMin;
if(conf->findPkgConfig("QtDBus", mode, req_ver, &version, &incs, &libs, &other)) {
conf->addExtra("CONFIG += dbus");
return true;
}
return false;
}
};

31
qcm/qt-svg.qcm Normal file
View File

@@ -0,0 +1,31 @@
/*
-----BEGIN QCMOD-----
name: qt-svg
-----END QCMOD-----
*/
// see Conf::findPkgConfig
class qc_qt_svg : public ConfObj
{
public:
qc_qt_svg(Conf *c) : ConfObj(c) {}
QString name() const { return "QtSvg >= 4.5"; }
QString shortname() const { return "qt-svg"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_qt_svg").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec(){
if(!conf->getenv("QC_DISABLE_qt_svg").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return false;
QStringList incs;
QString req_ver = "4.5.0";
QString version, libs, other;
VersionMode mode = VersionMin;
if(conf->findPkgConfig("QtSvg", mode, req_ver, &version, &incs, &libs, &other)) {
conf->addExtra("CONFIG += svg");
return true;
}
return false;
}
};

View File

@@ -21,6 +21,12 @@ public:
if(!conf->getenv("QC_ENABLE_DEBUG").isEmpty()) {
conf->addExtra("CONFIG += debug");
}
#ifdef Q_OS_FREEBSD
conf->addLib("-lexecinfo");
conf->addExtra("MANPREFIX = $$PREFIX");
#else
conf->addExtra("MANPREFIX = $$PREFIX/share");
#endif
return(QT_VERSION >= 0x040500);
}
};

Binary file not shown.

Before

Width:  |  Height:  |  Size: 722 B

View File

@@ -1,36 +1,39 @@
[Desktop Entry]
Categories=Qt;Network;P2P;
Comment=V2.6.0
Exec=qbittorrent %f
GenericName=Bittorrent client
GenericName[ar]=العميل Bittorrent
Categories=Network;FileTransfer;P2P;Qt;
Exec=qbittorrent %U
GenericName=BitTorrent client
GenericName[ar]=العميل BitTorrent
GenericName[bg]=Торент клиент
GenericName[cs]=Bittorrent klient
GenericName[de]=Bittorren Client
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 クライアント
GenericName[cs]=BitTorrent klient
GenericName[de]=BitTorren Client
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 クライアント
GenericName[ko]=비토렌트 클라이언트
GenericName[nl]=Bittorrent-cliënt
GenericName[pl]=Klient Bittorrent
GenericName[pt]=Cliente Bittorrent
GenericName[pt_BR]=Cliente Bittorrent
GenericName[ro]=Client Bittorrent
GenericName[ru]=клиент Bittorrent
GenericName[sk]=Klient siete Bittorrent
GenericName[sr]=Bittorrent-клијент
GenericName[sv]=Bittorrent-klient
GenericName[tr]=Bittorrent istemcisi
GenericName[uk]=Bittorrent-клієнт
GenericName[zh]=Bittorrent之用户
GenericName[zh_TW]=Bittorrent客戶端
GenericName[lt]=BitTorrent klientas
GenericName[nl]=BitTorrent-cliënt
GenericName[pl]=Klient BitTorrent
GenericName[pt]=Cliente BitTorrent
GenericName[pt_BR]=Cliente BitTorrent
GenericName[ro]=Client BitTorrent
GenericName[ru]=клиент BitTorrent
GenericName[sk]=Klient siete BitTorrent
GenericName[sr]=BitTorrent-клијент
GenericName[sv]=BitTorrent-klient
GenericName[tr]=BitTorrent istemcisi
GenericName[uk]=BitTorrent-клієнт
GenericName[zh]=BitTorrent之用户
GenericName[zh_TW]=BitTorrent客戶端
Comment=Download and share files over BitTorrent
Comment[fr]=Télécharger et partager des fichiers avec BitTorrent
Comment[pl]=Dzielenie się plikami przez BitTorrent
Icon=qbittorrent
MimeType=application/x-bittorrent;
MimeType=application/x-bittorrent;x-scheme-handler/magnet;
Name=qBittorrent
Name[ko]=큐비토런트
Terminal=false

File diff suppressed because one or more lines are too long

After

Width:  |  Height:  |  Size: 4.8 KiB

BIN
src/Icons/skin/ratio.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 483 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 787 B

View File

@@ -47,7 +47,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
<string>2.6.0</string>
<string>2.7.0</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>

View File

@@ -60,6 +60,7 @@ class about : public QDialog, private Ui::AboutDlg{
// Translation
QString trans_txt = "<p>"+tr("I would like to thank the following people who volunteered to translate qBittorrent:")+"</p>";
trans_txt += QString::fromUtf8("<ul><li><u>Arabic:</u> SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)</li>\
<li><u>Armenian:</u> Hrant Ohanyan (hrantohanyan@mail.am)</li>\
<li><u>Brazilian:</u> Nick Marinho (nickmarinho@gmail.com)</li>\
<li><u>Bulgarian:</u> Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)</li>\
<li><u>Catalan:</u> Francisco Luque Contreras (frannoe@ya.com)</li>\
@@ -77,7 +78,8 @@ class about : public QDialog, private Ui::AboutDlg{
<li><u>Italian:</u> Matteo Sechi (bu17714@gmail.com)</li>\
<li><u>Japanese:</u> Nardog (alphisation@gmail.com)</li>\
<li><u>Korean:</u> Jin Woo Sin (jin828sin@users.sourceforge.net)</li>\
<li><u>Norwegian:</u> Lars-Erik Labori (hamil@users.sourceforge.net)</li>\
<li><u>Lithuanian:</u> Naglis Jonaitis (njonaitis@gmail.com)</li>\
<li><u>Norwegian:</u> Tomaso</li>\
<li><u>Polish:</u> Mariusz Fik (fisiu@opensuse.org)</li>\
<li><u>Portuguese:</u> Nick Marinho (nickmarinho@gmail.com)</li>\
<li><u>Romanian:</u> Obada Denis (obadadenis@users.sourceforge.net)</li>\

View File

@@ -38,71 +38,75 @@
#include "downloadthread.h"
#include "preferences.h"
#ifndef DISABLE_GUI
#include "rsssettings.h"
#include "rsssettings.h"
#endif
#include "qinisettings.h"
/** Download Thread **/
downloadThread::downloadThread(QObject* parent) : QObject(parent) {
DownloadThread::DownloadThread(QObject* parent) : QObject(parent) {
connect(&m_networkManager, SIGNAL(finished (QNetworkReply*)), this, SLOT(processDlFinished(QNetworkReply*)));
#ifndef QT_NO_OPENSSL
connect(&m_networkManager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(ignoreSslErrors(QNetworkReply*,QList<QSslError>)));
#endif
}
void downloadThread::processDlFinished(QNetworkReply* reply) {
void DownloadThread::processDlFinished(QNetworkReply* reply) {
QString url = reply->url().toString();
qDebug("Download finished: %s", qPrintable(url));
// Check if the request was successful
if(reply->error() != QNetworkReply::NoError) {
// Failure
qDebug("Download failure (%s), reason: %s", qPrintable(url), qPrintable(errorCodeToString(reply->error())));
emit downloadFailure(url, errorCodeToString(reply->error()));
} else {
QVariant redirection = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
if(redirection.isValid()) {
// We should redirect
qDebug("Redirecting from %s to %s", qPrintable(url), qPrintable(redirection.toUrl().toString()));
m_redirectMapping.insert(redirection.toUrl().toString(), url);
downloadUrl(redirection.toUrl().toString());
return;
}
// Checking if it was redirecting, restoring initial URL
if(m_redirectMapping.contains(url)) {
url = m_redirectMapping.take(url);
}
// Success
QString filePath;
QTemporaryFile *tmpfile = new QTemporaryFile;
tmpfile->setAutoRemove(false);
if (tmpfile->open()) {
filePath = tmpfile->fileName();
qDebug("Temporary filename is: %s", qPrintable(filePath));
if(reply->open(QIODevice::ReadOnly)) {
// TODO: Support GZIP compression
tmpfile->write(reply->readAll());
reply->close();
tmpfile->close();
delete tmpfile;
// Send finished signal
emit downloadFinished(url, filePath);
} else {
// Error when reading the request
tmpfile->close();
delete tmpfile;
emit downloadFailure(url, tr("I/O Error"));
}
reply->deleteLater();
return;
}
// Check if the server ask us to redirect somewhere lese
const QVariant redirection = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
if(redirection.isValid()) {
// We should redirect
qDebug("Redirecting from %s to %s", qPrintable(url), qPrintable(redirection.toUrl().toString()));
m_redirectMapping.insert(redirection.toUrl().toString(), url);
downloadUrl(redirection.toUrl().toString());
reply->deleteLater();
return;
}
// Checking if it was redirected, restoring initial URL
if(m_redirectMapping.contains(url)) {
url = m_redirectMapping.take(url);
}
// Success
QTemporaryFile *tmpfile = new QTemporaryFile;
tmpfile->setAutoRemove(false);
if (tmpfile->open()) {
QString filePath = tmpfile->fileName();
qDebug("Temporary filename is: %s", qPrintable(filePath));
if(reply->isOpen() || reply->open(QIODevice::ReadOnly)) {
// TODO: Support GZIP compression
tmpfile->write(reply->readAll());
tmpfile->close();
// XXX: For some reason, tmpfile has to be destroyed before
// the signal is sent or the file stays locked on Windows
// for some reason.
delete tmpfile;
// Send finished signal
emit downloadFinished(url, filePath);
} else {
delete tmpfile;
// Error when reading the request
emit downloadFailure(url, tr("I/O Error"));
}
} else {
delete tmpfile;
emit downloadFailure(url, tr("I/O Error"));
}
// Clean up
reply->deleteLater();
}
#ifndef DISABLE_GUI
void downloadThread::loadCookies(const QString &host_name, QString url) {
void DownloadThread::loadCookies(const QString &host_name, QString url) {
const QList<QByteArray> raw_cookies = RssSettings().getHostNameCookies(host_name);
QNetworkCookieJar *cookie_jar = m_networkManager.cookieJar();
QList<QNetworkCookie> cookies;
@@ -119,30 +123,24 @@ void downloadThread::loadCookies(const QString &host_name, QString url) {
}
#endif
void downloadThread::downloadTorrentUrl(QString url) {
#ifndef DISABLE_GUI
// Load cookies
QString host_name = QUrl::fromEncoded(url.toLocal8Bit()).host();
if(!host_name.isEmpty())
loadCookies(host_name, url);
#endif
void DownloadThread::downloadTorrentUrl(const QString &url) {
// Process request
QNetworkReply *reply = downloadUrl(url);
connect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(checkDownloadSize(qint64,qint64)));
}
QNetworkReply* downloadThread::downloadUrl(QString url){
QNetworkReply* DownloadThread::downloadUrl(const QString &url){
// Update proxy settings
applyProxySettings();
#ifndef DISABLE_GUI
// Load cookies
QString host_name = QUrl::fromEncoded(url.toLocal8Bit()).host();
QString host_name = QUrl::fromEncoded(url.toUtf8()).host();
if(!host_name.isEmpty())
loadCookies(host_name, url);
#endif
// Process download request
qDebug("url is %s", qPrintable(url));
const QUrl qurl = QUrl::fromEncoded(url.toLocal8Bit());
const QUrl qurl = QUrl::fromEncoded(url.toUtf8());
QNetworkRequest request(qurl);
// Spoof Firefox 3.5 user agent to avoid
// Web server banning
@@ -156,26 +154,28 @@ QNetworkReply* downloadThread::downloadUrl(QString url){
return m_networkManager.get(request);
}
void downloadThread::checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal) {
void DownloadThread::checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal) {
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
if(!reply) return;
if(bytesTotal > 0) {
QNetworkReply *reply = static_cast<QNetworkReply*>(sender());
// Total number of bytes is available
if(bytesTotal > 1048576) {
// More than 1MB, this is probably not a torrent file, aborting...
reply->abort();
reply->deleteLater();
} else {
disconnect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(checkDownloadSize(qint64,qint64)));
}
} else {
if(bytesReceived > 1048576) {
// More than 1MB, this is probably not a torrent file, aborting...
QNetworkReply *reply = static_cast<QNetworkReply*>(sender());
reply->abort();
reply->deleteLater();
}
}
}
void downloadThread::applyProxySettings() {
void DownloadThread::applyProxySettings() {
QNetworkProxy proxy;
const Preferences pref;
if(pref.isProxyEnabled()) {
@@ -203,7 +203,7 @@ void downloadThread::applyProxySettings() {
m_networkManager.setProxy(proxy);
}
QString downloadThread::errorCodeToString(QNetworkReply::NetworkError status) {
QString DownloadThread::errorCodeToString(QNetworkReply::NetworkError status) {
switch(status){
case QNetworkReply::HostNotFoundError:
return tr("The remote host name was not found (invalid hostname)");
@@ -253,7 +253,7 @@ QString downloadThread::errorCodeToString(QNetworkReply::NetworkError status) {
}
#ifndef QT_NO_OPENSSL
void downloadThread::ignoreSslErrors(QNetworkReply* reply,QList<QSslError> errors) {
void DownloadThread::ignoreSslErrors(QNetworkReply* reply, const QList<QSslError> &errors) {
Q_UNUSED(errors)
// Ignore all SSL errors
reply->ignoreSslErrors();

View File

@@ -36,26 +36,28 @@
#include <QHash>
#include <QSslError>
QT_BEGIN_NAMESPACE
class QNetworkAccessManager;
QT_END_NAMESPACE
class downloadThread : public QObject {
class DownloadThread : public QObject {
Q_OBJECT
public:
downloadThread(QObject* parent = 0);
QNetworkReply* downloadUrl(QString url);
void downloadTorrentUrl(QString url);
DownloadThread(QObject* parent = 0);
QNetworkReply* downloadUrl(const QString &url);
void downloadTorrentUrl(const QString &url);
//void setProxy(QString IP, int port, QString username, QString password);
signals:
void downloadFinished(QString url, QString file_path);
void downloadFailure(QString url, QString reason);
void downloadFinished(const QString &url, const QString &file_path);
void downloadFailure(const QString &url, const QString &reason);
private slots:
void processDlFinished(QNetworkReply* reply);
void checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal);
#ifndef QT_NO_OPENSSL
void ignoreSslErrors(QNetworkReply*,QList<QSslError>);
void ignoreSslErrors(QNetworkReply*,const QList<QSslError>&);
#endif
private:

View File

@@ -3,9 +3,11 @@
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui {
class ExecutionLog;
}
QT_END_NAMESPACE
class ExecutionLog : public QWidget
{

View File

@@ -12,7 +12,7 @@
#include <QSet>
#include <iostream>
#include <errno.h>
#ifdef Q_WS_MAC
#if defined(Q_WS_MAC) || defined(Q_OS_FREEBSD)
#include <sys/param.h>
#include <sys/mount.h>
#include <string.h>

View File

@@ -58,8 +58,11 @@ void IconProvider::drop()
QIcon IconProvider::getIcon(const QString &iconId)
{
#if defined(Q_WS_X11) && (QT_VERSION >= QT_VERSION_CHECK(4,6,0))
if(m_useSystemTheme)
return QIcon::fromTheme(iconId, QIcon(":/Icons/oxygen/"+iconId+".png"));
if(m_useSystemTheme) {
QIcon icon = QIcon::fromTheme(iconId, QIcon(":/Icons/oxygen/"+iconId+".png"));
icon = generateDifferentSizes(icon);
return icon;
}
#endif
return QIcon(":/Icons/oxygen/"+iconId+".png");
}
@@ -69,6 +72,32 @@ void IconProvider::useSystemIconTheme(bool enable)
{
m_useSystemTheme = enable;
}
// Makes sure the icon is at least available in 16px and 24px size
// It scales the icon from the theme if necessary
// Otherwise, the UI looks broken if the icon is not available
// in the correct size.
QIcon IconProvider::generateDifferentSizes(const QIcon &icon)
{
QIcon new_icon;
QList<QSize> required_sizes;
required_sizes << QSize(16, 16) << QSize(24, 24);
QList<QIcon::Mode> modes;
modes << QIcon::Normal << QIcon::Active << QIcon::Selected << QIcon::Disabled;
foreach(const QSize& size, required_sizes) {
foreach(QIcon::Mode mode, modes) {
QPixmap pixoff = icon.pixmap(size, mode, QIcon::Off);
if(pixoff.height() > size.height())
pixoff = pixoff.scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation);
new_icon.addPixmap(pixoff, mode, QIcon::Off);
QPixmap pixon = icon.pixmap(size, mode, QIcon::On);
if(pixon.height() > size.height())
pixon = pixoff.scaled(size, Qt::KeepAspectRatio, Qt::SmoothTransformation);
new_icon.addPixmap(pixon, mode, QIcon::On);
}
}
return new_icon;
}
#endif
QString IconProvider::getIconPath(const QString &iconId)

View File

@@ -52,6 +52,9 @@ public:
public:
void useSystemIconTheme(bool enable);
private:
QIcon generateDifferentSizes(const QIcon& icon);
private:
bool m_useSystemTheme;
#endif

View File

@@ -3,9 +3,7 @@
<file>Icons/url.png</file>
<file>Icons/loading.png</file>
<file>Icons/3-state-checkbox.gif</file>
<file>Icons/uparrow.png</file>
<file>Icons/sphere.png</file>
<file>Icons/downarrow.png</file>
<file>Icons/slow_off.png</file>
<file>Icons/sphere2.png</file>
<file>Icons/magnet.png</file>
@@ -36,10 +34,12 @@
<file>Icons/skin/firewalled.png</file>
<file>Icons/skin/downloading.png</file>
<file>Icons/skin/toolbox-divider.gif</file>
<file>Icons/skin/qbittorrent_mono.svg</file>
<file>Icons/skin/stalledUP.png</file>
<file>Icons/skin/filteractive.png</file>
<file>Icons/skin/bg-handle-horizontal.gif</file>
<file>Icons/skin/download.png</file>
<file>Icons/skin/ratio.png</file>
<file>Icons/flags/sm.png</file>
<file>Icons/flags/lt.png</file>
<file>Icons/flags/th.png</file>

View File

@@ -15,6 +15,7 @@
<file>lang/qbittorrent_fr.qm</file>
<file>lang/qbittorrent_uk.qm</file>
<file>lang/qbittorrent_zh.qm</file>
<file>lang/qbittorrent_lt.qm</file>
<file>lang/qbittorrent_ko.qm</file>
<file>lang/qbittorrent_nb.qm</file>
<file>lang/qbittorrent_sv.qm</file>
@@ -24,6 +25,7 @@
<file>lang/qbittorrent_pt_BR.qm</file>
<file>lang/qbittorrent_da.qm</file>
<file>lang/qbittorrent_cs.qm</file>
<file>lang/qbittorrent_hy.qm</file>
<file>lang/qbittorrent_pl.qm</file>
<file>lang/qbittorrent_bg.qm</file>
<file>lang/qbittorrent_ar.qm</file>

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

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