You've already forked qBittorrent
							
							
				mirror of
				https://github.com/qbittorrent/qBittorrent
				synced 2025-11-02 08:10:54 +01:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			release-2.
			...
			release-1.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					445d000a87 | ||
| 
						 | 
					3bf89e17e5 | 
							
								
								
									
										46
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										46
									
								
								AUTHORS
									
									
									
									
									
								
							@@ -2,28 +2,15 @@ Author:
 | 
			
		||||
* Christophe Dumez <chris@qbittorrent.org>
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
* Stefanos Antaris <santaris@csd.auth.gr>
 | 
			
		||||
* Mohammad Dib <mdib@qbittorrent.org>
 | 
			
		||||
* Mirco Chinelli <infinity89@fastwebmail.it>
 | 
			
		||||
* Ishan Arora <ishan@qbittorrent.org>
 | 
			
		||||
* Arnaud Demaizière <arnaud@qbittorrent.org>
 | 
			
		||||
* Ishan Arora <ishan@qbittorrent.org>
 | 
			
		||||
* Grigis Gaëtan <cipher16@gmail.com>
 | 
			
		||||
* Christian Kandeler <zambesi@users.sourceforge.net>
 | 
			
		||||
* Silvan Scherrer <silvan.scherrer@aroa.ch>
 | 
			
		||||
 | 
			
		||||
Code from other projects:
 | 
			
		||||
