Compare commits
371 Commits
release-2.
...
release-2.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
d09a3ddd0c | ||
![]() |
2634517cdb | ||
![]() |
121a636b4e | ||
![]() |
aad42d4a57 | ||
![]() |
c8b8518608 | ||
![]() |
0c40a8ab05 | ||
![]() |
b9241ad5ad | ||
![]() |
d354d7133e | ||
![]() |
a1157c78b2 | ||
![]() |
fb8d52e6e0 | ||
![]() |
80c42cae1a | ||
![]() |
f242fce5fd | ||
![]() |
6223514704 | ||
![]() |
8fb7445e20 | ||
![]() |
3172c6859d | ||
![]() |
58be573d02 | ||
![]() |
82f7bdb9cc | ||
![]() |
b41c39b7ce | ||
![]() |
9e4958e96a | ||
![]() |
65091f7cb9 | ||
![]() |
75b758bb1f | ||
![]() |
5028ff3ddd | ||
![]() |
a246f76ec3 | ||
![]() |
eeec067481 | ||
![]() |
3ee44ad0c2 | ||
![]() |
c38ff5b0b7 | ||
![]() |
e51dc6758c | ||
![]() |
7bb32643fa | ||
![]() |
3172e1f530 | ||
![]() |
7778877fa7 | ||
![]() |
b4f6745251 | ||
![]() |
4fd7f16911 | ||
![]() |
ca29b5d7fc | ||
![]() |
79d5a635a4 | ||
![]() |
7f615c580e | ||
![]() |
967dbbda89 | ||
![]() |
452c0411d2 | ||
![]() |
32d3ed2144 | ||
![]() |
4efae21f1d | ||
![]() |
c43efd7fb3 | ||
![]() |
93b1dbd931 | ||
![]() |
571896b888 | ||
![]() |
9f5d31b2b1 | ||
![]() |
c01f7102e6 | ||
![]() |
df39e46c84 | ||
![]() |
7f12bb5dfb | ||
![]() |
ca762139f6 | ||
![]() |
67f41ad991 | ||
![]() |
621ec11ae3 | ||
![]() |
de3135c43b | ||
![]() |
faed0ba45a | ||
![]() |
2104e4e2ce | ||
![]() |
907a17a73b | ||
![]() |
a1a9f8bc7e | ||
![]() |
a9a3bb74e7 | ||
![]() |
b7de3fcebd | ||
![]() |
0b70b857b9 | ||
![]() |
9c8a957dd7 | ||
![]() |
cf65e4d77d | ||
![]() |
762962270c | ||
![]() |
a2067af4ea | ||
![]() |
2f4f06ca8b | ||
![]() |
56dba2cb10 | ||
![]() |
f824357358 | ||
![]() |
778cfff4b3 | ||
![]() |
8ee762695b | ||
![]() |
7dd9680e26 | ||
![]() |
92661e1d53 | ||
![]() |
09d5665ff9 | ||
![]() |
c5dfe623c8 | ||
![]() |
2665e2ef39 | ||
![]() |
dfecdb1956 | ||
![]() |
5a82aee76b | ||
![]() |
4f07426010 | ||
![]() |
9e575e45b7 | ||
![]() |
39b32bf1cd | ||
![]() |
54131001b0 | ||
![]() |
f8134b1a62 | ||
![]() |
13927599c8 | ||
![]() |
0d85d0a777 | ||
![]() |
0da83694e0 | ||
![]() |
9bdac4d1e3 | ||
![]() |
00c92d6d61 | ||
![]() |
9628a9e156 | ||
![]() |
f1bfcb4822 | ||
![]() |
87879b6738 | ||
![]() |
a4ff7047d1 | ||
![]() |
da599da36d | ||
![]() |
335e7366fd | ||
![]() |
a993b2b3f1 | ||
![]() |
b81c8d29ba | ||
![]() |
08a08e4b24 | ||
![]() |
8b5886cc6e | ||
![]() |
22b3d8d594 | ||
![]() |
17efa04257 | ||
![]() |
e71f144c40 | ||
![]() |
5e7cafb8c0 | ||
![]() |
d01385a7ac | ||
![]() |
ac80dd78a8 | ||
![]() |
061f1000cf | ||
![]() |
c36fed3081 | ||
![]() |
75002906aa | ||
![]() |
a451cf2d5f | ||
![]() |
ca10c0ab09 | ||
![]() |
80d76ae038 | ||
![]() |
f699ee1363 | ||
![]() |
bd97a4bd7c | ||
![]() |
ec3b749ef6 | ||
![]() |
44fc86e7da | ||
![]() |
2cd940e7c7 | ||
![]() |
cc6d371667 | ||
![]() |
8fcc33b375 | ||
![]() |
e44b570c3d | ||
![]() |
8576847a99 | ||
![]() |
c9fc9373e5 | ||
![]() |
ae46d449e5 | ||
![]() |
fe57cef756 | ||
![]() |
3affb38ba2 | ||
![]() |
a0dc6aa173 | ||
![]() |
a357a690ce | ||
![]() |
bce7959332 | ||
![]() |
eef6f600c9 | ||
![]() |
a3822c5aa8 | ||
![]() |
eeaa1e83a9 | ||
![]() |
387fb93b5b | ||
![]() |
d470059c56 | ||
![]() |
2e382fa88c | ||
![]() |
e1e7e782d5 | ||
![]() |
6f314502f6 | ||
![]() |
3284d7a8e6 | ||
![]() |
609ea7b4c2 | ||
![]() |
7e8d21145e | ||
![]() |
c31b5f1f97 | ||
![]() |
11fe685a6b | ||
![]() |
1127947f52 | ||
![]() |
789b2cf326 | ||
![]() |
b9394f2ba2 | ||
![]() |
7ab206ebac | ||
![]() |
0beb9fff73 | ||
![]() |
65b8d0c24d | ||
![]() |
715fe46f45 | ||
![]() |
8209f341fb | ||
![]() |
0d4b55ca32 | ||
![]() |
ae7362706f | ||
![]() |
4ca648a79b | ||
![]() |
4ca0b14300 | ||
![]() |
4386b6c2c4 | ||
![]() |
61246f81c7 | ||
![]() |
70f2bfdd9a | ||
![]() |
5f23cbc470 | ||
![]() |
2e0c8f848f | ||
![]() |
f8add0ee04 | ||
![]() |
f23051c1fd | ||
![]() |
60636af544 | ||
![]() |
2e685ea851 | ||
![]() |
b61a06350f | ||
![]() |
c9ece4695e | ||
![]() |
4805690dbe | ||
![]() |
8ec1621334 | ||
![]() |
682377ff66 | ||
![]() |
656beed82b | ||
![]() |
ba4a0fac77 | ||
![]() |
b719bfaecb | ||
![]() |
4e1366bf0d | ||
![]() |
b67938aa3f | ||
![]() |
f4c29c07bf | ||
![]() |
63a0f4bf11 | ||
![]() |
a8a2ba188d | ||
![]() |
a0d685bfe2 | ||
![]() |
a3041b7f9f | ||
![]() |
83a2ae7ad3 | ||
![]() |
830a6250c6 | ||
![]() |
f0e23ab1fc | ||
![]() |
5b07c488b0 | ||
![]() |
f61bccf700 | ||
![]() |
4fd10bc5f5 | ||
![]() |
c1a72f075d | ||
![]() |
5c4450f3cd | ||
![]() |
bb606e0b2f | ||
![]() |
eed86aa9e1 | ||
![]() |
338d4fd31e | ||
![]() |
58a36f7cfd | ||
![]() |
8b436f70d6 | ||
![]() |
223fd4f0ba | ||
![]() |
2e51e69cc9 | ||
![]() |
bbac79c030 | ||
![]() |
607bba4625 | ||
![]() |
1a0cc3215c | ||
![]() |
f0981c81c8 | ||
![]() |
472604d1b0 | ||
![]() |
781d33b869 | ||
![]() |
8db8841c9c | ||
![]() |
6e3b570be4 | ||
![]() |
defd77b94c | ||
![]() |
c09294df2f | ||
![]() |
cc97ee86df | ||
![]() |
10d6dd5a23 | ||
![]() |
29e79dc54d | ||
![]() |
982390f074 | ||
![]() |
963d73af4e | ||
![]() |
bdd8cbb1d8 | ||
![]() |
80bd232054 | ||
![]() |
c2da227254 | ||
![]() |
e846c67bfa | ||
![]() |
475c7094ab | ||
![]() |
4434566d85 | ||
![]() |
6bd557d22c | ||
![]() |
4832a24ac5 | ||
![]() |
b9a3890dd5 | ||
![]() |
4cf9de6515 | ||
![]() |
994c798264 | ||
![]() |
119bda1595 | ||
![]() |
bf73c47bc5 | ||
![]() |
ea99f44893 | ||
![]() |
4ec1fd3968 | ||
![]() |
0b9e25ee65 | ||
![]() |
73a9985599 | ||
![]() |
a65f7bfa65 | ||
![]() |
72cc1eb4d4 | ||
![]() |
ed7ae32a69 | ||
![]() |
54b53f3aba | ||
![]() |
2f7728f987 | ||
![]() |
f3a93af242 | ||
![]() |
5a4ad2f822 | ||
![]() |
c669240037 | ||
![]() |
ce4fd8429e | ||
![]() |
cc532d95da | ||
![]() |
c800a0a6b5 | ||
![]() |
5675c045ae | ||
![]() |
e16ca862f4 | ||
![]() |
29e757bb3a | ||
![]() |
822f1a9557 | ||
![]() |
7acfb27a1f | ||
![]() |
83d6731fa9 | ||
![]() |
de4f0272c1 | ||
![]() |
df50a875df | ||
![]() |
5f814f23b4 | ||
![]() |
98ec373f8c | ||
![]() |
0bbeab9ad2 | ||
![]() |
ed4c711ef5 | ||
![]() |
fc33702b81 | ||
![]() |
70c79f31c3 | ||
![]() |
82dc2103b5 | ||
![]() |
529ab304b4 | ||
![]() |
53919446d4 | ||
![]() |
1052cd019b | ||
![]() |
4f87819abf | ||
![]() |
b94ecb2383 | ||
![]() |
c00d83dee9 | ||
![]() |
34052ce8f9 | ||
![]() |
0a0c8948ee | ||
![]() |
0cc9283275 | ||
![]() |
6b2e9f057b | ||
![]() |
3a1fc9ec77 | ||
![]() |
e4399412b6 | ||
![]() |
37650d8156 | ||
![]() |
b4fa164dc3 | ||
![]() |
6148e6b192 | ||
![]() |
057743a779 | ||
![]() |
530ba2a0bd | ||
![]() |
977b2bda7c | ||
![]() |
76eb93ba1a | ||
![]() |
ae3c50c074 | ||
![]() |
31017602fc | ||
![]() |
ef7e2abdaf | ||
![]() |
a6abedd67d | ||
![]() |
9824d86a3c | ||
![]() |
1eac3d1700 | ||
![]() |
48585bb049 | ||
![]() |
843e49a5a8 | ||
![]() |
db01276f1d | ||
![]() |
772028106e | ||
![]() |
0cd5253857 | ||
![]() |
eaf321facb | ||
![]() |
81ecb5c7c8 | ||
![]() |
3b3a452df6 | ||
![]() |
65b1e29414 | ||
![]() |
a6e3b9afac | ||
![]() |
a7792701a2 | ||
![]() |
846372e48b | ||
![]() |
1597007ea1 | ||
![]() |
dbceed21f5 | ||
![]() |
3254dae59f | ||
![]() |
12881dd4c4 | ||
![]() |
35ec93ccb1 | ||
![]() |
cb159ed00d | ||
![]() |
e5b8b41373 | ||
![]() |
492814a56e | ||
![]() |
d639712303 | ||
![]() |
f5d1c8a679 | ||
![]() |
aea3d4be7a | ||
![]() |
8d1fd7ee8e | ||
![]() |
a98a002d57 | ||
![]() |
fb874695c9 | ||
![]() |
63457c034f | ||
![]() |
daff6dce4c | ||
![]() |
94c7c5cebe | ||
![]() |
f2c4901dd0 | ||
![]() |
95d8eb9714 | ||
![]() |
62165445fe | ||
![]() |
6b12371f50 | ||
![]() |
38cb4ccbd3 | ||
![]() |
8ccaaae085 | ||
![]() |
6f7ae4770a | ||
![]() |
5aa348a574 | ||
![]() |
7b8fa49482 | ||
![]() |
789cf654d0 | ||
![]() |
a300a6094e | ||
![]() |
37b09e70b0 | ||
![]() |
530fbfc9b4 | ||
![]() |
73c312ec1a | ||
![]() |
318a959470 | ||
![]() |
f9cc98791a | ||
![]() |
263eb3c632 | ||
![]() |
52b3926f92 | ||
![]() |
af3755bf91 | ||
![]() |
419d719ab8 | ||
![]() |
3877cf9ab8 | ||
![]() |
912056a364 | ||
![]() |
165b33a94e | ||
![]() |
12fff1b966 | ||
![]() |
128eba7ec3 | ||
![]() |
5bb370df0e | ||
![]() |
6431343ad7 | ||
![]() |
bd292076e3 | ||
![]() |
ce0ddbe517 | ||
![]() |
5451bb185e | ||
![]() |
057cf3648e | ||
![]() |
80d5c5d85c | ||
![]() |
671a997092 | ||
![]() |
f2fbfdf017 | ||
![]() |
1ea7340111 | ||
![]() |
7b38ea4151 | ||
![]() |
c4ed12bbd1 | ||
![]() |
c32b352ec1 | ||
![]() |
9b2565dff9 | ||
![]() |
f833f26212 | ||
![]() |
66a7082b5c | ||
![]() |
cc3a6350a5 | ||
![]() |
9202ce8757 | ||
![]() |
c0e4f126de | ||
![]() |
44ca0a4904 | ||
![]() |
64ddf393aa | ||
![]() |
a60615a2d8 | ||
![]() |
d9fa9c3566 | ||
![]() |
5115b8739e | ||
![]() |
854fb4acc0 | ||
![]() |
07ef81fd95 | ||
![]() |
17e39f56dd | ||
![]() |
040e94cab7 | ||
![]() |
93563365ac | ||
![]() |
c287879e55 | ||
![]() |
537c73d548 | ||
![]() |
ad3f5f6e20 | ||
![]() |
a468404ab5 | ||
![]() |
6d7fba1a6c | ||
![]() |
5c734a80f8 | ||
![]() |
edfee5193c | ||
![]() |
9900651c55 | ||
![]() |
948adbe350 | ||
![]() |
ade0ba794c | ||
![]() |
5494c33a89 | ||
![]() |
c8f5cab636 | ||
![]() |
4a8a40a6f2 | ||
![]() |
70d41cdc79 | ||
![]() |
aec99ed14f | ||
![]() |
9a645b4b19 | ||
![]() |
bea3c33a46 | ||
![]() |
e082c02630 | ||
![]() |
291b94bef0 | ||
![]() |
f119be3ed5 |
7
AUTHORS
@@ -3,12 +3,19 @@ Author:
|
||||
|
||||
Contributors:
|
||||
* Stefanos Antaris <santaris@csd.auth.gr>
|
||||
* Mohammad Dib <mdib@qbittorrent.org>
|
||||
* Mirco Chinelli <infinity89@fastwebmail.it>
|
||||
* Ishan Arora <ishan@qbittorrent.org>
|
||||
* Arnaud Demaizière <arnaud@qbittorrent.org>
|
||||
* Grigis Gaëtan <cipher16@gmail.com>
|
||||
* Christian Kandeler <zambesi@users.sourceforge.net>
|
||||
* Silvan Scherrer <silvan.scherrer@aroa.ch>
|
||||
|
||||
Code from other projects:
|
||||
* files src/qtsingleapp/*
|
||||
copyright: Nokia Corporation
|
||||
license: LGPL
|
||||
|
||||
* files src/ico.cpp src/ico.h
|
||||
copyright: Malte Starostik <malte@kde.org>
|
||||
license: LGPL
|
||||
|
102
Changelog
@@ -1,80 +1,28 @@
|
||||
* Mon May 24 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.8
|
||||
- BUGFIX: ETA for finished torrent is now 0 instead of Infinite (closes #583704)
|
||||
- BUGFIX: Fix sorting of ETA column when having infinite values (closes #583347)
|
||||
- BUGFIX: Torrent queue position now starts at 1 (closes #581130)
|
||||
- BUGFIX: Fix unicode issue in start seeding after torrent creation code
|
||||
- BUGFIX: Fix torrent error state clearance on resuming
|
||||
- BUGFIX: Fix possible checkbox update in Web UI
|
||||
- COSMETIC: Fix torrent properties layout
|
||||
|
||||
* Wed May 12 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.7
|
||||
- BUGFIX: Fix unicode problem in torrent moving code
|
||||
- BUGFIX: Fix possible initialization problem in Web UI
|
||||
- BUGFIX: Fix torrent moving after completion feature
|
||||
- BUGFIX: Improved empty folder removing code
|
||||
- BUGFIX: Use guid or news url as RSS items identifier (instead of title)
|
||||
- BUGFIX: Fix possible crash in RSS item selection code
|
||||
- BUGFIX: Added support for url encoded ampersands in RSS
|
||||
- COSMETIC: Sort torrent labels in popup menu
|
||||
- I18N: Added Croatian translation
|
||||
|
||||
* Sun Apr 18 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.6
|
||||
- BUGFIX: Announce to all trackers at once
|
||||
- BUGFIX: Added support for single-thread boost
|
||||
- BUGFIX: Remove old folder when moving a torrent
|
||||
- BUGFIX: Improved reliability of torrent moving
|
||||
- BUGFIX: Stop rechecking torrents when they are moved
|
||||
- BUGFIX: Status filters height stays correct when the visual style changes
|
||||
- I18N: Added Arabic translation
|
||||
|
||||
* Wed Apr 07 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.5
|
||||
- BUGFIX: Fix crash when adding a new torrent label
|
||||
- BUGFIX: Fix HTTPS protocol support in torrent/rss downloader
|
||||
- BUGFIX: Fix default width of file name column in torrent content
|
||||
- BUGFIX: Fix torrent addition dialog buttons height
|
||||
- BUGFIX: Fix deprecation warnings with libtorrent v0.15
|
||||
- BUGFIX: Fix "Download from URL" title size in Web UI
|
||||
- BUGFIX: Fix transparency of speed limits icons
|
||||
- BUGFIX: Dropped dependency on Qt gif library
|
||||
- BUGFIX: Improved libboost detection by configure file
|
||||
- BUGFIX: Bring back compatibility with boost v1.34
|
||||
- COSMETIC: Added icons to menu actions in Web UI
|
||||
|
||||
* Tue Apr 06 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.4
|
||||
- BUGFIX: Fix possible crash when adding a torrent
|
||||
- BUGFIX: Fix failure to remember some torrents on startup
|
||||
- BUGFIX: Fix torrent addition window layout (torrent content not expanding)
|
||||
- BUGFIX: Fix about dialog in Web UI
|
||||
- BUGFIX: Correctly clear trackers error messages once they work
|
||||
- BUGFIX: Display correct share ratio for paused torrents
|
||||
- COSMETIC: Improved alternative speed limits icons
|
||||
|
||||
* Sun Apr 04 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.3
|
||||
- BUGFIX: Fix possible crash when deleting a torrent just after pausing it
|
||||
- BUGFIX: Enable Apply button when alternative rate limits are changed
|
||||
- BUGFIX: Source compatibility with Windows (Thanks Ishan Arora)
|
||||
- BUGFIX: Source compatibility with eCS (OS/2) (Thanks Silvan Scherrer)
|
||||
- BUGFIX: Cleaner binutils gold linker support
|
||||
- BUGFIX: Clean fix for progress display with cleanlooks style
|
||||
|
||||
* Mon Mar 22 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.2
|
||||
- FEATURE: DHT port can be set from Web UI
|
||||
- BUGFIX: Fix possible crash with folder scanning
|
||||
- BUGFIX: Fix Mac compilation
|
||||
- BUGFIX: Save fast resume data every 3 minutes (for robustness)
|
||||
- I18N: Updated Polish translation (thanks Szymon Świerkosz)
|
||||
|
||||
* Sat Mar 20 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.1
|
||||
- FEATURE: Display pieces that are being downloaded
|
||||
- FEATURE: Added back folder watching in Web UI
|
||||
- FEATURE: Added back file prioritizing in Web UI
|
||||
- BUGFIX: Fix compilation with Qt 4.4
|
||||
- BUGFIX: Fix Web UI compatibility with Safari
|
||||
- BUGFIX: Fix progress display with cleanlook style
|
||||
- BUGFIX: Fix file filtering in complex torrents
|
||||
- BUGFIX: Ask for user confirmation for recursive torrent download
|
||||
- BUGFIX: Fix "add file" dialog in torrent creation tool
|
||||
- BUGFIX: Fix "Ctrl+A" in Web UI
|
||||
* Unreleased - Christophe Dumez <chris@qbittorrent.org> - v2.3.0
|
||||
- FEATURE: Simplified torrent root folder renaming/truncating (< v2.3.0 is no longer forward compatible)
|
||||
- FEATURE: Remember previous save paths in torrent addition dialog
|
||||
- FEATURE: Max number of half-open connections can now be edited
|
||||
- FEATURE: Added support for strict super seeding
|
||||
- FEATURE: The user can force listening on a particular network interface
|
||||
- FEATURE: Added cookie support for RSS feeds
|
||||
- FEATURE: User can force tracker reannounce
|
||||
- FEATURE: Added "No action" setting for double-click action
|
||||
- FEATURE: Several torrents can be moved at once
|
||||
- FEATURE: Added error state for torrents (error is displayed in a tooltip)
|
||||
- FEATURE: Added filter for paused/error torrents
|
||||
- FEATURE: Add Check/Uncheck all feature in Web UI
|
||||
- FEATURE: Search engine can now be disabled
|
||||
- FEATURE: Torrents can be automatically paused once they reach a given ratio
|
||||
- FEATURE: Several files can now be disabled at once
|
||||
- FEATURE: Added "Select All/None" buttons to files list
|
||||
- BUGFIX: Hide seeding torrents files priorities in Web UI
|
||||
- BUGFIX: The user can disable permanently recursive torrent download
|
||||
- BUGFIX: Peer Exchange status is now correctly reported
|
||||
- BUGFIX: Use an INI file instead of the registry on Windows (More reliable)
|
||||
- COSMETIC: Display peers country name in tooltip
|
||||
- COSMETIC: Display number of torrents in transfers tab label
|
||||
- COSMETIC: Simplified program preferences
|
||||
- COSMETIC: Fix naming of actions opening new dialogs (use Name...)
|
||||
|
||||
* Sun Mar 14 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.0
|
||||
- FEATURE: User can set alternative speed limits for fast toggling
|
||||
|
15
configure
vendored
@@ -355,27 +355,12 @@ public:
|
||||
bool exec(){
|
||||
QStringList incs;
|
||||
QString req_ver = "0.14.4";
|
||||
QString adv_ver = "0.15.0";
|
||||
QString version, libs, other;
|
||||
VersionMode mode = VersionMin;
|
||||
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other))
|
||||
return false;
|
||||
for(int n = 0; n < incs.count(); ++n)
|
||||
conf->addIncludePath(incs[n]);
|
||||
//if(!libs.isEmpty())
|
||||
// conf->addLib(libs);
|
||||
if(conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other)) {
|
||||
//printf("\nWarning: libtorrent-rasterbar v%s was detected. 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());
|
||||
//libcrypto
|
||||
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
||||
conf->addLib("-lcrypto");
|
||||
}
|
||||
|
@@ -13,27 +13,12 @@ public:
|
||||
bool exec(){
|
||||
QStringList incs;
|
||||
QString req_ver = "0.14.4";
|
||||
QString adv_ver = "0.15.0";
|
||||
QString version, libs, other;
|
||||
VersionMode mode = VersionMin;
|
||||
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other))
|
||||
return false;
|
||||
for(int n = 0; n < incs.count(); ++n)
|
||||
conf->addIncludePath(incs[n]);
|
||||
//if(!libs.isEmpty())
|
||||
// conf->addLib(libs);
|
||||
if(conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other)) {
|
||||
//printf("\nWarning: libtorrent-rasterbar v%s was detected. 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());
|
||||
//libcrypto
|
||||
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
||||
conf->addLib("-lcrypto");
|
||||
}
|
||||
|
348
src/GUI.cpp
26
src/GUI.h
@@ -37,13 +37,10 @@
|
||||
#include "ui_mainwindow.h"
|
||||
#include "qtorrenthandle.h"
|
||||
|
||||
enum TabIndex{TAB_TRANSFER, TAB_SEARCH, TAB_RSS};
|
||||
|
||||
class Bittorrent;
|
||||
class QTimer;
|
||||
class downloadFromURL;
|
||||
class SearchEngine;
|
||||
class QLocalServer;
|
||||
class QCloseEvent;
|
||||
class RSSImp;
|
||||
class QShortcut;
|
||||
@@ -59,6 +56,7 @@ class consoleDlg;
|
||||
class about;
|
||||
class createtorrent;
|
||||
class downloadFromURL;
|
||||
class HidableTabWidget;
|
||||
|
||||
class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
Q_OBJECT
|
||||
@@ -68,8 +66,9 @@ public:
|
||||
GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
|
||||
~GUI();
|
||||
// Methods
|
||||
int getCurrentTabIndex() const;
|
||||
QWidget* getCurrentTabWidget() const;
|
||||
TransferListWidget* getTransferList() const { return transferList; }
|
||||
QMenu* getTrayIconMenu();
|
||||
|
||||
public slots:
|
||||
void trackerAuthenticationRequired(QTorrentHandle& h);
|
||||
@@ -77,6 +76,7 @@ public slots:
|
||||
void showNotificationBaloon(QString title, QString msg) const;
|
||||
void downloadFromURLList(const QStringList& urls);
|
||||
void updateAltSpeedsBtn(bool alternative);
|
||||
void updateNbTorrents(unsigned int nb_downloading, unsigned int nb_seeding, unsigned int nb_active, unsigned int nb_inactive, unsigned int nb_paused);
|
||||
|
||||
protected slots:
|
||||
// GUI related slots
|
||||
@@ -88,8 +88,6 @@ protected slots:
|
||||
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();
|
||||
@@ -111,6 +109,7 @@ protected slots:
|
||||
void on_actionOpen_triggered();
|
||||
void updateGUI();
|
||||
void loadPreferences(bool configure_session=true);
|
||||
void processParams(const QString& params);
|
||||
void processParams(const QStringList& params);
|
||||
void addTorrent(QString path);
|
||||
void addUnauthenticatedTracker(const QPair<QTorrentHandle,QString> &tracker);
|
||||
@@ -128,6 +127,7 @@ protected:
|
||||
void showEvent(QShowEvent *);
|
||||
bool event(QEvent * event);
|
||||
void displayRSSTab(bool enable);
|
||||
void displaySearchTab(bool enable);
|
||||
|
||||
private:
|
||||
// Bittorrent
|
||||
@@ -135,7 +135,7 @@ private:
|
||||
QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed?
|
||||
// GUI related
|
||||
QTimer *guiUpdater;
|
||||
QTabWidget *tabs;
|
||||
HidableTabWidget *tabs;
|
||||
StatusBar *status_bar;
|
||||
QPointer<options_imp> options;
|
||||
QPointer<consoleDlg> console;
|
||||
@@ -144,7 +144,7 @@ private:
|
||||
QPointer<downloadFromURL> downloadFromURLDialog;
|
||||
QPointer<QSystemTrayIcon> systrayIcon;
|
||||
QPointer<QTimer> systrayCreator;
|
||||
QMenu *myTrayIconMenu;
|
||||
QPointer<QMenu> myTrayIconMenu;
|
||||
TransferListWidget *transferList;
|
||||
TransferListFiltersWidget *transferListFilters;
|
||||
PropertiesWidget *properties;
|
||||
@@ -161,11 +161,15 @@ private:
|
||||
QSplitter *hSplitter;
|
||||
QSplitter *vSplitter;
|
||||
// Search
|
||||
SearchEngine *searchEngine;
|
||||
QPointer<SearchEngine> searchEngine;
|
||||
// RSS
|
||||
QPointer<RSSImp> rssWidget;
|
||||
// Misc
|
||||
QLocalServer *localServer;
|
||||
|
||||
private slots:
|
||||
void on_actionSearch_engine_triggered();
|
||||
void on_actionRSS_Reader_triggered();
|
||||
void on_actionSpeed_in_title_bar_triggered();
|
||||
void on_actionTop_tool_bar_triggered();
|
||||
};
|
||||
|
||||
#endif
|
||||
|
BIN
src/Icons/3-state-checkbox.gif
Normal file
After Width: | Height: | Size: 322 B |
BIN
src/Icons/L.gif
Normal file
After Width: | Height: | Size: 66 B |
Before Width: | Height: | Size: 1.3 KiB |
BIN
src/Icons/oxygen/cookies.png
Normal file
After Width: | Height: | Size: 2.3 KiB |
Before Width: | Height: | Size: 860 B |
Before Width: | Height: | Size: 1.2 KiB |
@@ -1,6 +1,6 @@
|
||||
[Desktop Entry]
|
||||
Categories=Qt;Network;P2P;
|
||||
Comment=V2.2.8
|
||||
Comment=V2.3.0
|
||||
Exec=qbittorrent %f
|
||||
GenericName=Bittorrent client
|
||||
GenericName[ar]=العميل Bittorrent
|
||||
|
BIN
src/Icons/qbittorrent_mac.icns
Normal file
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 3.3 KiB |
Before Width: | Height: | Size: 1.6 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 3.0 KiB |
Before Width: | Height: | Size: 257 B After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.4 KiB |
Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 2.9 KiB |
Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB |
Before Width: | Height: | Size: 315 B |
60
src/Info.plist
Normal file
@@ -0,0 +1,60 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
|
||||
<plist version="1.0">
|
||||
<dict>
|
||||
<key>CFBundleDocumentTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleTypeExtensions</key>
|
||||
<array>
|
||||
<string>torrent</string>
|
||||
</array>
|
||||
<key>CFBundleTypeIconFile</key>
|
||||
<string>qbittorrentDocument</string>
|
||||
<key>CFBundleTypeName</key>
|
||||
<string>BitTorrent Document</string>
|
||||
<key>CFBundleTypeMIMETypes</key>
|
||||
<array>
|
||||
<string>application/x-bittorrent</string>
|
||||
</array>
|
||||
<key>CFBundleTypeRole</key>
|
||||
<string>Viewer</string>
|
||||
<key>LSHandlerRank</key>
|
||||
<string>Owner</string>
|
||||
<key>LSItemContentTypes</key>
|
||||
<array>
|
||||
<string>org.bittorrent.torrent</string>
|
||||
</array>
|
||||
<key>LSIsAppleDefaultForType</key>
|
||||
<true/>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleURLTypes</key>
|
||||
<array>
|
||||
<dict>
|
||||
<key>CFBundleURLSchemes</key>
|
||||
<array>
|
||||
<string>magnet</string>
|
||||
</array>
|
||||
<key>CFBundleURLName</key>
|
||||
<string>BitTorrent Magnet URL</string>
|
||||
</dict>
|
||||
</array>
|
||||
<key>CFBundleIconFile</key>
|
||||
<string>qbittorrent_mac.icns</string>
|
||||
<key>CFBundleInfoDictionaryVersion</key>
|
||||
<string>6.0</string>
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleGetInfoString</key>
|
||||
<string>2.3.0</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>????</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
<string>qbittorrent</string>
|
||||
<key>CFBundleIdentifier</key>
|
||||
<string>org.qbittorrent</string>
|
||||
<key>NOTE</key>
|
||||
<string>This file was generated by Qt/QMake.</string>
|
||||
</dict>
|
||||
</plist>
|
@@ -54,8 +54,8 @@ class about : public QDialog, private Ui::AboutDlg{
|
||||
te_thanks->append(QString::fromUtf8("<a name='top'></a>"));
|
||||
te_thanks->append(QString::fromUtf8("<ul><li>I would first like to thank sourceforge.net for hosting qBittorrent project and for their support.</li>"));
|
||||
te_thanks->append(QString::fromUtf8("<li>I am pleased that people from all over the world are contributing to qBittorrent: Ishan Arora (India), Arnaud Demaizière (France) and Stephanos Antaris (Greece). Their help is greatly appreciated</li>"));
|
||||
te_thanks->append(QString::fromUtf8("<li>I also want to thank Jeffery Fernandez (jeffery@qbittorrent.org), project consultant, for his help and support since the beginning of this project.</li>"));
|
||||
te_thanks->append(QString::fromUtf8("<li>I am grateful to Peter Koeleman (peter@qbittorrent.org) for working on qBittorrent port to Windows.</li>"));
|
||||
te_thanks->append(QString::fromUtf8("<li>I also want to thank Στέφανος Αντάρης (santaris@csd.auth.gr) and Mirco Chinelli (infinity89@fastwebmail.it) for working on Mac OS X packaging.</li>"));
|
||||
te_thanks->append(QString::fromUtf8("<li>I am grateful to Peter Koeleman (peter@qbittorrent.org) and Mohammad Dib (mdib@qbittorrent.org) for working on qBittorrent port to Windows.</li>"));
|
||||
te_thanks->append(QString::fromUtf8("<li>Thanks a lot to our graphist Mateusz Toboła (tobejodok@qbittorrent.org) for his great work.</li></ul><br><br>"));
|
||||
te_thanks->scrollToAnchor(QString::fromUtf8("top"));
|
||||
// Translation
|
||||
|
@@ -5,18 +5,22 @@
|
||||
#include <QHeaderView>
|
||||
#include <QSpinBox>
|
||||
#include <QCheckBox>
|
||||
#include <QComboBox>
|
||||
#include <QNetworkInterface>
|
||||
#include <libtorrent/version.hpp>
|
||||
#include "preferences.h"
|
||||
|
||||
enum AdvSettingsCols {PROPERTY, VALUE};
|
||||
enum AdvSettingsRows {DISK_CACHE, OUTGOING_PORT_MIN, OUTGOING_PORT_MAX, IGNORE_LIMIT_LAN, COUNT_OVERHEAD, RECHECK_COMPLETED, LIST_REFRESH, RESOLVE_COUNTRIES, RESOLVE_HOSTS };
|
||||
#define ROW_COUNT 9
|
||||
enum AdvSettingsRows {DISK_CACHE, OUTGOING_PORT_MIN, OUTGOING_PORT_MAX, IGNORE_LIMIT_LAN, COUNT_OVERHEAD, RECHECK_COMPLETED, LIST_REFRESH, RESOLVE_COUNTRIES, RESOLVE_HOSTS, MAX_HALF_OPEN, SUPER_SEEDING, NETWORK_IFACE };
|
||||
#define ROW_COUNT 12
|
||||
|
||||
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;
|
||||
QSpinBox *spin_cache, *outgoing_ports_min, *outgoing_ports_max, *spin_list_refresh, *spin_maxhalfopen;
|
||||
QCheckBox *cb_ignore_limits_lan, *cb_count_overhead, *cb_recheck_completed, *cb_resolve_countries, *cb_resolve_hosts, *cb_super_seeding;
|
||||
QComboBox *combo_iface;
|
||||
|
||||
public:
|
||||
AdvancedSettings(QWidget *parent=0): QTableWidget(parent) {
|
||||
@@ -45,6 +49,9 @@ public:
|
||||
delete spin_list_refresh;
|
||||
delete cb_resolve_countries;
|
||||
delete cb_resolve_hosts;
|
||||
delete spin_maxhalfopen;
|
||||
delete cb_super_seeding;
|
||||
delete combo_iface;
|
||||
}
|
||||
|
||||
public slots:
|
||||
@@ -65,6 +72,19 @@ public slots:
|
||||
// Peer resolution
|
||||
Preferences::resolvePeerCountries(cb_resolve_countries->isChecked());
|
||||
Preferences::resolvePeerHostNames(cb_resolve_hosts->isChecked());
|
||||
// Max Half-Open connections
|
||||
Preferences::setMaxHalfOpenConnections(spin_maxhalfopen->value());
|
||||
#if LIBTORRENT_VERSION_MINOR > 14
|
||||
// Super seeding
|
||||
Preferences::enableSuperSeeding(cb_super_seeding->isChecked());
|
||||
#endif
|
||||
// Network interface
|
||||
if(combo_iface->currentIndex() == 0) {
|
||||
// All interfaces (default)
|
||||
Preferences::setNetworkInterface(QString::null);
|
||||
} else {
|
||||
Preferences::setNetworkInterface(combo_iface->currentText());
|
||||
}
|
||||
}
|
||||
|
||||
protected slots:
|
||||
@@ -133,6 +153,39 @@ protected slots:
|
||||
connect(cb_resolve_hosts, SIGNAL(toggled(bool)), this, SLOT(emitSettingsChanged()));
|
||||
cb_resolve_hosts->setChecked(Preferences::resolvePeerHostNames());
|
||||
setCellWidget(RESOLVE_HOSTS, VALUE, cb_resolve_hosts);
|
||||
// Max Half Open connections
|
||||
setItem(MAX_HALF_OPEN, PROPERTY, new QTableWidgetItem(tr("Maximum number of half-open connections [0: Disabled]")));
|
||||
spin_maxhalfopen = new QSpinBox();
|
||||
connect(spin_maxhalfopen, SIGNAL(valueChanged(int)), this, SLOT(emitSettingsChanged()));
|
||||
spin_maxhalfopen->setMinimum(0);
|
||||
spin_maxhalfopen->setMaximum(99999);
|
||||
spin_maxhalfopen->setValue(Preferences::getMaxHalfOpenConnections());
|
||||
setCellWidget(MAX_HALF_OPEN, VALUE, spin_maxhalfopen);
|
||||
// Super seeding
|
||||
setItem(SUPER_SEEDING, PROPERTY, new QTableWidgetItem(tr("Strict super seeding")));
|
||||
cb_super_seeding = new QCheckBox();
|
||||
connect(cb_super_seeding, SIGNAL(toggled(bool)), this, SLOT(emitSettingsChanged()));
|
||||
#if LIBTORRENT_VERSION_MINOR > 14
|
||||
cb_super_seeding->setChecked(Preferences::isSuperSeedingEnabled());
|
||||
#else
|
||||
cb_super_seeding->setEnabled(false);
|
||||
#endif
|
||||
setCellWidget(SUPER_SEEDING, VALUE, cb_super_seeding);
|
||||
// Network interface
|
||||
setItem(NETWORK_IFACE, PROPERTY, new QTableWidgetItem(tr("Network Interface (requires restart)")));
|
||||
combo_iface = new QComboBox;
|
||||
combo_iface->addItem(tr("Any interface", "i.e. Any network interface"));
|
||||
const QString ¤t_iface = Preferences::getNetworkInterface();
|
||||
int i = 1;
|
||||
foreach(const QNetworkInterface& iface, QNetworkInterface::allInterfaces()) {
|
||||
if(iface.name() == "lo") continue;
|
||||
combo_iface->addItem(iface.name());
|
||||
if(!current_iface.isEmpty() && iface.name() == current_iface)
|
||||
combo_iface->setCurrentIndex(i);
|
||||
++i;
|
||||
}
|
||||
connect(combo_iface, SIGNAL(currentIndexChanged(int)), this, SLOT(emitSettingsChanged()));
|
||||
setCellWidget(NETWORK_IFACE, VALUE, combo_iface);
|
||||
}
|
||||
|
||||
void emitSettingsChanged() {
|
||||
|
1008
src/bittorrent.cpp
@@ -43,6 +43,7 @@
|
||||
#include <QPointer>
|
||||
#include <QTimer>
|
||||
|
||||
#include <libtorrent/version.hpp>
|
||||
#include <libtorrent/session.hpp>
|
||||
#include <libtorrent/ip_filter.hpp>
|
||||
#include "qtorrenthandle.h"
|
||||
@@ -63,7 +64,7 @@ public:
|
||||
QString name_or_url;
|
||||
QString last_message;
|
||||
unsigned long num_peers;
|
||||
#ifndef LIBTORRENT_0_15
|
||||
#if LIBTORRENT_VERSION_MINOR < 15
|
||||
bool verified;
|
||||
uint fail_count;
|
||||
#endif
|
||||
@@ -74,13 +75,13 @@ public:
|
||||
Q_ASSERT(!name_or_url.isEmpty());
|
||||
last_message = b.last_message;
|
||||
num_peers = b.num_peers;
|
||||
#ifndef LIBTORRENT_0_15
|
||||
#if LIBTORRENT_VERSION_MINOR < 15
|
||||
verified = b.verified;
|
||||
fail_count = b.fail_count;
|
||||
#endif
|
||||
}
|
||||
TrackerInfos(QString name_or_url): name_or_url(name_or_url), last_message(""), num_peers(0) {
|
||||
#ifndef LIBTORRENT_0_15
|
||||
#if LIBTORRENT_VERSION_MINOR < 15
|
||||
fail_count = 0;
|
||||
verified = false;
|
||||
#endif
|
||||
@@ -117,6 +118,10 @@ public:
|
||||
bool useTemporaryFolder() const;
|
||||
QString getDefaultSavePath() const;
|
||||
ScanFoldersModel* getScanFoldersModel() const;
|
||||
bool isPexEnabled() const;
|
||||
#if LIBTORRENT_VERSION_MINOR < 15
|
||||
void saveDHTEntry();
|
||||
#endif
|
||||
|
||||
public slots:
|
||||
QTorrentHandle addTorrent(QString path, bool fromScanDir = false, QString from_url = QString(), bool resumed = false);
|
||||
@@ -135,9 +140,6 @@ public slots:
|
||||
void resumeTorrent(QString hash);
|
||||
void resumeAllTorrents();
|
||||
/* End Web UI */
|
||||
#ifndef LIBTORRENT_0_15
|
||||
void saveDHTEntry();
|
||||
#endif
|
||||
void preAllocateAllFiles(bool b);
|
||||
void saveFastResumeData();
|
||||
void enableIPFilter(QString filter);
|
||||
@@ -152,8 +154,7 @@ public slots:
|
||||
void setMaxUploadsPerTorrent(int max);
|
||||
void setDownloadRateLimit(long rate);
|
||||
void setUploadRateLimit(long rate);
|
||||
void setGlobalRatio(float ratio);
|
||||
void setDeleteRatio(float ratio);
|
||||
void setMaxRatio(float ratio);
|
||||
void setDHTPort(int dht_port);
|
||||
void setPeerProxySettings(const proxy_settings &proxySettings);
|
||||
void setHTTPProxySettings(const proxy_settings &proxySettings);
|
||||
@@ -161,10 +162,10 @@ public slots:
|
||||
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 appendLabelToTorrentSavePath(QTorrentHandle &h);
|
||||
void changeLabelInTorrentSavePath(QTorrentHandle &h, QString old_label, QString new_label);
|
||||
#if LIBTORRENT_VERSION_MINOR > 14
|
||||
void appendqBextensionToTorrent(QTorrentHandle &h, bool append);
|
||||
void setAppendqBExtension(bool append);
|
||||
#endif
|
||||
void applyEncryptionSettings(pe_settings se);
|
||||
@@ -188,13 +189,13 @@ public slots:
|
||||
void recursiveTorrentDownload(const QTorrentHandle &h);
|
||||
|
||||
protected:
|
||||
QString getSavePath(QString hash, bool fromScanDir = false, QString filePath = QString());
|
||||
QString getSavePath(QString hash, bool fromScanDir = false, QString filePath = QString::null, QString root_folder=QString::null);
|
||||
bool initWebUi(QString username, QString password, int port);
|
||||
|
||||
protected slots:
|
||||
void addTorrentsFromScanFolder(QStringList&);
|
||||
void readAlerts();
|
||||
void deleteBigRatios();
|
||||
void processBigRatios();
|
||||
void takeETASamples();
|
||||
void exportTorrentFiles(QString path);
|
||||
void saveTempFastResumeData();
|
||||
@@ -225,6 +226,7 @@ private:
|
||||
QPointer<BandwidthScheduler> bd_scheduler;
|
||||
QMap<QUrl, QString> savepath_fromurl;
|
||||
QHash<QString, QHash<QString, TrackerInfos> > trackersInfos;
|
||||
QHash<QString, QString> savePathsToRemove;
|
||||
QStringList torrentsToPausedAfterChecking;
|
||||
QTimer resumeDataTimer;
|
||||
// Ratio
|
||||
@@ -240,6 +242,7 @@ private:
|
||||
bool preAllocateAll;
|
||||
bool addInPause;
|
||||
float ratio_limit;
|
||||
int high_ratio_action;
|
||||
bool UPnPEnabled;
|
||||
bool NATPMPEnabled;
|
||||
bool LSDEnabled;
|
||||
@@ -249,7 +252,7 @@ private:
|
||||
bool queueingEnabled;
|
||||
bool appendLabelToSavePath;
|
||||
bool torrentExport;
|
||||
#ifdef LIBTORRENT_0_15
|
||||
#if LIBTORRENT_VERSION_MINOR > 14
|
||||
bool appendqBExtension;
|
||||
#endif
|
||||
QString defaultSavePath;
|
||||
|
95
src/cookiesdlg.cpp
Normal file
@@ -0,0 +1,95 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt4 and libtorrent.
|
||||
* Copyright (C) 2010 Christophe Dumez
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holders give permission to
|
||||
* link this program with the OpenSSL project's "OpenSSL" library (or with
|
||||
* modified versions of it that use the same license as the "OpenSSL" library),
|
||||
* and distribute the linked executables. You must obey the GNU General Public
|
||||
* License in all respects for all of the code used other than "OpenSSL". If you
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org arnaud@qbittorrent.org
|
||||
*/
|
||||
|
||||
#include "cookiesdlg.h"
|
||||
#include "ui_cookiesdlg.h"
|
||||
|
||||
#include <QNetworkCookie>
|
||||
|
||||
enum CookiesCols { COOKIE_KEY, COOKIE_VALUE};
|
||||
|
||||
CookiesDlg::CookiesDlg(QWidget *parent, const QList<QByteArray> &raw_cookies) :
|
||||
QDialog(parent),
|
||||
ui(new Ui::CookiesDlg)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
ui->infos_lbl->setText(tr("Common keys for cookies are : '%1', '%2'.\nYou should get this information from your Web browser preferences.").arg("uid").arg("pass"));
|
||||
foreach(const QByteArray &raw_cookie, raw_cookies) {
|
||||
QList<QByteArray> cookie_parts = raw_cookie.split('=');
|
||||
if(cookie_parts.size() != 2) continue;
|
||||
const int i = ui->cookiesTable->rowCount();
|
||||
ui->cookiesTable->setRowCount(i+1);
|
||||
ui->cookiesTable->setItem(i, COOKIE_KEY, new QTableWidgetItem(cookie_parts.first().data()));
|
||||
ui->cookiesTable->setItem(i, COOKIE_VALUE, new QTableWidgetItem(cookie_parts.last().data()));
|
||||
}
|
||||
}
|
||||
|
||||
CookiesDlg::~CookiesDlg()
|
||||
{
|
||||
delete ui;
|
||||
}
|
||||
|
||||
void CookiesDlg::on_add_btn_clicked() {
|
||||
ui->cookiesTable->setRowCount(ui->cookiesTable->rowCount()+1);
|
||||
// Edit first column
|
||||
ui->cookiesTable->editItem(ui->cookiesTable->item(ui->cookiesTable->rowCount()-1, COOKIE_KEY));
|
||||
}
|
||||
|
||||
void CookiesDlg::on_del_btn_clicked() {
|
||||
// Get selected cookie
|
||||
QList<QTableWidgetItem*> selection = ui->cookiesTable->selectedItems();
|
||||
if(!selection.isEmpty()) {
|
||||
ui->cookiesTable->removeRow(selection.first()->row());
|
||||
}
|
||||
}
|
||||
|
||||
QList<QByteArray> CookiesDlg::getCookies() const {
|
||||
QList<QByteArray> ret;
|
||||
for(int i=0; i<ui->cookiesTable->rowCount(); ++i) {
|
||||
QString key = ui->cookiesTable->item(i, COOKIE_KEY)->text().trimmed();
|
||||
QString value = ui->cookiesTable->item(i, COOKIE_VALUE)->text().trimmed();
|
||||
if(!key.isEmpty() && !value.isEmpty()) {
|
||||
const QString raw_cookie = key+"="+value;
|
||||
qDebug("Cookie: %s", qPrintable(raw_cookie));
|
||||
ret << raw_cookie.toLocal8Bit();
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
QList<QByteArray> CookiesDlg::askForCookies(QWidget *parent, const QList<QByteArray> &raw_cookies, bool *ok) {
|
||||
CookiesDlg dlg(parent, raw_cookies);
|
||||
if(dlg.exec()) {
|
||||
*ok = true;
|
||||
return dlg.getCookies();
|
||||
}
|
||||
*ok = false;
|
||||
return QList<QByteArray>();
|
||||
}
|
58
src/cookiesdlg.h
Normal file
@@ -0,0 +1,58 @@
|
||||
/*
|
||||
* Bittorrent Client using Qt4 and libtorrent.
|
||||
* Copyright (C) 2010 Christophe Dumez
|
||||
*
|
||||
* This program is free software; you can redistribute it and/or
|
||||
* modify it under the terms of the GNU General Public License
|
||||
* as published by the Free Software Foundation; either version 2
|
||||
* of the License, or (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program; if not, write to the Free Software
|
||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
||||
*
|
||||
* In addition, as a special exception, the copyright holders give permission to
|
||||
* link this program with the OpenSSL project's "OpenSSL" library (or with
|
||||
* modified versions of it that use the same license as the "OpenSSL" library),
|
||||
* and distribute the linked executables. You must obey the GNU General Public
|
||||
* License in all respects for all of the code used other than "OpenSSL". If you
|
||||
* modify file(s), you may extend this exception to your version of the file(s),
|
||||
* but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
* exception statement from your version.
|
||||
*
|
||||
* Contact : chris@qbittorrent.org arnaud@qbittorrent.org
|
||||
*/
|
||||
|
||||
#ifndef COOKIESDLG_H
|
||||
#define COOKIESDLG_H
|
||||
|
||||
#include <QDialog>
|
||||
|
||||
namespace Ui {
|
||||
class CookiesDlg;
|
||||
}
|
||||
|
||||
class CookiesDlg : public QDialog
|
||||
{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit CookiesDlg(QWidget *parent = 0, const QList<QByteArray> &raw_cookies = QList<QByteArray>());
|
||||
~CookiesDlg();
|
||||
QList<QByteArray> getCookies() const;
|
||||
static QList<QByteArray> askForCookies(QWidget *parent, const QList<QByteArray> &raw_cookies, bool *ok);
|
||||
|
||||
protected slots:
|
||||
void on_add_btn_clicked();
|
||||
void on_del_btn_clicked();
|
||||
|
||||
private:
|
||||
Ui::CookiesDlg *ui;
|
||||
};
|
||||
|
||||
#endif // COOKIESDLG_H
|