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

Compare commits

..

366 Commits

Author SHA1 Message Date
Christophe Dumez
c506a01dea Tagged v2.2.0 release 2010-03-14 21:00:56 +00:00
Christophe Dumez
9034094cf9 Fix headless compilation 2010-03-04 08:36:23 +00:00
Christophe Dumez
c48766aeb7 - Slight RSS cleanup 2010-03-03 23:11:40 +00:00
Christophe Dumez
28a6afeb02 Clean up and optimize transferlist class 2010-03-03 21:59:12 +00:00
Christophe Dumez
c8d0f5a104 Folder scanning settings are now properly saved 2010-03-03 21:17:45 +00:00
Christophe Dumez
3c396257de Use QXmlStreamReader instead of QDomDocument to save memory when parsing the RSS documents 2010-03-03 21:11:40 +00:00
Christophe Dumez
a9be841d2d Keep on cleaning up 2010-03-03 19:04:34 +00:00
Christophe Dumez
7d0581a7a5 Started code clean up and optimization 2010-03-03 17:27:25 +00:00
Christophe Dumez
4efeb66b73 Remove useless cast
Added missing include that caused misleading error message
2010-03-03 15:23:34 +00:00
Christophe Dumez
3b05f8b4b4 Reorganized header file 2010-03-03 14:48:49 +00:00
Christophe Dumez
6b4f09d740 - Cleanup GUI class 2010-03-03 14:42:57 +00:00
Christophe Dumez
f1b02c1280 Make sure options and console windows are deleted on exit 2010-03-03 13:15:13 +00:00
Christophe Dumez
3d546a4c5d BUGFIX: Only one log window can be opened at a time 2010-03-03 13:07:27 +00:00
Christophe Dumez
19368bcefa Added virtual destructor to avoid memory leaks 2010-03-03 13:03:13 +00:00
Christophe Dumez
dbbf26449c - Clean up main code
- Use fromLocal8Bit() instead fromUtf8() on program parameters
2010-03-03 12:55:42 +00:00
Christophe Dumez
8f28804f8c Added Json encode support for QVariantList and QStringList 2010-02-28 17:24:35 +00:00
Christophe Dumez
b7edfea4ce Disable scan folder preferences in Web UI (for now) since it was broken by "multipleScanFolders" patch 2010-02-28 17:17:14 +00:00
Christophe Dumez
23b2f94c40 Call qDeleteAll on m_pathList 2010-02-28 16:23:59 +00:00
Christophe Dumez
8f40f41fef Qt4.4 Compatibility fix (QDate::StandaloneFormat) 2010-02-28 16:07:09 +00:00
Christophe Dumez
33f868144b Use a regular pointer instead of a QSharedPointer to fix Qt 4.4 compatibility 2010-02-28 16:00:52 +00:00
Christophe Dumez
b2545bb709 Added Christian Kandeler to contributors 2010-02-28 15:50:25 +00:00
Christophe Dumez
3b6e1e82d9 Updated language files 2010-02-28 15:22:31 +00:00
Christophe Dumez
7710c88797 FEATURE: Support for multiple scan folders
* Patch by Christian Kandeler (Thanks!)
2010-02-28 15:15:00 +00:00
Christophe Dumez
4d5001d18d Display more useful information in log window when an I/O error occurs
I/O errors are now reported in nox version too
2010-02-22 19:30:36 +00:00
Christophe Dumez
0f4f108eb5 BUGFIX: Fix ratio calculation for directly seeded torrents (Thanks phorane) 2010-02-17 08:10:57 +00:00
Christophe Dumez
f0d0bb7170 FEATURE: Allow to change the priority of several files at once 2010-02-16 20:50:44 +00:00
Christophe Dumez
66157da5c2 Fix browse button for torrent export directory in preferences 2010-02-16 19:40:41 +00:00
Christophe Dumez
13493e1afe - Global Upload/Download rates can be set by clicking on the status bar values 2010-02-15 20:57:55 +00:00
Christophe Dumez
f6bfacda2c FEATURE: Global transfer information are displayed in the new Web UI status bar 2010-02-15 20:07:15 +00:00
Christophe Dumez
f7a86b5484 Add URL seeds from duplicate torrents to existing ones 2010-02-15 18:45:39 +00:00
Christophe Dumez
66cd3f8184 Fix save path display in Web UI too 2010-02-14 15:30:10 +00:00
Christophe Dumez
3a237c93be Make sure torrent save path is displayed 2010-02-14 15:22:34 +00:00
Christophe Dumez
4c34066727 FEATURE: Trackers can be added from Web UI 2010-02-14 15:15:35 +00:00
Christophe Dumez
1960008c83 Fix Web UI authentication with Konqueror 2010-02-12 00:00:55 +00:00
Christophe Dumez
deffbd6321 Updated Russian translation 2010-02-11 11:45:30 +00:00
Christophe Dumez
53927c9aa0 Revert useless 64bits patch 2010-02-10 23:22:47 +00:00
Christophe Dumez
d84346616a Added -L/usr/lib64 for 64bits 2010-02-10 22:28:01 +00:00
Christophe Dumez
e1183dbc0b Bump to beta4 2010-02-10 21:34:31 +00:00
Christophe Dumez
602f1574ca - Fix possible race condition in search engine 2010-02-10 21:20:44 +00:00
Christophe Dumez
358f7d16da Add back CONFIG += link_pkgconfig or it causes crashes 2010-02-10 21:14:44 +00:00
Christophe Dumez
e4006d6175 - Update helper version 2010-02-10 20:15:21 +00:00
Christophe Dumez
949b4ce4e9 - Improve gzip file detection in HTTP downloader (do not trust HTTP header, check magic number) 2010-02-10 20:02:55 +00:00
Christophe Dumez
cbafac8ea9 - Make it impossible to open more than one options dialog 2010-02-09 23:32:54 +00:00
Christophe Dumez
e4bf116ce8 - Fix a crash when adding an already existing torrent 2010-02-09 21:35:20 +00:00
Christophe Dumez
bccdad4b1b - Fix memory leak in rss 2010-02-09 21:20:43 +00:00
Christophe Dumez
9b372b3cce Important fix regarding actions on selected torrents. With filters enabled, it could happen that non-selected torrents are affected. 2010-02-09 20:44:33 +00:00
Christophe Dumez
98d0c00f85 Link against boost and ssl to fix issues with gold linker 2010-02-09 12:01:13 +00:00
Christophe Dumez
9d2f2230ee - Fix bugs with new feature: "Add trackers from duplicate torrent" 2010-02-09 08:06:49 +00:00
Christophe Dumez
81c6958428 - Bump to beta3 2010-02-08 19:06:21 +00:00
Christophe Dumez
f976eda6a9 - Updated French translation 2010-02-08 19:05:41 +00:00
Christophe Dumez
fe8d5a3528 - Fix file prioritizing in a torrent 2010-02-08 18:49:04 +00:00
Christophe Dumez
240c3508fe Fix possible crash when changing torrents label 2010-02-07 18:37:26 +00:00
Christophe Dumez
1065f5fb86 FEATURE: If 2 torrents have the same hash, add new trackers to the existin
g torrent
2010-02-07 14:31:45 +00:00
Christophe Dumez
2b37986007 Updated Spanish/Catalan translations 2010-02-06 21:45:47 +00:00
Christophe Dumez
22d0c4a241 - Fix possible crash when removing a torrent 2010-02-06 21:31:51 +00:00
Christophe Dumez
dd47ce6767 Fix font size of two torrent addition dialog buttons (Patch by Mariusz Fik) 2010-02-05 19:06:11 +00:00
Christophe Dumez
5c80ce42e0 Cosmetic fix to usage display (--help)
Usage display is now localized
2010-02-05 19:02:27 +00:00
Christophe Dumez
adb727d282 Make sure seeding torrents display a progress of 100% 2010-02-04 20:18:58 +00:00
Christophe Dumez
e17ca355ae Startup optimization 2010-02-04 19:16:04 +00:00
Christophe Dumez
b80940ac4f - Optimize startup speed (do not resave fastresume data for torrents that were seeded in the previous session) 2010-02-04 17:19:00 +00:00
Christophe Dumez
1eca139db9 Fix new "Automatically recheck torrents on completion" feature (would keep on rechecking) 2010-02-03 19:44:19 +00:00
Christophe Dumez
25278beb2f Minor code optimization 2010-02-03 19:31:13 +00:00
Christophe Dumez
5922ffff62 Fix to Spanish and catalan translations 2010-02-03 18:55:49 +00:00
Christophe Dumez
ff084e9681 - Fixes to German translation 2010-02-03 07:59:36 +00:00
Christophe Dumez
86e5d219d2 Updated Ukranian translation
Added Oleh Prypin as Ukrainian translator
2010-02-02 20:24:52 +00:00
Christophe Dumez
b78e0a54ed Updated spanish and catalan translations 2010-02-02 20:05:47 +00:00
Christophe Dumez
4bfacb8b91 - Clear torrent errors when starting a torrent 2010-01-31 19:03:34 +00:00
Christophe Dumez
e9ad58a373 Improved application style handling 2010-01-31 17:46:21 +00:00
Christophe Dumez
09c48539ad - COSMETIC: Improved style management 2010-01-31 17:30:17 +00:00
Christophe Dumez
3693ecdd30 Moved peer resolution settings to advanced settings 2010-01-31 16:43:19 +00:00
Christophe Dumez
ddc66e6005 - Cosmetic changes to advanced preferences 2010-01-31 16:34:38 +00:00
Christophe Dumez
fd0b1f8931 - Did not mean to commit that 2010-01-31 16:27:05 +00:00
Christophe Dumez
1a4f638ff6 - Moved "Transfer list refresh interval" to advanced settings 2010-01-31 16:25:04 +00:00
Christophe Dumez
77239db3c5 FEATURE: Torrents can be automatically rechecked on completion 2010-01-31 16:14:56 +00:00
Christophe Dumez
0ea59c8d58 Bump to beta2 2010-01-31 16:00:50 +00:00
Christophe Dumez
54e2a8c7fe - Update language files 2010-01-31 16:00:14 +00:00
Christophe Dumez
245a8e0a3a FEATURE: User can choose to include the protocol overhead in transfer limits 2010-01-31 15:57:07 +00:00
Christophe Dumez
51e474c893 FEATURE: User can choose to apply transfer limits on LAN too 2010-01-31 15:42:24 +00:00
Christophe Dumez
81d3e64518 - Advanced preferences: Property column should not be editable 2010-01-31 15:31:41 +00:00
Christophe Dumez
95da161be3 FEATURE: Outgoing ports range can be customized (for QoS) 2010-01-31 15:27:54 +00:00
Christophe Dumez
8618f13b7a - Created "Advanced settings" tab in program preferences and moved "Disk cache" there 2010-01-31 15:11:15 +00:00
Christophe Dumez
e24e7578f2 Added "Export .torrent files to..." feature to the Web UI
Fix Scan dir preferences in Web UI
2010-01-31 13:47:57 +00:00
Christophe Dumez
a03ad3de23 FEATURE: Torrent files can be exported to a given directory
BUGFIX: Fix crash when double-clicking on a torrent that has no metadata to open its save path
2010-01-31 13:09:46 +00:00
Christophe Dumez
9bd40a9b79 - Updated language files 2010-01-30 18:17:27 +00:00
Christophe Dumez
b4b61b9b7d - Launch directly the new search instead of stopping the current one if the user changed the search pattern 2010-01-30 18:15:25 +00:00
Christophe Dumez
5656fe9a9b FEATURE: Added "Upload/Download limit" columns to transfer list 2010-01-30 17:47:01 +00:00
Christophe Dumez
fb79146ae6 FEATURE: Added "Added/Completed On" columns to transfer list 2010-01-30 16:28:07 +00:00
Christophe Dumez
ba27191b2a - Fix compilation error when geoip database is embedded 2010-01-29 19:01:32 +00:00
Christophe Dumez
dc87aa3d5c - Download thread now supports HTTP redirection 2010-01-29 18:37:47 +00:00
Christophe Dumez
83cf3aebab Clean up URL seed code
Center bandwidth limiting dialogs
2010-01-27 20:34:53 +00:00
Christophe Dumez
dedd9bd03c - Add more RSS and tracker debug 2010-01-27 12:21:14 +00:00
Christophe Dumez
ab36a358b7 - Fix "Append .!qB extension to incomplete files". The extension would stay under certain conditions 2010-01-26 08:02:15 +00:00
Christophe Dumez
6ea97f09cf - Updated spanish and catalan translations 2010-01-25 20:06:22 +00:00
Christophe Dumez
5f7822d202 Fix alternative upload speed limit overwriting standard upload speed limit. 2010-01-25 19:54:46 +00:00
Christophe Dumez
6a87225dd0 - Fix typo in src.pro 2010-01-24 19:19:58 +00:00
Christophe Dumez
b6f56c0812 - Bump to v2.2.0beta1 2010-01-24 18:16:42 +00:00
Christophe Dumez
c4ce2a2549 Improved user friendlyness of size units (Use 1KiB/s instead of 1024B/s)
Optimized transfer list repainting
2010-01-24 18:06:51 +00:00
Christophe Dumez
41650da297 - I should not have to call repaint() manually 2010-01-24 17:16:20 +00:00
Christophe Dumez
74c61e6805 - Fix for translations 2010-01-24 17:03:57 +00:00
Christophe Dumez
e8dd7bbcc9 - Fix possible race condition in RSS that could cause crash on startup (bug #511441) 2010-01-24 16:46:10 +00:00
Christophe Dumez
335d012d55 - Updated a field that should not be translatable 2010-01-24 15:55:55 +00:00
Christophe Dumez
17fc58840a - Updated language files 2010-01-24 15:37:58 +00:00
Christophe Dumez
0e8c55b9f5 FEATURE: Added back file prioritizing in a torrent (it seems users were using it after all) 2010-01-24 15:26:29 +00:00
Christophe Dumez
d581f653c6 Nox compilation fix 2010-01-24 12:07:07 +00:00
Christophe Dumez
48dbaf05ae FEATURE: Bandwidth scheduler (automatically use alternative speed limits for a given period) 2010-01-24 11:57:15 +00:00
Christophe Dumez
540da69d61 - Remember alternative speeds state on restart 2010-01-23 20:45:14 +00:00
Christophe Dumez
06efd64a80 FEATURE: User can set alternative speed limits for fast toggling
Bandwidth scheduler is not functional yet (but appears in program preferences)
2010-01-23 20:44:09 +00:00
Christophe Dumez
62d872984b Make sure invalid torrent are removed from the transfer list 2010-01-23 19:15:00 +00:00
Christophe Dumez
1dd11dd8f8 Fix possible issue where torrents would not be displayed in the transfer list 2010-01-23 19:01:10 +00:00
Christophe Dumez
2ce375d8eb - Improved date handling in RSS 2010-01-23 16:16:42 +00:00
Christophe Dumez
8ed0e58d63 - "Open destination folder" now opens torrent root folder (if it contains one) instead of the parent folder 2010-01-23 09:54:50 +00:00
Christophe Dumez
660a6929fd Apply patch from Elrond to improve transfer speed display in peers list 2010-01-21 23:59:55 +00:00
Christophe Dumez
44f6c972d4 Moved screenCenter function to misc.h to avoid code duplication
Make sure torrent deletion dialog is now centered on screen
2010-01-21 22:23:13 +00:00
Christophe Dumez
6a6077bf1d Improved previous patch: Force recheck only if we detected that renaming overwrote an existing file 2010-01-21 21:14:54 +00:00
Christophe Dumez
30234a4e78 - Force recheck after renaming files 2010-01-21 20:27:59 +00:00
Christophe Dumez
dc9edf7538 - Fix overwrite check when renaming a folder in a torrent 2010-01-21 18:33:53 +00:00
Christophe Dumez
92574458d0 "Add in pause" setting is no longer ignored if torrent is loaded from a watched directory 2010-01-20 18:53:11 +00:00
Christophe Dumez
c35ef9ad15 - Fix opening on torrent folder in explorer when path contains special characters or spaces 2010-01-20 18:41:12 +00:00
Christophe Dumez
4059bcc0fa Updated Russian translation 2010-01-20 18:38:38 +00:00
Christophe Dumez
1840d1c49f - Paused torrents can now be rechecked 2010-01-20 18:02:26 +00:00
Christophe Dumez
cbd948f6f3 Updated hungarian translation 2010-01-20 16:02:56 +00:00
Christophe Dumez
454c093033 - qBittorrent can now listen on ports < 1024 (must be root) 2010-01-20 09:54:51 +00:00
Christophe Dumez
45eaf7ce58 - Updated Simplified chinese translation (legal notice was missing) 2010-01-20 09:44:45 +00:00
Christophe Dumez
04b7af4df5 - Fix renaming of files with unicode characters 2010-01-20 08:45:31 +00:00
Christophe Dumez
8c6978be82 - Exceptions to "Add Torrent is paused" setting can now be set in torrent addition dialog 2010-01-20 08:35:36 +00:00
Christophe Dumez
6c9e7156f7 - Fix magnet link support 2010-01-19 23:43:29 +00:00
Christophe Dumez
bc89845523 - Improve configure file output 2010-01-19 23:12:13 +00:00
Christophe Dumez
9ffe9c2006 - Configure file now checks for pkg-config executable since it is required to detect libtorrent-rasterbar 2010-01-19 22:55:49 +00:00
Christophe Dumez
1d598d7772 - Nox version should not require libqtxml 2010-01-19 22:40:23 +00:00
Christophe Dumez
7f576ccc82 - Fix folder renaming (would misbehave under certain conditions) 2010-01-19 22:35:54 +00:00
Christophe Dumez
d5da8a6277 - Save torrent file as soon as we get the torrent metadata so that it does not have to be redownloaded on restart 2010-01-19 21:47:53 +00:00
Christophe Dumez
a297204b27 Updated spanish and catalan translations 2010-01-19 09:42:55 +00:00
Christophe Dumez
e0182bb03e - Enabling debug in trunk 2010-01-19 00:32:53 +00:00
Christophe Dumez
ca5bf5e9d7 Removed useless include in project file 2010-01-18 23:52:05 +00:00
Christophe Dumez
5475d730ff - Actual Qt4.4 compilation fix 2010-01-18 22:09:28 +00:00
Christophe Dumez
7796520580 - Attempt to fix compilation with Qt 4.4 2010-01-18 21:46:04 +00:00
Christophe Dumez
340500c351 - Fix compilation warning in nox mode (introduced in v2.2.0alpha) 2010-01-18 21:28:54 +00:00
Christophe Dumez
043d33ff91 - Updated language files 2010-01-18 19:29:02 +00:00
Christophe Dumez
baf991b342 - The user must now press 'y' to accept the legal notice in nox mode (other keys will refuse and stop the program). Thanks Mariusz Fik 2010-01-18 19:20:59 +00:00
Christophe Dumez
dc47e90126 Applied legal notice patch for Mariusz Fik 2010-01-18 19:16:18 +00:00
Christophe Dumez
67e3f9e686 - Trunk is now v2.2.0alpha 2010-01-18 19:14:33 +00:00
Christophe Dumez
aaeb6b90ed Updated Greek and Bulgarian translations 2010-01-18 18:33:54 +00:00
Christophe Dumez
d124ada755 - Make sure status bar is rendered properly when the font size is higher than default 2010-01-18 18:24:43 +00:00
Christophe Dumez
31105aefe4 - Updated configure file (libtorrent >= 0.14.4 is required) 2010-01-18 17:10:25 +00:00
Christophe Dumez
44c258796e - Bump to final, updated changelog (Release is nearing) 2010-01-18 17:06:42 +00:00
Christophe Dumez
26100120a9 Updated Portuguese and Brazilian translations 2010-01-17 23:18:41 +00:00
Christophe Dumez
0db8ce891b Updated czech translation 2010-01-17 23:09:44 +00:00
Christophe Dumez
979aba5685 Updated Serbian translation 2010-01-17 21:31:17 +00:00
Christophe Dumez
396da6bd94 - Fix to make sure that the filters list height is always sufficient to display all the filters (without the need for a scrollbar) 2010-01-17 21:27:08 +00:00
Christophe Dumez
1b0d86220f - Increased number of failed authentication attempts to 5 in Web UI 2010-01-17 09:09:57 +00:00
Christophe Dumez
957d2c0d1a Updated Korean translation 2010-01-17 02:15:17 +00:00
Christophe Dumez
455657912a Updated Simplified Chinese translation 2010-01-17 02:02:55 +00:00
Christophe Dumez
e3da1902df French translation fix 2010-01-17 01:27:20 +00:00
Christophe Dumez
d0f8e9208f - Fixed year in man pages 2010-01-16 16:34:37 +00:00
Christophe Dumez
de50346428 HTTP proxy support for peer communication 2010-01-15 16:41:39 +00:00
Christophe Dumez
c7ca51f950 Use HTTP digest mode for Web UI authentication (instead of Basic) 2010-01-15 14:20:20 +00:00
Christophe Dumez
4522174555 Updated spanish and catalan translations 2010-01-15 07:32:33 +00:00
Christophe Dumez
126230ad08 BUGFIX: Properly display torrents with one file in subfolder(s) 2010-01-14 22:53:59 +00:00
Christophe Dumez
6aa1f4156a - bump to rc7 2010-01-14 22:08:06 +00:00
Christophe Dumez
2726faa090 - Updated french translation 2010-01-14 20:49:01 +00:00
Christophe Dumez
230b84032d - Updated Changelog 2010-01-14 20:41:58 +00:00
Christophe Dumez
9c4c5e2d1a - Protect Web UI authentication against brute forcing (IP are banned after 3 failed attempts) 2010-01-14 20:40:06 +00:00
Christophe Dumez
2bf8e2d2d7 - file priority can be set for finished torrents that have filtered files 2010-01-14 20:01:30 +00:00
Christophe Dumez
9bb05c8dea - Patch by Mariusz Fik to fix font inconsistancy in program preferences 2010-01-14 15:38:07 +00:00
Christophe Dumez
2707aa2818 - Display favicon in Web UI 2010-01-14 12:37:19 +00:00
Christophe Dumez
93c644da88 - Make sure no scroll bar is displayed in filters list 2010-01-14 12:22:52 +00:00
Christophe Dumez
4a114c0fdc - Updated spanish and Catalan translations 2010-01-14 12:17:47 +00:00
Christophe Dumez
f95108155d - Maximum value for rate limiting in peer list is now taken from program preferences 2010-01-13 21:23:02 +00:00
Christophe Dumez
75f75854c2 - Use automatic width for context menu in Web UI 2010-01-13 19:28:38 +00:00
Christophe Dumez
e20c3cd0b6 Updated Polish translation 2010-01-13 18:58:59 +00:00
Christophe Dumez
2273ea4099 - Use Alternating row colors in {Peers, trackers, Files} lists too (if enabled) 2010-01-12 23:16:18 +00:00
Christophe Dumez
b115b0c6a3 Updated German translation 2010-01-12 21:16:00 +00:00
Christophe Dumez
9d79a51f18 - Fix compilation error with libtorrent v0.14.3 2010-01-12 08:23:18 +00:00
Christophe Dumez
db9005158e - Updated Korean translation 2010-01-12 08:22:12 +00:00
Christophe Dumez
4491999a8c - qBittorrent requires libtorrent-rasterbar >= 0.14.4 2010-01-11 22:09:56 +00:00
Christophe Dumez
113a502a7e - Bump to rc6 2010-01-11 20:23:28 +00:00
Christophe Dumez
7ad39003f4 - Fix error in torrent addition dialog when the label name is left empty 2010-01-11 20:09:32 +00:00
Christophe Dumez
4b43871708 - Bump to v2.1.0rc5
- Disabled debug mode
2010-01-11 14:53:56 +00:00
Christophe Dumez
aa8f7552a2 - RSS filters are now alphabetically sorted
- Fix crash when renaming currently displayed RSS filter
- Remove overwriting confirmation when exporting RSS filters since Qt takes care of it
2010-01-11 14:39:58 +00:00
Christophe Dumez
19d94b53d2 Updated Swedish translation 2010-01-11 07:59:56 +00:00
Christophe Dumez
ca98a261e6 Updated Serbian translation 2010-01-10 18:53:19 +00:00
Christophe Dumez
535ec2ced6 Updated Romania and traditiona chinese translations 2010-01-10 16:15:44 +00:00
Christophe Dumez
a300c236ba - Code cleanup 2010-01-09 23:33:45 +00:00
Christophe Dumez
b16c26b24c - Label list is now alphabetically sorted 2010-01-09 23:24:50 +00:00
Christophe Dumez
1b1dde3fc8 - Fix '!' support in label names 2010-01-09 22:09:20 +00:00
Christophe Dumez
bd5880843f - flush cache before file preview (libtorrent >= 0.15 only) 2010-01-09 21:39:17 +00:00
Christophe Dumez
abf35a31f3 Updated Finnish translation 2010-01-09 21:06:50 +00:00
Christophe Dumez
015638035a Updated Spanish and Catalan translation 2010-01-09 20:08:47 +00:00
Christophe Dumez
8e27fe83f1 Updated greek translation 2010-01-09 19:02:40 +00:00
Christophe Dumez
ce4b105065 Updated slovak translation 2010-01-09 17:53:54 +00:00
Christophe Dumez
37a7b79a6f - Translated legal notice into French 2010-01-09 15:32:58 +00:00
Christophe Dumez
ef19e8aeef - Added legal notice dialog on startup. The user must agree for the program to start. 2010-01-09 15:26:20 +00:00
Christophe Dumez
f6886b4749 - Compilation fix for Qt 4.4 2010-01-09 14:19:43 +00:00
Christophe Dumez
8306959cb4 - Make sure the application is not built against QtGui when the GUI is disabled 2010-01-09 13:55:24 +00:00
Christophe Dumez
d1918ee206 Updated Serbian translation 2010-01-09 09:33:01 +00:00
Christophe Dumez
b2b76f9e35 Updated Traditional Chinese translation 2010-01-09 08:53:59 +00:00
Christophe Dumez
a07fb264e8 Updated German translation 2010-01-08 22:51:14 +00:00
Christophe Dumez
881f2d04d2 - Updated french translation 2010-01-08 20:45:09 +00:00
Christophe Dumez
e1b629df88 - Bump to rc4
- Clean up project file
2010-01-08 20:33:54 +00:00
Christophe Dumez
eab6a194e1 - Updated AUTHORS file 2010-01-08 20:17:12 +00:00
Christophe Dumez
3733bc9148 FEATURE: Search engine can now use a SOCKS5 proxy
BUGFIX: Search engine loads new proxy settings without program restart
Fix a bug in HTTP communication proxy settings
2010-01-08 20:15:08 +00:00
Christophe Dumez
ae5746a636 - Updated Changelog 2010-01-07 21:12:11 +00:00
Christophe Dumez
cb509cebb3 - Updated search resource file 2010-01-07 21:11:07 +00:00
Christophe Dumez
511c4474c7 - Promoted torrentdownloads.net and vertor.com search plugins from unofficial plugins to official (in qBittorrent v2.1.0) 2010-01-07 21:08:58 +00:00
Christophe Dumez
d063aea977 - Double-clicking on folders in torrent content opens it in a file explorer 2010-01-07 20:48:52 +00:00
Christophe Dumez
447efc52d8 - Added SOCKS5 proxy for http connections to Web UI too 2010-01-07 20:40:39 +00:00
Christophe Dumez
296acf820c Fix to proxy settings
Added back SOCKS5 proxy support for HTTP communications
2010-01-07 20:35:12 +00:00
Christophe Dumez
6ae49acb69 - qbittorrent-nox no longer installs a desktop files, nor qbittorrent icons 2010-01-07 20:02:25 +00:00
Christophe Dumez
af1b06c5be - Fix several bugs in RSS plugin
* RSS downloader takes into consideration maximum number of articles per feed
  * Fix possible issue with RSS folder deletion
  * Clear persistant data whenever a RSS feed is deleted
2010-01-07 19:51:25 +00:00
Christophe Dumez
4732c8565d - Refresh RSS feed as soon as feed downloader is enabled 2010-01-07 18:42:47 +00:00
Christophe Dumez
52dd1476db - Fix addInPause setting in torrent addition dialog 2010-01-07 18:17:20 +00:00
Christophe Dumez
63170b9214 - Updated spanish and catalan translations 2010-01-07 07:37:51 +00:00
Christophe Dumez
2203b399df Updated Catalan and spanish translations 2010-01-07 07:34:41 +00:00
Christophe Dumez
d80f7a6ef3 - Updated Polish, Finnish, Catalan and spanish translations 2010-01-06 18:04:03 +00:00
Christophe Dumez
88c56d8250 - Added support for magnet links in search engine. Most search Web sites provides magnet links now and in the futures, they may provide only the magnet links. 2010-01-05 22:31:06 +00:00
Christophe Dumez
fca24a8f84 - Bump to rc3 2010-01-05 21:06:20 +00:00
Christophe Dumez
6d140a141a - Updated french translation 2010-01-05 21:05:37 +00:00
Christophe Dumez
a18e325c18 FEATURE: Files contained in a torrent are opened on double click (files panel) 2010-01-05 20:57:33 +00:00
Christophe Dumez
c4d9c51e49 - Never display a horizontal scrollbar in status filters list 2010-01-05 20:31:20 +00:00
Christophe Dumez
27e980de28 - Added buttons to change trackers priority (libtorrent v0.14 only) 2010-01-05 19:59:25 +00:00
Christophe Dumez
3c4906bb4d - Patch in last commit was wrong 2010-01-05 18:48:51 +00:00
Christophe Dumez
da796c80c3 - Forgot to move the torrent data when its label is deleted 2010-01-05 18:11:52 +00:00
Christophe Dumez
7a2af0f506 - Updated spanish and Catalan translation 2010-01-05 17:19:19 +00:00
Christophe Dumez
3e562e7450 - Updated French translation 2010-01-05 12:30:20 +00:00
Christophe Dumez
4fc777268b - Validate new file names to make sure they are allowed by the file system 2010-01-05 12:28:42 +00:00
Christophe Dumez
037e57b687 - Validate label names to make sure there is no character forbidden by the file system 2010-01-05 12:18:17 +00:00
Christophe Dumez
2b289655c1 - Fix torrent deletion confirmation dialog so that the text does not get cut on the right. (Fix by Elrond, Thanks!) 2010-01-04 22:40:20 +00:00
Christophe Dumez
118ea6093d - Rename GUI-less qBittorrent executable to "qbittorrent-nox", with its own man page 2010-01-04 22:29:48 +00:00
Christophe Dumez
cac6f7428c - When incomplete torrents are saved to a different path, check if content is already present at final location
- Automacillay force a data recheck every time a torrent is moved (because libtorrent does not take care of checking if the torrent data exists at the destination location)
2010-01-04 21:16:33 +00:00
Christophe Dumez
ae6acc4ca2 - Fix possible issue with label counts when deleting a torrent 2010-01-04 19:44:03 +00:00
Christophe Dumez
641c6f0132 - Updated slovak translation 2010-01-04 19:34:07 +00:00
Christophe Dumez
56dc8cad71 - Added ASSERT 2010-01-03 21:09:01 +00:00
Christophe Dumez
7cc07d842c - Put back the ASSERT (it should no longer be hit) 2010-01-03 19:03:05 +00:00
Christophe Dumez
baaadf07fa - Do not save currently selected label since we no longer restore it on startup 2010-01-03 18:52:43 +00:00
Christophe Dumez
719b32ba36 - Fix bugs with torrent labeling (Problems when adding a torrent when a filter was selected) 2010-01-03 18:51:24 +00:00
Christophe Dumez
af5c1096b5 - Fix crash on start introduced in last commit 2010-01-03 18:42:16 +00:00
Christophe Dumez
3008222b92 - Make sure QModelIndex is correct before using it 2010-01-03 18:34:37 +00:00
Christophe Dumez
5ef9faacd5 Updated french translation
Bump to rc2
2010-01-03 15:04:04 +00:00
Christophe Dumez
ff65b6ea2f - Adapt torrent addition dialog size when the torrent is a magnet link (since we don't display torrent content) 2010-01-03 14:59:14 +00:00
Christophe Dumez
4c8a087b81 - Fix signal bug introduced in last commit 2010-01-03 14:41:29 +00:00
Christophe Dumez
8f4bf93f02 - Fix defining a new label from torrent addition dialog
- Stop catching SIGABRT, SIGSEGV once one is received to avoid possible infinite loop
2010-01-03 14:38:59 +00:00
Christophe Dumez
824b2f6fff - Update changelog and language files 2010-01-03 14:24:05 +00:00
Christophe Dumez
ba0c7334b7 - Use torrent addition dialog for Magnet URIs too 2010-01-03 14:20:31 +00:00
Christophe Dumez
a1dd724220 - Fix issue with torrent label not being remembered on startup under certain circumstances 2010-01-03 13:15:26 +00:00
Christophe Dumez
a7820e5f08 - Make sure the torrent file is valid before loading it 2010-01-03 13:00:16 +00:00
Christophe Dumez
1a2eee8060 - Fix to spanish and Catalan translations 2010-01-03 12:47:40 +00:00
Christophe Dumez
4a2713a9f0 - Updated program usage translatable strings to make sure translators do not translate program parameters 2010-01-03 09:17:41 +00:00
Christophe Dumez
5ece0b4f70 - Spanish and Catalan translations are now complete 2010-01-03 09:08:07 +00:00
Christophe Dumez
44e8ec2b37 - Removed "Bullet" from translatable strings since it is not displayed 2010-01-03 01:19:37 +00:00
Christophe Dumez
d7e5f4b895 - Update Spanish and Catalan translations 2010-01-03 01:02:04 +00:00
Christophe Dumez
b0c7bdf82b - Made program usage message (help) translatable
- Bump to rc1
2010-01-02 23:40:57 +00:00
Christophe Dumez
a239ac1a52 - Removed debug 2010-01-02 23:12:40 +00:00
Christophe Dumez
99459dc55d - Fixing indentation
- Stop catching SIGINT and SIGTERM once the application has exiting
2010-01-02 23:03:46 +00:00
Christophe Dumez
78ba99778a - Fix crash when deleting a label 2010-01-02 22:53:27 +00:00
Christophe Dumez
96d3df3135 - Updated Changelog and INSTALL file 2010-01-02 22:29:36 +00:00
Christophe Dumez
cbe4bbac6a - Merged headless branch 2010-01-02 22:20:37 +00:00
Christophe Dumez
f502e82ec4 - Fix to Catalan translation 2010-01-02 15:09:35 +00:00
Christophe Dumez
a5d8766a9e Use XDG folders (.cache, .local) instead of .qbittorrent
old .qbittorrent is imported and moved to XDG folder by qBittorrent so that the user does not loose anything
2010-01-02 11:22:44 +00:00
Christophe Dumez
55d8e3d76b Updated Catalan translation 2010-01-02 09:10:51 +00:00
Christophe Dumez
7b7fb4d278 - Updated Spanish and Catalan translations 2010-01-01 20:34:32 +00:00
Christophe Dumez
09c7c50ad3 - qBittorrent can now identify itself as KTorrent too 2010-01-01 20:29:03 +00:00
Christophe Dumez
131250dc03 - Bump to beta4 2010-01-01 13:38:55 +00:00
Christophe Dumez
130187723c - Updated language files and french translation 2010-01-01 13:38:23 +00:00
Christophe Dumez
7bac95c9ad - Torrents can be renamed in transfer list 2010-01-01 13:25:59 +00:00
Christophe Dumez
add2475700 - Files / Folders can also be renamed directly from torrent addition dialog 2010-01-01 10:55:13 +00:00
Christophe Dumez
533e402bca - Updated Spanish translation 2009-12-31 18:23:06 +00:00
Christophe Dumez
b87a23037e - Fix crash in pieces downloaded/availability bars when the torrent has too many pieces 2009-12-31 16:34:56 +00:00
Christophe Dumez
6d88bb5b83 - Made sure the pixmap cannot be drawn with uninitialized data 2009-12-31 15:10:30 +00:00
Christophe Dumez
435801c893 - Added Peer id spoofing settings to Web UI 2009-12-30 17:47:10 +00:00
Christophe Dumez
9d0577fa5c - Display the correct DHT port in the console 2009-12-30 16:47:03 +00:00
Christophe Dumez
f2891dae74 - Another fix for global download rate limiting in Web UI 2009-12-30 16:40:52 +00:00
Christophe Dumez
a43a1f5b67 - Fix global download rate limiting (Web UI) 2009-12-30 16:37:34 +00:00
Christophe Dumez
ee9ca1ece7 - Use global maximum transfer rates as maximum values in per-torrent speed limiting dialogs (Web UI) 2009-12-30 16:32:19 +00:00
Christophe Dumez
8271e20fac - Started work on adding Peer ID spoofing settings for Web UI (incomplete) 2009-12-30 16:21:05 +00:00
Christophe Dumez
132b1f7ffe - Use global maximum transfer rates as maximum values in per-torrent speed limiting dialogs 2009-12-30 16:18:50 +00:00
Christophe Dumez
77b4d97069 - Display current version in fields when the combobox value is changed (Peer ID spoofing) 2009-12-30 15:55:21 +00:00
Christophe Dumez
2168d5a30e - qBittorrent no longer listens on a random port whenever it receives a listen_failed_alert (because it may correspond to another network interface)
- Display a "disconnected" icon in status bar whenever qBittorrent fails to listen on the selected port
2009-12-30 15:52:20 +00:00
Christophe Dumez
7ad90b1b80 - Fix Proxy type rank in enum (to be consistent with older qBittorrent versions)
- Added Proxy settings to Web UI
- Fix tiny bugs in proxy settings
2009-12-30 15:07:51 +00:00
Christophe Dumez
f60ef5dbd5 - Added a button to reset spoofed client version/build to latest
- Fix little bug when loading saved version/build for spoofed client
2009-12-30 13:26:35 +00:00
Christophe Dumez
4dc26d0a77 - FEATURE: qBittorrent can identify itself as uTorrent or Vuze (Any version) 2009-12-30 13:10:06 +00:00
Christophe Dumez
551273b831 - Updated language files 2009-12-30 10:56:08 +00:00
Christophe Dumez
d5a09674ae FEATURE: Better proxy support and preferences remodeling 2009-12-30 10:53:58 +00:00
Christophe Dumez
907e620e9e - Added console message for Web UI (with port)
- Updated language files
2009-12-30 09:49:56 +00:00
Christophe Dumez
f96ec75eec - Improve Web UI settings so that the HTTP server is reconstructed only when necessary 2009-12-30 09:46:06 +00:00
Christophe Dumez
4d00db2b42 - Encode correctly Float Type using QVariant/JSON (introduced in Qt 4.6) 2009-12-29 22:53:00 +00:00
Christophe Dumez
db564b4521 - wildcard matching for "do not match" tokens too 2009-12-29 21:42:31 +00:00
Christophe Dumez
3f2076d195 - Use Wildcard matching instead of full regex one (much simpler and seems to be what the user expects) in RSS feed downloader 2009-12-29 21:40:23 +00:00
Christophe Dumez
ed13c43e93 - Fix several issues with the files properties in Web UI (introduced recently) 2009-12-29 20:26:32 +00:00
Christophe Dumez
b5a9fe71e1 - Fix JSON communication between qBittorrent and Web UI 2009-12-29 20:09:46 +00:00
Christophe Dumez
d0037d90f4 FEATURE: uTorrent compatible tracker list support (use torrentz.com url as a default) 2009-12-29 16:36:36 +00:00
Christophe Dumez
e885ee0d35 - Fix some other DHT port issues 2009-12-29 10:04:41 +00:00
Christophe Dumez
ff5e5d1062 - Fix some other listen port issues 2009-12-29 09:59:32 +00:00
Christophe Dumez
1bfadf5219 - Little piece availability computation optimization 2009-12-28 21:45:34 +00:00
Christophe Dumez
4f9eca78d9 - Fix to port settings 2009-12-28 21:17:15 +00:00
Christophe Dumez
7aa2994078 - Fix possible crash when closing a search tab 2009-12-28 20:52:21 +00:00
Christophe Dumez
1128b3ea83 * Replace priority combo boxes by check boxes in Web UI as in Regular UI
* Prepare http server and preferences classes to add new settings to Web UI
  * Tabified Program preferences in Web UI since there will be a lot of settings soon
  * Started to add new settings to Web UI (PeX, LSD, Encryption, save path, temp path, scan dir, preallocateall, queueing, listen_port, upnp, nat-pmp, language, ip filter) -> Proxy is missing
  * Added a command line parameter to change the web ui port
  * Fix PeerGuardian .p2b binary filter support
2009-12-28 19:39:47 +00:00
Christophe Dumez
9d06947125 - Updated Catalan author name 2009-12-23 20:11:48 +00:00
Christophe Dumez
14cc600a8b - Updated Spanish and Catalan translations 2009-12-23 20:07:34 +00:00
Christophe Dumez
4f3fd86f91 - Bump to v2.1.0beta2 2009-12-23 09:01:06 +00:00
Christophe Dumez
e663717d64 - Update comment 2009-12-22 19:23:34 +00:00
Christophe Dumez
8b5d388e77 - Use the save path set in program preferences as a default in torrent addition dialog 2009-12-22 19:17:27 +00:00
Christophe Dumez
22d781edd5 - Updated Changelog 2009-12-22 17:41:12 +00:00
Christophe Dumez
4252832ba5 - Fix issue with speed limiting (Infinite value was not handled properly)
- Improved bandwith limiting dialog by adding a SpinBox so that the user can input the value manually
2009-12-22 17:39:12 +00:00
Christophe Dumez
fab58296af - Fix exception in tracker list when torrent has no metadata. The exeption was caught anyway but the trackers were not displayed 2009-12-22 15:37:48 +00:00
Christophe Dumez
e142877e10 - Fix little typo 2009-12-22 14:20:16 +00:00
Christophe Dumez
6f6e453ae4 - COSMETIC: Use alternating row colors in transfer list (set in program preferences) 2009-12-22 14:06:36 +00:00
Christophe Dumez
50e620daf2 - Handle paths with (~, ., ..) properly 2009-12-22 10:29:39 +00:00
Christophe Dumez
c334439df6 - Updated spanish translator name 2009-12-21 16:53:18 +00:00
Christophe Dumez
2d9b4f273e - Updated Spanish translation 2009-12-21 16:09:11 +00:00
Christophe Dumez
15c7099e85 - Fix "Browse" button in program preferences for "Temp path" 2009-12-19 20:39:38 +00:00
Christophe Dumez
d2b1f6176f - Fix to Serbian translation 2009-12-19 19:35:08 +00:00
Christophe Dumez
8306d7931b - Updated French translation 2009-12-19 19:14:39 +00:00
Christophe Dumez
b07fbb726e - Bump to beta1 2009-12-19 18:55:55 +00:00
Christophe Dumez
9586f0e61c - Use checkboxes for selective downloading instead of comboboxes 2009-12-19 18:55:04 +00:00
Christophe Dumez
7d66c07cef - Remove old folders after renaming 2009-12-19 16:53:27 +00:00
Christophe Dumez
28ecb2fe1d - Check if Folder name is already in use before renaming
- Made overwrite check case insensitive on Windows
2009-12-19 15:39:39 +00:00
Christophe Dumez
a9cafeaa76 - Torrent folders can also be renamed 2009-12-19 15:31:50 +00:00
Christophe Dumez
5fc69ccb73 - Torrent files can be renamed 2009-12-19 14:59:38 +00:00
Christophe Dumez
bc626e3512 - Updated Serbian translation 2009-12-19 07:48:08 +00:00
Christophe Dumez
98561f9db9 - Fix "Append .!qB extension" for torrents without metadata (Magnet Links) 2009-12-18 20:33:59 +00:00
Christophe Dumez
b56dee2a92 - Minor cosmetic changes to program preferences 2009-12-18 19:56:14 +00:00
Christophe Dumez
885a7f592e - Fix removal of !.qB extension when files get completed 2009-12-18 17:57:47 +00:00
Christophe Dumez
6965448a24 - Little cosmetic change in torrent addition dialog 2009-12-18 17:31:51 +00:00
Christophe Dumez
475d63dad8 - Fix "Append .!qB extension" feature. It appeared only for empty files (instead of incomplete ones) 2009-12-18 17:26:00 +00:00
Christophe Dumez
c87a0bde0b - Do not display .!qB incomplete files extension in files panel 2009-12-18 17:22:53 +00:00
Christophe Dumez
c1bc9886b7 - Fix "Append .!qB extension to incomplete files" feature 2009-12-18 17:18:43 +00:00
Christophe Dumez
88f8437c5a - Fix "Append .!qB extension to incomplete files" feature for torrents added from magnet links 2009-12-18 17:01:47 +00:00
Christophe Dumez
411a1c641d - Fix several bugs in new "Append label to save path" feature 2009-12-18 16:56:57 +00:00
Christophe Dumez
dc0ad73eca - Fix torrent Labeling from torrent addition dialog 2009-12-18 16:36:48 +00:00
Christophe Dumez
04e008afa0 - Fix new settings not being saved 2009-12-18 16:32:26 +00:00
Christophe Dumez
a6207f70d5 - Fix .qbittorrent folder not being created 2009-12-18 15:13:39 +00:00
Christophe Dumez
b8a30be7bc - Read RSS items are now remembered correctly on restart for feeds with no torrents attached 2009-12-18 14:45:07 +00:00
Christophe Dumez
67d60766c1 - Fix Mininova search engine plugin 2009-12-18 14:14:21 +00:00
Christophe Dumez
97c0b28a98 - Fix piratebay search plugin 2009-12-18 13:58:13 +00:00
Christophe Dumez
c61aded388 - Initial implementation of "Append .!qB extension to incomplete files" (untested)
- Update torrent save path when its label is changed and "Append label to save path" setting is set
2009-12-18 13:36:47 +00:00
Christophe Dumez
1fd57b5d63 - FEATURE: Labeled torrent can be downloaded corresponding subfolders 2009-12-17 20:28:30 +00:00
Christophe Dumez
755b8dec30 - Peer Exchange can be disabled from preferences 2009-12-17 18:00:21 +00:00
Christophe Dumez
ecd5c1fcc3 - Updated language files 2009-12-17 17:40:55 +00:00
Christophe Dumez
db5402385a FEATURE: Disk cache size can be set from preferences 2009-12-17 17:37:54 +00:00
Christophe Dumez
09ef3073a1 - Forgot to make "Label" string translatable 2009-12-17 10:01:01 +00:00
Christophe Dumez
6dd3833e0f - Added icons for label actions in context menu 2009-12-17 09:59:43 +00:00
Christophe Dumez
d4762a4d8d - Updated Changelog 2009-12-16 22:20:28 +00:00
Christophe Dumez
38cc55ea09 - Add hover effect of labels/categories to animate drag'n drop 2009-12-16 22:06:24 +00:00
Christophe Dumez
5d60295db3 - Drag'n drop to labels cleanup 2009-12-16 15:06:02 +00:00
Christophe Dumez
18bd3b855c - Added drag'n Drop from torrent list to labels (for torrent labeling)
- Fix label counters update in some cases
2009-12-16 14:55:07 +00:00
Christophe Dumez
868d423c82 - Use folder icon for labels 2009-12-16 13:20:38 +00:00
Christophe Dumez
edb6857de0 - Label counters are now properly updated (and labeling seems to work fine) 2009-12-16 13:09:30 +00:00
Christophe Dumez
ed803fb994 - Initiated work on torrent labeling/categorization (functional but not perfect yet 2009-12-15 19:52:43 +00:00
Christophe Dumez
83d83a364d - Added Frederic Lassabe to AUTHORS file 2009-12-15 13:08:34 +00:00
Christophe Dumez
690bb92154 - Catch CTRL+C and exit cleanly 2009-12-15 13:01:57 +00:00
Christophe Dumez
8e39eef7aa - Display console messages on Terminal
- Program seems to be working
2009-12-15 12:55:46 +00:00
Christophe Dumez
1923a51c59 - Prepare a little headlessloader class 2009-12-15 11:59:48 +00:00
Christophe Dumez
3dc1107b40 - Fix typo in src.pro that broke compilation with GUI enabled 2009-12-15 11:48:57 +00:00
Christophe Dumez
dd22e9009c - Added exit() function to headless loader class so that we have a way to return to prompt 2009-12-15 11:14:03 +00:00
Christophe Dumez
c7ccf39abf - Use QCoreApplication instead of QApplication when GUI is disabled 2009-12-15 11:10:47 +00:00
Christophe Dumez
af166f53d3 - Added headlessloader class to prepare Fred's work 2009-12-15 11:08:22 +00:00
Christophe Dumez
21eb26a374 - Commit changes to helpers.py (add referer to download_file() helper function) 2009-12-15 11:03:04 +00:00
Christophe Dumez
e2aaf5d1de - Edited project file in order not to compile UI classes when DISABLE_GUI is defined
- Added #ifndef directives to main.cpp in order to fix compilation when DISABLE_GUI is defined
2009-12-15 10:56:41 +00:00
Christophe Dumez
0b7ca15c4f - Added --disable-gui flag to configure file (adds DISABLE_GUI define) 2009-12-15 10:36:18 +00:00
Christophe Dumez
07ee2a4aff Branched for work on headless running 2009-12-15 10:23:41 +00:00
Christophe Dumez
141d3b6737 - Fix RSS Feed downloader for RSS with no torrent attachment (but articles link points to the torrent instead) 2009-12-14 18:42:21 +00:00
Christophe Dumez
e2c3e6dbaa - Better checking of based32 encoded Magnet Links to increase robustness 2009-12-13 10:13:41 +00:00
Christophe Dumez
b1126556c0 - Added Hex Magnet link support 2009-12-13 09:50:06 +00:00
Christophe Dumez
69cb8d1398 - Fix possible crash in torrent properties 2009-12-13 00:34:54 +00:00
Christophe Dumez
094d979ce6 - Fix "Object::connect: No such slot TransferListWidget::toggleSelectedTorrentsSuperSeeding()" warning when using libtorrent v0.14 2009-12-12 23:57:31 +00:00
Christophe Dumez
92dd669597 - Updated version number to v2.1.0alpha in trunk (new development focus) 2009-12-12 22:54:47 +00:00
173 changed files with 54951 additions and 20141 deletions

View File

@@ -6,12 +6,17 @@ Contributors:
* Ishan Arora <ishan@qbittorrent.org>
* Arnaud Demaizière <arnaud@qbittorrent.org>
* Grigis Gaëtan <cipher16@gmail.com>
* Christian Kandeler <zambesi@users.sourceforge.net>
Code from other projects:
* files src/ico.cpp src/ico.h
copyright: Malte Starostik <malte@kde.org>
license: LGPL
* files src/search_engine/socks.py
copyright: Dan Haim <negativeiq@users.sourceforge.net>
license: BSD
Images Authors:
* files: src/Icons/*.png
copyright: Gnome Icon Theme
@@ -56,7 +61,7 @@ Translations authors:
* files: src/lang/*.ts
copyright:
- Brazilian: Nick Marinho (nickmarinho@gmail.com)
- Bulgarian: Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net)
- Bulgarian: Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)
- Catalan: Francisco Luque Contreras (frannoe@ya.com)
- Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com)
- Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com)
@@ -82,5 +87,5 @@ Translations authors:
- Spanish: Francisco Luque Contreras (frannoe@ya.com)
- Swedish: Daniel Nylander (po@danielnylander.se)
- Turkish: Hasan Yilmaz (iletisim@hedefturkce.com)
- Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net)
- Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net) and Oleh Prypin (blaxpirit@gmail.com)
license: GPLv2

View File

@@ -1,4 +1,73 @@
* Web Dec 31 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.5
* Sun Mar 14 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.0
- FEATURE: User can set alternative speed limits for fast toggling
- FEATURE: Bandwidth scheduler (automatically use alternative speed limits for a given period)
- FEATURE: Added "Added/Completed On" columns to transfer list
- FEATURE: Added "Upload/Download limit" columns to transfer list
- FEATURE: Torrent files can be exported to a given directory
- FEATURE: Outgoing ports range can be customized (for QoS)
- FEATURE: User can choose to apply transfer limits on LAN too
- FEATURE: User can choose to include the protocol overhead in transfer limits
- FEATURE: Torrents can be automatically rechecked on completion
- FEATURE: If 2 torrents have the same hash, add new trackers/URL seeds to the existing torrent
- FEATURE: Trackers can be added from Web UI
- FEATURE: Global transfer information are displayed in the new Web UI status bar
- FEATURE: Allow to change the priority of several files at once
- FEATURE: Support for multiple scan folders (Patch by Christian Kandeler)
- BUGFIX: Only one log window can be opened at a time
- BUGFIX: Optimized RSS module memory usage
- BUGFIX: Consider HTTP downloads >1MB as invalid .torrent files and abort
- BUGFIX: Fix Web UI authentication with some browsers
- BUGFIX: Set Web UI ban period to 1 hour
- COSMETIC: Improved style management
* Mon Jan 18 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.0
- FEATURE: Graphical User Interface can be disabled at compilation time (headless running)
- FEATURE: Torrents can be labeled/categorized
- FEATURE: Labeled torrent can be downloaded corresponding subfolders
- FEATURE: Disk cache size can be set from preferences
- FEATURE: Peer Exchange (PeX) can be disabled from preferences
- FEATURE: Append !.qB extension to incomplete files option (libtorrent >= v0.15 only)
- FEATURE: Torrent files/folders can be renamed (torrent addition dialog or files properties)
- FEATURE: uTorrent compatible tracker list support (use torrentz.com url as a default)
- FEATURE: Better proxy support and preferences remodeling
- FEATURE: qBittorrent can identify itself as uTorrent, Vuze or KTorrent (Any stable version)
- FEATURE: Torrents can be renamed in transfer list
- FEATURE: Display torrent addition dialog for magnet links too
- FEATURE: Files contained in a torrent are opened on double click (files panel)
- FEATURE: Added support for magnet links in search engine
- FEATURE: Added vertor.com and torrentdownloads.net search plugins
- FEATURE: Search engine can now use a SOCKS5 proxy
- FEATURE: HTTP proxy support for peer communication
- BUGFIX: Search engine loads new proxy settings without program restart
- BUGFIX: Use XDG folders (.cache, .local) instead of .qbittorrent
- BUGFIX: Added legal notice on startup that the user must accept
- BUGFIX: Protect Web UI authentication against brute forcing
- BUGFIX: Use HTTP digest mode for Web UI authentication (instead of Basic)
- BUGFIX: Properly display torrents with one file in subfolder(s)
- BUGFIX: Display Web UI favicon
- BUGFIX: File priority can be set for finished torrents that have filtered files
- COSMETIC: Use checkboxes to filter torrent content instead of comboboxes
- COSMETIC: Use alternating row colors in transfer list (set in program preferences)
- COSMETIC: Added a spin box to speed limiting dialog for manual input
* Mon Jan 11 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.0.7
- BUGFIX: Fix 'Add in pause' setting in torrent addition dialog
- BUGFIX: Update RSS feed as soon as feed downloader is enabled
- BUGFIX: RSS Feed downloader ignores articles above maximum number of articles
- BUGFIX: Fix possible bug when deleting a RSS folder
- BUGFIX: Remove persistant data when a RSS feed is deleted
- BUGFIX: RSS filters are now alphabetically sorted
- BUGFIX: Fix crash when renaming currently displayed RSS filter
- BUGFIX: Remove overwriting confirmation when exporting RSS filters since Qt takes care of it
* Tue Jan 5 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.0.6
- BUGFIX: Fix detection of invalid torrent files
- BUGFIX: Stop catching signals once one has been caught to avoid possible infinite loop
- BUGFIX: Force data recheck whenever a torrent is moved
- BUGFIX: Detect existing torrent data even if incomplete torrents are saved to a different folder
- COSMETIC: Improve torrent deletion confirmation dialog so that the text that not get truncated
* Thu Dec 31 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.5
- BUGFIX: Fix crash with downloaded/availability bars when the torrent has too many pieces
* Wed Dec 30 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.4

61
INSTALL
View File

@@ -1,32 +1,55 @@
qBittorrent - A BitTorrent client in C++ / Qt4
------------------------------------------
./configure
make && make install
qbittorrent
1) Compile and install qBittorrent with Qt4 Graphical Interface
will install and execute qBittorrent hopefully without any problems.
$ ./configure
$ make && make install
$ qbittorrent
Dependencies:
- Qt >= 4.4.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
will install and execute qBittorrent hopefully without any problems.
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.0 REQUIRED, >= v0.15.0 ADVISED)
-> http://www.qbittorrent.org/download.php (advised)
-> http://www.libtorrent.net
Be careful: another library (the one used by rTorrent) uses a similar name.
Dependencies:
- Qt >= 4.4.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
- pkg-config executable
- python >= 2.3 (needed by search engine)
* Run time only dependency
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, >= v0.15.0 ADVISED)
-> http://www.libtorrent.net
Be careful: another library (the one used by rTorrent) uses a similar name.
- libnotify >= 0.4.2, glib-2.0 (optional)
* Can be used for system notifications to replace standard Qt notifications
so that it integrates better into the Desktop
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
- python >= 2.3 (needed by search engine)
* Run time only dependency
- libnotify >= 0.4.2, glib-2.0 (optional)
* Can be used for system notifications to replace standard Qt notifications
so that it integrates better into the Desktop
- geoip-database (optional)
* If qBittorrent cannot find this database, it will try to resolve countries using the Internet but it will be a lot slower.
* Run time only dependency
2) Compile and install qBittorrent without Qt4 Graphical interface
$ ./configure --disable-gui
$ make && make install
$ qbittorrent
will install and execute qBittorrent hopefully without any problems.
Dependencies:
- Qt >= 4.4.0 (libqt-devel, libqtcore, libqtnetwork)
- pkg-config executable
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, >= v0.15.0 ADVISED)
-> http://www.libtorrent.net
Be careful: another library (the one used by rTorrent) uses a similar name.
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
- geoip-database (optional)
* If qBittorrent cannot find this database, it will try to resolve countries using the Internet but it will be a lot slower.
* Run time only dependency
DOCUMENTATION:
Please note that there is a documentation with a "compiling howto" at http://wiki.qbittorrent.org.

69
configure vendored
View File

@@ -18,6 +18,8 @@ Main options:
--help This help text.
Dependency options:
--disable-gui Disable qBittorrent Graphical user
interface for headless running
--with-libboost-inc=[path] Path to libboost include files
--disable-libnotify Disable use of libnotify
--disable-geoip-database Disable use of geoip-database
@@ -140,6 +142,11 @@ while [ $# -gt 0 ]; do
shift
;;
--disable-gui)
QC_DISABLE_GUI="Y"
shift
;;
--with-libboost-inc=*)
QC_WITH_LIBBOOST_INC=$optarg
shift
@@ -181,6 +188,7 @@ echo PREFIX=$PREFIX
echo BINDIR=$BINDIR
echo DATADIR=$DATADIR
echo EX_QTDIR=$EX_QTDIR
echo QC_DISABLE_GUI=$QC_DISABLE_GUI
echo QC_WITH_LIBBOOST_INC=$QC_WITH_LIBBOOST_INC
echo QC_DISABLE_libnotify=$QC_DISABLE_libnotify
echo QC_DISABLE_geoip_database=$QC_DISABLE_geoip_database
@@ -290,6 +298,7 @@ cat >$1/modules.cpp <<EOT
/*
-----BEGIN QCMOD-----
name: Qt >= 4.4
arg: disable-gui, Disable qBittorrent Graphical user interface for headless running
-----END QCMOD-----
*/
class qc_qt4 : public ConfObj
@@ -300,11 +309,27 @@ public:
QString shortname() const { return "Qt 4.4"; }
bool exec()
{
if(QT_VERSION >= 0x040500) {
conf->addDefine("QT_4_5");
}
if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
conf->addDefine("DISABLE_GUI");
}
return(QT_VERSION >= 0x040400);
}
};
#line 1 "pkg-config.qcm"
/*
-----BEGIN QCMOD-----
name: pkg-config
-----END QCMOD-----
*/
#include <QProcess>
class qc_pkg_config : public ConfObj
{
public:
qc_pkg_config(Conf *c) : ConfObj(c) {}
QString name() const { return "pkg-config executable"; }
QString shortname() const { return "pkg-config"; }
bool exec(){
return !conf->findProgram("pkg-config").isEmpty();
}
};
#line 1 "libtorrent-rasterbar.qcm"
@@ -318,11 +343,11 @@ class qc_libtorrent_rasterbar : public ConfObj
{
public:
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
QString name() const { return "libtorrent-rasterbar >= 0.14.0 (>= 0.15.0 advised)"; }
QString name() const { return "libtorrent-rasterbar >= 0.14.4"; }
QString shortname() const { return "libtorrent-rasterbar"; }
bool exec(){
QStringList incs;
QString req_ver = "0.14.0";
QString req_ver = "0.14.4";
QString adv_ver = "0.15.0";
QString version, libs, other;
VersionMode mode = VersionMin;
@@ -330,12 +355,18 @@ public:
return false;
for(int n = 0; n < incs.count(); ++n)
conf->addIncludePath(incs[n]);
if(!libs.isEmpty())
conf->addLib(libs);
//if(!libs.isEmpty())
// conf->addLib(libs);
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other))
printf("\nWarning: libtorrent-rasterbar v%s was detected.\nAlthough it will compile and run, you will be missing some features. Please consider updating to v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
printf("\nWarning: libtorrent-rasterbar v%s was detected. Some feature will be disabled because they require v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
else
conf->addDefine("LIBTORRENT_0_15");
// Get linking parameters
QStringList params;
QByteArray staticlibs;
params << "--static" << "--libs" << "libtorrent-rasterbar";
conf->doCommand("pkg-config", params, &staticlibs);
conf->addLib(staticlibs.trimmed());
return true;
}
};
@@ -409,7 +440,15 @@ public:
qc_libnotify(Conf *c) : ConfObj(c) {}
QString name() const { return "libnotify >= 0.4.2 (optional)"; }
QString shortname() const { return "libnotify"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec(){
if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) {
return false;
}
QStringList incs;
QString req_ver = "0.4.2";
QString version, libs, other;
@@ -452,7 +491,15 @@ public:
qc_geoip_database(Conf *c) : ConfObj(c) {}
QString name() const { return "GeoIP Database (optional)"; }
QString shortname() const { return "GeoIP Database"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec() {
if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) {
return false;
}
#ifdef Q_WS_X11
if(!conf->getenv("QC_WITH_GEOIP_DATABASE_EMBEDDED").isEmpty()) {
#endif
@@ -474,6 +521,9 @@ cat >$1/modules_new.cpp <<EOT
o = new qc_qt4(conf);
o->required = true;
o->disabled = false;
o = new qc_pkg_config(conf);
o->required = true;
o->disabled = false;
o = new qc_libtorrent_rasterbar(conf);
o->required = true;
o->disabled = false;
@@ -1431,6 +1481,7 @@ export PREFIX
export BINDIR
export DATADIR
export EX_QTDIR
export QC_DISABLE_GUI
export QC_WITH_LIBBOOST_INC
export QC_DISABLE_libnotify
export QC_DISABLE_geoip_database

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

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@@ -8,11 +8,11 @@ class qc_libtorrent_rasterbar : public ConfObj
{
public:
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
QString name() const { return "libtorrent-rasterbar >= 0.14.0 (>= 0.15.0 advised)"; }
QString name() const { return "libtorrent-rasterbar >= 0.14.4"; }
QString shortname() const { return "libtorrent-rasterbar"; }
bool exec(){
QStringList incs;
QString req_ver = "0.14.0";
QString req_ver = "0.14.4";
QString adv_ver = "0.15.0";
QString version, libs, other;
VersionMode mode = VersionMin;
@@ -20,12 +20,18 @@ public:
return false;
for(int n = 0; n < incs.count(); ++n)
conf->addIncludePath(incs[n]);
if(!libs.isEmpty())
conf->addLib(libs);
//if(!libs.isEmpty())
// conf->addLib(libs);
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other))
printf("\nWarning: libtorrent-rasterbar v%s was detected.\nAlthough it will compile and run, you will be missing some features. Please consider updating to v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
printf("\nWarning: libtorrent-rasterbar v%s was detected. Some feature will be disabled because they require v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
else
conf->addDefine("LIBTORRENT_0_15");
// Get linking parameters
QStringList params;
QByteArray staticlibs;
params << "--static" << "--libs" << "libtorrent-rasterbar";
conf->doCommand("pkg-config", params, &staticlibs);
conf->addLib(staticlibs.trimmed());
return true;
}
};

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

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

View File

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

File diff suppressed because it is too large Load Diff

196
src/GUI.h
View File

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 409 B

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

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

View File

@@ -1,6 +1,6 @@
[Desktop Entry]
Categories=Qt;Network;P2P;
Comment=V2.0.5
Comment=V2.2.0
Exec=qbittorrent %f
GenericName=Bittorrent client
GenericName[bg]=Торент клиент

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 78 KiB

BIN
src/Icons/slow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 910 B

BIN
src/Icons/slow48.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
src/Icons/slow_off.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 680 B

View File

@@ -63,7 +63,7 @@ class about : public QDialog, private Ui::AboutDlg{
te_translation->append(tr("I would like to thank the following people who volunteered to translate qBittorrent:")+QString::fromUtf8("<br>"));
te_translation->append(QString::fromUtf8(
"<i>- <u>Brazilian:</u> Nick Marinho (nickmarinho@gmail.com)<br>\
- <u>Bulgarian:</u> Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net)<br>\
- <u>Bulgarian:</u> Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)<br>\
- <u>Catalan:</u> Francisco Luque Contreras (frannoe@ya.com)<br>\
- <u>Chinese (Simplified):</u> Guo Yue (yue.guo0418@gmail.com)<br>\
- <u>Chinese (Traditional):</u> Yi-Shun Wang (dnextstep@gmail.com)<br>\
@@ -87,7 +87,7 @@ class about : public QDialog, private Ui::AboutDlg{
- <u>Spanish:</u> Francisco Luque Contreras (frannoe@ya.com)<br>\
- <u>Swedish:</u> Daniel Nylander (po@danielnylander.se)<br>\
- <u>Turkish:</u> Hasan YILMAZ (iletisim@hedefturkce.com) and Erdem Bingöl (erdem84@gmail.com)<br>\
- <u>Ukrainian:</u> Andrey Shpachenko (masterfix@users.sourceforge.net)<br><br>"));
- <u>Ukrainian:</u> Andrey Shpachenko (masterfix@users.sourceforge.net) and Oleh Prypin (blaxpirit@gmail.com)<br><br>"));
te_translation->append(tr("Please contact me if you would like to translate qBittorrent into your own language."));
te_translation->scrollToAnchor(QString::fromUtf8("top"));
// License

146
src/advancedsettings.h Normal file
View File

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

111
src/bandwidthscheduler.h Normal file
View File

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

File diff suppressed because it is too large Load Diff

View File

@@ -34,8 +34,12 @@
#include <QMap>
#include <QUrl>
#include <QStringList>
#ifdef DISABLE_GUI
#include <QCoreApplication>
#else
#include <QApplication>
#include <QPalette>
#endif
#include <QPointer>
#include <libtorrent/session.hpp>
@@ -48,9 +52,10 @@ using namespace libtorrent;
class downloadThread;
class QTimer;
class FileSystemWatcher;
class FilterParserThread;
class HttpServer;
class BandwidthScheduler;
class ScanFoldersModel;
class TrackerInfos {
public:
@@ -84,52 +89,6 @@ public:
class Bittorrent : public QObject {
Q_OBJECT
private:
// Bittorrent
session *s;
QPointer<QTimer> timerAlerts;
QMap<QUrl, QString> savepath_fromurl;
QHash<QString, QHash<QString, TrackerInfos> > trackersInfos;
// Ratio
QPointer<QTimer> BigRatioTimer;
// HTTP
QPointer<downloadThread> downloader;
// File System
QPointer<FileSystemWatcher> FSWatcher;
// Console / Log
QStringList consoleMessages;
QStringList peerBanMessages;
// Settings
bool preAllocateAll;
bool addInPause;
float ratio_limit;
bool UPnPEnabled;
bool NATPMPEnabled;
bool LSDEnabled;
bool DHTEnabled;
int current_dht_port;
bool queueingEnabled;
QString defaultSavePath;
QString defaultTempPath;
// GeoIP
bool resolve_countries;
bool geoipDBLoaded;
// ETA Computation
QPointer<QTimer> timerETA;
QHash<QString, QList<int> > ETA_samples;
// IP filtering
QPointer<FilterParserThread> filterParser;
QString filterPath;
// Web UI
QPointer<HttpServer> httpServer;
QList<QUrl> url_skippingDlg;
// Fast exit (async)
bool exiting;
protected:
QString getSavePath(QString hash);
bool initWebUi(QString username, QString password, int port);
public:
// Constructor / Destructor
Bittorrent();
@@ -160,15 +119,14 @@ public:
public slots:
QTorrentHandle addTorrent(QString path, bool fromScanDir = false, QString from_url = QString(), bool resumed = false);
QTorrentHandle addMagnetUri(QString magnet_uri, bool resumed=false);
void importOldTorrents();
void applyFormerAttributeFiles(QTorrentHandle h);
void importOldTempData(QString torrent_path);
void loadSessionState();
void saveSessionState();
void downloadFromUrl(QString url);
void deleteTorrent(QString hash, bool delete_local_files = false);
void startUpTorrents();
session_proxy asyncDeletion();
void recheckTorrent(QString hash);
void useAlternativeSpeedsLimit(bool alternative);
/* Needed by Web UI */
void pauseAllTorrents();
void pauseTorrent(QString hash);
@@ -178,8 +136,6 @@ public slots:
void saveDHTEntry();
void preAllocateAllFiles(bool b);
void saveFastResumeData();
void enableDirectoryScanning(QString scan_dir);
void disableDirectoryScanning();
void enableIPFilter(QString filter);
void disableIPFilter();
void setQueueingEnabled(bool enable);
@@ -195,10 +151,18 @@ public slots:
void setGlobalRatio(float ratio);
void setDeleteRatio(float ratio);
void setDHTPort(int dht_port);
void setProxySettings(proxy_settings proxySettings, bool trackers=true, bool peers=true, bool web_seeds=true, bool dht=true);
void setSessionSettings(session_settings sessionSettings);
void setPeerProxySettings(const proxy_settings &proxySettings);
void setHTTPProxySettings(const proxy_settings &proxySettings);
void setSessionSettings(const session_settings &sessionSettings);
void startTorrentsInPause(bool b);
void setDefaultTempPath(QString temppath);
void setAppendLabelToSavePath(bool append);
void appendLabelToTorrentSavePath(QTorrentHandle h);
void changeLabelInTorrentSavePath(QTorrentHandle h, QString old_label, QString new_label);
#ifdef LIBTORRENT_0_15
void appendqBextensionToTorrent(QTorrentHandle h, bool append);
void setAppendqBExtension(bool append);
#endif
void applyEncryptionSettings(pe_settings se);
void setDownloadLimit(QString hash, long val);
void setUploadLimit(QString hash, long val);
@@ -206,7 +170,11 @@ public slots:
void enableNATPMP(bool b);
void enableLSD(bool b);
bool enableDHT(bool b);
#ifdef DISABLE_GUI
void addConsoleMessage(QString msg, QString color=QString::null);
#else
void addConsoleMessage(QString msg, QColor color=QApplication::palette().color(QPalette::WindowText));
#endif
void addPeerBanMessage(QString msg, bool from_ipfilter);
void processDownloadedFile(QString, QString);
void addMagnetSkipAddDlg(QString uri);
@@ -214,11 +182,16 @@ public slots:
void configureSession();
void banIP(QString ip);
protected:
QString getSavePath(QString hash, bool fromScanDir = false, QString filePath = QString());
bool initWebUi(QString username, QString password, int port);
protected slots:
void addTorrentsFromScanFolder(QStringList&);
void readAlerts();
void deleteBigRatios();
void takeETASamples();
void exportTorrentFiles(QString path);
signals:
void addedTorrent(QTorrentHandle& h);
@@ -234,6 +207,62 @@ signals:
void downloadFromUrlFailure(QString url, QString reason);
void torrentFinishedChecking(QTorrentHandle& h);
void metadataReceived(QTorrentHandle &h);
void savePathChanged(QTorrentHandle &h);
void newConsoleMessage(QString msg);
void alternativeSpeedsModeChanged(bool alternative);
private:
// Bittorrent
session *s;
QPointer<QTimer> timerAlerts;
QPointer<BandwidthScheduler> bd_scheduler;
QMap<QUrl, QString> savepath_fromurl;
QHash<QString, QHash<QString, TrackerInfos> > trackersInfos;
QStringList torrentsToPausedAfterChecking;
// Ratio
QPointer<QTimer> BigRatioTimer;
// HTTP
QPointer<downloadThread> downloader;
// File System
ScanFoldersModel *m_scanFolders;
// Console / Log
QStringList consoleMessages;
QStringList peerBanMessages;
// Settings
bool preAllocateAll;
bool addInPause;
float ratio_limit;
bool UPnPEnabled;
bool NATPMPEnabled;
bool LSDEnabled;
bool DHTEnabled;
int current_dht_port;
bool PeXEnabled;
bool queueingEnabled;
bool appendLabelToSavePath;
bool torrentExport;
#ifdef LIBTORRENT_0_15
bool appendqBExtension;
#endif
QString defaultSavePath;
QString defaultTempPath;
// ETA Computation
QPointer<QTimer> timerETA;
QHash<QString, QList<int> > ETA_samples;
// IP filtering
QPointer<FilterParserThread> filterParser;
QString filterPath;
// Web UI
QPointer<HttpServer> httpServer;
QList<QUrl> url_skippingDlg;
// Fast exit (async)
bool exiting;
// GeoIP
#ifndef DISABLE_GUI
bool geoipDBLoaded;
bool resolve_countries;
#endif
};
#endif

View File

@@ -46,6 +46,7 @@ class consoleDlg : public QDialog, private Ui_ConsoleDlg{
consoleDlg(QWidget *parent, Bittorrent* _BTSession) : QDialog(parent) {
setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
setModal(true);
BTSession = _BTSession;
textConsole->setHtml(BTSession->getConsoleMessages().join("<br>"));
textBannedPeers->setHtml(BTSession->getPeerBanMessages().join("<br>"));

View File

@@ -65,6 +65,7 @@ bool file_filter(boost::filesystem::path const& filename)
createtorrent::createtorrent(QWidget *parent): QDialog(parent){
setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
setModal(true);
creatorThread = new torrentCreatorThread(this);
connect(creatorThread, SIGNAL(creationSuccess(QString, const char*)), this, SLOT(handleCreationSuccess(QString, const char*)));
connect(creatorThread, SIGNAL(creationFailure(QString)), this, SLOT(handleCreationFailure(QString)));

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