* files src/qtsingleapp/* src/lineedit/*
 | 
			
		||||
  copyright: Nokia Corporation
 | 
			
		||||
  license: LGPL
 | 
			
		||||
 | 
			
		||||
* files src/ico.cpp src/ico.h
 | 
			
		||||
  copyright: Malte Starostik <malte@kde.org>
 | 
			
		||||
  license: LGPL
 | 
			
		||||
 | 
			
		||||
* files src/search_engine/socks.py
 | 
			
		||||
  copyright: Dan Haim <negativeiq@users.sourceforge.net>
 | 
			
		||||
  license: BSD
 | 
			
		||||
 | 
			
		||||
Images Authors:
 | 
			
		||||
* files: src/Icons/*.png
 | 
			
		||||
  copyright: Gnome Icon Theme
 | 
			
		||||
@@ -36,9 +23,9 @@ Images Authors:
 | 
			
		||||
  url: http://www.oxygen-icons.org
 | 
			
		||||
 | 
			
		||||
* files: src/Icons/flags/*.png
 | 
			
		||||
  copyright: Mark James <mjames@gmail.com>
 | 
			
		||||
  license: Public Domain
 | 
			
		||||
  url: http://www.famfamfam.com
 | 
			
		||||
  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
 | 
			
		||||
@@ -67,36 +54,31 @@ Images Authors:
 | 
			
		||||
Translations authors:
 | 
			
		||||
* files: src/lang/*.ts
 | 
			
		||||
  copyright:
 | 
			
		||||
  - Arabic: SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)
 | 
			
		||||
  - Armenian: Hrant Ohanyan (hrantohanyan@mail.am)
 | 
			
		||||
  - Brazilian: Nick Marinho (nickmarinho@gmail.com)
 | 
			
		||||
  - Bulgarian: Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)
 | 
			
		||||
  - Catalan: Francisco Luque Contreras (frannoe@ya.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)
 | 
			
		||||
  - Croatian: Oliver Mucafir (oliver.untwist@gmail.com)
 | 
			
		||||
  - Czech: Jirka Vilim (web@tets.cz)
 | 
			
		||||
  - Danish: Mathias Nielsen (comoneo@gmail.com)
 | 
			
		||||
  - Dutch: Pieter Heyvaert (pieter_heyvaert@hotmail.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)
 | 
			
		||||
  - Galician: Marcos Lans (marcoslansgarza@gmail.com)
 | 
			
		||||
  - German: Niels Hoffmann (zentralmaschine@users.sourceforge.net)
 | 
			
		||||
  - Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net) and Stephanos Antaris (santaris@csd.auth.gr)
 | 
			
		||||
  - Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net)
 | 
			
		||||
  - Hungarian: Majoros Péter (majoros.j.p@t-online.hu)
 | 
			
		||||
  - Italian: Matteo Sechi (bu17714@gmail.com)
 | 
			
		||||
  - Japanese: Nardog (alphisation@gmail.com)
 | 
			
		||||
  - 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: Mariusz Fik (fisiu@opensuse.org)
 | 
			
		||||
  - 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)
 | 
			
		||||
  - Serbian: Anaximandar Milet (anaximandar at operamail.com)
 | 
			
		||||
  - Slovak:  helix84
 | 
			
		||||
  - Spanish: Francisco Luque Contreras (frannoe@ya.com)
 | 
			
		||||
  - Spanish: Vicente Raul Plata Fonseca (silverxnt@users.sourceforge.net)
 | 
			
		||||
  - Swedish: Daniel Nylander (po@danielnylander.se)
 | 
			
		||||
  - Turkish: Hasan Yilmaz (iletisim@hedefturkce.com)
 | 
			
		||||
  - Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net) and Oleh Prypin (blaxpirit@gmail.com)
 | 
			
		||||
  - Turkish: Erdem Bingöl (erdem84@gmail.com)
 | 
			
		||||
  - Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net)
 | 
			
		||||
  license: GPLv2
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										67
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						
									
										67
									
								
								INSTALL
									
									
									
									
									
								
							@@ -1,57 +1,42 @@
 | 
			
		||||
qBittorrent - A BitTorrent client in C++ / Qt4
 | 
			
		||||
------------------------------------------
 | 
			
		||||
 | 
			
		||||
1) Compile and install qBittorrent with Qt4 Graphical Interface
 | 
			
		||||
*** Necessary if qt3 is default on your system ***
 | 
			
		||||
export QTDIR=/usr/include/qt4
 | 
			
		||||
export PATH=$QTDIR/bin:$PATH
 | 
			
		||||
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:$QTDIR/lib
 | 
			
		||||
*** End ***
 | 
			
		||||
 | 
			
		||||
  $ ./configure
 | 
			
		||||
  $ make && make install
 | 
			
		||||
  $ qbittorrent
 | 
			
		||||
./configure
 | 
			
		||||
make && make install
 | 
			
		||||
qbittorrent
 | 
			
		||||
 | 
			
		||||
  will install and execute qBittorrent hopefully without any problems.
 | 
			
		||||
will install and execute qBittorrent hopefully without any problems.
 | 
			
		||||
 | 
			
		||||
  Dependencies:
 | 
			
		||||
    - Qt >= 4.5.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
 | 
			
		||||
Dependencies:
 | 
			
		||||
- Qt >= 4.3.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
 | 
			
		||||
  Qt >= 4.4.0 is advised
 | 
			
		||||
 | 
			
		||||
    - pkg-config executable
 | 
			
		||||
- 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.
 | 
			
		||||
 | 
			
		||||
    - libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, compatible with v0.15.x)
 | 
			
		||||
        -> 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
 | 
			
		||||
 | 
			
		||||
    - libboost 1.34.x (libboost-filesystem, libboost-thread, libboost-date-time) + libasio
 | 
			
		||||
      or
 | 
			
		||||
    - libboost >= 1.35.x (libboost-system, libboost-filesystem, libboost-thread, libboost-date-time)
 | 
			
		||||
- libcurl
 | 
			
		||||
 | 
			
		||||
    - python >= 2.3 (needed by search engine)
 | 
			
		||||
        * Run time only dependency
 | 
			
		||||
- python >= 2.3 (needed by search engine)
 | 
			
		||||
 | 
			
		||||
    - libnotify >= 0.4.2, glib-2.0 (optional)
 | 
			
		||||
        * Can be used for system notifications to replace standard Qt notifications
 | 
			
		||||
          so that it integrates better into the Desktop
 | 
			
		||||
- libmagick++ (advised, not required)
 | 
			
		||||
  * Needed for favicons support (RSS / Search plugins)
 | 
			
		||||
 | 
			
		||||
    - geoip-database (optional)
 | 
			
		||||
        * If qBittorrent cannot find this database, it will try to resolve countries using the Internet but it will be a lot slower.
 | 
			
		||||
        * Run time only dependency
 | 
			
		||||
 | 
			
		||||
2) Compile and install qBittorrent without Qt4 Graphical interface
 | 
			
		||||
 | 
			
		||||
  $ ./configure --disable-gui
 | 
			
		||||
  $ make && make install
 | 
			
		||||
  $ qbittorrent
 | 
			
		||||
 | 
			
		||||
  will install and execute qBittorrent hopefully without any problems.
 | 
			
		||||
 | 
			
		||||
  Dependencies:
 | 
			
		||||
    - Qt >= 4.4.0 (libqt-devel, libqtcore, libqtnetwork)
 | 
			
		||||
 | 
			
		||||
    - pkg-config executable
 | 
			
		||||
 | 
			
		||||
    - libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, >= v0.15.0 ADVISED)
 | 
			
		||||
        -> http://www.libtorrent.net
 | 
			
		||||
        Be careful: another library (the one used by rTorrent) uses a similar name.
 | 
			
		||||
 | 
			
		||||
    - libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
 | 
			
		||||
- 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.
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										6
									
								
								README
									
									
									
									
									
								
							
							
						
						
									
										6
									
								
								README
									
									
									
									
									
								
							@@ -10,9 +10,6 @@ It aims to be a good alternative to all other bittorrent clients
 | 
			
		||||
out there. qBittorrent is fast, stable and provides unicode
 | 
			
		||||
support as well as many features.
 | 
			
		||||
 | 
			
		||||
This product includes GeoLite data created by MaxMind, available from
 | 
			
		||||
http://maxmind.com/
 | 
			
		||||
 | 
			
		||||
Installation:
 | 
			
		||||
********************************
 | 
			
		||||
For installation, follow the instructions from INSTALL file, but simple:
 | 
			
		||||
@@ -26,9 +23,6 @@ will install and execute qBittorrent hopefully without any problem.
 | 
			
		||||
For more information please visit:
 | 
			
		||||
http://www.qbittorrent.org
 | 
			
		||||
 | 
			
		||||
or our wiki here:
 | 
			
		||||
http://wiki.qbittorrent.org
 | 
			
		||||
 | 
			
		||||
Please report any bug (or feature request) to:
 | 
			
		||||
http://bugs.qbittorrent.org
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										62
									
								
								README.os2
									
									
									
									
									
								
							
							
						
						
									
										62
									
								
								README.os2
									
									
									
									
									
								
							@@ -1,62 +0,0 @@
 | 
			
		||||
qBittorrent - A BitTorrent client in Qt4
 | 
			
		||||
------------------------------------------
 | 
			
		||||
 | 
			
		||||
This is the eComStation (OS/2) qBittorrent part of the readme. See also README for more general information.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Building qBittorrent
 | 
			
		||||
********************
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
Requirements
 | 
			
		||||
============
 | 
			
		||||
 | 
			
		||||
- gcc based build env (recommended gcc v4.4.2 or greater)
 | 
			
		||||
  
 | 
			
		||||
- Qt4 for eCS (OS/2) dev package (see http://svn.netlabs.org/qt4 for more information)
 | 
			
		||||
 | 
			
		||||
- libtorrent-rasterbar for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information)
 | 
			
		||||
 | 
			
		||||
- boost for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
How to build
 | 
			
		||||
============
 | 
			
		||||
 | 
			
		||||
First you need to create the conf.pri file in the same dir as this readme.os2 is.
 | 
			
		||||
the conf.pri file has the following content:
 | 
			
		||||
 | 
			
		||||
##### conf.pri content beginn #####
 | 
			
		||||
PREFIX = .
 | 
			
		||||
BINDIR = ./bin
 | 
			
		||||
INCDIR = ./include
 | 
			
		||||
LIBDIR = ./lib
 | 
			
		||||
DATADIR = ./share
 | 
			
		||||
 | 
			
		||||
CONFIG += staticlib
 | 
			
		||||
INCLUDEPATH += x:/trees/libtorrent/trunk/include
 | 
			
		||||
LIBS += -Lx:/trees/libtorrent/trunk/src/.libs \
 | 
			
		||||
        -Lx:/trees/boost/trunk/stage/lib \
 | 
			
		||||
        -Lx:/trees/openssl \
 | 
			
		||||
	-Lx:/extras/lib
 | 
			
		||||
##### conf.pri content end #####
 | 
			
		||||
 | 
			
		||||
Of course all the above path references have to be adjusted to your build env.
 | 
			
		||||
 | 
			
		||||
It should now be easy to build qBittorrent:
 | 
			
		||||
 | 
			
		||||
Simply type:
 | 
			
		||||
$ qmake
 | 
			
		||||
 | 
			
		||||
Followed by:
 | 
			
		||||
$ make
 | 
			
		||||
 | 
			
		||||
If all works fine you should get a working qbittorrent executable.
 | 
			
		||||
 | 
			
		||||
If you have any question regarding the eCS (OS/2) port of qBittorrent you can meet me (_diver) on IRC:
 | 
			
		||||
#netlabs on irc.freenode.net
 | 
			
		||||
 | 
			
		||||
------------------------------------------
 | 
			
		||||
Silvan Scherrer <silvan.scherrer@aroa.ch>
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
@@ -1,44 +0,0 @@
 | 
			
		||||
.\" This manpage has been automatically generated by docbook2man
 | 
			
		||||
.\" from a DocBook document.  This tool can be found at:
 | 
			
		||||
.\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>.
 | 
			
		||||
.TH "QBITTORRENT\-NOX" "1" "January 16th 2010" "Command line Bittorrent client written in C++ / Qt4" ""
 | 
			
		||||
 | 
			
		||||
.SH "NAME"
 | 
			
		||||
qBittorrent\-nox \- a command line Bittorrent client written in C++ / Qt4
 | 
			
		||||
 | 
			
		||||
.SH "SYNOPSIS"
 | 
			
		||||
 | 
			
		||||
\fBqbittorrent\-nox\fR [\-\-webui-port=x] [TORRENT_FILE | URL]...
 | 
			
		||||
 | 
			
		||||
\fBqbittorrent\-nox\fR \-\-help
 | 
			
		||||
 | 
			
		||||
\fBqbittorrent\-nox\fR \-\-version
 | 
			
		||||
 | 
			
		||||
.PP
 | 
			
		||||
.SH "DESCRIPTION"
 | 
			
		||||
 | 
			
		||||
\fBqBittorrent-nox\fR is an advanced command-line Bittorrent client written in C++ / Qt4,
 | 
			
		||||
using the \fBlibtorrent-rasterbar\fR library by Arvid Norberg. qBittorrent\-nox aims
 | 
			
		||||
to be a good alternative to other command line bittorrent clients and provides features similar to popular graphical clients.
 | 
			
		||||
 | 
			
		||||
qBittorrent\-nox is fast, stable, light and it supports unicode. 
 | 
			
		||||
It also comes with UPnP port forwarding / NAT-PMP, encryption (Vuze compatible), 
 | 
			
		||||
FAST extension (mainline) and PeX support (utorrent compatible).
 | 
			
		||||
 | 
			
		||||
qBittorrent\-nox is meant to be controlled via its feature-rich Web UI which is accessible as a default on http://localhost:8080. The Web UI access is secured and the default account user name is "admin" with "adminadmin" as a password.
 | 
			
		||||
 | 
			
		||||
.SH "OPTIONS"
 | 
			
		||||
 | 
			
		||||
\fB--help\fR Prints the command line options.
 | 
			
		||||
 | 
			
		||||
\fB--version\fR Prints qbittorrent program version number.
 | 
			
		||||
 | 
			
		||||
\fB--webui-port=x\fR Changes Web UI port to x (default: 8080).
 | 
			
		||||
 | 
			
		||||
.SH "BUGS"
 | 
			
		||||
 | 
			
		||||
If you find a bug, please report it at http://bugs.qbittorrent.org
 | 
			
		||||
 | 
			
		||||
.SH "AUTHOR"
 | 
			
		||||
 | 
			
		||||
Christophe Dumez <chris@qbittorrent.org>
 | 
			
		||||
@@ -1,42 +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" "January 16th 2010" "Bittorrent client written in C++ / Qt4" ""
 | 
			
		||||
.TH "QBITTORRENT" "1" "September 1st 2007" "Bittorrent client written in C++ / Qt4" ""
 | 
			
		||||
 | 
			
		||||
.SH "NAME"
 | 
			
		||||
.SH NAME
 | 
			
		||||
qBittorrent \- a Bittorrent client written in C++ / Qt4
 | 
			
		||||
.SH SYNOPSIS
 | 
			
		||||
 | 
			
		||||
.SH "SYNOPSIS"
 | 
			
		||||
 | 
			
		||||
\fBqbittorrent\fR [\-\-no-splash] [\-\-webui-port=x] [TORRENT_FILE | URL]...
 | 
			
		||||
\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 \fBlibtorrent-rasterbar\fR library by Arvid Norberg. qBittorrent is similar to uTorrent. qBittorrent
 | 
			
		||||
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 (Vuze compatible), 
 | 
			
		||||
FAST extension (mainline) and PeX support (utorrent compatible).
 | 
			
		||||
 | 
			
		||||
.SH "OPTIONS"
 | 
			
		||||
 | 
			
		||||
\fB--help\fR Prints the command line options.
 | 
			
		||||
 | 
			
		||||
\fB--version\fR Prints qbittorrent program version number.
 | 
			
		||||
 | 
			
		||||
\fB--no-splash\fR Disables splash screen on startup.
 | 
			
		||||
 | 
			
		||||
\fB--webui-port=x\fR Changes Web UI port to x (default: 8080).
 | 
			
		||||
 | 
			
		||||
.SH "BUGS"
 | 
			
		||||
 | 
			
		||||
If you find a bug, please report it at http://bugs.qbittorrent.org
 | 
			
		||||
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>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										136
									
								
								install.os2
									
									
									
									
									
								
							
							
						
						
									
										136
									
								
								install.os2
									
									
									
									
									
								
							@@ -1,136 +0,0 @@
 | 
			
		||||
QBittorrent installation
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
0. CONTENTS OF THIS FILE
 | 
			
		||||
========================
 | 
			
		||||
 | 
			
		||||
1. INTRODUCTION
 | 
			
		||||
 | 
			
		||||
2. REQUIREMENTS
 | 
			
		||||
 | 
			
		||||
3. INSTALLATION
 | 
			
		||||
 | 
			
		||||
4. CONTACT
 | 
			
		||||
 | 
			
		||||
5. CREDITS
 | 
			
		||||
 | 
			
		||||
6. SUPPORT AND DONATIONS
 | 
			
		||||
 | 
			
		||||
7. HISTORY
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
1. INTRODUCTION
 | 
			
		||||
===============
 | 
			
		||||
 | 
			
		||||
Welcome to QBittorrent port for OS/2 and eComStation.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
2. REQUIREMENTS
 | 
			
		||||
===============
 | 
			
		||||
 | 
			
		||||
* klibc 0.6.3 or later
 | 
			
		||||
 | 
			
		||||
    ftp://ftp.netlabs.org/pub/gcc/libc-0_6_3-csd3.wpi
 | 
			
		||||
 | 
			
		||||
* openssl 1.0
 | 
			
		||||
 
 | 
			
		||||
    ftp://ftp.netlabs.org/pub/unixos2/ssl10.zip
 | 
			
		||||
 | 
			
		||||
* Qt4 dll
 | 
			
		||||
 | 
			
		||||
    see http://svn.netlabs.org/qt4 for more information whats needed and where to get the latest
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3. INSTALLATION
 | 
			
		||||
===============
 | 
			
		||||
          
 | 
			
		||||
To install QBittorrent, do the following:
 | 
			
		||||
 | 
			
		||||
klibc
 | 
			
		||||
-----
 | 
			
		||||
 | 
			
		||||
  1. Download klibc 0.6.3 csd3 or later.
 | 
			
		||||
  2. Install the package by double-clicking on the WPI file.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
openssl 1.0
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
  1. Download the zip file
 | 
			
		||||
  2. Install the files to your libpath eg. x:\ecs\dll
 | 
			
		||||
 | 
			
		||||
Qt4 dll
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
  1. Download the package
 | 
			
		||||
  2. Install the package by double-clicking on the wpi file.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
QBittorrent
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
  1. Create a directory for QBittorrent.
 | 
			
		||||
  2. Extract the QBittorrent package to the new directory.
 | 
			
		||||
  3. Create a WPS object for QBittorrent.exe.
 | 
			
		||||
  4. Start QBittorrent
 | 
			
		||||
  5. Happy torrenting
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
4. CONTACT
 | 
			
		||||
==========
 | 
			
		||||
 | 
			
		||||
Please send bugreports to:
 | 
			
		||||
 | 
			
		||||
  ecs@aroa.ch
 | 
			
		||||
 | 
			
		||||
Only bug reports with a reproducable bug are accepted. :-)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
5. CREDITS
 | 
			
		||||
==========
 | 
			
		||||
 | 
			
		||||
The port was done by:
 | 
			
		||||
 | 
			
		||||
Silvan Scherrer aka _diver
 | 
			
		||||
 | 
			
		||||
Thanks go to:
 | 
			
		||||
 | 
			
		||||
  * Dmitry A. Kuminov
 | 
			
		||||
 | 
			
		||||
They either helped me when I had some nasty questions or did some testing for
 | 
			
		||||
me.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6. SUPPORT AND DONATIONS
 | 
			
		||||
========================
 | 
			
		||||
 | 
			
		||||
QBittorrent port is based on volunteer work. If you would like to support further
 | 
			
		||||
development, you can do so in one of the following ways:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  * Donate to the Qt4 project: see qt.netlabs.org for more information
 | 
			
		||||
 | 
			
		||||
  * Contribute to the project: Besides actual development, this also includes
 | 
			
		||||
    maintaining the documentation and the project web site as well as help
 | 
			
		||||
    for users.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
7. HISTORY
 | 
			
		||||
==========
 | 
			
		||||
 | 
			
		||||
2010-12-23
 | 
			
		||||
 | 
			
		||||
  * updated to 2.5.2 code level of QBittorrent
 | 
			
		||||
 | 
			
		||||
2010-11-22
 | 
			
		||||
 | 
			
		||||
  * updated to 2.4.11 code level of QBittorrent
 | 
			
		||||
 | 
			
		||||
2010-xx-xx
 | 
			
		||||
 | 
			
		||||
  * initial port
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										16
									
								
								macxconf.pri
									
									
									
									
									
								
							
							
						
						
									
										16
									
								
								macxconf.pri
									
									
									
									
									
								
							@@ -1,16 +0,0 @@
 | 
			
		||||
PREFIX = /usr/local
 | 
			
		||||
BINDIR = /usr/local/bin
 | 
			
		||||
DATADIR = /usr/local/share
 | 
			
		||||
 | 
			
		||||
INCLUDEPATH += /usr/local/include/libtorrent /usr/include/openssl /usr/include /opt/local/include/boost /opt/local/include
 | 
			
		||||
LIBS += -ltorrent-rasterbar -lcrypto -L/opt/local/lib -lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt -framework Cocoa -framework Carbon
 | 
			
		||||
 | 
			
		||||
document_icon.path = Contents/Resources
 | 
			
		||||
document_icon.files = Icons/qBitTorrentDocument.icns
 | 
			
		||||
 | 
			
		||||
QMAKE_BUNDLE_DATA += document_icon
 | 
			
		||||
ICON = Icons/qbittorrent_mac.icns
 | 
			
		||||
QMAKE_INFO_PLIST = Info.plist
 | 
			
		||||
 | 
			
		||||
DEFINES += WITH_GEOIP_EMBEDDED
 | 
			
		||||
message("On Mac OS X, GeoIP database must be embedded.")
 | 
			
		||||
							
								
								
									
										17
									
								
								os2conf.pri
									
									
									
									
									
								
							
							
						
						
									
										17
									
								
								os2conf.pri
									
									
									
									
									
								
							@@ -1,17 +0,0 @@
 | 
			
		||||
INCLUDEPATH += $$PWD
 | 
			
		||||
 | 
			
		||||
exists(conf.pri) {
 | 
			
		||||
    # to the conf.pri goes all system dependent stuff
 | 
			
		||||
    include(conf.pri)
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
LIBS += -ltorrent-rasterbar \
 | 
			
		||||
        -lboost_thread \
 | 
			
		||||
        -lboost_system \
 | 
			
		||||
        -lboost_filesystem \
 | 
			
		||||
        -lssl -lcrypto -lidn -lpthread
 | 
			
		||||
 | 
			
		||||
RC_FILE = qbittorrent_os2.rc
 | 
			
		||||
 | 
			
		||||
DEFINES += WITH_GEOIP_EMBEDDED
 | 
			
		||||
message("On eCS(OS/2), GeoIP database must be embedded.")
 | 
			
		||||
							
								
								
									
										199
									
								
								qBittorrent.kdevelop
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										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>
 | 
			
		||||
@@ -1,4 +1,6 @@
 | 
			
		||||
TEMPLATE = subdirs
 | 
			
		||||
 | 
			
		||||
include(conf.pri)
 | 
			
		||||
 | 
			
		||||
SUBDIRS += src
 | 
			
		||||
 | 
			
		||||
 
 | 
			
		||||
@@ -6,20 +6,14 @@
 | 
			
		||||
  <dep type='qt4'>
 | 
			
		||||
    <required/>
 | 
			
		||||
  </dep>
 | 
			
		||||
  <dep type='pkg-config'>
 | 
			
		||||
    <required/>
 | 
			
		||||
  </dep>
 | 
			
		||||
  <dep type='libtorrent-rasterbar'>
 | 
			
		||||
    <required/>
 | 
			
		||||
  </dep>
 | 
			
		||||
  <dep type='libboost'>
 | 
			
		||||
    <required/>
 | 
			
		||||
  </dep>
 | 
			
		||||
  <dep type='libnotify'>
 | 
			
		||||
  </dep>
 | 
			
		||||
  <dep type='geoip-database'>
 | 
			
		||||
  </dep>
 | 
			
		||||
  <dep type='qtsingleapplication'>
 | 
			
		||||
  <dep type='libcurl'>
 | 
			
		||||
    <required/>
 | 
			
		||||
  </dep>
 | 
			
		||||
  <dep type='libzzip'/>
 | 
			
		||||
</qconf>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,37 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
-----BEGIN QCMOD-----
 | 
			
		||||
name: geoip-database
 | 
			
		||||
arg: with-geoip-database-embedded, Geoip Database will be embedded in qBittorrent executable (please follow instructions in src/geoip/README)
 | 
			
		||||
-----END QCMOD-----
 | 
			
		||||
*/
 | 
			
		||||
