Compare commits
	
		
			533 Commits
		
	
	
		
			release-1.
			...
			release-1.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | cca122e9ce | ||
|   | 0984b8b8e1 | ||
|   | 3dd7dcc58f | ||
|   | 6ba5df3ec8 | ||
|   | 1560b4ca3b | ||
|   | 68d8a9ed47 | ||
|   | ca00f3084d | ||
|   | 39c16b20ae | ||
|   | 666d4622b9 | ||
|   | 27388643b1 | ||
|   | 90d17d16a4 | ||
|   | df0f01cd71 | ||
|   | 480d00d747 | ||
|   | a0923741a4 | ||
|   | 8e2efc2950 | ||
|   | 91dee6058e | ||
|   | f5c1343722 | ||
|   | d4d0a08390 | ||
|   | d02aca7323 | ||
|   | fd81567ecd | ||
|   | 8e5f5b5d65 | ||
|   | 215d561b82 | ||
|   | dc18780a97 | ||
|   | 06fb19e8be | ||
|   | 3550e31871 | ||
|   | 46c6c4fc9a | ||
|   | e126de8ff5 | ||
|   | f2d2e70967 | ||
|   | 48b14d1066 | ||
|   | 725700420c | ||
|   | 480df1f5dc | ||
|   | 2fa43dd973 | ||
|   | b9f1586068 | ||
|   | 07dbe388f4 | ||
|   | b2af40c95b | ||
|   | 05569a5011 | ||
|   | 73dbce45b2 | ||
|   | fdaeafc701 | ||
|   | 9ca4e2f1f6 | ||
|   | 2b53aa7e81 | ||
|   | 8e79e918c5 | ||
|   | 687842a949 | ||
|   | 645ee86860 | ||
|   | f50762dfa8 | ||
|   | 7e252d3fbd | ||
|   | 2dc9f10bf4 | ||
|   | bca03706a0 | ||
|   | e7663e7b6b | ||
|   | 2b0e05b453 | ||
|   | 4d67170d3e | ||
|   | 538c028f8a | ||
|   | 2cbbd6ef50 | ||
|   | 955d8069e2 | ||
|   | 25d998f1b5 | ||
|   | 462f6c41cd | ||
|   | 298f1e6a9a | ||
|   | 2926745102 | ||
|   | c6003c7403 | ||
|   | 66e5a6672a | ||
|   | c35500dd29 | ||
|   | f80bd42361 | ||
|   | 0b9c05d41b | ||
|   | 2477dc1fc0 | ||
|   | 706362333d | ||
|   | 6fcf25af52 | ||
|   | c8e8306e0a | ||
|   | e429126934 | ||
|   | 7e71de558a | ||
|   | 09d8a4797d | ||
|   | 1bcb8b1ed8 | ||
|   | d132d50f4d | ||
|   | e619b6977a | ||
|   | 2742a54d6e | ||
|   | 360a327d7d | ||
|   | b659303419 | ||
|   | 43108712be | ||
|   | a038616fe5 | ||
|   | 81e5c295b6 | ||
|   | 08d079a563 | ||
|   | 454c8dc2bc | ||
|   | 337fc72ee6 | ||
|   | b1e9c1ccf5 | ||
|   | 64806cb199 | ||
|   | 8e8e7cd3e7 | ||
|   | 27a18e01e2 | ||
|   | fc9e7d74a3 | ||
|   | 037a1875f9 | ||
|   | 66baa4d3dc | ||
|   | 9e522a8a6c | ||
|   | cfa4edd140 | ||
|   | 9e9134cd44 | ||
|   | 83a798b07e | ||
|   | baee85684c | ||
|   | 88afb0f0e7 | ||
|   | 6f212f18f5 | ||
|   | f04e600340 | ||
|   | 5140886567 | ||
|   | 0aa59694fd | ||
|   | 66d31b5ca1 | ||
|   | 47135932a4 | ||
|   | 40d0e44f15 | ||
|   | 16c30a2f10 | ||
|   | 7f2639fcbd | ||
|   | 8ad987a672 | ||
|   | b24194068a | ||
|   | f4e9b00ce3 | ||
|   | 5c0a24d58b | ||
|   | c4aa23c86b | ||
|   | 96911a2c48 | ||
|   | 85abb80f43 | ||
|   | 2372f434cf | ||
|   | ee6bc3c2e9 | ||
|   | b6c6637c3b | ||
|   | d358987316 | ||
|   | 6f28711f9e | ||
|   | 7b4b568859 | ||
|   | c3aa2906bb | ||
|   | 9509bbaed4 | ||
|   | b7c7245fb5 | ||
|   | 0153b03160 | ||
|   | ca83fdecff | ||
|   | bca898d8b6 | ||
|   | c877c9c412 | ||
|   | 4dfd1f229b | ||
|   | 0d63f46035 | ||
|   | 106f7cdd32 | ||
|   | 0308825c11 | ||
|   | 8c21ef5c04 | ||
|   | 53c2fe4a60 | ||
|   | 64fef21a86 | ||
|   | f6f4b5f219 | ||
|   | f809b8a014 | ||
|   | cf8dbf22f8 | ||
|   | 00d9f7c36b | ||
|   | 9a314db530 | ||
|   | 7db2ffc09f | ||
|   | 9a02c12ec9 | ||
|   | 2a77de686c | ||
|   | a79b294885 | ||
|   | 13c670b96d | ||
|   | 65c4da6f0e | ||
|   | bf9dc052d3 | ||
|   | 0ea6ee32be | ||
|   | 019bd476db | ||
|   | baf5cb31af | ||
|   | fc3c123f5b | ||
|   | 7dfdebd593 | ||
|   | 9835af4962 | ||
|   | 04cbd91f04 | ||
|   | 66db20cb47 | ||
|   | 2e0707bc0c | ||
|   | e9c12cbf78 | ||
|   | 031de096f5 | ||
|   | b85ed8ff38 | ||
|   | 00c5127ba1 | ||
|   | 714bf4f2ab | ||
|   | c2244f746e | ||
|   | 8214d87ce5 | ||
|   | e8454596ea | ||
|   | 1cc039c147 | ||
|   | fe455970f1 | ||
|   | 36871a34ad | ||
|   | 4ea6ca75ca | ||
|   | 9e46c6c047 | ||
|   | a2e9210665 | ||
|   | aaf79add0b | ||
|   | 55743021e8 | ||
|   | a8d627e1df | ||
|   | eead11427f | ||
|   | bec1388ba5 | ||
|   | 1542ff98bc | ||
|   | 0e9fd2dc3f | ||
|   | cd618150b0 | ||
|   | a2bcfa9192 | ||
|   | 1421f1450c | ||
|   | 288300d264 | ||
|   | 5e41a64c8b | ||
|   | f4502367f3 | ||
|   | 273526b414 | ||
|   | 5b7b4b2cf3 | ||
|   | ee99df0ba9 | ||
|   | aec32db565 | ||
|   | 3894452840 | ||
|   | 54bfb7cda9 | ||
|   | aa18f19ab7 | ||
|   | 3ae783e9cb | ||
|   | 83cac18690 | ||
|   | 3b09203937 | ||
|   | a12621e1c0 | ||
|   | 60c3ccac7f | ||
|   | 1fbf7d42a1 | ||
|   | 4b73172105 | ||
|   | ada5d2665b | ||
|   | f1ca41a5c5 | ||
|   | 17e0700a52 | ||
|   | cc77b2f578 | ||
|   | 85463e3910 | ||
|   | 7bd0dff802 | ||
|   | 4bc043146d | ||
|   | fd78e0b5ce | ||
|   | 8565f1e61e | ||
|   | 4c6d6a35f3 | ||
|   | fc79b7dc56 | ||
|   | da11488ba1 | ||
|   | 968c3e1c3e | ||
|   | 68e30de763 | ||
|   | 573f00c66c | ||
|   | ae81dbe088 | ||
|   | 2edbe66d91 | ||
|   | f9f912906e | ||
|   | 7b4eee7a7d | ||
|   | e799ac57ed | ||
|   | 30c93b9a4a | ||
|   | 03dc617874 | ||
|   | bc29577a7b | ||
|   | 5509e94778 | ||
|   | 89330e11de | ||
|   | c016c4bf66 | ||
|   | 3f1081b621 | ||
|   | e3ae03c8a8 | ||
|   | fbe292d06e | ||
|   | 1d294e43f1 | ||
|   | d883ef27be | ||
|   | be934837e5 | ||
|   | 956f97f6d6 | ||
|   | de38ca3e23 | ||
|   | 1efaea46e3 | ||
|   | 2694a0947f | ||
|   | f61d9d23f5 | ||
|   | 60dda258b3 | ||
|   | c79a4a746f | ||
|   | 942b579d8e | ||
|   | 93bc6dca95 | ||
|   | f36052351c | ||
|   | d40c646561 | ||
|   | 9412ced722 | ||
|   | 7037b53ff8 | ||
|   | adc72fb9a6 | ||
|   | f0ca99ed6c | ||
|   | e443aa75b7 | ||
|   | 282d0a4af6 | ||
|   | 25adf6b061 | ||
|   | 88f0ffe86d | ||
|   | c786c42bb1 | ||
|   | 36bc2e96ba | ||
|   | f9bf485ed7 | ||
|   | c18103539c | ||
|   | 727f59f73f | ||
|   | 5d2d1dfa94 | ||
|   | cf694d14f3 | ||
|   | ec24fe2f49 | ||
|   | a0b4e54410 | ||
|   | c97bce4d61 | ||
|   | afbfe1a96d | ||
|   | 2651ec5f0b | ||
|   | 330905da5e | ||
|   | 4c6359276c | ||
|   | ff1fc527e0 | ||
|   | d79cb6b66e | ||
|   | 0ac2554060 | ||
|   | 1d31e049a4 | ||
|   | d5a4794610 | ||
|   | 29886acc01 | ||
|   | f1ed7f06b9 | ||
|   | a848538d66 | ||
|   | b58046b1fc | ||
|   | fe95e90e05 | ||
|   | 1544300616 | ||
|   | 028041f874 | ||
|   | 81f2d7ee4a | ||
|   | 66874fbd2f | ||
|   | f47b3be0be | ||
|   | 87eee7029d | ||
|   | 713c80451e | ||
|   | 60889cac79 | ||
|   | d398679c7e | ||
|   | 2e5330e54b | ||
|   | 1499138b9b | ||
|   | 2433a87445 | ||
|   | d0de11909f | ||
|   | 3f5340523f | ||
|   | cc5015773b | ||
|   | cd260198f9 | ||
|   | 71e3061c18 | ||
|   | 6369401150 | ||
|   | fa05441e74 | ||
|   | 81aac9ebcc | ||
|   | 7a1af536b6 | ||
|   | 45efcfce13 | ||
|   | cddc3a0a43 | ||
|   | c38a8a2bec | ||
|   | 1225d16413 | ||
|   | 384f3b23ee | ||
|   | a3cfa6bba1 | ||
|   | 51638eddcc | ||
|   | 41c6a847b9 | ||
|   | d57062a45a | ||
|   | 32f478a8c2 | ||
|   | 61dae1444b | ||
|   | 8ed40cc856 | ||
|   | 941b8c8d2a | ||
|   | 4f2a2dfab9 | ||
|   | 4a6ab376af | ||
|   | 1e37858cc4 | ||
|   | 668268b6b5 | ||
|   | cfcd9b7eaf | ||
|   | 6a3dddd0cc | ||
|   | dfb2046f82 | ||
|   | 3ae55b6a6f | ||
|   | 7e53d23e33 | ||
|   | ce2294ee96 | ||
|   | 14646d0f9e | ||
|   | 717a4b00e1 | ||
|   | fca3b66a25 | ||
|   | 1a861ef240 | ||
|   | 1590d9a98f | ||
|   | 112bcd7255 | ||
|   | af29228cc9 | ||
|   | b8c79e0b5f | ||
|   | 0d078f660a | ||
|   | e7f89f256a | ||
|   | cb693a0795 | ||
|   | 7b57345c4f | ||
|   | 90879386d5 | ||
|   | 3678aa4d23 | ||
|   | e497789ec7 | ||
|   | 2134d404a5 | ||
|   | e0707f6907 | ||
|   | 816f35cbab | ||
|   | a73d3132df | ||
|   | 368c122dce | ||
|   | c41d17043c | ||
|   | 3c17a1410b | ||
|   | 078110851d | ||
|   | 70725bdfe2 | ||
|   | 3c0a610a34 | ||
|   | d5b74eecd0 | ||
|   | 1faf183c73 | ||
|   | a1773a7cfd | ||
|   | 1af3515b00 | ||
|   | 70e2a5d3b3 | ||
|   | 78409570a9 | ||
|   | 5133931302 | ||
|   | 8326cebf5c | ||
|   | ab46f11af2 | ||
|   | 91acb1a6ec | ||
|   | c721fad54b | ||
|   | 2aea2a0032 | ||
|   | 3164337c3c | ||
|   | b984c309ff | ||
|   | cfbd06225b | ||
|   | b0a0abd764 | ||
|   | 9618056b4e | ||
|   | 8b40e43432 | ||
|   | 01bc15d3f4 | ||
|   | 3282e1bcc9 | ||
|   | e5b6a5605a | ||
|   | 9b67807926 | ||
|   | f3729fbae6 | ||
|   | 0538c9c3e8 | ||
|   | 53a0e85b8d | ||
|   | 453dd93abf | ||
|   | 669cc2395a | ||
|   | 82706141cf | ||
|   | c536f24d55 | ||
|   | 764b4e72ca | ||
|   | 19dd21062b | ||
|   | 2d24b468b6 | ||
|   | 2dc75cb98d | ||
|   | 5e3be25916 | ||
|   | 49e8bad7cc | ||
|   | 796aea19e6 | ||
|   | dd35f1723b | ||
|   | 0177e1fee4 | ||
|   | 949eb2b5f5 | ||
|   | 2d59fe37bf | ||
|   | b6f81c199e | ||
|   | c2964dc340 | ||
|   | 8aebb93424 | ||
|   | 96c38f7be4 | ||
|   | cf2abe45de | ||
|   | 88ac8adb30 | ||
|   | b331478179 | ||
|   | bfaa82ccba | ||
|   | 77f407724d | ||
|   | 2f5c2e6404 | ||
|   | fbb2cdd1a9 | ||
|   | 63a4e06556 | ||
|   | 3d934b4a9c | ||
|   | 697c275d83 | ||
|   | 25b9601613 | ||
|   | 276dfd9df6 | ||
|   | 19f05f0a97 | ||
|   | 293aaefefe | ||
|   | 57cdf4ebd1 | ||
|   | c4a0c8f100 | ||
|   | 306991e776 | ||
|   | de2384e4a7 | ||
|   | 236dbcfb4a | ||
|   | a1b133d883 | ||
|   | 4f8825e371 | ||
|   | 1aa0936c91 | ||
|   | d5e22c523e | ||
|   | 6618e61a42 | ||
|   | 26283ec228 | ||
|   | ed12f5c77e | ||
|   | 8e074a571a | ||
|   | e2c7c973fd | ||
|   | eec04761ef | ||
|   | f73256e0ea | ||
|   | fec1de6383 | ||
|   | db35a7efb8 | ||
|   | 36eae88a5a | ||
|   | c01fd75c92 | ||
|   | 103f2d0720 | ||
|   | 037c46b587 | ||
|   | 0879f2c0ca | ||
|   | a65cd5c39c | ||
|   | d219e7afeb | ||
|   | 892bb4c432 | ||
|   | 45b9c6335c | ||
|   | 78e643039c | ||
|   | 04e993c674 | ||
|   | c3132fc1b0 | ||
|   | b1c73cb401 | ||
|   | ac6eb8c6bc | ||
|   | 8a64412cb5 | ||
|   | 56885cc914 | ||
|   | cdd1f9b86c | ||
|   | 139360cf76 | ||
|   | 2931d51add | ||
|   | aa0bec41b4 | ||
|   | b32b42b53e | ||
|   | 06c4c717bd | ||
|   | a3ed44baec | ||
|   | 0cbb4a7074 | ||
|   | af2e487ef5 | ||
|   | 28fdfdfef1 | ||
|   | c95cca6436 | ||
|   | 86024c6c74 | ||
|   | 75290cf715 | ||
|   | 321b76a72a | ||
|   | 95ecaec11e | ||
|   | 0e7c16901c | ||
|   | 43dcbf776b | ||
|   | e21c28e9d2 | ||
|   | 918c1507d3 | ||
|   | a189e4403d | ||
|   | 563291a2e8 | ||
|   | 9156c9ac8f | ||
|   | f0049f1dae | ||
|   | a622152747 | ||
|   | 8440e9982f | ||
|   | 602d73fa82 | ||
|   | c32ebb8d9f | ||
|   | deeead4008 | ||
|   | 937a491409 | ||
|   | 79d5ae18a6 | ||
|   | 5cce0c53bf | ||
|   | 681b8c14ad | ||
|   | 443567486e | ||
|   | c10ebc3086 | ||
|   | 42a2acefd3 | ||
|   | c781545609 | ||
|   | ba06affec7 | ||
|   | 6140d69fcb | ||
|   | 71a81fd1b7 | ||
|   | 4e05b62bbe | ||
|   | 9d366c8c7d | ||
|   | 940744b0bf | ||
|   | 6c2518a704 | ||
|   | ef51fabf63 | ||
|   | 1aedd97d4d | ||
|   | ff26ea94f5 | ||
|   | c7a289d183 | ||
|   | 2a70c8f4d8 | ||
|   | e27b08d970 | ||
|   | 48ec57604f | ||
|   | db1bbea26a | ||
|   | 7bbb2f542b | ||
|   | 5563e24781 | ||
|   | f131f6210f | ||
|   | 0356fa4538 | ||
|   | b9c4a434c9 | ||
|   | a4318cc060 | ||
|   | d6e7161eff | ||
|   | e428489ebc | ||
|   | fa4cffe3d4 | ||
|   | a355a87ec5 | ||
|   | 39749620a4 | ||
|   | e7674bfaf8 | ||
|   | 3e8ad9eb83 | ||
|   | 6a95f9170c | ||
|   | cc4a542e9d | ||
|   | fed63b0b85 | ||
|   | bf7b11d87d | ||
|   | bb959ba465 | ||
|   | b77e28fb12 | ||
|   | 261f981a9a | ||
|   | 93ad7e889e | ||
|   | b79e2906e8 | ||
|   | 99e8ac3d36 | ||
|   | badd36e81e | ||
|   | c835502692 | ||
|   | 4fe7fd537d | ||
|   | 88ea548eaf | ||
|   | 360c8500bb | ||
|   | 7a925f15ba | ||
|   | 15ce9a7369 | ||
|   | 4b8532ea2d | ||
|   | 8e7d0f4dc1 | ||
|   | de0ac5cda4 | ||
|   | 9a9fd4e2d1 | ||
|   | 4be0cbd2e4 | ||
|   | 5fef86ec18 | ||
|   | 1acd05794a | ||
|   | 5a61b7543b | ||
|   | b6b74752a5 | ||
|   | 27a71ba123 | ||
|   | 20ae3d997c | ||
|   | b73d0548c8 | ||
|   | ca118697e9 | ||
|   | 600308aaa1 | ||
|   | 9b1ea66659 | ||
|   | d29cc3325b | ||
|   | 9f6e28b741 | ||
|   | 4c5f349f49 | ||
|   | 9a321adfb1 | ||
|   | e233f27d1c | ||
|   | 1cadf73a40 | ||
|   | 77c97b5b43 | ||
|   | 0054a330fb | ||
|   | 8ba05c57b0 | 
							
								
								
									
										23
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						| @@ -6,24 +6,35 @@ Contributors: | ||||
| * Ishan Arora <ishan@qbittorrent.org> | ||||
| * Grigis Gaëtan <cipher16@gmail.com> | ||||
|  | ||||
| Code from other projects: | ||||
| * files src/ico.cpp src/ico.h | ||||
|   copyright: Malte Starostik <malte@kde.org> | ||||
|   license: LGPL | ||||
|  | ||||
| Images Authors: | ||||
| * files: src/Icons/*.png | ||||
|   copyright: Gnome Icon Theme | ||||
|   license: GPLv2 | ||||
|   url: http://ftp.acc.umu.se/pub/GNOME/sources/gnome-icon-theme | ||||
|  | ||||
| * files: src/oxygen/*.png | ||||
|   copyright: Oxygen Icon Theme (KDE) | ||||
|   license: LGPL | ||||
|   url: http://www.oxygen-icons.org | ||||
|  | ||||
| * files: src/Icons/flags/*.png | ||||
|   copyright: Open Clip Art Library | ||||
|   license: Creative Commons Public Domain Dedication | ||||
|   url: http://www.openclipart.org | ||||
|  | ||||
| * files: src/Icons/skins/*.png | ||||
| * files: src/Icons/skin/*.png | ||||
|   files: src/menuicons/YYxYY/*.png | ||||
|   copyright: Mateusz Tobola <tobejodok@qbittorrent.org> | ||||
|   license: GPLv2 | ||||
|  | ||||
| * files: src/menuicons/YYxYY/*.png | ||||
|   copyright: Mateusz Tobola <tobejodok@qbittorrent.org> | ||||
|   license: GPLv2 | ||||
| * file: src/Icons/skin/tabs.gif | ||||
|   copyright: Greg Houston <gregory.houston@gmail.com> | ||||
|   license: MIT | ||||
|  | ||||
| * file: src/search_engine/engines/btjunkie.png | ||||
|   copyright: Downloaded from btjunkie.org | ||||
| @@ -46,7 +57,9 @@ Translations authors: | ||||
|   - Brazilian: Nick Marinho (nickmarinho@gmail.com) | ||||
|   - Bulgarian: Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net) | ||||
|   - Catalan: Gekko Dam Beer (gekko04@users.sourceforge.net) | ||||
|   - Chinese (Simplified): Guo Yue (guoyue0418@hotmail.com) | ||||
|   - Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com) | ||||
|   - Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com) | ||||
|   - Czech: Jirka Vilim (web@tets.cz) | ||||
|   - Danish: Mathias Nielsen (comoneo@gmail.com) | ||||
|   - Dutch: Joost Schipper (heavyjoost@users.sourceforge.net) | ||||
|   - English: Christophe Dumez (chris@qbittorrent.org) | ||||
|   | ||||
							
								
								
									
										14
									
								
								COPYING
									
									
									
									
									
								
							
							
						
						| @@ -1,3 +1,17 @@ | ||||
| qBittorrent is licensed under the GNU General Public License version 2 with the | ||||
| addition of the following special exception: | ||||
|  | ||||
| In addition, as a special exception, the copyright holders give permission to | ||||
| link this program with the OpenSSL project's "OpenSSL" library (or with | ||||
| modified versions of it that use the same license as the "OpenSSL" library), | ||||
| and distribute the linked executables. You must obey the GNU General Public | ||||
| License in all respects for all of the code used other than "OpenSSL".  If you | ||||
| modify file(s), you may extend this exception to your version of the file(s), | ||||
| but you are not obligated to do so. If you do not wish to do so, delete this | ||||
| exception statement from your version. | ||||
|  | ||||
| ---------- | ||||
|  | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
| 		       Version 2, June 1991 | ||||
|  | ||||
|   | ||||
							
								
								
									
										157
									
								
								Changelog
									
									
									
									
									
								
							
							
						
						| @@ -1,4 +1,159 @@ | ||||
| * Unknown - Christophe Dumez <chris@qbittorrent.org> - v1.1.0 | ||||
| * Unknown - Christophe Dumez <chris@qbittorrent.org> - v1.5.0 | ||||
|     - FEATURE: Added Magnet URI support | ||||
|     - FEATURE: Make use of torrent enclosure in RSS feeds for direct download | ||||
|     - FEATURE: Implemented a RSS feed downloader with filter support | ||||
|     - FEATURE: Save old RSS item to hard disk to remember them on start up | ||||
|     - FEATURE: Display free disk space in torrent addition dialog | ||||
|     - FEATURE: In torrent addition from URL, paste clipboard content if it contains an URL | ||||
|     - FEATURE: RSS feeds URLs can now be copied to clipboard | ||||
|     - FEATURE: RSS feeds can now be grouped into folders | ||||
|     - FEATURE: Added "Unread" item to RSS feed list to display all unread news | ||||
|     - FEATURE: If a torrent contains a torrent file, process downloaded torrent file too | ||||
|     - BUGFIX: torrent resume code rewrited | ||||
|     - COSMETIC: Redesigned RSS tab to improve usability | ||||
|  | ||||
| * Sun Aug 21 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.4.1 | ||||
|     - BUGFIX: Fix problems when changing save path (if using temporary download folder) | ||||
|     - BUGFIX: Display real save path instead of the temporary one in torrent properties | ||||
|     - BUGFIX: Catching invalid_handle exception to avoid rare crashes | ||||
|     - BUGFIX: Fixed popup menu position in RSS feeds list | ||||
|     - BUGFIX: Don't save RSS feed state if it could not be updated | ||||
|  | ||||
| * Thu Aug 13 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.4.0 | ||||
|     - FEATURE: Display swarm information in lists | ||||
|     - FEATURE: Allow to define temporary download folder | ||||
|     - FEATURE: Display total amount of uploaded data in finished list | ||||
|     - FEATURE: Resizing a column in a search results tab affects all tabs | ||||
|     - FEATURE: Search results tab columns are now remembered upon startup | ||||
|     - FEATURE: Added right click menu in search engine to clear completion history | ||||
|     - FEATURE: Allow to set a different port for DHT (UDP) than the one used for Bittorrent | ||||
|     - FEATURE: Updated spoofing code to avoid trackers ban | ||||
|     - BUGFIX: Provide more helpful explanation when an I/O error occured | ||||
|     - BUGFIX: Stop enforcing UTF-8 and use system locale instead | ||||
|     - COSMETIC: Redesigned program preferences | ||||
|     - COSMETIC: Updated icons set | ||||
|  | ||||
| * Fri Jul 24 2009 - Christophe DUMEZ <chris@qbittorrent.org> - 1.3.5 | ||||
|     - BUGFIX: Made IP filter parser more robust | ||||
|     - BUGFIX: Fixed torrent creation tool | ||||
|     - BUGFIX: Fixed possible overflow in progress calculation in arborescence.h | ||||
|     - BUGFIX: Save properties window size, position, columns width and restore them | ||||
|     - BUGFIX: Set a minimum default width for NAME column in properties | ||||
|     - BUGFIX: Remember visual indexes of columns in transfer lists | ||||
|  | ||||
| * Sun Jul 12 2009 - Christophe DUMEZ <chris@qbittorrent.org> - v1.3.4 | ||||
|     - BUGFIX: Fixed IP filter file parsing on 64bits | ||||
|     - BUGFIX: Suppressed QLayout: Attempting to add QLayout "" to properties "properties" warning message when opening a properties dialog | ||||
|     - BUGFIX: Fixed a little bug in search engine plugins helper file | ||||
|     - BUGFIX: Fixed compilation problems with Qt 4.3 | ||||
|     - BUGFIX: Percentages no longer disapear with default cleanlooks style | ||||
|     - BUGFIX: Cleanly fixed popup menus position in lists (no more workarounds) | ||||
|     - BUGFIX: Fixed memory leak in search engine | ||||
|     - BUGFIX: Torrents with an infinite ratio are no longer affected by ratio_limit set in program preferences | ||||
|     - BUGFIX: Display a ratio of 0.0 if total_upload and total_download are both 0 | ||||
|     - BUGFIX: Remove last separator in top tool bar | ||||
|     - BUGFIX: Tuned lists properties to make sure display is correct | ||||
|     - COSMETIC: Display date as well as time in log window | ||||
|  | ||||
| * Sun Apr 5 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.3 | ||||
|     - BUGFIX: Fixed Web UI torrent upload form | ||||
|     - BUGFIX: Fixed unicode support in search engine | ||||
|     - BUGFIX: Fixed search engine bug that prevented a torrent from appearing more than once among all tabs | ||||
|     - LICENSE: Added an exception to the license regarding OpenSSL. | ||||
|     - I18N: Updated Finnish translation | ||||
|  | ||||
| * Sat Mar 7 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.2 | ||||
|     - BUGFIX: Fix top toolbar disabling | ||||
|     - BUGFIX: Fix building with Qt 4.5 | ||||
|     - BUGFIX: RSS items read status is now remembered upon restart | ||||
|  | ||||
| * Mon Jan 26 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.1 | ||||
|     - BUGFIX: Torrents paused due to an I/O error were displayed as queued | ||||
|     - BUGFIX: qBittorrent now prints backtrace in terminal when segfaulting | ||||
|     - BUGFIX: Fixed files progress display in torrent properties | ||||
|     - BUGFIX: Improved torrent ratio calculation | ||||
|     - BUGFIX: Fixed possible crash when parsing filter file | ||||
|     - BUGFIX: Made some code optimization | ||||
|     - BUGFIX: Fixed download/upload speed decrease problems | ||||
|     - I18N: Updated Finnish, Bulgarian and Greek translations | ||||
|  | ||||
| * Fri Jan 9 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.0 | ||||
|     - FEATURE: Based on libtorrent-rasterbar v0.14.2 | ||||
|     - FEATURE: Improved ratio calculation system | ||||
|     - FEATURE: Torrent creation code cleanup | ||||
|     - FEATURE: Allow to set maximum number of active seeds (queueing) | ||||
|     - FEATURE: Now seeds priorities are handled automatically by libtorrent-rasterbar (queueing) | ||||
|     - FEATURE: Code cleanup and optimization (save memory and cpu) | ||||
|     - FEATURE: ETA calculation now relies on average speed over all sessions | ||||
|     - FEATURE: Allow to force rechecking torrents | ||||
|     - FEATURE: Added support for 2 new extensions (uTorrent metadata and smart ban plugin) | ||||
|     - FEATURE: Allow to change the save path of torrents after addition | ||||
|     - FEATURE: Got rid of libmagick++ dependency | ||||
|     - FEATURE: Updated Web interface to MochaUI v0.9.5 | ||||
|     - FEATURE: Added notification in WebUI when qBittorrent is not reachable | ||||
|     - FEATURE: Rewrote folder scanning code (Now uses a filesystem watcher) | ||||
|     - FEATURE: Added torrent deletion from hard drive function in Web UI | ||||
|     - FEATURE: Added queueing priority actions in Web UI | ||||
|     - FEATURE: Display progress using progress bars in Web UI | ||||
|     - BUGFIX: Made usage of fastresume data more reliable | ||||
|     - BUGFIX: qBittorrent shutdown is now faster | ||||
|     - BUGFIX: Fixed several memory leaks | ||||
|     - BUGFIX: WebUI is now working with IE7 | ||||
|     - BUGFIX: Fixed spacing problem in toolbar when toggling its visibility | ||||
|     - BUGFIX: Fixed some compilation and Qt4 warnings | ||||
|     - BUGFIX: Do not use an addition dialog for torrents from folder scanning | ||||
|     - BUGFIX: Catch SIGTERM to exit cleanly (e.g. computer shutdown) | ||||
|     - BUGFIX: Improved proxy support code | ||||
|     - BUGFIX: Fixed systray icon tooltip on Windows | ||||
|     - BUGFIX: Proxy settings are now saved even if disabled | ||||
|  | ||||
| * Sun Nov 9 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.2.1 | ||||
|     - BUGFIX: Fixed possible crash when deleting a torrent permanently | ||||
|     - BUGFIX: Queued_for_checking torrents were not displayed as checking in seeding list | ||||
|     - BUGFIX: Speed up startup time when having a lot of torrents | ||||
|  | ||||
| * Wed Oct 29th 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.2.0 | ||||
|     - FEATURE: Torrent queueing system (with priorities) | ||||
|     - FEATURE: The number of DHT nodes is displayed | ||||
|     - FEATURE: RSS can now be disabled from program preferences | ||||
|     - FEATURE: Added collapse/expand all buttons in addition and properties dialogs | ||||
|     - FEATURE: Can have different proxies for Bittorrent and search engine | ||||
|     - FEATURE: Allow multiple item selection in Web UI transfer list | ||||
|     - FEATURE: Moved uploads to a separate list in Web UI | ||||
|     - BUGFIX: Totally rewritten Web UI list refresh system (fixed memory leak) | ||||
|     - BUGFIX: Disable ETA calculation when ETA column is hidden | ||||
|     - BUGFIX: Removed "disconnected" connection state, detection was far from perfect | ||||
|     - BUGFIX: Torrents are no longer starting from scratch when changing default save path (when torrent addition dialog is disabled) | ||||
|     - BUGFIX: Single instance code is now more reliable on Qt >= 4.4 | ||||
|     - COSMETIC: Transfer speed, ratio, connection status and DHT nodes are displayed in status bar     | ||||
|     - COSMETIC: RSS Tab is now hidden as a default | ||||
|     - COSMETIC: Allow to hide or display top toolbar | ||||
|     - COSMETIC: Log is now in a separate dialog | ||||
|  | ||||
| * Sun Sept 14 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.4 | ||||
|     - FEATURE: DHT is no longer used as fallback only | ||||
|     - FEATURE: Ported WebUI to Mootools v1.2 | ||||
|     - BUGFIX: Fixed 'start seeding after torrent creation' feature | ||||
|     - BUGFIX: Fixed compilation with boost v1.36 | ||||
|     - BUGFIX: Some code optimization | ||||
|     - BUGFIX: Fixed memory leak in Web UI | ||||
|     - BUGFIX: Fixed problems with column sorting | ||||
|     - BUGFIX: Improved code for pausing torrents on startup | ||||
|     - BUGFIX: Torrent addition dialog is now disabled for downloads from WebUI | ||||
|     - BUGFIX: Give focus to input field in WebUI download dialog | ||||
|  | ||||
| * Tue Aug 26 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.3 | ||||
|     - BUGFIX: Fixed ratio saving for seeding torrents | ||||
|     - I18N: Added czech and traditional chinese translations | ||||
|  | ||||
| * Sun Aug 17 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.2 | ||||
|     - BUGFIX: Fixed progress calculation | ||||
|     - BUGFIX: Fixed finished torrent detection | ||||
|  | ||||
| * Fri Aug 01 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.1 | ||||
|     - BUGFIX: Fixed bad resource file for icons | ||||
|  | ||||
| * Fri Aug 01 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.0 | ||||
|     - FEATURE: Web interface to control qbittorrent (Ishan Arora) | ||||
|     - FEATURE: Can spoof Azureus peer id to avoid ban | ||||
|     - FEATURE: Allow to hide/show some columns in download and seeding lists | ||||
|   | ||||
							
								
								
									
										2
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						| @@ -17,7 +17,7 @@ Dependencies: | ||||
| - Qt >= 4.3.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml) | ||||
|   Qt >= 4.4.0 is advised | ||||
|  | ||||
| - libtorrent-rasterbar by Arvid Norberg (>= v0.13.1 REQUIRED) | ||||
| - libtorrent-rasterbar by Arvid Norberg (>= v0.14.0 REQUIRED) | ||||
|     -> http://www.qbittorrent.org/download.php (advised) | ||||
|     -> http://www.libtorrent.net | ||||
|     Be careful: another library (the one used by rTorrent) uses a similar name. | ||||
|   | ||||
							
								
								
									
										48
									
								
								TODO
									
									
									
									
									
								
							
							
						
						| @@ -1,48 +1,2 @@ | ||||
| // Easy | ||||
| - Translations into as many languages as possible | ||||
| - Use Launchpad/Rosetta for translations once it supports TS files | ||||
| See https://blueprints.launchpad.net/qbittorrent/ | ||||
|  | ||||
| // Intermediate | ||||
| - Port on MacOS, Windows (and create an installer for Windows) - Slow progress | ||||
| - Add some transparency (menus,...), improve look / usabilty | ||||
| - Skins support? (contact Mateusz) | ||||
|  | ||||
| // Harder | ||||
| - Torrent scheduler ala µtorrent/Bitcomet | ||||
|  | ||||
| // Waiting for libtorrent | ||||
| - Allow to prioritize torrents (may code this in qBittorrent?) | ||||
|  | ||||
| // Unsure | ||||
| - Display the peers we are connected to for each torrent with infos (like flag, dl/up speeds, ...) | ||||
| - Azureus spoofing to prevent ban from trackers? | ||||
| - Option to shutdown computer when downloads are finished | ||||
| - NAT checker/Tester | ||||
| - Display hard drive space left? | ||||
| - Make use of dbus on Linux for the single instance instead of socket communication? | ||||
|   (http://techbase.kde.org/Development/Tutorials/D-Bus/Accessing_Interfaces) | ||||
| - When favicon can't be downloaded, try to parse the webpage for: | ||||
|   <link rel="icon" href="http://example.com/favicon.ico" type="image/vnd.microsoft.icon"> | ||||
|     * Be careful, the link can be relative | ||||
| - Improve search plugin install (choose in a list taken from plugins.qbittorrent.org) | ||||
| - support zipped torrents? (useful?) | ||||
| - Allow to limit the number of downloading torrents simultaneously (other are paused until a download finishes) | ||||
|  | ||||
| // in v1.2.0 | ||||
| - Allow user to organize the downloads into categories/folders? | ||||
|  | ||||
| Translations updated: | ||||
| - French | ||||
| - Chinese | ||||
| - Polish | ||||
| - Portuguese | ||||
| - Brazilian | ||||
| - Slovak | ||||
| - Swedish | ||||
| - Romanian | ||||
| - Finnish | ||||
| - Italian | ||||
| - Turkish | ||||
| - Korean | ||||
| - Hungarian | ||||
| - German | ||||
|   | ||||
| @@ -15,6 +15,5 @@ | ||||
|   <dep type='libcurl'> | ||||
|     <required/> | ||||
|   </dep> | ||||
|   <dep type='libmagick'/> | ||||
|   <dep type='libzzip'/> | ||||
| </qconf> | ||||
|   | ||||
| @@ -1,65 +0,0 @@ | ||||
| /* | ||||
| -----BEGIN QCMOD----- | ||||
| name: libcommoncpp2 | ||||
| arg: with-libcommoncpp2-inc=[path], Path to libcommoncpp2 include files | ||||
| arg: with-libcommoncpp2-lib=[path], Path to libcommoncpp2 library files | ||||
| -----END QCMOD----- | ||||
| */ | ||||
| class qc_libcommoncpp2 : public ConfObj | ||||
| { | ||||
| public: | ||||
| 	qc_libcommoncpp2(Conf *c) : ConfObj(c) {} | ||||
| 	QString name() const { return "GNU Common C++ library (libcommoncpp2)"; } | ||||
| 	QString shortname() const { return "libcommoncpp2"; } | ||||
| 	bool exec(){ | ||||
|     QString s; | ||||
| 		s = conf->getenv("QC_WITH_LIBCOMMONCPP2_INC"); | ||||
| 		if(!s.isEmpty()) { | ||||
| 			if(!conf->checkHeader(s, "cc++/url.h")) { | ||||
| 				return false; | ||||
|     	} | ||||
| 		}else{ | ||||
| 			QStringList sl; | ||||
| 			sl << "/usr/include"; | ||||
| 			sl << "/usr/local/include"; | ||||
| 			bool found = false; | ||||
| 			foreach(s, sl){ | ||||
| 				if(conf->checkHeader(s, "cc++/url.h")){ | ||||
| 					found = true; | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| 			if(!found) { | ||||
| 				return false; | ||||
|       } | ||||
| 		} | ||||
| 		conf->addIncludePath(s); | ||||
|  | ||||
| 		s = conf->getenv("QC_WITH_LIBCOMMONCPP2_LIB"); | ||||
| 		if(!s.isEmpty()) { | ||||
| 			if(!QFile::exists(s+QString("/libccext2.so"))) | ||||
| 		    return false; | ||||
| 			if(!QFile::exists(s+QString("/libccgnu2.so"))) | ||||
| 				return false; | ||||
|     	conf->addLib(QString("-L") + s); | ||||
| 		}else{ | ||||
| 			QStringList sl; | ||||
| 			sl << "/usr/lib/"; | ||||
| 			sl << "/usr/lib64/"; | ||||
| 			sl << "/usr/local/lib/"; | ||||
| 			sl << "/usr/local/lib64/"; | ||||
| 			bool found = false; | ||||
| 			foreach(s, sl){ | ||||
| 				if(QFile::exists(s+QString("libccext2.so"))){ | ||||
| 				  if(QFile::exists(s+QString("libccgnu2.so"))){ | ||||
| 						found = true; | ||||
| 						break; | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			if(!found) return false; | ||||
| 			conf->addLib(QString("-L") + s); | ||||
| 		} | ||||
| 		return true; | ||||
| 	} | ||||
| }; | ||||
| @@ -64,14 +64,11 @@ public: | ||||
|                          	return false; | ||||
| 		} | ||||
| 		conf->addLib(QString("-L") + s); | ||||
| 		QProcess magickConfig; | ||||
| 		QString out = ""; | ||||
| 		QStringList params; | ||||
|                 params << "--libs"; | ||||
| 		magickConfig.start("Magick++-config", params, QIODevice::ReadOnly); | ||||
| 		magickConfig.waitForStarted(); | ||||
| 		magickConfig.waitForFinished(); | ||||
| 		QByteArray result = magickConfig.readAll(); | ||||
| 		result = result.replace("\n", ""); | ||||
| 		qconf->doCommand("Magick++-config", params, &out); | ||||
| 		out = out.replace("\n", ""); | ||||
| 		conf->addLib(result.data()); | ||||
| 		conf->addDefine("HAVE_MAGICK"); | ||||
| 		return true; | ||||
|   | ||||
| @@ -1,70 +1,29 @@ | ||||
| /* | ||||
| -----BEGIN QCMOD----- | ||||
| name: libtorrent-rasterbar | ||||
| arg: with-libtorrent-inc=[path], Path to libtorrent-rasterbar include files | ||||
| arg: with-libtorrent-lib=[path], Path to libtorrent-rasterbar library files | ||||
| arg: with-libtorrent-static-lib=[path], Path to libtorrent-rasterbar .a file | ||||
| -----END QCMOD----- | ||||
| */ | ||||
| // see  Conf::findPkgConfig | ||||
| class qc_libtorrent_rasterbar : public ConfObj | ||||
| { | ||||
| public: | ||||
| 	qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {} | ||||
| 	QString name() const { return "libtorrent-rasterbar >= 0.13"; } | ||||
| 	QString name() const { return "libtorrent-rasterbar >= 0.14.0 (>= 0.14.4 advised)"; } | ||||
| 	QString shortname() const { return "libtorrent-rasterbar"; } | ||||
| 	bool exec(){ | ||||
|         	QString s; | ||||
| 		s = conf->getenv("QC_WITH_LIBTORRENT_INC"); | ||||
| 		if(!s.isEmpty()) { | ||||
| 			if(!conf->checkHeader(s, "libtorrent/lsd.hpp")) { | ||||
| 		QStringList incs; | ||||
| 		QString req_ver = "0.14.0"; | ||||
| 		QString adv_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; | ||||
|       			} | ||||
| 		}else{ | ||||
| 			QStringList sl; | ||||
| 			sl << "/usr/include"; | ||||
| 			sl << "/usr/local/include"; | ||||
| 			bool found = false; | ||||
| 			foreach(s, sl){ | ||||
| 				if(conf->checkHeader(s, "libtorrent/lsd.hpp")){ | ||||
| 					found = true; | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| 			if(!found) { | ||||
| 				return false; | ||||
|           		} | ||||
| 		} | ||||
| 		conf->addIncludePath(s); | ||||
| 		conf->addIncludePath(s+QDir::separator()+"libtorrent"); | ||||
|  | ||||
| 		s = conf->getenv("QC_WITH_LIBTORRENT_STATIC_LIB"); | ||||
| 		if(!s.isEmpty() && QFile::exists(s) && s.endsWith(".a")){ | ||||
| 			conf->addLib(s); | ||||
| 			return true; | ||||
| 		} | ||||
|  | ||||
| 		s = conf->getenv("QC_WITH_LIBTORRENT_LIB"); | ||||
| 		if(!s.isEmpty()) { | ||||
|       			if(!conf->checkLibrary(s, "torrent-rasterbar")) { | ||||
| 			        return false; | ||||
| 			} | ||||
|       			conf->addLib(QString("-L") + s); | ||||
| 		}else{ | ||||
| 			QStringList sl; | ||||
| 			sl << "/usr/lib/"; | ||||
| 			sl << "/usr/lib64/"; | ||||
| 			sl << "/usr/local/lib/"; | ||||
| 			sl << "/usr/local/lib64/"; | ||||
| 			bool found = false; | ||||
| 			foreach(s, sl){ | ||||
| 				if(conf->checkLibrary(s, "torrent-rasterbar")){ | ||||
| 					found = true; | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| 			if(!found) return false; | ||||
| 			conf->addLib(QString("-L") + s); | ||||
| 		} | ||||
| 		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. Although it will compile and run, you will probably experience some bugs. Please consider updating to v%s!\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data()); | ||||
| 		return true; | ||||
| 	} | ||||
| }; | ||||
|   | ||||
| @@ -16,6 +16,15 @@ | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. | ||||
|  * | ||||
|  * In addition, as a special exception, the copyright holders give permission to | ||||
|  * link this program with the OpenSSL project's "OpenSSL" library (or with | ||||
|  * modified versions of it that use the same license as the "OpenSSL" library), | ||||
|  * and distribute the linked executables. You must obey the GNU General Public | ||||
|  * License in all respects for all of the code used other than "OpenSSL".  If you | ||||
|  * modify file(s), you may extend this exception to your version of the file(s), | ||||
|  * but you are not obligated to do so. If you do not wish to do so, delete this | ||||
|  * exception statement from your version. | ||||
|  * | ||||
|  * Contact : chris@qbittorrent.org | ||||
|  */ | ||||
|  | ||||
| @@ -40,7 +49,8 @@ | ||||
| #define SEEDSLEECH 5 | ||||
| #define RATIO 6 | ||||
| #define ETA 7 | ||||
| #define HASH 8 | ||||
| #define PRIORITY 8 | ||||
| #define HASH 9 | ||||
|  | ||||
| class DLListDelegate: public QItemDelegate { | ||||
|   Q_OBJECT | ||||
| @@ -71,6 +81,9 @@ class DLListDelegate: public QItemDelegate { | ||||
|         case RATIO:{ | ||||
|           QItemDelegate::drawBackground(painter, opt, index); | ||||
|           double ratio = index.data().toDouble(); | ||||
|           if(ratio > 100.) | ||||
|               QItemDelegate::drawDisplay(painter, opt, opt.rect, QString::fromUtf8("∞")); | ||||
|           else | ||||
|               QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1))); | ||||
|           break; | ||||
|         } | ||||
|   | ||||
							
								
								
									
										480
									
								
								src/FeedDownloader.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										546
									
								
								src/FeedDownloader.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -16,6 +16,15 @@ | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. | ||||
|  * | ||||
|  * In addition, as a special exception, the copyright holders give permission to | ||||
|  * link this program with the OpenSSL project's "OpenSSL" library (or with | ||||
|  * modified versions of it that use the same license as the "OpenSSL" library), | ||||
|  * and distribute the linked executables. You must obey the GNU General Public | ||||
|  * License in all respects for all of the code used other than "OpenSSL".  If you | ||||
|  * modify file(s), you may extend this exception to your version of the file(s), | ||||
|  * but you are not obligated to do so. If you do not wish to do so, delete this | ||||
|  * exception statement from your version. | ||||
|  * | ||||
|  * Contact : chris@qbittorrent.org | ||||
|  */ | ||||
|  | ||||
| @@ -35,9 +44,13 @@ | ||||
| #define F_NAME 0 | ||||
| #define F_SIZE 1 | ||||
| #define F_UPSPEED 2 | ||||
| #define F_LEECH 3 | ||||
| #define F_RATIO 4 | ||||
| #define F_HASH 5 | ||||
| #define F_SWARM 3 | ||||
| #define F_PEERS 4 | ||||
| #define F_UPLOAD 5 | ||||
| #define F_RATIO 6 | ||||
| #define F_HASH 7 | ||||
|  | ||||
| #define MAX_RATIO 100. | ||||
|  | ||||
| class FinishedListDelegate: public QItemDelegate { | ||||
|   Q_OBJECT | ||||
| @@ -51,6 +64,7 @@ class FinishedListDelegate: public QItemDelegate { | ||||
|       QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option); | ||||
|       switch(index.column()){ | ||||
|         case F_SIZE: | ||||
|         case F_UPLOAD: | ||||
|           QItemDelegate::drawBackground(painter, opt, index); | ||||
|           QItemDelegate::drawDisplay(painter, opt, option.rect, misc::friendlyUnit(index.data().toLongLong())); | ||||
|           break; | ||||
| @@ -63,6 +77,9 @@ class FinishedListDelegate: public QItemDelegate { | ||||
|         case F_RATIO:{ | ||||
|           QItemDelegate::drawBackground(painter, opt, index); | ||||
|           double ratio = index.data().toDouble(); | ||||
|           if(ratio > MAX_RATIO) | ||||
|             QItemDelegate::drawDisplay(painter, opt, opt.rect, QString::fromUtf8("∞")); | ||||
|           else | ||||
|             QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1))); | ||||
|           break; | ||||
|         } | ||||
|   | ||||
| @@ -16,6 +16,15 @@ | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. | ||||
|  * | ||||
|  * In addition, as a special exception, the copyright holders give permission to | ||||
|  * link this program with the OpenSSL project's "OpenSSL" library (or with | ||||
|  * modified versions of it that use the same license as the "OpenSSL" library), | ||||
|  * and distribute the linked executables. You must obey the GNU General Public | ||||
|  * License in all respects for all of the code used other than "OpenSSL".  If you | ||||
|  * modify file(s), you may extend this exception to your version of the file(s), | ||||
|  * but you are not obligated to do so. If you do not wish to do so, delete this | ||||
|  * exception statement from your version. | ||||
|  * | ||||
|  * Contact : chris@qbittorrent.org | ||||
|  */ | ||||
|  | ||||
| @@ -60,27 +69,31 @@ class FinishedTorrents : public QWidget, public Ui::seeding { | ||||
|     void displayFinishedHoSMenu(const QPoint&); | ||||
|     void setRowColor(int row, QString color); | ||||
|     void saveColWidthFinishedList() const; | ||||
|     void sortFinishedList(int index); | ||||
|     void toggleFinishedListSortOrder(int index); | ||||
|     void sortFinishedList(int index=-1, Qt::SortOrder sortOrder=Qt::AscendingOrder); | ||||
|     void sortFinishedListFloat(int index, Qt::SortOrder sortOrder); | ||||
|     void sortFinishedListString(int index, Qt::SortOrder sortOrder); | ||||
|     void updateFileSize(QString hash); | ||||
|     void torrentAdded(QString path, QTorrentHandle& h, bool fastResume); | ||||
|     void on_actionSet_upload_limit_triggered(); | ||||
|     void notifyTorrentDoubleClicked(const QModelIndex& index); | ||||
|     void hideOrShowColumnName(); | ||||
|     void hideOrShowColumnSize(); | ||||
|     void hideOrShowColumnUpSpeed(); | ||||
|     void hideOrShowColumnLeechers(); | ||||
|     void hideOrShowColumnSwarm(); | ||||
|     void hideOrShowColumnPeers(); | ||||
|     void hideOrShowColumnUpload(); | ||||
|     void hideOrShowColumnRatio(); | ||||
|     void forceRecheck(); | ||||
|  | ||||
|   public slots: | ||||
|     void addTorrent(QString hash); | ||||
|     void updateFinishedList(); | ||||
|     void updateTorrent(QTorrentHandle h); | ||||
|     void pauseTorrent(QString hash); | ||||
|     void resumeTorrent(QString hash); | ||||
|     void propertiesSelection(); | ||||
|     void deleteTorrent(QString hash); | ||||
|     void showPropertiesFromHash(QString hash); | ||||
|     void loadLastSortedColumn(); | ||||
|     void updateMetadata(QTorrentHandle &h); | ||||
|  | ||||
|   signals: | ||||
|     void torrentMovedFromFinishedList(QString); | ||||
|   | ||||
							
								
								
									
										823
									
								
								src/GUI.cpp
									
									
									
									
									
								
							
							
						
						
							
								
								
									
										53
									
								
								src/GUI.h
									
									
									
									
									
								
							
							
						
						| @@ -16,6 +16,15 @@ | ||||
|  * along with this program; if not, write to the Free Software | ||||
|  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. | ||||
|  * | ||||
|  * In addition, as a special exception, the copyright holders give permission to | ||||
|  * link this program with the OpenSSL project's "OpenSSL" library (or with | ||||
|  * modified versions of it that use the same license as the "OpenSSL" library), | ||||
|  * and distribute the linked executables. You must obey the GNU General Public | ||||
|  * License in all respects for all of the code used other than "OpenSSL".  If you | ||||
|  * modify file(s), you may extend this exception to your version of the file(s), | ||||
|  * but you are not obligated to do so. If you do not wish to do so, delete this | ||||
|  * exception statement from your version. | ||||
|  * | ||||
|  * Contact : chris@qbittorrent.org | ||||
|  */ | ||||
|  | ||||
| @@ -24,7 +33,7 @@ | ||||
|  | ||||
| #include <QProcess> | ||||
| #include <QSystemTrayIcon> | ||||
|  | ||||
| #include <QPointer> | ||||
| #include "ui_MainWindow.h" | ||||
| #include "qtorrenthandle.h" | ||||
|  | ||||
| @@ -52,6 +61,7 @@ class QTabWidget; | ||||
| class QLabel; | ||||
| class QModelIndex; | ||||
| class HttpServer; | ||||
| class QFrame; | ||||
|  | ||||
| class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|   Q_OBJECT | ||||
| @@ -60,12 +70,13 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     // Bittorrent | ||||
|     bittorrent *BTSession; | ||||
|     QTimer *checkConnect; | ||||
|     QTimer *scrapeTimer; | ||||
|     QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; | ||||
|     // GUI related | ||||
|     QTabWidget *tabs; | ||||
|     options_imp *options; | ||||
|     QPointer<options_imp> options; | ||||
|     QSystemTrayIcon *myTrayIcon; | ||||
|     QTimer *systrayCreator; | ||||
|     QPointer<QTimer> systrayCreator; | ||||
|     QMenu *myTrayIconMenu; | ||||
|     DownloadingTorrents *downloadingTorrentTab; | ||||
|     FinishedTorrents *finishedTorrentTab; | ||||
| @@ -75,18 +86,28 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     bool force_exit; | ||||
|     unsigned int refreshInterval; | ||||
|     QTimer *refresher; | ||||
|     QLabel *dlSpeedLbl; | ||||
|     QLabel *upSpeedLbl; | ||||
|     QLabel *ratioLbl; | ||||
|     QLabel *DHTLbl; | ||||
|     QFrame *statusSep1; | ||||
|     QFrame *statusSep2; | ||||
|     QFrame *statusSep3; | ||||
|     QFrame *statusSep4; | ||||
|     // Keyboard shortcuts | ||||
|     QShortcut *switchSearchShortcut; | ||||
|     QShortcut *switchSearchShortcut2; | ||||
|     QShortcut *switchDownShortcut; | ||||
|     QShortcut *switchUpShortcut; | ||||
|     QShortcut *switchRSSShortcut; | ||||
|     QAction *prioSeparator; | ||||
|     QAction *prioSeparator2; | ||||
|     // Search | ||||
|     SearchEngine *searchEngine; | ||||
|     // RSS | ||||
|     RSSImp *rssWidget; | ||||
|     // Web UI | ||||
|     HttpServer *httpServer; | ||||
|     QPointer<HttpServer> httpServer; | ||||
|     // Misc | ||||
| #ifdef QT_4_4 | ||||
|     QLocalServer *localServer; | ||||
| @@ -105,6 +126,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     void on_actionCreate_torrent_triggered(); | ||||
|     void on_actionWebsite_triggered() const; | ||||
|     void on_actionBugReport_triggered() const; | ||||
|     void on_actionShow_console_triggered(); | ||||
|     void readParamsOnSocket(); | ||||
|     void acceptConnection(); | ||||
|     void togglePausedState(QString hash); | ||||
| @@ -118,9 +140,10 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     void createTrayIcon(); | ||||
|     void updateUnfinishedTorrentNumber(unsigned int nb); | ||||
|     void updateFinishedTorrentNumber(unsigned int nb); | ||||
|     void fullDiskError(QTorrentHandle& h) const; | ||||
|     void fullDiskError(QTorrentHandle& h, QString msg) const; | ||||
|     void handleDownloadFromUrlFailure(QString, QString) const; | ||||
|     void createSystrayDelayed(); | ||||
|     void setPaused(QTorrentHandle &h) const; | ||||
|     // Keyboard shortcuts | ||||
|     void createKeyboardShortcuts(); | ||||
|     void displayDownTab() const; | ||||
| @@ -144,19 +167,22 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     void processParams(const QStringList& params); | ||||
|     void addTorrent(QString path); | ||||
|     void addUnauthenticatedTracker(QPair<QTorrentHandle,QString> tracker); | ||||
|     void processScannedFiles(const QStringList& params); | ||||
|     void processDownloadedFiles(QString path, QString url); | ||||
|     void downloadFromURLList(const QStringList& urls); | ||||
|     void deleteTorrent(QString hash); | ||||
|     void deleteRatioTorrent(QString fileName); | ||||
|     void finishedTorrent(QTorrentHandle& h) const; | ||||
|     void torrentChecked(QString hash) const; | ||||
|     void updateLists(); | ||||
|     void addedTorrent(QTorrentHandle& h) const; | ||||
|     void checkedTorrent(QTorrentHandle& h) const; | ||||
|     void pausedTorrent(QTorrentHandle& h) const; | ||||
|     void resumedTorrent(QTorrentHandle& h) const; | ||||
|     void updateLists(bool force=false); | ||||
|     bool initWebUi(QString username, QString password, int port); | ||||
|     void pauseTorrent(QString hash); | ||||
|     void on_actionIncreasePriority_triggered(); | ||||
|     void on_actionDecreasePriority_triggered(); | ||||
|     void scrapeTrackers(); | ||||
|     // Options slots | ||||
|     void on_actionOptions_triggered(); | ||||
|     void OptionsSaved(QString info, bool deleteOptions); | ||||
|     void OptionsSaved(bool deleteOptions); | ||||
|     // HTTP slots | ||||
|     void on_actionDownload_from_URL_triggered(); | ||||
|  | ||||
| @@ -166,11 +192,14 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     void setTabText(int index, QString text) const; | ||||
|     void openDestinationFolder() const; | ||||
|     void goBuyPage() const; | ||||
|     void copyMagnetURI() const; | ||||
|     void updateRatio(); | ||||
|  | ||||
|   protected: | ||||
|     void closeEvent(QCloseEvent *); | ||||
|     void hideEvent(QHideEvent *); | ||||
|     void showEvent(QShowEvent *); | ||||
|     bool event(QEvent * event); | ||||
|     void displayRSSTab(bool enable); | ||||
|  | ||||
|   public: | ||||
|     // Construct / Destruct | ||||
|   | ||||
| Before Width: | Height: | Size: 1005 B | 
| Before Width: | Height: | Size: 1.3 KiB | 
| Before Width: | Height: | Size: 1.5 KiB | 
| Before Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 820 B | 
| Before Width: | Height: | Size: 821 B | 
| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 998 B | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/flags/czech.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 455 B | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/flags/taiwan.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 333 B | 
| Before Width: | Height: | Size: 1.3 KiB | 
| Before Width: | Height: | Size: 1.2 KiB |