Compare commits
301 Commits
release-1.
...
release-1.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3783b11e98 | ||
|
|
03cf510f7f | ||
|
|
610dfefa26 | ||
|
|
6c477fcf75 | ||
|
|
604f8542a7 | ||
|
|
e9b4c6c047 | ||
|
|
985ac3be68 | ||
|
|
562c748c50 | ||
|
|
7a685f5ab6 | ||
|
|
9500b212c7 | ||
|
|
5a2e92ad79 | ||
|
|
9772fccde3 | ||
|
|
f26bcec56f | ||
|
|
52a62b6f0f | ||
|
|
f27b49f9a3 | ||
|
|
3e4fe1f823 | ||
|
|
a8a6911aa8 | ||
|
|
e299288367 | ||
|
|
de64a641d0 | ||
|
|
ab13a58614 | ||
|
|
c863ff6335 | ||
|
|
e20a09ca3e | ||
|
|
40966ae421 | ||
|
|
a87098629b | ||
|
|
194eb3ba6e | ||
|
|
8792637634 | ||
|
|
63ad2def91 | ||
|
|
f790b80aa3 | ||
|
|
ab78e5b438 | ||
|
|
05948e2edf | ||
|
|
c9c4f7001a | ||
|
|
6cd185d0d5 | ||
|
|
063219cbe7 | ||
|
|
e324f3792b | ||
|
|
0267ecc342 | ||
|
|
e53c7aaea6 | ||
|
|
3e90e56266 | ||
|
|
1c1b8acd67 | ||
|
|
811846e5fa | ||
|
|
3ba28885b9 | ||
|
|
8ed1c57c29 | ||
|
|
af5d24c5bc | ||
|
|
9dcd572d60 | ||
|
|
e024a3ff35 | ||
|
|
37342e0f0c | ||
|
|
bfbbc1f497 | ||
|
|
5d31dcdb15 | ||
|
|
6f89b1f131 | ||
|
|
9d35bda43c | ||
|
|
e780d83fd0 | ||
|
|
7a59d5e47c | ||
|
|
f2ea524be9 | ||
|
|
a33094519c | ||
|
|
e313ae808f | ||
|
|
dc9802fe1e | ||
|
|
64f1d306f4 | ||
|
|
f3af4867fd | ||
|
|
4fe22dbc57 | ||
|
|
1d9b524b77 | ||
|
|
63761afd0a | ||
|
|
8da148ffa1 | ||
|
|
e2dc2207d8 | ||
|
|
6e87d6655a | ||
|
|
d72485a955 | ||
|
|
04c6760892 | ||
|
|
382f3e3c86 | ||
|
|
c1378450fc | ||
|
|
4e10a8dbf7 | ||
|
|
4f7b4c2a55 | ||
|
|
f98f076335 | ||
|
|
b148a93a8f | ||
|
|
37cf23fe33 | ||
|
|
87f43123c6 | ||
|
|
11dd2d81b8 | ||
|
|
d18d07efed | ||
|
|
518a120c07 | ||
|
|
290bc8b7a6 | ||
|
|
0ede09efb5 | ||
|
|
15de12f6dd | ||
|
|
ef95d6df81 | ||
|
|
f382ba4fd0 | ||
|
|
01d504d992 | ||
|
|
cdd894a6a1 | ||
|
|
d7b2d3497f | ||
|
|
5dbd5c4326 | ||
|
|
9a14c4c599 | ||
|
|
3fa14cd47f | ||
|
|
941d9b9bd9 | ||
|
|
3d88b7b05c | ||
|
|
8d39e2a776 | ||
|
|
4a1c8a7279 | ||
|
|
b8d8862562 | ||
|
|
40e9105ee5 | ||
|
|
0984b8b8e1 | ||
|
|
3dd7dcc58f | ||
|
|
6ba5df3ec8 | ||
|
|
1560b4ca3b | ||
|
|
68d8a9ed47 | ||
|
|
ca00f3084d | ||
|
|
39c16b20ae | ||
|
|
666d4622b9 | ||
|
|
27388643b1 | ||
|
|
90d17d16a4 | ||
|
|
df0f01cd71 | ||
|
|
480d00d747 | ||
|
|
a0923741a4 | ||
|
|
8e2efc2950 | ||
|
|
91dee6058e | ||
|
|
f5c1343722 | ||
|
|
d4d0a08390 | ||
|
|
d02aca7323 | ||
|
|
fd81567ecd | ||
|
|
8e5f5b5d65 | ||
|
|
215d561b82 | ||
|
|
dc18780a97 | ||
|
|
06fb19e8be | ||
|
|
3550e31871 | ||
|
|
46c6c4fc9a | ||
|
|
e126de8ff5 | ||
|
|
f2d2e70967 | ||
|
|
48b14d1066 | ||
|
|
725700420c | ||
|
|
480df1f5dc | ||
|
|
2fa43dd973 | ||
|
|
b9f1586068 | ||
|
|
07dbe388f4 | ||
|
|
b2af40c95b | ||
|
|
05569a5011 | ||
|
|
73dbce45b2 | ||
|
|
fdaeafc701 | ||
|
|
9ca4e2f1f6 | ||
|
|
2b53aa7e81 | ||
|
|
8e79e918c5 | ||
|
|
687842a949 | ||
|
|
645ee86860 | ||
|
|
f50762dfa8 | ||
|
|
7e252d3fbd | ||
|
|
2dc9f10bf4 | ||
|
|
bca03706a0 | ||
|
|
e7663e7b6b | ||
|
|
2b0e05b453 | ||
|
|
4d67170d3e | ||
|
|
538c028f8a | ||
|
|
2cbbd6ef50 | ||
|
|
955d8069e2 | ||
|
|
25d998f1b5 | ||
|
|
462f6c41cd | ||
|
|
298f1e6a9a | ||
|
|
2926745102 | ||
|
|
c6003c7403 | ||
|
|
66e5a6672a | ||
|
|
c35500dd29 | ||
|
|
f80bd42361 | ||
|
|
0b9c05d41b | ||
|
|
2477dc1fc0 | ||
|
|
706362333d | ||
|
|
6fcf25af52 | ||
|
|
c8e8306e0a | ||
|
|
e429126934 | ||
|
|
7e71de558a | ||
|
|
09d8a4797d | ||
|
|
1bcb8b1ed8 | ||
|
|
d132d50f4d | ||
|
|
e619b6977a | ||
|
|
2742a54d6e | ||
|
|
360a327d7d | ||
|
|
b659303419 | ||
|
|
43108712be | ||
|
|
a038616fe5 | ||
|
|
81e5c295b6 | ||
|
|
08d079a563 | ||
|
|
454c8dc2bc | ||
|
|
337fc72ee6 | ||
|
|
b1e9c1ccf5 | ||
|
|
64806cb199 | ||
|
|
8e8e7cd3e7 | ||
|
|
27a18e01e2 | ||
|
|
fc9e7d74a3 | ||
|
|
037a1875f9 | ||
|
|
66baa4d3dc | ||
|
|
9e522a8a6c | ||
|
|
cfa4edd140 | ||
|
|
9e9134cd44 | ||
|
|
83a798b07e | ||
|
|
baee85684c | ||
|
|
88afb0f0e7 | ||
|
|
6f212f18f5 | ||
|
|
f04e600340 | ||
|
|
5140886567 | ||
|
|
0aa59694fd | ||
|
|
66d31b5ca1 | ||
|
|
47135932a4 | ||
|
|
40d0e44f15 | ||
|
|
16c30a2f10 | ||
|
|
7f2639fcbd | ||
|
|
8ad987a672 | ||
|
|
b24194068a | ||
|
|
f4e9b00ce3 | ||
|
|
5c0a24d58b | ||
|
|
c4aa23c86b | ||
|
|
96911a2c48 | ||
|
|
85abb80f43 | ||
|
|
2372f434cf | ||
|
|
ee6bc3c2e9 | ||
|
|
b6c6637c3b | ||
|
|
d358987316 | ||
|
|
6f28711f9e | ||
|
|
7b4b568859 | ||
|
|
c3aa2906bb | ||
|
|
9509bbaed4 | ||
|
|
b7c7245fb5 | ||
|
|
0153b03160 | ||
|
|
ca83fdecff | ||
|
|
bca898d8b6 | ||
|
|
c877c9c412 | ||
|
|
4dfd1f229b | ||
|
|
0d63f46035 | ||
|
|
106f7cdd32 | ||
|
|
0308825c11 | ||
|
|
8c21ef5c04 | ||
|
|
53c2fe4a60 | ||
|
|
64fef21a86 | ||
|
|
f6f4b5f219 | ||
|
|
f809b8a014 | ||
|
|
cf8dbf22f8 | ||
|
|
00d9f7c36b | ||
|
|
9a314db530 | ||
|
|
7db2ffc09f | ||
|
|
9a02c12ec9 | ||
|
|
2a77de686c | ||
|
|
a79b294885 | ||
|
|
13c670b96d | ||
|
|
65c4da6f0e | ||
|
|
bf9dc052d3 | ||
|
|
0ea6ee32be | ||
|
|
019bd476db | ||
|
|
baf5cb31af | ||
|
|
fc3c123f5b | ||
|
|
7dfdebd593 | ||
|
|
9835af4962 | ||
|
|
04cbd91f04 | ||
|
|
66db20cb47 | ||
|
|
2e0707bc0c | ||
|
|
e9c12cbf78 | ||
|
|
031de096f5 | ||
|
|
b85ed8ff38 | ||
|
|
00c5127ba1 | ||
|
|
714bf4f2ab | ||
|
|
c2244f746e | ||
|
|
8214d87ce5 | ||
|
|
e8454596ea | ||
|
|
1cc039c147 | ||
|
|
fe455970f1 | ||
|
|
36871a34ad | ||
|
|
4ea6ca75ca | ||
|
|
9e46c6c047 | ||
|
|
a2e9210665 | ||
|
|
aaf79add0b | ||
|
|
55743021e8 | ||
|
|
a8d627e1df | ||
|
|
eead11427f | ||
|
|
bec1388ba5 | ||
|
|
1542ff98bc | ||
|
|
0e9fd2dc3f | ||
|
|
cd618150b0 | ||
|
|
a2bcfa9192 | ||
|
|
1421f1450c | ||
|
|
288300d264 | ||
|
|
5e41a64c8b | ||
|
|
f4502367f3 | ||
|
|
273526b414 | ||
|
|
5b7b4b2cf3 | ||
|
|
ee99df0ba9 | ||
|
|
aec32db565 | ||
|
|
3894452840 | ||
|
|
54bfb7cda9 | ||
|
|
aa18f19ab7 | ||
|
|
3ae783e9cb | ||
|
|
83cac18690 | ||
|
|
3b09203937 | ||
|
|
a12621e1c0 | ||
|
|
60c3ccac7f | ||
|
|
1fbf7d42a1 | ||
|
|
4b73172105 | ||
|
|
ada5d2665b | ||
|
|
f1ca41a5c5 | ||
|
|
17e0700a52 | ||
|
|
cc77b2f578 | ||
|
|
85463e3910 | ||
|
|
7bd0dff802 | ||
|
|
4bc043146d | ||
|
|
fd78e0b5ce | ||
|
|
8565f1e61e | ||
|
|
4c6d6a35f3 | ||
|
|
fc79b7dc56 | ||
|
|
da11488ba1 | ||
|
|
968c3e1c3e | ||
|
|
68e30de763 | ||
|
|
573f00c66c | ||
|
|
ae81dbe088 | ||
|
|
2edbe66d91 |
5
AUTHORS
@@ -17,6 +17,11 @@ Images Authors:
|
|||||||
license: GPLv2
|
license: GPLv2
|
||||||
url: http://ftp.acc.umu.se/pub/GNOME/sources/gnome-icon-theme
|
url: http://ftp.acc.umu.se/pub/GNOME/sources/gnome-icon-theme
|
||||||
|
|
||||||
|
* files: src/oxygen/*.png
|
||||||
|
copyright: Oxygen Icon Theme (KDE)
|
||||||
|
license: LGPL
|
||||||
|
url: http://www.oxygen-icons.org
|
||||||
|
|
||||||
* files: src/Icons/flags/*.png
|
* files: src/Icons/flags/*.png
|
||||||
copyright: Open Clip Art Library
|
copyright: Open Clip Art Library
|
||||||
license: Creative Commons Public Domain Dedication
|
license: Creative Commons Public Domain Dedication
|
||||||
|
|||||||
14
COPYING
@@ -1,3 +1,17 @@
|
|||||||
|
qBittorrent is licensed under the GNU General Public License version 2 with the
|
||||||
|
addition of the following special exception:
|
||||||
|
|
||||||
|
In addition, as a special exception, the copyright holders give permission to
|
||||||
|
link this program with the OpenSSL project's "OpenSSL" library (or with
|
||||||
|
modified versions of it that use the same license as the "OpenSSL" library),
|
||||||
|
and distribute the linked executables. You must obey the GNU General Public
|
||||||
|
License in all respects for all of the code used other than "OpenSSL". If you
|
||||||
|
modify file(s), you may extend this exception to your version of the file(s),
|
||||||
|
but you are not obligated to do so. If you do not wish to do so, delete this
|
||||||
|
exception statement from your version.
|
||||||
|
|
||||||
|
----------
|
||||||
|
|
||||||
GNU GENERAL PUBLIC LICENSE
|
GNU GENERAL PUBLIC LICENSE
|
||||||
Version 2, June 1991
|
Version 2, June 1991
|
||||||
|
|
||||||
|
|||||||
114
Changelog
@@ -1,3 +1,117 @@
|
|||||||
|
* Sun Oct 25 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.5.4
|
||||||
|
- BUGFIX: Updated man page
|
||||||
|
- BUGFIX: Fixed possible crash with torrents containing unicode characters
|
||||||
|
- BUGFIX: Fixed problem when disabling systray integration and starting minimized
|
||||||
|
- BUGFIX: Fixed PirateBay search plugin
|
||||||
|
- BUGFIX: Using Download button in search results list now downloads the right torrents
|
||||||
|
- BUGFIX: The search results list is no longer sorted automatically when a row color is updated
|
||||||
|
|
||||||
|
* Wed Sep 30 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.5.3
|
||||||
|
- BUGFIX: Fix a possible crash when pausing then deleting a torrent quickly
|
||||||
|
- BUGFIX: Fix a race condition in folder scanning and torrent downloader
|
||||||
|
- BUGFIX: Hide download url column in search results
|
||||||
|
- BUGFIX: Fix a crash when scanned directory does not exist
|
||||||
|
- BUGFIX: Fix compilation on Mac OS
|
||||||
|
- BUGFIX: Added a command line parameter to disable splash screen
|
||||||
|
- BUGFIX: Ignore permanent deletion button when no torrent is selected
|
||||||
|
- BUGFIX: When a selected torrent is deleted, select next suitable torrent
|
||||||
|
|
||||||
|
* Sun Sep 20 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.5.2
|
||||||
|
- BUGFIX: Some torrents were pausing for no reason
|
||||||
|
- I18N: Updated Korean translation
|
||||||
|
|
||||||
|
* Thu Sep 7 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.5.1
|
||||||
|
- BUGFIX: Fix crash in torrent addition dialog when save path does not exist (closes #425227)
|
||||||
|
- BUGFIX: Fix downloading from URL (broken in v1.5.0)
|
||||||
|
- BUGFIX: Pause torrents in error state
|
||||||
|
|
||||||
|
* Thu Sep 3 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.5.0
|
||||||
|
- FEATURE: Added Magnet URI support
|
||||||
|
- FEATURE: Search engine supports category-based requests
|
||||||
|
- FEATURE: Make use of torrent enclosure in RSS feeds for direct download
|
||||||
|
- FEATURE: Implemented a RSS feed downloader with filter support
|
||||||
|
- FEATURE: Save old RSS item to hard disk to remember them on start up
|
||||||
|
- FEATURE: Display free disk space in torrent addition dialog
|
||||||
|
- FEATURE: In torrent addition from URL, paste clipboard content if it contains an URL
|
||||||
|
- FEATURE: RSS feeds URLs can now be copied to clipboard
|
||||||
|
- FEATURE: RSS feeds can now be grouped into folders
|
||||||
|
- FEATURE: Added "Unread" item to RSS feed list to display all unread news
|
||||||
|
- FEATURE: If a torrent contains a torrent file, process downloaded torrent file too
|
||||||
|
- FEATURE: A random listening port can be chosen automatically
|
||||||
|
- BUGFIX: torrent resume code rewrited
|
||||||
|
- BUGFIX: Fixed uTorrent spoofing code
|
||||||
|
- BUGFIX: Greatly improved column sorting code
|
||||||
|
- BUGFIX: Possibility to create trackerless torrents
|
||||||
|
- BUGFIX: Better item coloring in torrent content filtering dialog
|
||||||
|
- COSMETIC: Redesigned search tab to improve usability
|
||||||
|
- COSMETIC: Redesigned RSS tab to improve usability
|
||||||
|
- COSMETIC: Improved tracker errors readability
|
||||||
|
|
||||||
|
* Sun Aug 21 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.4.1
|
||||||
|
- BUGFIX: Fix problems when changing save path (if using temporary download folder)
|
||||||
|
- BUGFIX: Display real save path instead of the temporary one in torrent properties
|
||||||
|
- BUGFIX: Catching invalid_handle exception to avoid rare crashes
|
||||||
|
- BUGFIX: Fixed popup menu position in RSS feeds list
|
||||||
|
- BUGFIX: Don't save RSS feed state if it could not be updated
|
||||||
|
|
||||||
|
* Thu Aug 13 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.4.0
|
||||||
|
- FEATURE: Display swarm information in lists
|
||||||
|
- FEATURE: Allow to define temporary download folder
|
||||||
|
- FEATURE: Display total amount of uploaded data in finished list
|
||||||
|
- FEATURE: Resizing a column in a search results tab affects all tabs
|
||||||
|
- FEATURE: Search results tab columns are now remembered upon startup
|
||||||
|
- FEATURE: Added right click menu in search engine to clear completion history
|
||||||
|
- FEATURE: Allow to set a different port for DHT (UDP) than the one used for Bittorrent
|
||||||
|
- FEATURE: Updated spoofing code to avoid trackers ban
|
||||||
|
- BUGFIX: Provide more helpful explanation when an I/O error occured
|
||||||
|
- BUGFIX: Stop enforcing UTF-8 and use system locale instead
|
||||||
|
- COSMETIC: Redesigned program preferences
|
||||||
|
- COSMETIC: Updated icons set
|
||||||
|
|
||||||
|
* Fri Jul 24 2009 - Christophe DUMEZ <chris@qbittorrent.org> - 1.3.5
|
||||||
|
- BUGFIX: Made IP filter parser more robust
|
||||||
|
- BUGFIX: Fixed torrent creation tool
|
||||||
|
- BUGFIX: Fixed possible overflow in progress calculation in arborescence.h
|
||||||
|
- BUGFIX: Save properties window size, position, columns width and restore them
|
||||||
|
- BUGFIX: Set a minimum default width for NAME column in properties
|
||||||
|
- BUGFIX: Remember visual indexes of columns in transfer lists
|
||||||
|
|
||||||
|
* Sun Jul 12 2009 - Christophe DUMEZ <chris@qbittorrent.org> - v1.3.4
|
||||||
|
- BUGFIX: Fixed IP filter file parsing on 64bits
|
||||||
|
- BUGFIX: Suppressed QLayout: Attempting to add QLayout "" to properties "properties" warning message when opening a properties dialog
|
||||||
|
- BUGFIX: Fixed a little bug in search engine plugins helper file
|
||||||
|
- BUGFIX: Fixed compilation problems with Qt 4.3
|
||||||
|
- BUGFIX: Percentages no longer disapear with default cleanlooks style
|
||||||
|
- BUGFIX: Cleanly fixed popup menus position in lists (no more workarounds)
|
||||||
|
- BUGFIX: Fixed memory leak in search engine
|
||||||
|
- BUGFIX: Torrents with an infinite ratio are no longer affected by ratio_limit set in program preferences
|
||||||
|
- BUGFIX: Display a ratio of 0.0 if total_upload and total_download are both 0
|
||||||
|
- BUGFIX: Remove last separator in top tool bar
|
||||||
|
- BUGFIX: Tuned lists properties to make sure display is correct
|
||||||
|
- COSMETIC: Display date as well as time in log window
|
||||||
|
|
||||||
|
* Sun Apr 5 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.3
|
||||||
|
- BUGFIX: Fixed Web UI torrent upload form
|
||||||
|
- BUGFIX: Fixed unicode support in search engine
|
||||||
|
- BUGFIX: Fixed search engine bug that prevented a torrent from appearing more than once among all tabs
|
||||||
|
- LICENSE: Added an exception to the license regarding OpenSSL.
|
||||||
|
- I18N: Updated Finnish translation
|
||||||
|
|
||||||
|
* Sat Mar 7 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.2
|
||||||
|
- BUGFIX: Fix top toolbar disabling
|
||||||
|
- BUGFIX: Fix building with Qt 4.5
|
||||||
|
- BUGFIX: RSS items read status is now remembered upon restart
|
||||||
|
|
||||||
|
* Mon Jan 26 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.1
|
||||||
|
- BUGFIX: Torrents paused due to an I/O error were displayed as queued
|
||||||
|
- BUGFIX: qBittorrent now prints backtrace in terminal when segfaulting
|
||||||
|
- BUGFIX: Fixed files progress display in torrent properties
|
||||||
|
- BUGFIX: Improved torrent ratio calculation
|
||||||
|
- BUGFIX: Fixed possible crash when parsing filter file
|
||||||
|
- BUGFIX: Made some code optimization
|
||||||
|
- BUGFIX: Fixed download/upload speed decrease problems
|
||||||
|
- I18N: Updated Finnish, Bulgarian and Greek translations
|
||||||
|
|
||||||
* Fri Jan 9 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.0
|
* Fri Jan 9 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.0
|
||||||
- FEATURE: Based on libtorrent-rasterbar v0.14.2
|
- FEATURE: Based on libtorrent-rasterbar v0.14.2
|
||||||
- FEATURE: Improved ratio calculation system
|
- FEATURE: Improved ratio calculation system
|
||||||
|
|||||||
16
TODO
@@ -1,18 +1,2 @@
|
|||||||
See https://blueprints.launchpad.net/qbittorrent/
|
See https://blueprints.launchpad.net/qbittorrent/
|
||||||
|
|
||||||
// translations done in v1.3.0
|
|
||||||
- Romanian
|
|
||||||
- Russian
|
|
||||||
- Hungarian
|
|
||||||
- German
|
|
||||||
- Chinese (traditional)
|
|
||||||
- Chinese (simplified)
|
|
||||||
- Italian
|
|
||||||
- Swedish
|
|
||||||
- Turkish
|
|
||||||
- French
|
|
||||||
- Slovak
|
|
||||||
- Czech
|
|
||||||
- Korean
|
|
||||||
- Portuguese
|
|
||||||
- Brazilian
|
|
||||||
|
|||||||
109
configure
vendored
@@ -18,17 +18,12 @@ Main options:
|
|||||||
--help This help text.
|
--help This help text.
|
||||||
|
|
||||||
Dependency options:
|
Dependency options:
|
||||||
--with-libtorrent-inc=[path] Path to libtorrent-rasterbar include
|
--with-libboost-inc=[path] Path to libboost include files
|
||||||
files
|
--with-libcurl-inc=[path] Path to libcurl include files
|
||||||
--with-libtorrent-lib=[path] Path to libtorrent-rasterbar library
|
--with-libcurl-lib=[path] Path to libcurl library files
|
||||||
files
|
--disable-libzzip Disable use of libzzip
|
||||||
--with-libtorrent-static-lib=[path] Path to libtorrent-rasterbar .a file
|
--with-libzzip-inc=[path] Path to libzzip++ include files
|
||||||
--with-libboost-inc=[path] Path to libboost include files
|
--with-libzzip-lib=[path] Path to libzzip++ library files
|
||||||
--with-libcurl-inc=[path] Path to libcurl include files
|
|
||||||
--with-libcurl-lib=[path] Path to libcurl library files
|
|
||||||
--disable-libzzip Disable use of libzzip
|
|
||||||
--with-libzzip-inc=[path] Path to libzzip++ include files
|
|
||||||
--with-libzzip-lib=[path] Path to libzzip++ library files
|
|
||||||
|
|
||||||
EOT
|
EOT
|
||||||
}
|
}
|
||||||
@@ -145,21 +140,6 @@ while [ $# -gt 0 ]; do
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--with-libtorrent-inc=*)
|
|
||||||
QC_WITH_LIBTORRENT_INC=$optarg
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
|
|
||||||
--with-libtorrent-lib=*)
|
|
||||||
QC_WITH_LIBTORRENT_LIB=$optarg
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
|
|
||||||
--with-libtorrent-static-lib=*)
|
|
||||||
QC_WITH_LIBTORRENT_STATIC_LIB=$optarg
|
|
||||||
shift
|
|
||||||
;;
|
|
||||||
|
|
||||||
--with-libboost-inc=*)
|
--with-libboost-inc=*)
|
||||||
QC_WITH_LIBBOOST_INC=$optarg
|
QC_WITH_LIBBOOST_INC=$optarg
|
||||||
shift
|
shift
|
||||||
@@ -211,9 +191,6 @@ echo PREFIX=$PREFIX
|
|||||||
echo BINDIR=$BINDIR
|
echo BINDIR=$BINDIR
|
||||||
echo DATADIR=$DATADIR
|
echo DATADIR=$DATADIR
|
||||||
echo EX_QTDIR=$EX_QTDIR
|
echo EX_QTDIR=$EX_QTDIR
|
||||||
echo QC_WITH_LIBTORRENT_INC=$QC_WITH_LIBTORRENT_INC
|
|
||||||
echo QC_WITH_LIBTORRENT_LIB=$QC_WITH_LIBTORRENT_LIB
|
|
||||||
echo QC_WITH_LIBTORRENT_STATIC_LIB=$QC_WITH_LIBTORRENT_STATIC_LIB
|
|
||||||
echo QC_WITH_LIBBOOST_INC=$QC_WITH_LIBBOOST_INC
|
echo QC_WITH_LIBBOOST_INC=$QC_WITH_LIBBOOST_INC
|
||||||
echo QC_WITH_LIBCURL_INC=$QC_WITH_LIBCURL_INC
|
echo QC_WITH_LIBCURL_INC=$QC_WITH_LIBCURL_INC
|
||||||
echo QC_WITH_LIBCURL_LIB=$QC_WITH_LIBCURL_LIB
|
echo QC_WITH_LIBCURL_LIB=$QC_WITH_LIBCURL_LIB
|
||||||
@@ -346,70 +323,29 @@ public:
|
|||||||
/*
|
/*
|
||||||
-----BEGIN QCMOD-----
|
-----BEGIN QCMOD-----
|
||||||
name: libtorrent-rasterbar
|
name: libtorrent-rasterbar
|
||||||
arg: with-libtorrent-inc=[path], Path to libtorrent-rasterbar include files
|
|
||||||
arg: with-libtorrent-lib=[path], Path to libtorrent-rasterbar library files
|
|
||||||
arg: with-libtorrent-static-lib=[path], Path to libtorrent-rasterbar .a file
|
|
||||||
-----END QCMOD-----
|
-----END QCMOD-----
|
||||||
*/
|
*/
|
||||||
|
// see Conf::findPkgConfig
|
||||||
class qc_libtorrent_rasterbar : public ConfObj
|
class qc_libtorrent_rasterbar : public ConfObj
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
|
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
|
||||||
QString name() const { return "libtorrent-rasterbar >= 0.14"; }
|
QString name() const { return "libtorrent-rasterbar >= 0.14.0 (>= 0.14.4 advised)"; }
|
||||||
QString shortname() const { return "libtorrent-rasterbar"; }
|
QString shortname() const { return "libtorrent-rasterbar"; }
|
||||||
bool exec(){
|
bool exec(){
|
||||||
QString s;
|
QStringList incs;
|
||||||
s = conf->getenv("QC_WITH_LIBTORRENT_INC");
|
QString req_ver = "0.14.0";
|
||||||
if(!s.isEmpty()) {
|
QString adv_ver = "0.14.4";
|
||||||
if(!conf->checkHeader(s, "libtorrent/magnet_uri.hpp")) {
|
QString version, libs, other;
|
||||||
return false;
|
VersionMode mode = VersionMin;
|
||||||
}
|
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other))
|
||||||
}else{
|
return false;
|
||||||
QStringList sl;
|
for(int n = 0; n < incs.count(); ++n)
|
||||||
sl << "/usr/include";
|
conf->addIncludePath(incs[n]);
|
||||||
sl << "/usr/local/include";
|
if(!libs.isEmpty())
|
||||||
bool found = false;
|
conf->addLib(libs);
|
||||||
foreach(s, sl){
|
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other))
|
||||||
if(conf->checkHeader(s, "libtorrent/magnet_uri.hpp")){
|
printf("\nWarning: libtorrent-rasterbar v%s was detected. Although it will compile and run, you will probably experience some bugs. Please consider updating to v%s!\n", version.toUtf8().data(), adv_ver.toUtf8().data());
|
||||||
found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!found) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
conf->addIncludePath(s);
|
|
||||||
conf->addIncludePath(s+QDir::separator()+"libtorrent");
|
|
||||||
|
|
||||||
s = conf->getenv("QC_WITH_LIBTORRENT_STATIC_LIB");
|
|
||||||
if(!s.isEmpty() && QFile::exists(s) && s.endsWith(".a")){
|
|
||||||
conf->addLib(s);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
s = conf->getenv("QC_WITH_LIBTORRENT_LIB");
|
|
||||||
if(!s.isEmpty()) {
|
|
||||||
if(!conf->checkLibrary(s, "torrent-rasterbar")) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
conf->addLib(QString("-L") + s);
|
|
||||||
}else{
|
|
||||||
QStringList sl;
|
|
||||||
sl << "/usr/lib/";
|
|
||||||
sl << "/usr/lib64/";
|
|
||||||
sl << "/usr/local/lib/";
|
|
||||||
sl << "/usr/local/lib64/";
|
|
||||||
bool found = false;
|
|
||||||
foreach(s, sl){
|
|
||||||
if(conf->checkLibrary(s, "torrent-rasterbar")){
|
|
||||||
found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!found) return false;
|
|
||||||
conf->addLib(QString("-L") + s);
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -1567,9 +1503,6 @@ export PREFIX
|
|||||||
export BINDIR
|
export BINDIR
|
||||||
export DATADIR
|
export DATADIR
|
||||||
export EX_QTDIR
|
export EX_QTDIR
|
||||||
export QC_WITH_LIBTORRENT_INC
|
|
||||||
export QC_WITH_LIBTORRENT_LIB
|
|
||||||
export QC_WITH_LIBTORRENT_STATIC_LIB
|
|
||||||
export QC_WITH_LIBBOOST_INC
|
export QC_WITH_LIBBOOST_INC
|
||||||
export QC_WITH_LIBCURL_INC
|
export QC_WITH_LIBCURL_INC
|
||||||
export QC_WITH_LIBCURL_LIB
|
export QC_WITH_LIBCURL_LIB
|
||||||
|
|||||||
@@ -1,17 +1,19 @@
|
|||||||
.\" This manpage has been automatically generated by docbook2man
|
.\" This manpage has been automatically generated by docbook2man
|
||||||
.\" from a DocBook document. This tool can be found at:
|
.\" from a DocBook document. This tool can be found at:
|
||||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>.
|
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>.
|
||||||
.TH "QBITTORRENT" "1" "September 1st 2007" "Bittorrent client written in C++ / Qt4" ""
|
.TH "QBITTORRENT" "1" "September 30th 2009" "Bittorrent client written in C++ / Qt4" ""
|
||||||
|
|
||||||
.SH NAME
|
.SH "NAME"
|
||||||
qBittorrent \- a Bittorrent client written in C++ / Qt4
|
qBittorrent \- a Bittorrent client written in C++ / Qt4
|
||||||
.SH SYNOPSIS
|
|
||||||
|
|
||||||
\fBqbittorrent\fR [FILE | URL] [FILE | URL...]
|
.SH "SYNOPSIS"
|
||||||
|
|
||||||
|
\fBqbittorrent\fR [--no-splash] [TORRENT_FILE | URL]...
|
||||||
|
|
||||||
\fBqbittorrent\fR \-\-help
|
\fBqbittorrent\fR \-\-help
|
||||||
|
|
||||||
\fBqbittorrent\fR \-\-version
|
\fBqbittorrent\fR \-\-version
|
||||||
|
|
||||||
.PP
|
.PP
|
||||||
.SH "DESCRIPTION"
|
.SH "DESCRIPTION"
|
||||||
|
|
||||||
@@ -19,10 +21,21 @@ qBittorrent \- a Bittorrent client written in C++ / Qt4
|
|||||||
using the \fBrblibtorrent\fR library by Arvid Norberg. qBittorrent aims
|
using the \fBrblibtorrent\fR library by Arvid Norberg. qBittorrent aims
|
||||||
to be a good alternative to all other bittorrent clients out there. qBittorrent
|
to be a good alternative to all other bittorrent clients out there. qBittorrent
|
||||||
is fast, stable, light, it supports unicode and it provides a good integrated search engine.
|
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), FAST extension (mainline) and PeX support (utorrent compatible).
|
It also comes with UPnP port forwarding / NAT-PMP, encryption (Azureus compatible),
|
||||||
|
FAST extension (mainline) and PeX support (utorrent compatible).
|
||||||
|
|
||||||
|
.SH "OPTIONS"
|
||||||
|
|
||||||
|
\fB--help\fR Prints the command line options.
|
||||||
|
|
||||||
|
\fB--version\fR Prints qbittorrent program version number.
|
||||||
|
|
||||||
|
\fB--no-splash\fR Disables splash screen on startup.
|
||||||
|
|
||||||
|
.SH "BUGS"
|
||||||
|
|
||||||
|
If you find a bug, please report it at http://bugs.qbittorrent.org
|
||||||
|
|
||||||
Please report any problem to http://bugs.qbittorrent.org
|
|
||||||
.PP
|
|
||||||
.SH "AUTHOR"
|
.SH "AUTHOR"
|
||||||
|
|
||||||
Christophe Dumez <chris@qbittorrent.org>
|
Christophe Dumez <chris@qbittorrent.org>
|
||||||
|
|||||||
@@ -1,65 +0,0 @@
|
|||||||
/*
|
|
||||||
-----BEGIN QCMOD-----
|
|
||||||
name: libcommoncpp2
|
|
||||||
arg: with-libcommoncpp2-inc=[path], Path to libcommoncpp2 include files
|
|
||||||
arg: with-libcommoncpp2-lib=[path], Path to libcommoncpp2 library files
|
|
||||||
-----END QCMOD-----
|
|
||||||
*/
|
|
||||||
class qc_libcommoncpp2 : public ConfObj
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
qc_libcommoncpp2(Conf *c) : ConfObj(c) {}
|
|
||||||
QString name() const { return "GNU Common C++ library (libcommoncpp2)"; }
|
|
||||||
QString shortname() const { return "libcommoncpp2"; }
|
|
||||||
bool exec(){
|
|
||||||
QString s;
|
|
||||||
s = conf->getenv("QC_WITH_LIBCOMMONCPP2_INC");
|
|
||||||
if(!s.isEmpty()) {
|
|
||||||
if(!conf->checkHeader(s, "cc++/url.h")) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
QStringList sl;
|
|
||||||
sl << "/usr/include";
|
|
||||||
sl << "/usr/local/include";
|
|
||||||
bool found = false;
|
|
||||||
foreach(s, sl){
|
|
||||||
if(conf->checkHeader(s, "cc++/url.h")){
|
|
||||||
found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!found) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
conf->addIncludePath(s);
|
|
||||||
|
|
||||||
s = conf->getenv("QC_WITH_LIBCOMMONCPP2_LIB");
|
|
||||||
if(!s.isEmpty()) {
|
|
||||||
if(!QFile::exists(s+QString("/libccext2.so")))
|
|
||||||
return false;
|
|
||||||
if(!QFile::exists(s+QString("/libccgnu2.so")))
|
|
||||||
return false;
|
|
||||||
conf->addLib(QString("-L") + s);
|
|
||||||
}else{
|
|
||||||
QStringList sl;
|
|
||||||
sl << "/usr/lib/";
|
|
||||||
sl << "/usr/lib64/";
|
|
||||||
sl << "/usr/local/lib/";
|
|
||||||
sl << "/usr/local/lib64/";
|
|
||||||
bool found = false;
|
|
||||||
foreach(s, sl){
|
|
||||||
if(QFile::exists(s+QString("libccext2.so"))){
|
|
||||||
if(QFile::exists(s+QString("libccgnu2.so"))){
|
|
||||||
found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!found) return false;
|
|
||||||
conf->addLib(QString("-L") + s);
|
|
||||||
}
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -64,14 +64,11 @@ public:
|
|||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
conf->addLib(QString("-L") + s);
|
conf->addLib(QString("-L") + s);
|
||||||
QProcess magickConfig;
|
QString out = "";
|
||||||
QStringList params;
|
QStringList params;
|
||||||
params << "--libs";
|
params << "--libs";
|
||||||
magickConfig.start("Magick++-config", params, QIODevice::ReadOnly);
|
qconf->doCommand("Magick++-config", params, &out);
|
||||||
magickConfig.waitForStarted();
|
out = out.replace("\n", "");
|
||||||
magickConfig.waitForFinished();
|
|
||||||
QByteArray result = magickConfig.readAll();
|
|
||||||
result = result.replace("\n", "");
|
|
||||||
conf->addLib(result.data());
|
conf->addLib(result.data());
|
||||||
conf->addDefine("HAVE_MAGICK");
|
conf->addDefine("HAVE_MAGICK");
|
||||||
return true;
|
return true;
|
||||||
|
|||||||
@@ -1,70 +1,29 @@
|
|||||||
/*
|
/*
|
||||||
-----BEGIN QCMOD-----
|
-----BEGIN QCMOD-----
|
||||||
name: libtorrent-rasterbar
|
name: libtorrent-rasterbar
|
||||||
arg: with-libtorrent-inc=[path], Path to libtorrent-rasterbar include files
|
|
||||||
arg: with-libtorrent-lib=[path], Path to libtorrent-rasterbar library files
|
|
||||||
arg: with-libtorrent-static-lib=[path], Path to libtorrent-rasterbar .a file
|
|
||||||
-----END QCMOD-----
|
-----END QCMOD-----
|
||||||
*/
|
*/
|
||||||
|
// see Conf::findPkgConfig
|
||||||
class qc_libtorrent_rasterbar : public ConfObj
|
class qc_libtorrent_rasterbar : public ConfObj
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
|
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
|
||||||
QString name() const { return "libtorrent-rasterbar >= 0.14"; }
|
QString name() const { return "libtorrent-rasterbar >= 0.14.0 (>= 0.14.4 advised)"; }
|
||||||
QString shortname() const { return "libtorrent-rasterbar"; }
|
QString shortname() const { return "libtorrent-rasterbar"; }
|
||||||
bool exec(){
|
bool exec(){
|
||||||
QString s;
|
QStringList incs;
|
||||||
s = conf->getenv("QC_WITH_LIBTORRENT_INC");
|
QString req_ver = "0.14.0";
|
||||||
if(!s.isEmpty()) {
|
QString adv_ver = "0.14.4";
|
||||||
if(!conf->checkHeader(s, "libtorrent/magnet_uri.hpp")) {
|
QString version, libs, other;
|
||||||
return false;
|
VersionMode mode = VersionMin;
|
||||||
}
|
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other))
|
||||||
}else{
|
return false;
|
||||||
QStringList sl;
|
for(int n = 0; n < incs.count(); ++n)
|
||||||
sl << "/usr/include";
|
conf->addIncludePath(incs[n]);
|
||||||
sl << "/usr/local/include";
|
if(!libs.isEmpty())
|
||||||
bool found = false;
|
conf->addLib(libs);
|
||||||
foreach(s, sl){
|
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other))
|
||||||
if(conf->checkHeader(s, "libtorrent/magnet_uri.hpp")){
|
printf("\nWarning: libtorrent-rasterbar v%s was detected. Although it will compile and run, you will probably experience some bugs. Please consider updating to v%s!\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
|
||||||
found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!found) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
conf->addIncludePath(s);
|
|
||||||
conf->addIncludePath(s+QDir::separator()+"libtorrent");
|
|
||||||
|
|
||||||
s = conf->getenv("QC_WITH_LIBTORRENT_STATIC_LIB");
|
|
||||||
if(!s.isEmpty() && QFile::exists(s) && s.endsWith(".a")){
|
|
||||||
conf->addLib(s);
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
s = conf->getenv("QC_WITH_LIBTORRENT_LIB");
|
|
||||||
if(!s.isEmpty()) {
|
|
||||||
if(!conf->checkLibrary(s, "torrent-rasterbar")) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
conf->addLib(QString("-L") + s);
|
|
||||||
}else{
|
|
||||||
QStringList sl;
|
|
||||||
sl << "/usr/lib/";
|
|
||||||
sl << "/usr/lib64/";
|
|
||||||
sl << "/usr/local/lib/";
|
|
||||||
sl << "/usr/local/lib64/";
|
|
||||||
bool found = false;
|
|
||||||
foreach(s, sl){
|
|
||||||
if(conf->checkLibrary(s, "torrent-rasterbar")){
|
|
||||||
found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!found) return false;
|
|
||||||
conf->addLib(QString("-L") + s);
|
|
||||||
}
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -16,6 +16,15 @@
|
|||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
* 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
|
* Contact : chris@qbittorrent.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -72,7 +81,10 @@ class DLListDelegate: public QItemDelegate {
|
|||||||
case RATIO:{
|
case RATIO:{
|
||||||
QItemDelegate::drawBackground(painter, opt, index);
|
QItemDelegate::drawBackground(painter, opt, index);
|
||||||
double ratio = index.data().toDouble();
|
double ratio = index.data().toDouble();
|
||||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1)));
|
if(ratio > 100.)
|
||||||
|
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString::fromUtf8("∞"));
|
||||||
|
else
|
||||||
|
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case PROGRESS:{
|
case PROGRESS:{
|
||||||
|
|||||||
480
src/FeedDownloader.h
Normal file
546
src/FeedDownloader.ui
Normal file
@@ -16,6 +16,15 @@
|
|||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
* 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
|
* Contact : chris@qbittorrent.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -35,9 +44,13 @@
|
|||||||
#define F_NAME 0
|
#define F_NAME 0
|
||||||
#define F_SIZE 1
|
#define F_SIZE 1
|
||||||
#define F_UPSPEED 2
|
#define F_UPSPEED 2
|
||||||
#define F_LEECH 3
|
#define F_SWARM 3
|
||||||
#define F_RATIO 4
|
#define F_PEERS 4
|
||||||
#define F_HASH 5
|
#define F_UPLOAD 5
|
||||||
|
#define F_RATIO 6
|
||||||
|
#define F_HASH 7
|
||||||
|
|
||||||
|
#define MAX_RATIO 100.
|
||||||
|
|
||||||
class FinishedListDelegate: public QItemDelegate {
|
class FinishedListDelegate: public QItemDelegate {
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
@@ -51,6 +64,7 @@ class FinishedListDelegate: public QItemDelegate {
|
|||||||
QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option);
|
QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option);
|
||||||
switch(index.column()){
|
switch(index.column()){
|
||||||
case F_SIZE:
|
case F_SIZE:
|
||||||
|
case F_UPLOAD:
|
||||||
QItemDelegate::drawBackground(painter, opt, index);
|
QItemDelegate::drawBackground(painter, opt, index);
|
||||||
QItemDelegate::drawDisplay(painter, opt, option.rect, misc::friendlyUnit(index.data().toLongLong()));
|
QItemDelegate::drawDisplay(painter, opt, option.rect, misc::friendlyUnit(index.data().toLongLong()));
|
||||||
break;
|
break;
|
||||||
@@ -63,7 +77,10 @@ class FinishedListDelegate: public QItemDelegate {
|
|||||||
case F_RATIO:{
|
case F_RATIO:{
|
||||||
QItemDelegate::drawBackground(painter, opt, index);
|
QItemDelegate::drawBackground(painter, opt, index);
|
||||||
double ratio = index.data().toDouble();
|
double ratio = index.data().toDouble();
|
||||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1)));
|
if(ratio > MAX_RATIO)
|
||||||
|
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString::fromUtf8("∞"));
|
||||||
|
else
|
||||||
|
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1)));
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
default:
|
default:
|
||||||
|
|||||||
@@ -16,6 +16,15 @@
|
|||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
* 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
|
* Contact : chris@qbittorrent.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -26,6 +35,7 @@
|
|||||||
#include "qtorrenthandle.h"
|
#include "qtorrenthandle.h"
|
||||||
|
|
||||||
class QStandardItemModel;
|
class QStandardItemModel;
|
||||||
|
class QSortFilterProxyModel;
|
||||||
class bittorrent;
|
class bittorrent;
|
||||||
class FinishedListDelegate;
|
class FinishedListDelegate;
|
||||||
|
|
||||||
@@ -38,6 +48,7 @@ class FinishedTorrents : public QWidget, public Ui::seeding {
|
|||||||
bittorrent *BTSession;
|
bittorrent *BTSession;
|
||||||
FinishedListDelegate *finishedListDelegate;
|
FinishedListDelegate *finishedListDelegate;
|
||||||
QStandardItemModel *finishedListModel;
|
QStandardItemModel *finishedListModel;
|
||||||
|
QSortFilterProxyModel *proxyModel;
|
||||||
unsigned int nbFinished;
|
unsigned int nbFinished;
|
||||||
void hideOrShowColumn(int index);
|
void hideOrShowColumn(int index);
|
||||||
bool loadHiddenColumns();
|
bool loadHiddenColumns();
|
||||||
@@ -60,17 +71,15 @@ class FinishedTorrents : public QWidget, public Ui::seeding {
|
|||||||
void displayFinishedHoSMenu(const QPoint&);
|
void displayFinishedHoSMenu(const QPoint&);
|
||||||
void setRowColor(int row, QString color);
|
void setRowColor(int row, QString color);
|
||||||
void saveColWidthFinishedList() const;
|
void saveColWidthFinishedList() const;
|
||||||
void toggleFinishedListSortOrder(int index);
|
|
||||||
void sortFinishedList(int index=-1, Qt::SortOrder sortOrder=Qt::AscendingOrder);
|
|
||||||
void sortFinishedListFloat(int index, Qt::SortOrder sortOrder);
|
|
||||||
void sortFinishedListString(int index, Qt::SortOrder sortOrder);
|
|
||||||
void updateFileSize(QString hash);
|
void updateFileSize(QString hash);
|
||||||
void on_actionSet_upload_limit_triggered();
|
void on_actionSet_upload_limit_triggered();
|
||||||
void notifyTorrentDoubleClicked(const QModelIndex& index);
|
void notifyTorrentDoubleClicked(const QModelIndex& index);
|
||||||
void hideOrShowColumnName();
|
void hideOrShowColumnName();
|
||||||
void hideOrShowColumnSize();
|
void hideOrShowColumnSize();
|
||||||
void hideOrShowColumnUpSpeed();
|
void hideOrShowColumnUpSpeed();
|
||||||
void hideOrShowColumnLeechers();
|
void hideOrShowColumnSwarm();
|
||||||
|
void hideOrShowColumnPeers();
|
||||||
|
void hideOrShowColumnUpload();
|
||||||
void hideOrShowColumnRatio();
|
void hideOrShowColumnRatio();
|
||||||
void forceRecheck();
|
void forceRecheck();
|
||||||
|
|
||||||
@@ -82,6 +91,8 @@ class FinishedTorrents : public QWidget, public Ui::seeding {
|
|||||||
void deleteTorrent(QString hash);
|
void deleteTorrent(QString hash);
|
||||||
void showPropertiesFromHash(QString hash);
|
void showPropertiesFromHash(QString hash);
|
||||||
void loadLastSortedColumn();
|
void loadLastSortedColumn();
|
||||||
|
void saveLastSortedColumn();
|
||||||
|
void updateMetadata(QTorrentHandle &h);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
void torrentMovedFromFinishedList(QString);
|
void torrentMovedFromFinishedList(QString);
|
||||||
|
|||||||
2459
src/GUI.cpp
15
src/GUI.h
@@ -16,6 +16,15 @@
|
|||||||
* along with this program; if not, write to the Free Software
|
* along with this program; if not, write to the Free Software
|
||||||
* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
* 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
|
* Contact : chris@qbittorrent.org
|
||||||
*/
|
*/
|
||||||
|
|
||||||
@@ -61,6 +70,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
|||||||
// Bittorrent
|
// Bittorrent
|
||||||
bittorrent *BTSession;
|
bittorrent *BTSession;
|
||||||
QTimer *checkConnect;
|
QTimer *checkConnect;
|
||||||
|
QTimer *scrapeTimer;
|
||||||
QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers;
|
QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers;
|
||||||
// GUI related
|
// GUI related
|
||||||
QTabWidget *tabs;
|
QTabWidget *tabs;
|
||||||
@@ -130,9 +140,10 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
|||||||
void createTrayIcon();
|
void createTrayIcon();
|
||||||
void updateUnfinishedTorrentNumber(unsigned int nb);
|
void updateUnfinishedTorrentNumber(unsigned int nb);
|
||||||
void updateFinishedTorrentNumber(unsigned int nb);
|
void updateFinishedTorrentNumber(unsigned int nb);
|
||||||
void fullDiskError(QTorrentHandle& h) const;
|
void fullDiskError(QTorrentHandle& h, QString msg) const;
|
||||||
void handleDownloadFromUrlFailure(QString, QString) const;
|
void handleDownloadFromUrlFailure(QString, QString) const;
|
||||||
void createSystrayDelayed();
|
void createSystrayDelayed();
|
||||||
|
void setPaused(QTorrentHandle &h) const;
|
||||||
// Keyboard shortcuts
|
// Keyboard shortcuts
|
||||||
void createKeyboardShortcuts();
|
void createKeyboardShortcuts();
|
||||||
void displayDownTab() const;
|
void displayDownTab() const;
|
||||||
@@ -168,6 +179,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
|||||||
bool initWebUi(QString username, QString password, int port);
|
bool initWebUi(QString username, QString password, int port);
|
||||||
void on_actionIncreasePriority_triggered();
|
void on_actionIncreasePriority_triggered();
|
||||||
void on_actionDecreasePriority_triggered();
|
void on_actionDecreasePriority_triggered();
|
||||||
|
void scrapeTrackers();
|
||||||
// Options slots
|
// Options slots
|
||||||
void on_actionOptions_triggered();
|
void on_actionOptions_triggered();
|
||||||
void OptionsSaved(bool deleteOptions);
|
void OptionsSaved(bool deleteOptions);
|
||||||
@@ -180,6 +192,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
|
|||||||
void setTabText(int index, QString text) const;
|
void setTabText(int index, QString text) const;
|
||||||
void openDestinationFolder() const;
|
void openDestinationFolder() const;
|
||||||
void goBuyPage() const;
|
void goBuyPage() const;
|
||||||
|
void copyMagnetURI() const;
|
||||||
void updateRatio();
|
void updateRatio();
|
||||||
|
|
||||||
protected:
|
protected:
|
||||||
|
|||||||
|
Before Width: | Height: | Size: 1005 B |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.5 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 820 B |
|
Before Width: | Height: | Size: 821 B |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 998 B |
|
Before Width: | Height: | Size: 1.3 KiB |
|
Before Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 846 B |
BIN
src/Icons/magnet.png
Normal file
|
After Width: | Height: | Size: 7.0 KiB |