// see  Conf::findPkgConfig
 | 
			
		||||
class qc_geoip_database : public ConfObj
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	qc_geoip_database(Conf *c) : ConfObj(c) {}
 | 
			
		||||
	QString name() const { return "GeoIP Database (optional)"; }
 | 
			
		||||
	QString shortname() const { return "GeoIP Database"; }
 | 
			
		||||
        QString checkString() const {
 | 
			
		||||
                if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
 | 
			
		||||
                        return "";
 | 
			
		||||
                return ConfObj::checkString();
 | 
			
		||||
        }
 | 
			
		||||
	bool exec() {
 | 
			
		||||
	if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) {
 | 
			
		||||
		return false;
 | 
			
		||||
	}
 | 
			
		||||
#ifdef Q_WS_X11
 | 
			
		||||
		if(!conf->getenv("QC_WITH_GEOIP_DATABASE_EMBEDDED").isEmpty()) {
 | 
			
		||||
#endif
 | 
			
		||||
			conf->addDefine("WITH_GEOIP_EMBEDDED");
 | 
			
		||||
                        printf(" embedded and");
 | 
			
		||||
			return true;
 | 
			
		||||
#ifdef Q_WS_X11
 | 
			
		||||
		}
 | 
			
		||||
                if(QFile::exists("/usr/share/GeoIP/GeoIP.dat") || QFile::exists("/usr/local/share/GeoIP/GeoIP.dat") || QFile::exists("/var/lib/GeoIP/GeoIP.dat"))
 | 
			
		||||
			return true;
 | 
			
		||||
                printf("\nWarning: GeoIP database was not found at /usr/share/GeoIP/GeoIP.dat or /var/lib/GeoIP/GeoIP.dat\nCountry resolution will be slow.");
 | 
			
		||||
		return false;
 | 
			
		||||
