Compare commits
2 Commits
debian
...
release-1.
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
445d000a87 | ||
|
|
3bf89e17e5 |
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
|
||||
84
AUTHORS
Normal file
@@ -0,0 +1,84 @@
|
||||
Author:
|
||||
* Christophe Dumez <chris@qbittorrent.org>
|
||||
|
||||
Contributors:
|
||||
* Arnaud Demaizière <arnaud@qbittorrent.org>
|
||||
* Ishan Arora <ishan@qbittorrent.org>
|
||||
* Grigis Gaëtan <cipher16@gmail.com>
|
||||
|
||||
Code from other projects:
|
||||
* files src/ico.cpp src/ico.h
|
||||
copyright: Malte Starostik <malte@kde.org>
|
||||
license: LGPL
|
||||
|
||||
Images Authors:
|
||||
* files: src/Icons/*.png
|
||||
copyright: Gnome Icon Theme
|
||||
license: GPLv2
|
||||
url: http://ftp.acc.umu.se/pub/GNOME/sources/gnome-icon-theme
|
||||
|
||||
* files: src/oxygen/*.png
|
||||
copyright: Oxygen Icon Theme (KDE)
|
||||
license: LGPL
|
||||
url: http://www.oxygen-icons.org
|
||||
|
||||
* files: src/Icons/flags/*.png
|
||||
copyright: Open Clip Art Library
|
||||
license: Creative Commons Public Domain Dedication
|
||||
url: http://www.openclipart.org
|
||||
|
||||
* files: src/Icons/skin/*.png
|
||||
files: src/menuicons/YYxYY/*.png
|
||||
copyright: Mateusz Tobola <tobejodok@qbittorrent.org>
|
||||
license: GPLv2
|
||||
|
||||
* file: src/Icons/skin/tabs.gif
|
||||
copyright: Greg Houston <gregory.houston@gmail.com>
|
||||
license: MIT
|
||||
|
||||
* file: src/search_engine/engines/btjunkie.png
|
||||
copyright: Downloaded from btjunkie.org
|
||||
|
||||
* file: src/search_engine/engines/isohunt.png
|
||||
copyright: Downloaded from isohunt.com
|
||||
|
||||
* file: src/search_engine/engines/mininova.png
|
||||
copyright: Downloaded from mininova.org
|
||||
|
||||
* file: src/search_engine/engines/piratebay.png
|
||||
copyright: Downloaded from thepiratebay.org
|
||||
|
||||
* file: src/search_engine/engines/torrentreactor.png
|
||||
copyright: Downloaded from torrentreactor.net
|
||||
|
||||
Translations authors:
|
||||
* files: src/lang/*.ts
|
||||
copyright:
|
||||
- Brazilian: Nick Marinho (nickmarinho@gmail.com)
|
||||
- Bulgarian: Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net)
|
||||
- Catalan: Gekko Dam Beer (gekko04@users.sourceforge.net)
|
||||
- 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)
|
||||
- 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 (nardog@e2umail.com)
|
||||
- Korean: Jin Woo Sin (jin828sin@users.sourceforge.net)
|
||||
- Norwegian: Lars-Erik Labori (hamil@users.sourceforge.net)
|
||||
- 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: Vicente Raul Plata Fonseca (silverxnt@users.sourceforge.net)
|
||||
- Swedish: Daniel Nylander (po@danielnylander.se)
|
||||
- Turkish: Erdem Bingöl (erdem84@gmail.com)
|
||||
- Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net)
|
||||
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.
|
||||
514
Changelog
Normal file
@@ -0,0 +1,514 @@
|
||||
* 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)
|
||||
45
INSTALL
Normal file
@@ -0,0 +1,45 @@
|
||||
qBittorrent - A BitTorrent client in C++ / Qt4
|
||||
------------------------------------------
|
||||
|
||||
*** Necessary if qt3 is default on your system ***
|
||||
export QTDIR=/usr/include/qt4
|
||||
export PATH=$QTDIR/bin:$PATH
|
||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
|
||||
*** End ***
|
||||
|
||||
./configure
|
||||
make && make install
|
||||
qbittorrent
|
||||
|
||||
will install and execute qBittorrent hopefully without any problems.
|
||||
|
||||
Dependencies:
|
||||
- Qt >= 4.3.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
|
||||
Qt >= 4.4.0 is advised
|
||||
|
||||
- libtorrent-rasterbar by Arvid Norberg (>= v0.14.0 REQUIRED)
|
||||
-> http://www.qbittorrent.org/download.php (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
|
||||
|
||||
- libcurl
|
||||
|
||||
- python >= 2.3 (needed by search engine)
|
||||
|
||||
- libmagick++ (advised, not required)
|
||||
* Needed for favicons support (RSS / Search plugins)
|
||||
|
||||
- libzzip (advised, not required)
|
||||
* Needed for zip support (Search plugins)
|
||||
|
||||
NOTE FOR NON-KDE USERS:
|
||||
- qt4-qtconfig package is advised when using other systems than KDE.
|
||||
You can also change qBittorrent style to Cleanlooks (GNOME like)
|
||||
|
||||
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
|
||||
34
README
Normal file
@@ -0,0 +1,34 @@
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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
|
||||
28
doc/qbittorrent.1
Normal file
@@ -0,0 +1,28 @@
|
||||
.\" This manpage has been automatically generated by docbook2man
|
||||
.\" from a DocBook document. This tool can be found at:
|
||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>.
|
||||
.TH "QBITTORRENT" "1" "September 1st 2007" "Bittorrent client written in C++ / Qt4" ""
|
||||
|
||||
.SH NAME
|
||||
qBittorrent \- a Bittorrent client written in C++ / Qt4
|
||||
.SH SYNOPSIS
|
||||
|
||||
\fBqbittorrent\fR [FILE | URL] [FILE | URL...]
|
||||
|
||||
\fBqbittorrent\fR \-\-help
|
||||
|
||||
\fBqbittorrent\fR \-\-version
|
||||
.PP
|
||||
.SH "DESCRIPTION"
|
||||
|
||||
\fBqBittorrent\fR is an advanced Bittorrent client written in C++ / Qt4,
|
||||
using the \fBrblibtorrent\fR library by Arvid Norberg. qBittorrent aims
|
||||
to be a good alternative to all other bittorrent clients out there. qBittorrent
|
||||
is fast, stable, light, it supports unicode and it provides a good integrated search engine.
|
||||
It also comes with UPnP port forwarding / NAT-PMP, encryption (Azureus compatible), FAST extension (mainline) and PeX support (utorrent compatible).
|
||||
|
||||
Please report any problem to http://bugs.qbittorrent.org
|
||||
.PP
|
||||
.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>
|
||||
6
qbittorrent.pro
Normal file
@@ -0,0 +1,6 @@
|
||||
TEMPLATE = subdirs
|
||||
|
||||
include(conf.pri)
|
||||
|
||||
SUBDIRS += src
|
||||
|
||||
19
qbittorrent.qc
Normal file
@@ -0,0 +1,19 @@
|
||||
<qconf>
|
||||
<name>qbittorrent</name>
|
||||
<profile>qbittorrent.pro</profile>
|
||||
<moddir>qcm</moddir>
|
||||
<datadir/>
|
||||
<dep type='qt4'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='libtorrent-rasterbar'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='libboost'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='libcurl'>
|
||||
<required/>
|
||||
</dep>
|
||||
<dep type='libzzip'/>
|
||||
</qconf>
|
||||
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;
|
||||
}
|
||||
};
|
||||
61
qcm/libcurl.qcm
Normal file
@@ -0,0 +1,61 @@
|
||||
/*
|
||||
-----BEGIN QCMOD-----
|
||||
name: libcommoncpp2
|
||||
arg: with-libcurl-inc=[path], Path to libcurl include files
|
||||
arg: with-libcurl-lib=[path], Path to libcurl library files
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
class qc_libcurl : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_libcurl(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "libcurl"; }
|
||||
QString shortname() const { return "libcurl"; }
|
||||
bool exec(){
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBCURL_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "curl/curl.h")) {
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/include";
|
||||
sl << "/usr/local/include";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkHeader(s, "curl/curl.h")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
|
||||
s = conf->getenv("QC_WITH_LIBCURL_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(!QFile::exists(s+QString("/libcurl.so")))
|
||||
return false;
|
||||
conf->addLib(QString("-L") + s);
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/lib/";
|
||||
sl << "/usr/lib64/";
|
||||
sl << "/usr/local/lib/";
|
||||
sl << "/usr/local/lib64/";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(QFile::exists(s+QString("libcurl.so"))){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found) return false;
|
||||
conf->addLib(QString("-L") + 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;
|
||||
}
|
||||
};
|
||||
29
qcm/libtorrent-rasterbar.qcm
Normal file
@@ -0,0 +1,29 @@
|
||||
/*
|
||||
-----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.0 (>= 0.14.4 advised)"; }
|
||||
QString shortname() const { return "libtorrent-rasterbar"; }
|
||||
bool exec(){
|
||||
QStringList incs;
|
||||
QString req_ver = "0.14.0";
|
||||
QString adv_ver = "0.14.4";
|
||||
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. Although it will compile and run, you will probably experience some bugs. Please consider updating to v%s!\n", version.toUtf8().data(), adv_ver.toUtf8().data());
|
||||
return true;
|
||||
}
|
||||
};
|
||||
71
qcm/libzzip.qcm
Normal file
@@ -0,0 +1,71 @@
|
||||
/*
|
||||
-----BEGIN QCMOD-----
|
||||
name: libzzip
|
||||
arg: with-libzzip-inc=[path], Path to libzzip++ include files
|
||||
arg: with-libzzip-lib=[path], Path to libzzip++ library files
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
#include <QProcess>
|
||||
class qc_libzzip : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_libzzip(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "Zzip library (libzzip)"; }
|
||||
QString shortname() const { return "libzzip"; }
|
||||
QString checkString() const {
|
||||
if(!conf->getenv("QC_DISABLE_LIBZZIP").isEmpty())
|
||||
return "";
|
||||
return ConfObj::checkString();
|
||||
}
|
||||
bool exec(){
|
||||
if(!conf->getenv("QC_DISABLE_LIBZZIP").isEmpty())
|
||||
return false;
|
||||
QString s;
|
||||
s = conf->getenv("QC_WITH_LIBZZIP_INC");
|
||||
if(!s.isEmpty()) {
|
||||
if(!conf->checkHeader(s, "zzip/zzip.h")) {
|
||||
return false;
|
||||
}
|
||||
}else{
|
||||
QStringList sl;
|
||||
sl << "/usr/include";
|
||||
sl << "/usr/local/include";
|
||||
bool found = false;
|
||||
foreach(s, sl){
|
||||
if(conf->checkHeader(s, "zzip/zzip.h")){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found)
|
||||
return false;
|
||||
}
|
||||
conf->addIncludePath(s);
|
||||
|
||||
s = conf->getenv("QC_WITH_LIBZZIP_LIB");
|
||||
if(!s.isEmpty()) {
|
||||
if(!QFile::exists(s+QString("/libzzip.so"))){
|
||||
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(QFile::exists(s+QString("libzzip.so"))){
|
||||
found = true;
|
||||
break;
|
||||
}
|
||||
}
|
||||
if(!found)
|
||||
return false;
|
||||
}
|
||||
conf->addLib(QString("-L") + s);
|
||||
conf->addLib("-lzzip");
|
||||
conf->addDefine("HAVE_ZZIP");
|
||||
return true;
|
||||
}
|
||||
};
|
||||
20
qcm/qt4.qcm
Normal file
@@ -0,0 +1,20 @@
|
||||
/*
|
||||
-----BEGIN QCMOD-----
|
||||
name: Qt >= 4.3
|
||||
-----END QCMOD-----
|
||||
*/
|
||||
class qc_qt4 : public ConfObj
|
||||
{
|
||||
public:
|
||||
qc_qt4(Conf *c) : ConfObj(c) {}
|
||||
QString name() const { return "Qt >= 4.3"; }
|
||||
QString shortname() const { return "Qt 4.3"; }
|
||||
bool exec()
|
||||
{
|
||||
if(QT_VERSION >= 0x040400) {
|
||||
conf->addDefine("QT_4_4");
|
||||
}
|
||||
return(QT_VERSION >= 0x040300);
|
||||
|
||||
}
|
||||
};
|
||||
116
src/DLListDelegate.h
Normal file
@@ -0,0 +1,116 @@
|
||||
/*
|
||||
* 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 DLLISTDELEGATE_H
|
||||
#define DLLISTDELEGATE_H
|
||||
|
||||
#include <QItemDelegate>
|
||||
#include <QModelIndex>
|
||||
#include <QPainter>
|
||||
#include <QStyleOptionProgressBarV2>
|
||||
#include <QStyleOptionViewItemV2>
|
||||
#include <QProgressBar>
|
||||
#include <QApplication>
|
||||
#include "misc.h"
|
||||
|
||||
// Defines for download list list columns
|
||||
#define NAME 0
|
||||
#define SIZE 1
|
||||
#define PROGRESS 2
|
||||
#define DLSPEED 3
|
||||
#define UPSPEED 4
|
||||
#define SEEDSLEECH 5
|
||||
#define RATIO 6
|
||||
#define ETA 7
|
||||
#define PRIORITY 8
|
||||
#define HASH 9
|
||||
|
||||
class DLListDelegate: public QItemDelegate {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
DLListDelegate(QObject *parent) : QItemDelegate(parent){}
|
||||
|
||||
~DLListDelegate(){}
|
||||
|
||||
void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const{
|
||||
QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option);
|
||||
switch(index.column()){
|
||||
case SIZE:
|
||||
QItemDelegate::drawBackground(painter, opt, index);
|
||||
QItemDelegate::drawDisplay(painter, opt, option.rect, misc::friendlyUnit(index.data().toLongLong()));
|
||||
break;
|
||||
case ETA:
|
||||
QItemDelegate::drawBackground(painter, opt, index);
|
||||
QItemDelegate::drawDisplay(painter, opt, option.rect, misc::userFriendlyDuration(index.data().toLongLong()));
|
||||
break;
|
||||
case UPSPEED:
|
||||
case DLSPEED:{
|
||||
QItemDelegate::drawBackground(painter, opt, index);
|
||||
double speed = index.data().toDouble();
|
||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(speed/1024., 'f', 1))+QString::fromUtf8(" ")+tr("KiB/s"));
|
||||
break;
|
||||
}
|
||||
case RATIO:{
|
||||
QItemDelegate::drawBackground(painter, opt, index);
|
||||
double ratio = index.data().toDouble();
|
||||
if(ratio > 100.)
|
||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString::fromUtf8("∞"));
|
||||
else
|
||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1)));
|
||||
break;
|
||||
}
|
||||
case PROGRESS:{
|
||||
QStyleOptionProgressBarV2 newopt;
|
||||
double progress = index.data().toDouble()*100.;
|
||||
newopt.rect = opt.rect;
|
||||
newopt.text = QString(QByteArray::number(progress, 'f', 1))+QString::fromUtf8("%");
|
||||
newopt.progress = (int)progress;
|
||||
newopt.maximum = 100;
|
||||
newopt.minimum = 0;
|
||||
newopt.state |= QStyle::State_Enabled;
|
||||
newopt.textVisible = true;
|
||||
QApplication::style()->drawControl(QStyle::CE_ProgressBar, &newopt,
|
||||
painter);
|
||||
break;
|
||||
}
|
||||
default:
|
||||
QItemDelegate::paint(painter, option, index);
|
||||
}
|
||||
}
|
||||
|
||||
QWidget* createEditor(QWidget*, const QStyleOptionViewItem &, const QModelIndex &) const {
|
||||
// No editor here
|
||||
return 0;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
98
src/FinishedListDelegate.h
Normal file
@@ -0,0 +1,98 @@
|
||||
/*
|
||||
* 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 FINISHEDLISTDELEGATE_H
|
||||
#define FINISHEDLISTDELEGATE_H
|
||||
|
||||
#include <QItemDelegate>
|
||||
#include <QModelIndex>
|
||||
#include <QPainter>
|
||||
#include <QStyleOptionProgressBarV2>
|
||||
#include <QStyleOptionViewItemV2>
|
||||
#include <QProgressBar>
|
||||
#include <QApplication>
|
||||
#include "misc.h"
|
||||
|
||||
// Defines for download list list columns
|
||||
#define F_NAME 0
|
||||
#define F_SIZE 1
|
||||
#define F_UPSPEED 2
|
||||
#define F_SWARM 3
|
||||
#define F_PEERS 4
|
||||
#define F_UPLOAD 5
|
||||
#define F_RATIO 6
|
||||
#define F_HASH 7
|
||||
|
||||
#define MAX_RATIO 100.
|
||||
|
||||
class FinishedListDelegate: public QItemDelegate {
|
||||
Q_OBJECT
|
||||
|
||||
public:
|
||||
FinishedListDelegate(QObject *parent) : QItemDelegate(parent){}
|
||||
|
||||
~FinishedListDelegate(){}
|
||||
|
||||
void paint(QPainter * painter, const QStyleOptionViewItem & option, const QModelIndex & index) const{
|
||||
QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option);
|
||||
switch(index.column()){
|
||||
case F_SIZE:
|
||||
case F_UPLOAD:
|
||||
QItemDelegate::drawBackground(painter, opt, index);
|
||||
QItemDelegate::drawDisplay(painter, opt, option.rect, misc::friendlyUnit(index.data().toLongLong()));
|
||||
break;
|
||||
case F_UPSPEED:{
|
||||
QItemDelegate::drawBackground(painter, opt, index);
|
||||
double speed = index.data().toDouble();
|
||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(speed/1024., 'f', 1))+QString::fromUtf8(" ")+tr("KiB/s"));
|
||||
break;
|
||||
}
|
||||
case F_RATIO:{
|
||||
QItemDelegate::drawBackground(painter, opt, index);
|
||||
double ratio = index.data().toDouble();
|
||||
if(ratio > MAX_RATIO)
|
||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString::fromUtf8("∞"));
|
||||
else
|
||||
QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1)));
|
||||
break;
|
||||
}
|
||||
default:
|
||||
QItemDelegate::paint(painter, option, index);
|
||||
}
|
||||
}
|
||||
|
||||
QWidget* createEditor(QWidget*, const QStyleOptionViewItem &, const QModelIndex &) const {
|
||||
// No editor here
|
||||
return 0;
|
||||
}
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
682
src/FinishedTorrents.cpp
Normal file
@@ -0,0 +1,682 @@
|
||||
/*
|
||||
* 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
|
||||
*/
|
||||
#include "FinishedTorrents.h"
|
||||
#include "misc.h"
|
||||
#include "properties_imp.h"
|
||||
#include "bittorrent.h"
|
||||
#include "allocationDlg.h"
|
||||
#include "FinishedListDelegate.h"
|
||||
#include "GUI.h"
|
||||
|
||||
#include <QFile>
|
||||
#include <QSettings>
|
||||
#include <QStandardItemModel>
|
||||
#include <QHeaderView>
|
||||
#include <QMenu>
|
||||
#include <QMessageBox>
|
||||
|
||||
FinishedTorrents::FinishedTorrents(QObject *parent, bittorrent *BTSession) : parent(parent), BTSession(BTSession), nbFinished(0){
|
||||
setupUi(this);
|
||||
actionStart->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/play.png")));
|
||||
actionPause->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/pause.png")));
|
||||
finishedListModel = new QStandardItemModel(0,8);
|
||||
finishedListModel->setHeaderData(F_NAME, Qt::Horizontal, tr("Name", "i.e: file name"));
|
||||
finishedListModel->setHeaderData(F_SIZE, Qt::Horizontal, tr("Size", "i.e: file size"));
|
||||
finishedListModel->setHeaderData(F_UPSPEED, Qt::Horizontal, tr("UP Speed", "i.e: Upload speed"));
|
||||
finishedListModel->setHeaderData(F_SWARM, Qt::Horizontal, tr("Seeds / Leechers"));
|
||||
finishedListModel->setHeaderData(F_PEERS, Qt::Horizontal, tr("Connected peers"));
|
||||
finishedListModel->setHeaderData(F_UPLOAD, Qt::Horizontal, tr("Total uploaded", "i.e: Total amount of uploaded data"));
|
||||
finishedListModel->setHeaderData(F_RATIO, Qt::Horizontal, tr("Ratio"));
|
||||
finishedList->setModel(finishedListModel);
|
||||
finishedList->setRootIsDecorated(false);
|
||||
finishedList->setAllColumnsShowFocus(true);
|
||||
loadHiddenColumns();
|
||||
// Hide hash column
|
||||
finishedList->hideColumn(F_HASH);
|
||||
// Load last columns width for download list
|
||||
if(!loadColWidthFinishedList()){
|
||||
finishedList->header()->resizeSection(0, 200);
|
||||
}
|
||||
// Make download list header clickable for sorting
|
||||
finishedList->header()->setClickable(true);
|
||||
finishedList->header()->setSortIndicatorShown(true);
|
||||
connect(finishedList->header(), SIGNAL(sectionPressed(int)), this, SLOT(toggleFinishedListSortOrder(int)));
|
||||
finishedListDelegate = new FinishedListDelegate(finishedList);
|
||||
finishedList->setItemDelegate(finishedListDelegate);
|
||||
connect(finishedList, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayFinishedListMenu(const QPoint&)));
|
||||
finishedList->header()->setContextMenuPolicy(Qt::CustomContextMenu);
|
||||
connect(finishedList->header(), SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayFinishedHoSMenu(const QPoint&)));
|
||||
connect(finishedList, SIGNAL(doubleClicked(const QModelIndex&)), this, SLOT(notifyTorrentDoubleClicked(const QModelIndex&)));
|
||||
actionDelete->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/delete.png")));
|
||||
actionPreview_file->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/preview.png")));
|
||||
actionDelete_Permanently->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/delete_perm.png")));
|
||||
actionTorrent_Properties->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/properties.png")));
|
||||
actionSet_upload_limit->setIcon(QIcon(QString::fromUtf8(":/Icons/skin/seeding.png")));
|
||||
connect(actionPause, SIGNAL(triggered()), (GUI*)parent, SLOT(on_actionPause_triggered()));
|
||||
connect(actionStart, SIGNAL(triggered()), (GUI*)parent, SLOT(on_actionStart_triggered()));
|
||||
connect(actionDelete, SIGNAL(triggered()), (GUI*)parent, SLOT(on_actionDelete_triggered()));
|
||||
connect(actionPreview_file, SIGNAL(triggered()), (GUI*)parent, SLOT(on_actionPreview_file_triggered()));
|
||||
connect(actionDelete_Permanently, SIGNAL(triggered()), (GUI*)parent, SLOT(on_actionDelete_Permanently_triggered()));
|
||||
connect(actionOpen_destination_folder, SIGNAL(triggered()), (GUI*)parent, SLOT(openDestinationFolder()));
|
||||
connect(actionBuy_it, SIGNAL(triggered()), (GUI*)parent, SLOT(goBuyPage()));
|
||||
connect(actionTorrent_Properties, SIGNAL(triggered()), this, SLOT(propertiesSelection()));
|
||||
connect(actionForce_recheck, SIGNAL(triggered()), this, SLOT(forceRecheck()));
|
||||
|
||||
connect(actionHOSColName, SIGNAL(triggered()), this, SLOT(hideOrShowColumnName()));
|
||||
connect(actionHOSColSize, SIGNAL(triggered()), this, SLOT(hideOrShowColumnSize()));
|
||||
connect(actionHOSColUpSpeed, SIGNAL(triggered()), this, SLOT(hideOrShowColumnUpSpeed()));
|
||||
connect(actionHOSColSwarm, SIGNAL(triggered()), this, SLOT(hideOrShowColumnSwarm()));
|
||||
connect(actionHOSColPeers, SIGNAL(triggered()), this, SLOT(hideOrShowColumnPeers()));
|
||||
connect(actionHOSColUpload, SIGNAL(triggered()), this, SLOT(hideOrShowColumnUpload()));
|
||||
connect(actionHOSColRatio, SIGNAL(triggered()), this, SLOT(hideOrShowColumnRatio()));
|
||||
}
|
||||
|
||||
FinishedTorrents::~FinishedTorrents(){
|
||||
saveColWidthFinishedList();
|
||||
saveHiddenColumns();
|
||||
delete finishedListDelegate;
|
||||
delete finishedListModel;
|
||||
}
|
||||
|
||||
void FinishedTorrents::notifyTorrentDoubleClicked(const QModelIndex& index) {
|
||||
unsigned int row = index.row();
|
||||
QString hash = getHashFromRow(row);
|
||||
emit torrentDoubleClicked(hash, true);
|
||||
}
|
||||
|
||||
void FinishedTorrents::addTorrent(QString hash){
|
||||
int row = getRowFromHash(hash);
|
||||
if(row != -1) return;
|
||||
row = finishedListModel->rowCount();
|
||||
QTorrentHandle h = BTSession->getTorrentHandle(hash);
|
||||
// Adding torrent to download list
|
||||
finishedListModel->insertRow(row);
|
||||
finishedListModel->setData(finishedListModel->index(row, F_NAME), QVariant(h.name()));
|
||||
finishedListModel->setData(finishedListModel->index(row, F_SIZE), QVariant((qlonglong)h.actual_size()));
|
||||
finishedListModel->setData(finishedListModel->index(row, F_UPSPEED), QVariant((double)0.));
|
||||
finishedListModel->setData(finishedListModel->index(row, F_SWARM), QVariant("-1/-1"));
|
||||
finishedListModel->setData(finishedListModel->index(row, F_PEERS), QVariant("0"));
|
||||
finishedListModel->setData(finishedListModel->index(row, F_UPLOAD), QVariant((qlonglong)h.all_time_upload()));
|
||||
finishedListModel->setData(finishedListModel->index(row, F_RATIO), QVariant(QString::fromUtf8(misc::toString(BTSession->getRealRatio(hash)).c_str())));
|
||||
finishedListModel->setData(finishedListModel->index(row, F_HASH), QVariant(hash));
|
||||
if(h.is_paused()) {
|
||||
finishedListModel->setData(finishedListModel->index(row, F_NAME), QIcon(":/Icons/skin/paused.png"), Qt::DecorationRole);
|
||||
setRowColor(row, "red");
|
||||
}else{
|
||||
finishedListModel->setData(finishedListModel->index(row, F_NAME), QVariant(QIcon(":/Icons/skin/seeding.png")), Qt::DecorationRole);
|
||||
setRowColor(row, "orange");
|
||||
}
|
||||
// Update the number of finished torrents
|
||||
++nbFinished;
|
||||
emit finishedTorrentsNumberChanged(nbFinished);
|
||||
// Sort List
|
||||
sortFinishedList();
|
||||
}
|
||||
|
||||
// Set the color of a row in data model
|
||||
void FinishedTorrents::setRowColor(int row, QString color){
|
||||
unsigned int nbColumns = finishedListModel->columnCount()-1;
|
||||
for(unsigned int i=0; i<nbColumns; ++i){
|
||||
finishedListModel->setData(finishedListModel->index(row, i), QVariant(QColor(color)), Qt::ForegroundRole);
|
||||
}
|
||||
}
|
||||
|
||||
QStringList FinishedTorrents::getSelectedTorrents(bool only_one) const{
|
||||
QStringList res;
|
||||
QModelIndexList selectedIndexes = finishedList->selectionModel()->selectedIndexes();
|
||||
foreach(const QModelIndex &index, selectedIndexes) {
|
||||
if(index.column() == F_NAME) {
|
||||
// Get the file hash
|
||||
QString hash = finishedListModel->data(finishedListModel->index(index.row(), F_HASH)).toString();
|
||||
res << hash;
|
||||
if(only_one) break;
|
||||
}
|
||||
}
|
||||
return res;
|
||||
}
|
||||
|
||||
unsigned int FinishedTorrents::getNbTorrentsInList() const {
|
||||
return nbFinished;
|
||||
}
|
||||
|
||||
// Load columns width in a file that were saved previously
|
||||
// (finished list)
|
||||
bool FinishedTorrents::loadColWidthFinishedList(){
|
||||
qDebug("Loading columns width for finished list");
|
||||
QSettings settings("qBittorrent", "qBittorrent");
|
||||
QString line = settings.value("FinishedListColsWidth", QString()).toString();
|
||||
if(line.isEmpty())
|
||||
return false;
|
||||
QStringList width_list = line.split(' ');
|
||||
if(width_list.size() < finishedListModel->columnCount()-1)
|
||||
return false;
|
||||
unsigned int listSize = width_list.size();
|
||||
for(unsigned int i=0; i<listSize; ++i){
|
||||
finishedList->header()->resizeSection(i, width_list.at(i).toInt());
|
||||
}
|
||||
loadLastSortedColumn();
|
||||
QVariantList visualIndexes = settings.value(QString::fromUtf8("FinishedListVisualIndexes"), QVariantList()).toList();
|
||||
if(visualIndexes.size() != finishedListModel->columnCount()-1) {
|
||||
qDebug("Corrupted values for download list columns sizes");
|
||||
return false;
|
||||
}
|
||||
bool change = false;
|
||||
do {
|
||||
change = false;
|
||||
for(int i=0;i<visualIndexes.size(); ++i) {
|
||||
int new_visual_index = visualIndexes.at(finishedList->header()->logicalIndex(i)).toInt();
|
||||
if(i != new_visual_index) {
|
||||
qDebug("Moving column from %d to %d", finishedList->header()->logicalIndex(i), new_visual_index);
|
||||
finishedList->header()->moveSection(i, new_visual_index);
|
||||
change = true;
|
||||
}
|
||||
}
|
||||
}while(change);
|
||||
qDebug("Finished list columns width loaded");
|
||||
return true;
|
||||
}
|
||||
|
||||
void FinishedTorrents::loadLastSortedColumn() {
|
||||
// Loading last sorted column
|
||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||
QString sortedCol = settings.value(QString::fromUtf8("FinishedListSortedCol"), QString()).toString();
|
||||
if(!sortedCol.isEmpty()) {
|
||||
Qt::SortOrder sortOrder;
|
||||
if(sortedCol.endsWith(QString::fromUtf8("d")))
|
||||
sortOrder = Qt::DescendingOrder;
|
||||
else
|
||||
sortOrder = Qt::AscendingOrder;
|
||||
sortedCol = sortedCol.left(sortedCol.size()-1);
|
||||
int index = sortedCol.toInt();
|
||||
sortFinishedList(index, sortOrder);
|
||||
}
|
||||
}
|
||||
|
||||
// Save columns width in a file to remember them
|
||||
// (finished list)
|
||||
void FinishedTorrents::saveColWidthFinishedList() const{
|
||||
qDebug("Saving columns width in finished list");
|
||||
QSettings settings("qBittorrent", "qBittorrent");
|
||||
QStringList width_list;
|
||||
QStringList new_width_list;
|
||||
short nbColumns = finishedListModel->columnCount()-1;
|
||||
|
||||
QString line = settings.value("FinishedListColsWidth", QString()).toString();
|
||||
if(!line.isEmpty()) {
|
||||
width_list = line.split(' ');
|
||||
}
|
||||
for(short i=0; i<nbColumns; ++i){
|
||||
if(finishedList->columnWidth(i)<1 && width_list.size() == nbColumns && width_list.at(i).toInt()>=1) {
|
||||
// load the former width
|
||||
new_width_list << width_list.at(i);
|
||||
} else if(finishedList->columnWidth(i)>=1) {
|
||||
// usual case, save the current width
|
||||
new_width_list << QString::fromUtf8(misc::toString(finishedList->columnWidth(i)).c_str());
|
||||
} else {
|
||||
// default width
|
||||
finishedList->resizeColumnToContents(i);
|
||||
new_width_list << QString::fromUtf8(misc::toString(finishedList->columnWidth(i)).c_str());
|
||||
}
|
||||
}
|
||||
settings.setValue("FinishedListColsWidth", new_width_list.join(" "));
|
||||
QVariantList visualIndexes;
|
||||
for(int i=0; i<nbColumns; ++i) {
|
||||
visualIndexes.append(finishedList->header()->visualIndex(i));
|
||||
}
|
||||
settings.setValue(QString::fromUtf8("FinishedListVisualIndexes"), visualIndexes);
|
||||
qDebug("Finished list columns width saved");
|
||||
}
|
||||
|
||||
void FinishedTorrents::on_actionSet_upload_limit_triggered(){
|
||||
QModelIndexList selectedIndexes = finishedList->selectionModel()->selectedIndexes();
|
||||
QStringList hashes;
|
||||
foreach(const QModelIndex &index, selectedIndexes){
|
||||
if(index.column() == F_NAME){
|
||||
// Get the file hash
|
||||
hashes << finishedListModel->data(finishedListModel->index(index.row(), F_HASH)).toString();
|
||||
}
|
||||
}
|
||||
new BandwidthAllocationDialog(this, true, BTSession, hashes);
|
||||
}
|
||||
|
||||
void FinishedTorrents::updateTorrent(QTorrentHandle h) {
|
||||
QString hash = h.hash();
|
||||
int row = getRowFromHash(hash);
|
||||
if(row == -1){
|
||||
qDebug("Cannot find torrent in finished list, adding it");
|
||||
addTorrent(hash);
|
||||
row = getRowFromHash(hash);
|
||||
}
|
||||
Q_ASSERT(row != -1);
|
||||
if(!finishedList->isColumnHidden(F_SWARM)) {
|
||||
finishedListModel->setData(finishedListModel->index(row, F_SWARM), misc::toQString(h.num_complete())+QString("/")+misc::toQString(h.num_incomplete()));
|
||||
}
|
||||
if(h.is_paused()) return;
|
||||
// Update queued torrent
|
||||
if(BTSession->isQueueingEnabled() && h.is_queued()) {
|
||||
if(h.state() == torrent_status::checking_files || h.state() == torrent_status::queued_for_checking){
|
||||
finishedListModel->setData(finishedListModel->index(row, F_NAME), QVariant(QIcon(QString::fromUtf8(":/Icons/oxygen/time.png"))), Qt::DecorationRole);
|
||||
} else {
|
||||
finishedListModel->setData(finishedListModel->index(row, F_NAME), QVariant(QIcon(QString::fromUtf8(":/Icons/skin/queued.png"))), Qt::DecorationRole);
|
||||
}
|
||||
// Reset upload speed and seeds/leech
|
||||
finishedListModel->setData(finishedListModel->index(row, F_UPSPEED), 0.);
|
||||
finishedListModel->setData(finishedListModel->index(row, F_PEERS), "0");
|
||||
setRowColor(row, QString::fromUtf8("grey"));
|
||||
return;
|
||||
}
|
||||
if(h.state() == torrent_status::checking_files || h.state() == torrent_status::queued_for_checking){
|
||||
finishedListModel->setData(finishedListModel->index(row, F_NAME), QVariant(QIcon(QString::fromUtf8(":/Icons/oxygen/time.png"))), Qt::DecorationRole);
|
||||
setRowColor(row, QString::fromUtf8("grey"));
|
||||
return;
|
||||
}
|
||||
setRowColor(row, QString::fromUtf8("orange"));
|
||||
finishedListModel->setData(finishedListModel->index(row, F_NAME), QVariant(QIcon(QString::fromUtf8(":/Icons/skin/seeding.png"))), Qt::DecorationRole);
|
||||
if(!finishedList->isColumnHidden(F_UPSPEED)) {
|
||||
finishedListModel->setData(finishedListModel->index(row, F_UPSPEED), QVariant((double)h.upload_payload_rate()));
|
||||
}
|
||||
if(!finishedList->isColumnHidden(F_PEERS)) {
|
||||
finishedListModel->setData(finishedListModel->index(row, F_PEERS), misc::toQString(h.num_peers() - h.num_seeds(), true));
|
||||
}
|
||||
if(!finishedList->isColumnHidden(F_UPLOAD)) {
|
||||
finishedListModel->setData(finishedListModel->index(row, F_UPLOAD), QVariant((double)h.all_time_upload()));
|
||||
}
|
||||
if(!finishedList->isColumnHidden(F_RATIO)) {
|
||||
finishedListModel->setData(finishedListModel->index(row, F_RATIO), QVariant(misc::toQString(BTSession->getRealRatio(hash))));
|
||||
}
|
||||
}
|
||||
|
||||
int FinishedTorrents::getRowFromHash(QString hash) const{
|
||||
unsigned int nbRows = finishedListModel->rowCount();
|
||||
for(unsigned int i=0; i<nbRows; ++i){
|
||||
if(finishedListModel->data(finishedListModel->index(i, F_HASH)) == hash){
|
||||
return i;
|
||||
}
|
||||
}
|
||||
return -1;
|
||||
}
|
||||
|
||||
// Note: does not actually pause the torrent in BT Session
|
||||
void FinishedTorrents::pauseTorrent(QString hash) {
|
||||
int row = getRowFromHash(hash);
|
||||
if(row == -1)
|
||||
return;
|
||||
finishedListModel->setData(finishedListModel->index(row, F_UPSPEED), QVariant((double)0.0));
|
||||
finishedListModel->setData(finishedListModel->index(row, F_NAME), QIcon(QString::fromUtf8(":/Icons/skin/paused.png")), Qt::DecorationRole);
|
||||
finishedListModel->setData(finishedListModel->index(row, F_PEERS), QVariant(QString::fromUtf8("0")));
|
||||
setRowColor(row, QString::fromUtf8("red"));
|
||||
}
|
||||
|
||||
QString FinishedTorrents::getHashFromRow(unsigned int row) const {
|
||||
Q_ASSERT(row < (unsigned int)finishedListModel->rowCount());
|
||||
return finishedListModel->data(finishedListModel->index(row, F_HASH)).toString();
|
||||
}
|
||||
|
||||
// Will move it to download tab
|
||||
void FinishedTorrents::deleteTorrent(QString hash){
|
||||
int row = getRowFromHash(hash);
|
||||
if(row == -1){
|
||||
qDebug("Torrent is not in finished list, nothing to delete");
|
||||
return;
|
||||
}
|
||||
finishedListModel->removeRow(row);
|
||||
--nbFinished;
|
||||
emit finishedTorrentsNumberChanged(nbFinished);
|
||||
}
|
||||
|
||||
// Show torrent properties dialog
|
||||
void FinishedTorrents::showProperties(const QModelIndex &index){
|
||||
showPropertiesFromHash(finishedListModel->data(finishedListModel->index(index.row(), F_HASH)).toString());
|
||||
}
|
||||
|
||||
void FinishedTorrents::showPropertiesFromHash(QString hash){
|
||||
QTorrentHandle h = BTSession->getTorrentHandle(hash);
|
||||
properties *prop = new properties(this, BTSession, h);
|
||||
connect(prop, SIGNAL(filteredFilesChanged(QString)), this, SLOT(updateFileSize(QString)));
|
||||
connect(prop, SIGNAL(trackersChanged(QString)), BTSession, SLOT(saveTrackerFile(QString)));
|
||||
prop->show();
|
||||
}
|
||||
|
||||
void FinishedTorrents::updateFileSize(QString hash){
|
||||
int row = getRowFromHash(hash);
|
||||
QTorrentHandle h = BTSession->getTorrentHandle(hash);
|
||||
finishedListModel->setData(finishedListModel->index(row, F_SIZE), QVariant((qlonglong)h.actual_size()));
|
||||
}
|
||||
|
||||
// display properties of selected items
|
||||
void FinishedTorrents::propertiesSelection(){
|
||||
QModelIndexList selectedIndexes = finishedList->selectionModel()->selectedIndexes();
|
||||
foreach(const QModelIndex &index, selectedIndexes){
|
||||
if(index.column() == F_NAME){
|
||||
showProperties(index);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FinishedTorrents::forceRecheck(){
|
||||
QModelIndexList selectedIndexes = finishedList->selectionModel()->selectedIndexes();
|
||||
foreach(const QModelIndex &index, selectedIndexes){
|
||||
if(index.column() == F_NAME){
|
||||
QString hash = finishedListModel->data(finishedListModel->index(index.row(), F_HASH)).toString();
|
||||
QTorrentHandle h = BTSession->getTorrentHandle(hash);
|
||||
qDebug("Forcing recheck for torrent %s", hash.toLocal8Bit().data());
|
||||
h.force_recheck();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FinishedTorrents::displayFinishedListMenu(const QPoint&){
|
||||
QMenu myFinishedListMenu(this);
|
||||
// Enable/disable pause/start action given the DL state
|
||||
QModelIndexList selectedIndexes = finishedList->selectionModel()->selectedIndexes();
|
||||
bool has_pause = false, has_start = false, has_preview = false;
|
||||
foreach(const QModelIndex &index, selectedIndexes) {
|
||||
if(index.column() == F_NAME) {
|
||||
// Get the file name
|
||||
QString hash = finishedListModel->data(finishedListModel->index(index.row(), F_HASH)).toString();
|
||||
// Get handle and pause the torrent
|
||||
QTorrentHandle h = BTSession->getTorrentHandle(hash);
|
||||
if(!h.is_valid()) continue;
|
||||
if(h.is_paused()) {
|
||||
if(!has_start) {
|
||||
myFinishedListMenu.addAction(actionStart);
|
||||
has_start = true;
|
||||
}
|
||||
}else{
|
||||
if(!has_pause) {
|
||||
myFinishedListMenu.addAction(actionPause);
|
||||
has_pause = true;
|
||||
}
|
||||
}
|
||||
if(BTSession->isFilePreviewPossible(hash) && !has_preview) {
|
||||
myFinishedListMenu.addAction(actionPreview_file);
|
||||
has_preview = true;
|
||||
}
|
||||
if(has_pause && has_start && has_preview) break;
|
||||
}
|
||||
}
|
||||
myFinishedListMenu.addSeparator();
|
||||
myFinishedListMenu.addAction(actionDelete);
|
||||
myFinishedListMenu.addAction(actionDelete_Permanently);
|
||||
myFinishedListMenu.addSeparator();
|
||||
myFinishedListMenu.addAction(actionSet_upload_limit);
|
||||
myFinishedListMenu.addSeparator();
|
||||
myFinishedListMenu.addAction(actionForce_recheck);
|
||||
myFinishedListMenu.addSeparator();
|
||||
myFinishedListMenu.addAction(actionOpen_destination_folder);
|
||||
myFinishedListMenu.addAction(actionTorrent_Properties);
|
||||
myFinishedListMenu.addSeparator();
|
||||
myFinishedListMenu.addAction(actionBuy_it);
|
||||
|
||||
// Call menu
|
||||
myFinishedListMenu.exec(QCursor::pos());
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Hiding Columns functions
|
||||
*/
|
||||
|
||||
// hide/show columns menu
|
||||
void FinishedTorrents::displayFinishedHoSMenu(const QPoint& pos){
|
||||
QMenu hideshowColumn(this);
|
||||
hideshowColumn.setTitle(tr("Hide or Show Column"));
|
||||
int lastCol = F_RATIO;
|
||||
for(int i=0; i<=lastCol; i++) {
|
||||
hideshowColumn.addAction(getActionHoSCol(i));
|
||||
}
|
||||
// Call menu
|
||||
hideshowColumn.exec(mapToGlobal(pos)+QPoint(10,34));
|
||||
}
|
||||
|
||||
// toggle hide/show a column
|
||||
void FinishedTorrents::hideOrShowColumn(int index) {
|
||||
unsigned int nbVisibleColumns = 0;
|
||||
unsigned int nbCols = finishedListModel->columnCount();
|
||||
// Count visible columns
|
||||
for(unsigned int i=0; i<nbCols; ++i) {
|
||||
if(!finishedList->isColumnHidden(i))
|
||||
++nbVisibleColumns;
|
||||
}
|
||||
if(!finishedList->isColumnHidden(index)) {
|
||||
// User wants to hide the column
|
||||
// Is there at least one other visible column?
|
||||
if(nbVisibleColumns <= 1) return;
|
||||
// User can hide the column, do it.
|
||||
finishedList->setColumnHidden(index, true);
|
||||
getActionHoSCol(index)->setIcon(QIcon(QString::fromUtf8(":/Icons/oxygen/button_cancel.png")));
|
||||
--nbVisibleColumns;
|
||||
} else {
|
||||
// User want to display the column
|
||||
finishedList->setColumnHidden(index, false);
|
||||
getActionHoSCol(index)->setIcon(QIcon(QString::fromUtf8(":/Icons/oxygen/button_ok.png")));
|
||||
++nbVisibleColumns;
|
||||
}
|
||||
//resize all others non-hidden columns
|
||||
for(unsigned int i=0; i<nbCols; ++i) {
|
||||
if(!finishedList->isColumnHidden(i)) {
|
||||
finishedList->setColumnWidth(i, (int)ceil(finishedList->columnWidth(i)+(finishedList->columnWidth(index)/nbVisibleColumns)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void FinishedTorrents::hideOrShowColumnName() {
|
||||
hideOrShowColumn(F_NAME);
|
||||
}
|
||||
|
||||
void FinishedTorrents::hideOrShowColumnSize() {
|
||||
hideOrShowColumn(F_SIZE);
|
||||
}
|
||||
|
||||
void FinishedTorrents::hideOrShowColumnUpSpeed() {
|
||||
hideOrShowColumn(F_UPSPEED);
|
||||
}
|
||||
|
||||
void FinishedTorrents::hideOrShowColumnSwarm() {
|
||||
hideOrShowColumn(F_SWARM);
|
||||
}
|
||||
|
||||
void FinishedTorrents::hideOrShowColumnPeers() {
|
||||
hideOrShowColumn(F_PEERS);
|
||||
}
|
||||
|
||||
void FinishedTorrents::hideOrShowColumnUpload() {
|
||||
hideOrShowColumn(F_UPLOAD);
|
||||
}
|
||||
|
||||
void FinishedTorrents::hideOrShowColumnRatio() {
|
||||
hideOrShowColumn(F_RATIO);
|
||||
}
|
||||
|
||||
// load the previous settings, and hide the columns
|
||||
bool FinishedTorrents::loadHiddenColumns() {
|
||||
bool loaded = false;
|
||||
QSettings settings("qBittorrent", "qBittorrent");
|
||||
QString line = settings.value("FinishedListColsHoS", QString()).toString();
|
||||
QStringList ishidden_list;
|
||||
if(!line.isEmpty()) {
|
||||
ishidden_list = line.split(' ');
|
||||
if(ishidden_list.size() == finishedListModel->columnCount()-1) {
|
||||
unsigned int listSize = ishidden_list.size();
|
||||
for(unsigned int i=0; i<listSize; ++i){
|
||||
finishedList->header()->resizeSection(i, ishidden_list.at(i).toInt());
|
||||
}
|
||||
loaded = true;
|
||||
}
|
||||
}
|
||||
for(int i=0; i<finishedListModel->columnCount()-1; i++) {
|
||||
if(loaded && ishidden_list.at(i) == "0") {
|
||||
finishedList->setColumnHidden(i, true);
|
||||
getActionHoSCol(i)->setIcon(QIcon(QString::fromUtf8(":/Icons/oxygen/button_cancel.png")));
|
||||
} else {
|
||||
getActionHoSCol(i)->setIcon(QIcon(QString::fromUtf8(":/Icons/oxygen/button_ok.png")));
|
||||
}
|
||||
}
|
||||
return loaded;
|
||||
}
|
||||
|
||||
// save the hidden columns in settings
|
||||
void FinishedTorrents::saveHiddenColumns() {
|
||||
QSettings settings("qBittorrent", "qBittorrent");
|
||||
QStringList ishidden_list;
|
||||
short nbColumns = finishedListModel->columnCount()-1;
|
||||
|
||||
for(short i=0; i<nbColumns; ++i){
|
||||
if(finishedList->isColumnHidden(i)) {
|
||||
ishidden_list << QString::fromUtf8(misc::toString(0).c_str());
|
||||
} else {
|
||||
ishidden_list << QString::fromUtf8(misc::toString(1).c_str());
|
||||
}
|
||||
}
|
||||
settings.setValue("FinishedListColsHoS", ishidden_list.join(" "));
|
||||
}
|
||||
|
||||
// getter, return the action hide or show whose id is index
|
||||
QAction* FinishedTorrents::getActionHoSCol(int index) {
|
||||
switch(index) {
|
||||
case F_NAME :
|
||||
return actionHOSColName;
|
||||
break;
|
||||
case F_SIZE :
|
||||
return actionHOSColSize;
|
||||
break;
|
||||
case F_UPSPEED :
|
||||
return actionHOSColUpSpeed;
|
||||
break;
|
||||
case F_SWARM :
|
||||
return actionHOSColSwarm;
|
||||
break;
|
||||
case F_PEERS :
|
||||
return actionHOSColPeers;
|
||||
break;
|
||||
case F_UPLOAD :
|
||||
return actionHOSColUpload;
|
||||
break;
|
||||
case F_RATIO :
|
||||
return actionHOSColRatio;
|
||||
break;
|
||||
default :
|
||||
return NULL;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
* Sorting functions
|
||||
*/
|
||||
|
||||
void FinishedTorrents::toggleFinishedListSortOrder(int index) {
|
||||
Qt::SortOrder sortOrder = Qt::AscendingOrder;
|
||||
if(finishedList->header()->sortIndicatorSection() == index){
|
||||
sortOrder = (Qt::SortOrder)!(bool)finishedList->header()->sortIndicatorOrder();
|
||||
}
|
||||
switch(index) {
|
||||
case F_SIZE:
|
||||
case F_UPSPEED:
|
||||
case F_RATIO:
|
||||
case F_UPLOAD:
|
||||
sortFinishedListFloat(index, sortOrder);
|
||||
break;
|
||||
default:
|
||||
sortFinishedListString(index, sortOrder);
|
||||
}
|
||||
QSettings settings(QString::fromUtf8("qBittorrent"), QString::fromUtf8("qBittorrent"));
|
||||
QString sortOrderLetter;
|
||||
if(sortOrder == Qt::AscendingOrder)
|
||||
sortOrderLetter = QString::fromUtf8("a");
|
||||
else
|
||||
sortOrderLetter = QString::fromUtf8("d");
|
||||
settings.setValue(QString::fromUtf8("FinishedListSortedCol"), misc::toQString(index)+sortOrderLetter);
|
||||
}
|
||||
|
||||
void FinishedTorrents::sortFinishedList(int index, Qt::SortOrder sortOrder){
|
||||
if(index == -1) {
|
||||
index = finishedList->header()->sortIndicatorSection();
|
||||
sortOrder = finishedList->header()->sortIndicatorOrder();
|
||||
} else {
|
||||
finishedList->header()->setSortIndicator(index, sortOrder);
|
||||
}
|
||||
switch(index) {
|
||||
case F_SIZE:
|
||||
case F_UPSPEED:
|
||||
case F_UPLOAD:
|
||||
case F_RATIO:
|
||||
sortFinishedListFloat(index, sortOrder);
|
||||
break;
|
||||
default:
|
||||
sortFinishedListString(index, sortOrder);
|
||||
}
|
||||
}
|
||||
|
||||
void FinishedTorrents::sortFinishedListFloat(int index, Qt::SortOrder sortOrder){
|
||||
QList<QPair<int, double> > lines;
|
||||
// insertion sorting
|
||||
unsigned int nbRows = finishedListModel->rowCount();
|
||||
for(unsigned int i=0; i<nbRows; ++i){
|
||||
misc::insertSort(lines, QPair<int,double>(i, finishedListModel->data(finishedListModel->index(i, index)).toDouble()), sortOrder);
|
||||
}
|
||||
// Insert items in new model, in correct order
|
||||
unsigned int nbRows_old = lines.size();
|
||||
for(unsigned int row=0; row<nbRows_old; ++row){
|
||||
finishedListModel->insertRow(finishedListModel->rowCount());
|
||||
unsigned int sourceRow = lines[row].first;
|
||||
unsigned int nbColumns = finishedListModel->columnCount();
|
||||
for(unsigned int col=0; col<nbColumns; ++col){
|
||||
finishedListModel->setData(finishedListModel->index(nbRows_old+row, col), finishedListModel->data(finishedListModel->index(sourceRow, col)));
|
||||
finishedListModel->setData(finishedListModel->index(nbRows_old+row, col), finishedListModel->data(finishedListModel->index(sourceRow, col), Qt::DecorationRole), Qt::DecorationRole);
|
||||
finishedListModel->setData(finishedListModel->index(nbRows_old+row, col), finishedListModel->data(finishedListModel->index(sourceRow, col), Qt::ForegroundRole), Qt::ForegroundRole);
|
||||
}
|
||||
}
|
||||
// Remove old rows
|
||||
finishedListModel->removeRows(0, nbRows_old);
|
||||
}
|
||||
|
||||
void FinishedTorrents::sortFinishedListString(int index, Qt::SortOrder sortOrder){
|
||||
QList<QPair<int, QString> > lines;
|
||||
// Insertion sorting
|
||||
unsigned int nbRows = finishedListModel->rowCount();
|
||||
for(unsigned int i=0; i<nbRows; ++i){
|
||||
misc::insertSortString(lines, QPair<int, QString>(i, finishedListModel->data(finishedListModel->index(i, index)).toString()), sortOrder);
|
||||
}
|
||||
// Insert items in new model, in correct order
|
||||
unsigned int nbRows_old = lines.size();
|
||||
for(unsigned int row=0; row<nbRows_old; ++row){
|
||||
finishedListModel->insertRow(finishedListModel->rowCount());
|
||||
unsigned int sourceRow = lines[row].first;
|
||||
unsigned int nbColumns = finishedListModel->columnCount();
|
||||
for(unsigned int col=0; col<nbColumns; ++col){
|
||||
finishedListModel->setData(finishedListModel->index(nbRows_old+row, col), finishedListModel->data(finishedListModel->index(sourceRow, col)));
|
||||
finishedListModel->setData(finishedListModel->index(nbRows_old+row, col), finishedListModel->data(finishedListModel->index(sourceRow, col), Qt::DecorationRole), Qt::DecorationRole);
|
||||
finishedListModel->setData(finishedListModel->index(nbRows_old+row, col), finishedListModel->data(finishedListModel->index(sourceRow, col), Qt::ForegroundRole), Qt::ForegroundRole);
|
||||
}
|
||||
}
|
||||
// Remove old rows
|
||||
finishedListModel->removeRows(0, nbRows_old);
|
||||
}
|
||||
104
src/FinishedTorrents.h
Normal file
@@ -0,0 +1,104 @@
|
||||
/*
|
||||
* 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 SEEDING_H
|
||||
#define SEEDING_H
|
||||
|
||||
#include "ui_seeding.h"
|
||||
#include "qtorrenthandle.h"
|
||||
|
||||
class QStandardItemModel;
|
||||
class bittorrent;
|
||||
class FinishedListDelegate;
|
||||
|
||||
using namespace libtorrent;
|
||||
|
||||
class FinishedTorrents : public QWidget, public Ui::seeding {
|
||||
Q_OBJECT
|
||||
private:
|
||||
QObject *parent;
|
||||
bittorrent *BTSession;
|
||||
FinishedListDelegate *finishedListDelegate;
|
||||
QStandardItemModel *finishedListModel;
|
||||
unsigned int nbFinished;
|
||||
void hideOrShowColumn(int index);
|
||||
bool loadHiddenColumns();
|
||||
void saveHiddenColumns();
|
||||
QAction* getActionHoSCol(int index);
|
||||
|
||||
public:
|
||||
FinishedTorrents(QObject *parent, bittorrent *BTSession);
|
||||
~FinishedTorrents();
|
||||
// Methods
|
||||
bool loadColWidthFinishedList();
|
||||
int getRowFromHash(QString hash) const;
|
||||
QStringList getSelectedTorrents(bool only_one=false) const;
|
||||
unsigned int getNbTorrentsInList() const;
|
||||
QString getHashFromRow(unsigned int row) const;
|
||||
|
||||
protected slots:
|
||||
void showProperties(const QModelIndex &index);
|
||||
void displayFinishedListMenu(const QPoint&);
|
||||
void displayFinishedHoSMenu(const QPoint&);
|
||||
void setRowColor(int row, QString color);
|
||||
void saveColWidthFinishedList() const;
|
||||
void toggleFinishedListSortOrder(int index);
|
||||
void sortFinishedList(int index=-1, Qt::SortOrder sortOrder=Qt::AscendingOrder);
|
||||
void sortFinishedListFloat(int index, Qt::SortOrder sortOrder);
|
||||
void sortFinishedListString(int index, Qt::SortOrder sortOrder);
|
||||
void updateFileSize(QString hash);
|
||||
void on_actionSet_upload_limit_triggered();
|
||||
void notifyTorrentDoubleClicked(const QModelIndex& index);
|
||||
void hideOrShowColumnName();
|
||||
void hideOrShowColumnSize();
|
||||
void hideOrShowColumnUpSpeed();
|
||||
void hideOrShowColumnSwarm();
|
||||
void hideOrShowColumnPeers();
|
||||
void hideOrShowColumnUpload();
|
||||
void hideOrShowColumnRatio();
|
||||
void forceRecheck();
|
||||
|
||||
public slots:
|
||||
void addTorrent(QString hash);
|
||||
void updateTorrent(QTorrentHandle h);
|
||||
void pauseTorrent(QString hash);
|
||||
void propertiesSelection();
|
||||
void deleteTorrent(QString hash);
|
||||
void showPropertiesFromHash(QString hash);
|
||||
void loadLastSortedColumn();
|
||||
|
||||
signals:
|
||||
void torrentMovedFromFinishedList(QString);
|
||||
void torrentDoubleClicked(QString hash, bool finished);
|
||||
void finishedTorrentsNumberChanged(unsigned int);
|
||||
|
||||
};
|
||||
|
||||
#endif
|
||||
1611
src/GUI.cpp
Normal file
211
src/GUI.h
Normal file
@@ -0,0 +1,211 @@
|
||||
/*
|
||||
* 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"
|
||||
|
||||
class bittorrent;
|
||||
class createtorrent;
|
||||
class QTimer;
|
||||
class DownloadingTorrents;
|
||||
class FinishedTorrents;
|
||||
class downloadFromURL;
|
||||
class SearchEngine;
|
||||
#ifdef QT_4_4
|
||||
class QLocalServer;
|
||||
class QLocalSocket;
|
||||
#else
|
||||
class QTcpServer;
|
||||
class QTcpSocket;
|
||||
#endif
|
||||
class QCloseEvent;
|
||||
class RSSImp;
|
||||
class QShortcut;
|
||||
class about;
|
||||
class previewSelect;
|
||||
class options_imp;
|
||||
class QTabWidget;
|
||||
class QLabel;
|
||||
class QModelIndex;
|
||||
class HttpServer;
|
||||
class QFrame;
|
||||
|
||||
class GUI : public QMainWindow, private Ui::MainWindow{
|
||||
Q_OBJECT
|
||||
|
||||
private:
|
||||
// Bittorrent
|
||||
bittorrent *BTSession;
|
||||
QTimer *checkConnect;
|
||||
QTimer *scrapeTimer;
|
||||
QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers;
|
||||
// GUI related
|
||||
QTabWidget *tabs;
|
||||
QPointer<options_imp> options;
|
||||
QSystemTrayIcon *myTrayIcon;
|
||||
QPointer<QTimer> systrayCreator;
|
||||
QMenu *myTrayIconMenu;
|
||||
DownloadingTorrents *downloadingTorrentTab;
|
||||
FinishedTorrents *finishedTorrentTab;
|
||||
QLabel *connecStatusLblIcon;
|
||||
bool systrayIntegration;
|
||||
bool displaySpeedInTitle;
|
||||
bool force_exit;
|
||||
unsigned int refreshInterval;
|
||||
QTimer *refresher;
|
||||
QLabel *dlSpeedLbl;
|
||||
QLabel *upSpeedLbl;
|
||||
QLabel *ratioLbl;
|
||||
QLabel *DHTLbl;
|
||||
QFrame *statusSep1;
|
||||
QFrame *statusSep2;
|
||||
QFrame *statusSep3;
|
||||
QFrame *statusSep4;
|
||||
// Keyboard shortcuts
|
||||
QShortcut *switchSearchShortcut;
|
||||
QShortcut *switchSearchShortcut2;
|
||||
QShortcut *switchDownShortcut;
|
||||
QShortcut *switchUpShortcut;
|
||||
QShortcut *switchRSSShortcut;
|
||||
QAction *prioSeparator;
|
||||
QAction *prioSeparator2;
|
||||
// Search
|
||||
SearchEngine *searchEngine;
|
||||
// RSS
|
||||
RSSImp *rssWidget;
|
||||
// Web UI
|
||||
QPointer<HttpServer> httpServer;
|
||||
// Misc
|
||||
#ifdef QT_4_4
|
||||
QLocalServer *localServer;
|
||||
QLocalSocket *clientConnection;
|
||||
#else
|
||||
QTcpServer *localServer;
|
||||
QTcpSocket *clientConnection;
|
||||
#endif
|
||||
|
||||
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 togglePausedState(QString hash);
|
||||
void torrentDoubleClicked(QString hash, bool finished);
|
||||
void on_actionPreview_file_triggered();
|
||||
void previewFile(QString filePath);
|
||||
void balloonClicked();
|
||||
void writeSettings();
|
||||
void readSettings();
|
||||
void on_actionExit_triggered();
|
||||
void createTrayIcon();
|
||||
void updateUnfinishedTorrentNumber(unsigned int nb);
|
||||
void updateFinishedTorrentNumber(unsigned int nb);
|
||||
void fullDiskError(QTorrentHandle& h, QString msg) const;
|
||||
void handleDownloadFromUrlFailure(QString, QString) const;
|
||||
void createSystrayDelayed();
|
||||
// Keyboard shortcuts
|
||||
void createKeyboardShortcuts();
|
||||
void displayDownTab() const;
|
||||
void displayUpTab() const;
|
||||
void displaySearchTab() const;
|
||||
void displayRSSTab() const;
|
||||
// Torrent actions
|
||||
void on_actionTorrent_Properties_triggered();
|
||||
void on_actionPause_triggered();
|
||||
void on_actionPause_All_triggered();
|
||||
void on_actionStart_triggered();
|
||||
void on_actionStart_All_triggered();
|
||||
void on_actionOpen_triggered();
|
||||
void on_actionDelete_Permanently_triggered();
|
||||
void on_actionDelete_triggered();
|
||||
void on_actionSet_global_upload_limit_triggered();
|
||||
void on_actionSet_global_download_limit_triggered();
|
||||
void on_actionDocumentation_triggered() const;
|
||||
void checkConnectionStatus();
|
||||
void configureSession(bool deleteOptions);
|
||||
void processParams(const QStringList& params);
|
||||
void addTorrent(QString path);
|
||||
void addUnauthenticatedTracker(QPair<QTorrentHandle,QString> tracker);
|
||||
void processDownloadedFiles(QString path, QString url);
|
||||
void downloadFromURLList(const QStringList& urls);
|
||||
void deleteTorrent(QString hash);
|
||||
void finishedTorrent(QTorrentHandle& h) const;
|
||||
void addedTorrent(QTorrentHandle& h) const;
|
||||
void checkedTorrent(QTorrentHandle& h) const;
|
||||
void pausedTorrent(QTorrentHandle& h) const;
|
||||
void resumedTorrent(QTorrentHandle& h) const;
|
||||
void updateLists(bool force=false);
|
||||
bool initWebUi(QString username, QString password, int port);
|
||||
void on_actionIncreasePriority_triggered();
|
||||
void on_actionDecreasePriority_triggered();
|
||||
void scrapeTrackers();
|
||||
// Options slots
|
||||
void on_actionOptions_triggered();
|
||||
void OptionsSaved(bool deleteOptions);
|
||||
// HTTP slots
|
||||
void on_actionDownload_from_URL_triggered();
|
||||
|
||||
|
||||
public slots:
|
||||
void trackerAuthenticationRequired(QTorrentHandle& h);
|
||||
void setTabText(int index, QString text) const;
|
||||
void openDestinationFolder() const;
|
||||
void goBuyPage() const;
|
||||
void updateRatio();
|
||||
|
||||
protected:
|
||||
void closeEvent(QCloseEvent *);
|
||||
void showEvent(QShowEvent *);
|
||||
bool event(QEvent * event);
|
||||
void displayRSSTab(bool enable);
|
||||
|
||||
public:
|
||||
// Construct / Destruct
|
||||
GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
|
||||
~GUI();
|
||||
// Methods
|
||||
int getCurrentTabIndex() const;
|
||||
QPoint screenCenter() const;
|
||||
};
|
||||
|
||||
#endif
|
||||
BIN
src/Icons/add_file.png
Normal file
|
After Width: | Height: | Size: 1005 B |
BIN
src/Icons/add_folder.png
Normal file
|
After Width: | Height: | Size: 1.3 KiB |
BIN
src/Icons/downarrow.png
Normal file
|
After Width: | Height: | Size: 722 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/china.png
Normal file
|
After Width: | Height: | Size: 329 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/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/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/italy.png
Normal file
|
After Width: | Height: | Size: 171 B |
BIN
src/Icons/flags/japan.png
Normal file
|
After Width: | Height: | Size: 324 B |
BIN
src/Icons/flags/netherlands.png
Normal file
|
After Width: | Height: | Size: 195 B |
BIN
src/Icons/flags/norway.png
Normal file
|
After Width: | Height: | Size: 464 B |
BIN
src/Icons/flags/poland.png
Normal file
|
After Width: | Height: | Size: 212 B |
BIN
src/Icons/flags/portugal.png
Normal file
|
After Width: | Height: | Size: 566 B |
BIN
src/Icons/flags/romania.png
Normal file
|
After Width: | Height: | Size: 160 B |
BIN
src/Icons/flags/russia.png
Normal file
|
After Width: | Height: | Size: 197 B |
BIN
src/Icons/flags/slovakia.png
Normal file
|
After Width: | Height: | Size: 525 B |
BIN
src/Icons/flags/south_korea.png
Normal file
|
After Width: | Height: | Size: 1.1 KiB |
BIN
src/Icons/flags/spain.png
Normal file
|
After Width: | Height: | Size: 416 B |
BIN
src/Icons/flags/spain_catalunya.png
Normal file
|
After Width: | Height: | Size: 236 B |
BIN
src/Icons/flags/sweden.png
Normal file
|
After Width: | Height: | Size: 332 B |
BIN
src/Icons/flags/taiwan.png
Normal file
|
After Width: | Height: | Size: 333 B |