Compare commits
44 Commits
release-2.
...
release-0.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
ff277fe5bb | ||
|
|
7140a532ed | ||
|
|
db4f3ab08a | ||
|
|
1deb7b88bc | ||
|
|
0d40bb0d68 | ||
|
|
b033893d39 | ||
|
|
e9693d3829 | ||
|
|
bc7d9d00ab | ||
|
|
0c05c893a0 | ||
|
|
8b3c4f8143 | ||
|
|
90bc79d4e1 | ||
|
|
676d6764b9 | ||
|
|
cb08280180 | ||
|
|
ecede8b53e | ||
|
|
f6a54f6fcf | ||
|
|
6039851f13 | ||
|
|
f1decc5432 | ||
|
|
12629a9e38 | ||
|
|
14f13d0406 | ||
|
|
e0213dc6c3 | ||
|
|
2f065bd9ea | ||
|
|
b87882dd59 | ||
|
|
df06fcac03 | ||
|
|
3de95cdb04 | ||
|
|
062fd6d81c | ||
|
|
82d9e19e96 | ||
|
|
22eead5f9a | ||
|
|
f5627e4345 | ||
|
|
da867a767b | ||
|
|
b751954566 | ||
|
|
f774228529 | ||
|
|
4d6aad8cab | ||
|
|
188e3956d8 | ||
|
|
88d7400644 | ||
|
|
41254bcdf4 | ||
|
|
067aa010b6 | ||
|
|
f94197816c | ||
|
|
78e976e97e | ||
|
|
225d8bcc5b | ||
|
|
9bd29ebdb0 | ||
|
|
7565902fc1 | ||
|
|
0b8a1f8c1f | ||
|
|
8800614077 | ||
|
|
156001f51d |
91
AUTHORS
@@ -1,90 +1 @@
|
|||||||
Author:
|
Christophe Dumez <chris@qbittorrent.org>
|
||||||
* Christophe Dumez <chris@qbittorrent.org>
|
|
||||||
|
|
||||||
Contributors:
|
|
||||||
* Stefanos Antaris <santaris@csd.auth.gr>
|
|
||||||
* Ishan Arora <ishan@qbittorrent.org>
|
|
||||||
* Arnaud Demaizière <arnaud@qbittorrent.org>
|
|
||||||
* Grigis Gaëtan <cipher16@gmail.com>
|
|
||||||
|
|
||||||
Code from other projects:
|
|
||||||
* files src/ico.cpp src/ico.h
|
|
||||||
copyright: Malte Starostik <malte@kde.org>
|
|
||||||
license: LGPL
|
|
||||||
|
|
||||||
* 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
|
|
||||||
license: GPLv2
|
|
||||||
url: http://ftp.acc.umu.se/pub/GNOME/sources/gnome-icon-theme
|
|
||||||
|
|
||||||
* files: src/oxygen/*.png
|
|
||||||
copyright: Oxygen Icon Theme (KDE)
|
|
||||||
license: LGPL
|
|
||||||
url: http://www.oxygen-icons.org
|
|
||||||
|
|
||||||
* files: src/Icons/flags/*.png
|
|
||||||
copyright: Open Clip Art Library
|
|
||||||
license: Creative Commons Public Domain Dedication
|
|
||||||
url: http://www.openclipart.org
|
|
||||||
|
|
||||||
* files: src/Icons/skin/*.png
|
|
||||||
files: src/menuicons/YYxYY/*.png
|
|
||||||
copyright: Mateusz Tobola <tobejodok@qbittorrent.org>
|
|
||||||
license: GPLv2
|
|
||||||
|
|
||||||
* file: src/Icons/skin/tabs.gif
|
|
||||||
copyright: Greg Houston <gregory.houston@gmail.com>
|
|
||||||
license: MIT
|
|
||||||
|
|
||||||
* file: src/search_engine/engines/btjunkie.png
|
|
||||||
copyright: Downloaded from btjunkie.org
|
|
||||||
|
|
||||||
* file: src/search_engine/engines/isohunt.png
|
|
||||||
copyright: Downloaded from isohunt.com
|
|
||||||
|
|
||||||
* file: src/search_engine/engines/mininova.png
|
|
||||||
copyright: Downloaded from mininova.org
|
|
||||||
|
|
||||||
* file: src/search_engine/engines/piratebay.png
|
|
||||||
copyright: Downloaded from thepiratebay.org
|
|
||||||
|
|
||||||
* file: src/search_engine/engines/torrentreactor.png
|
|
||||||
copyright: Downloaded from torrentreactor.net
|
|
||||||
|
|
||||||
Translations authors:
|
|
||||||
* files: src/lang/*.ts
|
|
||||||
copyright:
|
|
||||||
- Brazilian: Nick Marinho (nickmarinho@gmail.com)
|
|
||||||
- Bulgarian: Tsvetan & Boiko Bankov (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)
|
|
||||||
- Czech: Jirka Vilim (web@tets.cz)
|
|
||||||
- Danish: Mathias Nielsen (comoneo@gmail.com)
|
|
||||||
- Dutch: Joost Schipper (heavyjoost@users.sourceforge.net)
|
|
||||||
- English: Christophe Dumez (chris@qbittorrent.org)
|
|
||||||
- Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net)
|
|
||||||
- French: Christophe Dumez (chris@qbittorrent.org)
|
|
||||||
- German: Niels Hoffmann (zentralmaschine@users.sourceforge.net)
|
|
||||||
- Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net) and Stephanos Antaris (santaris@csd.auth.gr)
|
|
||||||
- Hungarian: Majoros Péter (majoros.j.p@t-online.hu)
|
|
||||||
- Italian: Mirko Ferrari (mirkoferrari@gmail.com) and Ferraro Luciano (luciano.ferraro@gmail.com)
|
|
||||||
- Japanese: Nardog (alphisation@gmail.com)
|
|
||||||
- Korean: Jin Woo Sin (jin828sin@users.sourceforge.net)
|
|
||||||
- Norwegian: Lars-Erik Labori (hamil@users.sourceforge.net)
|
|
||||||
- Polish: Mariusz Fik (fisiu@opensuse.org)
|
|
||||||
- Portuguese: Nick Marinho (nickmarinho@gmail.com)
|
|
||||||
- Romanian: Obada Denis (obadadenis@users.sourceforge.net)
|
|
||||||
- Russian: Nick Khazov (m2k3d0n at users.sourceforge.net)
|
|
||||||
- Serbian: Anaximandar Milet (anaximandar at operamail.com)
|
|
||||||
- Slovak: helix84
|
|
||||||
- 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)
|
|
||||||
license: GPLv2
|
|
||||||
|
|||||||
14
COPYING
@@ -1,17 +1,3 @@
|
|||||||
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
|
||||||
|
|
||||||
|
|||||||
495
Changelog
@@ -1,493 +1,10 @@
|
|||||||
* Wed Jan 20 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.1
|
|
||||||
- BUGFIX: Fix compilation with Qt4.4
|
|
||||||
- BUGFIX: Save torrent metadata so that it does not have to be re-downloaded on restart (Magnet links)
|
|
||||||
- BUGFIX: Fix folder renaming in a torrent (would rename children under certain conditions)
|
|
||||||
- BUGFIX: Nox version no longer requires libQtXml
|
|
||||||
- BUGFIX: Configure file now checks for pkg-config executable which is required
|
|
||||||
- BUGFIX: Torrents added from magnet links were not remembered on restart
|
|
||||||
- BUGFIX: "Add in pause" setting can be ignored from torrent addition dialog
|
|
||||||
- BUGFIX: Fix renaming of files with unicode characters in their name
|
|
||||||
- BUGFIX: Fix typo in legal notice (startup)
|
|
||||||
- BUGFIX: Can listen on ports < 1024 (must be root)
|
|
||||||
- BUGFIX: Paused torrents can now be rechecked
|
|
||||||
- BUGFIX: Fix "open torrent destination" feature when path contains spaces
|
|
||||||
- I18N: Updated translations (Hungarian, Chinese, Russian)
|
|
||||||
|
|
||||||
* 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
|
|
||||||
- BUGFIX: Fix PeerGuardian .p2b binary filter support
|
|
||||||
- BUGFIX: Fix possible crash when closing a search engine tab
|
|
||||||
- BUGFIX: Make sure service port does not change
|
|
||||||
- BUGFIX: Fix possible DHT port saving issue
|
|
||||||
- BUGFIX: Fix communication between qBittorrent and Web UI (Qt 4.6)
|
|
||||||
- BUGFIX: Use Wildcard matching instead of full regex in RSS feed downloader
|
|
||||||
- BUGFIX: Fix code for listening on a random port whenever it failed to listen on the one defined
|
|
||||||
- BUGFIX: Use global maximum transfer rates as maximum values in per-torrent speed limiting dialogs
|
|
||||||
- BUGFIX: Fix global download rate limiting from Web UI
|
|
||||||
- COSMETIC: Display a disconnected icon in status bar whenever qBittorrent failed to listen on the port defined
|
|
||||||
|
|
||||||
* Wed Dec 23 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.3
|
|
||||||
- BUGFIX: Minor cosmetic fix to program preferences
|
|
||||||
- BUGFIX: Fix "Temp path" button in program preferences
|
|
||||||
- BUGFIX: Handle paths with [~, ., ..] properly
|
|
||||||
- BUGFIX: Trackers are now displayed for torrents without metadata
|
|
||||||
- BUGFIX: Fix issue with speed limiting (unlimited was not handled properly)
|
|
||||||
- BUGFIX: Use the save path set in program preferences as a default in torrent addition dialog
|
|
||||||
|
|
||||||
* Fri Dec 18 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.2
|
|
||||||
- BUGFIX: Fix .qbittorrent folder not being created (critical bug introduced in v2.0.1 that makes qBittorrent unusuable for new users)
|
|
||||||
- BUGFIX: Fix RSS Feed downloader for some feeds
|
|
||||||
- BUGFIX: Do not use home folder as a fallback when the save path is not accessible
|
|
||||||
- BUGFIX: Fix Mininova, ThePirateBay search engine plugins
|
|
||||||
- BUGFIX: Read RSS articles are remembered on restart for feeds with no torrents attached
|
|
||||||
|
|
||||||
* Sun Dec 13 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.1
|
|
||||||
- BUGFIX: µTorrent user-agent is now spoofed correctly
|
|
||||||
- BUGFIX: Fix column hiding behavior when queueing system is disabled
|
|
||||||
- BUGFIX: Fix link to plugins.qbittorrent.org in plugins dialog
|
|
||||||
- BUGFIX: ~/qBT_dir is created only when it is actually used
|
|
||||||
- BUGFIX: Fix possible missing slot message (toggleSelectedTorrentsSuperSeeding)
|
|
||||||
- BUGFIX: Fix possible crash in torrent properties (files)
|
|
||||||
- BUGFIX: Added Hex Magnet Links support (Thanks Haypo)
|
|
||||||
|
|
||||||
* Thu Dec 10 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.0
|
|
||||||
- FEATURE: Added program option to disable splash screen
|
|
||||||
- FEATURE: Dropped dependency on libcurl and libzzip
|
|
||||||
- FEATURE: Display more information regarding the torrent in its properties
|
|
||||||
- FEATURE: Various optimizations to save CPU and memory
|
|
||||||
- FEATURE: Folder scanning now works with CIFS and NFS mounted folders
|
|
||||||
- FEATURE: Speed up qBittorrent startup and shutdown
|
|
||||||
- FEATURE: Display per-torrent peer list
|
|
||||||
- FEATURE: Make sure torrent files are always sorted by name
|
|
||||||
- FEATURE: Seeds and Peers columns are now sortable
|
|
||||||
- FEATURE: Torrents can be rechecked from Web UI (Stephanos Antaris)
|
|
||||||
- FEATURE: New peers can manually be added to the torrents
|
|
||||||
- FEATURE: Support per-peer rate limiting
|
|
||||||
- FEATURE: Support peer manual ban
|
|
||||||
- FEATURE: Display total amounts transferred in status bar
|
|
||||||
- FEATURE: Display trackers status as well as error/warning messages
|
|
||||||
- FEATURE: Display the number of peers returned by each tracker & DHT/PeX/LSD
|
|
||||||
- FEATURE: Global upload/download speeds can be capped from status bar (µTorrent behavior)
|
|
||||||
- FEATURE: Added option to download first and last piece of a torrent main file first (for preview)
|
|
||||||
- FEATURE: Graphically display piece availability in torrent properties
|
|
||||||
- FEATURE: Dropped Qt 4.3 support (Qt >= 4.4 is now required)
|
|
||||||
- FEATURE: Display close tab button into the tabs in search engine (Qt >= 4.5 only)
|
|
||||||
- FEATURE: Show official documentation when pressing F1 key
|
|
||||||
- FEATURE: Search engine plugins now handle HTTP protocol gzip compression
|
|
||||||
- FEATURE: Enabled lazy bitfield as a counter-measure for ISP speed throttling
|
|
||||||
- FEATURE: Fall back to a random port if qBittorrent could not listen on the chosen port
|
|
||||||
- FEATURE: Announce to all trackers specified for a torrent (µTorrent behavior) (libtorrent >= v0.15 only)
|
|
||||||
- FEATURE: Added per-torrent super seeding mode (libtorrent >= v0.15 only)
|
|
||||||
- FEATURE: Support for storing symbolic links in .torrent files (libtorrent >= v0.15 only)
|
|
||||||
- FEATURE: Support for uTorrent interpretation of multi-tracker torrents (libtorrent >= v0.15 only)
|
|
||||||
- FEATURE: Handle torrents with duplicate filenames (libtorrent >= v0.15 only)
|
|
||||||
- FEATURE: Support for merkle hash tree torrents (.merkle.torrent) (libtorrent >= v0.15 only)
|
|
||||||
- FEATURE: Metadata download from swarm is now compatible with µtorrent (libtorrent >= v0.15 only)
|
|
||||||
- FEATURE: Support tracker exchange between peers (libtorrent >= v0.15 only)
|
|
||||||
- FEATURE: Better http seed support (libtorrent >= v0.15 only)
|
|
||||||
- FEATURE: Tracker connections are now also subject to IP filtering (libtorrent >= v0.15 only)
|
|
||||||
- FEATURE: Include DHT traffic in the rate limiter (libtorrent >= v0.15 only)
|
|
||||||
- FEATURE: Support for bitcomet padding files (libtorrent >= v0.15 only)
|
|
||||||
- FEATURE: Option to skip file checking and start seeding immediately in torrent addition dialog (Stephanos Antaris) (libtorrent >= v0.15 only)
|
|
||||||
- BUGFIX: Made sure qBittorrent does not scrape the tracker too frequently (libtorrent >= 0.15 only)
|
|
||||||
- BUGFIX: Fix Paste action in search engine field
|
|
||||||
- BUGFIX: Fix possible double free in search engine destructor
|
|
||||||
- BUGFIX: Properly handle trackers error messages
|
|
||||||
- WEB UI: Remodeled Web UI to match new qBittorrent UI (Properties and preferences available)
|
|
||||||
- WEB UI: Added internationalization support
|
|
||||||
- WEB UI: Reduced computation in Javascript (do this one server side instead)
|
|
||||||
- WEB UI: Fixed Transfer list flickering
|
|
||||||
- WEB UI: Password is now stored as md5
|
|
||||||
- I18N: Added Serbian translation (By Anaximandar Milet)
|
|
||||||
- COSMETIC: Merged download / upload lists
|
|
||||||
- COSMETIC: Torrents can be filtered based on their status
|
|
||||||
- COSMETIC: Torrent properties are now displayed in main window
|
|
||||||
- COSMETIC: Made program preferences scrollable for usability on small screens (e.g. netbooks)
|
|
||||||
- COSMETIC: Added a "torrent status" column to transfer list
|
|
||||||
- COSMETIC: Display Seeds and Peers in two separate columns
|
|
||||||
- COSMETIC: New deletion confirmation dialog (Merged delete/delete permanently actions)
|
|
||||||
- COSMETIC: Improved status bar layout spacing
|
|
||||||
- COSMETIC: Display speeds with more user friendly units instead of always using KiB/s
|
|
||||||
- COSMETIC: New torrent status icons by Mateusz Tolola
|
|
||||||
- COSMETIC: Make use of libnotify if available for system notifications (Ubuntu, ...)
|
|
||||||
|
|
||||||
* Tue Nov 17 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.5.6
|
|
||||||
- BUGFIX: RSS feed articles can now be displayed using keyboard arrows
|
|
||||||
- BUGFIX: RSS feed downloader can only process unread articles now
|
|
||||||
- BUGFIX: Fixed memory leak in RSS parser
|
|
||||||
- BUGFIX: Fixed possible crash in search autocompletion
|
|
||||||
- BUGFIX: Improved ETA calculation for big torrents
|
|
||||||
- BUGFIX: Fixed per-torrent speed limiting
|
|
||||||
|
|
||||||
* Wed Nov 4 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.5.5
|
|
||||||
- BUGFIX: Fixed man page
|
|
||||||
- BUGFIX: Fix crash on torrent addition (if libtorrent-rasterbar has debug enabled)
|
|
||||||
- BUGFIX: Fix trackers addition to torrents (bug introduced in v1.5.4)
|
|
||||||
- BUGFIX: Suppress compilation warning regarding sortNewsList() not being used
|
|
||||||
- BUGFIX: Make sure scan folder is different than qBittorrent backup directory to avoid torrents deletion
|
|
||||||
- BUGFIX: Added safety mecanism which adds the torrents back to the list in case qbittorrent-resume.conf gets deleted or corrupted.
|
|
||||||
|
|
||||||
* 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
|
|
||||||
- FEATURE: Based on libtorrent-rasterbar v0.14.2
|
|
||||||
- FEATURE: Improved ratio calculation system
|
|
||||||
- FEATURE: Torrent creation code cleanup
|
|
||||||
- FEATURE: Allow to set maximum number of active seeds (queueing)
|
|
||||||
- FEATURE: Now seeds priorities are handled automatically by libtorrent-rasterbar (queueing)
|
|
||||||
- FEATURE: Code cleanup and optimization (save memory and cpu)
|
|
||||||
- FEATURE: ETA calculation now relies on average speed over all sessions
|
|
||||||
- FEATURE: Allow to force rechecking torrents
|
|
||||||
- FEATURE: Added support for 2 new extensions (uTorrent metadata and smart ban plugin)
|
|
||||||
- FEATURE: Allow to change the save path of torrents after addition
|
|
||||||
- FEATURE: Got rid of libmagick++ dependency
|
|
||||||
- FEATURE: Updated Web interface to MochaUI v0.9.5
|
|
||||||
- FEATURE: Added notification in WebUI when qBittorrent is not reachable
|
|
||||||
- FEATURE: Rewrote folder scanning code (Now uses a filesystem watcher)
|
|
||||||
- FEATURE: Added torrent deletion from hard drive function in Web UI
|
|
||||||
- FEATURE: Added queueing priority actions in Web UI
|
|
||||||
- FEATURE: Display progress using progress bars in Web UI
|
|
||||||
- BUGFIX: Made usage of fastresume data more reliable
|
|
||||||
- BUGFIX: qBittorrent shutdown is now faster
|
|
||||||
- BUGFIX: Fixed several memory leaks
|
|
||||||
- BUGFIX: WebUI is now working with IE7
|
|
||||||
- BUGFIX: Fixed spacing problem in toolbar when toggling its visibility
|
|
||||||
- BUGFIX: Fixed some compilation and Qt4 warnings
|
|
||||||
- BUGFIX: Do not use an addition dialog for torrents from folder scanning
|
|
||||||
- BUGFIX: Catch SIGTERM to exit cleanly (e.g. computer shutdown)
|
|
||||||
- BUGFIX: Improved proxy support code
|
|
||||||
- BUGFIX: Fixed systray icon tooltip on Windows
|
|
||||||
- BUGFIX: Proxy settings are now saved even if disabled
|
|
||||||
|
|
||||||
* Sun Nov 9 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.2.1
|
|
||||||
- BUGFIX: Fixed possible crash when deleting a torrent permanently
|
|
||||||
- BUGFIX: Queued_for_checking torrents were not displayed as checking in seeding list
|
|
||||||
- BUGFIX: Speed up startup time when having a lot of torrents
|
|
||||||
|
|
||||||
* Wed Oct 29th 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.2.0
|
|
||||||
- FEATURE: Torrent queueing system (with priorities)
|
|
||||||
- FEATURE: The number of DHT nodes is displayed
|
|
||||||
- FEATURE: RSS can now be disabled from program preferences
|
|
||||||
- FEATURE: Added collapse/expand all buttons in addition and properties dialogs
|
|
||||||
- FEATURE: Can have different proxies for Bittorrent and search engine
|
|
||||||
- FEATURE: Allow multiple item selection in Web UI transfer list
|
|
||||||
- FEATURE: Moved uploads to a separate list in Web UI
|
|
||||||
- BUGFIX: Totally rewritten Web UI list refresh system (fixed memory leak)
|
|
||||||
- BUGFIX: Disable ETA calculation when ETA column is hidden
|
|
||||||
- BUGFIX: Removed "disconnected" connection state, detection was far from perfect
|
|
||||||
- BUGFIX: Torrents are no longer starting from scratch when changing default save path (when torrent addition dialog is disabled)
|
|
||||||
- BUGFIX: Single instance code is now more reliable on Qt >= 4.4
|
|
||||||
- COSMETIC: Transfer speed, ratio, connection status and DHT nodes are displayed in status bar
|
|
||||||
- COSMETIC: RSS Tab is now hidden as a default
|
|
||||||
- COSMETIC: Allow to hide or display top toolbar
|
|
||||||
- COSMETIC: Log is now in a separate dialog
|
|
||||||
|
|
||||||
* Sun Sept 14 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.4
|
|
||||||
- FEATURE: DHT is no longer used as fallback only
|
|
||||||
- FEATURE: Ported WebUI to Mootools v1.2
|
|
||||||
- BUGFIX: Fixed 'start seeding after torrent creation' feature
|
|
||||||
- BUGFIX: Fixed compilation with boost v1.36
|
|
||||||
- BUGFIX: Some code optimization
|
|
||||||
- BUGFIX: Fixed memory leak in Web UI
|
|
||||||
- BUGFIX: Fixed problems with column sorting
|
|
||||||
- BUGFIX: Improved code for pausing torrents on startup
|
|
||||||
- BUGFIX: Torrent addition dialog is now disabled for downloads from WebUI
|
|
||||||
- BUGFIX: Give focus to input field in WebUI download dialog
|
|
||||||
|
|
||||||
* Tue Aug 26 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.3
|
|
||||||
- BUGFIX: Fixed ratio saving for seeding torrents
|
|
||||||
- I18N: Added czech and traditional chinese translations
|
|
||||||
|
|
||||||
* Sun Aug 17 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.2
|
|
||||||
- BUGFIX: Fixed progress calculation
|
|
||||||
- BUGFIX: Fixed finished torrent detection
|
|
||||||
|
|
||||||
* Fri Aug 01 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.1
|
|
||||||
- BUGFIX: Fixed bad resource file for icons
|
|
||||||
|
|
||||||
* Fri Aug 01 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.0
|
|
||||||
- FEATURE: Web interface to control qbittorrent (Ishan Arora)
|
|
||||||
- FEATURE: Can spoof Azureus peer id to avoid ban
|
|
||||||
- FEATURE: Allow to hide/show some columns in download and seeding lists
|
|
||||||
- FEATURE: Option to start qBittorrent minimized in systray
|
|
||||||
- FEATURE: Multi-tab support in search engine (Grigis Gaëtan)
|
|
||||||
- FEATURE: Allow to define double-click actions in torrents lists
|
|
||||||
- FEATURE: Allow to open torrent destination folder
|
|
||||||
- FEATURE: Real progress bar in torrent properties that displays downloaded pieces
|
|
||||||
- FEATURE: Allow to buy downloads using ShareMonkey
|
|
||||||
- FEATURE: Display if UPnP/NAT-PMP was successful or not
|
|
||||||
- FEATURE: Threadified torrent creation
|
|
||||||
- FEATURE: Improved eMule DAT ip filter parser
|
|
||||||
- FEATURE: Added support for PeerGuardian p2p filters (text)
|
|
||||||
- FEATURE: Added support for PeerGuardian p2b filters (binary)
|
|
||||||
- FEATURE: Allow to customize folder scan interval
|
|
||||||
- FEATURE: Allow to add several trackers at once
|
|
||||||
- BUGFIX: Allow to run one instance of qBittorrent per user
|
|
||||||
- BUGFIX: Do not display seeds number in seeding list (always 0)
|
|
||||||
- BUGFIX: Threadified IP filter file parser to avoid GUI freeze
|
|
||||||
- BUGFIX: Ask if we want to redownload if content was deleted from hard drive
|
|
||||||
- BUGFIX: Added missing copyright/licensing information for some files
|
|
||||||
- BUGFIX: qBittorrent is no longer conflicting with rTorrent (libtorrent renamed to libtorrent-rasterbar)
|
|
||||||
- COSMETIC: Do not display progress bar in seeding list (always 100%)
|
|
||||||
- COSMETIC: Added a progress bar for torrent creation
|
|
||||||
- COSMETIC: Display tracker errors in a cleaner way
|
|
||||||
- COSMETIC: Display "unpaused/total_torrent" in download/upload tabs
|
|
||||||
- COSMETIC: Allow to resize RSS column
|
|
||||||
- COSMETIC: Global UP/DL speeds and ratio are displayed above tabs
|
|
||||||
- COSMETIC: Use infinity symbol for ETA when time is infinite
|
|
||||||
|
|
||||||
* Fri Apr 11 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.0.0
|
|
||||||
- FEATURE: Based on new libtorrent v0.13
|
|
||||||
- FEATURE: Added UPnP / NAT-PMP port forwarding support
|
|
||||||
- FEATURE: Added encryption support (compatible with Azureus)
|
|
||||||
- FEATURE: Bittorrent FAST extension support
|
|
||||||
- FEATURE: Added RSS support
|
|
||||||
- FEATURE: Support files prioritizing in a torrent
|
|
||||||
- FEATURE: Brand new search engine plugins system
|
|
||||||
- FEATURE: Filtered files don't appear on hard disk anymore
|
|
||||||
- FEATURE: Finished torrents are now moved to another tab for seeding
|
|
||||||
- FEATURE: Display more infos about the torrent in its properties
|
|
||||||
- FEATURE: Allow the user to edit torrents' trackers
|
|
||||||
- FEATURE: Allow user to change qBT's style (Plastique, Cleanlooks, Motif, CDE, MacOSX, WinXP)
|
|
||||||
- FEATURE: Allow the user to disable system tray integration
|
|
||||||
- FEATURE: Search engine is now using one thread per website for faster results
|
|
||||||
- FEATURE: Improved a lot the torrent creation module
|
|
||||||
- FEATURE: Allow to set upload/download limit per torrent (right click)
|
|
||||||
- FEATURE: Ask for exit confirmation only if download list is not empty
|
|
||||||
- FEATURE: Allow to use a proxy for trackers / web seeds / peers / DHT connections
|
|
||||||
- FEATURE: Supports SOCKS5 proxies as well as HTTP ones
|
|
||||||
- FEATURE: Better systems integration (buttons, dialogs...)
|
|
||||||
- FEATURE: Filtered files are not allocated on the hard-drive anymore (sparse file support)
|
|
||||||
- FEATURE: IPs blocked by filter are now logged in GUI
|
|
||||||
- FEATURE: Added a way to link against static libtorrent (useful for deb packages)
|
|
||||||
- FEATURE: Allow to set global upload/download limits from tray icon menu
|
|
||||||
- FEATURE: IPv6 is now fully supported
|
|
||||||
- FEATURE: Real torrent share ratio is now displayed in transfer list
|
|
||||||
- FEATURE: Added keyboard shortcuts for main actions (see wiki)
|
|
||||||
- FEATURE: Added a popup menu to set priority for multiple files at once
|
|
||||||
- FEATURE: Improved a lot downloading from urls (using libcommoncpp2 instead of libcurl)
|
|
||||||
- FEATURE: A search request can now be terminated by another
|
|
||||||
- FEATURE: User is now warned when fast resume data was rejected
|
|
||||||
- FEATURE: Url seeds are now displayed in torrent properties and are editable
|
|
||||||
- FEATURE: Allow to drag 'n drop urls on the main window
|
|
||||||
- FEATURE: Improved search engine (multipage support in all plugins)
|
|
||||||
- FEATURE: Added BTJunkie search engine plugin
|
|
||||||
- FEATURE: Added an option to force full disk allocation for all torrents
|
|
||||||
- FEATURE: Added an option to add torrents in paused state
|
|
||||||
- FEATURE: Added an option to set the max number of connections per torrent
|
|
||||||
- FEATURE: Added an option to set the max number of uploads per torrent
|
|
||||||
- FEATURE: Added an option to automatically delete torrents when they reach a given ratio (>= 1.0)
|
|
||||||
- FEATURE: Added an option to display current transfer speeds in title bar
|
|
||||||
- FEATURE: Torrent content is now displayed as a tree
|
|
||||||
- I18N: Added Hungarian translation
|
|
||||||
- I18N: Added Brazilian translation
|
|
||||||
- BUGFIX: Progress of paused torrents is now correct on restart
|
|
||||||
- BUGFIX: Progress column gets sorted on restart it is was during last execution
|
|
||||||
- BUGFIX: Made ETA more reliable using stats instead of instant values
|
|
||||||
- BUGFIX: Remove torrent from hard drive used to delete parent folder if empty
|
|
||||||
- BUGFIX: Fixed a crash when filtering all the files in a torrent
|
|
||||||
- BUGFIX: Reload torrent only when necessary (properties)
|
|
||||||
- BUGFIX: qBittorrent is not exiting anymore when a dialog is closed and main window is hidden
|
|
||||||
- BUGFIX: Search plugin update is not making the GUI freeze anymore (moved to a thread)
|
|
||||||
- BUGFIX: DHT settings were not saved correctly
|
|
||||||
- BUGFIX: Workaround to build on Fedora system (pkg-config problem)
|
|
||||||
- BUGFIX: search plugin update - do not display only last version changelog
|
|
||||||
- BUGFIX: Search plugin update - fixed missing new lines in changelog
|
|
||||||
- BUGFIX: The number of search results was not reset when clicking on 'Clear' button
|
|
||||||
- BUGFIX: Update torrent progress when its content changed (filtered files)
|
|
||||||
- BUGFIX: Improved the way menu icons are installed to avoid problems on some systems
|
|
||||||
- BUGFIX: Improved incremental download
|
|
||||||
- BUGFIX: Improved unicode support
|
|
||||||
- BUGFIX: Made torrent deletion from hard-drive safer
|
|
||||||
- BUGFIX: Prevent downloadFromUrl flooding
|
|
||||||
- BUGFIX: ETA was wrong for torrents with filtered files
|
|
||||||
- BUGFIX: Fixed drag'n drop on non-KDE systems
|
|
||||||
- BUGFIX: Removed build dependency on Python
|
|
||||||
- BUGFIX: Catching DHT exception in case there is a problem
|
|
||||||
- COSMETIC: Redesigned torrent properties a little
|
|
||||||
- COSMETIC: Totally redesigned program preferences
|
|
||||||
- COSMETIC: Display more logs messages concerning features
|
|
||||||
- COSMETIC: Improved lists renderers
|
|
||||||
- COSMETIC: Use a different icon for torrents being checked and for connecting ones
|
|
||||||
- COSMETIC: Improved some icons
|
|
||||||
- COSMETIC: Improved systray tooltip style
|
|
||||||
|
|
||||||
* Mon May 07 2007 - Christophe Dumez <chris@qbittorrent.org> - v0.9.3
|
|
||||||
- BUGFIX: Fixed pause toggle on double-click in download list
|
|
||||||
- BUGFIX: The torrent size displayed now only takes unfiltered files into account
|
|
||||||
- BUGFIX: Fixed compiling errors with libtorrent svn (future v0.13 with UPnP enabled)
|
|
||||||
- BUGFIX: Remember sorted column in download list on restart
|
|
||||||
- BUGFIX: Small fix in the german translation
|
|
||||||
- BUGFIX: Some fixes in slovak translation
|
|
||||||
|
|
||||||
* Tue Apr 10 2007 - Christophe Dumez <chris@qbittorrent.org> - v0.9.2
|
* Tue Apr 10 2007 - Christophe Dumez <chris@qbittorrent.org> - v0.9.2
|
||||||
- BUGFIX: Window can now stay maximized on exit
|
- BUGFIX: Window can now stay maximized on exit
|
||||||
- BUGFIX: Use PKGCONFIG again for configuring libtorrent
|
- BUGFIX: Use PKGCONFIG again for configuring libtorrent
|
||||||
- BUGFIX: Allow to compile with libtorrent v0.11
|
- BUGFIX: Allow to compile with libtorrent v0.11
|
||||||
- BUGFIX: Disabled main window context menu (annoying)
|
- BUGFIX: Disabled main window context menu (annoying)
|
||||||
- I18N: Added Japanese translation
|
- I18N: Added Japanese translation
|
||||||
- I18N: Updated Turkish translation
|
- I18N: Updated Turkish translation
|
||||||
|
|
||||||
* Wed Apr 04 2007 - Christophe Dumez <chris@qbittorrent.org> - v0.9.1
|
* Wed Apr 04 2007 - Christophe Dumez <chris@qbittorrent.org> - v0.9.1
|
||||||
- BUGFIX: A lot of fixes in configure file
|
- BUGFIX: A lot of fixes in configure file
|
||||||
|
|||||||
66
INSTALL
@@ -1,58 +1,36 @@
|
|||||||
qBittorrent - A BitTorrent client in C++ / Qt4
|
qBittorrent - A BitTorrent client in C++ / Qt4.2
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
1) Compile and install qBittorrent with Qt4 Graphical Interface
|
*** Necessary if qt3 is default on your system ***
|
||||||
|
export QTDIR=/usr/include/qt4
|
||||||
|
export PATH=$QTDIR/bin:$PATH
|
||||||
|
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
|
||||||
|
*** End ***
|
||||||
|
|
||||||
$ ./configure
|
./configure
|
||||||
$ make && make install
|
make && make install
|
||||||
$ qbittorrent
|
qbittorrent
|
||||||
|
|
||||||
will install and execute qBittorrent hopefully without any problems.
|
will install and execute qBittorrent hopefully without any problems.
|
||||||
|
|
||||||
Dependencies:
|
Dependencies:
|
||||||
- Qt >= 4.4.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
|
- Qt >= 4.2 (libqt-devel, libqtgui, libqtcore, libqtnetwork)
|
||||||
|
|
||||||
- pkg-config executable
|
- libtorrent by Arvid Norberg (>= v0.11 REQUIRED, >= 0.12 ADVISED)
|
||||||
|
-> http://libtorrent.sf.net
|
||||||
|
Be carefull: another library (the one used by rtorrent) use the same name.
|
||||||
|
These are TWO different libraries and qBittorrent will only work with the one provided
|
||||||
|
on sourceforge (created by Arvid Norberg). The two libraries conflicts with each other.
|
||||||
|
|
||||||
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, >= v0.15.0 ADVISED)
|
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
|
||||||
-> 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
|
- libcurl
|
||||||
|
|
||||||
- python >= 2.3 (needed by search engine)
|
- python >= 2.3 (previous might work - not tested): needed by search engine.
|
||||||
* Run time only dependency
|
|
||||||
|
|
||||||
- libnotify >= 0.4.2, glib-2.0 (optional)
|
NOTE FOR GNOME USERS:
|
||||||
* Can be used for system notifications to replace standard Qt notifications
|
- qt4-qtconfig package is advised or qBittorrent interface will be ugly
|
||||||
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
|
|
||||||
|
|
||||||
|
|
||||||
DOCUMENTATION:
|
|
||||||
Please note that there is a documentation with a "compiling howto" at http://wiki.qbittorrent.org.
|
|
||||||
|
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
Christophe Dumez <chris@qbittorrent.org>
|
Christophe Dumez <chris@qbittorrent.org>
|
||||||
|
|||||||
22
README
@@ -1,38 +1,32 @@
|
|||||||
qBittorrent - A BitTorrent client in Qt4
|
qBittorrent - A BitTorrent client in Qt4.2
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|
||||||
Description:
|
Description:
|
||||||
********************************
|
********************************
|
||||||
qBittorrent is a bittorrent client programmed in C++ / Qt4 that uses
|
qBittorrent is a bittorrent client programmed in C++ / Qt4.2 that use
|
||||||
libtorrent (sometimes called rblibtorrent) by Arvid Norberg.
|
libtorrent (sometimes called rb_libtorrent) by Arvid Norberg.
|
||||||
|
|
||||||
It aims to be a good alternative to all other bittorrent clients
|
It aims to be a good alternative to all other bittorrent clients
|
||||||
out there. qBittorrent is fast, stable and provides unicode
|
out there. qBittorrent is fast, stable and provides unicode
|
||||||
support as well as many features.
|
support.
|
||||||
|
|
||||||
This product includes GeoLite data created by MaxMind, available from
|
|
||||||
http://maxmind.com/
|
|
||||||
|
|
||||||
Installation:
|
Installation:
|
||||||
********************************
|
********************************
|
||||||
For installation, follow the instructions from INSTALL file, but simple:
|
For installation follow the instructions from INSTALL file, but simple
|
||||||
|
|
||||||
./configure
|
./configure
|
||||||
make && make install
|
make && make install
|
||||||
qbittorrent
|
qbittorrent
|
||||||
|
|
||||||
will install and execute qBittorrent hopefully without any problem.
|
will install and execute qBittorrent hopefully without any problems.
|
||||||
|
|
||||||
For more information please visit:
|
For more information please visit:
|
||||||
http://www.qbittorrent.org
|
http://www.qbittorrent.org
|
||||||
|
|
||||||
or our wiki here:
|
Please report any bug (or feature requests) to:
|
||||||
http://wiki.qbittorrent.org
|
|
||||||
|
|
||||||
Please report any bug (or feature request) to:
|
|
||||||
http://bugs.qbittorrent.org
|
http://bugs.qbittorrent.org
|
||||||
|
|
||||||
You can also meet me (chris-qBT) on IRC:
|
You can also meet me on IRC:
|
||||||
#qbittorrent on irc.freenode.net
|
#qbittorrent on irc.freenode.net
|
||||||
|
|
||||||
------------------------------------------
|
------------------------------------------
|
||||||
|
|||||||
41
TODO
@@ -1,2 +1,41 @@
|
|||||||
See https://blueprints.launchpad.net/qbittorrent/
|
// Easy
|
||||||
|
- Write documentation
|
||||||
|
- Translations into as many languages as possible
|
||||||
|
- Improve man page
|
||||||
|
- Add more keyboard shortcuts
|
||||||
|
|
||||||
|
// Intermediate
|
||||||
|
- Port on MacOS, Windows (and create an installer for Windows) - Progressing
|
||||||
|
- Add some transparency (menus,...)
|
||||||
|
- Add upnp port forwarding support
|
||||||
|
|
||||||
|
// Harder
|
||||||
|
- Allow user to organize the downloads into categories/folders
|
||||||
|
- Display new searches in new tabs
|
||||||
|
- Display a progress bar that really displays the pieces we have (like in eMule)
|
||||||
|
|
||||||
|
// Waiting for libtorrent
|
||||||
|
- Encryption support (v0.13?)
|
||||||
|
- File selection in a torrent in compact mode
|
||||||
|
- Allow to prioritize files within a torrent
|
||||||
|
- Allow to prioritize torrents
|
||||||
|
|
||||||
|
// Unsure
|
||||||
|
- Azureus spoofing to prevent ban from trackers?
|
||||||
|
- Web interface?
|
||||||
|
- Use downloader class to download search plugin updates
|
||||||
|
- Allow to set upload limit for each torrent
|
||||||
|
- Option to shutdown computer when downloads are finished
|
||||||
|
- Add a torrent scheduler
|
||||||
|
|
||||||
|
// in v1.0.0 (partial)
|
||||||
|
- Download from RSS feeds (WIP by gtsoul)
|
||||||
|
- Move finished torrent to another tab and keep on seeding them even after restart
|
||||||
|
- Allow to edit the trackers for a torrent
|
||||||
|
- Improve torrent creation dialog (look & features)
|
||||||
|
- Add IPv6 support (at least start working on it)
|
||||||
|
- UPnP support?
|
||||||
|
|
||||||
|
// In v0.9.0
|
||||||
|
- Update translations (FR, SV, NB, PL, RU, DE, SK, KO, ZH_CN, EL, BG, ES, DA, UK, PT, IT, NL done)
|
||||||
|
- Wait for libtorrent v0.12 official release
|
||||||
|
|||||||
430
configure
vendored
@@ -1,6 +1,6 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
#
|
#
|
||||||
# Generated by qconf 1.4 ( http://delta.affinix.com/qconf/ )
|
# Generated by qconf 1.3 ( http://delta.affinix.com/qconf/ )
|
||||||
#
|
#
|
||||||
|
|
||||||
show_usage() {
|
show_usage() {
|
||||||
@@ -18,14 +18,11 @@ Main options:
|
|||||||
--help This help text.
|
--help This help text.
|
||||||
|
|
||||||
Dependency options:
|
Dependency options:
|
||||||
--disable-gui Disable qBittorrent Graphical user
|
--with-libtorrent-inc=[path] Path to libtorrent include files
|
||||||
interface for headless running
|
--with-libtorrent-lib=[path] Path to libtorrent library files
|
||||||
--with-libboost-inc=[path] Path to libboost include files
|
--with-libboost-inc=[path] Path to libboost include files
|
||||||
--disable-libnotify Disable use of libnotify
|
--with-libcurl-inc=[path] Path to libcurl include files
|
||||||
--disable-geoip-database Disable use of geoip-database
|
--with-libcurl-lib=[path] Path to libcurl library files
|
||||||
--with-geoip-database-embedded Geoip Database will be embedded in
|
|
||||||
qBittorrent executable (please follow
|
|
||||||
instructions in src/geoip/README)
|
|
||||||
|
|
||||||
EOT
|
EOT
|
||||||
}
|
}
|
||||||
@@ -142,8 +139,13 @@ while [ $# -gt 0 ]; do
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--disable-gui)
|
--with-libtorrent-inc=*)
|
||||||
QC_DISABLE_GUI="Y"
|
QC_WITH_LIBTORRENT_INC=$optarg
|
||||||
|
shift
|
||||||
|
;;
|
||||||
|
|
||||||
|
--with-libtorrent-lib=*)
|
||||||
|
QC_WITH_LIBTORRENT_LIB=$optarg
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
||||||
@@ -152,23 +154,18 @@ while [ $# -gt 0 ]; do
|
|||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--disable-libnotify)
|
--with-libcurl-inc=*)
|
||||||
QC_DISABLE_libnotify="Y"
|
QC_WITH_LIBCURL_INC=$optarg
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--disable-geoip-database)
|
--with-libcurl-lib=*)
|
||||||
QC_DISABLE_geoip_database="Y"
|
QC_WITH_LIBCURL_LIB=$optarg
|
||||||
shift
|
|
||||||
;;
|
|
||||||
|
|
||||||
--with-geoip-database-embedded)
|
|
||||||
QC_WITH_GEOIP_DATABASE_EMBEDDED="Y"
|
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
|
|
||||||
--verbose)
|
--verbose)
|
||||||
QC_VERBOSE="Y"
|
QC_DEBUG="Y"
|
||||||
shift
|
shift
|
||||||
;;
|
;;
|
||||||
--help) show_usage; exit ;;
|
--help) show_usage; exit ;;
|
||||||
@@ -182,66 +179,47 @@ DATADIR=${DATADIR:-$PREFIX/share}
|
|||||||
|
|
||||||
echo "Configuring qbittorrent ..."
|
echo "Configuring qbittorrent ..."
|
||||||
|
|
||||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
if [ "$QC_DEBUG" = "Y" ]; then
|
||||||
echo
|
echo
|
||||||
echo PREFIX=$PREFIX
|
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_DISABLE_GUI=$QC_DISABLE_GUI
|
echo QC_WITH_LIBTORRENT_INC=$QC_WITH_LIBTORRENT_INC
|
||||||
|
echo QC_WITH_LIBTORRENT_LIB=$QC_WITH_LIBTORRENT_LIB
|
||||||
echo QC_WITH_LIBBOOST_INC=$QC_WITH_LIBBOOST_INC
|
echo QC_WITH_LIBBOOST_INC=$QC_WITH_LIBBOOST_INC
|
||||||
echo QC_DISABLE_libnotify=$QC_DISABLE_libnotify
|
echo QC_WITH_LIBCURL_INC=$QC_WITH_LIBCURL_INC
|
||||||
echo QC_DISABLE_geoip_database=$QC_DISABLE_geoip_database
|
echo QC_WITH_LIBCURL_LIB=$QC_WITH_LIBCURL_LIB
|
||||||
echo QC_WITH_GEOIP_DATABASE_EMBEDDED=$QC_WITH_GEOIP_DATABASE_EMBEDDED
|
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
printf "Verifying Qt 4 build environment ... "
|
printf "Verifying Qt 4 build environment ... "
|
||||||
|
|
||||||
# run qmake -v and check version
|
if [ "$QC_DEBUG" = "Y" ]; then
|
||||||
qmake_check_v4() {
|
|
||||||
if [ -x "$1" ]; then
|
|
||||||
if echo `$1 -v 2>&1` | grep "Qt version 4\." >/dev/null 2>&1; then
|
|
||||||
return 0
|
|
||||||
elif [ "$QC_VERBOSE" = "Y" ]; then
|
|
||||||
echo "Warning: $1 not for Qt 4"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
return 1
|
|
||||||
}
|
|
||||||
|
|
||||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
|
||||||
echo
|
echo
|
||||||
fi
|
fi
|
||||||
|
|
||||||
qm=""
|
qm=""
|
||||||
names="qmake-qt4 qmake4 qmake"
|
|
||||||
|
|
||||||
# qt4 check: --qtdir
|
# qt4 check: --qtdir
|
||||||
if [ -z "$qm" ] && [ ! -z "$EX_QTDIR" ]; then
|
if [ -z "$qm" ]; then
|
||||||
for n in $names; do
|
qstr=$EX_QTDIR/bin/qmake
|
||||||
qstr=$EX_QTDIR/bin/$n
|
if [ -x "$qstr" ]; then
|
||||||
if qmake_check_v4 "$qstr"; then
|
qm=$qstr
|
||||||
qm=$qstr
|
fi
|
||||||
break;
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
if [ -z "$qm" ] && [ "$QC_VERBOSE" = "Y" ]; then
|
if [ -z "$qm" ] && [ "$QC_DEBUG" = "Y" ]; then
|
||||||
echo "Warning: qmake not found via --qtdir"
|
echo "Warning: qmake not found via --qtdir"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# qt4 check: QTDIR
|
# qt4 check: QTDIR
|
||||||
if [ -z "$qm" ] && [ ! -z "$QTDIR" ]; then
|
if [ -z "$qm" ]; then
|
||||||
for n in $names; do
|
qstr=$QTDIR/bin/qmake
|
||||||
qstr=$QTDIR/bin/$n
|
if [ -x "$qstr" ]; then
|
||||||
if qmake_check_v4 "$qstr"; then
|
qm=$qstr
|
||||||
qm=$qstr
|
fi
|
||||||
break;
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
if [ -z "$qm" ] && [ "$QC_VERBOSE" = "Y" ]; then
|
if [ -z "$qm" ] && [ "$QC_DEBUG" = "Y" ]; then
|
||||||
echo "Warning: qmake not found via \$QTDIR"
|
echo "Warning: qmake not found via \$QTDIR"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
@@ -249,122 +227,128 @@ fi
|
|||||||
if [ -z "$qm" ]; then
|
if [ -z "$qm" ]; then
|
||||||
str=`pkg-config QtCore --variable=exec_prefix 2>/dev/null`
|
str=`pkg-config QtCore --variable=exec_prefix 2>/dev/null`
|
||||||
if [ ! -z "$str" ]; then
|
if [ ! -z "$str" ]; then
|
||||||
for n in $names; do
|
qstr=$str/bin/qmake
|
||||||
qstr=$str/bin/$n
|
if [ -x "$qstr" ]; then
|
||||||
if qmake_check_v4 "$qstr"; then
|
qm=$qstr
|
||||||
qm=$qstr
|
fi
|
||||||
break;
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ -z "$qm" ] && [ "$QC_VERBOSE" = "Y" ]; then
|
if [ -z "$qm" ] && [ "$QC_DEBUG" = "Y" ]; then
|
||||||
echo "Warning: qmake not found via pkg-config"
|
echo "Warning: qmake not found via pkg-config"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# qt4 check: PATH
|
# qt4 check: PATH
|
||||||
if [ -z "$qm" ]; then
|
if [ -z "$qm" ]; then
|
||||||
for n in $names; do
|
qstr=`$WHICH qmake 2>/dev/null`
|
||||||
qstr=`$WHICH $n 2>/dev/null`
|
if [ -x "$qstr" ]; then
|
||||||
if qmake_check_v4 "$qstr"; then
|
qm=$qstr
|
||||||
qm=$qstr
|
fi
|
||||||
break;
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
fi
|
fi
|
||||||
if [ -z "$qm" ] && [ "$QC_VERBOSE" = "Y" ]; then
|
if [ -z "$qm" ] && [ "$QC_DEBUG" = "Y" ]; then
|
||||||
echo "Warning: qmake not found via \$PATH"
|
echo "Warning: qmake not found via \$PATH"
|
||||||
fi
|
fi
|
||||||
|
|
||||||
if [ -z "$qm" ]; then
|
if [ -z "$qm" ]; then
|
||||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
if [ "$QC_DEBUG" = "Y" ]; then
|
||||||
echo " -> fail"
|
echo " -> fail"
|
||||||
else
|
else
|
||||||
echo "fail"
|
echo "fail"
|
||||||
fi
|
fi
|
||||||
printf "\n"
|
printf "\n"
|
||||||
printf "Reason: Unable to find the 'qmake' tool for Qt 4.\n"
|
printf "Reason: Unable to find the 'qmake' tool.\n"
|
||||||
printf "\n"
|
printf "\n"
|
||||||
show_qt_info
|
show_qt_info
|
||||||
exit 1;
|
exit 1;
|
||||||
fi
|
fi
|
||||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
if [ "$QC_DEBUG" = "Y" ]; then
|
||||||
echo qmake found in $qm
|
echo qmake found in $qm
|
||||||
fi
|
fi
|
||||||
|
|
||||||
gen_files() {
|
gen_files() {
|
||||||
cat >$1/modules.cpp <<EOT
|
cat >$1/modules.cpp <<EOT
|
||||||
#line 1 "qt4.qcm"
|
#line 1 "qt42.qcm"
|
||||||
/*
|
/*
|
||||||
-----BEGIN QCMOD-----
|
-----BEGIN QCMOD-----
|
||||||
name: Qt >= 4.4
|
name: Qt >= 4.2
|
||||||
arg: disable-gui, Disable qBittorrent Graphical user interface for headless running
|
|
||||||
-----END QCMOD-----
|
-----END QCMOD-----
|
||||||
*/
|
*/
|
||||||
class qc_qt4 : public ConfObj
|
class qc_qt42 : public ConfObj
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
qc_qt4(Conf *c) : ConfObj(c) {}
|
qc_qt42(Conf *c) : ConfObj(c) {}
|
||||||
QString name() const { return "Qt >= 4.4"; }
|
QString name() const { return "Qt >= 4.2"; }
|
||||||
QString shortname() const { return "Qt 4.4"; }
|
QString shortname() const { return "qt42"; }
|
||||||
bool exec()
|
bool exec()
|
||||||
{
|
{
|
||||||
if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
return(QT_VERSION >= 0x040200);
|
||||||
conf->addDefine("DISABLE_GUI");
|
|
||||||
}
|
|
||||||
if(QT_VERSION >= 0x040500) {
|
|
||||||
conf->addDefine("QT_4_5");
|
|
||||||
}
|
|
||||||
return(QT_VERSION >= 0x040400);
|
|
||||||
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
#line 1 "pkg-config.qcm"
|
#line 1 "libtorrent.qcm"
|
||||||
/*
|
/*
|
||||||
-----BEGIN QCMOD-----
|
-----BEGIN QCMOD-----
|
||||||
name: pkg-config
|
name: libtorrent
|
||||||
|
arg: with-libtorrent-inc=[path], Path to libtorrent include files
|
||||||
|
arg: with-libtorrent-lib=[path], Path to libtorrent library files
|
||||||
-----END QCMOD-----
|
-----END QCMOD-----
|
||||||
*/
|
*/
|
||||||
#include <QProcess>
|
class qc_libtorrent : public ConfObj
|
||||||
class qc_pkg_config : public ConfObj
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
qc_pkg_config(Conf *c) : ConfObj(c) {}
|
qc_libtorrent(Conf *c) : ConfObj(c) {}
|
||||||
QString name() const { return "pkg-config executable"; }
|
QString name() const { return "libtorrent >= 0.11 (>= 0.12 ADVISED)"; }
|
||||||
QString shortname() const { return "pkg-config"; }
|
QString shortname() const { return "libtorrent"; }
|
||||||
bool exec(){
|
bool exec(){
|
||||||
return !conf->findProgram("pkg-config").isEmpty();
|
QString s;
|
||||||
}
|
s = conf->getenv("QC_WITH_LIBTORRENT_INC");
|
||||||
};
|
if(!s.isEmpty()) {
|
||||||
#line 1 "libtorrent-rasterbar.qcm"
|
if(!conf->checkHeader(s, "libtorrent/kademlia/node.hpp")){
|
||||||
/*
|
return false;
|
||||||
-----BEGIN QCMOD-----
|
}
|
||||||
name: libtorrent-rasterbar
|
if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")) {
|
||||||
-----END QCMOD-----
|
qWarning("Libtorrent >= v0.12 was not detected, PeX will be disabled.");
|
||||||
*/
|
conf->addDefine("NO_PEX");
|
||||||
// see Conf::findPkgConfig
|
}
|
||||||
class qc_libtorrent_rasterbar : public ConfObj
|
}else{
|
||||||
{
|
QStringList sl;
|
||||||
public:
|
sl << "/usr/include";
|
||||||
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
|
sl << "/usr/local/include";
|
||||||
QString name() const { return "libtorrent-rasterbar >= 0.14.4"; }
|
bool found = false;
|
||||||
QString shortname() const { return "libtorrent-rasterbar"; }
|
foreach(s, sl){
|
||||||
bool exec(){
|
if(conf->checkHeader(s, "libtorrent/kademlia/node.hpp")){
|
||||||
QStringList incs;
|
found = true;
|
||||||
QString req_ver = "0.14.4";
|
break;
|
||||||
QString adv_ver = "0.15.0";
|
}
|
||||||
QString version, libs, other;
|
}
|
||||||
VersionMode mode = VersionMin;
|
if(!found) return false;
|
||||||
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other))
|
if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")){
|
||||||
return false;
|
qWarning("Libtorrent >= v0.12 was not detected, PeX will be disabled.");
|
||||||
for(int n = 0; n < incs.count(); ++n)
|
conf->addDefine("NO_PEX");
|
||||||
conf->addIncludePath(incs[n]);
|
}
|
||||||
if(!libs.isEmpty())
|
}
|
||||||
conf->addLib(libs);
|
conf->addIncludePath(s);
|
||||||
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other))
|
conf->addIncludePath(s+QDir::separator()+"libtorrent");
|
||||||
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
|
s = conf->getenv("QC_WITH_LIBTORRENT_LIB");
|
||||||
conf->addDefine("LIBTORRENT_0_15");
|
if(!s.isEmpty()) {
|
||||||
|
if(!conf->checkLibrary(s, "torrent")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
conf->addLib(QString("-L") + s);
|
||||||
|
}else{
|
||||||
|
QStringList sl;
|
||||||
|
sl << "/usr/lib/";
|
||||||
|
sl << "/usr/local/lib/";
|
||||||
|
bool found = false;
|
||||||
|
foreach(s, sl){
|
||||||
|
if(conf->checkLibrary(s, "torrent")){
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!found) return false;
|
||||||
|
conf->addLib(QString("-L") + s);
|
||||||
|
}
|
||||||
|
//conf->addLib("-ltorrent");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
@@ -425,120 +409,109 @@ public:
|
|||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
#line 1 "libnotify.qcm"
|
#line 1 "libcurl.qcm"
|
||||||
/*
|
/*
|
||||||
-----BEGIN QCMOD-----
|
-----BEGIN QCMOD-----
|
||||||
name: libnotify
|
name: libcurl
|
||||||
|
arg: with-libcurl-inc=[path], Path to libcurl include files
|
||||||
|
arg: with-libcurl-lib=[path], Path to libcurl library files
|
||||||
-----END QCMOD-----
|
-----END QCMOD-----
|
||||||
*/
|
*/
|
||||||
// see Conf::findPkgConfig
|
class qc_libcurl : public ConfObj
|
||||||
class qc_libnotify : public ConfObj
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
qc_libnotify(Conf *c) : ConfObj(c) {}
|
qc_libcurl(Conf *c) : ConfObj(c) {}
|
||||||
QString name() const { return "libnotify >= 0.4.2 (optional)"; }
|
QString name() const { return "libcurl"; }
|
||||||
QString shortname() const { return "libnotify"; }
|
QString shortname() const { return "libcurl"; }
|
||||||
QString checkString() const {
|
|
||||||
if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
|
|
||||||
return "";
|
|
||||||
return ConfObj::checkString();
|
|
||||||
}
|
|
||||||
bool exec(){
|
bool exec(){
|
||||||
if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
QString s;
|
||||||
return false;
|
s = conf->getenv("QC_WITH_LIBCURL_INC");
|
||||||
}
|
if(!s.isEmpty()) {
|
||||||
QStringList incs;
|
if(!conf->checkHeader(s, "curl/curl.h")) {
|
||||||
QString req_ver = "0.4.2";
|
|
||||||
QString version, libs, other;
|
|
||||||
VersionMode mode = VersionMin;
|
|
||||||
if(conf->findPkgConfig("libnotify", mode, req_ver, &version, &incs, &libs, &other)) {
|
|
||||||
conf->addDefine("WITH_LIBNOTIFY");
|
|
||||||
for(int n = 0; n < incs.count(); ++n)
|
|
||||||
conf->addIncludePath(incs[n]);
|
|
||||||
if(!libs.isEmpty())
|
|
||||||
conf->addLib(libs);
|
|
||||||
QStringList incs2;
|
|
||||||
QString req_ver2 = "2.0";
|
|
||||||
QString version2, libs2, other2;
|
|
||||||
if(conf->findPkgConfig("glib-2.0", mode, req_ver2, &version2, &incs2, &libs2, &other2)) {
|
|
||||||
for(int n = 0; n < incs2.count(); ++n)
|
|
||||||
conf->addIncludePath(incs2[n]);
|
|
||||||
if(!libs2.isEmpty())
|
|
||||||
conf->addLib(libs2);
|
|
||||||
} else {
|
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
QStringList sl;
|
||||||
|
sl << "/usr/include";
|
||||||
|
sl << "/usr/local/include";
|
||||||
|
bool found = false;
|
||||||
|
foreach(s, sl){
|
||||||
|
if(conf->checkHeader(s, "curl/curl.h")){
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
if(!found) {
|
||||||
return false;
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
conf->addIncludePath(s);
|
||||||
|
|
||||||
|
s = conf->getenv("QC_WITH_LIBCURL_LIB");
|
||||||
|
if(!s.isEmpty()) {
|
||||||
|
if(!conf->checkLibrary(s, "curl")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
conf->addLib(QString("-L") + s);
|
||||||
|
}else{
|
||||||
|
QStringList sl;
|
||||||
|
sl << "/usr/lib/";
|
||||||
|
sl << "/usr/local/lib/";
|
||||||
|
bool found = false;
|
||||||
|
foreach(s, sl){
|
||||||
|
if(conf->checkLibrary(s, "curl")){
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!found) return false;
|
||||||
|
conf->addLib(QString("-L") + s);
|
||||||
|
}
|
||||||
|
conf->addLib("-lcurl");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
#line 1 "geoip-database.qcm"
|
#line 1 "python.qcm"
|
||||||
/*
|
/*
|
||||||
-----BEGIN QCMOD-----
|
-----BEGIN QCMOD-----
|
||||||
name: geoip-database
|
name: python
|
||||||
arg: with-geoip-database-embedded, Geoip Database will be embedded in qBittorrent executable (please follow instructions in src/geoip/README)
|
|
||||||
-----END QCMOD-----
|
-----END QCMOD-----
|
||||||
*/
|
*/
|
||||||
// see Conf::findPkgConfig
|
class qc_python : public ConfObj
|
||||||
class qc_geoip_database : public ConfObj
|
|
||||||
{
|
{
|
||||||
public:
|
public:
|
||||||
qc_geoip_database(Conf *c) : ConfObj(c) {}
|
qc_python(Conf *c) : ConfObj(c) {}
|
||||||
QString name() const { return "GeoIP Database (optional)"; }
|
QString name() const { return "python >= 2.3"; }
|
||||||
QString shortname() const { return "GeoIP Database"; }
|
QString shortname() const { return "python"; }
|
||||||
QString checkString() const {
|
bool exec(){
|
||||||
if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
|
int r = conf->doCommand("python testpython.py");
|
||||||
return "";
|
if(r == 0)
|
||||||
return ConfObj::checkString();
|
return true;
|
||||||
}
|
else
|
||||||
bool exec() {
|
return false;
|
||||||
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
|
|
||||||
conf->addDefine("WITH_GEOIP_EMBEDDED");
|
|
||||||
printf(" embedded and");
|
|
||||||
return true;
|
|
||||||
#ifdef Q_WS_X11
|
|
||||||
}
|
|
||||||
if(QFile::exists("/usr/share/GeoIP/GeoIP.dat") || QFile::exists("/usr/local/share/GeoIP/GeoIP.dat") || QFile::exists("/var/lib/GeoIP/GeoIP.dat"))
|
|
||||||
return true;
|
|
||||||
printf("\nWarning: GeoIP database was not found at /usr/share/GeoIP/GeoIP.dat or /var/lib/GeoIP/GeoIP.dat\nCountry resolution will be slow.");
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
EOT
|
EOT
|
||||||
cat >$1/modules_new.cpp <<EOT
|
cat >$1/modules_new.cpp <<EOT
|
||||||
o = new qc_qt4(conf);
|
o = new qc_qt42(conf);
|
||||||
o->required = true;
|
o->required = true;
|
||||||
o->disabled = false;
|
o->disabled = false;
|
||||||
o = new qc_pkg_config(conf);
|
o = new qc_libtorrent(conf);
|
||||||
o->required = true;
|
|
||||||
o->disabled = false;
|
|
||||||
o = new qc_libtorrent_rasterbar(conf);
|
|
||||||
o->required = true;
|
o->required = true;
|
||||||
o->disabled = false;
|
o->disabled = false;
|
||||||
o = new qc_libboost(conf);
|
o = new qc_libboost(conf);
|
||||||
o->required = true;
|
o->required = true;
|
||||||
o->disabled = false;
|
o->disabled = false;
|
||||||
o = new qc_libnotify(conf);
|
o = new qc_libcurl(conf);
|
||||||
o->required = false;
|
o->required = true;
|
||||||
o->disabled = false;
|
o->disabled = false;
|
||||||
o = new qc_geoip_database(conf);
|
o = new qc_python(conf);
|
||||||
o->required = false;
|
o->required = true;
|
||||||
o->disabled = false;
|
o->disabled = false;
|
||||||
|
|
||||||
EOT
|
EOT
|
||||||
cat >$1/conf4.h <<EOT
|
cat >$1/conf4.h <<EOT
|
||||||
// For license information, see the COPYING file in the qconf base directory.
|
|
||||||
|
|
||||||
#ifndef QC_CONF4_H
|
#ifndef QC_CONF4_H
|
||||||
#define QC_CONF4_H
|
#define QC_CONF4_H
|
||||||
|
|
||||||
@@ -643,8 +616,6 @@ private:
|
|||||||
|
|
||||||
EOT
|
EOT
|
||||||
cat >$1/conf4.cpp <<EOT
|
cat >$1/conf4.cpp <<EOT
|
||||||
// For license information, see the COPYING file in the qconf base directory.
|
|
||||||
|
|
||||||
#include "conf4.h"
|
#include "conf4.h"
|
||||||
|
|
||||||
#include <stdio.h>
|
#include <stdio.h>
|
||||||
@@ -795,18 +766,6 @@ void qc_splitcflags(const QString &cflags, QStringList *incs, QStringList *other
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
QString qc_escapeArg(const QString &str)
|
|
||||||
{
|
|
||||||
QString out;
|
|
||||||
for(int n = 0; n < (int)str.length(); ++n) {
|
|
||||||
if(str[n] == '-')
|
|
||||||
out += '_';
|
|
||||||
else
|
|
||||||
out += str[n];
|
|
||||||
}
|
|
||||||
return out;
|
|
||||||
}
|
|
||||||
|
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
// ConfObj
|
// ConfObj
|
||||||
//----------------------------------------------------------------------------
|
//----------------------------------------------------------------------------
|
||||||
@@ -923,14 +882,14 @@ bool Conf::exec()
|
|||||||
// if this was a disabled-by-default option, check if it was enabled
|
// if this was a disabled-by-default option, check if it was enabled
|
||||||
if(o->disabled)
|
if(o->disabled)
|
||||||
{
|
{
|
||||||
QString v = QString("QC_ENABLE_") + qc_escapeArg(o->shortname());
|
QString v = QString("QC_ENABLE_") + o->shortname();
|
||||||
if(getenv(v) != "Y")
|
if(getenv(v) != "Y")
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
// and the opposite?
|
// and the opposite?
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
QString v = QString("QC_DISABLE_") + qc_escapeArg(o->shortname());
|
QString v = QString("QC_DISABLE_") + o->shortname();
|
||||||
if(getenv(v) == "Y")
|
if(getenv(v) == "Y")
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
@@ -1357,7 +1316,7 @@ int main()
|
|||||||
# include"modules_new.cpp"
|
# include"modules_new.cpp"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
conf->debug_enabled = (qc_getenv("QC_VERBOSE") == "Y") ? true: false;
|
conf->debug_enabled = (qc_getenv("QC_DEBUG") == "Y") ? true: false;
|
||||||
if(conf->debug_enabled)
|
if(conf->debug_enabled)
|
||||||
printf(" -> ok\n");
|
printf(" -> ok\n");
|
||||||
else
|
else
|
||||||
@@ -1413,9 +1372,6 @@ int main()
|
|||||||
var = qc_getenv("BINDIR");
|
var = qc_getenv("BINDIR");
|
||||||
if(!var.isEmpty())
|
if(!var.isEmpty())
|
||||||
str += QString("BINDIR = %1\n").arg(var);
|
str += QString("BINDIR = %1\n").arg(var);
|
||||||
var = qc_getenv("INCDIR");
|
|
||||||
if(!var.isEmpty())
|
|
||||||
str += QString("INCDIR = %1\n").arg(var);
|
|
||||||
var = qc_getenv("LIBDIR");
|
var = qc_getenv("LIBDIR");
|
||||||
if(!var.isEmpty())
|
if(!var.isEmpty())
|
||||||
str += QString("LIBDIR = %1\n").arg(var);
|
str += QString("LIBDIR = %1\n").arg(var);
|
||||||
@@ -1479,12 +1435,12 @@ export PREFIX
|
|||||||
export BINDIR
|
export BINDIR
|
||||||
export DATADIR
|
export DATADIR
|
||||||
export EX_QTDIR
|
export EX_QTDIR
|
||||||
export QC_DISABLE_GUI
|
export QC_WITH_LIBTORRENT_INC
|
||||||
|
export QC_WITH_LIBTORRENT_LIB
|
||||||
export QC_WITH_LIBBOOST_INC
|
export QC_WITH_LIBBOOST_INC
|
||||||
export QC_DISABLE_libnotify
|
export QC_WITH_LIBCURL_INC
|
||||||
export QC_DISABLE_geoip_database
|
export QC_WITH_LIBCURL_LIB
|
||||||
export QC_WITH_GEOIP_DATABASE_EMBEDDED
|
export QC_DEBUG
|
||||||
export QC_VERBOSE
|
|
||||||
rm -rf .qconftemp
|
rm -rf .qconftemp
|
||||||
(
|
(
|
||||||
mkdir .qconftemp
|
mkdir .qconftemp
|
||||||
@@ -1497,7 +1453,7 @@ rm -rf .qconftemp
|
|||||||
|
|
||||||
if [ "$?" != "0" ]; then
|
if [ "$?" != "0" ]; then
|
||||||
rm -rf .qconftemp
|
rm -rf .qconftemp
|
||||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
if [ "$QC_DEBUG" = "Y" ]; then
|
||||||
echo " -> fail"
|
echo " -> fail"
|
||||||
else
|
else
|
||||||
echo "fail"
|
echo "fail"
|
||||||
@@ -1506,7 +1462,7 @@ if [ "$?" != "0" ]; then
|
|||||||
printf "Reason: There was an error compiling 'conf'. See conf.log for details.\n"
|
printf "Reason: There was an error compiling 'conf'. See conf.log for details.\n"
|
||||||
printf "\n"
|
printf "\n"
|
||||||
show_qt_info
|
show_qt_info
|
||||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
if [ "$QC_DEBUG" = "Y" ]; then
|
||||||
echo "conf.log:"
|
echo "conf.log:"
|
||||||
cat conf.log
|
cat conf.log
|
||||||
fi
|
fi
|
||||||
@@ -1530,7 +1486,7 @@ if [ "$ret" = "1" ]; then
|
|||||||
else
|
else
|
||||||
if [ "$ret" != "0" ]; then
|
if [ "$ret" != "0" ]; then
|
||||||
rm -rf .qconftemp
|
rm -rf .qconftemp
|
||||||
if [ "$QC_VERBOSE" = "Y" ]; then
|
if [ "$QC_DEBUG" = "Y" ]; then
|
||||||
echo " -> fail"
|
echo " -> fail"
|
||||||
else
|
else
|
||||||
echo "fail"
|
echo "fail"
|
||||||
|
|||||||
@@ -1,44 +0,0 @@
|
|||||||
.\" 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>
|
|
||||||
@@ -1,42 +0,0 @@
|
|||||||
.\" 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" "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] [\-\-webui-port=x] [TORRENT_FILE | URL]...
|
|
||||||
|
|
||||||
\fBqbittorrent\fR \-\-help
|
|
||||||
|
|
||||||
\fBqbittorrent\fR \-\-version
|
|
||||||
|
|
||||||
.PP
|
|
||||||
.SH "DESCRIPTION"
|
|
||||||
|
|
||||||
\fBqBittorrent\fR is an advanced Bittorrent client written in C++ / Qt4,
|
|
||||||
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 (Vuze 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.
|
|
||||||
|
|
||||||
\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>
|
|
||||||
BIN
doc/qbittorrent.1.gz
Normal file
134
packaging/debian-unstable/debian/changelog
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
qbittorrent (0.6.1-1) unstable; urgency=low
|
||||||
|
|
||||||
|
* Disabled debug mode
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Mon, 28 Aug 2006 21:22:48 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.6.1-0) unstable; urgency=low
|
||||||
|
* BUGFIX: Fixed possible segfaults when using context menus
|
||||||
|
* BUGFIX: Cleanup up context menus code
|
||||||
|
* BUGFIX: Used best gzip compressing for manpage
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Thu, 24 Aug 2006 19:53:32 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.6.0) unstable; urgency=low
|
||||||
|
* FEATURE: Rewritten the download list from scratch (more flexible)
|
||||||
|
* FEATURE: Rewritten the search results list from scratch (more flexible)
|
||||||
|
* FEATURE: Rewritten the torrent properties list from scratch (more flexible)
|
||||||
|
* FEATURE: Improved and cleaned up search engine code
|
||||||
|
* FEATURE: Search results are now displayed in real time (not sequentially)
|
||||||
|
* FEATURE: Added two command lines parameters (--version, --help)
|
||||||
|
* FEATURE: Added a popup menu for download list
|
||||||
|
* FEATURE: Double-click on an item now toggles the paused state of a download
|
||||||
|
* FEATURE: Improved code to be more portable (Windows & MacOS versions should arrive soon)
|
||||||
|
* FEATURE: Allow to toggle selected state of a file within a torrent using double-click
|
||||||
|
* FEATURE: Remember columns width in download and search results lists
|
||||||
|
* BUGFIX: Don't use pkg-config for libcurl anymore (easier to compile)
|
||||||
|
* BUGFIX: Fixed ETA calculation when downloading while connecting
|
||||||
|
* BUGFIX: Download progress is now displayed correctly during first seconds of execution (was 0% before)
|
||||||
|
* BUGFIX: Code cleanup & optimization
|
||||||
|
* BUGFIX: Fixed sorting in download list
|
||||||
|
* BUGFIX: Fixed sorting in search results list
|
||||||
|
* BUGFIX: Fixed Parameters passing between instances
|
||||||
|
* BUGFIX: Fixed missing icon for clear action in infoBar popup menu
|
||||||
|
* BUGFIX: Fixed truncated lines in search results
|
||||||
|
* BUGFIX: Don't refresh download list when user is in search tab (save CPU)
|
||||||
|
* BUGFIX: Don't update Progress/DL Speed/ETA for finished downloads (save CPU)
|
||||||
|
* BUGFIX: Save selected search engines only when they have changed (faster program exit)
|
||||||
|
* COSMETIC: Increased icon size in toolbar from 24px to 32px
|
||||||
|
* COSMETIC: Display a progress bar to visualize each download progress
|
||||||
|
* COSMETIC: Size of each result in search are displayed in user friendly units
|
||||||
|
* COSMETIC: Display a progress bar to visualize each file progress within a torrent
|
||||||
|
* COSMETIC: Renamed 'ratio' to 'Session ratio' (makes more sense)
|
||||||
|
* COSMETIC: Improved layout of torrent properties window when maximized
|
||||||
|
* COSMETIC: Now number of search results is updated in real time
|
||||||
|
* COSMETIC: Remember last window size
|
||||||
|
* COSMETIC: Improved splash screen look
|
||||||
|
* COSMETIC: Improved default width of columns in download and search results lists
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Wed, 22 Aug 2006 10:42:37 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.5.0) unstable; urgency=low
|
||||||
|
* Improved "Download from url" feature (now supports https, ftp & redirections)
|
||||||
|
* Added a torrent creation tool
|
||||||
|
* Display progress for each file within a torrent
|
||||||
|
* Based on new libtorrent v0.10 (lot of improvements)
|
||||||
|
* Now possible to clear log textbox (popup menu)
|
||||||
|
* Added two search engines (isohunt, torrentreactor)
|
||||||
|
* Now Display share ratio on main window
|
||||||
|
* Use OSD (On Screen Display) when a download or a search is finished
|
||||||
|
* Allow only one instance of qBittorrent (and add new parameters to download list)
|
||||||
|
* Remember last selected search engines in search tab
|
||||||
|
* Improved search engines status output (Aborted, timed out, finished, no results)
|
||||||
|
* qBittorrent can now update search plugin from qbittorrent.org
|
||||||
|
* Added Slovak, Italian, Portuguese, Romanian and Traditional Chinese languages
|
||||||
|
* Fixed ThePirateBay parser for search engine (website had changed)
|
||||||
|
* Fixed filenames for results from ThePirateBay search engine
|
||||||
|
* Fixed unicode support for ThePirateBay search engine
|
||||||
|
* Now search results are sorted by seeds
|
||||||
|
* Overwrite nova.py search plugin only if it is outdated
|
||||||
|
* Fixed possible division by 0 in ETA calculation
|
||||||
|
* Improved ETA calculation precision
|
||||||
|
* Fixed default tab in options
|
||||||
|
* When saving options, reconnect only when listening ports changed
|
||||||
|
* qBittorrent has now its own new logo
|
||||||
|
* Display status "downloading" if DL Speed > 0 (even when tracker is down)
|
||||||
|
* Added a splashscreen
|
||||||
|
* qBittorrent has new cute icons
|
||||||
|
* Display number of results in search tab
|
||||||
|
* Added icons for each item in download list according to its state
|
||||||
|
* Redesigned Locale settings
|
||||||
|
* Fixed search engines names width (were cut on the right)
|
||||||
|
* Moved search engines to the left of the window (better ui)
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Wed, 2 Aug 2006 19:46:32 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.4.1) unstable; urgency=low
|
||||||
|
* Not counting "protocol chatter" in UP/DL speed anymore
|
||||||
|
* Download speed is now 0 when download is finished
|
||||||
|
* Paused torrents remain paused when qbittorrent is re-started
|
||||||
|
* Added option "go to systray when minimizing"
|
||||||
|
* Added option "Clear finished downloads on exit"
|
||||||
|
* Added option "Ask user for confirmation on exit"
|
||||||
|
* Added "Stalled" status for downloads (colored in orange, paused are in red and finished in green)
|
||||||
|
* Fixed Search window layout on maximizing
|
||||||
|
* Fixed a bug that caused upload limit not to be always applied
|
||||||
|
* Added Bulgarian translation
|
||||||
|
* Updated Translations
|
||||||
|
* Code optimization
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Thu, 22 Jun 2006 20:14:27 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.4.0) unstable; urgency=low
|
||||||
|
|
||||||
|
* Added a search engine (supports Mininova & thepiratebay websites)
|
||||||
|
* Fixed critical bug: some options were not applied correctly to BT session
|
||||||
|
* Possibility to download a torrent file from an URL
|
||||||
|
* Added confirmation dialog on qbittorrent exit
|
||||||
|
* Enabled sorting in Download list
|
||||||
|
* Added Ukrainian translation
|
||||||
|
* Support urls as program parameters
|
||||||
|
* Added more actions to trayicon menu
|
||||||
|
* Fixed exception catching when retrieving fastresume data
|
||||||
|
* use Binary prefix standards from IEC 60027-2 for units (B, KiB, MiB, GiB, TiB)
|
||||||
|
* Iconification to systray when minimizing
|
||||||
|
* Code Cleanup & optimization
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Wed, 14 Jun 2006 14:47:27 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.3.1) unstable; urgency=low
|
||||||
|
|
||||||
|
* Fixed toolbar layout (spacing).
|
||||||
|
* Added Russian translation.
|
||||||
|
* Resume also finished files on startup (for seeding).
|
||||||
|
* Added colors corresponding to download state.
|
||||||
|
* Fixed a segfault when deleting a download (if no scan dir is set).
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Sat, 6 Jun 2006 21:36:27 +0200
|
||||||
|
|
||||||
|
|
||||||
|
qbittorrent (0.3) unstable; urgency=low
|
||||||
|
|
||||||
|
* Initial Release.
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Sat, 3 Jun 2006 21:57:27 +0200
|
||||||
1
packaging/debian-unstable/debian/compat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
4
|
||||||
15
packaging/debian-unstable/debian/control
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
Source: qbittorrent
|
||||||
|
Section: net
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Christophe Dumez <chris@qbittorrent.org>
|
||||||
|
Build-Depends: debhelper (>= 4.0.0), autotools-dev, libqt4-core (>= 4.1.0), libqt4-dev (>= 4.1.0), libqt4-gui (>= 4.1.0), rb-libtorrent (>= 0.10), libcurl3-dev
|
||||||
|
Standards-Version: 3.6.2
|
||||||
|
|
||||||
|
Package: qbittorrent
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${shlibs:Depends}, ${misc:Depends}, rb-libtorrent (>= 0.10), python (>= 2.3)
|
||||||
|
Description: Bittorrent client in Qt4.1 / C++
|
||||||
|
qBittorrent is a bittorrent client programmed in C++ / Qt4.1
|
||||||
|
using rb_libtorrent by Arvid Norberg. It aims to be a good
|
||||||
|
alternative to other bittorrent client out there. It is fast,
|
||||||
|
stable and provides unicode support.
|
||||||
26
packaging/debian-unstable/debian/copyright
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
This is qbittorrent, written and maintained by Christophe Dumez <chris@qbittorrent.org>
|
||||||
|
on Sat, 3 Jun 2006 21:57:27 +0200.
|
||||||
|
|
||||||
|
The original source can always be found at:
|
||||||
|
ftp://ftp.debian.org/dists/unstable/main/source/
|
||||||
|
|
||||||
|
Copyright (C) 2006 Christophe Dumez
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
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 package; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the GNU General
|
||||||
|
Public License can be found in `/usr/share/common-licenses/GPL'.
|
||||||
2
packaging/debian-unstable/debian/dirs
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
usr/bin
|
||||||
|
usr/sbin
|
||||||
3
packaging/debian-unstable/debian/docs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
NEWS
|
||||||
|
README
|
||||||
|
TODO
|
||||||
107
packaging/debian-unstable/debian/rules
Executable file
@@ -0,0 +1,107 @@
|
|||||||
|
#!/usr/bin/make -f
|
||||||
|
# -*- makefile -*-
|
||||||
|
# Sample debian/rules that uses debhelper.
|
||||||
|
# This file was originally written by Joey Hess and Craig Small.
|
||||||
|
# As a special exception, when this file is copied by dh-make into a
|
||||||
|
# dh-make output file, you may use that output file without restriction.
|
||||||
|
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
||||||
|
|
||||||
|
# Uncomment this to turn on verbose mode.
|
||||||
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
|
|
||||||
|
# These are used for cross-compiling and for saving the configure script
|
||||||
|
# from having to guess our platform (since we know it already)
|
||||||
|
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||||
|
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS = -Wall
|
||||||
|
|
||||||
|
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
|
||||||
|
CFLAGS += -O0
|
||||||
|
else
|
||||||
|
CFLAGS += -O2
|
||||||
|
endif
|
||||||
|
|
||||||
|
config.status: configure
|
||||||
|
dh_testdir
|
||||||
|
# Add here commands to configure the package.
|
||||||
|
CFLAGS="$(CFLAGS) -Wl,-z,defs" ./configure --prefix=/usr
|
||||||
|
|
||||||
|
|
||||||
|
build: build-stamp
|
||||||
|
|
||||||
|
build-stamp: config.status
|
||||||
|
dh_testdir
|
||||||
|
|
||||||
|
# Add here commands to compile the package.
|
||||||
|
$(MAKE)
|
||||||
|
#docbook-to-man debian/qbittorrent.sgml > qbittorrent.1
|
||||||
|
|
||||||
|
touch build-stamp
|
||||||
|
|
||||||
|
clean:
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
rm -f build-stamp
|
||||||
|
|
||||||
|
# Add here commands to clean up after the build process.
|
||||||
|
-$(MAKE) distclean
|
||||||
|
ifneq "$(wildcard /usr/share/misc/config.sub)" ""
|
||||||
|
cp -f /usr/share/misc/config.sub config.sub
|
||||||
|
endif
|
||||||
|
ifneq "$(wildcard /usr/share/misc/config.guess)" ""
|
||||||
|
cp -f /usr/share/misc/config.guess config.guess
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
dh_clean
|
||||||
|
|
||||||
|
install: build
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_clean -k
|
||||||
|
dh_installdirs
|
||||||
|
|
||||||
|
# Add here commands to install the package into debian/qbittorrent.
|
||||||
|
$(MAKE) install INSTALL_ROOT=$(CURDIR)/debian/qbittorrent
|
||||||
|
|
||||||
|
|
||||||
|
# Build architecture-independent files here.
|
||||||
|
binary-indep: build install
|
||||||
|
# We have nothing to do by default.
|
||||||
|
|
||||||
|
# Build architecture-dependent files here.
|
||||||
|
binary-arch: build install
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_installchangelogs Changelog
|
||||||
|
dh_installdocs
|
||||||
|
dh_installexamples
|
||||||
|
# dh_install
|
||||||
|
# dh_installmenu
|
||||||
|
# dh_installdebconf
|
||||||
|
# dh_installlogrotate
|
||||||
|
# dh_installemacsen
|
||||||
|
# dh_installpam
|
||||||
|
# dh_installmime
|
||||||
|
# dh_installinit
|
||||||
|
# dh_installcron
|
||||||
|
# dh_installinfo
|
||||||
|
dh_installman
|
||||||
|
dh_link
|
||||||
|
dh_strip
|
||||||
|
dh_compress
|
||||||
|
dh_fixperms
|
||||||
|
# dh_perl
|
||||||
|
# dh_python
|
||||||
|
# dh_makeshlibs
|
||||||
|
dh_installdeb
|
||||||
|
dh_shlibdeps
|
||||||
|
dh_gencontrol
|
||||||
|
dh_md5sums
|
||||||
|
dh_builddeb
|
||||||
|
|
||||||
|
binary: binary-indep binary-arch
|
||||||
|
.PHONY: build clean binary-indep binary-arch binary install
|
||||||
249
packaging/mandriva/qbittorrent.spec
Normal file
@@ -0,0 +1,249 @@
|
|||||||
|
|
||||||
|
%define name qbittorrent
|
||||||
|
%define major 0
|
||||||
|
%define minor 6
|
||||||
|
%define patch 1
|
||||||
|
%define version %{major}.%{minor}.%{patch}
|
||||||
|
%define release %mkrel 2
|
||||||
|
%define _iconsdir %{_datadir}/icons
|
||||||
|
%define _mandir %_datadir/man
|
||||||
|
|
||||||
|
Name: %{name}
|
||||||
|
Summary: A Bittorrent Client using C++ / Qt4
|
||||||
|
Version: %{version}
|
||||||
|
Release: %{release}
|
||||||
|
Source0: http://sourceforge.net/projects/qbittorrent/%{name}-%{version}.tar.gz
|
||||||
|
URL: http://sourceforge.net/projects/qbittorrent
|
||||||
|
Vendor: http://qbittorrent.sourceforge.net/
|
||||||
|
Group: Internet/File Transfer
|
||||||
|
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-buildroot
|
||||||
|
License: GPL
|
||||||
|
BuildRequires: libqt4-devel >= 4.1.2, libqtgui4 >= 4.1.2, libqtcore4 >= 4.1.2, libqtxml4 >= 4.1.2, libqtnetwork4 >= 4.1.2, rb_libtorrent-devel >= 0.10-3, libcurl3-devel
|
||||||
|
Requires: libqtgui4 >= 4.1.2, libqtcore4 >= 4.1.2, libqtxml4 >= 4.1.2, libqtnetwork4 >= 4.1.2, librb_libtorrent0 >= 0.10-3, python >= 2.3, libcurl3
|
||||||
|
|
||||||
|
%description
|
||||||
|
A Bittorrent client using C++ / libtorrent and a Qt4 Graphical User Interface.
|
||||||
|
It aims to be as fast as possible and to provide multi-OS, unicode support.
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup
|
||||||
|
|
||||||
|
%build
|
||||||
|
# Export the Environment variables
|
||||||
|
export QTDIR=%_prefix/%_lib/qt4
|
||||||
|
export KDEDIR=%_prefix
|
||||||
|
export LD_LIBRARY_PATH=$QTDIR/%_lib:$KDEDIR/%_lib:$LD_LIBRARY_PATH
|
||||||
|
export PATH=$QTDIR/bin:$KDEDIR/bin:$PATH
|
||||||
|
|
||||||
|
|
||||||
|
# Change to the Source directory and configure
|
||||||
|
#cd src
|
||||||
|
CFLAGS="%optflags" CXXFLAGS="%optflags" \
|
||||||
|
./configure --prefix=%{buildroot}%{_prefix}
|
||||||
|
|
||||||
|
# Necessary to remove old compiled files.. if they exist
|
||||||
|
make clean
|
||||||
|
|
||||||
|
%make
|
||||||
|
|
||||||
|
%install
|
||||||
|
%makeinstall --directory=src
|
||||||
|
|
||||||
|
|
||||||
|
# Create the menu directory
|
||||||
|
install -d %{buildroot}%{_menudir}
|
||||||
|
|
||||||
|
# Build the Menu
|
||||||
|
#<package> <section> <file_in> <file_out> [requires] [title]
|
||||||
|
kdedesktop2mdkmenu.pl %{name} "%{group}" %{buildroot}%{_datadir}/applications/qBittorrent.desktop %{buildroot}%{_menudir}/%{name}
|
||||||
|
|
||||||
|
%clean
|
||||||
|
%{__rm} -rf %{buildroot}
|
||||||
|
|
||||||
|
%post
|
||||||
|
/sbin/ldconfig
|
||||||
|
%{update_menus}
|
||||||
|
|
||||||
|
%postun
|
||||||
|
/sbin/ldconfig
|
||||||
|
%{clean_menus}
|
||||||
|
|
||||||
|
|
||||||
|
%files
|
||||||
|
%defattr(-,root,root)
|
||||||
|
%doc README INSTALL NEWS COPYING AUTHORS TODO Changelog
|
||||||
|
%doc %{_mandir}/man1/*.bz2
|
||||||
|
|
||||||
|
|
||||||
|
# The binaries
|
||||||
|
%_bindir/*
|
||||||
|
|
||||||
|
|
||||||
|
# Icon files
|
||||||
|
# Hi and Lo colour icons various sizes
|
||||||
|
%_iconsdir/hicolor/128x128/apps/qbittorrent.png
|
||||||
|
%_iconsdir/hicolor/16x16/apps/qbittorrent.png
|
||||||
|
%_iconsdir/hicolor/192x192/apps/qbittorrent.png
|
||||||
|
%_iconsdir/hicolor/22x22/apps/qbittorrent.png
|
||||||
|
%_iconsdir/hicolor/24x24/apps/qbittorrent.png
|
||||||
|
%_iconsdir/hicolor/32x32/apps/qbittorrent.png
|
||||||
|
%_iconsdir/hicolor/36x36/apps/qbittorrent.png
|
||||||
|
%_iconsdir/hicolor/48x48/apps/qbittorrent.png
|
||||||
|
%_iconsdir/hicolor/64x64/apps/qbittorrent.png
|
||||||
|
%_iconsdir/hicolor/72x72/apps/qbittorrent.png
|
||||||
|
%_iconsdir/hicolor/96x96/apps/qbittorrent.png
|
||||||
|
## %_iconsdir/hicolor/scalable/apps/qbittorrent.svgz
|
||||||
|
|
||||||
|
|
||||||
|
# Desktop Link
|
||||||
|
%_datadir/applications/qBittorrent.desktop
|
||||||
|
|
||||||
|
# The qbittorrent Menu directory
|
||||||
|
%dir %{_menudir}
|
||||||
|
%{_menudir}/%{name}
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
|
||||||
|
* Wed Aug 23 2006 - Christophe Dumez <chris@qbittorrent.org> - 0.6.0-0.1.2006mdk
|
||||||
|
- FEATURE: Rewritten the download list from scratch (more flexible)
|
||||||
|
- FEATURE: Rewritten the search results list from scratch (more flexible)
|
||||||
|
- FEATURE: Rewritten the torrent properties list from scratch (more flexible)
|
||||||
|
- FEATURE: Improved and cleaned up search engine code
|
||||||
|
- FEATURE: Search results are now displayed in real time (not sequentially)
|
||||||
|
- FEATURE: Added two command lines parameters (--version, --help)
|
||||||
|
- FEATURE: Added a popup menu for download list
|
||||||
|
- FEATURE: Double-click on an item now toggles the paused state of a download
|
||||||
|
- FEATURE: Improved code to be more portable (Windows & MacOS versions should arrive soon)
|
||||||
|
- FEATURE: Allow to toggle selected state of a file within a torrent using double-click
|
||||||
|
- FEATURE: Remember columns width in download and search results lists
|
||||||
|
- BUGFIX: Don't use pkg-config for libcurl anymore (easier to compile)
|
||||||
|
- BUGFIX: Fixed ETA calculation when downloading while connecting
|
||||||
|
- BUGFIX: Download progress is now displayed correctly during first seconds of execution (was 0% before)
|
||||||
|
- BUGFIX: Code cleanup & optimization
|
||||||
|
- BUGFIX: Fixed sorting in download list
|
||||||
|
- BUGFIX: Fixed sorting in search results list
|
||||||
|
- BUGFIX: Fixed Parameters passing between instances
|
||||||
|
- BUGFIX: Fixed missing icon for clear action in infoBar popup menu
|
||||||
|
- BUGFIX: Fixed truncated lines in search results
|
||||||
|
- BUGFIX: Don't refresh download list when user is in search tab (save CPU)
|
||||||
|
- BUGFIX: Don't update Progress/DL Speed/ETA for finished downloads (save CPU)
|
||||||
|
- BUGFIX: Save selected search engines only when they have changed (faster program exit)
|
||||||
|
- COSMETIC: Increased icon size in toolbar from 24px to 32px
|
||||||
|
- COSMETIC: Display a progress bar to visualize each download progress
|
||||||
|
- COSMETIC: Size of each result in search are displayed in user friendly units
|
||||||
|
- COSMETIC: Display a progress bar to visualize each file progress within a torrent
|
||||||
|
- COSMETIC: Renamed 'ratio' to 'Session ratio' (makes more sense)
|
||||||
|
- COSMETIC: Improved layout of torrent properties window when maximized
|
||||||
|
- COSMETIC: Now number of search results is updated in real time
|
||||||
|
- COSMETIC: Remember last window size
|
||||||
|
- COSMETIC: Improved splash screen look
|
||||||
|
- COSMETIC: Improved default width of columns in download and search results lists
|
||||||
|
|
||||||
|
* Tue Aug 08 2006 - Christophe Dumez <chris@qbittorrent.org> - 0.5.0-0.1.20060mdk
|
||||||
|
- FEATURE: Improved "Download from url" feature (now supports https, ftp & redirections)
|
||||||
|
- FEATURE: Added a torrent creation tool
|
||||||
|
- FEATURE: Display progress for each file within a torrent
|
||||||
|
- FEATURE: Based on new libtorrent v0.10 (lot of improvements)
|
||||||
|
- FEATURE: Now possible to clear log textbox (popup menu)
|
||||||
|
- FEATURE: Added two search engines (isohunt, torrentreactor)
|
||||||
|
- FEATURE: Now Display share ratio on main window
|
||||||
|
- FEATURE: Use OSD (On Screen Display) when a download or a search is finished
|
||||||
|
- FEATURE: Allow only one instance of qBittorrent (and add new parameters to download list)
|
||||||
|
- FEATURE: Remember last selected search engines in search tab
|
||||||
|
- FEATURE: Improved search engines status output (Aborted, timed out, finished, no results)
|
||||||
|
- FEATURE: qBittorrent can now update search plugin from qbittorrent.org
|
||||||
|
- I18N: Added Slovak, Italian, Portuguese, Romanian and Traditional Chinese languages
|
||||||
|
- BUGFIX: Fixed ThePirateBay parser for search engine (website had changed)
|
||||||
|
- BUGFIX: Fixed filenames for results from ThePirateBay search engine
|
||||||
|
- BUGFIX: Fixed unicode support for ThePirateBay search engine
|
||||||
|
- BUGFIX: Now search results are sorted by seeds
|
||||||
|
- BUGFIX: Overwrite nova.py search plugin only if it is outdated
|
||||||
|
- BUGFIX: Fixed possible division by 0 in ETA calculation
|
||||||
|
- BUGFIX: Improved ETA calculation precision
|
||||||
|
- BUGFIX: Fixed default tab in options
|
||||||
|
- BUGFIX: When saving options, reconnect only when listening ports changed
|
||||||
|
- COSMETIC: qBittorrent has now its own new logo
|
||||||
|
- COSMETIC: Display status "downloading" if DL Speed > 0 (even when tracker is down)
|
||||||
|
- COSMETIC: Added a splashscreen
|
||||||
|
- COSMETIC: qBittorrent has new cute icons
|
||||||
|
- COSMETIC: Display number of results in search tab
|
||||||
|
- COSMETIC: Added icons for each item in download list according to its state
|
||||||
|
- COSMETIC: Redesigned Locale settings
|
||||||
|
- COSMETIC: Fixed search engines names width (were cut on the right)
|
||||||
|
- COSMETIC: Moved search engines to the left of the window (better ui)
|
||||||
|
|
||||||
|
* Fri Jun 23 2006 - Christophe Dumez <chris@qbittorrent.org> - 0.4.1-0.1.20060mdk
|
||||||
|
- Not counting "protocol chatter" in UP/DL speed anymore
|
||||||
|
- Download speed is now 0 when download is finished
|
||||||
|
- Paused torrents remain paused when qbittorrent is re-started
|
||||||
|
- Added option "go to systray when minimizing"
|
||||||
|
- Added option "Clear finished downloads on exit"
|
||||||
|
- Added option "Ask user for confirmation on exit"
|
||||||
|
- Added "Stalled" status for downloads (colored in orange, paused are in red and finished in green)
|
||||||
|
- Fixed Search window layout on maximizing
|
||||||
|
- Fixed a bug that caused upload limit not to be always applied
|
||||||
|
- Added Bulgarian translation
|
||||||
|
- Updated Translations
|
||||||
|
- Code optimization
|
||||||
|
|
||||||
|
* Tue Jun 13 2006 - Christophe Dumez <chris@qbittorrent.org> - 0.4.0-0.1.20060mdk
|
||||||
|
- Added a search engine (supports Mininova & thepiratebay websites)
|
||||||
|
- Fixed critical bug: some options were not applied correctly to BT session
|
||||||
|
- Possibility to download a torrent file from an URL
|
||||||
|
- Added confirmation dialog on qbittorrent exit
|
||||||
|
- Enabled sorting in Download list
|
||||||
|
- Added Ukrainian translation
|
||||||
|
- Support urls as program parameters
|
||||||
|
- Added more actions to trayicon menu
|
||||||
|
- Fixed exception catching when retrieving fastresume data
|
||||||
|
- use Binary prefix standards from IEC 60027-2 for units (B, KiB, MiB, GiB, TiB)
|
||||||
|
- Iconification to systray when minimizing
|
||||||
|
- Code Cleanup & optimization
|
||||||
|
|
||||||
|
* Tue Jun 06 2006 - Christophe Dumez <chris@qbittorrent.org> - 0.3.1-0.1.20060mdk
|
||||||
|
- Fixed toolbar layout (spacing)
|
||||||
|
- Added Russian translation
|
||||||
|
- Resume also finished files on startup (for seeding)
|
||||||
|
- Added colors corresponding to download state
|
||||||
|
- Fixed a segfault when deleting a download (if no scan dir is set)
|
||||||
|
|
||||||
|
* Mon Jun 05 2006 - Christophe Dumez <chris@qbittorrent.org> - 0.3-0.1.20060mdk
|
||||||
|
- Fixed auto-resume (worked only once)
|
||||||
|
- Fixed BT_Backup dir creation on first startup (thanks Peter)
|
||||||
|
- Now min port and max port are inverted if (min port > max port)
|
||||||
|
- Fixed memory leaks
|
||||||
|
- Added qbittorrent man page
|
||||||
|
- Allow to disable max connections limit (default is disabled)
|
||||||
|
- Disable upload limit by default
|
||||||
|
- Added Menu Entry with icon (thanks Peter)
|
||||||
|
- Restructured directory, now Makefile is in main directory (not src/)
|
||||||
|
- Updated README / INSTALL
|
||||||
|
|
||||||
|
* Fri Jun 02 2006 - Christophe Dumez <chris@qbittorrent.org> 0.2.3-0.1.20060mdk
|
||||||
|
- Fixed ports checking function (user couldn't type the value he wanted)
|
||||||
|
- Check tracker errors list size and clear it if it becomes too big.
|
||||||
|
- qBittorrent does not remove .torrent file from scanned directory anymore
|
||||||
|
- Small cosmetic change
|
||||||
|
|
||||||
|
* Wed May 31 2006 Christophe Dumez <chris@qbittorrent.org> 0.2.2-0.1.20060mdk
|
||||||
|
- Fixed missing icons
|
||||||
|
|
||||||
|
* Sat May 27 2006 Jeffery Fernandez <developer@jefferyfernandez.id.au> 0.2.1-0.1.20060mdk
|
||||||
|
- Initial Build for Mandriva Linux
|
||||||
|
|
||||||
|
* Thu May 25 2006 Christophe Dumez <chris@qbittorrent.org>
|
||||||
|
- Fixed "make install" rule
|
||||||
|
- Disabled debug mode
|
||||||
|
|
||||||
|
* Thu May 25 2006 Christophe Dumez <chris@qbittorrent.org> - v0.2
|
||||||
|
- Fixed a compatibility problem with some versions of qmake
|
||||||
|
- Added translations : Greek, Swedish
|
||||||
|
- Fixed Polish translation selection
|
||||||
|
- Fixed come warning because of two unexisting slots
|
||||||
|
- Improved "Apply" button behaviour in options
|
||||||
|
- Windows are now resizable
|
||||||
|
|
||||||
|
* Tue May 16 2006 Christophe Dumez <chris@qbittorrent.org> - v0.1
|
||||||
|
- Initial release (lack features & still need a lot of improvements)
|
||||||
|
|
||||||
147
packaging/mandriva/rb_libtorrent.spec
Normal file
@@ -0,0 +1,147 @@
|
|||||||
|
|
||||||
|
%define package_name rb_libtorrent
|
||||||
|
%define orig_name libtorrent
|
||||||
|
%define major 0
|
||||||
|
%define minor .10
|
||||||
|
%define patch .1
|
||||||
|
%define version %{major}%{minor}
|
||||||
|
%define candidate -rc1
|
||||||
|
%define lib_name %mklibname %{package_name} %{major}
|
||||||
|
%define release %mkrel 4
|
||||||
|
|
||||||
|
Summary : libtorrent is a C++ bittorrent library.
|
||||||
|
Name : %{package_name}
|
||||||
|
Version : %{version}
|
||||||
|
Release : %{release}
|
||||||
|
License : GPL
|
||||||
|
Group : Development/C++
|
||||||
|
Source0 : http://www.rasterbar.com/products/libtorrent/libtorrent-%{version}.tar.gz
|
||||||
|
URL : http://www.rasterbar.com
|
||||||
|
BuildRequires : boost >= 1.33.1
|
||||||
|
BuildRoot : %{_tmppath}/%{orig_name}-%{version}-%{release}-root
|
||||||
|
Patch0 : file_progress_arvid.patch.bz2
|
||||||
|
|
||||||
|
%description
|
||||||
|
libtorrent is a C++ library that aims to be a good alternative
|
||||||
|
to all the other bittorrent implementations around.
|
||||||
|
|
||||||
|
|
||||||
|
%package -n %{package_name}-devel
|
||||||
|
Group : Development/C++
|
||||||
|
Summary : Development files for %{package_name}
|
||||||
|
Conflicts : libtorrent7-devel
|
||||||
|
|
||||||
|
%description -n %{package_name}-devel
|
||||||
|
Development files for %{package_name}
|
||||||
|
|
||||||
|
%package -n %{lib_name}
|
||||||
|
Group : Development/C++
|
||||||
|
Summary : Library files for %{package_name}
|
||||||
|
Conflicts : libtorrent7
|
||||||
|
|
||||||
|
%description -n %{lib_name}
|
||||||
|
Library files for %{package_name}
|
||||||
|
|
||||||
|
%prep
|
||||||
|
%setup -n %{orig_name}-%{version}
|
||||||
|
|
||||||
|
%build
|
||||||
|
%configure --prefix=%{_prefix}
|
||||||
|
%make
|
||||||
|
|
||||||
|
|
||||||
|
%install
|
||||||
|
%makeinstall
|
||||||
|
|
||||||
|
# Create directories for the package
|
||||||
|
install -d %{buildroot}%{_includedir}/%{orig_name}
|
||||||
|
install -d %{buildroot}%{_libdir}/pkgconfig
|
||||||
|
|
||||||
|
%clean
|
||||||
|
rm -rf %{buildroot}
|
||||||
|
|
||||||
|
# The binaries
|
||||||
|
%files %(orig_name)
|
||||||
|
%defattr(0644, root, root, 0755)
|
||||||
|
%{_bindir}/*
|
||||||
|
|
||||||
|
# Documentation
|
||||||
|
%defattr(-, root, root)
|
||||||
|
%doc README AUTHORS INSTALL COPYING ChangeLog NEWS
|
||||||
|
%doc docs/*
|
||||||
|
|
||||||
|
|
||||||
|
# Devel Package
|
||||||
|
%files -n %{package_name}-devel
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%dir %{_includedir}/%{orig_name}/
|
||||||
|
%dir %{_includedir}/%{orig_name}/asio/
|
||||||
|
%dir %{_includedir}/%{orig_name}/asio/detail/
|
||||||
|
%dir %{_includedir}/%{orig_name}/asio/impl/
|
||||||
|
%dir %{_includedir}/%{orig_name}/asio/ip/
|
||||||
|
%dir %{_includedir}/%{orig_name}/asio/ip/detail/
|
||||||
|
%dir %{_includedir}/%{orig_name}/asio/ssl/
|
||||||
|
%dir %{_includedir}/%{orig_name}/asio/ssl/detail/
|
||||||
|
%{_includedir}/%{orig_name}/*.hpp
|
||||||
|
%{_includedir}/%{orig_name}/asio/*.hpp
|
||||||
|
%{_includedir}/%{orig_name}/asio/detail/*.hpp
|
||||||
|
%{_includedir}/%{orig_name}/asio/impl/*.ipp
|
||||||
|
%{_includedir}/%{orig_name}/asio/ip/*.hpp
|
||||||
|
%{_includedir}/%{orig_name}/asio/ip/detail/*.hpp
|
||||||
|
%{_includedir}/%{orig_name}/asio/ssl/*.hpp
|
||||||
|
%{_includedir}/%{orig_name}/asio/ssl/detail/*.hpp
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
%{_libdir}/%{orig_name}.a
|
||||||
|
%{_libdir}/%{orig_name}.la
|
||||||
|
%{_libdir}/%{orig_name}.so
|
||||||
|
%{_libdir}/pkgconfig/libtorrent.pc
|
||||||
|
|
||||||
|
|
||||||
|
# Library Package
|
||||||
|
%files -n %{lib_name}
|
||||||
|
%defattr(-,root,root,-)
|
||||||
|
%_libdir/%{orig_name}.so.*
|
||||||
|
|
||||||
|
|
||||||
|
%changelog
|
||||||
|
|
||||||
|
* Wed Aug 23 2006 Christophe Dumez <chris@qbittorrent.org> 10.0.1-2006mdk
|
||||||
|
- Added patch for Torrent Properties crash fix
|
||||||
|
|
||||||
|
* Sat Jul 1 2006 %{packager} %{version}-%{release}
|
||||||
|
- fixed a bug where the requested number of peers in a tracker request could
|
||||||
|
be too big.
|
||||||
|
- fixed a bug where empty files were not created in full allocation mode.
|
||||||
|
- fixed a bug in storage that would, in rare cases, fail to do a
|
||||||
|
complete check.
|
||||||
|
- exposed more settings for tweaking parameters in the piece-picker,
|
||||||
|
downloader and uploader (http_settings replaced by session_settings).
|
||||||
|
- tweaked default settings to improve high bandwidth transfers.
|
||||||
|
- improved the piece picker performance and made it possible to download
|
||||||
|
popular pieces in sequence to improve disk performance.
|
||||||
|
- added the possibility to control upload and download limits per peer.
|
||||||
|
- fixed problem with re-requesting skipped pieces when peer was sending pieces
|
||||||
|
out of fifo-order.
|
||||||
|
- added support for http seeding (the GetRight protocol)
|
||||||
|
- renamed identifiers called 'id' in the public interface to support linking
|
||||||
|
with Objective.C++
|
||||||
|
- changed the extensions protocol to use the new one, which is also
|
||||||
|
implemented by uTorrent.
|
||||||
|
- factorized the peer_connection and added web_peer_connection which is
|
||||||
|
able to download from http-sources.
|
||||||
|
- converted the network code to use asio (resulted in slight api changes
|
||||||
|
dealing with network addresses).
|
||||||
|
- made libtorrent build in vc7 (patches from Allen Zhao)
|
||||||
|
- fixed bug caused when binding outgoing connections to a non-local interface.
|
||||||
|
- add_torrent() will now throw if called while the session object is
|
||||||
|
being closed.
|
||||||
|
- added the ability to limit the number of simultaneous half-open
|
||||||
|
TCP connections. Flags in peer_info has been added.
|
||||||
|
|
||||||
|
|
||||||
|
* Thu Jun 1 2006 %{packager} %{version}-%{release}
|
||||||
|
- Initial Build for Mandriva Linux
|
||||||
134
packaging/ubuntu-dapper/debian/changelog
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
qbittorrent (0.6.1-0ubuntu2) dapper; urgency=low
|
||||||
|
|
||||||
|
* Disabled debug mode
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Mon, 28 Aug 2006 19:29:17 +0000
|
||||||
|
|
||||||
|
qbittorrent (0.6.1-0ubuntu1) dapper; urgency=low
|
||||||
|
* BUGFIX: Fixed possible segfaults when using context menus
|
||||||
|
* BUGFIX: Cleanup up context menus code
|
||||||
|
* BUGFIX: Used best gzip compressing for manpage
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Thu, 24 Aug 2006 19:53:32 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.6.0) dapper; urgency=low
|
||||||
|
* FEATURE: Rewritten the download list from scratch (more flexible)
|
||||||
|
* FEATURE: Rewritten the search results list from scratch (more flexible)
|
||||||
|
* FEATURE: Rewritten the torrent properties list from scratch (more flexible)
|
||||||
|
* FEATURE: Improved and cleaned up search engine code
|
||||||
|
* FEATURE: Search results are now displayed in real time (not sequentially)
|
||||||
|
* FEATURE: Added two command lines parameters (--version, --help)
|
||||||
|
* FEATURE: Added a popup menu for download list
|
||||||
|
* FEATURE: Double-click on an item now toggles the paused state of a download
|
||||||
|
* FEATURE: Improved code to be more portable (Windows & MacOS versions should arrive soon)
|
||||||
|
* FEATURE: Allow to toggle selected state of a file within a torrent using double-click
|
||||||
|
* FEATURE: Remember columns width in download and search results lists
|
||||||
|
* BUGFIX: Don't use pkg-config for libcurl anymore (easier to compile)
|
||||||
|
* BUGFIX: Fixed ETA calculation when downloading while connecting
|
||||||
|
* BUGFIX: Download progress is now displayed correctly during first seconds of execution (was 0% before)
|
||||||
|
* BUGFIX: Code cleanup & optimization
|
||||||
|
* BUGFIX: Fixed sorting in download list
|
||||||
|
* BUGFIX: Fixed sorting in search results list
|
||||||
|
* BUGFIX: Fixed Parameters passing between instances
|
||||||
|
* BUGFIX: Fixed missing icon for clear action in infoBar popup menu
|
||||||
|
* BUGFIX: Fixed truncated lines in search results
|
||||||
|
* BUGFIX: Don't refresh download list when user is in search tab (save CPU)
|
||||||
|
* BUGFIX: Don't update Progress/DL Speed/ETA for finished downloads (save CPU)
|
||||||
|
* BUGFIX: Save selected search engines only when they have changed (faster program exit)
|
||||||
|
* COSMETIC: Increased icon size in toolbar from 24px to 32px
|
||||||
|
* COSMETIC: Display a progress bar to visualize each download progress
|
||||||
|
* COSMETIC: Size of each result in search are displayed in user friendly units
|
||||||
|
* COSMETIC: Display a progress bar to visualize each file progress within a torrent
|
||||||
|
* COSMETIC: Renamed 'ratio' to 'Session ratio' (makes more sense)
|
||||||
|
* COSMETIC: Improved layout of torrent properties window when maximized
|
||||||
|
* COSMETIC: Now number of search results is updated in real time
|
||||||
|
* COSMETIC: Remember last window size
|
||||||
|
* COSMETIC: Improved splash screen look
|
||||||
|
* COSMETIC: Improved default width of columns in download and search results lists
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Wed, 22 Aug 2006 10:42:37 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.5.0) dapper; urgency=low
|
||||||
|
* Improved "Download from url" feature (now supports https, ftp & redirections)
|
||||||
|
* Added a torrent creation tool
|
||||||
|
* Display progress for each file within a torrent
|
||||||
|
* Based on new libtorrent v0.10 (lot of improvements)
|
||||||
|
* Now possible to clear log textbox (popup menu)
|
||||||
|
* Added two search engines (isohunt, torrentreactor)
|
||||||
|
* Now Display share ratio on main window
|
||||||
|
* Use OSD (On Screen Display) when a download or a search is finished
|
||||||
|
* Allow only one instance of qBittorrent (and add new parameters to download list)
|
||||||
|
* Remember last selected search engines in search tab
|
||||||
|
* Improved search engines status output (Aborted, timed out, finished, no results)
|
||||||
|
* qBittorrent can now update search plugin from qbittorrent.org
|
||||||
|
* Added Slovak, Italian, Portuguese, Romanian and Traditional Chinese languages
|
||||||
|
* Fixed ThePirateBay parser for search engine (website had changed)
|
||||||
|
* Fixed filenames for results from ThePirateBay search engine
|
||||||
|
* Fixed unicode support for ThePirateBay search engine
|
||||||
|
* Now search results are sorted by seeds
|
||||||
|
* Overwrite nova.py search plugin only if it is outdated
|
||||||
|
* Fixed possible division by 0 in ETA calculation
|
||||||
|
* Improved ETA calculation precision
|
||||||
|
* Fixed default tab in options
|
||||||
|
* When saving options, reconnect only when listening ports changed
|
||||||
|
* qBittorrent has now its own new logo
|
||||||
|
* Display status "downloading" if DL Speed > 0 (even when tracker is down)
|
||||||
|
* Added a splashscreen
|
||||||
|
* qBittorrent has new cute icons
|
||||||
|
* Display number of results in search tab
|
||||||
|
* Added icons for each item in download list according to its state
|
||||||
|
* Redesigned Locale settings
|
||||||
|
* Fixed search engines names width (were cut on the right)
|
||||||
|
* Moved search engines to the left of the window (better ui)
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Wed, 2 Aug 2006 19:46:32 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.4.1) dapper; urgency=low
|
||||||
|
* Not counting "protocol chatter" in UP/DL speed anymore
|
||||||
|
* Download speed is now 0 when download is finished
|
||||||
|
* Paused torrents remain paused when qbittorrent is re-started
|
||||||
|
* Added option "go to systray when minimizing"
|
||||||
|
* Added option "Clear finished downloads on exit"
|
||||||
|
* Added option "Ask user for confirmation on exit"
|
||||||
|
* Added "Stalled" status for downloads (colored in orange, paused are in red and finished in green)
|
||||||
|
* Fixed Search window layout on maximizing
|
||||||
|
* Fixed a bug that caused upload limit not to be always applied
|
||||||
|
* Added Bulgarian translation
|
||||||
|
* Updated Translations
|
||||||
|
* Code optimization
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Thu, 22 Jun 2006 20:14:27 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.4.0) dapper; urgency=low
|
||||||
|
|
||||||
|
* Added a search engine (supports Mininova & thepiratebay websites)
|
||||||
|
* Fixed critical bug: some options were not applied correctly to BT session
|
||||||
|
* Possibility to download a torrent file from an URL
|
||||||
|
* Added confirmation dialog on qbittorrent exit
|
||||||
|
* Enabled sorting in Download list
|
||||||
|
* Added Ukrainian translation
|
||||||
|
* Support urls as program parameters
|
||||||
|
* Added more actions to trayicon menu
|
||||||
|
* Fixed exception catching when retrieving fastresume data
|
||||||
|
* use Binary prefix standards from IEC 60027-2 for units (B, KiB, MiB, GiB, TiB)
|
||||||
|
* Iconification to systray when minimizing
|
||||||
|
* Code Cleanup & optimization
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Wed, 14 Jun 2006 14:47:27 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.3.1) dapper; urgency=low
|
||||||
|
|
||||||
|
* Fixed toolbar layout (spacing).
|
||||||
|
* Added Russian translation.
|
||||||
|
* Resume also finished files on startup (for seeding).
|
||||||
|
* Added colors corresponding to download state.
|
||||||
|
* Fixed a segfault when deleting a download (if no scan dir is set).
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Sat, 6 Jun 2006 21:36:27 +0200
|
||||||
|
|
||||||
|
|
||||||
|
qbittorrent (0.3) dapper; urgency=low
|
||||||
|
|
||||||
|
* Initial Release.
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Sat, 3 Jun 2006 21:57:27 +0200
|
||||||
1
packaging/ubuntu-dapper/debian/compat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
4
|
||||||
15
packaging/ubuntu-dapper/debian/control
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
Source: qbittorrent
|
||||||
|
Section: net
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Christophe Dumez <chris@qbittorrent.org>
|
||||||
|
Build-Depends: debhelper (>= 4.0.0), autotools-dev, libqt4-core (>= 4.1.0), libqt4-dev (>= 4.1.0), libqt4-gui (>= 4.1.0), rb-libtorrent (>= 0.10), libcurl3-dev
|
||||||
|
Standards-Version: 3.6.2
|
||||||
|
|
||||||
|
Package: qbittorrent
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${shlibs:Depends}, ${misc:Depends}, rb-libtorrent (>= 0.10), python (>= 2.3)
|
||||||
|
Description: Bittorrent client in Qt4.1 / C++
|
||||||
|
qBittorrent is a bittorrent client programmed in C++ / Qt4.1
|
||||||
|
using rb_libtorrent by Arvid Norberg. It aims to be a good
|
||||||
|
alternative to other bittorrent client out there. It is fast,
|
||||||
|
stable and provides unicode support.
|
||||||
26
packaging/ubuntu-dapper/debian/copyright
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
This is qbittorrent, written and maintained by Christophe Dumez <chris@qbittorrent.org>
|
||||||
|
on Sat, 3 Jun 2006 21:57:27 +0200.
|
||||||
|
|
||||||
|
The original source can always be found at:
|
||||||
|
ftp://ftp.debian.org/dists/unstable/main/source/
|
||||||
|
|
||||||
|
Copyright (C) 2006 Christophe Dumez
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
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 package; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the GNU General
|
||||||
|
Public License can be found in `/usr/share/common-licenses/GPL'.
|
||||||
2
packaging/ubuntu-dapper/debian/dirs
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
usr/bin
|
||||||
|
usr/sbin
|
||||||
3
packaging/ubuntu-dapper/debian/docs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
NEWS
|
||||||
|
README
|
||||||
|
TODO
|
||||||
1
packaging/ubuntu-dapper/debian/files
Normal file
@@ -0,0 +1 @@
|
|||||||
|
qbittorrent_0.6.1-0ubuntu2_i386.deb net optional
|
||||||
1
packaging/ubuntu-dapper/debian/qbittorrent.substvars
Normal file
@@ -0,0 +1 @@
|
|||||||
|
shlibs:Depends=libboost-date-time1.33.1, libboost-filesystem1.33.1, libboost-thread1.33.1, libc6 (>= 2.3.4-1), libcurl3 (>= 7.15.0-1), libgcc1 (>= 1:4.0.2), libqt4-core (>= 4.1.2), libqt4-gui (>= 4.1.2), libstdc++6 (>= 4.0.2-4), libx11-6, libxext6, zlib1g (>= 1:1.2.1)
|
||||||
107
packaging/ubuntu-dapper/debian/rules
Executable file
@@ -0,0 +1,107 @@
|
|||||||
|
#!/usr/bin/make -f
|
||||||
|
# -*- makefile -*-
|
||||||
|
# Sample debian/rules that uses debhelper.
|
||||||
|
# This file was originally written by Joey Hess and Craig Small.
|
||||||
|
# As a special exception, when this file is copied by dh-make into a
|
||||||
|
# dh-make output file, you may use that output file without restriction.
|
||||||
|
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
||||||
|
|
||||||
|
# Uncomment this to turn on verbose mode.
|
||||||
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
|
|
||||||
|
# These are used for cross-compiling and for saving the configure script
|
||||||
|
# from having to guess our platform (since we know it already)
|
||||||
|
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||||
|
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS = -Wall
|
||||||
|
|
||||||
|
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
|
||||||
|
CFLAGS += -O0
|
||||||
|
else
|
||||||
|
CFLAGS += -O2
|
||||||
|
endif
|
||||||
|
|
||||||
|
config.status: configure
|
||||||
|
dh_testdir
|
||||||
|
# Add here commands to configure the package.
|
||||||
|
CFLAGS="$(CFLAGS) -Wl,-z,defs" ./configure --prefix=/usr
|
||||||
|
|
||||||
|
|
||||||
|
build: build-stamp
|
||||||
|
|
||||||
|
build-stamp: config.status
|
||||||
|
dh_testdir
|
||||||
|
|
||||||
|
# Add here commands to compile the package.
|
||||||
|
$(MAKE)
|
||||||
|
#docbook-to-man debian/qbittorrent.sgml > qbittorrent.1
|
||||||
|
|
||||||
|
touch build-stamp
|
||||||
|
|
||||||
|
clean:
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
rm -f build-stamp
|
||||||
|
|
||||||
|
# Add here commands to clean up after the build process.
|
||||||
|
-$(MAKE) distclean
|
||||||
|
ifneq "$(wildcard /usr/share/misc/config.sub)" ""
|
||||||
|
cp -f /usr/share/misc/config.sub config.sub
|
||||||
|
endif
|
||||||
|
ifneq "$(wildcard /usr/share/misc/config.guess)" ""
|
||||||
|
cp -f /usr/share/misc/config.guess config.guess
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
dh_clean
|
||||||
|
|
||||||
|
install: build
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_clean -k
|
||||||
|
dh_installdirs
|
||||||
|
|
||||||
|
# Add here commands to install the package into debian/qbittorrent.
|
||||||
|
$(MAKE) install INSTALL_ROOT=$(CURDIR)/debian/qbittorrent
|
||||||
|
|
||||||
|
|
||||||
|
# Build architecture-independent files here.
|
||||||
|
binary-indep: build install
|
||||||
|
# We have nothing to do by default.
|
||||||
|
|
||||||
|
# Build architecture-dependent files here.
|
||||||
|
binary-arch: build install
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_installchangelogs Changelog
|
||||||
|
dh_installdocs
|
||||||
|
dh_installexamples
|
||||||
|
# dh_install
|
||||||
|
# dh_installmenu
|
||||||
|
# dh_installdebconf
|
||||||
|
# dh_installlogrotate
|
||||||
|
# dh_installemacsen
|
||||||
|
# dh_installpam
|
||||||
|
# dh_installmime
|
||||||
|
# dh_installinit
|
||||||
|
# dh_installcron
|
||||||
|
# dh_installinfo
|
||||||
|
dh_installman
|
||||||
|
dh_link
|
||||||
|
dh_strip
|
||||||
|
dh_compress
|
||||||
|
dh_fixperms
|
||||||
|
# dh_perl
|
||||||
|
# dh_python
|
||||||
|
# dh_makeshlibs
|
||||||
|
dh_installdeb
|
||||||
|
dh_shlibdeps
|
||||||
|
dh_gencontrol
|
||||||
|
dh_md5sums
|
||||||
|
dh_builddeb
|
||||||
|
|
||||||
|
binary: binary-indep binary-arch
|
||||||
|
.PHONY: build clean binary-indep binary-arch binary install
|
||||||
134
packaging/ubuntu-edgy/debian/changelog
Normal file
@@ -0,0 +1,134 @@
|
|||||||
|
qbittorrent (0.6.1-0ubuntu2) edgy; urgency=low
|
||||||
|
|
||||||
|
* Disabled debug mode
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Mon, 28 Aug 2006 21:22:48 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.6.1-0ubuntu1) edgy; urgency=low
|
||||||
|
* BUGFIX: Fixed possible segfaults when using context menus
|
||||||
|
* BUGFIX: Cleanup up context menus code
|
||||||
|
* BUGFIX: Used best gzip compressing for manpage
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Thu, 24 Aug 2006 19:53:32 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.6.0) edgy; urgency=low
|
||||||
|
* FEATURE: Rewritten the download list from scratch (more flexible)
|
||||||
|
* FEATURE: Rewritten the search results list from scratch (more flexible)
|
||||||
|
* FEATURE: Rewritten the torrent properties list from scratch (more flexible)
|
||||||
|
* FEATURE: Improved and cleaned up search engine code
|
||||||
|
* FEATURE: Search results are now displayed in real time (not sequentially)
|
||||||
|
* FEATURE: Added two command lines parameters (--version, --help)
|
||||||
|
* FEATURE: Added a popup menu for download list
|
||||||
|
* FEATURE: Double-click on an item now toggles the paused state of a download
|
||||||
|
* FEATURE: Improved code to be more portable (Windows & MacOS versions should arrive soon)
|
||||||
|
* FEATURE: Allow to toggle selected state of a file within a torrent using double-click
|
||||||
|
* FEATURE: Remember columns width in download and search results lists
|
||||||
|
* BUGFIX: Don't use pkg-config for libcurl anymore (easier to compile)
|
||||||
|
* BUGFIX: Fixed ETA calculation when downloading while connecting
|
||||||
|
* BUGFIX: Download progress is now displayed correctly during first seconds of execution (was 0% before)
|
||||||
|
* BUGFIX: Code cleanup & optimization
|
||||||
|
* BUGFIX: Fixed sorting in download list
|
||||||
|
* BUGFIX: Fixed sorting in search results list
|
||||||
|
* BUGFIX: Fixed Parameters passing between instances
|
||||||
|
* BUGFIX: Fixed missing icon for clear action in infoBar popup menu
|
||||||
|
* BUGFIX: Fixed truncated lines in search results
|
||||||
|
* BUGFIX: Don't refresh download list when user is in search tab (save CPU)
|
||||||
|
* BUGFIX: Don't update Progress/DL Speed/ETA for finished downloads (save CPU)
|
||||||
|
* BUGFIX: Save selected search engines only when they have changed (faster program exit)
|
||||||
|
* COSMETIC: Increased icon size in toolbar from 24px to 32px
|
||||||
|
* COSMETIC: Display a progress bar to visualize each download progress
|
||||||
|
* COSMETIC: Size of each result in search are displayed in user friendly units
|
||||||
|
* COSMETIC: Display a progress bar to visualize each file progress within a torrent
|
||||||
|
* COSMETIC: Renamed 'ratio' to 'Session ratio' (makes more sense)
|
||||||
|
* COSMETIC: Improved layout of torrent properties window when maximized
|
||||||
|
* COSMETIC: Now number of search results is updated in real time
|
||||||
|
* COSMETIC: Remember last window size
|
||||||
|
* COSMETIC: Improved splash screen look
|
||||||
|
* COSMETIC: Improved default width of columns in download and search results lists
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Wed, 22 Aug 2006 10:42:37 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.5.0) edgy; urgency=low
|
||||||
|
* Improved "Download from url" feature (now supports https, ftp & redirections)
|
||||||
|
* Added a torrent creation tool
|
||||||
|
* Display progress for each file within a torrent
|
||||||
|
* Based on new libtorrent v0.10 (lot of improvements)
|
||||||
|
* Now possible to clear log textbox (popup menu)
|
||||||
|
* Added two search engines (isohunt, torrentreactor)
|
||||||
|
* Now Display share ratio on main window
|
||||||
|
* Use OSD (On Screen Display) when a download or a search is finished
|
||||||
|
* Allow only one instance of qBittorrent (and add new parameters to download list)
|
||||||
|
* Remember last selected search engines in search tab
|
||||||
|
* Improved search engines status output (Aborted, timed out, finished, no results)
|
||||||
|
* qBittorrent can now update search plugin from qbittorrent.org
|
||||||
|
* Added Slovak, Italian, Portuguese, Romanian and Traditional Chinese languages
|
||||||
|
* Fixed ThePirateBay parser for search engine (website had changed)
|
||||||
|
* Fixed filenames for results from ThePirateBay search engine
|
||||||
|
* Fixed unicode support for ThePirateBay search engine
|
||||||
|
* Now search results are sorted by seeds
|
||||||
|
* Overwrite nova.py search plugin only if it is outdated
|
||||||
|
* Fixed possible division by 0 in ETA calculation
|
||||||
|
* Improved ETA calculation precision
|
||||||
|
* Fixed default tab in options
|
||||||
|
* When saving options, reconnect only when listening ports changed
|
||||||
|
* qBittorrent has now its own new logo
|
||||||
|
* Display status "downloading" if DL Speed > 0 (even when tracker is down)
|
||||||
|
* Added a splashscreen
|
||||||
|
* qBittorrent has new cute icons
|
||||||
|
* Display number of results in search tab
|
||||||
|
* Added icons for each item in download list according to its state
|
||||||
|
* Redesigned Locale settings
|
||||||
|
* Fixed search engines names width (were cut on the right)
|
||||||
|
* Moved search engines to the left of the window (better ui)
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Wed, 2 Aug 2006 19:46:32 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.4.1) edgy; urgency=low
|
||||||
|
* Not counting "protocol chatter" in UP/DL speed anymore
|
||||||
|
* Download speed is now 0 when download is finished
|
||||||
|
* Paused torrents remain paused when qbittorrent is re-started
|
||||||
|
* Added option "go to systray when minimizing"
|
||||||
|
* Added option "Clear finished downloads on exit"
|
||||||
|
* Added option "Ask user for confirmation on exit"
|
||||||
|
* Added "Stalled" status for downloads (colored in orange, paused are in red and finished in green)
|
||||||
|
* Fixed Search window layout on maximizing
|
||||||
|
* Fixed a bug that caused upload limit not to be always applied
|
||||||
|
* Added Bulgarian translation
|
||||||
|
* Updated Translations
|
||||||
|
* Code optimization
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Thu, 22 Jun 2006 20:14:27 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.4.0) edgy; urgency=low
|
||||||
|
|
||||||
|
* Added a search engine (supports Mininova & thepiratebay websites)
|
||||||
|
* Fixed critical bug: some options were not applied correctly to BT session
|
||||||
|
* Possibility to download a torrent file from an URL
|
||||||
|
* Added confirmation dialog on qbittorrent exit
|
||||||
|
* Enabled sorting in Download list
|
||||||
|
* Added Ukrainian translation
|
||||||
|
* Support urls as program parameters
|
||||||
|
* Added more actions to trayicon menu
|
||||||
|
* Fixed exception catching when retrieving fastresume data
|
||||||
|
* use Binary prefix standards from IEC 60027-2 for units (B, KiB, MiB, GiB, TiB)
|
||||||
|
* Iconification to systray when minimizing
|
||||||
|
* Code Cleanup & optimization
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Wed, 14 Jun 2006 14:47:27 +0200
|
||||||
|
|
||||||
|
qbittorrent (0.3.1) edgy; urgency=low
|
||||||
|
|
||||||
|
* Fixed toolbar layout (spacing).
|
||||||
|
* Added Russian translation.
|
||||||
|
* Resume also finished files on startup (for seeding).
|
||||||
|
* Added colors corresponding to download state.
|
||||||
|
* Fixed a segfault when deleting a download (if no scan dir is set).
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Sat, 6 Jun 2006 21:36:27 +0200
|
||||||
|
|
||||||
|
|
||||||
|
qbittorrent (0.3) edgy; urgency=low
|
||||||
|
|
||||||
|
* Initial Release.
|
||||||
|
|
||||||
|
-- Christophe Dumez <chris@qbittorrent.org> Sat, 3 Jun 2006 21:57:27 +0200
|
||||||
1
packaging/ubuntu-edgy/debian/compat
Normal file
@@ -0,0 +1 @@
|
|||||||
|
4
|
||||||
15
packaging/ubuntu-edgy/debian/control
Normal file
@@ -0,0 +1,15 @@
|
|||||||
|
Source: qbittorrent
|
||||||
|
Section: net
|
||||||
|
Priority: optional
|
||||||
|
Maintainer: Christophe Dumez <chris@qbittorrent.org>
|
||||||
|
Build-Depends: debhelper (>= 4.0.0), autotools-dev, libqt4-core (>= 4.1.0), libqt4-dev (>= 4.1.0), libqt4-gui (>= 4.1.0), rb-libtorrent (>= 0.10), libcurl3-dev
|
||||||
|
Standards-Version: 3.6.2
|
||||||
|
|
||||||
|
Package: qbittorrent
|
||||||
|
Architecture: any
|
||||||
|
Depends: ${shlibs:Depends}, ${misc:Depends}, rb-libtorrent (>= 0.10), python (>= 2.3)
|
||||||
|
Description: Bittorrent client in Qt4.1 / C++
|
||||||
|
qBittorrent is a bittorrent client programmed in C++ / Qt4.1
|
||||||
|
using rb_libtorrent by Arvid Norberg. It aims to be a good
|
||||||
|
alternative to other bittorrent client out there. It is fast,
|
||||||
|
stable and provides unicode support.
|
||||||
26
packaging/ubuntu-edgy/debian/copyright
Normal file
@@ -0,0 +1,26 @@
|
|||||||
|
This is qbittorrent, written and maintained by Christophe Dumez <chris@qbittorrent.org>
|
||||||
|
on Sat, 3 Jun 2006 21:57:27 +0200.
|
||||||
|
|
||||||
|
The original source can always be found at:
|
||||||
|
ftp://ftp.debian.org/dists/unstable/main/source/
|
||||||
|
|
||||||
|
Copyright (C) 2006 Christophe Dumez
|
||||||
|
|
||||||
|
License:
|
||||||
|
|
||||||
|
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 package; if not, write to the Free Software
|
||||||
|
Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||||
|
|
||||||
|
On Debian systems, the complete text of the GNU General
|
||||||
|
Public License can be found in `/usr/share/common-licenses/GPL'.
|
||||||
2
packaging/ubuntu-edgy/debian/dirs
Normal file
@@ -0,0 +1,2 @@
|
|||||||
|
usr/bin
|
||||||
|
usr/sbin
|
||||||
3
packaging/ubuntu-edgy/debian/docs
Normal file
@@ -0,0 +1,3 @@
|
|||||||
|
NEWS
|
||||||
|
README
|
||||||
|
TODO
|
||||||
1
packaging/ubuntu-edgy/debian/files
Normal file
@@ -0,0 +1 @@
|
|||||||
|
qbittorrent_0.6.1-0ubuntu2_i386.deb net optional
|
||||||
1
packaging/ubuntu-edgy/debian/qbittorrent.substvars
Normal file
@@ -0,0 +1 @@
|
|||||||
|
shlibs:Depends=libboost-date-time1.33.1, libboost-filesystem1.33.1, libboost-thread1.33.1, libc6 (>= 2.4-1), libcurl3 (>= 7.15.4-1), libgcc1 (>= 1:4.1.1-11ubuntu1), libqt4-core (>= 4.1.4), libqt4-gui (>= 4.1.4), libstdc++6 (>= 4.1.1-11ubuntu1), libx11-6, libxext6, zlib1g (>= 1:1.2.1)
|
||||||
107
packaging/ubuntu-edgy/debian/rules
Executable file
@@ -0,0 +1,107 @@
|
|||||||
|
#!/usr/bin/make -f
|
||||||
|
# -*- makefile -*-
|
||||||
|
# Sample debian/rules that uses debhelper.
|
||||||
|
# This file was originally written by Joey Hess and Craig Small.
|
||||||
|
# As a special exception, when this file is copied by dh-make into a
|
||||||
|
# dh-make output file, you may use that output file without restriction.
|
||||||
|
# This special exception was added by Craig Small in version 0.37 of dh-make.
|
||||||
|
|
||||||
|
# Uncomment this to turn on verbose mode.
|
||||||
|
#export DH_VERBOSE=1
|
||||||
|
|
||||||
|
|
||||||
|
# These are used for cross-compiling and for saving the configure script
|
||||||
|
# from having to guess our platform (since we know it already)
|
||||||
|
DEB_HOST_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_HOST_GNU_TYPE)
|
||||||
|
DEB_BUILD_GNU_TYPE ?= $(shell dpkg-architecture -qDEB_BUILD_GNU_TYPE)
|
||||||
|
|
||||||
|
|
||||||
|
CFLAGS = -Wall
|
||||||
|
|
||||||
|
ifneq (,$(findstring noopt,$(DEB_BUILD_OPTIONS)))
|
||||||
|
CFLAGS += -O0
|
||||||
|
else
|
||||||
|
CFLAGS += -O2
|
||||||
|
endif
|
||||||
|
|
||||||
|
config.status: configure
|
||||||
|
dh_testdir
|
||||||
|
# Add here commands to configure the package.
|
||||||
|
CFLAGS="$(CFLAGS) -Wl,-z,defs" ./configure --prefix=/usr
|
||||||
|
|
||||||
|
|
||||||
|
build: build-stamp
|
||||||
|
|
||||||
|
build-stamp: config.status
|
||||||
|
dh_testdir
|
||||||
|
|
||||||
|
# Add here commands to compile the package.
|
||||||
|
$(MAKE)
|
||||||
|
#docbook-to-man debian/qbittorrent.sgml > qbittorrent.1
|
||||||
|
|
||||||
|
touch build-stamp
|
||||||
|
|
||||||
|
clean:
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
rm -f build-stamp
|
||||||
|
|
||||||
|
# Add here commands to clean up after the build process.
|
||||||
|
-$(MAKE) distclean
|
||||||
|
ifneq "$(wildcard /usr/share/misc/config.sub)" ""
|
||||||
|
cp -f /usr/share/misc/config.sub config.sub
|
||||||
|
endif
|
||||||
|
ifneq "$(wildcard /usr/share/misc/config.guess)" ""
|
||||||
|
cp -f /usr/share/misc/config.guess config.guess
|
||||||
|
endif
|
||||||
|
|
||||||
|
|
||||||
|
dh_clean
|
||||||
|
|
||||||
|
install: build
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_clean -k
|
||||||
|
dh_installdirs
|
||||||
|
|
||||||
|
# Add here commands to install the package into debian/qbittorrent.
|
||||||
|
$(MAKE) install INSTALL_ROOT=$(CURDIR)/debian/qbittorrent
|
||||||
|
|
||||||
|
|
||||||
|
# Build architecture-independent files here.
|
||||||
|
binary-indep: build install
|
||||||
|
# We have nothing to do by default.
|
||||||
|
|
||||||
|
# Build architecture-dependent files here.
|
||||||
|
binary-arch: build install
|
||||||
|
dh_testdir
|
||||||
|
dh_testroot
|
||||||
|
dh_installchangelogs Changelog
|
||||||
|
dh_installdocs
|
||||||
|
dh_installexamples
|
||||||
|
# dh_install
|
||||||
|
# dh_installmenu
|
||||||
|
# dh_installdebconf
|
||||||
|
# dh_installlogrotate
|
||||||
|
# dh_installemacsen
|
||||||
|
# dh_installpam
|
||||||
|
# dh_installmime
|
||||||
|
# dh_installinit
|
||||||
|
# dh_installcron
|
||||||
|
# dh_installinfo
|
||||||
|
dh_installman
|
||||||
|
dh_link
|
||||||
|
dh_strip
|
||||||
|
dh_compress
|
||||||
|
dh_fixperms
|
||||||
|
# dh_perl
|
||||||
|
# dh_python
|
||||||
|
# dh_makeshlibs
|
||||||
|
dh_installdeb
|
||||||
|
dh_shlibdeps
|
||||||
|
dh_gencontrol
|
||||||
|
dh_md5sums
|
||||||
|
dh_builddeb
|
||||||
|
|
||||||
|
binary: binary-indep binary-arch
|
||||||
|
.PHONY: build clean binary-indep binary-arch binary install
|
||||||
@@ -1,199 +0,0 @@
|
|||||||
<?xml version = '1.0'?>
|
|
||||||
<kdevelop>
|
|
||||||
<general>
|
|
||||||
<author>Christophe Dumez</author>
|
|
||||||
<email>chris@qbittorrent.org</email>
|
|
||||||
<version>1.0.0</version>
|
|
||||||
<projectmanagement>KDevTrollProject</projectmanagement>
|
|
||||||
<primarylanguage>C++</primarylanguage>
|
|
||||||
<keywords>
|
|
||||||
<keyword>Qt</keyword>
|
|
||||||
</keywords>
|
|
||||||
<projectname>qBittorrent</projectname>
|
|
||||||
<ignoreparts/>
|
|
||||||
<projectdirectory>.</projectdirectory>
|
|
||||||
<absoluteprojectpath>false</absoluteprojectpath>
|
|
||||||
<description/>
|
|
||||||
<defaultencoding/>
|
|
||||||
<versioncontrol>kdevsubversion</versioncontrol>
|
|
||||||
</general>
|
|
||||||
<kdevfileview>
|
|
||||||
<groups>
|
|
||||||
<group pattern="*.cpp;*.cxx;*.h" name="Sources" />
|
|
||||||
<group pattern="*.ui" name="User Interface" />
|
|
||||||
<group pattern="*.png" name="Icons" />
|
|
||||||
<group pattern="*" name="Others" />
|
|
||||||
<hidenonprojectfiles>false</hidenonprojectfiles>
|
|
||||||
<hidenonlocation>false</hidenonlocation>
|
|
||||||
</groups>
|
|
||||||
<tree>
|
|
||||||
<hidepatterns>*.o,*.lo,CVS</hidepatterns>
|
|
||||||
<hidenonprojectfiles>false</hidenonprojectfiles>
|
|
||||||
<showvcsfields>false</showvcsfields>
|
|
||||||
</tree>
|
|
||||||
</kdevfileview>
|
|
||||||
<kdevdoctreeview>
|
|
||||||
<ignoretocs>
|
|
||||||
<toc>bash</toc>
|
|
||||||
<toc>bash_bugs</toc>
|
|
||||||
<toc>clanlib</toc>
|
|
||||||
<toc>w3c-dom-level2-html</toc>
|
|
||||||
<toc>fortran_bugs_gcc</toc>
|
|
||||||
<toc>gnome1</toc>
|
|
||||||
<toc>gnustep</toc>
|
|
||||||
<toc>gtk</toc>
|
|
||||||
<toc>gtk_bugs</toc>
|
|
||||||
<toc>haskell</toc>
|
|
||||||
<toc>haskell_bugs_ghc</toc>
|
|
||||||
<toc>java_bugs_gcc</toc>
|
|
||||||
<toc>java_bugs_sun</toc>
|
|
||||||
<toc>kde2book</toc>
|
|
||||||
<toc>opengl</toc>
|
|
||||||
<toc>pascal_bugs_fp</toc>
|
|
||||||
<toc>php</toc>
|
|
||||||
<toc>php_bugs</toc>
|
|
||||||
<toc>perl</toc>
|
|
||||||
<toc>perl_bugs</toc>
|
|
||||||
<toc>python</toc>
|
|
||||||
<toc>python_bugs</toc>
|
|
||||||
<toc>qt-kdev3</toc>
|
|
||||||
<toc>ruby</toc>
|
|
||||||
<toc>ruby_bugs</toc>
|
|
||||||
<toc>sdl</toc>
|
|
||||||
<toc>stl</toc>
|
|
||||||
<toc>w3c-svg</toc>
|
|
||||||
<toc>sw</toc>
|
|
||||||
<toc>w3c-uaag10</toc>
|
|
||||||
<toc>wxwidgets_bugs</toc>
|
|
||||||
</ignoretocs>
|
|
||||||
<ignoredoxygen>
|
|
||||||
<toc>KDE Libraries (Doxygen)</toc>
|
|
||||||
</ignoredoxygen>
|
|
||||||
</kdevdoctreeview>
|
|
||||||
<kdevdebugger>
|
|
||||||
<general>
|
|
||||||
<dbgshell/>
|
|
||||||
<gdbpath/>
|
|
||||||
<configGdbScript/>
|
|
||||||
<runShellScript/>
|
|
||||||
<runGdbScript/>
|
|
||||||
<breakonloadinglibs>true</breakonloadinglibs>
|
|
||||||
<separatetty>false</separatetty>
|
|
||||||
<floatingtoolbar>false</floatingtoolbar>
|
|
||||||
</general>
|
|
||||||
<display>
|
|
||||||
<staticmembers>false</staticmembers>
|
|
||||||
<demanglenames>true</demanglenames>
|
|
||||||
<outputradix>10</outputradix>
|
|
||||||
</display>
|
|
||||||
</kdevdebugger>
|
|
||||||
<kdevcppsupport>
|
|
||||||
<qt>
|
|
||||||
<version>4</version>
|
|
||||||
<used>true</used>
|
|
||||||
<includestyle>4</includestyle>
|
|
||||||
<designerintegration>ExternalDesigner</designerintegration>
|
|
||||||
<root>/usr/lib/qt4</root>
|
|
||||||
<qmake>/usr/bin/qmake</qmake>
|
|
||||||
<designer>/usr/bin/designer</designer>
|
|
||||||
<designerpluginpaths/>
|
|
||||||
</qt>
|
|
||||||
<references>
|
|
||||||
<pcs>automatic_%2Fhome%2Fishanarora%2Fprojects%2Fqbittorrent</pcs>
|
|
||||||
</references>
|
|
||||||
<codecompletion>
|
|
||||||
<automaticCodeCompletion>true</automaticCodeCompletion>
|
|
||||||
<automaticArgumentsHint>true</automaticArgumentsHint>
|
|
||||||
<automaticHeaderCompletion>true</automaticHeaderCompletion>
|
|
||||||
<codeCompletionDelay>250</codeCompletionDelay>
|
|
||||||
<argumentsHintDelay>400</argumentsHintDelay>
|
|
||||||
<headerCompletionDelay>250</headerCompletionDelay>
|
|
||||||
<showOnlyAccessibleItems>false</showOnlyAccessibleItems>
|
|
||||||
<completionBoxItemOrder>0</completionBoxItemOrder>
|
|
||||||
<howEvaluationContextMenu>true</howEvaluationContextMenu>
|
|
||||||
<showCommentWithArgumentHint>true</showCommentWithArgumentHint>
|
|
||||||
<statusBarTypeEvaluation>false</statusBarTypeEvaluation>
|
|
||||||
<namespaceAliases>std=_GLIBCXX_STD;__gnu_cxx=std</namespaceAliases>
|
|
||||||
<processPrimaryTypes>true</processPrimaryTypes>
|
|
||||||
<processFunctionArguments>true</processFunctionArguments>
|
|
||||||
<preProcessAllHeaders>true</preProcessAllHeaders>
|
|
||||||
<parseMissingHeadersExperimental>true</parseMissingHeadersExperimental>
|
|
||||||
<resolveIncludePathsUsingMakeExperimental>true</resolveIncludePathsUsingMakeExperimental>
|
|
||||||
<alwaysParseInBackground>true</alwaysParseInBackground>
|
|
||||||
<usePermanentCaching>true</usePermanentCaching>
|
|
||||||
<alwaysIncludeNamespaces>false</alwaysIncludeNamespaces>
|
|
||||||
<includePaths>.;</includePaths>
|
|
||||||
</codecompletion>
|
|
||||||
<creategettersetter>
|
|
||||||
<prefixGet>get</prefixGet>
|
|
||||||
<prefixSet>set</prefixSet>
|
|
||||||
<prefixVariable>m_,_</prefixVariable>
|
|
||||||
<parameterName>theValue</parameterName>
|
|
||||||
<inlineGet>true</inlineGet>
|
|
||||||
<inlineSet>true</inlineSet>
|
|
||||||
</creategettersetter>
|
|
||||||
<splitheadersource>
|
|
||||||
<enabled>false</enabled>
|
|
||||||
<synchronize>true</synchronize>
|
|
||||||
<orientation>Vertical</orientation>
|
|
||||||
</splitheadersource>
|
|
||||||
</kdevcppsupport>
|
|
||||||
<kdevfilecreate>
|
|
||||||
<filetypes/>
|
|
||||||
<useglobaltypes>
|
|
||||||
<type ext="ui" />
|
|
||||||
<type ext="cpp" />
|
|
||||||
<type ext="h" />
|
|
||||||
</useglobaltypes>
|
|
||||||
</kdevfilecreate>
|
|
||||||
<kdevtrollproject>
|
|
||||||
<general>
|
|
||||||
<activedir>src</activedir>
|
|
||||||
</general>
|
|
||||||
<run>
|
|
||||||
<directoryradio>executable</directoryradio>
|
|
||||||
<mainprogram>/home/ishanarora/projects/qbittorrent/src/qbittorrent</mainprogram>
|
|
||||||
<programargs/>
|
|
||||||
<globaldebugarguments/>
|
|
||||||
<globalcwd>/home/ishanarora/projects/qbittorrent</globalcwd>
|
|
||||||
<useglobalprogram>true</useglobalprogram>
|
|
||||||
<terminal>false</terminal>
|
|
||||||
<autocompile>true</autocompile>
|
|
||||||
<autoinstall>false</autoinstall>
|
|
||||||
<autokdesu>false</autokdesu>
|
|
||||||
<envvars/>
|
|
||||||
</run>
|
|
||||||
<make>
|
|
||||||
<abortonerror>true</abortonerror>
|
|
||||||
<runmultiplejobs>false</runmultiplejobs>
|
|
||||||
<numberofjobs>1</numberofjobs>
|
|
||||||
<dontact>false</dontact>
|
|
||||||
<makebin/>
|
|
||||||
<prio>0</prio>
|
|
||||||
<envvars/>
|
|
||||||
</make>
|
|
||||||
<qmake>
|
|
||||||
<savebehaviour>2</savebehaviour>
|
|
||||||
<replacePaths>false</replacePaths>
|
|
||||||
<disableDefaultOpts>true</disableDefaultOpts>
|
|
||||||
</qmake>
|
|
||||||
</kdevtrollproject>
|
|
||||||
<cppsupportpart>
|
|
||||||
<filetemplates>
|
|
||||||
<interfacesuffix>.h</interfacesuffix>
|
|
||||||
<implementationsuffix>.cpp</implementationsuffix>
|
|
||||||
</filetemplates>
|
|
||||||
</cppsupportpart>
|
|
||||||
<ctagspart>
|
|
||||||
<customArguments/>
|
|
||||||
<customTagfilePath>/home/ishanarora/projects/qbittorrent/tags</customTagfilePath>
|
|
||||||
<activeTagsFiles/>
|
|
||||||
</ctagspart>
|
|
||||||
<kdevdocumentation>
|
|
||||||
<projectdoc>
|
|
||||||
<docsystem/>
|
|
||||||
<docurl/>
|
|
||||||
<usermanualurl/>
|
|
||||||
</projectdoc>
|
|
||||||
</kdevdocumentation>
|
|
||||||
</kdevelop>
|
|
||||||
@@ -1,4 +1,6 @@
|
|||||||
TEMPLATE = subdirs
|
TEMPLATE = subdirs
|
||||||
|
|
||||||
|
include(conf.pri)
|
||||||
|
|
||||||
SUBDIRS += src
|
SUBDIRS += src
|
||||||
|
|
||||||
|
|||||||
@@ -2,21 +2,19 @@
|
|||||||
<name>qbittorrent</name>
|
<name>qbittorrent</name>
|
||||||
<profile>qbittorrent.pro</profile>
|
<profile>qbittorrent.pro</profile>
|
||||||
<moddir>qcm</moddir>
|
<moddir>qcm</moddir>
|
||||||
<datadir/>
|
<dep type='qt42'>
|
||||||
<dep type='qt4'>
|
|
||||||
<required/>
|
<required/>
|
||||||
</dep>
|
</dep>
|
||||||
<dep type='pkg-config'>
|
<dep type='libtorrent'>
|
||||||
<required/>
|
|
||||||
</dep>
|
|
||||||
<dep type='libtorrent-rasterbar'>
|
|
||||||
<required/>
|
<required/>
|
||||||
</dep>
|
</dep>
|
||||||
<dep type='libboost'>
|
<dep type='libboost'>
|
||||||
<required/>
|
<required/>
|
||||||
</dep>
|
</dep>
|
||||||
<dep type='libnotify'>
|
<dep type='libcurl'>
|
||||||
|
<required/>
|
||||||
</dep>
|
</dep>
|
||||||
<dep type='geoip-database'>
|
<dep type='python'>
|
||||||
|
<required/>
|
||||||
</dep>
|
</dep>
|
||||||
</qconf>
|
</qconf>
|
||||||
|
|||||||
@@ -1,37 +0,0 @@
|
|||||||
/*
|
|
||||||
-----BEGIN QCMOD-----
|
|
||||||
name: geoip-database
|
|
||||||
arg: with-geoip-database-embedded, Geoip Database will be embedded in qBittorrent executable (please follow instructions in src/geoip/README)
|
|
||||||
-----END QCMOD-----
|
|
||||||
*/
|
|
||||||
// see Conf::findPkgConfig
|
|
||||||
class qc_geoip_database : public ConfObj
|
|
||||||
{
|
|
||||||
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
|
|
||||||
conf->addDefine("WITH_GEOIP_EMBEDDED");
|
|
||||||
printf(" embedded and");
|
|
||||||
return true;
|
|
||||||
#ifdef Q_WS_X11
|
|
||||||
}
|
|
||||||
if(QFile::exists("/usr/share/GeoIP/GeoIP.dat") || QFile::exists("/usr/local/share/GeoIP/GeoIP.dat") || QFile::exists("/var/lib/GeoIP/GeoIP.dat"))
|
|
||||||
return true;
|
|
||||||
printf("\nWarning: GeoIP database was not found at /usr/share/GeoIP/GeoIP.dat or /var/lib/GeoIP/GeoIP.dat\nCountry resolution will be slow.");
|
|
||||||
return false;
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
};
|
|
||||||
61
qcm/libcurl.qcm
Normal file
@@ -0,0 +1,61 @@
|
|||||||
|
/*
|
||||||
|
-----BEGIN QCMOD-----
|
||||||
|
name: libcurl
|
||||||
|
arg: with-libcurl-inc=[path], Path to libcurl include files
|
||||||
|
arg: with-libcurl-lib=[path], Path to libcurl library files
|
||||||
|
-----END QCMOD-----
|
||||||
|
*/
|
||||||
|
class qc_libcurl : public ConfObj
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
qc_libcurl(Conf *c) : ConfObj(c) {}
|
||||||
|
QString name() const { return "libcurl"; }
|
||||||
|
QString shortname() const { return "libcurl"; }
|
||||||
|
bool exec(){
|
||||||
|
QString s;
|
||||||
|
s = conf->getenv("QC_WITH_LIBCURL_INC");
|
||||||
|
if(!s.isEmpty()) {
|
||||||
|
if(!conf->checkHeader(s, "curl/curl.h")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
QStringList sl;
|
||||||
|
sl << "/usr/include";
|
||||||
|
sl << "/usr/local/include";
|
||||||
|
bool found = false;
|
||||||
|
foreach(s, sl){
|
||||||
|
if(conf->checkHeader(s, "curl/curl.h")){
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!found) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
conf->addIncludePath(s);
|
||||||
|
|
||||||
|
s = conf->getenv("QC_WITH_LIBCURL_LIB");
|
||||||
|
if(!s.isEmpty()) {
|
||||||
|
if(!conf->checkLibrary(s, "curl")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
conf->addLib(QString("-L") + s);
|
||||||
|
}else{
|
||||||
|
QStringList sl;
|
||||||
|
sl << "/usr/lib/";
|
||||||
|
sl << "/usr/local/lib/";
|
||||||
|
bool found = false;
|
||||||
|
foreach(s, sl){
|
||||||
|
if(conf->checkLibrary(s, "curl")){
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!found) return false;
|
||||||
|
conf->addLib(QString("-L") + s);
|
||||||
|
}
|
||||||
|
conf->addLib("-lcurl");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -1,76 +0,0 @@
|
|||||||
/*
|
|
||||||
-----BEGIN QCMOD-----
|
|
||||||
name: libmagick
|
|
||||||
arg: with-libmagick-inc=[path], Path to libmagick++ include files
|
|
||||||
arg: with-libmagick-lib=[path], Path to libmagick++ library files
|
|
||||||
-----END QCMOD-----
|
|
||||||
*/
|
|
||||||
#include <QProcess>
|
|
||||||
class qc_libmagick : public ConfObj
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
qc_libmagick(Conf *c) : ConfObj(c) {}
|
|
||||||
QString name() const { return "ImageMagick library (libmagick++)"; }
|
|
||||||
QString shortname() const { return "libmagick++"; }
|
|
||||||
QString checkString() const {
|
|
||||||
if(!conf->getenv("QC_DISABLE_libmagick").isEmpty())
|
|
||||||
return "";
|
|
||||||
return ConfObj::checkString();
|
|
||||||
}
|
|
||||||
bool exec(){
|
|
||||||
if(!conf->getenv("QC_DISABLE_libmagick").isEmpty())
|
|
||||||
return false;
|
|
||||||
QString s;
|
|
||||||
s = conf->getenv("QC_WITH_LIBMAGICK_INC");
|
|
||||||
if(!s.isEmpty()) {
|
|
||||||
if(!conf->checkHeader(s, "Magick++.h")) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}else{
|
|
||||||
QStringList sl;
|
|
||||||
sl << "/usr/include";
|
|
||||||
sl << "/usr/local/include";
|
|
||||||
bool found = false;
|
|
||||||
foreach(s, sl){
|
|
||||||
if(conf->checkHeader(s, "Magick++.h")){
|
|
||||||
found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!found)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
conf->addIncludePath(s);
|
|
||||||
|
|
||||||
s = conf->getenv("QC_WITH_LIBMAGICK_LIB");
|
|
||||||
if(!s.isEmpty()) {
|
|
||||||
if(!conf->checkLibrary(s, "Magick++")) {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}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, "Magick++")) {
|
|
||||||
found = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
if(!found)
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
conf->addLib(QString("-L") + s);
|
|
||||||
QString out = "";
|
|
||||||
QStringList params;
|
|
||||||
params << "--libs";
|
|
||||||
qconf->doCommand("Magick++-config", params, &out);
|
|
||||||
out = out.replace("\n", "");
|
|
||||||
conf->addLib(result.data());
|
|
||||||
conf->addDefine("HAVE_MAGICK");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -1,49 +0,0 @@
|
|||||||
/*
|
|
||||||
-----BEGIN QCMOD-----
|
|
||||||
name: libnotify
|
|
||||||
-----END QCMOD-----
|
|
||||||
*/
|
|
||||||
// see Conf::findPkgConfig
|
|
||||||
class qc_libnotify : public ConfObj
|
|
||||||
{
|
|
||||||
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;
|
|
||||||
VersionMode mode = VersionMin;
|
|
||||||
if(conf->findPkgConfig("libnotify", mode, req_ver, &version, &incs, &libs, &other)) {
|
|
||||||
conf->addDefine("WITH_LIBNOTIFY");
|
|
||||||
for(int n = 0; n < incs.count(); ++n)
|
|
||||||
conf->addIncludePath(incs[n]);
|
|
||||||
if(!libs.isEmpty())
|
|
||||||
conf->addLib(libs);
|
|
||||||
QStringList incs2;
|
|
||||||
QString req_ver2 = "2.0";
|
|
||||||
QString version2, libs2, other2;
|
|
||||||
if(conf->findPkgConfig("glib-2.0", mode, req_ver2, &version2, &incs2, &libs2, &other2)) {
|
|
||||||
for(int n = 0; n < incs2.count(); ++n)
|
|
||||||
conf->addIncludePath(incs2[n]);
|
|
||||||
if(!libs2.isEmpty())
|
|
||||||
conf->addLib(libs2);
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
@@ -1,31 +0,0 @@
|
|||||||
/*
|
|
||||||
-----BEGIN QCMOD-----
|
|
||||||
name: libtorrent-rasterbar
|
|
||||||
-----END QCMOD-----
|
|
||||||
*/
|
|
||||||
// see Conf::findPkgConfig
|
|
||||||
class qc_libtorrent_rasterbar : public ConfObj
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
|
|
||||||
QString name() const { return "libtorrent-rasterbar >= 0.14.4"; }
|
|
||||||
QString shortname() const { return "libtorrent-rasterbar"; }
|
|
||||||
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");
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
};
|
|
||||||
68
qcm/libtorrent.qcm
Normal file
@@ -0,0 +1,68 @@
|
|||||||
|
/*
|
||||||
|
-----BEGIN QCMOD-----
|
||||||
|
name: libtorrent
|
||||||
|
arg: with-libtorrent-inc=[path], Path to libtorrent include files
|
||||||
|
arg: with-libtorrent-lib=[path], Path to libtorrent library files
|
||||||
|
-----END QCMOD-----
|
||||||
|
*/
|
||||||
|
class qc_libtorrent : public ConfObj
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
qc_libtorrent(Conf *c) : ConfObj(c) {}
|
||||||
|
QString name() const { return "libtorrent >= 0.11 (>= 0.12 ADVISED)"; }
|
||||||
|
QString shortname() const { return "libtorrent"; }
|
||||||
|
bool exec(){
|
||||||
|
QString s;
|
||||||
|
s = conf->getenv("QC_WITH_LIBTORRENT_INC");
|
||||||
|
if(!s.isEmpty()) {
|
||||||
|
if(!conf->checkHeader(s, "libtorrent/kademlia/node.hpp")){
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")) {
|
||||||
|
qWarning("Libtorrent >= v0.12 was not detected, PeX will be disabled.");
|
||||||
|
conf->addDefine("NO_PEX");
|
||||||
|
}
|
||||||
|
}else{
|
||||||
|
QStringList sl;
|
||||||
|
sl << "/usr/include";
|
||||||
|
sl << "/usr/local/include";
|
||||||
|
bool found = false;
|
||||||
|
foreach(s, sl){
|
||||||
|
if(conf->checkHeader(s, "libtorrent/kademlia/node.hpp")){
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!found) return false;
|
||||||
|
if(!conf->checkHeader(s, "libtorrent/extensions/ut_pex.hpp")){
|
||||||
|
qWarning("Libtorrent >= v0.12 was not detected, PeX will be disabled.");
|
||||||
|
conf->addDefine("NO_PEX");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
conf->addIncludePath(s);
|
||||||
|
conf->addIncludePath(s+QDir::separator()+"libtorrent");
|
||||||
|
|
||||||
|
s = conf->getenv("QC_WITH_LIBTORRENT_LIB");
|
||||||
|
if(!s.isEmpty()) {
|
||||||
|
if(!conf->checkLibrary(s, "torrent")) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
conf->addLib(QString("-L") + s);
|
||||||
|
}else{
|
||||||
|
QStringList sl;
|
||||||
|
sl << "/usr/lib/";
|
||||||
|
sl << "/usr/local/lib/";
|
||||||
|
bool found = false;
|
||||||
|
foreach(s, sl){
|
||||||
|
if(conf->checkLibrary(s, "torrent")){
|
||||||
|
found = true;
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if(!found) return false;
|
||||||
|
conf->addLib(QString("-L") + s);
|
||||||
|
}
|
||||||
|
//conf->addLib("-ltorrent");
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
};
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
/*
|
|
||||||
-----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();
|
|
||||||
}
|
|
||||||
};
|
|
||||||
19
qcm/python.qcm
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
/*
|
||||||
|
-----BEGIN QCMOD-----
|
||||||
|
name: python
|
||||||
|
-----END QCMOD-----
|
||||||
|
*/
|
||||||
|
class qc_python : public ConfObj
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
qc_python(Conf *c) : ConfObj(c) {}
|
||||||
|
QString name() const { return "python >= 2.3"; }
|
||||||
|
QString shortname() const { return "python"; }
|
||||||
|
bool exec(){
|
||||||
|
int r = conf->doCommand("python testpython.py");
|
||||||
|
if(r == 0)
|
||||||
|
return true;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
};
|
||||||
24
qcm/qt4.qcm
@@ -1,24 +0,0 @@
|
|||||||
/*
|
|
||||||
-----BEGIN QCMOD-----
|
|
||||||
name: Qt >= 4.4
|
|
||||||
arg: disable-gui, Disable qBittorrent Graphical user interface for headless running
|
|
||||||
-----END QCMOD-----
|
|
||||||
*/
|
|
||||||
class qc_qt4 : public ConfObj
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
qc_qt4(Conf *c) : ConfObj(c) {}
|
|
||||||
QString name() const { return "Qt >= 4.4"; }
|
|
||||||
QString shortname() const { return "Qt 4.4"; }
|
|
||||||
bool exec()
|
|
||||||
{
|
|
||||||
if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
|
|
||||||
conf->addDefine("DISABLE_GUI");
|
|
||||||
}
|
|
||||||
if(QT_VERSION >= 0x040500) {
|
|
||||||
conf->addDefine("QT_4_5");
|
|
||||||
}
|
|
||||||
return(QT_VERSION >= 0x040400);
|
|
||||||
|
|
||||||
}
|
|
||||||
};
|
|
||||||
16
qcm/qt42.qcm
Normal file
@@ -0,0 +1,16 @@
|
|||||||
|
/*
|
||||||
|
-----BEGIN QCMOD-----
|
||||||
|
name: Qt >= 4.2
|
||||||
|
-----END QCMOD-----
|
||||||
|
*/
|
||||||
|
class qc_qt42 : public ConfObj
|
||||||
|
{
|
||||||
|
public:
|
||||||
|
qc_qt42(Conf *c) : ConfObj(c) {}
|
||||||
|
QString name() const { return "Qt >= 4.2"; }
|
||||||
|
QString shortname() const { return "qt42"; }
|
||||||
|
bool exec()
|
||||||
|
{
|
||||||
|
return(QT_VERSION >= 0x040200);
|
||||||
|
}
|
||||||
|
};
|
||||||
164
src/DLListDelegate.h
Normal file
@@ -0,0 +1,164 @@
|
|||||||
|
/*
|
||||||
|
* Bittorrent Client using Qt4 and libtorrent.
|
||||||
|
* Copyright (C) 2006 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.
|
||||||
|
*
|
||||||
|
* Contact : chris@qbittorrent.org
|
||||||
|
*/
|
||||||
|
|
||||||
|
#ifndef DLLISTDELEGATE_H
|
||||||
|
#define DLLISTDELEGATE_H
|
||||||
|
|
||||||
|
#include <QAbstractItemDelegate>
|
||||||
|
#include <QModelIndex>
|
||||||
|
#include <QPainter>
|
||||||
|
#include <QStyleOptionProgressBarV2>
|
||||||
|
#include <QProgressBar>
|
||||||
|
#include <QApplication>
|
||||||
|
#include "misc.h"
|
||||||
|
|
||||||
|
// Defines for download list list columns
|
||||||
|
#define NAME 0
|
||||||
|
#define SIZE 1
|
||||||
|
#define PROGRESS 2
|
||||||
|
#define DLSPEED 3
|
||||||
|
#define UPSPEED 4
|
||||||
|
#define SEEDSLEECH 5
|
||||||
|
#define STATUS 6
|
||||||
|
#define ETA 7
|
||||||
|
#define HASH 8
|
||||||
|
|
||||||
|
class DLListDelegate: public QAbstractItemDelegate {
|
||||||
|
Q_OBJECT
|
||||||
|
|
||||||
|
public:
|
||||||
|
DLListDelegate(QObject *parent=0) : QAbstractItemDelegate(parent){}
|
||||||
|
|
||||||
|
~DLListDelegate(){}
|
||||||
|
|
||||||
|
void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const{
|
||||||
|
QStyleOptionViewItem opt = option;
|
||||||
|
char tmp[MAX_CHAR_TMP];
|
||||||
|
// set text color
|
||||||
|
QVariant value = index.data(Qt::TextColorRole);
|
||||||
|
if (value.isValid() && qvariant_cast<QColor>(value).isValid()){
|
||||||
|
opt.palette.setColor(QPalette::Text, qvariant_cast<QColor>(value));
|
||||||
|
}
|
||||||
|
QPalette::ColorGroup cg = option.state & QStyle::State_Enabled
|
||||||
|
? QPalette::Normal : QPalette::Disabled;
|
||||||
|
if (option.state & QStyle::State_Selected){
|
||||||
|
painter->setPen(opt.palette.color(cg, QPalette::HighlightedText));
|
||||||
|
}else{
|
||||||
|
painter->setPen(opt.palette.color(cg, QPalette::Text));
|
||||||
|
}
|
||||||
|
// draw the background color
|
||||||
|
if(index.column() != PROGRESS){
|
||||||
|
if (option.showDecorationSelected && (option.state & QStyle::State_Selected)){
|
||||||
|
if (cg == QPalette::Normal && !(option.state & QStyle::State_Active)){
|
||||||
|
cg = QPalette::Inactive;
|
||||||
|
}
|
||||||
|
painter->fillRect(option.rect, option.palette.brush(cg, QPalette::Highlight));
|
||||||
|
}else{
|
||||||
|
value = index.data(Qt::BackgroundColorRole);
|
||||||
|
if (value.isValid() && qvariant_cast<QColor>(value).isValid()){
|
||||||
|
painter->fillRect(option.rect, qvariant_cast<QColor>(value));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
switch(index.column()){
|
||||||
|
case SIZE:
|
||||||
|
painter->drawText(option.rect, Qt::AlignCenter, misc::friendlyUnit(index.data().toLongLong()));
|
||||||
|
break;
|
||||||
|
case ETA:
|
||||||
|
painter->drawText(option.rect, Qt::AlignCenter, misc::userFriendlyDuration(index.data().toLongLong()));
|
||||||
|
break;
|
||||||
|
case UPSPEED:
|
||||||
|
case DLSPEED:{
|
||||||
|
float speed = index.data().toDouble();
|
||||||
|
snprintf(tmp, MAX_CHAR_TMP, "%.1f", speed/1024.);
|
||||||
|
painter->drawText(option.rect, Qt::AlignCenter, QString(tmp)+" "+tr("KiB/s"));
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case PROGRESS:{
|
||||||
|
QStyleOptionProgressBarV2 newopt;
|
||||||
|
float progress;
|
||||||
|
progress = index.data().toDouble()*100.;
|
||||||
|
snprintf(tmp, MAX_CHAR_TMP, "%.1f", progress);
|
||||||
|
newopt.rect = opt.rect;
|
||||||
|
newopt.text = QString(tmp)+"%";
|
||||||
|
newopt.progress = (int)progress;
|
||||||
|
newopt.maximum = 100;
|
||||||
|
newopt.minimum = 0;
|
||||||
|
newopt.state |= QStyle::State_Enabled;
|
||||||
|
newopt.textVisible = false;
|
||||||
|
QApplication::style()->drawControl(QStyle::CE_ProgressBar, &newopt,
|
||||||
|
painter);
|
||||||
|
//We prefer to display text manually to control color/font/boldness
|
||||||
|
if (option.state & QStyle::State_Selected){
|
||||||
|
opt.palette.setColor(QPalette::Text, QColor("grey"));
|
||||||
|
painter->setPen(opt.palette.color(cg, QPalette::Text));
|
||||||
|
}
|
||||||
|
painter->drawText(option.rect, Qt::AlignCenter, newopt.text);
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
case NAME:{
|
||||||
|
// decoration
|
||||||
|
value = index.data(Qt::DecorationRole);
|
||||||
|
QPixmap pixmap = qvariant_cast<QIcon>(value).pixmap(option.decorationSize, option.state & QStyle::State_Enabled ? QIcon::Normal : QIcon::Disabled, option.state & QStyle::State_Open ? QIcon::On : QIcon::Off);
|
||||||
|
QRect pixmapRect = (pixmap.isNull() ? QRect(0, 0, 0, 0): QRect(QPoint(0, 0), option.decorationSize));
|
||||||
|
if (pixmapRect.isValid()){
|
||||||
|
QPoint p = QStyle::alignedRect(option.direction, Qt::AlignLeft, pixmap.size(), option.rect).topLeft();
|
||||||
|
painter->drawPixmap(p, pixmap);
|
||||||
|
}
|
||||||
|
painter->drawText(option.rect.translated(pixmap.size().width(), 0), Qt::AlignLeft, index.data().toString());
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
default:
|
||||||
|
painter->drawText(option.rect, Qt::AlignCenter, index.data().toString());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
QSize sizeHint(const QStyleOptionViewItem & option, const QModelIndex & index) const{
|
||||||
|
QVariant value = index.data(Qt::FontRole);
|
||||||
|
QFont fnt = value.isValid() ? qvariant_cast<QFont>(value) : option.font;
|
||||||
|
QFontMetrics fontMetrics(fnt);
|
||||||
|
const QString text = index.data(Qt::DisplayRole).toString();
|
||||||
|
QRect textRect = QRect(0, 0, 0, fontMetrics.lineSpacing() * (text.count(QLatin1Char('\n')) + 1));
|
||||||
|
return textRect.size();
|
||||||
|
}
|
||||||
|
|
||||||
|
// QWidget* createEditor(QWidget * parent, const QStyleOptionViewItem& /*option*/, const QModelIndex & index) const{
|
||||||
|
// if(index.column() == PROGRESS){
|
||||||
|
// QProgressBar *progressBar = new QProgressBar(parent);
|
||||||
|
// progressBar->setRange(0,100);
|
||||||
|
// progressBar->installEventFilter(const_cast<DLListDelegate*>(this));
|
||||||
|
// return progressBar;
|
||||||
|
// }
|
||||||
|
// return 0;
|
||||||
|
// }
|
||||||
|
// void setEditorData(QWidget *editor, const QModelIndex &index) const{
|
||||||
|
// QProgressBar *progressBar = static_cast<QProgressBar*>(editor);
|
||||||
|
// float progress = index.data().toDouble();
|
||||||
|
// progressBar->setValue((int)(progress*100.));
|
||||||
|
// }
|
||||||
|
// void updateEditorGeometry(QWidget *editor, const QStyleOptionViewItem &option, const QModelIndex & index) const{
|
||||||
|
// if(index.column() == PROGRESS){
|
||||||
|
// editor->setGeometry(option.rect);
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
};
|
||||||
|
|
||||||
|
#endif
|
||||||
2258
src/GUI.cpp
282
src/GUI.h
@@ -16,148 +16,188 @@
|
|||||||
* 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
|
||||||
*/
|
*/
|
||||||
|
|
||||||
#ifndef GUI_H
|
#ifndef GUI_H
|
||||||
#define GUI_H
|
#define GUI_H
|
||||||
|
|
||||||
|
#include <QMainWindow>
|
||||||
#include <QProcess>
|
#include <QProcess>
|
||||||
|
#include <QTcpServer>
|
||||||
#include <QSystemTrayIcon>
|
#include <QSystemTrayIcon>
|
||||||
#include <QPointer>
|
|
||||||
#include "ui_mainwindow.h"
|
|
||||||
#include "qtorrenthandle.h"
|
|
||||||
|
|
||||||
enum TabIndex{TAB_TRANSFER, TAB_SEARCH, TAB_RSS};
|
#include <libtorrent/entry.hpp>
|
||||||
|
#include <libtorrent/bencode.hpp>
|
||||||
|
#include <libtorrent/session.hpp>
|
||||||
|
#include <libtorrent/fingerprint.hpp>
|
||||||
|
#include <libtorrent/session_settings.hpp>
|
||||||
|
#include <libtorrent/identify_client.hpp>
|
||||||
|
#include <libtorrent/alert_types.hpp>
|
||||||
|
|
||||||
class Bittorrent;
|
#include "ui_MainWindow.h"
|
||||||
|
#include "options_imp.h"
|
||||||
|
#include "about_imp.h"
|
||||||
|
#include "previewSelect.h"
|
||||||
|
#include "trackerLogin.h"
|
||||||
|
#include "bittorrent.h"
|
||||||
|
|
||||||
|
|
||||||
|
#define TIME_TRAY_BALLOON 5000
|
||||||
|
|
||||||
|
class createtorrent;
|
||||||
class QTimer;
|
class QTimer;
|
||||||
|
class QCompleter;
|
||||||
|
class DLListDelegate;
|
||||||
|
class SearchListDelegate;
|
||||||
|
class downloadThread;
|
||||||
class downloadFromURL;
|
class downloadFromURL;
|
||||||
class SearchEngine;
|
class QTcpSocket;
|
||||||
class QLocalServer;
|
|
||||||
class QCloseEvent;
|
class QCloseEvent;
|
||||||
class RSSImp;
|
|
||||||
class QShortcut;
|
using namespace libtorrent;
|
||||||
class about;
|
namespace fs = boost::filesystem;
|
||||||
class options_imp;
|
|
||||||
class QTabWidget;
|
|
||||||
class TransferListWidget;
|
|
||||||
class TransferListFiltersWidget;
|
|
||||||
class QSplitter;
|
|
||||||
class PropertiesWidget;
|
|
||||||
class StatusBar;
|
|
||||||
|
|
||||||
class GUI : public QMainWindow, private Ui::MainWindow{
|
class GUI : public QMainWindow, private Ui::MainWindow{
|
||||||
Q_OBJECT
|
Q_OBJECT
|
||||||
|
|
||||||
private:
|
private:
|
||||||
// Bittorrent
|
// Bittorrent
|
||||||
Bittorrent *BTSession;
|
bittorrent BTSession;
|
||||||
QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed?
|
QTimer *checkConnect;
|
||||||
// GUI related
|
QHash<QString, QStringList> trackerErrors;
|
||||||
QTimer *guiUpdater;
|
QList<QPair<torrent_handle,std::string> > unauthenticated_trackers;
|
||||||
QTabWidget *tabs;
|
downloadFromURL *downloadFromURLDialog;
|
||||||
StatusBar *status_bar;
|
// GUI related
|
||||||
QPointer<options_imp> options;
|
options_imp *options;
|
||||||
QPointer<QSystemTrayIcon> systrayIcon;
|
createtorrent *createWindow;
|
||||||
QPointer<QTimer> systrayCreator;
|
QTimer *refresher;
|
||||||
QMenu *myTrayIconMenu;
|
QSystemTrayIcon *myTrayIcon;
|
||||||
TransferListWidget *transferList;
|
QMenu *myTrayIconMenu;
|
||||||
TransferListFiltersWidget *transferListFilters;
|
about *aboutdlg;
|
||||||
PropertiesWidget *properties;
|
QStandardItemModel *DLListModel;
|
||||||
bool displaySpeedInTitle;
|
DLListDelegate *DLDelegate;
|
||||||
bool force_exit;
|
QStandardItemModel *SearchListModel;
|
||||||
// Keyboard shortcuts
|
SearchListDelegate *SearchDelegate;
|
||||||
QShortcut *switchSearchShortcut;
|
unsigned int nbTorrents;
|
||||||
QShortcut *switchSearchShortcut2;
|
QLabel *connecStatusLblIcon;
|
||||||
QShortcut *switchTransferShortcut;
|
bool force_exit;
|
||||||
QShortcut *switchRSSShortcut;
|
// Preview
|
||||||
// Widgets
|
previewSelect *previewSelection;
|
||||||
QAction *prioSeparator;
|
QProcess *previewProcess;
|
||||||
QAction *prioSeparator2;
|
// Search related
|
||||||
QSplitter *hSplitter;
|
QHash<QString, QString> searchResultsUrls;
|
||||||
QSplitter *vSplitter;
|
QProcess *searchProcess;
|
||||||
// Search
|
bool search_stopped;
|
||||||
SearchEngine *searchEngine;
|
bool no_search_results;
|
||||||
// RSS
|
QByteArray search_result_line_truncated;
|
||||||
QPointer<RSSImp> rssWidget;
|
unsigned long nb_search_results;
|
||||||
// Misc
|
QTcpServer tcpServer;
|
||||||
QLocalServer *localServer;
|
QTcpSocket *clientConnection;
|
||||||
|
QCompleter *searchCompleter;
|
||||||
|
QStringList searchHistory;
|
||||||
|
|
||||||
protected slots:
|
protected slots:
|
||||||
// GUI related slots
|
// GUI related slots
|
||||||
void dropEvent(QDropEvent *event);
|
void dropEvent(QDropEvent *event);
|
||||||
void dragEnterEvent(QDragEnterEvent *event);
|
void dragEnterEvent(QDragEnterEvent *event);
|
||||||
void toggleVisibility(QSystemTrayIcon::ActivationReason e);
|
void toggleVisibility(QSystemTrayIcon::ActivationReason e);
|
||||||
void on_actionAbout_triggered();
|
void showAbout();
|
||||||
void on_actionCreate_torrent_triggered();
|
void setInfoBar(const QString& info, const QString& color="black");
|
||||||
void on_actionWebsite_triggered() const;
|
void updateDlList(bool force=false);
|
||||||
void on_actionBugReport_triggered() const;
|
void showCreateWindow();
|
||||||
void on_actionShow_console_triggered();
|
void clearLog();
|
||||||
void readParamsOnSocket();
|
void openqBTHomepage();
|
||||||
void acceptConnection();
|
void openqBTBugTracker();
|
||||||
void balloonClicked();
|
void readParamsOnSocket();
|
||||||
void writeSettings();
|
void acceptConnection();
|
||||||
void readSettings();
|
void saveCheckedSearchEngines(int) const;
|
||||||
void on_actionExit_triggered();
|
void saveColWidthDLList() const;
|
||||||
void createTrayIcon();
|
void saveColWidthSearchList() const;
|
||||||
void fullDiskError(QTorrentHandle& h, QString msg) const;
|
void loadCheckedSearchEngines();
|
||||||
void handleDownloadFromUrlFailure(QString, QString) const;
|
bool loadColWidthDLList();
|
||||||
void createSystrayDelayed();
|
bool loadColWidthSearchList();
|
||||||
void tab_changed(int);
|
void sortDownloadList(int index);
|
||||||
// Keyboard shortcuts
|
void sortDownloadListFloat(int index, Qt::SortOrder sortOrder);
|
||||||
void createKeyboardShortcuts();
|
void sortDownloadListString(int index, Qt::SortOrder sortOrder);
|
||||||
void displayTransferTab() const;
|
void sortSearchList(int index);
|
||||||
void displaySearchTab() const;
|
void sortSearchListInt(int index, Qt::SortOrder sortOrder);
|
||||||
void displayRSSTab() const;
|
void sortSearchListString(int index, Qt::SortOrder sortOrder);
|
||||||
// Torrent actions
|
void displayDLListMenu(const QPoint& pos);
|
||||||
void on_actionSet_global_upload_limit_triggered();
|
void selectGivenRow(const QModelIndex& index);
|
||||||
void on_actionSet_global_download_limit_triggered();
|
void togglePausedState(const QModelIndex& index);
|
||||||
void on_actionDocumentation_triggered() const;
|
void displayInfoBarMenu(const QPoint& pos);
|
||||||
void on_actionOpen_triggered();
|
void displayGUIMenu(const QPoint& pos);
|
||||||
void updateGUI();
|
void previewFileSelection();
|
||||||
void loadPreferences(bool configure_session=true);
|
void previewFile(const QString& filePath);
|
||||||
void processParams(const QStringList& params);
|
void cleanTempPreviewFile(int, QProcess::ExitStatus);
|
||||||
void addTorrent(QString path);
|
void balloonClicked();
|
||||||
void addUnauthenticatedTracker(QPair<QTorrentHandle,QString> tracker);
|
void writeSettings();
|
||||||
void processDownloadedFiles(QString path, QString url);
|
void readSettings();
|
||||||
void finishedTorrent(QTorrentHandle& h) const;
|
void forceExit();
|
||||||
// Options slots
|
// Torrent actions
|
||||||
void on_actionOptions_triggered();
|
void showProperties(const QModelIndex &index);
|
||||||
void optionsSaved();
|
void propertiesSelection();
|
||||||
// HTTP slots
|
void pauseSelection();
|
||||||
void on_actionDownload_from_URL_triggered();
|
void pauseAll();
|
||||||
|
void startSelection();
|
||||||
|
void resumeAll();
|
||||||
|
void askForTorrents();
|
||||||
|
void deletePermanently();
|
||||||
|
void deleteSelection();
|
||||||
|
void checkConnectionStatus();
|
||||||
|
void configureSession(bool deleteOptions);
|
||||||
|
void processParams(const QStringList& params);
|
||||||
|
void addUnauthenticatedTracker(QPair<torrent_handle,std::string> tracker);
|
||||||
|
void processScannedFiles(const QStringList& params);
|
||||||
|
void processDownloadedFiles(const QString& path, const QString& url);
|
||||||
|
void downloadFromURLList(const QStringList& urls);
|
||||||
|
void displayDownloadingUrlInfos(const QString& url);
|
||||||
|
// Search slots
|
||||||
|
void on_search_button_clicked();
|
||||||
|
void on_stop_search_button_clicked();
|
||||||
|
void on_clear_button_clicked();
|
||||||
|
void on_download_button_clicked();
|
||||||
|
void on_update_nova_button_clicked();
|
||||||
|
void appendSearchResult(const QString& line);
|
||||||
|
void searchFinished(int exitcode,QProcess::ExitStatus);
|
||||||
|
void readSearchOutput();
|
||||||
|
void searchStarted();
|
||||||
|
void downloadSelectedItem(const QModelIndex& index);
|
||||||
|
void startSearchHistory();
|
||||||
|
void saveSearchHistory();
|
||||||
|
// Utils slots
|
||||||
|
void setRowColor(int row, const QString& color, bool inDLList=true);
|
||||||
|
// Options slots
|
||||||
|
void showOptions();
|
||||||
|
void OptionsSaved(const QString& info, bool deleteOptions);
|
||||||
|
// HTTP slots
|
||||||
|
void askForTorrentUrl();
|
||||||
|
|
||||||
|
public slots:
|
||||||
|
void torrentAdded(const QString& path, torrent_handle& h, bool fastResume);
|
||||||
|
void torrentDuplicate(const QString& path);
|
||||||
|
void torrentCorrupted(const QString& path);
|
||||||
|
void finishedTorrent(torrent_handle& h);
|
||||||
|
void fullDiskError(torrent_handle& h);
|
||||||
|
void portListeningFailure();
|
||||||
|
void trackerError(const QString& hash, const QString& time, const QString& msg);
|
||||||
|
void trackerAuthenticationRequired(torrent_handle& h);
|
||||||
|
|
||||||
public slots:
|
protected:
|
||||||
void trackerAuthenticationRequired(QTorrentHandle& h);
|
void closeEvent(QCloseEvent *);
|
||||||
void setTabText(int index, QString text) const;
|
void hideEvent(QHideEvent *);
|
||||||
void showNotificationBaloon(QString title, QString msg) const;
|
|
||||||
void downloadFromURLList(const QStringList& urls);
|
|
||||||
|
|
||||||
protected:
|
public:
|
||||||
void closeEvent(QCloseEvent *);
|
// Construct / Destruct
|
||||||
void showEvent(QShowEvent *);
|
GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
|
||||||
bool event(QEvent * event);
|
~GUI();
|
||||||
void displayRSSTab(bool enable);
|
// Methods
|
||||||
|
int getRowFromHash(const QString& name) const;
|
||||||
public:
|
float getNovaVersion(const QString& novaPath) const;
|
||||||
// Construct / Destruct
|
QByteArray getNovaChangelog(const QString& novaPath) const;
|
||||||
GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
|
void updateNova() const;
|
||||||
~GUI();
|
QPoint screenCenter();
|
||||||
// Methods
|
|
||||||
int getCurrentTabIndex() const;
|
|
||||||
QPoint screenCenter() const;
|
|
||||||
TransferListWidget* getTransferList() const { return transferList; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|||||||
BIN
src/Icons/button_cancel.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
BIN
src/Icons/button_ok.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |
|
Before Width: | Height: | Size: 722 B |
|
Before Width: | Height: | Size: 750 B After Width: | Height: | Size: 750 B |
BIN
src/Icons/filter.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 473 B |
|
Before Width: | Height: | Size: 308 B |
|
Before Width: | Height: | Size: 1.1 KiB |
|
Before Width: | Height: | Size: 285 B |
|
Before Width: | Height: | Size: 373 B |
|
Before Width: | Height: | Size: 173 B |
|
Before Width: | Height: | Size: 583 B |
|
Before Width: | Height: | Size: 799 B |
|
Before Width: | Height: | Size: 686 B |
BIN
src/Icons/flags/china_hong_kong.png
Normal file
|
After Width: | Height: | Size: 558 B |
|
Before Width: | Height: | Size: 203 B |
|
Before Width: | Height: | Size: 479 B |
|
Before Width: | Height: | Size: 455 B |
|
Before Width: | Height: | Size: 314 B |
|
Before Width: | Height: | Size: 680 B |
|
Before Width: | Height: | Size: 172 B |
|
Before Width: | Height: | Size: 439 B |
|
Before Width: | Height: | Size: 400 B |
|
Before Width: | Height: | Size: 290 B |
|
Before Width: | Height: | Size: 190 B |
|
Before Width: | Height: | Size: 476 B |
|
Before Width: | Height: | Size: 185 B |
|
Before Width: | Height: | Size: 643 B |
|
Before Width: | Height: | Size: 402 B |
|
Before Width: | Height: | Size: 373 B |
|
Before Width: | Height: | Size: 679 B |
|
Before Width: | Height: | Size: 833 B |
|
Before Width: | Height: | Size: 680 B |
|
Before Width: | Height: | Size: 459 B |
|
Before Width: | Height: | Size: 372 B |
|
Before Width: | Height: | Size: 361 B |
|
Before Width: | Height: | Size: 773 B |
|
Before Width: | Height: | Size: 293 B |
|
Before Width: | Height: | Size: 333 B |
|
Before Width: | Height: | Size: 198 B |
|
Before Width: | Height: | Size: 248 B |
|
Before Width: | Height: | Size: 657 B |
BIN
src/Icons/home.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
|
Before Width: | Height: | Size: 248 B |
BIN
src/Icons/log.png
Normal file
|
After Width: | Height: | Size: 846 B |
|
Before Width: | Height: | Size: 7.0 KiB |
BIN
src/Icons/newmsg.png
Normal file
|
After Width: | Height: | Size: 1.4 KiB |