#endif
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
@@ -2,39 +2,14 @@
 | 
			
		||||
-----BEGIN QCMOD-----
 | 
			
		||||
name: libboost
 | 
			
		||||
arg: with-libboost-inc=[path], Path to libboost include files
 | 
			
		||||
arg: with-libboost-lib=[path], Path to libboost library files
 | 
			
		||||
-----END QCMOD-----
 | 
			
		||||
*/
 | 
			
		||||
#include <boost/version.hpp>
 | 
			
		||||
class qc_libboost : public ConfObj
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	qc_libboost(Conf *c) : ConfObj(c) {}
 | 
			
		||||
	QString name() const { return "libboost"; }
 | 
			
		||||
	QString shortname() const { return "libboost"; }
 | 
			
		||||
  QString findBoostLib(QString path, QString lib) const {
 | 
			
		||||
    QString name;
 | 
			
		||||
    QDir libDir(path);
 | 
			
		||||
    QStringList filters;
 | 
			
		||||
    filters << "libboost_"+lib+"*-mt*.so";
 | 
			
		||||
    QStringList result = libDir.entryList(filters, QDir::Files);
 | 
			
		||||
    if(!result.empty()) {
 | 
			
		||||
      name = result.first().mid(3);
 | 
			
		||||
      // Remove .so
 | 
			
		||||
      name.chop(3);
 | 
			
		||||
    } else {
 | 
			
		||||
      // Fall back to non -mt boost lib
 | 
			
		||||
      filters.clear();
 | 
			
		||||
      filters << "libboost_"+lib+"*.so";
 | 
			
		||||
      result = libDir.entryList(filters, QDir::Files);
 | 
			
		||||
      if(!result.empty()) {
 | 
			
		||||
        name = result.first().mid(3);
 | 
			
		||||
        // Remove .so
 | 
			
		||||
        name.chop(3);
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return name;
 | 
			
		||||
  }
 | 
			
		||||
	bool exec(){
 | 
			
		||||
        	QString s;
 | 
			
		||||
		s = conf->getenv("QC_WITH_LIBBOOST_INC");
 | 
			
		||||
@@ -76,43 +51,6 @@ public:
 | 
			
		||||
      			}
 | 
			
		||||
		}
 | 
			
		||||
		conf->addIncludePath(s);
 | 
			
		||||
		// Find library
 | 
			
		||||
		s = conf->getenv("QC_WITH_LIBBOOST_LIB");
 | 
			
		||||
    QStringList required_libs;
 | 
			
		||||
#if BOOST_VERSION >= 103500
 | 
			
		||||
      required_libs << "system"; 
 | 
			
		||||
#endif
 | 
			
		||||
    if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
 | 
			
		||||
      // Not required by nox
 | 
			
		||||
      required_libs << "filesystem" << "thread";
 | 
			
		||||
    }
 | 
			
		||||
    QStringList libDirs;
 | 
			
		||||
    libDirs << "/usr/lib/" << "/usr/lib64/" << "/usr/local/lib/" << "/usr/local/lib64/";
 | 
			
		||||
    foreach(const QString& lib, required_libs) {
 | 
			
		||||
      if(!s.isEmpty()) {
 | 
			
		||||
        QString detected_name = findBoostLib(s, lib);
 | 
			
		||||
        if(detected_name.isEmpty()) {
 | 
			
		||||
          printf("Could not find boost %s library!\n", qPrintable(lib));
 | 
			
		||||
          return false;
 | 
			
		||||
        } else {
 | 
			
		||||
          conf->addLib("-l"+detected_name);
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
        bool found = false;
 | 
			
		||||
        foreach(const QString& libDir, libDirs) {
 | 
			
		||||
          QString detected_name = findBoostLib(libDir, lib);
 | 
			
		||||
          if(!detected_name.isEmpty()) {
 | 
			
		||||
            conf->addLib("-l"+detected_name);
 | 
			
		||||
            found = true;
 | 
			
		||||
            break;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        if(!found) {
 | 
			
		||||
          printf("Could not find boost %s library!\n", qPrintable(lib));
 | 
			
		||||
          return false;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										61
									
								
								qcm/libcurl.qcm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										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;
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
@@ -1,60 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
-----BEGIN QCMOD-----
 | 
			
		||||
name: libnotify
 | 
			
		||||
-----END QCMOD-----
 | 
			
		||||
*/
 | 
			
		||||
// see  Conf::findPkgConfig
 | 
			
		||||
class qc_libnotify : public ConfObj
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	qc_libnotify(Conf *c) : ConfObj(c) {}
 | 
			
		||||
	QString name() const { return "libnotify >= 0.4.2 (optional)"; }
 | 
			
		||||
	QString shortname() const { return "libnotify"; }
 | 
			
		||||
        QString checkString() const {
 | 
			
		||||
                if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
 | 
			
		||||
                        return "";
 | 
			
		||||
                return ConfObj::checkString();
 | 
			
		||||
        }
 | 
			
		||||
	bool exec(){
 | 
			
		||||
		if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
		QStringList incs;
 | 
			
		||||
		QString req_ver = "0.4.2";
 | 
			
		||||
		QString version, libs, other;
 | 
			
		||||
		VersionMode mode = VersionMin;
 | 
			
		||||
		if(conf->findPkgConfig("libnotify", mode, req_ver, &version, &incs, &libs, &other)) {
 | 
			
		||||
			conf->addExtra("CONFIG += libnotify");
 | 
			
		||||
			for(int n = 0; n < incs.count(); ++n)
 | 
			
		||||
				conf->addIncludePath(incs[n]);
 | 
			
		||||
			if(!libs.isEmpty())
 | 
			
		||||
				conf->addLib(libs);
 | 
			
		||||
			QStringList incs2;
 | 
			
		||||
			QString req_ver2 = "2.0";
 | 
			
		||||
			QString version2, libs2, other2;
 | 
			
		||||
			if(conf->findPkgConfig("glib-2.0", mode, req_ver2, &version2, &incs2, &libs2, &other2)) {
 | 
			
		||||
				for(int n = 0; n < incs2.count(); ++n)
 | 
			
		||||
				conf->addIncludePath(incs2[n]);
 | 
			
		||||
				if(!libs2.isEmpty())
 | 
			
		||||
					conf->addLib(libs2);
 | 
			
		||||
			} else {
 | 
			
		||||
				return false;
 | 
			
		||||
			}
 | 
			
		||||
			QStringList incs3;
 | 
			
		||||
                        QString req_ver3 = "2.0";
 | 
			
		||||
                        QString version3, libs3, other3;
 | 
			
		||||
			if(conf->findPkgConfig("gtk+-2.0", mode, req_ver3, &version3, &incs3, &libs3, &other3)) {
 | 
			
		||||
                                for(int n = 0; n < incs3.count(); ++n)
 | 
			
		||||
                                conf->addIncludePath(incs3[n]);
 | 
			
		||||
                                if(!libs3.isEmpty())
 | 
			
		||||
                                        conf->addLib(libs3);
 | 
			
		||||
                        } else {
 | 
			
		||||
                                return false;
 | 
			
		||||
                        }
 | 
			
		||||
		} else {
 | 
			
		||||
			return false;
 | 
			
		||||
		}
 | 
			
		||||
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
@@ -8,20 +8,22 @@ class qc_libtorrent_rasterbar : public ConfObj
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
 | 
			
		||||
	QString name() const { return "libtorrent-rasterbar >= 0.14.4"; }
 | 
			
		||||
	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.4";
 | 
			
		||||
		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(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
 | 
			
		||||
  		  conf->addLib("-lcrypto");
 | 
			
		||||
                }
 | 
			
		||||
		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
									
								
							
							
						
						
									
										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;
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
@@ -1,16 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
-----BEGIN QCMOD-----
 | 
			
		||||
name: pkg-config
 | 
			
		||||
-----END QCMOD-----
 | 
			
		||||
*/
 | 
			
		||||
#include <QProcess>
 | 
			
		||||
class qc_pkg_config : public ConfObj
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	qc_pkg_config(Conf *c) : ConfObj(c) {}
 | 
			
		||||
	QString name() const { return "pkg-config executable"; }
 | 
			
		||||
	QString shortname() const { return "pkg-config"; }
 | 
			
		||||
	bool exec(){
 | 
			
		||||
		return !conf->findProgram("pkg-config").isEmpty();
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										20
									
								
								qcm/qt4.qcm
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								qcm/qt4.qcm
									
									
									
									
									
								
							@@ -1,26 +1,20 @@
 | 
			
		||||
/*
 | 
			
		||||
-----BEGIN QCMOD-----
 | 
			
		||||
name: Qt >= 4.5
 | 
			
		||||
arg: enable-debug, Enable debug mode
 | 
			
		||||
arg: disable-gui, Disable qBittorrent Graphical user interface for headless running
 | 
			
		||||
name: Qt >= 4.3
 | 
			
		||||
-----END QCMOD-----
 | 
			
		||||
*/
 | 
			
		||||
class qc_qt4 : public ConfObj
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	qc_qt4(Conf *c) : ConfObj(c) {}
 | 
			
		||||
	QString name() const { return "Qt >= 4.5"; }
 | 
			
		||||
	QString shortname() const { return "Qt 4.5"; }
 | 
			
		||||
	QString name() const { return "Qt >= 4.3"; }
 | 
			
		||||
	QString shortname() const { return "Qt 4.3"; }
 | 
			
		||||
	bool exec()
 | 
			
		||||
	{
 | 
			
		||||
                // NOX mode
 | 
			
		||||
		if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
 | 
			
		||||
			conf->addExtra("CONFIG += nox");
 | 
			
		||||
		if(QT_VERSION >= 0x040400) {
 | 
			
		||||
			conf->addDefine("QT_4_4");
 | 
			
		||||
		}
 | 
			
		||||
                // Debug mode
 | 
			
		||||
                if(!conf->getenv("QC_ENABLE_DEBUG").isEmpty()) {
 | 
			
		||||
                  conf->addExtra("CONFIG += debug");
 | 
			
		||||
                }
 | 
			
		||||
		return(QT_VERSION >= 0x040500);
 | 
			
		||||
		return(QT_VERSION >= 0x040300);
 | 
			
		||||
		
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -1,26 +0,0 @@
 | 
			
		||||
/*
 | 
			
		||||
-----BEGIN QCMOD-----
 | 
			
		||||
name: qtsingleapplication
 | 
			
		||||
arg: with-qtsingleapplication=[system|shipped], Use the shipped qtsingleapplication library or the system one
 | 
			
		||||
-----END QCMOD-----
 | 
			
		||||
*/
 | 
			
		||||
class qc_qtsingleapplication : public ConfObj
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
        qc_qtsingleapplication(Conf *c) : ConfObj(c) {}
 | 
			
		||||
        QString name() const { return "qtsingleapplication library"; }
 | 
			
		||||
        QString shortname() const { return "qtsingleapplication"; }
 | 
			
		||||
 | 
			
		||||
        bool exec(){
 | 
			
		||||
                QString s;
 | 
			
		||||
                s = conf->getenv("QC_WITH_QTSINGLEAPPLICATION");
 | 
			
		||||
                if(s.compare("system", Qt::CaseInsensitive) == 0) {
 | 
			
		||||
                  // System
 | 
			
		||||
                  conf->addExtra("CONFIG += usesystemqtsingleapplication");
 | 
			
		||||
                  printf(" [system] ");
 | 
			
		||||
                } else {
 | 
			
		||||
                  printf(" [shipped] ");
 | 
			
		||||
                }
 | 
			
		||||
                return true;
 | 
			
		||||
        }
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										116
									
								
								src/DLListDelegate.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										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
									
								
							
							
						
						
									
										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
									
								
							
							
						
						
									
										682
									
								
								src/FinishedTorrents.cpp
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										104
									
								
								src/FinishedTorrents.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										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
									
								
							
							
						
						
									
										1611
									
								
								src/GUI.cpp
									
									
									
									
									
										Normal file
									
								
							
										
											
												File diff suppressed because it is too large
												Load Diff
											
										
									
								
							
							
								
								
									
										211
									
								
								src/GUI.h
									
									
									
									
									
										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
 | 
			
		||||
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 322 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/L.gif
									
									
									
									
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/Icons/L.gif
									
									
									
									
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 Before Width: | Height: | Size: 66 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/add_file.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								src/Icons/add_file.png
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							| 
		 After Width: | Height: | Size: 1005 B  | 
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user