Compare commits
1 Commits
debian
...
release-2.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
c506a01dea |
7
.gitattributes
vendored
@@ -1,7 +0,0 @@
|
||||
core.eol=lf
|
||||
* text eol=lf
|
||||
*.zip binary
|
||||
*.png binary
|
||||
*.ico binary
|
||||
*.qm binary
|
||||
*.icns binary
|
||||
36
.gitignore
vendored
@@ -1,36 +0,0 @@
|
||||
src/gui/geoip/GeoIP.dat
|
||||
src/gui/geoip/GeoIP.dat.gz
|
||||
src/qbittorrent
|
||||
src/qbittorrent-nox
|
||||
src/release
|
||||
src/debug
|
||||
qbittorrent.pro.user*
|
||||
conf.pri
|
||||
Makefile*
|
||||
*.pyc
|
||||
*.log
|
||||
|
||||
# Compiled object files
|
||||
*.o
|
||||
*.pdb
|
||||
*.exe
|
||||
|
||||
# Generated MOC, resource and UI files
|
||||
moc_*.cpp
|
||||
moc_*.h
|
||||
qrc_*.cpp
|
||||
ui_*.h
|
||||
*.moc
|
||||
src/lang/qbittorrent_*.qm
|
||||
.DS_Store
|
||||
.qmake.stash
|
||||
src/qbittorrent.app
|
||||
*.dmg
|
||||
|
||||
#Autotools junk
|
||||
aclocal.m4
|
||||
autom4te.cache/*
|
||||
config.status
|
||||
src/icons/qbt-theme/build-icons/node_modules/
|
||||
src/icons/skin/build-icons/node_modules/
|
||||
src/icons/skin/build-icons/icons/*.png
|
||||
91
AUTHORS
Normal file
@@ -0,0 +1,91 @@
|
||||
Author:
|
||||
* 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>
|
||||
* Christian Kandeler <zambesi@users.sourceforge.net>
|
||||
|
||||
Code from other projects:
|
||||
* files src/ico.cpp src/ico.h
|
||||
copyright: Malte Starostik <malte@kde.org>
|
||||
license: LGPL
|
||||
|
||||
* files src/search_engine/socks.py
|
||||
copyright: Dan Haim <negativeiq@users.sourceforge.net>
|
||||
license: BSD
|
||||
|
||||
Images Authors:
|
||||
* files: src/Icons/*.png
|
||||
copyright: Gnome Icon Theme
|
||||
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 & Boyko Bankoff (emerge_life@users.sourceforge.net)
|
||||
- Catalan: Francisco Luque Contreras (frannoe@ya.com)
|
||||
- Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com)
|
||||
- Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com)
|
||||
- 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) and Oleh Prypin (blaxpirit@gmail.com)
|
||||
license: GPLv2
|
||||
354
COPYING
Normal file
@@ -0,0 +1,354 @@
|
||||
qBittorrent is licensed under the GNU General Public License version 2 with the
|
||||
addition of the following special exception:
|
||||
|
||||
In addition, as a special exception, the copyright holders give permission to
|
||||
link this program with the OpenSSL project's "OpenSSL" library (or with
|
||||
modified versions of it that use the same license as the "OpenSSL" library),
|
||||
and distribute the linked executables. You must obey the GNU General Public
|
||||
License in all respects for all of the code used other than "OpenSSL". If you
|
||||
modify file(s), you may extend this exception to your version of the file(s),
|
||||
but you are not obligated to do so. If you do not wish to do so, delete this
|
||||
exception statement from your version.
|
||||
|
||||
----------
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
Version 2, June 1991
|
||||
|
||||
Copyright (C) 1989, 1991 Free Software Foundation, Inc.
|
||||
51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
Everyone is permitted to copy and distribute verbatim copies
|
||||
of this license document, but changing it is not allowed.
|
||||
|
||||
Preamble
|
||||
|
||||
The licenses for most software are designed to take away your
|
||||
freedom to share and change it. By contrast, the GNU General Public
|
||||
License is intended to guarantee your freedom to share and change free
|
||||
software--to make sure the software is free for all its users. This
|
||||
General Public License applies to most of the Free Software
|
||||
Foundation's software and to any other program whose authors commit to
|
||||
using it. (Some other Free Software Foundation software is covered by
|
||||
the GNU Library General Public License instead.) You can apply it to
|
||||
your programs, too.
|
||||
|
||||
When we speak of free software, we are referring to freedom, not
|
||||
price. Our General Public Licenses are designed to make sure that you
|
||||
have the freedom to distribute copies of free software (and charge for
|
||||
this service if you wish), that you receive source code or can get it
|
||||
if you want it, that you can change the software or use pieces of it
|
||||
in new free programs; and that you know you can do these things.
|
||||
|
||||
To protect your rights, we need to make restrictions that forbid
|
||||
anyone to deny you these rights or to ask you to surrender the rights.
|
||||
These restrictions translate to certain responsibilities for you if you
|
||||
distribute copies of the software, or if you modify it.
|
||||
|
||||
For example, if you distribute copies of such a program, whether
|
||||
gratis or for a fee, you must give the recipients all the rights that
|
||||
you have. You must make sure that they, too, receive or can get the
|
||||
source code. And you must show them these terms so they know their
|
||||
rights.
|
||||
|
||||
We protect your rights with two steps: (1) copyright the software, and
|
||||
(2) offer you this license which gives you legal permission to copy,
|
||||
distribute and/or modify the software.
|
||||
|
||||
Also, for each author's protection and ours, we want to make certain
|
||||
that everyone understands that there is no warranty for this free
|
||||
software. If the software is modified by someone else and passed on, we
|
||||
want its recipients to know that what they have is not the original, so
|
||||
that any problems introduced by others will not reflect on the original
|
||||
authors' reputations.
|
||||
|
||||
Finally, any free program is threatened constantly by software
|
||||
patents. We wish to avoid the danger that redistributors of a free
|
||||
program will individually obtain patent licenses, in effect making the
|
||||
program proprietary. To prevent this, we have made it clear that any
|
||||
patent must be licensed for everyone's free use or not licensed at all.
|
||||
|
||||
The precise terms and conditions for copying, distribution and
|
||||
modification follow.
|
||||
|
||||
GNU GENERAL PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. This License applies to any program or other work which contains
|
||||
a notice placed by the copyright holder saying it may be distributed
|
||||
under the terms of this General Public License. The "Program", below,
|
||||
refers to any such program or work, and a "work based on the Program"
|
||||
means either the Program or any derivative work under copyright law:
|
||||
that is to say, a work containing the Program or a portion of it,
|
||||
either verbatim or with modifications and/or translated into another
|
||||
language. (Hereinafter, translation is included without limitation in
|
||||
the term "modification".) Each licensee is addressed as "you".
|
||||
|
||||
Activities other than copying, distribution and modification are not
|
||||
covered by this License; they are outside its scope. The act of
|
||||
running the Program is not restricted, and the output from the Program
|
||||
is covered only if its contents constitute a work based on the
|
||||
Program (independent of having been made by running the Program).
|
||||
Whether that is true depends on what the Program does.
|
||||
|
||||
1. You may copy and distribute verbatim copies of the Program's
|
||||
source code as you receive it, in any medium, provided that you
|
||||
conspicuously and appropriately publish on each copy an appropriate
|
||||
copyright notice and disclaimer of warranty; keep intact all the
|
||||
notices that refer to this License and to the absence of any warranty;
|
||||
and give any other recipients of the Program a copy of this License
|
||||
along with the Program.
|
||||
|
||||
You may charge a fee for the physical act of transferring a copy, and
|
||||
you may at your option offer warranty protection in exchange for a fee.
|
||||
|
||||
2. You may modify your copy or copies of the Program or any portion
|
||||
of it, thus forming a work based on the Program, and copy and
|
||||
distribute such modifications or work under the terms of Section 1
|
||||
above, provided that you also meet all of these conditions:
|
||||
|
||||
a) You must cause the modified files to carry prominent notices
|
||||
stating that you changed the files and the date of any change.
|
||||
|
||||
b) You must cause any work that you distribute or publish, that in
|
||||
whole or in part contains or is derived from the Program or any
|
||||
part thereof, to be licensed as a whole at no charge to all third
|
||||
parties under the terms of this License.
|
||||
|
||||
c) If the modified program normally reads commands interactively
|
||||
when run, you must cause it, when started running for such
|
||||
interactive use in the most ordinary way, to print or display an
|
||||
announcement including an appropriate copyright notice and a
|
||||
notice that there is no warranty (or else, saying that you provide
|
||||
a warranty) and that users may redistribute the program under
|
||||
these conditions, and telling the user how to view a copy of this
|
||||
License. (Exception: if the Program itself is interactive but
|
||||
does not normally print such an announcement, your work based on
|
||||
the Program is not required to print an announcement.)
|
||||
|
||||
These requirements apply to the modified work as a whole. If
|
||||
identifiable sections of that work are not derived from the Program,
|
||||
and can be reasonably considered independent and separate works in
|
||||
themselves, then this License, and its terms, do not apply to those
|
||||
sections when you distribute them as separate works. But when you
|
||||
distribute the same sections as part of a whole which is a work based
|
||||
on the Program, the distribution of the whole must be on the terms of
|
||||
this License, whose permissions for other licensees extend to the
|
||||
entire whole, and thus to each and every part regardless of who wrote it.
|
||||
|
||||
Thus, it is not the intent of this section to claim rights or contest
|
||||
your rights to work written entirely by you; rather, the intent is to
|
||||
exercise the right to control the distribution of derivative or
|
||||
collective works based on the Program.
|
||||
|
||||
In addition, mere aggregation of another work not based on the Program
|
||||
with the Program (or with a work based on the Program) on a volume of
|
||||
a storage or distribution medium does not bring the other work under
|
||||
the scope of this License.
|
||||
|
||||
3. You may copy and distribute the Program (or a work based on it,
|
||||
under Section 2) in object code or executable form under the terms of
|
||||
Sections 1 and 2 above provided that you also do one of the following:
|
||||
|
||||
a) Accompany it with the complete corresponding machine-readable
|
||||
source code, which must be distributed under the terms of Sections
|
||||
1 and 2 above on a medium customarily used for software interchange; or,
|
||||
|
||||
b) Accompany it with a written offer, valid for at least three
|
||||
years, to give any third party, for a charge no more than your
|
||||
cost of physically performing source distribution, a complete
|
||||
machine-readable copy of the corresponding source code, to be
|
||||
distributed under the terms of Sections 1 and 2 above on a medium
|
||||
customarily used for software interchange; or,
|
||||
|
||||
c) Accompany it with the information you received as to the offer
|
||||
to distribute corresponding source code. (This alternative is
|
||||
allowed only for noncommercial distribution and only if you
|
||||
received the program in object code or executable form with such
|
||||
an offer, in accord with Subsection b above.)
|
||||
|
||||
The source code for a work means the preferred form of the work for
|
||||
making modifications to it. For an executable work, complete source
|
||||
code means all the source code for all modules it contains, plus any
|
||||
associated interface definition files, plus the scripts used to
|
||||
control compilation and installation of the executable. However, as a
|
||||
special exception, the source code distributed need not include
|
||||
anything that is normally distributed (in either source or binary
|
||||
form) with the major components (compiler, kernel, and so on) of the
|
||||
operating system on which the executable runs, unless that component
|
||||
itself accompanies the executable.
|
||||
|
||||
If distribution of executable or object code is made by offering
|
||||
access to copy from a designated place, then offering equivalent
|
||||
access to copy the source code from the same place counts as
|
||||
distribution of the source code, even though third parties are not
|
||||
compelled to copy the source along with the object code.
|
||||
|
||||
4. You may not copy, modify, sublicense, or distribute the Program
|
||||
except as expressly provided under this License. Any attempt
|
||||
otherwise to copy, modify, sublicense or distribute the Program is
|
||||
void, and will automatically terminate your rights under this License.
|
||||
However, parties who have received copies, or rights, from you under
|
||||
this License will not have their licenses terminated so long as such
|
||||
parties remain in full compliance.
|
||||
|
||||
5. You are not required to accept this License, since you have not
|
||||
signed it. However, nothing else grants you permission to modify or
|
||||
distribute the Program or its derivative works. These actions are
|
||||
prohibited by law if you do not accept this License. Therefore, by
|
||||
modifying or distributing the Program (or any work based on the
|
||||
Program), you indicate your acceptance of this License to do so, and
|
||||
all its terms and conditions for copying, distributing or modifying
|
||||
the Program or works based on it.
|
||||
|
||||
6. Each time you redistribute the Program (or any work based on the
|
||||
Program), the recipient automatically receives a license from the
|
||||
original licensor to copy, distribute or modify the Program subject to
|
||||
these terms and conditions. You may not impose any further
|
||||
restrictions on the recipients' exercise of the rights granted herein.
|
||||
You are not responsible for enforcing compliance by third parties to
|
||||
this License.
|
||||
|
||||
7. If, as a consequence of a court judgment or allegation of patent
|
||||
infringement or for any other reason (not limited to patent issues),
|
||||
conditions are imposed on you (whether by court order, agreement or
|
||||
otherwise) that contradict the conditions of this License, they do not
|
||||
excuse you from the conditions of this License. If you cannot
|
||||
distribute so as to satisfy simultaneously your obligations under this
|
||||
License and any other pertinent obligations, then as a consequence you
|
||||
may not distribute the Program at all. For example, if a patent
|
||||
license would not permit royalty-free redistribution of the Program by
|
||||
all those who receive copies directly or indirectly through you, then
|
||||
the only way you could satisfy both it and this License would be to
|
||||
refrain entirely from distribution of the Program.
|
||||
|
||||
If any portion of this section is held invalid or unenforceable under
|
||||
any particular circumstance, the balance of the section is intended to
|
||||
apply and the section as a whole is intended to apply in other
|
||||
circumstances.
|
||||
|
||||
It is not the purpose of this section to induce you to infringe any
|
||||
patents or other property right claims or to contest validity of any
|
||||
such claims; this section has the sole purpose of protecting the
|
||||
integrity of the free software distribution system, which is
|
||||
implemented by public license practices. Many people have made
|
||||
generous contributions to the wide range of software distributed
|
||||
through that system in reliance on consistent application of that
|
||||
system; it is up to the author/donor to decide if he or she is willing
|
||||
to distribute software through any other system and a licensee cannot
|
||||
impose that choice.
|
||||
|
||||
This section is intended to make thoroughly clear what is believed to
|
||||
be a consequence of the rest of this License.
|
||||
|
||||
8. If the distribution and/or use of the Program is restricted in
|
||||
certain countries either by patents or by copyrighted interfaces, the
|
||||
original copyright holder who places the Program under this License
|
||||
may add an explicit geographical distribution limitation excluding
|
||||
those countries, so that distribution is permitted only in or among
|
||||
countries not thus excluded. In such case, this License incorporates
|
||||
the limitation as if written in the body of this License.
|
||||
|
||||
9. The Free Software Foundation may publish revised and/or new versions
|
||||
of the General Public License from time to time. Such new versions will
|
||||
be similar in spirit to the present version, but may differ in detail to
|
||||
address new problems or concerns.
|
||||
|
||||
Each version is given a distinguishing version number. If the Program
|
||||
specifies a version number of this License which applies to it and "any
|
||||
later version", you have the option of following the terms and conditions
|
||||
either of that version or of any later version published by the Free
|
||||
Software Foundation. If the Program does not specify a version number of
|
||||
this License, you may choose any version ever published by the Free Software
|
||||
Foundation.
|
||||
|
||||
10. If you wish to incorporate parts of the Program into other free
|
||||
programs whose distribution conditions are different, write to the author
|
||||
to ask for permission. For software which is copyrighted by the Free
|
||||
Software Foundation, write to the Free Software Foundation; we sometimes
|
||||
make exceptions for this. Our decision will be guided by the two goals
|
||||
of preserving the free status of all derivatives of our free software and
|
||||
of promoting the sharing and reuse of software generally.
|
||||
|
||||
NO WARRANTY
|
||||
|
||||
11. BECAUSE THE PROGRAM IS LICENSED FREE OF CHARGE, THERE IS NO WARRANTY
|
||||
FOR THE PROGRAM, TO THE EXTENT PERMITTED BY APPLICABLE LAW. EXCEPT WHEN
|
||||
OTHERWISE STATED IN WRITING THE COPYRIGHT HOLDERS AND/OR OTHER PARTIES
|
||||
PROVIDE THE PROGRAM "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESSED
|
||||
OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
|
||||
MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. THE ENTIRE RISK AS
|
||||
TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE
|
||||
PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING,
|
||||
REPAIR OR CORRECTION.
|
||||
|
||||
12. IN NO EVENT UNLESS REQUIRED BY APPLICABLE LAW OR AGREED TO IN WRITING
|
||||
WILL ANY COPYRIGHT HOLDER, OR ANY OTHER PARTY WHO MAY MODIFY AND/OR
|
||||
REDISTRIBUTE THE PROGRAM AS PERMITTED ABOVE, BE LIABLE TO YOU FOR DAMAGES,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INCIDENTAL OR CONSEQUENTIAL DAMAGES ARISING
|
||||
OUT OF THE USE OR INABILITY TO USE THE PROGRAM (INCLUDING BUT NOT LIMITED
|
||||
TO LOSS OF DATA OR DATA BEING RENDERED INACCURATE OR LOSSES SUSTAINED BY
|
||||
YOU OR THIRD PARTIES OR A FAILURE OF THE PROGRAM TO OPERATE WITH ANY OTHER
|
||||
PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGES.
|
||||
|
||||
END OF TERMS AND CONDITIONS
|
||||
|
||||
How to Apply These Terms to Your New Programs
|
||||
|
||||
If you develop a new program, and you want it to be of the greatest
|
||||
possible use to the public, the best way to achieve this is to make it
|
||||
free software which everyone can redistribute and change under these terms.
|
||||
|
||||
To do so, attach the following notices to the program. It is safest
|
||||
to attach them to the start of each source file to most effectively
|
||||
convey the exclusion of warranty; and each file should have at least
|
||||
the "copyright" line and a pointer to where the full notice is found.
|
||||
|
||||
<one line to give the program's name and a brief idea of what it does.>
|
||||
Copyright (C) <year> <name of author>
|
||||
|
||||
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 St, Fifth Floor, Boston, MA 02110-1301 USA
|
||||
|
||||
|
||||
Also add information on how to contact you by electronic and paper mail.
|
||||
|
||||
If the program is interactive, make it output a short notice like this
|
||||
when it starts in an interactive mode:
|
||||
|
||||
Gnomovision version 69, Copyright (C) year name of author
|
||||
Gnomovision comes with ABSOLUTELY NO WARRANTY; for details type `show w'.
|
||||
This is free software, and you are welcome to redistribute it
|
||||
under certain conditions; type `show c' for details.
|
||||
|
||||
The hypothetical commands `show w' and `show c' should show the appropriate
|
||||
parts of the General Public License. Of course, the commands you use may
|
||||
be called something other than `show w' and `show c'; they could even be
|
||||
mouse-clicks or menu items--whatever suits your program.
|
||||
|
||||
You should also get your employer (if you work as a programmer) or your
|
||||
school, if any, to sign a "copyright disclaimer" for the program, if
|
||||
necessary. Here is a sample; alter the names:
|
||||
|
||||
Yoyodyne, Inc., hereby disclaims all copyright interest in the program
|
||||
`Gnomovision' (which makes passes at compilers) written by James Hacker.
|
||||
|
||||
<signature of Ty Coon>, 1 April 1989
|
||||
Ty Coon, President of Vice
|
||||
|
||||
This General Public License does not permit incorporating your program into
|
||||
proprietary programs. If your program is a subroutine library, you may
|
||||
consider it more useful to permit linking proprietary applications with the
|
||||
library. If this is what you want to do, use the GNU Library General
|
||||
Public License instead of this License.
|
||||
755
Changelog
Normal file
@@ -0,0 +1,755 @@
|
||||
* Sun Mar 14 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.0
|
||||
- FEATURE: User can set alternative speed limits for fast toggling
|
||||
- FEATURE: Bandwidth scheduler (automatically use alternative speed limits for a given period)
|
||||
- FEATURE: Added "Added/Completed On" columns to transfer list
|
||||
- FEATURE: Added "Upload/Download limit" columns to transfer list
|
||||
- FEATURE: Torrent files can be exported to a given directory
|
||||
- FEATURE: Outgoing ports range can be customized (for QoS)
|
||||
- FEATURE: User can choose to apply transfer limits on LAN too
|
||||
- FEATURE: User can choose to include the protocol overhead in transfer limits
|
||||
- FEATURE: Torrents can be automatically rechecked on completion
|
||||
- FEATURE: If 2 torrents have the same hash, add new trackers/URL seeds to the existing torrent
|
||||
- FEATURE: Trackers can be added from Web UI
|
||||
- FEATURE: Global transfer information are displayed in the new Web UI status bar
|
||||
- FEATURE: Allow to change the priority of several files at once
|
||||
- FEATURE: Support for multiple scan folders (Patch by Christian Kandeler)
|
||||
- BUGFIX: Only one log window can be opened at a time
|
||||
- BUGFIX: Optimized RSS module memory usage
|
||||
- BUGFIX: Consider HTTP downloads >1MB as invalid .torrent files and abort
|
||||
- BUGFIX: Fix Web UI authentication with some browsers
|
||||
- BUGFIX: Set Web UI ban period to 1 hour
|
||||
- COSMETIC: Improved style management
|
||||
|
||||
* Mon Jan 18 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.0
|
||||
- FEATURE: Graphical User Interface can be disabled at compilation time (headless running)
|
||||
- FEATURE: Torrents can be labeled/categorized
|
||||
- FEATURE: Labeled torrent can be downloaded corresponding subfolders
|
||||
- FEATURE: Disk cache size can be set from preferences
|
||||
- FEATURE: Peer Exchange (PeX) can be disabled from preferences
|
||||
- FEATURE: Append !.qB extension to incomplete files option (libtorrent >= v0.15 only)
|
||||
- FEATURE: Torrent files/folders can be renamed (torrent addition dialog or files properties)
|
||||
- FEATURE: uTorrent compatible tracker list support (use torrentz.com url as a default)
|
||||
- FEATURE: Better proxy support and preferences remodeling
|
||||
- FEATURE: qBittorrent can identify itself as uTorrent, Vuze or KTorrent (Any stable version)
|
||||
- FEATURE: Torrents can be renamed in transfer list
|
||||
- FEATURE: Display torrent addition dialog for magnet links too
|
||||
- FEATURE: Files contained in a torrent are opened on double click (files panel)
|
||||
- FEATURE: Added support for magnet links in search engine
|
||||
- FEATURE: Added vertor.com and torrentdownloads.net search plugins
|
||||
- FEATURE: Search engine can now use a SOCKS5 proxy
|
||||
- FEATURE: HTTP proxy support for peer communication
|
||||
- BUGFIX: Search engine loads new proxy settings without program restart
|
||||
- BUGFIX: Use XDG folders (.cache, .local) instead of .qbittorrent
|
||||
- BUGFIX: Added legal notice on startup that the user must accept
|
||||
- BUGFIX: Protect Web UI authentication against brute forcing
|
||||
- BUGFIX: Use HTTP digest mode for Web UI authentication (instead of Basic)
|
||||
- BUGFIX: Properly display torrents with one file in subfolder(s)
|
||||
- BUGFIX: Display Web UI favicon
|
||||
- BUGFIX: File priority can be set for finished torrents that have filtered files
|
||||
- COSMETIC: Use checkboxes to filter torrent content instead of comboboxes
|
||||
- COSMETIC: Use alternating row colors in transfer list (set in program preferences)
|
||||
- COSMETIC: Added a spin box to speed limiting dialog for manual input
|
||||
|
||||
* Mon Jan 11 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.0.7
|
||||
- BUGFIX: Fix 'Add in pause' setting in torrent addition dialog
|
||||
- BUGFIX: Update RSS feed as soon as feed downloader is enabled
|
||||
- BUGFIX: RSS Feed downloader ignores articles above maximum number of articles
|
||||
- BUGFIX: Fix possible bug when deleting a RSS folder
|
||||
- BUGFIX: Remove persistant data when a RSS feed is deleted
|
||||
- BUGFIX: RSS filters are now alphabetically sorted
|
||||
- BUGFIX: Fix crash when renaming currently displayed RSS filter
|
||||
- BUGFIX: Remove overwriting confirmation when exporting RSS filters since Qt takes care of it
|
||||
|
||||
* Tue Jan 5 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.0.6
|
||||
- BUGFIX: Fix detection of invalid torrent files
|
||||
- BUGFIX: Stop catching signals once one has been caught to avoid possible infinite loop
|
||||
- BUGFIX: Force data recheck whenever a torrent is moved
|
||||
- BUGFIX: Detect existing torrent data even if incomplete torrents are saved to a different folder
|
||||
- COSMETIC: Improve torrent deletion confirmation dialog so that the text that not get truncated
|
||||
|
||||
* Thu Dec 31 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.5
|
||||
- BUGFIX: Fix crash with downloaded/availability bars when the torrent has too many pieces
|
||||
|
||||
* Wed Dec 30 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.4
|
||||
- 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
|
||||
- BUGFIX: Window can now stay maximized on exit
|
||||
- BUGFIX: Use PKGCONFIG again for configuring libtorrent
|
||||
- BUGFIX: Allow to compile with libtorrent v0.11
|
||||
- BUGFIX: Disabled main window context menu (annoying)
|
||||
- I18N: Added Japanese translation
|
||||
- I18N: Updated Turkish translation
|
||||
|
||||
* Wed Apr 04 2007 - Christophe Dumez <chris@qbittorrent.org> - v0.9.1
|
||||
- BUGFIX: A lot of fixes in configure file
|
||||
|
||||
* Sun Apr 01 2007 - Christophe Dumez <chris@qbittorrent.org> - v0.9.0
|
||||
- FEATURE: Based on libtorrent v0.12
|
||||
- FEATURE: Based on Qt4.2
|
||||
- FEATURE: Brand new trayicon from Qt4.2
|
||||
- FEATURE: Support uTorrent Peer Exchange (PeX - exchanges peers between clients)
|
||||
- FEATURE: Added a menu action to visit qBittorrent website
|
||||
- FEATURE: Added a menu action to report a bug in qBittorrent
|
||||
- FEATURE: Improved the way parameters are passed between qBT instances (socket)
|
||||
- FEATURE: User is warned when hard drive becomes full and downloads are paused
|
||||
- FEATURE: Number of complete/incomplete sources are now displayed in download list for each torrent
|
||||
- FEATURE: Implemented close to systray
|
||||
- FEATURE: Added Autocompletion to search engine
|
||||
- FEATURE: Splitted BT & GUI parts (huge code rewriting & optimization)
|
||||
- FEATURE: New parameters for configure file to point to custom locations for libtorrent/libcurl
|
||||
- FEATURE: Update application style according to the system (WindowsXP, MacOS, X11)
|
||||
- BUGFIX: Two torrents can now have the same name although they are different (use their hash)
|
||||
- BUGFIX: Fixed download from url that would fail sometimes
|
||||
- BUGFIX: Save directory was reset to default when filtering files in torrent
|
||||
- BUGFIX: Force a refresh of download list when the window is shown (avoid delay)
|
||||
- BUGFIX: Fixed deletion from hard drive (failed for non-empty folders)
|
||||
- BUGFIX: qBittorrent now identifies its version correctly on the network
|
||||
- BUGFIX: Preventing GUI from freezing when deleting a download permanently
|
||||
- BUGFIX: Fixed directory scanning (stop trying to download the same files several times)
|
||||
- BUGFIX: Fixed bad loading of scan dir in option (widgets still disabled)
|
||||
- BUGFIX: Threads are now stopped cleanly before their destruction
|
||||
- BUGFIX: Create Options object only when necessary (to save memory)
|
||||
- BUGFIX: Let libtorrent store the torrent handles (save memory)
|
||||
- BUGFIX: Set DHT Port only when DHT is enabled
|
||||
- BUGFIX: Made ipfilter.dat parser less sensitive to errors
|
||||
- BUGFIX: Bring main window to foreground when asking for exit confirmation
|
||||
- I18N: Added Danish translation
|
||||
- I18N: Better internationalization thanks to dynamic text support
|
||||
- COSMETIC: Replaced OSD messages by Qt4.2 systray messages
|
||||
|
||||
* Tue Nov 28 2006 - Christophe Dumez <chris@qbittorrent.org> - v0.8.0
|
||||
- FEATURE: Added a torrent addition dialog
|
||||
- FEATURE: Allow user to change DHT port
|
||||
- FEATURE: Added an action to remove files from download list and hard drive too
|
||||
- FEATURE: Rewritten intensively options code
|
||||
- FEATURE: Remember GUI settings in a cleaner way on restart
|
||||
- I18N: Added Finnish translation
|
||||
- I18N: Improved Italian translation a lot
|
||||
- BUGFIX: Enabled debug with Qt 4.2.1 too because Trolltech didn't fix their bug yet
|
||||
- BUGFIX: Fixed layout in torrent properties
|
||||
- BUGFIX: Made right click menu work for multiple selection in DL list
|
||||
- BUGFIX: Fixed utf-8 support in paths and filenames
|
||||
- BUGFIX: Could only listen on the first IP of the given range
|
||||
- COSMETIC: Connection status in toolBar is not clickable anymore
|
||||
- COSMETIC: Displaying save path in torrent properties window
|
||||
- COSMETIC: Reworked options window a little
|
||||
- COSMETIC: Remember mainwindow position during last execution
|
||||
|
||||
* Mon Oct 16 2006 - Christophe Dumez <chris@qbittorrent.org> - v0.7.1
|
||||
- I18N: Updated French, Polish, Dutch, Swedish, Slovak translations
|
||||
- BUGFIX: Fixed Seeds/Leechers display in torrent properties
|
||||
- BUGFIX: Fixed finished torrent state on restart
|
||||
- BUGFIX: Fixed trayicon with Qt 4.2
|
||||
- BUGFIX: Enabling debug when Qt 4.2.0 is detected (because of a bug in this Qt)
|
||||
- BUGFIX: Fixed new lines in log widget with Qt 4.2
|
||||
- BUGFIX: Display errors to stderr instead of stdout
|
||||
- BUGFIX: Forgot to catch invalid_handle exception thrown by libtorrent
|
||||
- BUGFIX: Close torrents properties windows when they are deleted
|
||||
- BUGFIX: Fixed prefix in Makefile
|
||||
|
||||
* Fri Oct 13 2006 - Christophe Dumez <chris@qbittorrent.org> - v0.7.0
|
||||
- FEATURE: Based on new libtorrent v0.11 (a lot of bugfixes, new features)
|
||||
- FEATURE: Added DHT (Trackerless - Decentralized BT) support
|
||||
- FEATURE: Audio/Video File previewing while downloading
|
||||
- FEATURE: Added support for incremental download (slower but great for previewing)
|
||||
- FEATURE: Added Tracker authentication support
|
||||
- FEATURE: Defined qBittorrent fingerprint so that it doesn't use libtorrent fingerprint anymore
|
||||
- FEATURE: Display an explicit error message when a download from url fails
|
||||
- FEATURE: Allow the download multiple torrents from urls at once
|
||||
- FEATURE: New context menu on main window (Add, Start all, Pause all, Exit...)
|
||||
- FEATURE: Now supports one new search engines (MegaNova)
|
||||
- FEATURE: Rewritten search engine plugin (by fab31)
|
||||
- FEATURE: Rewritten parts of the download/search lists to improve performance
|
||||
- FEATURE: Individual share ratio is now displayed in each torrent properties.
|
||||
- FEATURE: Tuned default settings to improve download speed
|
||||
- FEATURE: Downloading from an URL will retry 10 times if too many users.
|
||||
- FEATURE: Now remembers filtered pieces in a torrent on restart
|
||||
- FEATURE: Now updating pieces progress in real time in torrent properties
|
||||
- I18N: Added Norwegian translation
|
||||
- BUGFIX: Fixed a memory leak when pressing OK in torrent properties
|
||||
- BUGFIX: Improved code so that GUI never freeze during downloading from an url
|
||||
- BUGFIX: Forgot to remove torrent file from scanned directory when "Clear Finished torrents" is enabled
|
||||
- BUGFIX: Fixed multiple selection in torrent content tab
|
||||
- BUGFIX: Improved configure file (detects libboost-thread)
|
||||
- BUGFIX: Fixed trayicon on some window managers (Gnome, XFCE)
|
||||
- BUGFIX: Always set maximum limit for connection depending on system
|
||||
- BUGFIX: Fixed Memory leaks in search engine
|
||||
- BUGFIX: Remove torrent file from scanned directory if it is already in download list
|
||||
- BUGFIX: Fixed possible segfault on loading due to columns size loading
|
||||
- BUGFIX: Fixed problems that could happen with delete selection action
|
||||
- BUGFIX: Fixed an arithmetic exception that could happen in ETA calculation
|
||||
- BUGFIX: Fixed Isohunt search engine
|
||||
- BUGFIX: Fixed download from URL function (was buggy)
|
||||
- BUGFIX: Fixed download button in search engine
|
||||
- BUGFIX: Fixed selective download
|
||||
- BUGFIX: Fixed memory leaks in torrent properties
|
||||
- BUGFIX: Fixed tooltip behaviour for trayicon
|
||||
- BUGFIX: Fixed Ipfilter.dat loading
|
||||
- BUGFIX: Not loading options every time we display options anymore
|
||||
- COSMETIC: Now displaying the number of downloads in tab title
|
||||
- COSMETIC: Redesigned download from url dialog
|
||||
- COSMETIC: Added a message to warn user that we started download from an url
|
||||
- COSMETIC: Renamed main tab from "Downloads" to "Transfers"
|
||||
- COSMETIC: Improved icons
|
||||
- COSMETIC: Resized flags in localization settings
|
||||
- COSMETIC: Improved trayicon image
|
||||
|
||||
* Fri Aug 24 2006 - Christophe Dumez <chris@qbittorrent.org> - v0.6.1
|
||||
- BUGFIX: Fixed possible segfaults when using context menus
|
||||
- BUGFIX: Cleanup up context menus code
|
||||
- BUGFIX: Use best gzip compressing for man page
|
||||
|
||||
* Wed Aug 22 2006 - Christophe Dumez <chris@qbittorrent.org> - v0.6.0
|
||||
- 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
|
||||
|
||||
* Wed Aug 2 2006 - Christophe Dumez <chris@qbittorrent.org> - v0.5.0
|
||||
- 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> - v0.4.1
|
||||
- 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> - v0.4.0
|
||||
- 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> - v0.3.1
|
||||
- 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> - v0.3
|
||||
- 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> - v0.2.3
|
||||
- Fixed ports checking function (user couldn't type the value he wanted)
|
||||
- qBittorrent does not remove .torrent file from scanned directory anymore
|
||||
- Check tracker errors list size and clear it if it becomes too big.
|
||||
- Small cosmetic change
|
||||
|
||||
* Wed May 31 2006 - Christophe Dumez <chris@qbittorrent.org> - v0.2.2
|
||||
- Fixed missing icons
|
||||
|
||||
* Thu May 25 2006 - Christophe Dumez <chris@qbittorrent.org> - v0.2.1
|
||||
- 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)
|
||||
58
INSTALL
Normal file
@@ -0,0 +1,58 @@
|
||||
qBittorrent - A BitTorrent client in C++ / Qt4
|
||||
------------------------------------------
|
||||
|
||||
1) Compile and install qBittorrent with Qt4 Graphical Interface
|
||||
|
||||
$ ./configure
|
||||
$ make && make install
|
||||
$ qbittorrent
|
||||
|
||||
will install and execute qBittorrent hopefully without any problems.
|
||||
|
||||
Dependencies:
|
||||
- Qt >= 4.4.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
|
||||
|
||||
- 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
|
||||
|
||||
- python >= 2.3 (needed by search engine)
|
||||
* Run time only dependency
|
||||
|
||||
- libnotify >= 0.4.2, glib-2.0 (optional)
|
||||
* Can be used for system notifications to replace standard Qt notifications
|
||||
so that it integrates better into the Desktop
|
||||
|
||||
- geoip-database (optional)
|
||||
* If qBittorrent cannot find this database, it will try to resolve countries using the Internet but it will be a lot slower.
|
||||
* Run time only dependency
|
||||
|
||||
2) Compile and install qBittorrent without Qt4 Graphical interface
|
||||
|
||||
$ ./configure --disable-gui
|
||||
$ make && make install
|
||||
$ qbittorrent
|
||||
|
||||
will install and execute qBittorrent hopefully without any problems.
|
||||
|
||||
Dependencies:
|
||||
- Qt >= 4.4.0 (libqt-devel, libqtcore, libqtnetwork)
|
||||
|
||||
- pkg-config executable
|
||||
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, >= v0.15.0 ADVISED)
|
||||
-> http://www.libtorrent.net
|
||||
Be careful: another library (the one used by rTorrent) uses a similar name.
|
||||
|
||||
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
|
||||
|
||||
|
||||
DOCUMENTATION:
|
||||
Please note that there is a documentation with a "compiling howto" at http://wiki.qbittorrent.org.
|
||||
|
||||
------------------------------------------
|
||||
Christophe Dumez <chris@qbittorrent.org>
|
||||
4
NEWS
Normal file
@@ -0,0 +1,4 @@
|
||||
See Changelog
|
||||
|
||||
*******************************************
|
||||
Christophe dumez - chris@qbittorrent.org
|
||||
40
README
Normal file
@@ -0,0 +1,40 @@
|
||||
qBittorrent - A BitTorrent client in Qt4
|
||||
------------------------------------------
|
||||
|
||||
Description:
|
||||
********************************
|
||||
qBittorrent is a bittorrent client programmed in C++ / Qt4 that uses
|
||||
libtorrent (sometimes called rblibtorrent) by Arvid Norberg.
|
||||
|
||||
It aims to be a good alternative to all other bittorrent clients
|
||||
out there. qBittorrent is fast, stable and provides unicode
|
||||
support as well as many features.
|
||||
|
||||
This product includes GeoLite data created by MaxMind, available from
|
||||
http://maxmind.com/
|
||||
|
||||
Installation:
|
||||
********************************
|
||||
For installation, follow the instructions from INSTALL file, but simple:
|
||||
|
||||
./configure
|
||||
make && make install
|
||||
qbittorrent
|
||||
|
||||
will install and execute qBittorrent hopefully without any problem.
|
||||
|
||||
For more information please visit:
|
||||
http://www.qbittorrent.org
|
||||
|
||||
or our wiki here:
|
||||
http://wiki.qbittorrent.org
|
||||
|
||||
Please report any bug (or feature request) to:
|
||||
http://bugs.qbittorrent.org
|
||||
|
||||
You can also meet me (chris-qBT) on IRC:
|
||||
#qbittorrent on irc.freenode.net
|
||||
|
||||
------------------------------------------
|
||||
Christophe Dumez <chris@qbittorrent.org>
|
||||
|
||||
29
debian/NEWS
vendored
@@ -1,29 +0,0 @@
|
||||
qbittorrent (2.4.3-1) unstable; urgency=low
|
||||
|
||||
qBittorrent version 2.3.0 (not packaged for Debian) introduced an
|
||||
incompatible change with the torrent save path system.
|
||||
Users upgrading from version 2.2.x (2.2.11-1 is the latest available point
|
||||
release in Debian) should make a backup of the following directory in case
|
||||
they want to switch back to a version older than 2.3.0:
|
||||
|
||||
~/.local/share/data/qBittorrent/BT_backup/
|
||||
|
||||
-- Cristian Greco <cristian@regolo.cc> Thu, 30 Sep 2010 16:13:40 +0200
|
||||
|
||||
qbittorrent (2.1.0-1) unstable; urgency=low
|
||||
|
||||
Starting from this new release qBittorrent will comply with the XDG Base
|
||||
Directory Specification by storing its .torrent files in ~/.local instead of
|
||||
the ~/.qbittorrent directory used so far.
|
||||
In case you wish to switch back to an earlier version you will need to move
|
||||
your torrents back to the old folder with the following commands:
|
||||
$ mkdir ~/.qbittorrent/
|
||||
$ cp -a ~/.local/share/data/qBittorrent/BT_backup/ ~/.qbittorrent/
|
||||
|
||||
This new release comes with a new binary package. qBittorrent-nox version of
|
||||
qBittorrent that does not require X and can be controlled via a WebUI, thus is
|
||||
more suitable for headless servers. The default account username and password
|
||||
are mentioned in qbittorrent-nox(1) manpage.
|
||||
|
||||
-- Cristian Greco <cristian@regolo.cc> Wed, 20 Jan 2010 00:39:06 +0100
|
||||
|
||||
5
debian/changelog
vendored
@@ -1,5 +0,0 @@
|
||||
qbittorrent (3.4.0-0ppa1~zesty) zesty; urgency=low
|
||||
|
||||
* v3.4.0 git import
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Thu, 10 Aug 2017 02:00:19 +0300
|
||||
1
debian/compat
vendored
@@ -1 +0,0 @@
|
||||
10
|
||||
78
debian/control
vendored
@@ -1,78 +0,0 @@
|
||||
Source: qbittorrent
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: sledgehammer999 <hammered999@gmail.com>
|
||||
Build-Depends: debhelper (>= 7.4.12),
|
||||
dpkg-dev (>= 1.16.1),
|
||||
libtorrent-rasterbar-dev (> 2.0.8),
|
||||
libboost-dev (>= 1.40.0),
|
||||
libboost-system-dev (>= 1.40.0),
|
||||
qtbase5-dev (>= 5.9.0),
|
||||
libqt5svg5-dev (>= 5.9.0),
|
||||
qttools5-dev-tools,
|
||||
zlib1g-dev
|
||||
Standards-Version: 3.9.8
|
||||
Vcs-Git: git://anonscm.debian.org/collab-maint/qbittorrent.git
|
||||
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/qbittorrent.git
|
||||
Homepage: http://www.qbittorrent.org/
|
||||
|
||||
Package: qbittorrent
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends},
|
||||
python3 (>= 3.3.0), libqt5svg5, libqt5sql5-sqlite
|
||||
Suggests: qbittorrent-dbg
|
||||
Description: bittorrent client based on libtorrent-rasterbar with a Qt5 GUI
|
||||
BitTorrent client written in C++ and based on libtorrent-rasterbar with a Qt5
|
||||
user interface. qBittorrent is a feature rich but lightweight client that is
|
||||
very similar to uTorrent. Its main features are:
|
||||
.
|
||||
* Polished uTorrent-like user interface
|
||||
* Well integrated and extensible search engine
|
||||
* Remote control through a Web user interface
|
||||
* Vuze-compatible protocol encryption
|
||||
* uTorrent-compatible Peer eXchange (PeX)
|
||||
* DHT (trackerless) support
|
||||
* UPnP / NAT-PMP port forwarding
|
||||
* IPv6 compliant
|
||||
* RSS support with advanced download filters
|
||||
* Advanced control over torrent content and trackers
|
||||
* IP Filtering (eMule / Peer Guardian filters)
|
||||
* Torrents queueing and prioritizing
|
||||
* Good localization (~25 languages supported)
|
||||
* Unicode support
|
||||
|
||||
Package: qbittorrent-nox
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libqt5sql5-sqlite
|
||||
Suggests: qbittorrent-dbg
|
||||
Description: bittorrent client based on libtorrent-rasterbar (without X support)
|
||||
BitTorrent client written in C++ and based on libtorrent-rasterbar.
|
||||
qBittorrent-nox is a version of qBittorrent (Qt5 application) that does not
|
||||
require X and can be controlled via a WebUI, thus is more suitable for headless
|
||||
servers. It is a feature rich but lightweight client that is very similar to
|
||||
rTorrent. Its main features are:
|
||||
.
|
||||
* Remote control through a Web user interface
|
||||
* Vuze-compatible protocol encryption
|
||||
* uTorrent-compatible Peer eXchange (PeX)
|
||||
* DHT (trackerless) support
|
||||
* UPnP / NAT-PMP port forwarding
|
||||
* IPv6 compliant
|
||||
* Advanced control over torrent content and trackers
|
||||
* IP Filtering (eMule / Peer Guardian filters)
|
||||
* Torrents queueing and prioritizing
|
||||
* Good localization (~25 languages supported)
|
||||
* Unicode support
|
||||
|
||||
Package: qbittorrent-dbg
|
||||
Architecture: any
|
||||
Section: debug
|
||||
Priority: extra
|
||||
Depends: qbittorrent (= ${binary:Version}) | qbittorrent-nox (= ${binary:Version}), ${misc:Depends}
|
||||
Description: debug symbols for qbittorrent and qbittorrent-nox
|
||||
BitTorrent client written in C++ and based on libtorrent-rasterbar with a Qt5
|
||||
user interface. qBittorrent is a feature rich but lightweight client that is
|
||||
very similar to uTorrent.
|
||||
.
|
||||
This package contains the debugging symbols for qbittorrent and
|
||||
qbittorrent-nox.
|
||||
339
debian/copyright
vendored
@@ -1,339 +0,0 @@
|
||||
Format-Specification: http://wiki.debian.org/Proposals/CopyrightFormat
|
||||
Upstream-Author: Christophe Dumez <chris@qbittorrent.org>
|
||||
Packaged-By: Cristian Greco <cristian.debian@gmail.com>
|
||||
Packaged-Date: Fri, 04 Jul 2008 23:12:54 +0200
|
||||
Original-Source-Location: http://www.qbittorrent.org/
|
||||
|
||||
|
||||
Files: src/*.cpp, src/*.h, src/*.ui
|
||||
Copyright: Copyright © 2006,2007,2008 Christophe Dumez
|
||||
Contributor: Arnaud Demaizière <arnaud@qbittorrent.org>
|
||||
Contributor: Ishan Arora <ishan@qbittorrent.org>
|
||||
Contributor: Grigis Gaëtan <cipher16@gmail.com>
|
||||
License: GPL-2+ | other
|
||||
|
||||
This package 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 package 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
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Files: src/qtsingleapp/*
|
||||
Copyright: Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies)
|
||||
License: other
|
||||
|
||||
Commercial Usage
|
||||
Licensees holding valid Qt Commercial licenses may use this file in
|
||||
accordance with the Qt Solutions Commercial License Agreement provided
|
||||
with the Software or, alternatively, in accordance with the terms
|
||||
contained in a written agreement between you and Nokia.
|
||||
|
||||
GNU Lesser General Public License Usage
|
||||
Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
General Public License version 2.1 as published by the Free Software
|
||||
Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
packaging of this file. Please review the following information to
|
||||
ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
|
||||
In addition, as a special exception, Nokia gives you certain
|
||||
additional rights. These rights are described in the Nokia Qt LGPL
|
||||
Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
|
||||
package.
|
||||
|
||||
GNU General Public License Usage
|
||||
Alternatively, this file may be used under the terms of the GNU
|
||||
General Public License version 3.0 as published by the Free Software
|
||||
Foundation and appearing in the file LICENSE.GPL included in the
|
||||
packaging of this file. Please review the following information to
|
||||
ensure the GNU General Public License version 3.0 requirements will be
|
||||
met: http://www.gnu.org/copyleft/gpl.html.
|
||||
|
||||
Please note Third Party Software included with Qt Solutions may impose
|
||||
additional restrictions and it is the user's responsibility to ensure
|
||||
that they have met the licensing requirements of the GPL, LGPL, or Qt
|
||||
Solutions Commercial license and the relevant license of the Third
|
||||
Party Software they are using.
|
||||
|
||||
If you are unsure which license is appropriate for your use, please
|
||||
contact Nokia at qt-info@nokia.com.
|
||||
|
||||
|
||||
Files: src/lineedit/*
|
||||
Copyright: Copyright (c) 2007 Trolltech ASA <info@trolltech.com>
|
||||
License: other
|
||||
|
||||
Use, modification and distribution is allowed without limitation,
|
||||
warranty, liability or support of any kind.
|
||||
|
||||
|
||||
Files: debian/*
|
||||
Copyright: Copyright © 2008 Cristian Greco
|
||||
License: GPL-2+
|
||||
|
||||
Files: src/Icons/*.png
|
||||
Copyright: Gnome Icon Theme
|
||||
License: GPL-2
|
||||
|
||||
Files: src/Icons/skin/*.png
|
||||
src/menuicons/YYxYY/*.png
|
||||
Copyright: Mateusz Tobola <tobejodok@qbittorrent.org>
|
||||
License: GPL-2
|
||||
|
||||
Files: src/lang/*.ts
|
||||
Copyright:
|
||||
- Arabic: SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)
|
||||
- Armenian: Hrant Ohanyan (hrantohanyan@mail.am)
|
||||
- Basque: Xabier Aramendi (azpidatziak@gmail.com)
|
||||
- Belarusian: Mihas Varantsou (meequz@gmail.com)
|
||||
- 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 (guoyue0418@hotmail.com)
|
||||
- Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com)
|
||||
- Croatian: Olivier Delakroa (oliver.untwist@gmail.com)
|
||||
- Czech: Jirka Vilim (web@tets.cz)
|
||||
- Danish: Mathias Nielsen (comoneo@gmail.com)
|
||||
- Dutch: Pieter Heyvaert (pieter_heyvaert@hotmail.com)
|
||||
- English: Christophe Dumez (chris@qbittorrent.org)
|
||||
- Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net)
|
||||
and Pekka Niemi (pekka.niemi@iki.fi)
|
||||
- French: Christophe Dumez (chris@qbittorrent.org)
|
||||
- Galician: Marcos Lans (marcoslansgarza@gmail.com)
|
||||
- Georgian: Beqa Arabuli (arabulibeqa@yahoo.com)
|
||||
- German: Niels Hoffmann (zentralmaschine@users.sourceforge.net)
|
||||
- Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net)
|
||||
and Stephanos Antaris (santaris@csd.auth.gr)
|
||||
- Hebrew: David Deutsch (d.deffo@gmail.com)
|
||||
- Hungarian: Majoros Péter (majoros.j.p@t-online.hu)
|
||||
- Italian: bovirus (bovirus@live.it) and Matteo Sechi (bu17714@gmail.com)
|
||||
- Japanese: Masato Hashimoto (cabezon.hashimoto@gmail.com)
|
||||
- Korean: Jin Woo Sin (jin828sin@users.sourceforge.net)
|
||||
- Lithuanian: Naglis Jonaitis (njonaitis@gmail.com)
|
||||
- Norwegian: Tomaso
|
||||
- Polish: Jarek Smieja (ajep9691@wp.pl)
|
||||
- Portuguese: Nick Marinho (nickmarinho@gmail.com)
|
||||
- Romanian: Obada Denis (obadadenis@users.sourceforge.net)
|
||||
- Russian: Nick Khazov (m2k3d0n at users.sourceforge.net)
|
||||
- Slovak: helix84
|
||||
- Spanish: Francisco Luque Contreras (frannoe@ya.com)
|
||||
- Swedish: Daniel Nylander (po@danielnylander.se)
|
||||
- Turkish: Hasan Yilmaz (iletisim@hedefturkce.com)
|
||||
- Ukrainian: Oleh Prypin (blaxpirit@gmail.com)
|
||||
License: GPL-2
|
||||
|
||||
This package 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 package 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'.
|
||||
|
||||
|
||||
Files: src/Icons/skin/qbittorrent_mono*
|
||||
Copyright: Daniel Eguren <deguren@gmail.com>
|
||||
License: LGPL-2.1+
|
||||
|
||||
Files: src/ico.cpp, src/ico.h
|
||||
Copyright: Copyright © 2000 Malte Starostik <malte@kde.org>
|
||||
License: LGPL-2.1+
|
||||
|
||||
Files: src/oxygen/*.png
|
||||
Copyright: Oxygen Icon Theme (KDE) - www.oxygen-icons.org
|
||||
License: LGPL-2.1+
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; 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 Lesser General
|
||||
Public License can be found in `/usr/share/common-licenses/LGPL-2.1'.
|
||||
|
||||
|
||||
Files: src/stacktrace.h
|
||||
Copyright: Copyright © 2008 Timo Bingmann
|
||||
License: other
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (C) 2004 Sam Hocevar
|
||||
14 rue de Plaisance, 75014 Paris, France
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
|
||||
|
||||
Files: src/Icons/flags/*.png
|
||||
Copyright: Mark James <http://www.famfamfam.com>
|
||||
License: other
|
||||
|
||||
Available for free use for any purpose with no requirement for attribution.
|
||||
|
||||
|
||||
File: src/searchengine/nova/engines/btdigg.py
|
||||
Copyright: BTDigg team (research@btdigg.org)
|
||||
License: GPL-3+
|
||||
|
||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
On Debian systems, the complete text of the GNU General Public License
|
||||
version 3 can be found in `/usr/share/common-licenses/GPL-3'.
|
||||
|
||||
|
||||
File: src/update_qrc_files.py,
|
||||
src/searchengine/nova/engines/isohunt.py
|
||||
src/searchengine/nova/engines/btjunkie.py
|
||||
src/searchengine/nova/engines/vertor.py
|
||||
src/searchengine/nova/engines/torrentdownloads.py
|
||||
src/searchengine/nova/helpers.py
|
||||
src/searchengine/nova/nova2dl.py
|
||||
src/searchengine/nova/novaprinter.py
|
||||
Copyright: Christophe Dumez <chris@qbittorrent.org>
|
||||
License: BSD-3
|
||||
|
||||
Files: src/searchengine/nova/nova2.py
|
||||
src/searchengine/nova/engines/mininova.py
|
||||
src/searchengine/nova/engines/piratebay.py
|
||||
Copyright: Fabien Devaux <fab@gnux.info>
|
||||
License: BSD-3
|
||||
|
||||
Files: src/searchengine/nova/engines/torrentreactor.py
|
||||
Copyright: Gekko Dam Beer (gekko04@users.sourceforge.net)
|
||||
License: BSD-3
|
||||
|
||||
Files: src/searchengine/socks.py
|
||||
Copyright: Copyright 2006 Dan-Haim
|
||||
License: BSD-3
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted under the terms of the BSD License.
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. Neither the name of the University nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
|
||||
Files: src/Icons/skin/tabs.gif
|
||||
Copyright: Greg Houston <gregory.houston@gmail.com>
|
||||
License: MIT
|
||||
|
||||
Files: src/webui/css/mootabs1.2.css
|
||||
Copyright: Copyright © 2008 Christophe Dumez <chris@qbittorrent.org>
|
||||
Original code from http://www.silverscripting.com/mootabs/
|
||||
License: MIT
|
||||
|
||||
Files: src/webui/scripts/download.js
|
||||
Copyright: Copyright © 2008 Ishan Arora <ishan@qbittorrent.org>
|
||||
License: MIT
|
||||
|
||||
Files: src/webui/scripts/client.js
|
||||
src/webui/scripts/dynamicTable.js
|
||||
Copyright: Copyright © 2008 Ishan Arora <ishan@qbittorrent.org>
|
||||
Copyright © 2008 Christophe Dumez <chris@qbittorrent.org>
|
||||
License: MIT
|
||||
|
||||
Files: src/webui/scripts/mocha.js
|
||||
src/webui/scripts/mocha-init.js
|
||||
src/webui/css/mocha.css
|
||||
Copyright: Copyright © 2007-2008 Greg Houston, <http://greghoustondesign.com/>
|
||||
License: MIT-style
|
||||
|
||||
Files: src/webui/scripts/mootabs1.2.js
|
||||
Copyright: Copyright © 2008 Christophe Dumez <chris@qbittorrent.org>
|
||||
Original code from http://www.silverscripting.com/mootabs/
|
||||
License: MIT
|
||||
|
||||
File: src/webui/scripts/mootools-1.2-core-yc.js
|
||||
src/webui/scripts/mootools-1.2-more.js
|
||||
Copyright: Copyright © 2006-2008 Valerio Proietti, <http://mootools.net>
|
||||
License: MIT
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to
|
||||
deal in the Software without restriction, including without limitation the
|
||||
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
1
debian/docs
vendored
@@ -1 +0,0 @@
|
||||
README.md
|
||||
12
debian/qbittorrent-nox.README.Debian
vendored
@@ -1,12 +0,0 @@
|
||||
qbittorrent-nox for Debian
|
||||
--------------------------
|
||||
|
||||
qBittorrent-nox is a version of qBittorrent that does not require X and can
|
||||
be controlled via a WebUI, thus is more suitable for headless servers.
|
||||
|
||||
The Web User Interface is accessible as a default on http://localhost:8080.
|
||||
Access is secured and the default account user name is "admin" with
|
||||
"adminadmin" as a password. Please refer to qbittorrent-nox(1) manpage for
|
||||
more information.
|
||||
|
||||
-- Cristian Greco <cristian@regolo.cc> Wed, 20 Jan 2010 00:50:45 +0100
|
||||
1
debian/qbittorrent.mime
vendored
@@ -1 +0,0 @@
|
||||
application/x-bittorrent; qbittorrent %s; description="BitTorrent client"; test=test -n "$DISPLAY"; nametemplate=%s.torrent
|
||||
33
debian/rules
vendored
@@ -1,33 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
DPKG_EXPORT_BUILDFLAGS = 1
|
||||
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||
include /usr/share/dpkg/buildflags.mk
|
||||
|
||||
%:
|
||||
dh $@ --without autoreconf --parallel
|
||||
|
||||
override_dh_auto_configure:
|
||||
mkdir -p build-nox && cd build-nox && ../configure --prefix=/usr --disable-gui \
|
||||
--enable-systemd --with-boost-libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
|
||||
mkdir -p build-gui && cd build-gui && ../configure --prefix=/usr \
|
||||
--with-boost-libdir=/usr/lib/$(DEB_HOST_MULTIARCH)
|
||||
|
||||
override_dh_auto_build:
|
||||
dh_auto_build --builddirectory build-nox
|
||||
dh_auto_build --builddirectory build-gui
|
||||
|
||||
override_dh_auto_install:
|
||||
sed -i '/STRIP/d' build-nox/src/Makefile
|
||||
sed -i '/STRIP/d' build-gui/src/Makefile
|
||||
dh_auto_install --builddirectory build-nox --destdir debian/qbittorrent-nox \
|
||||
-- INSTALL_ROOT=$(CURDIR)/debian/qbittorrent-nox
|
||||
dh_auto_install --builddirectory build-gui --destdir debian/qbittorrent \
|
||||
-- INSTALL_ROOT=$(CURDIR)/debian/qbittorrent
|
||||
|
||||
override_dh_auto_clean:
|
||||
dh_auto_clean --builddirectory build-nox
|
||||
dh_auto_clean --builddirectory build-gui
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip -a --dbg-package=qbittorrent-dbg
|
||||
1
debian/source/format
vendored
@@ -1 +0,0 @@
|
||||
3.0 (quilt)
|
||||
7
debian/source/lintian-overrides
vendored
@@ -1,7 +0,0 @@
|
||||
# False positive. File is not minified.
|
||||
source-is-missing src/webui/www/public/scripts/excanvas-compressed.js
|
||||
source-is-missing src/webui/www/public/scripts/mocha-init.js line length is 445 characters (>256)
|
||||
|
||||
# Full source provided in debian/missing-sources
|
||||
source-is-missing src/webui/www/public/scripts/mootools-1.2-core-yc.js
|
||||
source-is-missing debian/missing-sources/mootools-1.2-core-yc.js
|
||||
9
debian/watch
vendored
@@ -1,9 +0,0 @@
|
||||
version=3
|
||||
|
||||
#unstable: follow stable and rc releases
|
||||
opts="uversionmangle=s/rc/~rc/" \
|
||||
http://sf.net/qbittorrent/qbittorrent-([\d\.]*(?:rc\d)?)\.tar\.xz
|
||||
|
||||
#experimental: follow stable, rc and beta releases
|
||||
#opts="uversionmangle=s/(rc|beta)/~$1/" \
|
||||
# http://sf.net/qbittorrent/qbittorrent-([\d\.]*(?:(?:rc|beta)\d)?)\.tar\.xz
|
||||
@@ -1,29 +0,0 @@
|
||||
qbittorrent (2.4.3-1) unstable; urgency=low
|
||||
|
||||
qBittorrent version 2.3.0 (not packaged for Debian) introduced an
|
||||
incompatible change with the torrent save path system.
|
||||
Users upgrading from version 2.2.x (2.2.11-1 is the latest available point
|
||||
release in Debian) should make a backup of the following directory in case
|
||||
they want to switch back to a version older than 2.3.0:
|
||||
|
||||
~/.local/share/data/qBittorrent/BT_backup/
|
||||
|
||||
-- Cristian Greco <cristian@regolo.cc> Thu, 30 Sep 2010 16:13:40 +0200
|
||||
|
||||
qbittorrent (2.1.0-1) unstable; urgency=low
|
||||
|
||||
Starting from this new release qBittorrent will comply with the XDG Base
|
||||
Directory Specification by storing its .torrent files in ~/.local instead of
|
||||
the ~/.qbittorrent directory used so far.
|
||||
In case you wish to switch back to an earlier version you will need to move
|
||||
your torrents back to the old folder with the following commands:
|
||||
$ mkdir ~/.qbittorrent/
|
||||
$ cp -a ~/.local/share/data/qBittorrent/BT_backup/ ~/.qbittorrent/
|
||||
|
||||
This new release comes with a new binary package. qBittorrent-nox version of
|
||||
qBittorrent that does not require X and can be controlled via a WebUI, thus is
|
||||
more suitable for headless servers. The default account username and password
|
||||
are mentioned in qbittorrent-nox(1) manpage.
|
||||
|
||||
-- Cristian Greco <cristian@regolo.cc> Wed, 20 Jan 2010 00:39:06 +0100
|
||||
|
||||
@@ -1,5 +0,0 @@
|
||||
qbittorrent (3.4.0-0ppa1~zesty) zesty; urgency=low
|
||||
|
||||
* v3.4.0 git import
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Thu, 10 Aug 2017 02:00:19 +0300
|
||||
@@ -1,69 +0,0 @@
|
||||
Source: qbittorrent
|
||||
Section: net
|
||||
Priority: optional
|
||||
Maintainer: sledgehammer999 <hammered999@gmail.com>
|
||||
Homepage: http://www.qbittorrent.org/
|
||||
Standards-Version: 4.6.1
|
||||
Build-Depends: debhelper-compat (= 13),
|
||||
cmake (>= 3.16.0),
|
||||
libtorrent-rasterbar-dev (> 2.0.9),
|
||||
libboost-dev (>= 1.40.0),
|
||||
qt6-base-dev (>= 6.4.0),
|
||||
qt6-base-private-dev (>= 6.4.0),
|
||||
qt6-svg-dev (>= 6.4.0),
|
||||
qt6-tools-dev (>= 6.4.0),
|
||||
zlib1g-dev (>= 1.2.11),
|
||||
libxkbcommon-dev,
|
||||
systemd-dev,
|
||||
ninja-build,
|
||||
pkgconf
|
||||
|
||||
Package: qbittorrent
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends},
|
||||
python3 (>= 3.7.0),
|
||||
qt6-svg-plugins | libqt6svg6,
|
||||
libqt6sql6-sqlite
|
||||
Suggests: qbittorrent-dbg
|
||||
Description: bittorrent client based on libtorrent-rasterbar with a Qt GUI
|
||||
BitTorrent client written in C++ and based on libtorrent-rasterbar with a Qt
|
||||
user interface. qBittorrent is a feature rich but lightweight client that is
|
||||
very similar to uTorrent. Its main features are:
|
||||
.
|
||||
* Polished uTorrent-like user interface
|
||||
* Well integrated and extensible search engine
|
||||
* Remote control through a Web user interface
|
||||
* Vuze-compatible protocol encryption
|
||||
* uTorrent-compatible Peer eXchange (PeX)
|
||||
* DHT (trackerless) support
|
||||
* UPnP / NAT-PMP port forwarding
|
||||
* IPv6 compliant
|
||||
* RSS support with advanced download filters
|
||||
* Advanced control over torrent content and trackers
|
||||
* IP Filtering (eMule / Peer Guardian filters)
|
||||
* Torrents queueing and prioritizing
|
||||
* Good localization (~25 languages supported)
|
||||
* Unicode support
|
||||
|
||||
Package: qbittorrent-nox
|
||||
Architecture: any
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}, libqt6sql6-sqlite
|
||||
Suggests: qbittorrent-dbg
|
||||
Description: bittorrent client based on libtorrent-rasterbar (without X support)
|
||||
BitTorrent client written in C++ and based on libtorrent-rasterbar.
|
||||
qBittorrent-nox is a version of qBittorrent (Qt application) that does not
|
||||
require X and can be controlled via a WebUI, thus is more suitable for headless
|
||||
servers. It is a feature rich but lightweight client that is very similar to
|
||||
rTorrent. Its main features are:
|
||||
.
|
||||
* Remote control through a Web user interface
|
||||
* Vuze-compatible protocol encryption
|
||||
* uTorrent-compatible Peer eXchange (PeX)
|
||||
* DHT (trackerless) support
|
||||
* UPnP / NAT-PMP port forwarding
|
||||
* IPv6 compliant
|
||||
* Advanced control over torrent content and trackers
|
||||
* IP Filtering (eMule / Peer Guardian filters)
|
||||
* Torrents queueing and prioritizing
|
||||
* Good localization (~25 languages supported)
|
||||
* Unicode support
|
||||
@@ -1,339 +0,0 @@
|
||||
Format-Specification: http://wiki.debian.org/Proposals/CopyrightFormat
|
||||
Upstream-Author: Christophe Dumez <chris@qbittorrent.org>
|
||||
Packaged-By: Cristian Greco <cristian.debian@gmail.com>
|
||||
Packaged-Date: Fri, 04 Jul 2008 23:12:54 +0200
|
||||
Original-Source-Location: http://www.qbittorrent.org/
|
||||
|
||||
|
||||
Files: src/*.cpp, src/*.h, src/*.ui
|
||||
Copyright: Copyright © 2006,2007,2008 Christophe Dumez
|
||||
Contributor: Arnaud Demaizière <arnaud@qbittorrent.org>
|
||||
Contributor: Ishan Arora <ishan@qbittorrent.org>
|
||||
Contributor: Grigis Gaëtan <cipher16@gmail.com>
|
||||
License: GPL-2+ | other
|
||||
|
||||
This package 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 package 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
|
||||
|
||||
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.
|
||||
|
||||
|
||||
Files: src/qtsingleapp/*
|
||||
Copyright: Copyright © 2009 Nokia Corporation and/or its subsidiary(-ies)
|
||||
License: other
|
||||
|
||||
Commercial Usage
|
||||
Licensees holding valid Qt Commercial licenses may use this file in
|
||||
accordance with the Qt Solutions Commercial License Agreement provided
|
||||
with the Software or, alternatively, in accordance with the terms
|
||||
contained in a written agreement between you and Nokia.
|
||||
|
||||
GNU Lesser General Public License Usage
|
||||
Alternatively, this file may be used under the terms of the GNU Lesser
|
||||
General Public License version 2.1 as published by the Free Software
|
||||
Foundation and appearing in the file LICENSE.LGPL included in the
|
||||
packaging of this file. Please review the following information to
|
||||
ensure the GNU Lesser General Public License version 2.1 requirements
|
||||
will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
|
||||
|
||||
In addition, as a special exception, Nokia gives you certain
|
||||
additional rights. These rights are described in the Nokia Qt LGPL
|
||||
Exception version 1.1, included in the file LGPL_EXCEPTION.txt in this
|
||||
package.
|
||||
|
||||
GNU General Public License Usage
|
||||
Alternatively, this file may be used under the terms of the GNU
|
||||
General Public License version 3.0 as published by the Free Software
|
||||
Foundation and appearing in the file LICENSE.GPL included in the
|
||||
packaging of this file. Please review the following information to
|
||||
ensure the GNU General Public License version 3.0 requirements will be
|
||||
met: http://www.gnu.org/copyleft/gpl.html.
|
||||
|
||||
Please note Third Party Software included with Qt Solutions may impose
|
||||
additional restrictions and it is the user's responsibility to ensure
|
||||
that they have met the licensing requirements of the GPL, LGPL, or Qt
|
||||
Solutions Commercial license and the relevant license of the Third
|
||||
Party Software they are using.
|
||||
|
||||
If you are unsure which license is appropriate for your use, please
|
||||
contact Nokia at qt-info@nokia.com.
|
||||
|
||||
|
||||
Files: src/lineedit/*
|
||||
Copyright: Copyright (c) 2007 Trolltech ASA <info@trolltech.com>
|
||||
License: other
|
||||
|
||||
Use, modification and distribution is allowed without limitation,
|
||||
warranty, liability or support of any kind.
|
||||
|
||||
|
||||
Files: debian/*
|
||||
Copyright: Copyright © 2008 Cristian Greco
|
||||
License: GPL-2+
|
||||
|
||||
Files: src/Icons/*.png
|
||||
Copyright: Gnome Icon Theme
|
||||
License: GPL-2
|
||||
|
||||
Files: src/Icons/skin/*.png
|
||||
src/menuicons/YYxYY/*.png
|
||||
Copyright: Mateusz Tobola <tobejodok@qbittorrent.org>
|
||||
License: GPL-2
|
||||
|
||||
Files: src/lang/*.ts
|
||||
Copyright:
|
||||
- Arabic: SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)
|
||||
- Armenian: Hrant Ohanyan (hrantohanyan@mail.am)
|
||||
- Basque: Xabier Aramendi (azpidatziak@gmail.com)
|
||||
- Belarusian: Mihas Varantsou (meequz@gmail.com)
|
||||
- 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 (guoyue0418@hotmail.com)
|
||||
- Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com)
|
||||
- Croatian: Olivier Delakroa (oliver.untwist@gmail.com)
|
||||
- Czech: Jirka Vilim (web@tets.cz)
|
||||
- Danish: Mathias Nielsen (comoneo@gmail.com)
|
||||
- Dutch: Pieter Heyvaert (pieter_heyvaert@hotmail.com)
|
||||
- English: Christophe Dumez (chris@qbittorrent.org)
|
||||
- Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net)
|
||||
and Pekka Niemi (pekka.niemi@iki.fi)
|
||||
- French: Christophe Dumez (chris@qbittorrent.org)
|
||||
- Galician: Marcos Lans (marcoslansgarza@gmail.com)
|
||||
- Georgian: Beqa Arabuli (arabulibeqa@yahoo.com)
|
||||
- German: Niels Hoffmann (zentralmaschine@users.sourceforge.net)
|
||||
- Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net)
|
||||
and Stephanos Antaris (santaris@csd.auth.gr)
|
||||
- Hebrew: David Deutsch (d.deffo@gmail.com)
|
||||
- Hungarian: Majoros Péter (majoros.j.p@t-online.hu)
|
||||
- Italian: bovirus (bovirus@live.it) and Matteo Sechi (bu17714@gmail.com)
|
||||
- Japanese: Masato Hashimoto (cabezon.hashimoto@gmail.com)
|
||||
- Korean: Jin Woo Sin (jin828sin@users.sourceforge.net)
|
||||
- Lithuanian: Naglis Jonaitis (njonaitis@gmail.com)
|
||||
- Norwegian: Tomaso
|
||||
- Polish: Jarek Smieja (ajep9691@wp.pl)
|
||||
- Portuguese: Nick Marinho (nickmarinho@gmail.com)
|
||||
- Romanian: Obada Denis (obadadenis@users.sourceforge.net)
|
||||
- Russian: Nick Khazov (m2k3d0n at users.sourceforge.net)
|
||||
- Slovak: helix84
|
||||
- Spanish: Francisco Luque Contreras (frannoe@ya.com)
|
||||
- Swedish: Daniel Nylander (po@danielnylander.se)
|
||||
- Turkish: Hasan Yilmaz (iletisim@hedefturkce.com)
|
||||
- Ukrainian: Oleh Prypin (blaxpirit@gmail.com)
|
||||
License: GPL-2
|
||||
|
||||
This package 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 package 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'.
|
||||
|
||||
|
||||
Files: src/Icons/skin/qbittorrent_mono*
|
||||
Copyright: Daniel Eguren <deguren@gmail.com>
|
||||
License: LGPL-2.1+
|
||||
|
||||
Files: src/ico.cpp, src/ico.h
|
||||
Copyright: Copyright © 2000 Malte Starostik <malte@kde.org>
|
||||
License: LGPL-2.1+
|
||||
|
||||
Files: src/oxygen/*.png
|
||||
Copyright: Oxygen Icon Theme (KDE) - www.oxygen-icons.org
|
||||
License: LGPL-2.1+
|
||||
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; 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 Lesser General
|
||||
Public License can be found in `/usr/share/common-licenses/LGPL-2.1'.
|
||||
|
||||
|
||||
Files: src/stacktrace.h
|
||||
Copyright: Copyright © 2008 Timo Bingmann
|
||||
License: other
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
Version 2, December 2004
|
||||
|
||||
Copyright (C) 2004 Sam Hocevar
|
||||
14 rue de Plaisance, 75014 Paris, France
|
||||
Everyone is permitted to copy and distribute verbatim or modified
|
||||
copies of this license document, and changing it is allowed as long
|
||||
as the name is changed.
|
||||
|
||||
DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE
|
||||
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
|
||||
|
||||
0. You just DO WHAT THE FUCK YOU WANT TO.
|
||||
|
||||
|
||||
Files: src/Icons/flags/*.png
|
||||
Copyright: Mark James <http://www.famfamfam.com>
|
||||
License: other
|
||||
|
||||
Available for free use for any purpose with no requirement for attribution.
|
||||
|
||||
|
||||
File: src/searchengine/nova/engines/btdigg.py
|
||||
Copyright: BTDigg team (research@btdigg.org)
|
||||
License: GPL-3+
|
||||
|
||||
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 3 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, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
On Debian systems, the complete text of the GNU General Public License
|
||||
version 3 can be found in `/usr/share/common-licenses/GPL-3'.
|
||||
|
||||
|
||||
File: src/update_qrc_files.py,
|
||||
src/searchengine/nova/engines/isohunt.py
|
||||
src/searchengine/nova/engines/btjunkie.py
|
||||
src/searchengine/nova/engines/vertor.py
|
||||
src/searchengine/nova/engines/torrentdownloads.py
|
||||
src/searchengine/nova/helpers.py
|
||||
src/searchengine/nova/nova2dl.py
|
||||
src/searchengine/nova/novaprinter.py
|
||||
Copyright: Christophe Dumez <chris@qbittorrent.org>
|
||||
License: BSD-3
|
||||
|
||||
Files: src/searchengine/nova/nova2.py
|
||||
src/searchengine/nova/engines/mininova.py
|
||||
src/searchengine/nova/engines/piratebay.py
|
||||
Copyright: Fabien Devaux <fab@gnux.info>
|
||||
License: BSD-3
|
||||
|
||||
Files: src/searchengine/nova/engines/torrentreactor.py
|
||||
Copyright: Gekko Dam Beer (gekko04@users.sourceforge.net)
|
||||
License: BSD-3
|
||||
|
||||
Files: src/searchengine/socks.py
|
||||
Copyright: Copyright 2006 Dan-Haim
|
||||
License: BSD-3
|
||||
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted under the terms of the BSD License.
|
||||
|
||||
1. Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
2. Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in the
|
||||
documentation and/or other materials provided with the distribution.
|
||||
3. Neither the name of the University nor the names of its contributors
|
||||
may be used to endorse or promote products derived from this software
|
||||
without specific prior written permission.
|
||||
|
||||
THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
|
||||
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
|
||||
FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
|
||||
DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
|
||||
OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
|
||||
HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
|
||||
LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
|
||||
OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
|
||||
SUCH DAMAGE.
|
||||
|
||||
|
||||
Files: src/Icons/skin/tabs.gif
|
||||
Copyright: Greg Houston <gregory.houston@gmail.com>
|
||||
License: MIT
|
||||
|
||||
Files: src/webui/css/mootabs1.2.css
|
||||
Copyright: Copyright © 2008 Christophe Dumez <chris@qbittorrent.org>
|
||||
Original code from http://www.silverscripting.com/mootabs/
|
||||
License: MIT
|
||||
|
||||
Files: src/webui/scripts/download.js
|
||||
Copyright: Copyright © 2008 Ishan Arora <ishan@qbittorrent.org>
|
||||
License: MIT
|
||||
|
||||
Files: src/webui/scripts/client.js
|
||||
src/webui/scripts/dynamicTable.js
|
||||
Copyright: Copyright © 2008 Ishan Arora <ishan@qbittorrent.org>
|
||||
Copyright © 2008 Christophe Dumez <chris@qbittorrent.org>
|
||||
License: MIT
|
||||
|
||||
Files: src/webui/scripts/mocha.js
|
||||
src/webui/scripts/mocha-init.js
|
||||
src/webui/css/mocha.css
|
||||
Copyright: Copyright © 2007-2008 Greg Houston, <http://greghoustondesign.com/>
|
||||
License: MIT-style
|
||||
|
||||
Files: src/webui/scripts/mootabs1.2.js
|
||||
Copyright: Copyright © 2008 Christophe Dumez <chris@qbittorrent.org>
|
||||
Original code from http://www.silverscripting.com/mootabs/
|
||||
License: MIT
|
||||
|
||||
File: src/webui/scripts/mootools-1.2-core-yc.js
|
||||
src/webui/scripts/mootools-1.2-more.js
|
||||
Copyright: Copyright © 2006-2008 Valerio Proietti, <http://mootools.net>
|
||||
License: MIT
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to
|
||||
deal in the Software without restriction, including without limitation the
|
||||
rights to use, copy, modify, merge, publish, distribute, sublicense, and/or
|
||||
sell copies of the Software, and to permit persons to whom the Software is
|
||||
furnished to do so, subject to the following conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be included in
|
||||
all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
|
||||
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
|
||||
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
@@ -1 +0,0 @@
|
||||
README.md
|
||||
@@ -1,12 +0,0 @@
|
||||
qbittorrent-nox for Debian
|
||||
--------------------------
|
||||
|
||||
qBittorrent-nox is a version of qBittorrent that does not require X and can
|
||||
be controlled via a WebUI, thus is more suitable for headless servers.
|
||||
|
||||
The Web User Interface is accessible as a default on http://localhost:8080.
|
||||
Access is secured and the default account user name is "admin" with
|
||||
"adminadmin" as a password. Please refer to qbittorrent-nox(1) manpage for
|
||||
more information.
|
||||
|
||||
-- Cristian Greco <cristian@regolo.cc> Wed, 20 Jan 2010 00:50:45 +0100
|
||||
@@ -1 +0,0 @@
|
||||
application/x-bittorrent; qbittorrent %s; description="BitTorrent client"; test=test -n "$DISPLAY"; nametemplate=%s.torrent
|
||||
@@ -1,39 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
DPKG_EXPORT_BUILDFLAGS = 1
|
||||
include /usr/share/dpkg/buildflags.mk
|
||||
|
||||
%:
|
||||
dh $@ --without autoreconf -Scmake+ninja
|
||||
|
||||
override_dh_auto_configure:
|
||||
dh_auto_configure --builddirectory build-nox -- \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DGUI=OFF -DQT6=ON -DSYSTEMD=ON
|
||||
|
||||
dh_auto_configure --builddirectory build-gui -- \
|
||||
-DCMAKE_BUILD_TYPE=RelWithDebInfo \
|
||||
-DQT6=ON
|
||||
|
||||
override_dh_auto_build:
|
||||
dh_auto_build --builddirectory build-nox
|
||||
dh_auto_build --builddirectory build-gui
|
||||
|
||||
override_dh_auto_install:
|
||||
dh_auto_install --builddirectory build-nox --destdir debian/qbittorrent-nox
|
||||
dh_auto_install --builddirectory build-gui --destdir debian/qbittorrent
|
||||
|
||||
override_dh_installsystemduser:
|
||||
dh_installsystemduser -pqbittorrent-nox --no-enable
|
||||
|
||||
override_dh_auto_clean:
|
||||
dh_auto_clean --builddirectory build-nox
|
||||
dh_auto_clean --builddirectory build-gui
|
||||
|
||||
override_dh_clean:
|
||||
dh_clean src/webui/www/translations/webui_*.qm \
|
||||
src/lang/qbittorrent_*.qm src/base/version.h
|
||||
|
||||
override_dh_auto_test:
|
||||
# Empty target to override default behavior which results
|
||||
# in an errored build
|
||||
@@ -1 +0,0 @@
|
||||
3.0 (quilt)
|
||||
@@ -1,7 +0,0 @@
|
||||
# False positive. File is not minified.
|
||||
source-is-missing src/webui/www/public/scripts/excanvas-compressed.js
|
||||
source-is-missing src/webui/www/public/scripts/mocha-init.js line length is 445 characters (>256)
|
||||
|
||||
# Full source provided in debian/missing-sources
|
||||
source-is-missing src/webui/www/public/scripts/mootools-1.2-core-yc.js
|
||||
source-is-missing debian/missing-sources/mootools-1.2-core-yc.js
|
||||
@@ -1,9 +0,0 @@
|
||||
version=3
|
||||
|
||||
#unstable: follow stable and rc releases
|
||||
opts="uversionmangle=s/rc/~rc/" \
|
||||
http://sf.net/qbittorrent/qbittorrent-([\d\.]*(?:rc\d)?)\.tar\.xz
|
||||
|
||||
#experimental: follow stable, rc and beta releases
|
||||
#opts="uversionmangle=s/(rc|beta)/~$1/" \
|
||||
# http://sf.net/qbittorrent/qbittorrent-([\d\.]*(?:(?:rc|beta)\d)?)\.tar\.xz
|
||||
44
doc/qbittorrent-nox.1
Normal file
@@ -0,0 +1,44 @@
|
||||
.\" This manpage has been automatically generated by docbook2man
|
||||
.\" from a DocBook document. This tool can be found at:
|
||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>.
|
||||
.TH "QBITTORRENT\-NOX" "1" "January 16th 2010" "Command line Bittorrent client written in C++ / Qt4" ""
|
||||
|
||||
.SH "NAME"
|
||||
qBittorrent\-nox \- a command line Bittorrent client written in C++ / Qt4
|
||||
|
||||
.SH "SYNOPSIS"
|
||||
|
||||
\fBqbittorrent\-nox\fR [\-\-webui-port=x] [TORRENT_FILE | URL]...
|
||||
|
||||
\fBqbittorrent\-nox\fR \-\-help
|
||||
|
||||
\fBqbittorrent\-nox\fR \-\-version
|
||||
|
||||
.PP
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
\fBqBittorrent-nox\fR is an advanced command-line Bittorrent client written in C++ / Qt4,
|
||||
using the \fBlibtorrent-rasterbar\fR library by Arvid Norberg. qBittorrent\-nox aims
|
||||
to be a good alternative to other command line bittorrent clients and provides features similar to popular graphical clients.
|
||||
|
||||
qBittorrent\-nox is fast, stable, light and it supports unicode.
|
||||
It also comes with UPnP port forwarding / NAT-PMP, encryption (Vuze compatible),
|
||||
FAST extension (mainline) and PeX support (utorrent compatible).
|
||||
|
||||
qBittorrent\-nox is meant to be controlled via its feature-rich Web UI which is accessible as a default on http://localhost:8080. The Web UI access is secured and the default account user name is "admin" with "adminadmin" as a password.
|
||||
|
||||
.SH "OPTIONS"
|
||||
|
||||
\fB--help\fR Prints the command line options.
|
||||
|
||||
\fB--version\fR Prints qbittorrent program version number.
|
||||
|
||||
\fB--webui-port=x\fR Changes Web UI port to x (default: 8080).
|
||||
|
||||
.SH "BUGS"
|
||||
|
||||
If you find a bug, please report it at http://bugs.qbittorrent.org
|
||||
|
||||
.SH "AUTHOR"
|
||||
|
||||
Christophe Dumez <chris@qbittorrent.org>
|
||||
42
doc/qbittorrent.1
Normal file
@@ -0,0 +1,42 @@
|
||||
.\" 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>
|
||||
@@ -1,74 +0,0 @@
|
||||
libtorrent-rasterbar for Debian
|
||||
-------------------------------
|
||||
|
||||
* libtorrent-rasterbar 0.14.2-2
|
||||
|
||||
Revert build dependencies to boost1.37 only.
|
||||
|
||||
-- Cristian Greco <cristian.debian@gmail.com> Wed, 11 Mar 2009 16:27:20 +0100
|
||||
|
||||
* libtorrent-rasterbar 0.14.2-1
|
||||
|
||||
Enabled building against boost1.37 due to the boost library transition: build
|
||||
dependencies will be updated each time a new version of boost get uploaded in
|
||||
Debian (this will happen likely two times a year in the future).
|
||||
Building against boost1.34.1 is still supported for backport purposes.
|
||||
|
||||
-- Cristian Greco <cristian.debian@gmail.com> Fri, 27 Feb 2009 07:46:38 +0100
|
||||
|
||||
|
||||
* libtorrent-rasterbar 0.14.1-1
|
||||
|
||||
While version 0.14 was built against boost1.36, it seems like this release of
|
||||
the boost libraries has been deleted from Debian and maintainers encourage use
|
||||
of the next stable release boost1.37.
|
||||
Anyhow, the best choice actually is to build 0.14.1 against boost1.34.1 because
|
||||
it is a widely used and well tested release, and on the other hand maybe
|
||||
libtorrent-rasterbar is not yet ready to support boost1.37.
|
||||
|
||||
-- Cristian Greco <cristian.debian@gmail.com> Mon, 15 Dec 2008 15:34:17 +0100
|
||||
|
||||
|
||||
* libtorrent-rasterbar 0.14-1
|
||||
|
||||
- Python bindings for libtorrent-rasterbar
|
||||
Added a patch (merged upstream, will be available in 0.14.1) to build python
|
||||
bindings using configure and make. The name of the python module (and package)
|
||||
is 'python-libtorrent' (as requested by upstream).
|
||||
|
||||
- Lintian Info tag 'no-symbols-control-file'
|
||||
Maintaining a symbols control file for that library is more a cost than a
|
||||
benefit. In fact, libtorrent-rasterbar exports a lot of symbols (quite big
|
||||
symbols files, ~600Kb) and the C++ ABI mangling requires one to maintain a
|
||||
different control file for each architecture. Moreover this library has a few
|
||||
reverse dependencies (less than 10 clients, much of them not yet packaged for
|
||||
Debian), so it wouldn't be difficult to maintain them.
|
||||
|
||||
-- Cristian Greco <cristian.debian@gmail.com> Sun, 23 Nov 2008 18:55:24 +0100
|
||||
|
||||
|
||||
* libtorrent-rasterbar 0.13.1-2
|
||||
|
||||
Building a debug version (--enable-debug) of libtorrent-rasterbar seems to
|
||||
cause some clients to crash (such as qbittorrent, btg - qbittorrent needs a
|
||||
special option in order to build against a debug version), and actually most
|
||||
clients upstream developers seems to prefer a release build of the library.
|
||||
|
||||
Then, now libtorrent-rasterbar builds a release version (--disable-debug).
|
||||
|
||||
NOTE for maintainers of all clients which depend on libtorrent-rasterbar:
|
||||
please build-depends on this exact revision of the package in your
|
||||
debian/control file:
|
||||
Build-Depends: libtorrent-rasterbar-dev (>= 0.13.1-2)
|
||||
|
||||
-- Cristian Greco <cgreco@cs.unibo.it> Wed, 23 Jul 2008 11:18:31 +0200
|
||||
|
||||
|
||||
* libtorrent-rasterbar 0.13.1-1
|
||||
|
||||
Actually, libtorrent-rasterbar has to be built against boost-1.34 and libasio
|
||||
instead of boost-1.35 (which includes libasio and conflicts with version 1.34);
|
||||
this is for compatibility with most bittorrent clients which depend also on
|
||||
boost-1.34.
|
||||
|
||||
-- Cristian Greco <cgreco@cs.unibo.it> Wed, 02 Jul 2008 10:46:21 +0200
|
||||
@@ -1,41 +0,0 @@
|
||||
libtorrent-rasterbar (1.2.5+git20200401.dcf3c83d29-1ppa1~19.04) disco; urgency=medium
|
||||
|
||||
* Build 1.2.5
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Wed, 01 Apr 2020 18:05:54 +0300
|
||||
|
||||
libtorrent-rasterbar (1.2.5+git20200323.0d06d47a29-2ppa1~19.04) disco; urgency=medium
|
||||
|
||||
* Build 1.2.5
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Tue, 24 Mar 2020 15:37:24 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.5+git20200323.0d06d47a29-1ppa1~19.04) disco; urgency=medium
|
||||
|
||||
* Build 1.2.5
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Mon, 23 Mar 2020 21:02:09 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.3+git20191216.68196dceae-1ppa1~19.04) disco; urgency=medium
|
||||
|
||||
* Build 1.2.3
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Mon, 16 Dec 2019 01:11:34 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.2+git20191202.7b0bb2fb0b-1ppa1~19.04) disco; urgency=medium
|
||||
|
||||
* Build 1.2.2
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Mon, 02 Dec 2019 15:36:28 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.0+git20190220.82900c441c-1ppa1~19.04) disco; urgency=medium
|
||||
|
||||
* Build 1.2.0
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Wed, 20 Feb 2019 17:04:17 +0200
|
||||
@@ -1 +0,0 @@
|
||||
10
|
||||
@@ -1,53 +0,0 @@
|
||||
Source: libtorrent-rasterbar
|
||||
Section: libs
|
||||
Priority: optional
|
||||
Maintainer: Cristian Greco <cristian@debian.org>
|
||||
Uploaders: Andrew Starr-Bochicchio <asb@debian.org>
|
||||
Build-Depends: debhelper (>= 9),
|
||||
dh-autoreconf,
|
||||
dpkg-dev (>= 1.16.1~),
|
||||
libboost-system-dev,
|
||||
libssl-dev,
|
||||
pkg-config
|
||||
Standards-Version: 3.9.8
|
||||
Vcs-Git: git://anonscm.debian.org/collab-maint/libtorrent-rasterbar.git
|
||||
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/libtorrent-rasterbar.git
|
||||
Homepage: http://www.rasterbar.com/products/libtorrent/index.html
|
||||
|
||||
Package: libtorrent-rasterbar10
|
||||
Architecture: any
|
||||
Pre-Depends: dpkg (>= 1.15.6~)
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Suggests: libtorrent-rasterbar-dbg
|
||||
Description: C++ bittorrent library by Rasterbar Software
|
||||
Bittorrent library by Rasterbar Software (Arvid Norberg).
|
||||
libtorrent-rasterbar is a C++ library that aims to be a good alternative to
|
||||
all the other bittorrent implementations around.
|
||||
.
|
||||
The main goals of libtorrent-rasterbar are:
|
||||
* to be cpu efficient
|
||||
* to be memory efficient
|
||||
* to be very easy to use
|
||||
.
|
||||
This package contains libtorrent-rasterbar run time shared library.
|
||||
|
||||
Package: libtorrent-rasterbar-dev
|
||||
Section: libdevel
|
||||
Architecture: any
|
||||
Pre-Depends: dpkg (>= 1.15.6~)
|
||||
Depends: ${misc:Depends},
|
||||
libtorrent-rasterbar10 (= ${binary:Version}),
|
||||
libboost-system-dev,
|
||||
libssl-dev,
|
||||
pkg-config
|
||||
Description: Development files for libtorrent-rasterbar
|
||||
Bittorrent library by Rasterbar Software (Arvid Norberg).
|
||||
libtorrent-rasterbar is a C++ library that aims to be a good alternative to
|
||||
all the other bittorrent implementations around.
|
||||
.
|
||||
The main goals of libtorrent-rasterbar are:
|
||||
* to be cpu efficient
|
||||
* to be memory efficient
|
||||
* to be very easy to use
|
||||
.
|
||||
This package contains header files and static version of the library.
|
||||
@@ -1,168 +0,0 @@
|
||||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Packaged-By: Cristian Greco <cristian.debian@gmail.com>
|
||||
Packaged-Date: Wed, 02 Jul 2008 10:46:21 +0200
|
||||
Upstream-Name: libtorrent
|
||||
Upstream-Contact: Arvid Norberg <arvid@rasterbar.com>
|
||||
Source: https://github.com/arvidn/libtorrent/releases
|
||||
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2008 Cristian Greco
|
||||
License: GPL-2+
|
||||
This package 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 package 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'.
|
||||
|
||||
|
||||
Files: * *.cpp *.hpp docs/*.rst docs/*.html
|
||||
Copyright: 2003-2008 Arvid Norberg
|
||||
Comment: Contributors:
|
||||
2003-2007 Daniel Wallin
|
||||
2007 Un Shyam
|
||||
2006 Magnus Jonsson
|
||||
2006 MassaRoddel
|
||||
License: BSD-3-clause
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
.
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of the author nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
Files: src/GeoIP.c include/libtorrent/GeoIP.h
|
||||
Copyright: 2006 MaxMind LLC
|
||||
License: LGPL-2.1+
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
.
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
.
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; 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 Lesser General
|
||||
Public License can be found in `/usr/share/common-licenses/LGPL-2.1'.
|
||||
|
||||
|
||||
Files: bindings/python/*.py
|
||||
bindings/python/src/*.cpp
|
||||
bindings/python/src/*.hpp
|
||||
include/libtorrent/invariant_check.hpp
|
||||
Copyright: 2004-2007 Daniel Wallin
|
||||
2006-2008 Arvid Norberg
|
||||
2008 Andrew Resch
|
||||
License: BSL-1.0
|
||||
Boost Software License - Version 1.0 - August 17th, 2003
|
||||
.
|
||||
Permission is hereby granted, free of charge, to any person or organization
|
||||
obtaining a copy of the software and accompanying documentation covered by
|
||||
this license (the "Software") to use, reproduce, display, distribute,
|
||||
execute, and transmit the Software, and to prepare derivative works of the
|
||||
Software, and to permit third-parties to whom the Software is furnished to
|
||||
do so, all subject to the following:
|
||||
.
|
||||
The copyright notices in the Software and this entire statement, including
|
||||
the above license grant, this restriction and the following disclaimer,
|
||||
must be included in all copies of the Software, in whole or in part, and
|
||||
all derivative works of the Software, unless such copies or derivative
|
||||
works are solely in the form of machine-executable object code generated by
|
||||
a source language processor.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
Files: src/ConvertUTF.cpp include/libtorrent/ConvertUTF.h
|
||||
Copyright: 2001-2004 Unicode, Inc.
|
||||
License: other
|
||||
This source code is provided as is by Unicode, Inc. No claims are
|
||||
made as to fitness for any particular purpose. No warranties of any
|
||||
kind are expressed or implied. The recipient agrees to determine
|
||||
applicability of information provided. If this file has been
|
||||
purchased on magnetic or optical media from Unicode, Inc., the
|
||||
sole remedy for any claim will be exchange of defective media
|
||||
within 90 days of receipt.
|
||||
.
|
||||
Limitations on Rights to Redistribute This Code
|
||||
.
|
||||
Unicode, Inc. hereby grants the right to freely use the information
|
||||
supplied in this file in the creation of products supporting the
|
||||
Unicode Standard, and to make copies of this file in any form
|
||||
for internal or external distribution as long as this notice
|
||||
remains attached.
|
||||
|
||||
|
||||
Files: include/libtorrent/puff.hpp
|
||||
Copyright: 2002-2003 Mark Adler
|
||||
License: Zlib
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the author be held liable for any damages
|
||||
arising from the use of this software.
|
||||
.
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
.
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would
|
||||
be appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not
|
||||
be misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
|
||||
|
||||
Files: src/sha1.cpp
|
||||
Copyright: Steve Reid <sreid@sea-to-sky.net>
|
||||
Comment: Contributors:
|
||||
Modified 7/98 By James H. Brown <jbrown@burgoyne.com>
|
||||
Modified 8/98 By Steve Reid <sreid@sea-to-sky.net>
|
||||
Modified 4/01 By Saul Kravitz <Saul.Kravitz@celera.com>
|
||||
Converted to C++ 6/04 By Arvid Norberg <arvidn@sourceforge.net>
|
||||
License: public-domain
|
||||
The file sha1.c was put in the public domain by Steve Reid.
|
||||
@@ -1 +0,0 @@
|
||||
AUTHORS
|
||||
@@ -1 +0,0 @@
|
||||
libtorrent-rasterbar_1.2.5+git20200401.dcf3c83d29-1ppa1~19.04_source.buildinfo libs optional
|
||||
@@ -1,4 +0,0 @@
|
||||
usr/include/*
|
||||
usr/lib/*/lib*.a
|
||||
usr/lib/*/lib*.so
|
||||
usr/lib/*/pkgconfig/*.pc
|
||||
@@ -1 +0,0 @@
|
||||
usr/lib/*/lib*.so.*
|
||||
@@ -1,50 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
DPKG_EXPORT_BUILDFLAGS = 1
|
||||
include /usr/share/dpkg/buildflags.mk
|
||||
|
||||
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||
|
||||
CONFIGURE_ARGS = --with-libiconv --with-boost-libdir=/usr/lib/$(DEB_HOST_MULTIARCH) --disable-deprecated-functions CXXFLAGS=-std=c++14 CPPFLAGS=-std=c++14
|
||||
|
||||
%:
|
||||
dh $@ --parallel --with autoreconf
|
||||
|
||||
override_dh_auto_configure-nopy:
|
||||
dh_auto_configure --builddirectory build -- $(CONFIGURE_ARGS)
|
||||
|
||||
# By default dh_autoreconf runs `autoreconf -f -i`
|
||||
# But that fails because it can't find `config.rpath`
|
||||
# Running `autotool.sh` just works
|
||||
override_dh_autoreconf:
|
||||
./autotool.sh
|
||||
|
||||
override_dh_auto_configure: override_dh_auto_configure-nopy
|
||||
|
||||
|
||||
override_dh_auto_build-nopy:
|
||||
dh_auto_build --builddirectory build
|
||||
|
||||
override_dh_auto_build: override_dh_auto_build-nopy
|
||||
|
||||
|
||||
override_dh_auto_install-nopy:
|
||||
dh_auto_install --builddirectory build
|
||||
|
||||
override_dh_auto_install: override_dh_auto_install-nopy
|
||||
|
||||
# During initial build, there is a "clean" step performed
|
||||
# at this point there isn't a Makefile yet and
|
||||
# dh_auto_clean falsely detects that it has to run `setup.py`
|
||||
# and fails.
|
||||
override_dh_auto_clean:
|
||||
[ ! -f Makefile ] || dh_auto_clean
|
||||
|
||||
override_dh_compress:
|
||||
dh_compress -Xcpp
|
||||
|
||||
override_dh_makeshlibs:
|
||||
dh_makeshlibs -V
|
||||
|
||||
override_dh_builddeb:
|
||||
dh_builddeb -- -Z xz
|
||||
@@ -1 +0,0 @@
|
||||
3.0 (quilt)
|
||||
@@ -1,3 +0,0 @@
|
||||
version=3
|
||||
opts=uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/ \
|
||||
https://github.com/arvidn/libtorrent/releases .*/libtorrent-rasterbar-(\d\S*)\.tar\.gz
|
||||
@@ -1,74 +0,0 @@
|
||||
libtorrent-rasterbar for Debian
|
||||
-------------------------------
|
||||
|
||||
* libtorrent-rasterbar 0.14.2-2
|
||||
|
||||
Revert build dependencies to boost1.37 only.
|
||||
|
||||
-- Cristian Greco <cristian.debian@gmail.com> Wed, 11 Mar 2009 16:27:20 +0100
|
||||
|
||||
* libtorrent-rasterbar 0.14.2-1
|
||||
|
||||
Enabled building against boost1.37 due to the boost library transition: build
|
||||
dependencies will be updated each time a new version of boost get uploaded in
|
||||
Debian (this will happen likely two times a year in the future).
|
||||
Building against boost1.34.1 is still supported for backport purposes.
|
||||
|
||||
-- Cristian Greco <cristian.debian@gmail.com> Fri, 27 Feb 2009 07:46:38 +0100
|
||||
|
||||
|
||||
* libtorrent-rasterbar 0.14.1-1
|
||||
|
||||
While version 0.14 was built against boost1.36, it seems like this release of
|
||||
the boost libraries has been deleted from Debian and maintainers encourage use
|
||||
of the next stable release boost1.37.
|
||||
Anyhow, the best choice actually is to build 0.14.1 against boost1.34.1 because
|
||||
it is a widely used and well tested release, and on the other hand maybe
|
||||
libtorrent-rasterbar is not yet ready to support boost1.37.
|
||||
|
||||
-- Cristian Greco <cristian.debian@gmail.com> Mon, 15 Dec 2008 15:34:17 +0100
|
||||
|
||||
|
||||
* libtorrent-rasterbar 0.14-1
|
||||
|
||||
- Python bindings for libtorrent-rasterbar
|
||||
Added a patch (merged upstream, will be available in 0.14.1) to build python
|
||||
bindings using configure and make. The name of the python module (and package)
|
||||
is 'python-libtorrent' (as requested by upstream).
|
||||
|
||||
- Lintian Info tag 'no-symbols-control-file'
|
||||
Maintaining a symbols control file for that library is more a cost than a
|
||||
benefit. In fact, libtorrent-rasterbar exports a lot of symbols (quite big
|
||||
symbols files, ~600Kb) and the C++ ABI mangling requires one to maintain a
|
||||
different control file for each architecture. Moreover this library has a few
|
||||
reverse dependencies (less than 10 clients, much of them not yet packaged for
|
||||
Debian), so it wouldn't be difficult to maintain them.
|
||||
|
||||
-- Cristian Greco <cristian.debian@gmail.com> Sun, 23 Nov 2008 18:55:24 +0100
|
||||
|
||||
|
||||
* libtorrent-rasterbar 0.13.1-2
|
||||
|
||||
Building a debug version (--enable-debug) of libtorrent-rasterbar seems to
|
||||
cause some clients to crash (such as qbittorrent, btg - qbittorrent needs a
|
||||
special option in order to build against a debug version), and actually most
|
||||
clients upstream developers seems to prefer a release build of the library.
|
||||
|
||||
Then, now libtorrent-rasterbar builds a release version (--disable-debug).
|
||||
|
||||
NOTE for maintainers of all clients which depend on libtorrent-rasterbar:
|
||||
please build-depends on this exact revision of the package in your
|
||||
debian/control file:
|
||||
Build-Depends: libtorrent-rasterbar-dev (>= 0.13.1-2)
|
||||
|
||||
-- Cristian Greco <cgreco@cs.unibo.it> Wed, 23 Jul 2008 11:18:31 +0200
|
||||
|
||||
|
||||
* libtorrent-rasterbar 0.13.1-1
|
||||
|
||||
Actually, libtorrent-rasterbar has to be built against boost-1.34 and libasio
|
||||
instead of boost-1.35 (which includes libasio and conflicts with version 1.34);
|
||||
this is for compatibility with most bittorrent clients which depend also on
|
||||
boost-1.34.
|
||||
|
||||
-- Cristian Greco <cgreco@cs.unibo.it> Wed, 02 Jul 2008 10:46:21 +0200
|
||||
@@ -1,154 +0,0 @@
|
||||
libtorrent-rasterbar2 (2.0.4-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 2.0.4
|
||||
* Use C++17 mode
|
||||
* Don't provide python bindings
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Sun, 20 Jun 2021 13:11:33 +0300
|
||||
|
||||
libtorrent-rasterbar (1.2.13+git20210501.22af326f6c-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.13
|
||||
* Use C++14 mode
|
||||
* Don't provide python2 bindings
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Sat, 01 May 2021 00:58:07 +0300
|
||||
|
||||
libtorrent-rasterbar (1.2.13+git20210323.34a979720b-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.13
|
||||
* Use C++14 mode
|
||||
* Don't provide python2 bindings
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Tue, 23 Mar 2021 20:15:34 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.13+git20210308.ed960c2562-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.13
|
||||
* Use C++14 mode
|
||||
* Don't provide python2 bindings
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Mon, 08 Mar 2021 14:01:57 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.12+git20210118.3efdb8a941-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.12
|
||||
* Use C++14 mode
|
||||
* Don't provide python2 bindings
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Mon, 18 Jan 2021 14:04:38 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.12+git20210104.bfafd20428-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.12
|
||||
* Use C++14 mode
|
||||
* Don't provide python2 bindings
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Mon, 04 Jan 2021 11:52:50 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.11+git20201226.2c7852ea22-3ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.11
|
||||
* Use C++14 mode
|
||||
* Don't provide python2 bindings
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Sat, 28 Dec 2020 21:42:22 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.11+git20201226.2c7852ea22-2ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.11
|
||||
* Use C++14 mode
|
||||
* Don't provide python2 bindings
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Sat, 27 Dec 2020 21:42:22 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.11+git20201226.2c7852ea22-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.11
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Sat, 26 Dec 2020 21:42:22 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.11+git20201124.afa406f890-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.11
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Wed, 25 Nov 2020 00:40:21 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.10+git20201018.3d48e7d056-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.10
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Sun, 18 Oct 2020 21:44:40 +0300
|
||||
|
||||
libtorrent-rasterbar (1.2.6+git20200425.a9968916ca-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.6
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Sat, 25 Apr 2020 03:09:38 +0300
|
||||
|
||||
libtorrent-rasterbar (1.2.6+git20200424.86f04b2c09-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.6
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Fri, 24 Apr 2020 22:54:49 +0300
|
||||
|
||||
libtorrent-rasterbar (1.2.6+git20200422.a9968916ca-2ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.6
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Wed, 22 Apr 2020 19:24:09 +0300
|
||||
|
||||
libtorrent-rasterbar (1.2.6+git20200422.a9968916ca-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.6
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Wed, 22 Apr 2020 19:24:08 +0300
|
||||
|
||||
libtorrent-rasterbar (1.2.5+git20200401.dcf3c83d29-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.5
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Wed, 01 Apr 2020 18:05:54 +0300
|
||||
|
||||
libtorrent-rasterbar (1.2.5+git20200323.0d06d47a29-2ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.5
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Tue, 24 Mar 2020 15:37:24 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.5+git20200323.0d06d47a29-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.5
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Mon, 23 Mar 2020 21:02:09 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.3+git20191216.68196dceae-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.3
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Mon, 16 Dec 2019 01:11:34 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.2+git20191202.7b0bb2fb0b-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.2
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Mon, 02 Dec 2019 15:36:28 +0200
|
||||
|
||||
libtorrent-rasterbar (1.2.0+git20190220.82900c441c-1ppa1~20.04) focal; urgency=medium
|
||||
|
||||
* Build 1.2.0
|
||||
* Use C++14 mode
|
||||
|
||||
-- sledgehammer999 <hammered999@gmail.com> Wed, 20 Feb 2019 17:04:17 +0200
|
||||
@@ -1 +0,0 @@
|
||||
10
|
||||
@@ -1,75 +0,0 @@
|
||||
Source: libtorrent-rasterbar2
|
||||
Section: libs
|
||||
Priority: optional
|
||||
Maintainer: Cristian Greco <cristian@debian.org>
|
||||
Uploaders: Andrew Starr-Bochicchio <asb@debian.org>
|
||||
Build-Depends: cmake,
|
||||
debhelper (>= 9),
|
||||
dh-python,
|
||||
libboost-tools-dev,
|
||||
libboost-dev,
|
||||
libboost-system-dev,
|
||||
libssl-dev,
|
||||
pkg-config
|
||||
Standards-Version: 3.9.8
|
||||
Vcs-Git: git://anonscm.debian.org/collab-maint/libtorrent-rasterbar.git
|
||||
Vcs-Browser: http://anonscm.debian.org/gitweb/?p=collab-maint/libtorrent-rasterbar.git
|
||||
Homepage: http://www.rasterbar.com/products/libtorrent/index.html
|
||||
X-Python-Version: >= 2.4
|
||||
X-Python3-Version: >= 3.1
|
||||
|
||||
Package: libtorrent-rasterbar2
|
||||
Architecture: any
|
||||
Pre-Depends: dpkg (>= 1.15.6~)
|
||||
Depends: ${shlibs:Depends}, ${misc:Depends}
|
||||
Suggests: libtorrent-rasterbar2-dbg
|
||||
Description: C++ bittorrent library by Rasterbar Software
|
||||
Bittorrent library by Rasterbar Software (Arvid Norberg).
|
||||
libtorrent-rasterbar is a C++ library that aims to be a good alternative to
|
||||
all the other bittorrent implementations around.
|
||||
.
|
||||
The main goals of libtorrent-rasterbar are:
|
||||
* to be cpu efficient
|
||||
* to be memory efficient
|
||||
* to be very easy to use
|
||||
.
|
||||
This package contains libtorrent-rasterbar run time shared library.
|
||||
|
||||
Package: libtorrent-rasterbar2-dev
|
||||
Section: libdevel
|
||||
Architecture: any
|
||||
Pre-Depends: dpkg (>= 1.15.6~)
|
||||
Depends: ${misc:Depends},
|
||||
libtorrent-rasterbar2 (= ${binary:Version}),
|
||||
libboost-system-dev,
|
||||
libssl-dev,
|
||||
pkg-config
|
||||
Description: Development files for libtorrent-rasterbar
|
||||
Bittorrent library by Rasterbar Software (Arvid Norberg).
|
||||
libtorrent-rasterbar is a C++ library that aims to be a good alternative to
|
||||
all the other bittorrent implementations around.
|
||||
.
|
||||
The main goals of libtorrent-rasterbar are:
|
||||
* to be cpu efficient
|
||||
* to be memory efficient
|
||||
* to be very easy to use
|
||||
.
|
||||
This package contains header files and static version of the library.
|
||||
|
||||
Package: libtorrent-rasterbar2-dbg
|
||||
Section: debug
|
||||
Priority: extra
|
||||
Architecture: any
|
||||
Pre-Depends: dpkg (>= 1.15.6~)
|
||||
Depends: ${misc:Depends}, libtorrent-rasterbar2 (= ${binary:Version})
|
||||
Description: Debug symbols for libtorrent-rasterbar
|
||||
Bittorrent library by Rasterbar Software (Arvid Norberg).
|
||||
libtorrent-rasterbar is a C++ library that aims to be a good alternative to
|
||||
all the other bittorrent implementations around.
|
||||
.
|
||||
The main goals of libtorrent-rasterbar are:
|
||||
* to be cpu efficient
|
||||
* to be memory efficient
|
||||
* to be very easy to use
|
||||
.
|
||||
This package contains debugging symbols.
|
||||
@@ -1,168 +0,0 @@
|
||||
Format: http://www.debian.org/doc/packaging-manuals/copyright-format/1.0/
|
||||
Packaged-By: Cristian Greco <cristian.debian@gmail.com>
|
||||
Packaged-Date: Wed, 02 Jul 2008 10:46:21 +0200
|
||||
Upstream-Name: libtorrent
|
||||
Upstream-Contact: Arvid Norberg <arvid@rasterbar.com>
|
||||
Source: https://github.com/arvidn/libtorrent/releases
|
||||
|
||||
|
||||
Files: debian/*
|
||||
Copyright: 2008 Cristian Greco
|
||||
License: GPL-2+
|
||||
This package 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 package 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'.
|
||||
|
||||
|
||||
Files: * *.cpp *.hpp docs/*.rst docs/*.html
|
||||
Copyright: 2003-2008 Arvid Norberg
|
||||
Comment: Contributors:
|
||||
2003-2007 Daniel Wallin
|
||||
2007 Un Shyam
|
||||
2006 Magnus Jonsson
|
||||
2006 MassaRoddel
|
||||
License: BSD-3-clause
|
||||
Redistribution and use in source and binary forms, with or without
|
||||
modification, are permitted provided that the following conditions
|
||||
are met:
|
||||
.
|
||||
* Redistributions of source code must retain the above copyright
|
||||
notice, this list of conditions and the following disclaimer.
|
||||
* Redistributions in binary form must reproduce the above copyright
|
||||
notice, this list of conditions and the following disclaimer in
|
||||
the documentation and/or other materials provided with the
|
||||
distribution.
|
||||
* Neither the name of the author nor the names of its
|
||||
contributors may be used to endorse or promote products derived
|
||||
from this software without specific prior written permission.
|
||||
.
|
||||
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
|
||||
AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
|
||||
IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
|
||||
ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE
|
||||
LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
|
||||
CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
|
||||
SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
|
||||
INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
|
||||
CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
|
||||
ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
|
||||
POSSIBILITY OF SUCH DAMAGE.
|
||||
|
||||
|
||||
Files: src/GeoIP.c include/libtorrent/GeoIP.h
|
||||
Copyright: 2006 MaxMind LLC
|
||||
License: LGPL-2.1+
|
||||
This library is free software; you can redistribute it and/or
|
||||
modify it under the terms of the GNU Lesser General Public
|
||||
License as published by the Free Software Foundation; either
|
||||
version 2.1 of the License, or (at your option) any later version.
|
||||
.
|
||||
This library 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
|
||||
Lesser General Public License for more details.
|
||||
.
|
||||
You should have received a copy of the GNU Lesser General Public
|
||||
License along with this library; 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 Lesser General
|
||||
Public License can be found in `/usr/share/common-licenses/LGPL-2.1'.
|
||||
|
||||
|
||||
Files: bindings/python/*.py
|
||||
bindings/python/src/*.cpp
|
||||
bindings/python/src/*.hpp
|
||||
include/libtorrent/invariant_check.hpp
|
||||
Copyright: 2004-2007 Daniel Wallin
|
||||
2006-2008 Arvid Norberg
|
||||
2008 Andrew Resch
|
||||
License: BSL-1.0
|
||||
Boost Software License - Version 1.0 - August 17th, 2003
|
||||
.
|
||||
Permission is hereby granted, free of charge, to any person or organization
|
||||
obtaining a copy of the software and accompanying documentation covered by
|
||||
this license (the "Software") to use, reproduce, display, distribute,
|
||||
execute, and transmit the Software, and to prepare derivative works of the
|
||||
Software, and to permit third-parties to whom the Software is furnished to
|
||||
do so, all subject to the following:
|
||||
.
|
||||
The copyright notices in the Software and this entire statement, including
|
||||
the above license grant, this restriction and the following disclaimer,
|
||||
must be included in all copies of the Software, in whole or in part, and
|
||||
all derivative works of the Software, unless such copies or derivative
|
||||
works are solely in the form of machine-executable object code generated by
|
||||
a source language processor.
|
||||
.
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
|
||||
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
|
||||
FITNESS FOR A PARTICULAR PURPOSE, TITLE AND NON-INFRINGEMENT. IN NO EVENT
|
||||
SHALL THE COPYRIGHT HOLDERS OR ANYONE DISTRIBUTING THE SOFTWARE BE LIABLE
|
||||
FOR ANY DAMAGES OR OTHER LIABILITY, WHETHER IN CONTRACT, TORT OR OTHERWISE,
|
||||
ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER
|
||||
DEALINGS IN THE SOFTWARE.
|
||||
|
||||
|
||||
Files: src/ConvertUTF.cpp include/libtorrent/ConvertUTF.h
|
||||
Copyright: 2001-2004 Unicode, Inc.
|
||||
License: other
|
||||
This source code is provided as is by Unicode, Inc. No claims are
|
||||
made as to fitness for any particular purpose. No warranties of any
|
||||
kind are expressed or implied. The recipient agrees to determine
|
||||
applicability of information provided. If this file has been
|
||||
purchased on magnetic or optical media from Unicode, Inc., the
|
||||
sole remedy for any claim will be exchange of defective media
|
||||
within 90 days of receipt.
|
||||
.
|
||||
Limitations on Rights to Redistribute This Code
|
||||
.
|
||||
Unicode, Inc. hereby grants the right to freely use the information
|
||||
supplied in this file in the creation of products supporting the
|
||||
Unicode Standard, and to make copies of this file in any form
|
||||
for internal or external distribution as long as this notice
|
||||
remains attached.
|
||||
|
||||
|
||||
Files: include/libtorrent/puff.hpp
|
||||
Copyright: 2002-2003 Mark Adler
|
||||
License: Zlib
|
||||
This software is provided 'as-is', without any express or implied
|
||||
warranty. In no event will the author be held liable for any damages
|
||||
arising from the use of this software.
|
||||
.
|
||||
Permission is granted to anyone to use this software for any purpose,
|
||||
including commercial applications, and to alter it and redistribute it
|
||||
freely, subject to the following restrictions:
|
||||
.
|
||||
1. The origin of this software must not be misrepresented; you must not
|
||||
claim that you wrote the original software. If you use this software
|
||||
in a product, an acknowledgment in the product documentation would
|
||||
be appreciated but is not required.
|
||||
2. Altered source versions must be plainly marked as such, and must not
|
||||
be misrepresented as being the original software.
|
||||
3. This notice may not be removed or altered from any source
|
||||
distribution.
|
||||
|
||||
|
||||
Files: src/sha1.cpp
|
||||
Copyright: Steve Reid <sreid@sea-to-sky.net>
|
||||
Comment: Contributors:
|
||||
Modified 7/98 By James H. Brown <jbrown@burgoyne.com>
|
||||
Modified 8/98 By Steve Reid <sreid@sea-to-sky.net>
|
||||
Modified 4/01 By Saul Kravitz <Saul.Kravitz@celera.com>
|
||||
Converted to C++ 6/04 By Arvid Norberg <arvidn@sourceforge.net>
|
||||
License: public-domain
|
||||
The file sha1.c was put in the public domain by Steve Reid.
|
||||
@@ -1 +0,0 @@
|
||||
AUTHORS
|
||||
@@ -1,50 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
#
|
||||
# Simple makefile for libtorrent-rasterbar's examples.
|
||||
# Copyright © 2009 Cristian Greco <cristian.debian@gmail.com>
|
||||
# This file is released in the public domain.
|
||||
#
|
||||
# Please note that you need to install the following packages in order to build
|
||||
# these example programs:
|
||||
# - libtorrent-rasterbar-dev
|
||||
# - libboost-program-options*-dev
|
||||
# - libboost-regex*-dev
|
||||
# (where the `*' means the same version of boost development packages which
|
||||
# libtorrent-rasterbar-dev actually depends on).
|
||||
|
||||
CXX = g++
|
||||
|
||||
CXXFLAGS = -ftemplate-depth-50 -DBOOST_MULTI_INDEX_DISABLE_SERIALIZATION
|
||||
|
||||
TORRENT_CFLAGS = $(shell pkg-config libtorrent-rasterbar --cflags)
|
||||
TORRENT_LIBS = $(shell pkg-config libtorrent-rasterbar --libs)
|
||||
|
||||
BOOST_PROGRAM_OPTIONS_LIBS = -lboost_program_options-mt
|
||||
BOOST_REGEX_LIBS = -lboost_regex-mt
|
||||
|
||||
examples_BIN = client_test dump_torrent make_torrent simple_client enum_if
|
||||
|
||||
all: $(examples_BIN)
|
||||
|
||||
client_test: client_test.cpp
|
||||
@rm -f client_test
|
||||
$(CXX) $(CXXFLAGS) $(TORRENT_CFLAGS) -o $@ $< $(TORRENT_LIBS) $(BOOST_PROGRAM_OPTIONS_LIBS) $(BOOST_REGEX_LIBS)
|
||||
|
||||
dump_torrent: dump_torrent.cpp
|
||||
@rm -f dump_torrent
|
||||
$(CXX) $(CXXFLAGS) $(TORRENT_CFLAGS) -o $@ $< $(TORRENT_LIBS)
|
||||
|
||||
make_torrent: make_torrent.cpp
|
||||
@rm -f make_torrent
|
||||
$(CXX) $(CXXFLAGS) $(TORRENT_CFLAGS) -o $@ $< $(TORRENT_LIBS)
|
||||
|
||||
simple_client: simple_client.cpp
|
||||
@rm -f simple_client
|
||||
$(CXX) $(CXXFLAGS) $(TORRENT_CFLAGS) -o $@ $< $(TORRENT_LIBS)
|
||||
|
||||
enum_if: enum_if.cpp
|
||||
@rm -f enum_if
|
||||
$(CXX) $(CXXFLAGS) $(TORRENT_CFLAGS) -o $@ $< $(TORRENT_LIBS)
|
||||
|
||||
clean:
|
||||
@rm -f $(examples_BIN)
|
||||
@@ -1,3 +0,0 @@
|
||||
opt/libtorrent-rasterbar2/include/*
|
||||
opt/libtorrent-rasterbar2/lib/*/lib*.so
|
||||
opt/libtorrent-rasterbar2/lib/*/pkgconfig/*.pc
|
||||
@@ -1 +0,0 @@
|
||||
opt/libtorrent-rasterbar2/lib/*/lib*.so.*
|
||||
@@ -1,36 +0,0 @@
|
||||
#!/usr/bin/make -f
|
||||
|
||||
DPKG_EXPORT_BUILDFLAGS = 1
|
||||
include /usr/share/dpkg/buildflags.mk
|
||||
|
||||
export DEB_LDFLAGS_MAINT_APPEND = -Wl,--as-needed
|
||||
|
||||
ifneq (,$(filter $(DEB_HOST_ARCH), armel mipsel m68k powerpc riscv64 sh4))
|
||||
export DEB_LDFLAGS_MAINT_APPEND += -Wl,--no-as-needed -latomic -Wl,--as-needed
|
||||
endif
|
||||
|
||||
CMAKE_ARGS = -DCMAKE_INSTALL_PREFIX=/opt/libtorrent-rasterbar2/ -DCMAKE_BUILD_TYPE=Release -DCMAKE_CXX_STANDARD=17 -Ddeprecated-functions=off
|
||||
|
||||
%:
|
||||
dh $@ --buildsystem=cmake
|
||||
|
||||
override_dh_auto_configure:
|
||||
dh_auto_configure -- $(CMAKE_ARGS)
|
||||
|
||||
#override_dh_auto_build:
|
||||
# dh_auto_build --builddirectory build
|
||||
#
|
||||
#override_dh_auto_install:
|
||||
# dh_auto_install --builddirectory build
|
||||
#
|
||||
#override_dh_auto_clean:
|
||||
# rm -rf build
|
||||
#
|
||||
override_dh_compress:
|
||||
dh_compress -Xcpp
|
||||
|
||||
override_dh_strip:
|
||||
dh_strip --dbg-package=libtorrent-rasterbar2-dbg
|
||||
|
||||
override_dh_makeshlibs:
|
||||
dh_makeshlibs -V
|
||||
@@ -1 +0,0 @@
|
||||
3.0 (quilt)
|
||||
@@ -1,3 +0,0 @@
|
||||
version=3
|
||||
opts=uversionmangle=s/(\d)[_\.\-\+]?((RC|rc|pre|dev|beta|alpha)\d*)$/$1~$2/ \
|
||||
https://github.com/arvidn/libtorrent/releases .*/libtorrent-rasterbar-(\d\S*)\.tar\.gz
|
||||
199
qBittorrent.kdevelop
Normal file
@@ -0,0 +1,199 @@
|
||||
<?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>
|
||||
4
qbittorrent.pro
Normal file
@@ -0,0 +1,4 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
SUBDIRS += src
|
||||
|
||||
22
qbittorrent.qc
Normal file
@@ -0,0 +1,22 @@
|
||||
<qconf>
|
||||
<name>qbittorrent</name>
|
||||
<profile>qbittorrent.pro</profile>
|
||||
<moddir>qcm</moddir>
|
||||
<datadir/>
|
||||
<dep type='qt4'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='pkg-config'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='libtorrent-rasterbar'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='libboost'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='libnotify'>
|
||||
</dep>
|
||||
<dep type='geoip-database'>
|
||||
</dep>
|
||||
</qconf>
|
||||
37
qcm/geoip-database.qcm
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
-----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
|
||||
}
|
||||
};
|
||||
56
qcm/libboost.qcm
Normal file
@@ -0,0 +1,56 @@
|
||||
/*
|
||||
-----BEGIN QCMOD-----
|
||||
name: libboost
|
||||
arg: with-libboost-inc=[path], Path to libboost include files
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
class qc_libboost : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_libboost(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "libboost"; }
|
||||
QString shortname() const { return "libboost"; }
|
||||
bool exec(){
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBBOOST_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "boost/format.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/thread.hpp")) {
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/include";
|
||||
sl << "/usr/local/include";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkHeader(s, "boost/format.hpp")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
|
||||
return false;
|
||||
}
|
||||
if(!conf->checkHeader(s, "boost/thread.hpp")) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
return true;
|
||||
}
|
||||
};
|
||||
76
qcm/libmagick.qcm
Normal file
@@ -0,0 +1,76 @@
|
||||
/*
|
||||
-----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;
|
||||
}
|
||||
};
|
||||
49
qcm/libnotify.qcm
Normal file
@@ -0,0 +1,49 @@
|
||||
/*
|
||||
-----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;
|
||||
}
|
||||
};
|
||||
37
qcm/libtorrent-rasterbar.qcm
Normal file
@@ -0,0 +1,37 @@
|
||||
/*
|
||||
-----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");
|
||||
// Get linking parameters
|
||||
QStringList params;
|
||||
QByteArray staticlibs;
|
||||
params << "--static" << "--libs" << "libtorrent-rasterbar";
|
||||
conf->doCommand("pkg-config", params, &staticlibs);
|
||||
conf->addLib(staticlibs.trimmed());
|
||||
return true;
|
||||
}
|
||||
};
|
||||
16
qcm/pkg-config.qcm
Normal file
@@ -0,0 +1,16 @@
|
||||
/*
|
||||
-----BEGIN QCMOD-----
|
||||
name: pkg-config
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
#include <QProcess>
|
||||
class qc_pkg_config : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_pkg_config(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "pkg-config executable"; }
|
||||
QString shortname() const { return "pkg-config"; }
|
||||
bool exec(){
|
||||
return !conf->findProgram("pkg-config").isEmpty();
|
||||
}
|
||||
};
|
||||
20
qcm/qt4.qcm
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
-----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");
|
||||
}
|
||||
return(QT_VERSION >= 0x040400);
|
||||
}
|
||||
};
|
||||
970
src/GUI.cpp
Normal file
@@ -0,0 +1,970 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
#ifdef WITH_LIBNOTIFY
|
||||
#include <glib.h>
|
||||
#include <unistd.h>
|
||||
#include <libnotify/notify.h>
|
||||
#endif
|
||||
|
||||
#include <QFileDialog>
|
||||
#include <QMessageBox>
|
||||
#include <QTimer>
|
||||
#include <QDesktopServices>
|
||||
#include <QStatusBar>
|
||||
#include <QClipboard>
|
||||
#include <QLocalServer>
|
||||
#include <QLocalSocket>
|
||||
#include <QCloseEvent>
|
||||
#include <QShortcut>
|
||||
|
||||
#include "GUI.h"
|
||||
#include "transferlistwidget.h"
|
||||
#include "misc.h"
|
||||
#include "createtorrent_imp.h"
|
||||
#include "downloadfromurldlg.h"
|
||||
#include "torrentadditiondlg.h"
|
||||
#include "searchengine.h"
|
||||
#include "rss_imp.h"
|
||||
#include "bittorrent.h"
|
||||
#include "about_imp.h"
|
||||
#include "trackerlogin.h"
|
||||
#include "options_imp.h"
|
||||
#include "speedlimitdlg.h"
|
||||
#include "preferences.h"
|
||||
#include "console_imp.h"
|
||||
#include "trackerlist.h"
|
||||
#include "peerlistwidget.h"
|
||||
#include "torrentpersistentdata.h"
|
||||
#include "transferlistfilterswidget.h"
|
||||
#include "propertieswidget.h"
|
||||
#include "statusbar.h"
|
||||
|
||||
using namespace libtorrent;
|
||||
|
||||
#define TIME_TRAY_BALLOON 5000
|
||||
|
||||
/*****************************************************
|
||||
* *
|
||||
* GUI *
|
||||
* *
|
||||
*****************************************************/
|
||||
|
||||
// Constructor
|
||||
GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), displaySpeedInTitle(false), force_exit(false) {
|
||||
setupUi(this);
|
||||
|
||||
setWindowTitle(tr("qBittorrent %1", "e.g: qBittorrent v0.x").arg(QString::fromUtf8(VERSION)));
|
||||
// Setting icons
|
||||
this->setWindowIcon(QIcon(QString::fromUtf8(":/Icons/skin/qbittorrent32.png")));
|
||||
actionOpen->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/open.png")));
|
||||
actionExit->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/exit.png")));
|
||||
actionDownload_from_URL->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/url.png")));
|
||||
actionOptions->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/settings.png")));
|
||||
actionAbout->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/info.png")));
|
||||
actionWebsite->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/qbittorrent32.png")));
|
||||
actionBugReport->setIcon(QIcon(QString::fromUtf8(":/Icons/oxygen/bug.png")));
|
||||
actionStart->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/play.png")));
|
||||
actionPause->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/pause.png")));
|
||||
actionDelete->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/delete.png")));
|
||||
actionPause_All->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/pause_all.png")));
|
||||
actionStart_All->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/play_all.png")));
|
||||
actionClearLog->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/delete.png")));
|
||||
actionPreview_file->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/preview.png")));
|
||||
actionSet_upload_limit->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/seeding.png")));
|
||||
actionSet_download_limit->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/download.png")));
|
||||
actionSet_global_upload_limit->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/seeding.png")));
|
||||
actionSet_global_download_limit->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/download.png")));
|
||||
actionDocumentation->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/qb_question.png")));
|
||||
prioSeparator = toolBar->insertSeparator(actionDecreasePriority);
|
||||
prioSeparator2 = menu_Edit->insertSeparator(actionDecreasePriority);
|
||||
prioSeparator->setVisible(false);
|
||||
prioSeparator2->setVisible(false);
|
||||
actionCreate_torrent->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/new.png")));
|
||||
// Fix Tool bar layout
|
||||
toolBar->layout()->setSpacing(7);
|
||||
// Creating Bittorrent session
|
||||
BTSession = new Bittorrent();
|
||||
connect(BTSession, SIGNAL(fullDiskError(QTorrentHandle&, QString)), this, SLOT(fullDiskError(QTorrentHandle&, QString)));
|
||||
connect(BTSession, SIGNAL(finishedTorrent(QTorrentHandle&)), this, SLOT(finishedTorrent(QTorrentHandle&)));
|
||||
connect(BTSession, SIGNAL(trackerAuthenticationRequired(QTorrentHandle&)), this, SLOT(trackerAuthenticationRequired(QTorrentHandle&)));
|
||||
connect(BTSession, SIGNAL(newDownloadedTorrent(QString, QString)), this, SLOT(processDownloadedFiles(QString, QString)));
|
||||
connect(BTSession, SIGNAL(downloadFromUrlFailure(QString, QString)), this, SLOT(handleDownloadFromUrlFailure(QString, QString)));
|
||||
connect(BTSession, SIGNAL(alternativeSpeedsModeChanged(bool)), this, SLOT(updateAltSpeedsBtn(bool)));
|
||||
|
||||
qDebug("create tabWidget");
|
||||
tabs = new QTabWidget();
|
||||
connect(tabs, SIGNAL(currentChanged(int)), this, SLOT(tab_changed(int)));
|
||||
vSplitter = new QSplitter(Qt::Horizontal);
|
||||
//vSplitter->setChildrenCollapsible(false);
|
||||
hSplitter = new QSplitter(Qt::Vertical);
|
||||
hSplitter->setChildrenCollapsible(false);
|
||||
|
||||
// Transfer List tab
|
||||
transferList = new TransferListWidget(hSplitter, this, BTSession);
|
||||
properties = new PropertiesWidget(hSplitter, this, transferList, BTSession);
|
||||
transferListFilters = new TransferListFiltersWidget(vSplitter, transferList);
|
||||
hSplitter->addWidget(transferList);
|
||||
hSplitter->addWidget(properties);
|
||||
vSplitter->addWidget(transferListFilters);
|
||||
vSplitter->addWidget(hSplitter);
|
||||
vSplitter->setCollapsible(0, true);
|
||||
vSplitter->setCollapsible(1, false);
|
||||
tabs->addTab(vSplitter, QIcon(QString::fromUtf8(":/Icons/oxygen/folder-remote.png")), tr("Transfers"));
|
||||
vboxLayout->addWidget(tabs);
|
||||
|
||||
// Transfer list slots
|
||||
connect(actionStart, SIGNAL(triggered()), transferList, SLOT(startSelectedTorrents()));
|
||||
connect(actionStart_All, SIGNAL(triggered()), transferList, SLOT(startAllTorrents()));
|
||||
connect(actionPause, SIGNAL(triggered()), transferList, SLOT(pauseSelectedTorrents()));
|
||||
connect(actionPause_All, SIGNAL(triggered()), transferList, SLOT(pauseAllTorrents()));
|
||||
connect(actionDelete, SIGNAL(triggered()), transferList, SLOT(deleteSelectedTorrents()));
|
||||
connect(actionIncreasePriority, SIGNAL(triggered()), transferList, SLOT(increasePrioSelectedTorrents()));
|
||||
connect(actionDecreasePriority, SIGNAL(triggered()), transferList, SLOT(decreasePrioSelectedTorrents()));
|
||||
|
||||
// Search engine tab
|
||||
searchEngine = new SearchEngine(this, BTSession);
|
||||
tabs->addTab(searchEngine, QIcon(QString::fromUtf8(":/Icons/oxygen/edit-find.png")), tr("Search"));
|
||||
|
||||
// Configure BT session according to options
|
||||
loadPreferences(false);
|
||||
// Resume unfinished torrents
|
||||
BTSession->startUpTorrents();
|
||||
// Add torrent given on command line
|
||||
processParams(torrentCmdLine);
|
||||
// Use a tcp server to allow only one instance of qBittorrent
|
||||
localServer = new QLocalServer();
|
||||
QString uid = QString::number(getuid());
|
||||
#ifdef Q_WS_X11
|
||||
if(QFile::exists(QDir::tempPath()+QDir::separator()+QString("qBittorrent-")+uid)) {
|
||||
// Socket was not closed cleanly
|
||||
std::cerr << "Warning: Local domain socket was not closed cleanly, deleting file...\n";
|
||||
QFile::remove(QDir::tempPath()+QDir::separator()+QString("qBittorrent-")+uid);
|
||||
}
|
||||
#endif
|
||||
if (!localServer->listen("qBittorrent-"+uid)) {
|
||||
std::cerr << "Couldn't create socket, single instance mode won't work...\n";
|
||||
}
|
||||
connect(localServer, SIGNAL(newConnection()), this, SLOT(acceptConnection()));
|
||||
// Start connection checking timer
|
||||
guiUpdater = new QTimer(this);
|
||||
connect(guiUpdater, SIGNAL(timeout()), this, SLOT(updateGUI()));
|
||||
guiUpdater->start(2000);
|
||||
// Accept drag 'n drops
|
||||
setAcceptDrops(true);
|
||||
createKeyboardShortcuts();
|
||||
// Create status bar
|
||||
status_bar = new StatusBar(QMainWindow::statusBar(), BTSession);
|
||||
connect(actionUse_alternative_speed_limits, SIGNAL(triggered()), status_bar, SLOT(toggleAlternativeSpeeds()));
|
||||
|
||||
show();
|
||||
|
||||
// Load Window state and sizes
|
||||
readSettings();
|
||||
properties->readSettings();
|
||||
|
||||
// Limit status filters list height
|
||||
int cur_height = 80;
|
||||
do {
|
||||
transferListFilters->getStatusFilters()->setFixedHeight(cur_height);
|
||||
cur_height += 10;
|
||||
transferListFilters->getStatusFilters()->scrollToBottom();
|
||||
}while(transferListFilters->getStatusFilters()->verticalScrollBar()->sliderPosition() > 0);
|
||||
transferListFilters->getStatusFilters()->setVerticalScrollBarPolicy(Qt::ScrollBarAlwaysOff);
|
||||
|
||||
if(Preferences::startMinimized()) {
|
||||
setWindowState(Qt::WindowMinimized);
|
||||
}
|
||||
|
||||
qDebug("GUI Built");
|
||||
}
|
||||
|
||||
// Destructor
|
||||
GUI::~GUI() {
|
||||
qDebug("GUI destruction");
|
||||
hide();
|
||||
// Async deletion of Bittorrent session as early as possible
|
||||
// in order to speed up exit
|
||||
session_proxy sp = BTSession->asyncDeletion();
|
||||
// Some saving
|
||||
properties->saveSettings();
|
||||
disconnect(tabs, SIGNAL(currentChanged(int)), this, SLOT(tab_changed(int)));
|
||||
// Delete other GUI objects
|
||||
delete status_bar;
|
||||
delete transferList;
|
||||
delete guiUpdater;
|
||||
if(createTorrentDlg)
|
||||
delete createTorrentDlg;
|
||||
if(console)
|
||||
delete console;
|
||||
if(aboutDlg)
|
||||
delete aboutDlg;
|
||||
if(options)
|
||||
delete options;
|
||||
if(downloadFromURLDialog)
|
||||
delete downloadFromURLDialog;
|
||||
if(rssWidget)
|
||||
delete rssWidget;
|
||||
delete searchEngine;
|
||||
delete transferListFilters;
|
||||
delete properties;
|
||||
delete hSplitter;
|
||||
delete vSplitter;
|
||||
if(systrayCreator) {
|
||||
delete systrayCreator;
|
||||
}
|
||||
if(systrayIcon) {
|
||||
delete systrayIcon;
|
||||
delete myTrayIconMenu;
|
||||
}
|
||||
localServer->close();
|
||||
delete localServer;
|
||||
delete tabs;
|
||||
// Keyboard shortcuts
|
||||
delete switchSearchShortcut;
|
||||
delete switchSearchShortcut2;
|
||||
delete switchTransferShortcut;
|
||||
delete switchRSSShortcut;
|
||||
// Delete BTSession objects
|
||||
delete BTSession;
|
||||
// Deleting remaining top level widgets
|
||||
qDebug("Deleting remaining top level widgets");
|
||||
foreach (QWidget *win, QApplication::topLevelWidgets()) {
|
||||
if(win && win != this)
|
||||
delete win;
|
||||
}
|
||||
// May freeze for a few seconds after the next line
|
||||
// because the Bittorrent session proxy will
|
||||
// actually be deleted now and destruction
|
||||
// becomes synchronous
|
||||
qDebug("Exiting GUI destructor...");
|
||||
}
|
||||
|
||||
void GUI::displayRSSTab(bool enable) {
|
||||
if(enable) {
|
||||
// RSS tab
|
||||
if(!rssWidget) {
|
||||
rssWidget = new RSSImp(BTSession);
|
||||
int index_tab = tabs->addTab(rssWidget, tr("RSS"));
|
||||
tabs->setTabIcon(index_tab, QIcon(QString::fromUtf8(":/Icons/rss32.png")));
|
||||
}
|
||||
} else {
|
||||
if(rssWidget) {
|
||||
delete rssWidget;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::on_actionWebsite_triggered() const {
|
||||
QDesktopServices::openUrl(QUrl(QString::fromUtf8("http://www.qbittorrent.org")));
|
||||
}
|
||||
|
||||
void GUI::on_actionDocumentation_triggered() const {
|
||||
QDesktopServices::openUrl(QUrl(QString::fromUtf8("http://doc.qbittorrent.org")));
|
||||
}
|
||||
|
||||
void GUI::on_actionBugReport_triggered() const {
|
||||
QDesktopServices::openUrl(QUrl(QString::fromUtf8("http://bugs.qbittorrent.org")));
|
||||
}
|
||||
|
||||
void GUI::tab_changed(int new_tab) {
|
||||
if(new_tab == TAB_TRANSFER) {
|
||||
qDebug("Changed tab to transfer list, refreshing the list");
|
||||
transferList->refreshList();
|
||||
properties->loadDynamicData();
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::writeSettings() {
|
||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||
settings.beginGroup(QString::fromUtf8("MainWindow"));
|
||||
settings.setValue(QString::fromUtf8("size"), size());
|
||||
settings.setValue(QString::fromUtf8("pos"), pos());
|
||||
// Splitter size
|
||||
QStringList sizes_str;
|
||||
sizes_str << QString::number(vSplitter->sizes().first());
|
||||
sizes_str << QString::number(vSplitter->sizes().last());
|
||||
settings.setValue(QString::fromUtf8("vSplitterSizes"), sizes_str);
|
||||
settings.endGroup();
|
||||
}
|
||||
|
||||
// called when a torrent has finished
|
||||
void GUI::finishedTorrent(QTorrentHandle& h) const {
|
||||
if(!TorrentPersistentData::isSeed(h.hash()))
|
||||
showNotificationBaloon(tr("Download completion"), tr("%1 has finished downloading.", "e.g: xxx.avi has finished downloading.").arg(h.name()));
|
||||
}
|
||||
|
||||
// Notification when disk is full
|
||||
void GUI::fullDiskError(QTorrentHandle& h, QString msg) const {
|
||||
if(!h.is_valid()) return;
|
||||
showNotificationBaloon(tr("I/O Error", "i.e: Input/Output Error"), tr("An I/O error occured for torrent %1.\n Reason: %2", "e.g: An error occured for torrent xxx.avi.\n Reason: disk is full.").arg(h.name()).arg(msg));
|
||||
}
|
||||
|
||||
void GUI::createKeyboardShortcuts() {
|
||||
actionCreate_torrent->setShortcut(QKeySequence(QString::fromUtf8("Ctrl+N")));
|
||||
actionOpen->setShortcut(QKeySequence(QString::fromUtf8("Ctrl+O")));
|
||||
actionExit->setShortcut(QKeySequence(QString::fromUtf8("Ctrl+Q")));
|
||||
switchTransferShortcut = new QShortcut(QKeySequence(tr("Alt+1", "shortcut to switch to first tab")), this);
|
||||
connect(switchTransferShortcut, SIGNAL(activated()), this, SLOT(displayTransferTab()));
|
||||
switchSearchShortcut = new QShortcut(QKeySequence(tr("Alt+2", "shortcut to switch to third tab")), this);
|
||||
connect(switchSearchShortcut, SIGNAL(activated()), this, SLOT(displaySearchTab()));
|
||||
switchSearchShortcut2 = new QShortcut(QKeySequence(tr("Ctrl+F", "shortcut to switch to search tab")), this);
|
||||
connect(switchSearchShortcut2, SIGNAL(activated()), this, SLOT(displaySearchTab()));
|
||||
switchRSSShortcut = new QShortcut(QKeySequence(tr("Alt+3", "shortcut to switch to fourth tab")), this);
|
||||
connect(switchRSSShortcut, SIGNAL(activated()), this, SLOT(displayRSSTab()));
|
||||
actionDocumentation->setShortcut(QKeySequence("F1"));
|
||||
actionOptions->setShortcut(QKeySequence(QString::fromUtf8("Alt+O")));
|
||||
actionDelete->setShortcut(QKeySequence(QString::fromUtf8("Del")));
|
||||
actionStart->setShortcut(QKeySequence(QString::fromUtf8("Ctrl+S")));
|
||||
actionStart_All->setShortcut(QKeySequence(QString::fromUtf8("Ctrl+Shift+S")));
|
||||
actionPause->setShortcut(QKeySequence(QString::fromUtf8("Ctrl+P")));
|
||||
actionPause_All->setShortcut(QKeySequence(QString::fromUtf8("Ctrl+Shift+P")));
|
||||
actionDecreasePriority->setShortcut(QKeySequence(QString::fromUtf8("Ctrl+-")));
|
||||
actionIncreasePriority->setShortcut(QKeySequence(QString::fromUtf8("Ctrl++")));
|
||||
}
|
||||
|
||||
// Keyboard shortcuts slots
|
||||
void GUI::displayTransferTab() const {
|
||||
tabs->setCurrentIndex(TAB_TRANSFER);
|
||||
}
|
||||
|
||||
void GUI::displaySearchTab() const {
|
||||
tabs->setCurrentIndex(TAB_SEARCH);
|
||||
}
|
||||
|
||||
void GUI::displayRSSTab() const {
|
||||
tabs->setCurrentIndex(TAB_RSS);
|
||||
}
|
||||
|
||||
// End of keyboard shortcuts slots
|
||||
|
||||
void GUI::readSettings() {
|
||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||
settings.beginGroup(QString::fromUtf8("MainWindow"));
|
||||
resize(settings.value(QString::fromUtf8("size"), size()).toSize());
|
||||
move(settings.value(QString::fromUtf8("pos"), misc::screenCenter(this)).toPoint());
|
||||
const QStringList &sizes_str = settings.value("vSplitterSizes", QStringList()).toStringList();
|
||||
// Splitter size
|
||||
QList<int> sizes;
|
||||
if(sizes_str.size() == 2) {
|
||||
sizes << sizes_str.first().toInt();
|
||||
sizes << sizes_str.last().toInt();
|
||||
} else {
|
||||
qDebug("Default splitter size");
|
||||
sizes << 120;
|
||||
sizes << vSplitter->width()-120;
|
||||
}
|
||||
vSplitter->setSizes(sizes);
|
||||
settings.endGroup();
|
||||
}
|
||||
|
||||
void GUI::balloonClicked() {
|
||||
if(isHidden()) {
|
||||
show();
|
||||
if(isMinimized()) {
|
||||
showNormal();
|
||||
}
|
||||
raise();
|
||||
activateWindow();
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::acceptConnection() {
|
||||
QLocalSocket *clientConnection = localServer->nextPendingConnection();
|
||||
connect(clientConnection, SIGNAL(disconnected()), this, SLOT(readParamsOnSocket()));
|
||||
qDebug("accepted connection from another instance");
|
||||
}
|
||||
|
||||
void GUI::readParamsOnSocket() {
|
||||
QLocalSocket *clientConnection = static_cast<QLocalSocket*>(sender());
|
||||
if(clientConnection) {
|
||||
const QByteArray ¶ms = clientConnection->readAll();
|
||||
if(!params.isEmpty()) {
|
||||
processParams(QString::fromLocal8Bit(params.constData()).split("\n"));
|
||||
qDebug("Received parameters from another instance");
|
||||
}
|
||||
clientConnection->deleteLater();
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::handleDownloadFromUrlFailure(QString url, QString reason) const{
|
||||
// Display a message box
|
||||
QMessageBox::critical(0, tr("Url download error"), tr("Couldn't download file at url: %1, reason: %2.").arg(url).arg(reason));
|
||||
}
|
||||
|
||||
void GUI::on_actionSet_global_upload_limit_triggered() {
|
||||
qDebug("actionSet_global_upload_limit_triggered");
|
||||
bool ok;
|
||||
const long new_limit = SpeedLimitDialog::askSpeedLimit(&ok, tr("Global Upload Speed Limit"), BTSession->getSession()->upload_rate_limit());
|
||||
if(ok) {
|
||||
qDebug("Setting global upload rate limit to %.1fKb/s", new_limit/1024.);
|
||||
BTSession->getSession()->set_upload_rate_limit(new_limit);
|
||||
if(new_limit <= 0)
|
||||
Preferences::setGlobalUploadLimit(-1);
|
||||
else
|
||||
Preferences::setGlobalUploadLimit(new_limit/1024.);
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::on_actionShow_console_triggered() {
|
||||
if(!console) {
|
||||
console = new consoleDlg(this, BTSession);
|
||||
} else {
|
||||
console->setFocus();
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::on_actionSet_global_download_limit_triggered() {
|
||||
qDebug("actionSet_global_download_limit_triggered");
|
||||
bool ok;
|
||||
const long new_limit = SpeedLimitDialog::askSpeedLimit(&ok, tr("Global Download Speed Limit"), BTSession->getSession()->download_rate_limit());
|
||||
if(ok) {
|
||||
qDebug("Setting global download rate limit to %.1fKb/s", new_limit/1024.);
|
||||
BTSession->getSession()->set_download_rate_limit(new_limit);
|
||||
if(new_limit <= 0)
|
||||
Preferences::setGlobalDownloadLimit(-1);
|
||||
else
|
||||
Preferences::setGlobalDownloadLimit(new_limit/1024.);
|
||||
}
|
||||
}
|
||||
|
||||
// Necessary if we want to close the window
|
||||
// in one time if "close to systray" is enabled
|
||||
void GUI::on_actionExit_triggered() {
|
||||
force_exit = true;
|
||||
close();
|
||||
}
|
||||
|
||||
int GUI::getCurrentTabIndex() const {
|
||||
if(isMinimized() || !isVisible())
|
||||
return -1;
|
||||
return tabs->currentIndex();
|
||||
}
|
||||
|
||||
void GUI::setTabText(int index, QString text) const {
|
||||
tabs->setTabText(index, text);
|
||||
}
|
||||
|
||||
// Toggle Main window visibility
|
||||
void GUI::toggleVisibility(QSystemTrayIcon::ActivationReason e) {
|
||||
if(e == QSystemTrayIcon::Trigger || e == QSystemTrayIcon::DoubleClick) {
|
||||
if(isHidden()) {
|
||||
show();
|
||||
if(isMinimized()) {
|
||||
if(isMaximized()) {
|
||||
showMaximized();
|
||||
}else{
|
||||
showNormal();
|
||||
}
|
||||
}
|
||||
raise();
|
||||
activateWindow();
|
||||
}else{
|
||||
hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Display About Dialog
|
||||
void GUI::on_actionAbout_triggered() {
|
||||
//About dialog
|
||||
if(aboutDlg) {
|
||||
aboutDlg->setFocus();
|
||||
} else {
|
||||
aboutDlg = new about(this);
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::showEvent(QShowEvent *e) {
|
||||
qDebug("** Show Event **");
|
||||
if(getCurrentTabIndex() == TAB_TRANSFER) {
|
||||
qDebug("-> Refreshing transfer list");
|
||||
transferList->refreshList();
|
||||
properties->loadDynamicData();
|
||||
}
|
||||
e->accept();
|
||||
}
|
||||
|
||||
// Called when we close the program
|
||||
void GUI::closeEvent(QCloseEvent *e) {
|
||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||
const bool goToSystrayOnExit = settings.value(QString::fromUtf8("Preferences/General/CloseToTray"), false).toBool();
|
||||
if(!force_exit && systrayIcon && goToSystrayOnExit && !this->isHidden()) {
|
||||
hide();
|
||||
//e->ignore();
|
||||
e->accept();
|
||||
return;
|
||||
}
|
||||
if(settings.value(QString::fromUtf8("Preferences/General/ExitConfirm"), true).toBool() && BTSession->hasActiveTorrents()) {
|
||||
show();
|
||||
if(!isMaximized())
|
||||
showNormal();
|
||||
if(e->spontaneous() || force_exit) {
|
||||
if(QMessageBox::question(this,
|
||||
tr("Are you sure you want to quit?")+QString::fromUtf8(" -- ")+tr("qBittorrent"),
|
||||
tr("Some files are currently transferring.\nAre you sure you want to quit qBittorrent?"),
|
||||
tr("&Yes"), tr("&No"),
|
||||
QString(), 0, 1)) {
|
||||
e->ignore();
|
||||
force_exit = false;
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
hide();
|
||||
if(systrayIcon) {
|
||||
// Hide tray icon
|
||||
systrayIcon->hide();
|
||||
}
|
||||
// Save window size, columns size
|
||||
writeSettings();
|
||||
// Accept exit
|
||||
e->accept();
|
||||
qApp->exit();
|
||||
}
|
||||
|
||||
|
||||
// Display window to create a torrent
|
||||
void GUI::on_actionCreate_torrent_triggered() {
|
||||
if(createTorrentDlg) {
|
||||
createTorrentDlg->setFocus();
|
||||
} else {
|
||||
createTorrentDlg = new createtorrent(this);
|
||||
connect(createTorrentDlg, SIGNAL(torrent_to_seed(QString)), this, SLOT(addTorrent(QString)));
|
||||
}
|
||||
}
|
||||
|
||||
bool GUI::event(QEvent * e) {
|
||||
if(e->type() == QEvent::WindowStateChange) {
|
||||
//Now check to see if the window is minimised
|
||||
if(isMinimized()) {
|
||||
qDebug("minimisation");
|
||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||
if(systrayIcon && settings.value(QString::fromUtf8("Preferences/General/MinimizeToTray"), false).toBool()) {
|
||||
hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
return QMainWindow::event(e);
|
||||
}
|
||||
|
||||
// Action executed when a file is dropped
|
||||
void GUI::dropEvent(QDropEvent *event) {
|
||||
event->acceptProposedAction();
|
||||
QStringList files;
|
||||
if(event->mimeData()->hasUrls()) {
|
||||
const QList<QUrl> &urls = event->mimeData()->urls();
|
||||
foreach(const QUrl &url, urls) {
|
||||
const QString tmp = url.toString().trimmed();
|
||||
if(!tmp.isEmpty())
|
||||
files << url.toString();
|
||||
}
|
||||
} else {
|
||||
files = event->mimeData()->text().split(QString::fromUtf8("\n"));
|
||||
}
|
||||
// Add file to download list
|
||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||
const bool useTorrentAdditionDialog = settings.value(QString::fromUtf8("Preferences/Downloads/AdditionDialog"), true).toBool();
|
||||
foreach(QString file, files) {
|
||||
file = file.trimmed().replace(QString::fromUtf8("file://"), QString::fromUtf8(""), Qt::CaseInsensitive);
|
||||
qDebug("Dropped file %s on download list", file.toLocal8Bit().data());
|
||||
if(file.startsWith(QString::fromUtf8("http://"), Qt::CaseInsensitive) || file.startsWith(QString::fromUtf8("ftp://"), Qt::CaseInsensitive) || file.startsWith(QString::fromUtf8("https://"), Qt::CaseInsensitive)) {
|
||||
BTSession->downloadFromUrl(file);
|
||||
continue;
|
||||
}
|
||||
if(file.startsWith("magnet:", Qt::CaseInsensitive)) {
|
||||
// FIXME: Possibly skipped torrent addition dialog
|
||||
BTSession->addMagnetUri(file);
|
||||
continue;
|
||||
}
|
||||
if(useTorrentAdditionDialog) {
|
||||
torrentAdditionDialog *dialog = new torrentAdditionDialog(this, BTSession);
|
||||
dialog->showLoad(file);
|
||||
}else{
|
||||
BTSession->addTorrent(file);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// Decode if we accept drag 'n drop or not
|
||||
void GUI::dragEnterEvent(QDragEnterEvent *event) {
|
||||
foreach(const QString &mime, event->mimeData()->formats()){
|
||||
qDebug("mimeData: %s", mime.toLocal8Bit().data());
|
||||
}
|
||||
if (event->mimeData()->hasFormat(QString::fromUtf8("text/plain")) || event->mimeData()->hasFormat(QString::fromUtf8("text/uri-list"))) {
|
||||
event->acceptProposedAction();
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************
|
||||
* *
|
||||
* Torrent *
|
||||
* *
|
||||
*****************************************************/
|
||||
|
||||
// Display a dialog to allow user to add
|
||||
// torrents to download list
|
||||
void GUI::on_actionOpen_triggered() {
|
||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||
// Open File Open Dialog
|
||||
// Note: it is possible to select more than one file
|
||||
const QStringList &pathsList = QFileDialog::getOpenFileNames(0,
|
||||
tr("Open Torrent Files"), settings.value(QString::fromUtf8("MainWindowLastDir"), QDir::homePath()).toString(),
|
||||
tr("Torrent Files")+QString::fromUtf8(" (*.torrent)"));
|
||||
if(!pathsList.empty()) {
|
||||
const bool useTorrentAdditionDialog = settings.value(QString::fromUtf8("Preferences/Downloads/AdditionDialog"), true).toBool();
|
||||
const uint listSize = pathsList.size();
|
||||
for(uint i=0; i<listSize; ++i) {
|
||||
if(useTorrentAdditionDialog) {
|
||||
torrentAdditionDialog *dialog = new torrentAdditionDialog(this, BTSession);
|
||||
dialog->showLoad(pathsList.at(i));
|
||||
}else{
|
||||
BTSession->addTorrent(pathsList.at(i));
|
||||
}
|
||||
}
|
||||
// Save last dir to remember it
|
||||
QStringList top_dir = pathsList.at(0).split(QDir::separator());
|
||||
top_dir.removeLast();
|
||||
settings.setValue(QString::fromUtf8("MainWindowLastDir"), top_dir.join(QDir::separator()));
|
||||
}
|
||||
}
|
||||
|
||||
// As program parameters, we can get paths or urls.
|
||||
// This function parse the parameters and call
|
||||
// the right addTorrent function, considering
|
||||
// the parameter type.
|
||||
void GUI::processParams(const QStringList& params) {
|
||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||
const bool useTorrentAdditionDialog = settings.value(QString::fromUtf8("Preferences/Downloads/AdditionDialog"), true).toBool();
|
||||
foreach(QString param, params) {
|
||||
param = param.trimmed();
|
||||
if(param.startsWith("--")) continue;
|
||||
if(param.startsWith(QString::fromUtf8("http://"), Qt::CaseInsensitive) || param.startsWith(QString::fromUtf8("ftp://"), Qt::CaseInsensitive) || param.startsWith(QString::fromUtf8("https://"), Qt::CaseInsensitive)) {
|
||||
BTSession->downloadFromUrl(param);
|
||||
}else{
|
||||
if(param.startsWith("magnet:", Qt::CaseInsensitive)) {
|
||||
if(useTorrentAdditionDialog) {
|
||||
torrentAdditionDialog *dialog = new torrentAdditionDialog(this, BTSession);
|
||||
dialog->showLoadMagnetURI(param);
|
||||
} else {
|
||||
BTSession->addMagnetUri(param);
|
||||
}
|
||||
} else {
|
||||
if(useTorrentAdditionDialog) {
|
||||
torrentAdditionDialog *dialog = new torrentAdditionDialog(this, BTSession);
|
||||
dialog->showLoad(param);
|
||||
}else{
|
||||
BTSession->addTorrent(param);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::addTorrent(QString path) {
|
||||
BTSession->addTorrent(path);
|
||||
}
|
||||
|
||||
void GUI::processDownloadedFiles(QString path, QString url) {
|
||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||
const bool useTorrentAdditionDialog = settings.value(QString::fromUtf8("Preferences/Downloads/AdditionDialog"), true).toBool();
|
||||
if(useTorrentAdditionDialog) {
|
||||
torrentAdditionDialog *dialog = new torrentAdditionDialog(this, BTSession);
|
||||
dialog->showLoad(path, url);
|
||||
}else{
|
||||
BTSession->addTorrent(path, false, url);
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::optionsSaved() {
|
||||
loadPreferences();
|
||||
}
|
||||
|
||||
// Load program preferences
|
||||
void GUI::loadPreferences(bool configure_session) {
|
||||
BTSession->addConsoleMessage(tr("Options were saved successfully."));
|
||||
const bool newSystrayIntegration = Preferences::systrayIntegration();
|
||||
if(newSystrayIntegration != (systrayIcon!=0)) {
|
||||
if(newSystrayIntegration) {
|
||||
// create the trayicon
|
||||
if(!QSystemTrayIcon::isSystemTrayAvailable()) {
|
||||
if(!configure_session) { // Program startup
|
||||
systrayCreator = new QTimer(this);
|
||||
connect(systrayCreator, SIGNAL(timeout()), this, SLOT(createSystrayDelayed()));
|
||||
systrayCreator->setSingleShot(true);
|
||||
systrayCreator->start(2000);
|
||||
qDebug("Info: System tray is unavailable, trying again later.");
|
||||
} else {
|
||||
qDebug("Warning: System tray is unavailable.");
|
||||
}
|
||||
} else {
|
||||
createTrayIcon();
|
||||
}
|
||||
} else {
|
||||
// Destroy trayicon
|
||||
delete systrayIcon;
|
||||
delete myTrayIconMenu;
|
||||
}
|
||||
}
|
||||
// General
|
||||
const bool new_displaySpeedInTitle = Preferences::speedInTitleBar();
|
||||
if(!new_displaySpeedInTitle && new_displaySpeedInTitle != displaySpeedInTitle) {
|
||||
// Reset title
|
||||
setWindowTitle(tr("qBittorrent %1", "e.g: qBittorrent vx.x").arg(QString::fromUtf8(VERSION)));
|
||||
}
|
||||
displaySpeedInTitle = new_displaySpeedInTitle;
|
||||
if(Preferences::isToolbarDisplayed()) {
|
||||
toolBar->setVisible(true);
|
||||
toolBar->layout()->setSpacing(7);
|
||||
} else {
|
||||
toolBar->setVisible(false);
|
||||
}
|
||||
const uint new_refreshInterval = Preferences::getRefreshInterval();
|
||||
transferList->setRefreshInterval(new_refreshInterval);
|
||||
transferList->setAlternatingRowColors(Preferences::useAlternatingRowColors());
|
||||
properties->getFilesList()->setAlternatingRowColors(Preferences::useAlternatingRowColors());
|
||||
properties->getTrackerList()->setAlternatingRowColors(Preferences::useAlternatingRowColors());
|
||||
properties->getPeerList()->setAlternatingRowColors(Preferences::useAlternatingRowColors());
|
||||
// Queueing System
|
||||
if(Preferences::isQueueingSystemEnabled()) {
|
||||
if(!configure_session || !BTSession->isQueueingEnabled()) {
|
||||
transferList->hidePriorityColumn(false);
|
||||
actionDecreasePriority->setVisible(true);
|
||||
actionIncreasePriority->setVisible(true);
|
||||
prioSeparator->setVisible(true);
|
||||
prioSeparator2->setVisible(true);
|
||||
toolBar->layout()->setSpacing(7);
|
||||
}
|
||||
} else {
|
||||
if(BTSession->isQueueingEnabled()) {
|
||||
transferList->hidePriorityColumn(true);
|
||||
actionDecreasePriority->setVisible(false);
|
||||
actionIncreasePriority->setVisible(false);
|
||||
prioSeparator->setVisible(false);
|
||||
prioSeparator2->setVisible(false);
|
||||
toolBar->layout()->setSpacing(7);
|
||||
}
|
||||
}
|
||||
|
||||
// RSS
|
||||
if(Preferences::isRSSEnabled()) {
|
||||
displayRSSTab(true);
|
||||
rssWidget->updateRefreshInterval(Preferences::getRSSRefreshInterval());
|
||||
} else {
|
||||
displayRSSTab(false);
|
||||
}
|
||||
|
||||
// Torrent properties
|
||||
properties->reloadPreferences();
|
||||
|
||||
if(configure_session)
|
||||
BTSession->configureSession();
|
||||
|
||||
qDebug("GUI settings loaded");
|
||||
}
|
||||
|
||||
void GUI::addUnauthenticatedTracker(const QPair<QTorrentHandle,QString> &tracker) {
|
||||
// Trackers whose authentication was cancelled
|
||||
if(unauthenticated_trackers.indexOf(tracker) < 0) {
|
||||
unauthenticated_trackers << tracker;
|
||||
}
|
||||
}
|
||||
|
||||
// Called when a tracker requires authentication
|
||||
void GUI::trackerAuthenticationRequired(QTorrentHandle& h) {
|
||||
if(unauthenticated_trackers.indexOf(QPair<QTorrentHandle,QString>(h, h.current_tracker())) < 0) {
|
||||
// Tracker login
|
||||
new trackerLogin(this, h);
|
||||
}
|
||||
}
|
||||
|
||||
// Check connection status and display right icon
|
||||
void GUI::updateGUI() {
|
||||
// update global informations
|
||||
if(systrayIcon) {
|
||||
#ifdef Q_WS_WIN
|
||||
// Windows does not support html here
|
||||
QString html =tr("DL speed: %1 KiB/s", "e.g: Download speed: 10 KiB/s").arg(QString::number(BTSession->getPayloadDownloadRate()/1024., 'f', 1));
|
||||
html += "\n";
|
||||
html += tr("UP speed: %1 KiB/s", "e.g: Upload speed: 10 KiB/s").arg(QString::number(BTSession->getPayloadUploadRate()/1024., 'f', 1));
|
||||
#else
|
||||
QString html = "<div style='background-color: #678db2; color: #fff;height: 18px; font-weight: bold; margin-bottom: 5px;'>";
|
||||
html += tr("qBittorrent");
|
||||
html += "</div>";
|
||||
html += "<div style='vertical-align: baseline; height: 18px;'>";
|
||||
html += "<img src=':/Icons/skin/download.png'/> "+tr("DL speed: %1 KiB/s", "e.g: Download speed: 10 KiB/s").arg(QString::number(BTSession->getPayloadDownloadRate()/1024., 'f', 1));
|
||||
html += "</div>";
|
||||
html += "<div style='vertical-align: baseline; height: 18px;'>";
|
||||
html += "<img src=':/Icons/skin/seeding.png'/> "+tr("UP speed: %1 KiB/s", "e.g: Upload speed: 10 KiB/s").arg(QString::number(BTSession->getPayloadUploadRate()/1024., 'f', 1));
|
||||
html += "</div>";
|
||||
#endif
|
||||
systrayIcon->setToolTip(html); // tray icon
|
||||
}
|
||||
if(displaySpeedInTitle) {
|
||||
setWindowTitle(tr("qBittorrent %1 (Down: %2/s, Up: %3/s)", "%1 is qBittorrent version").arg(QString::fromUtf8(VERSION)).arg(misc::friendlyUnit(BTSession->getSessionStatus().payload_download_rate)).arg(misc::friendlyUnit(BTSession->getSessionStatus().payload_upload_rate)));
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::showNotificationBaloon(QString title, QString msg) const {
|
||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||
if(settings.value(QString::fromUtf8("Preferences/General/NotificationBaloons"), true).toBool()) {
|
||||
#ifdef WITH_LIBNOTIFY
|
||||
if (notify_init ("summary-body")) {
|
||||
NotifyNotification* notification;
|
||||
notification = notify_notification_new (qPrintable(title), qPrintable(msg), "qbittorrent", 0);
|
||||
gboolean success = notify_notification_show (notification, NULL);
|
||||
g_object_unref(G_OBJECT(notification));
|
||||
notify_uninit ();
|
||||
if(success) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
#endif
|
||||
if(systrayIcon)
|
||||
systrayIcon->showMessage(title, msg, QSystemTrayIcon::Information, TIME_TRAY_BALLOON);
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************
|
||||
* *
|
||||
* Utils *
|
||||
* *
|
||||
*****************************************************/
|
||||
|
||||
void GUI::downloadFromURLList(const QStringList& url_list) {
|
||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||
const bool useTorrentAdditionDialog = settings.value(QString::fromUtf8("Preferences/Downloads/AdditionDialog"), true).toBool();
|
||||
foreach(const QString& url, url_list) {
|
||||
if(url.startsWith("magnet:", Qt::CaseInsensitive)) {
|
||||
if(useTorrentAdditionDialog) {
|
||||
torrentAdditionDialog *dialog = new torrentAdditionDialog(this, BTSession);
|
||||
dialog->showLoadMagnetURI(url);
|
||||
} else {
|
||||
BTSession->addMagnetUri(url);
|
||||
}
|
||||
} else {
|
||||
BTSession->downloadFromUrl(url);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************
|
||||
* *
|
||||
* Options *
|
||||
* *
|
||||
*****************************************************/
|
||||
|
||||
void GUI::createSystrayDelayed() {
|
||||
static int timeout = 20;
|
||||
if(QSystemTrayIcon::isSystemTrayAvailable()) {
|
||||
// Ok, systray integration is now supported
|
||||
// Create systray icon
|
||||
createTrayIcon();
|
||||
delete systrayCreator;
|
||||
} else {
|
||||
if(timeout) {
|
||||
// Retry a bit later
|
||||
systrayCreator->start(2000);
|
||||
--timeout;
|
||||
} else {
|
||||
// Timed out, apparently system really does not
|
||||
// support systray icon
|
||||
delete systrayCreator;
|
||||
// Disable it in program preferences to
|
||||
// avoid trying at earch startup
|
||||
Preferences::setSystrayIntegration(false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::updateAltSpeedsBtn(bool alternative) {
|
||||
if(alternative) {
|
||||
actionUse_alternative_speed_limits->setIcon(QIcon(":/Icons/slow.png"));
|
||||
actionUse_alternative_speed_limits->setText(tr("Use normal speed limits"));
|
||||
} else {
|
||||
actionUse_alternative_speed_limits->setIcon(QIcon(":/Icons/slow_off.png"));
|
||||
actionUse_alternative_speed_limits->setText(tr("Use alternative speed limits"));
|
||||
}
|
||||
}
|
||||
|
||||
void GUI::createTrayIcon() {
|
||||
// Tray icon
|
||||
#ifdef Q_WS_WIN
|
||||
systrayIcon = new QSystemTrayIcon(QIcon(QString::fromUtf8(":/Icons/skin/qbittorrent16.png")), this);
|
||||
#endif
|
||||
#ifndef Q_WS_WIN
|
||||
systrayIcon = new QSystemTrayIcon(QIcon(QString::fromUtf8(":/Icons/skin/qbittorrent22.png")), this);
|
||||
#endif
|
||||
// Tray icon Menu
|
||||
myTrayIconMenu = new QMenu(this);
|
||||
myTrayIconMenu->addAction(actionOpen);
|
||||
myTrayIconMenu->addAction(actionDownload_from_URL);
|
||||
myTrayIconMenu->addSeparator();
|
||||
updateAltSpeedsBtn(Preferences::isAltBandwidthEnabled());
|
||||
myTrayIconMenu->addAction(actionUse_alternative_speed_limits);
|
||||
myTrayIconMenu->addAction(actionSet_global_download_limit);
|
||||
myTrayIconMenu->addAction(actionSet_global_upload_limit);
|
||||
myTrayIconMenu->addSeparator();
|
||||
myTrayIconMenu->addAction(actionStart_All);
|
||||
myTrayIconMenu->addAction(actionPause_All);
|
||||
myTrayIconMenu->addSeparator();
|
||||
myTrayIconMenu->addAction(actionExit);
|
||||
systrayIcon->setContextMenu(myTrayIconMenu);
|
||||
connect(systrayIcon, SIGNAL(messageClicked()), this, SLOT(balloonClicked()));
|
||||
// End of Icon Menu
|
||||
connect(systrayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), this, SLOT(toggleVisibility(QSystemTrayIcon::ActivationReason)));
|
||||
systrayIcon->show();
|
||||
}
|
||||
|
||||
// Display Program Options
|
||||
void GUI::on_actionOptions_triggered() {
|
||||
if(options) {
|
||||
// Get focus
|
||||
options->setFocus();
|
||||
} else {
|
||||
options = new options_imp(this);
|
||||
connect(options, SIGNAL(status_changed()), this, SLOT(optionsSaved()));
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************
|
||||
* *
|
||||
* HTTP Downloader *
|
||||
* *
|
||||
*****************************************************/
|
||||
|
||||
// Display an input dialog to prompt user for
|
||||
// an url
|
||||
void GUI::on_actionDownload_from_URL_triggered() {
|
||||
if(!downloadFromURLDialog) {
|
||||
downloadFromURLDialog = new downloadFromURL(this);
|
||||
connect(downloadFromURLDialog, SIGNAL(urlsReadyToBeDownloaded(const QStringList&)), this, SLOT(downloadFromURLList(const QStringList&)));
|
||||
}
|
||||
}
|
||||
|
||||
170
src/GUI.h
Normal file
@@ -0,0 +1,170 @@
|
||||
/*
|
||||
* 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.
|
||||
*
|
||||
* 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
|
||||
*/
|
||||
|
||||
#ifndef GUI_H
|
||||
#define GUI_H
|
||||
|
||||
#include <QProcess>
|
||||
#include <QSystemTrayIcon>
|
||||
#include <QPointer>
|
||||
#include "ui_mainwindow.h"
|
||||
#include "qtorrenthandle.h"
|
||||
|
||||
enum TabIndex{TAB_TRANSFER, TAB_SEARCH, TAB_RSS};
|
||||
|
||||
class Bittorrent;
|
||||
class QTimer;
|
||||
class downloadFromURL;
|
||||
class SearchEngine;
|
||||
class QLocalServer;
|
||||
class QCloseEvent;
|
||||
class RSSImp;
|
||||
class QShortcut;
|
||||
class about;
|
||||
class options_imp;
|
||||
class QTabWidget;
|
||||
class TransferListWidget;
|
||||
class TransferListFiltersWidget;
|
||||
class QSplitter;
|
||||
class PropertiesWidget;
|
||||
class StatusBar;
|
||||
class consoleDlg;
|
||||
class about;
|
||||
class createtorrent;
|
||||
class downloadFromURL;
|
||||
|
||||
class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
// Construct / Destruct
|
||||
GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
|
||||
~GUI();
|
||||
// Methods
|
||||
int getCurrentTabIndex() const;
|
||||
TransferListWidget* getTransferList() const { return transferList; }
|
||||
|
||||
public slots:
|
||||
void trackerAuthenticationRequired(QTorrentHandle& h);
|
||||
void setTabText(int index, QString text) const;
|
||||
void showNotificationBaloon(QString title, QString msg) const;
|
||||
void downloadFromURLList(const QStringList& urls);
|
||||
void updateAltSpeedsBtn(bool alternative);
|
||||
|
||||
protected slots:
|
||||
// GUI related slots
|
||||
void dropEvent(QDropEvent *event);
|
||||
void dragEnterEvent(QDragEnterEvent *event);
|
||||
void toggleVisibility(QSystemTrayIcon::ActivationReason e);
|
||||
void on_actionAbout_triggered();
|
||||
void on_actionCreate_torrent_triggered();
|
||||
void on_actionWebsite_triggered() const;
|
||||
void on_actionBugReport_triggered() const;
|
||||
void on_actionShow_console_triggered();
|
||||
void readParamsOnSocket();
|
||||
void acceptConnection();
|
||||
void balloonClicked();
|
||||
void writeSettings();
|
||||
void readSettings();
|
||||
void on_actionExit_triggered();
|
||||
void createTrayIcon();
|
||||
void fullDiskError(QTorrentHandle& h, QString msg) const;
|
||||
void handleDownloadFromUrlFailure(QString, QString) const;
|
||||
void createSystrayDelayed();
|
||||
void tab_changed(int);
|
||||
// Keyboard shortcuts
|
||||
void createKeyboardShortcuts();
|
||||
void displayTransferTab() const;
|
||||
void displaySearchTab() const;
|
||||
void displayRSSTab() const;
|
||||
// Torrent actions
|
||||
void on_actionSet_global_upload_limit_triggered();
|
||||
void on_actionSet_global_download_limit_triggered();
|
||||
void on_actionDocumentation_triggered() const;
|
||||
void on_actionOpen_triggered();
|
||||
void updateGUI();
|
||||
void loadPreferences(bool configure_session=true);
|
||||
void processParams(const QStringList& params);
|
||||
void addTorrent(QString path);
|
||||
void addUnauthenticatedTracker(const QPair<QTorrentHandle,QString> &tracker);
|
||||
void processDownloadedFiles(QString path, QString url);
|
||||
void finishedTorrent(QTorrentHandle& h) const;
|
||||
// Options slots
|
||||
void on_actionOptions_triggered();
|
||||
void optionsSaved();
|
||||
// HTTP slots
|
||||
void on_actionDownload_from_URL_triggered();
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *);
|
||||
void showEvent(QShowEvent *);
|
||||
bool event(QEvent * event);
|
||||
void displayRSSTab(bool enable);
|
||||
|
||||
private:
|
||||
// Bittorrent
|
||||
Bittorrent *BTSession;
|
||||
QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed?
|
||||
// GUI related
|
||||
QTimer *guiUpdater;
|
||||
QTabWidget *tabs;
|
||||
StatusBar *status_bar;
|
||||
QPointer<options_imp> options;
|
||||
QPointer<consoleDlg> console;
|
||||
QPointer<about> aboutDlg;
|
||||
QPointer<createtorrent> createTorrentDlg;
|
||||
QPointer<downloadFromURL> downloadFromURLDialog;
|
||||
QPointer<QSystemTrayIcon> systrayIcon;
|
||||
QPointer<QTimer> systrayCreator;
|
||||
QMenu *myTrayIconMenu;
|
||||
TransferListWidget *transferList;
|
||||
TransferListFiltersWidget *transferListFilters;
|
||||
PropertiesWidget *properties;
|
||||
bool displaySpeedInTitle;
|
||||
bool force_exit;
|
||||
// Keyboard shortcuts
|
||||
QShortcut *switchSearchShortcut;
|
||||
QShortcut *switchSearchShortcut2;
|
||||
QShortcut *switchTransferShortcut;
|
||||
QShortcut *switchRSSShortcut;
|
||||
// Widgets
|
||||
QAction *prioSeparator;
|
||||
QAction *prioSeparator2;
|
||||
QSplitter *hSplitter;
|
||||
QSplitter *vSplitter;
|
||||
// Search
|
||||
SearchEngine *searchEngine;
|
||||
// RSS
|
||||
QPointer<RSSImp> rssWidget;
|
||||
// Misc
|
||||
QLocalServer *localServer;
|
||||
};
|
||||
|
||||
#endif
|
||||
BIN
src/Icons/downarrow.png
Normal file
|
After Width: | Height: | Size: 722 B |
BIN
src/Icons/flags/algeria.png
Normal file
|
After Width: | Height: | Size: 473 B |
BIN
src/Icons/flags/argentina.png
Normal file
|
After Width: | Height: | Size: 308 B |
BIN
src/Icons/flags/australia.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/Icons/flags/austria.png
Normal file
|
After Width: | Height: | Size: 285 B |
BIN
src/Icons/flags/belarus.png
Normal file
|
After Width: | Height: | Size: 373 B |
BIN
src/Icons/flags/belgium.png
Normal file
|
After Width: | Height: | Size: 173 B |
BIN
src/Icons/flags/bosnia.png
Normal file
|
After Width: | Height: | Size: 583 B |
BIN
src/Icons/flags/brazil.png
Normal file
|
After Width: | Height: | Size: 799 B |
BIN
src/Icons/flags/bulgaria.png
Normal file
|
After Width: | Height: | Size: 200 B |
BIN
src/Icons/flags/canada.png
Normal file
|
After Width: | Height: | Size: 686 B |
BIN
src/Icons/flags/china.png
Normal file
|
After Width: | Height: | Size: 329 B |
BIN
src/Icons/flags/costa_rica.png
Normal file
|
After Width: | Height: | Size: 203 B |
BIN
src/Icons/flags/croatia.png
Normal file
|
After Width: | Height: | Size: 479 B |
BIN
src/Icons/flags/czech.png
Normal file
|
After Width: | Height: | Size: 455 B |
BIN
src/Icons/flags/denmark.png
Normal file
|
After Width: | Height: | Size: 270 B |
BIN
src/Icons/flags/egypt.png
Normal file
|
After Width: | Height: | Size: 314 B |
BIN
src/Icons/flags/finland.png
Normal file
|
After Width: | Height: | Size: 290 B |
BIN
src/Icons/flags/france.png
Normal file
|
After Width: | Height: | Size: 160 B |
BIN
src/Icons/flags/georgia.png
Normal file
|
After Width: | Height: | Size: 680 B |
BIN
src/Icons/flags/germany.png
Normal file
|
After Width: | Height: | Size: 195 B |
BIN
src/Icons/flags/greece.png
Normal file
|
After Width: | Height: | Size: 465 B |
BIN
src/Icons/flags/hungary.png
Normal file
|
After Width: | Height: | Size: 172 B |
BIN
src/Icons/flags/iceland.png
Normal file
|
After Width: | Height: | Size: 439 B |
BIN
src/Icons/flags/india.png
Normal file
|
After Width: | Height: | Size: 400 B |
BIN
src/Icons/flags/indonesia.png
Normal file
|
After Width: | Height: | Size: 290 B |
BIN
src/Icons/flags/ireland.png
Normal file
|
After Width: | Height: | Size: 190 B |
BIN
src/Icons/flags/israel.png
Normal file
|
After Width: | Height: | Size: 476 B |
BIN
src/Icons/flags/italy.png
Normal file
|
After Width: | Height: | Size: 171 B |