You've already forked qBittorrent
							
							
				mirror of
				https://github.com/qbittorrent/qBittorrent
				synced 2025-10-30 23:30:54 +01:00 
			
		
		
		
	Compare commits
	
		
			2 Commits
		
	
	
		
			release-2.
			...
			release-1.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 445d000a87 | ||
|   | 3bf89e17e5 | 
							
								
								
									
										14
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										14
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @@ -1,14 +0,0 @@ | |||||||
| src/geoip/GeoIP.dat |  | ||||||
| src/qbittorrent |  | ||||||
| qbittorrent.pro.user |  | ||||||
| conf.pri |  | ||||||
| Makefile |  | ||||||
| *.pyc |  | ||||||
| *.log |  | ||||||
| # Compiled object files |  | ||||||
| *.o |  | ||||||
| # Generated MOC, resource and UI files |  | ||||||
| moc_*.cpp |  | ||||||
| qrc_*.cpp |  | ||||||
| ui_*.h |  | ||||||
| *.moc |  | ||||||
							
								
								
									
										57
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						
									
										57
									
								
								AUTHORS
									
									
									
									
									
								
							| @@ -2,29 +2,15 @@ Author: | |||||||
| * Christophe Dumez <chris@qbittorrent.org> | * Christophe Dumez <chris@qbittorrent.org> | ||||||
|  |  | ||||||
| Contributors: | Contributors: | ||||||
| * Vladimir Golovnev <glassez@yandex.ru> |  | ||||||
| * 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> | * Arnaud Demaizière <arnaud@qbittorrent.org> | ||||||
|  | * Ishan Arora <ishan@qbittorrent.org> | ||||||
| * Grigis Gaëtan <cipher16@gmail.com> | * Grigis Gaëtan <cipher16@gmail.com> | ||||||
| * Christian Kandeler <zambesi@users.sourceforge.net> |  | ||||||
| * Silvan Scherrer <silvan.scherrer@aroa.ch> |  | ||||||
|  |  | ||||||
| Code from other projects: | Code from other projects: | ||||||
| * files src/qtsingleapp/* src/lineedit/* |  | ||||||
|   copyright: Nokia Corporation |  | ||||||
|   license: LGPL |  | ||||||
|  |  | ||||||
| * files src/ico.cpp src/ico.h | * files src/ico.cpp src/ico.h | ||||||
|   copyright: Malte Starostik <malte@kde.org> |   copyright: Malte Starostik <malte@kde.org> | ||||||
|   license: LGPL |   license: LGPL | ||||||
|  |  | ||||||
| * files src/search_engine/socks.py |  | ||||||
|   copyright: Dan Haim <negativeiq@users.sourceforge.net> |  | ||||||
|   license: BSD |  | ||||||
|  |  | ||||||
| Images Authors: | Images Authors: | ||||||
| * files: src/Icons/*.png | * files: src/Icons/*.png | ||||||
|   copyright: Gnome Icon Theme |   copyright: Gnome Icon Theme | ||||||
| @@ -37,9 +23,9 @@ Images Authors: | |||||||
|   url: http://www.oxygen-icons.org |   url: http://www.oxygen-icons.org | ||||||
|  |  | ||||||
| * files: src/Icons/flags/*.png | * files: src/Icons/flags/*.png | ||||||
|   copyright: Mark James <mjames@gmail.com> |   copyright: Open Clip Art Library | ||||||
|   license: Public Domain |   license: Creative Commons Public Domain Dedication | ||||||
|   url: http://www.famfamfam.com |   url: http://www.openclipart.org | ||||||
|  |  | ||||||
| * files: src/Icons/skin/*.png | * files: src/Icons/skin/*.png | ||||||
|   files: src/menuicons/YYxYY/*.png |   files: src/menuicons/YYxYY/*.png | ||||||
| @@ -50,10 +36,6 @@ Images Authors: | |||||||
|   copyright: Greg Houston <gregory.houston@gmail.com> |   copyright: Greg Houston <gregory.houston@gmail.com> | ||||||
|   license: MIT |   license: MIT | ||||||
|  |  | ||||||
| * file: src/Icons/skin/qbittorrent_mono* |  | ||||||
|   copyright: Daniel Eguren <deguren@gmail.com> |  | ||||||
|   license: LGPL |  | ||||||
|  |  | ||||||
| * file: src/search_engine/engines/btjunkie.png | * file: src/search_engine/engines/btjunkie.png | ||||||
|   copyright: Downloaded from btjunkie.org |   copyright: Downloaded from btjunkie.org | ||||||
|  |  | ||||||
| @@ -72,40 +54,31 @@ Images Authors: | |||||||
| Translations authors: | Translations authors: | ||||||
| * files: src/lang/*.ts | * files: src/lang/*.ts | ||||||
|   copyright: |   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) |   - Brazilian: Nick Marinho (nickmarinho@gmail.com) | ||||||
|   - Bulgarian: Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net) |   - Bulgarian: Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net) | ||||||
|   - Catalan: Francisco Luque Contreras (frannoe@ya.com) |   - Catalan: Gekko Dam Beer (gekko04@users.sourceforge.net) | ||||||
|   - Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com) |   - Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com) | ||||||
|   - Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com) |   - Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com) | ||||||
|   - Croatian: Oliver Mucafir (oliver.untwist@gmail.com) |  | ||||||
|   - Czech: Jirka Vilim (web@tets.cz) |   - Czech: Jirka Vilim (web@tets.cz) | ||||||
|   - Danish: Mathias Nielsen (comoneo@gmail.com) |   - 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) |   - English: Christophe Dumez (chris@qbittorrent.org) | ||||||
|   - Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net) |   - Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net) | ||||||
|   - French: Christophe Dumez (chris@qbittorrent.org) |   - 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) |   - 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) |   - Hungarian: Majoros Péter (majoros.j.p@t-online.hu) | ||||||
|   - Italian: Matteo Sechi (bu17714@gmail.com) |   - Italian: Mirko Ferrari (mirkoferrari@gmail.com) and Ferraro Luciano (luciano.ferraro@gmail.com) | ||||||
|   - Japanese: Masato Hashimoto (cabezon.hashimoto@gmail.com) |   - Japanese: Nardog (nardog@e2umail.com) | ||||||
|   - Korean: Jin Woo Sin (jin828sin@users.sourceforge.net) |   - Korean: Jin Woo Sin (jin828sin@users.sourceforge.net) | ||||||
|   - Lithuanian: Naglis Jonaitis (njonaitis@gmail.com) |   - Norwegian: Lars-Erik Labori (hamil@users.sourceforge.net) | ||||||
|   - Norwegian: Tomaso |   - Polish: Jarek Smieja (ajep9691@wp.pl) | ||||||
|   - Polish: Mariusz Fik (fisiu@opensuse.org) |  | ||||||
|   - Portuguese: Nick Marinho (nickmarinho@gmail.com) |   - Portuguese: Nick Marinho (nickmarinho@gmail.com) | ||||||
|   - Romanian: Obada Denis (obadadenis@users.sourceforge.net) |   - Romanian: Obada Denis (obadadenis@users.sourceforge.net) | ||||||
|   - Russian: Nick Khazov (m2k3d0n at users.sourceforge.net) |   - Russian: Nick Khazov (m2k3d0n at users.sourceforge.net) | ||||||
|   - Serbian: Anaximandar Milet (anaximandar at operamail.com) |  | ||||||
|   - Slovak:  helix84 |   - Slovak:  helix84 | ||||||
|   - Spanish: Francisco Luque Contreras (frannoe@ya.com) |   - Spanish: Vicente Raul Plata Fonseca (silverxnt@users.sourceforge.net) | ||||||
|   - Swedish: Daniel Nylander (po@danielnylander.se) |   - Swedish: Daniel Nylander (po@danielnylander.se) | ||||||
|   - Turkish: Hasan Yilmaz (iletisim@hedefturkce.com) |   - Turkish: Erdem Bingöl (erdem84@gmail.com) | ||||||
|   - Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net) and Oleh Prypin (blaxpirit@gmail.com) |   - Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net) | ||||||
|   license: GPLv2 |   license: GPLv2 | ||||||
|   | |||||||
							
								
								
									
										63
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						
									
										63
									
								
								INSTALL
									
									
									
									
									
								
							| @@ -1,55 +1,42 @@ | |||||||
| qBittorrent - A BitTorrent client in C++ / Qt4 | 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 | ./configure | ||||||
|   $ make && make install | make && make install | ||||||
|   $ qbittorrent | qbittorrent | ||||||
|  |  | ||||||
| will install and execute qBittorrent hopefully without any problems. | will install and execute qBittorrent hopefully without any problems. | ||||||
|  |  | ||||||
| Dependencies: | Dependencies: | ||||||
|     - Qt >= 4.5.0 (libqtgui, libqtcore, libqtnetwork, libqtxml, libqtdbus/optional) | - 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) | ||||||
|     - libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, compatible with v0.15.x/v0.16.x) |  | ||||||
|         -> http://www.libtorrent.net |  | ||||||
|         Be careful: another library (the one used by rTorrent) uses a similar name. |  | ||||||
|  |  | ||||||
|     - libboost 1.34.x (libboost-filesystem°) + libasio |  | ||||||
|       or |  | ||||||
|     - libboost >= 1.35.x (libboost-system, libboost-filesystem°) |  | ||||||
|        |  | ||||||
|     °libboost-filesystem is not needed if libtorrent-rasterbar >= v0.16.x is used |  | ||||||
|  |  | ||||||
|     - python >= 2.3 (needed by search engine) |  | ||||||
|         * Run time only dependency |  | ||||||
|  |  | ||||||
|     - 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 |     -> http://www.libtorrent.net | ||||||
|     Be careful: another library (the one used by rTorrent) uses a similar name. |     Be careful: another library (the one used by rTorrent) uses a similar name. | ||||||
|  |  | ||||||
| - libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization | - 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: | DOCUMENTATION: | ||||||
| Please note that there is a documentation with a "compiling howto" at http://wiki.qbittorrent.org. | 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 | out there. qBittorrent is fast, stable and provides unicode | ||||||
| support as well as many features. | support as well as many features. | ||||||
|  |  | ||||||
| This product includes GeoLite data created by MaxMind, available from |  | ||||||
| http://maxmind.com/ |  | ||||||
|  |  | ||||||
| Installation: | Installation: | ||||||
| ******************************** | ******************************** | ||||||
| For installation, follow the instructions from INSTALL file, but simple: | For installation, follow the instructions from INSTALL file, but simple: | ||||||
| @@ -26,9 +23,6 @@ will install and execute qBittorrent hopefully without any problem. | |||||||
| For more information please visit: | For more information please visit: | ||||||
| http://www.qbittorrent.org | http://www.qbittorrent.org | ||||||
|  |  | ||||||
| or our wiki here: |  | ||||||
| http://wiki.qbittorrent.org |  | ||||||
|  |  | ||||||
| Please report any bug (or feature request) to: | Please report any bug (or feature request) to: | ||||||
| http://bugs.qbittorrent.org | http://bugs.qbittorrent.org | ||||||
|  |  | ||||||
|   | |||||||
							
								
								
									
										61
									
								
								README.os2
									
									
									
									
									
								
							
							
						
						
									
										61
									
								
								README.os2
									
									
									
									
									
								
							| @@ -1,61 +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 ##### |  | ||||||
| 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 | .\" This manpage has been automatically generated by docbook2man | ||||||
| .\" from a DocBook document.  This tool can be found at: | .\" from a DocBook document.  This tool can be found at: | ||||||
| .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>. | .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>. | ||||||
| .TH "QBITTORRENT" "1" "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 | qBittorrent \- a Bittorrent client written in C++ / Qt4 | ||||||
|  | .SH SYNOPSIS | ||||||
|  |  | ||||||
| .SH "SYNOPSIS" | \fBqbittorrent\fR [FILE | URL] [FILE | URL...] | ||||||
|  |  | ||||||
| \fBqbittorrent\fR [\-\-no-splash] [\-\-webui-port=x] [TORRENT_FILE | URL]... |  | ||||||
|  |  | ||||||
| \fBqbittorrent\fR \-\-help | \fBqbittorrent\fR \-\-help | ||||||
|  |  | ||||||
| \fBqbittorrent\fR \-\-version | \fBqbittorrent\fR \-\-version | ||||||
|  |  | ||||||
| .PP | .PP | ||||||
| .SH "DESCRIPTION" | .SH "DESCRIPTION" | ||||||
|  |  | ||||||
| \fBqBittorrent\fR is an advanced Bittorrent client written in C++ / Qt4, | \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. | 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),  | It also comes with UPnP port forwarding / NAT-PMP, encryption (Azureus compatible), FAST extension (mainline) and PeX support (utorrent 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 |  | ||||||
|  |  | ||||||
|  | Please report any problem to http://bugs.qbittorrent.org | ||||||
|  | .PP | ||||||
| .SH "AUTHOR" | .SH "AUTHOR" | ||||||
|  |  | ||||||
| Christophe Dumez <chris@qbittorrent.org> | Christophe Dumez <chris@qbittorrent.org> | ||||||
|   | |||||||
							
								
								
									
										174
									
								
								install.os2
									
									
									
									
									
								
							
							
						
						
									
										174
									
								
								install.os2
									
									
									
									
									
								
							| @@ -1,174 +0,0 @@ | |||||||
| QBittorrent installation |  | ||||||
|  |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 0. CONTENTS OF THIS FILE |  | ||||||
| ======================== |  | ||||||
|  |  | ||||||
| 1. INTRODUCTION |  | ||||||
|  |  | ||||||
| 2. REQUIREMENTS |  | ||||||
|  |  | ||||||
| 3. INSTALLATION |  | ||||||
|  |  | ||||||
| 4. BUGREPORTS |  | ||||||
|  |  | ||||||
| 5. CREDITS |  | ||||||
|  |  | ||||||
| 6. SUPPORT AND DONATIONS |  | ||||||
|  |  | ||||||
| 7. HISTORY |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 1. INTRODUCTION |  | ||||||
| =============== |  | ||||||
|  |  | ||||||
| Welcome to QBittorrent port for OS/2 and eComStation. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 2. REQUIREMENTS |  | ||||||
| =============== |  | ||||||
|  |  | ||||||
| The following requirements can be installed either by rpm or by zip files. |  | ||||||
|  |  | ||||||
| RPM Installation: |  | ||||||
|  |  | ||||||
| klibc |  | ||||||
| ----- |  | ||||||
|  |  | ||||||
|   1. yum install libc |  | ||||||
|  |  | ||||||
| openssl 1.0 |  | ||||||
| ----------- |  | ||||||
|  |  | ||||||
|   1. yum install openssl |  | ||||||
|  |  | ||||||
| pthread |  | ||||||
| ------- |  | ||||||
|  |  | ||||||
|   1. yum install pthread |  | ||||||
|  |  | ||||||
| GCC4Core |  | ||||||
| -------- |  | ||||||
|  |  | ||||||
|   1. yum install libgcc |  | ||||||
|   2. yum install gcc-stack-protector |  | ||||||
|   3. yum install gcc-stdc++-shared-library |  | ||||||
|   4. yum install gcc-supc++-shared-library |  | ||||||
|  |  | ||||||
| Qt4 dll |  | ||||||
| ------- |  | ||||||
|  |  | ||||||
|   1. yum install libqt4 |  | ||||||
|  |  | ||||||
|  |  | ||||||
| ZIP Installation: |  | ||||||
|  |  | ||||||
| klibc |  | ||||||
| ----- |  | ||||||
|  |  | ||||||
|   1. Download klibc 0.6.4 or better (see http://svn.netlabs.org/libc for more information) |  | ||||||
|   2. Install the files to your libpath eg x:\ecs\dll |  | ||||||
|  |  | ||||||
| openssl 1.0 |  | ||||||
| ----------- |  | ||||||
|  |  | ||||||
|   1. Download the zip file from http://rpm.netlabs.org/release/00/zip |  | ||||||
|   2. Install the files to your libpath eg. x:\ecs\dll |  | ||||||
|  |  | ||||||
| pthread |  | ||||||
| ------- |  | ||||||
|  |  | ||||||
|   1. Download pthread 2012-03-13 or better from http://rpm.netlabs.org/release/00/zip |  | ||||||
|   2. Install the files to your libpath eg. x:\ecs\dll |  | ||||||
|  |  | ||||||
| GCC4Core |  | ||||||
| -------- |  | ||||||
|  |  | ||||||
|   1. Download GCC4Core 1.2.1 or better from http://ftp.netlabs.org/pub/gcc |  | ||||||
|   2. Install the files to your libpath eg. x:\ecs\dll |  | ||||||
|  |  | ||||||
| Qt4 dll |  | ||||||
| ------- |  | ||||||
|  |  | ||||||
|   1. Download Qt4 4.7.3 or better (see http://svn.netlabs.org/qt4 for more information) |  | ||||||
|   2. Install the files according to the readme |  | ||||||
|  |  | ||||||
|  |  | ||||||
| 3. INSTALLATION |  | ||||||
| =============== |  | ||||||
|            |  | ||||||
| To install QBittorrent, do the following: |  | ||||||
|  |  | ||||||
|   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. BUGREPORTS |  | ||||||
| ============= |  | ||||||
|  |  | ||||||
| Please create bugreports at http://svn.netlabs.org/qtapps |  | ||||||
| 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 |  | ||||||
| ========== |  | ||||||
|  |  | ||||||
| 2012-03-15 |  | ||||||
|  |  | ||||||
|   * updated to 2.9.5 code level of QBittorrent |  | ||||||
|  |  | ||||||
| 2011-09-26 |  | ||||||
|  |  | ||||||
|   * updated to 2.8.5 code level of QBittorrent |  | ||||||
|   * updated to Qt 4.7.3 |  | ||||||
|  |  | ||||||
| 2011-06-20 |  | ||||||
|  |  | ||||||
|   * updated to 2.7.3 code level of QBittorrent |  | ||||||
|   * updated libtorrent to 0.15.6 level |  | ||||||
|  |  | ||||||
| 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 |  | ||||||
|  |  | ||||||
							
								
								
									
										31
									
								
								macxconf.pri
									
									
									
									
									
								
							
							
						
						
									
										31
									
								
								macxconf.pri
									
									
									
									
									
								
							| @@ -1,31 +0,0 @@ | |||||||
| PREFIX = /usr/local |  | ||||||
| BINDIR = /usr/local/bin |  | ||||||
| DATADIR = /usr/local/share |  | ||||||
|  |  | ||||||
| # Use pkg-config to get all necessary libtorrent DEFINES |  | ||||||
| CONFIG += link_pkgconfig |  | ||||||
| PKGCONFIG += libtorrent-rasterbar |  | ||||||
| DEFINES += BOOST_ASIO_DYN_LINK |  | ||||||
|  |  | ||||||
| # Special include/libs paths (macports) |  | ||||||
| INCLUDEPATH += /usr/include/openssl /usr/include /opt/local/include/boost /opt/local/include |  | ||||||
| LIBS += -L/opt/local/lib |  | ||||||
|  |  | ||||||
| # OpenSSL lib |  | ||||||
| LIBS += -lssl -lcrypto |  | ||||||
| # Boost system lib |  | ||||||
| LIBS += -lboost_system-mt |  | ||||||
| # Boost filesystem lib (Not needed for libtorrent >= 0.16.0) |  | ||||||
| LIBS += -lboost_filesystem-mt |  | ||||||
| # Carbon |  | ||||||
| LIBS += -framework Carbon -framework IOKit |  | ||||||
|  |  | ||||||
| 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.") |  | ||||||
							
								
								
									
										18
									
								
								os2conf.pri
									
									
									
									
									
								
							
							
						
						
									
										18
									
								
								os2conf.pri
									
									
									
									
									
								
							| @@ -1,18 +0,0 @@ | |||||||
| 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 |  | ||||||
|  |  | ||||||
| # LIBTORRENT DEFINES |  | ||||||
| DEFINES += WITH_SHIPPED_GEOIP_H |  | ||||||
|  |  | ||||||
| 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,18 +1,6 @@ | |||||||
| TEMPLATE = subdirs | TEMPLATE = subdirs | ||||||
|  |  | ||||||
|  | include(conf.pri) | ||||||
|  |  | ||||||
| SUBDIRS += src | SUBDIRS += src | ||||||
|  |  | ||||||
| include(version.pri) |  | ||||||
|  |  | ||||||
| # Dist |  | ||||||
| dist.commands += rm -fR ../$${PROJECT_NAME}-$${PROJECT_VERSION}/ && |  | ||||||
| dist.commands += git clone . ../$${PROJECT_NAME}-$${PROJECT_VERSION} && |  | ||||||
| dist.commands += rm -fR ../$${PROJECT_NAME}-$${PROJECT_VERSION}/.git && |  | ||||||
| dist.commands += rm -f ../$${PROJECT_NAME}-$${PROJECT_VERSION}/.gitignore && |  | ||||||
| dist.commands += cd .. && |  | ||||||
| dist.commands += tar czf $${PROJECT_NAME}-$${PROJECT_VERSION}.tar.gz $${PROJECT_NAME}-$${PROJECT_VERSION} && |  | ||||||
| dist.commands += tar cf $${PROJECT_NAME}-$${PROJECT_VERSION}.tar $${PROJECT_NAME}-$${PROJECT_VERSION} && |  | ||||||
| dist.commands += xz -f $${PROJECT_NAME}-$${PROJECT_VERSION}.tar && |  | ||||||
| dist.commands += rm -fR $${PROJECT_NAME}-$${PROJECT_VERSION} |  | ||||||
|  |  | ||||||
| QMAKE_EXTRA_TARGETS += dist |  | ||||||
|   | |||||||
| @@ -6,20 +6,14 @@ | |||||||
|   <dep type='qt4'> |   <dep type='qt4'> | ||||||
|     <required/> |     <required/> | ||||||
|   </dep> |   </dep> | ||||||
|   <dep type='qt-dbus'> |  | ||||||
|   </dep> |  | ||||||
|   <dep type='pkg-config'> |  | ||||||
|     <required/> |  | ||||||
|   </dep> |  | ||||||
|   <dep type='libtorrent-rasterbar'> |   <dep type='libtorrent-rasterbar'> | ||||||
|     <required/> |     <required/> | ||||||
|   </dep> |   </dep> | ||||||
|   <dep type='libboost'> |   <dep type='libboost'> | ||||||
|     <required/> |     <required/> | ||||||
|   </dep> |   </dep> | ||||||
|   <dep type='geoip-database'> |   <dep type='libcurl'> | ||||||
|   </dep> |  | ||||||
|   <dep type='qtsingleapplication'> |  | ||||||
|     <required/> |     <required/> | ||||||
|   </dep> |   </dep> | ||||||
|  |   <dep type='libzzip'/> | ||||||
| </qconf> | </qconf> | ||||||
|   | |||||||
| @@ -1,37 +0,0 @@ | |||||||
| /* |  | ||||||
| -----BEGIN QCMOD----- |  | ||||||
| name: geoip-database |  | ||||||
| arg: with-geoip-database-embedded, Geoip Database will be embedded in qBittorrent executable (please follow instructions in src/geoip/README) |  | ||||||
| -----END QCMOD----- |  | ||||||
| */ |  | ||||||
| // see  Conf::findPkgConfig |  | ||||||
| class qc_geoip_database : public ConfObj |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	qc_geoip_database(Conf *c) : ConfObj(c) {} |  | ||||||
| 	QString name() const { return "GeoIP Database (optional)"; } |  | ||||||
| 	QString shortname() const { return "GeoIP Database"; } |  | ||||||
|         QString checkString() const { |  | ||||||
|                 if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) |  | ||||||
|                         return ""; |  | ||||||
|                 return ConfObj::checkString(); |  | ||||||
|         } |  | ||||||
| 	bool exec() { |  | ||||||
| 	if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) { |  | ||||||
| 		return false; |  | ||||||
| 	} |  | ||||||
| #ifdef Q_WS_X11 |  | ||||||
| 		if(!conf->getenv("QC_WITH_GEOIP_DATABASE_EMBEDDED").isEmpty()) { |  | ||||||
| #endif |  | ||||||
| 			conf->addDefine("WITH_GEOIP_EMBEDDED"); |  | ||||||
|                         printf(" embedded and"); |  | ||||||
| 			return true; |  | ||||||
| #ifdef Q_WS_X11 |  | ||||||
| 		} |  | ||||||
|                 if(QFile::exists("/usr/share/GeoIP/GeoIP.dat") || QFile::exists("/usr/local/share/GeoIP/GeoIP.dat") || QFile::exists("/var/lib/GeoIP/GeoIP.dat")) |  | ||||||
| 			return true; |  | ||||||
|                 printf("\nWarning: GeoIP database was not found at /usr/share/GeoIP/GeoIP.dat or /var/lib/GeoIP/GeoIP.dat\nCountry resolution will be slow."); |  | ||||||
| 		return false; |  | ||||||
| #endif |  | ||||||
| 	} |  | ||||||
| }; |  | ||||||
| @@ -2,96 +2,55 @@ | |||||||
| -----BEGIN QCMOD----- | -----BEGIN QCMOD----- | ||||||
| name: libboost | name: libboost | ||||||
| arg: with-libboost-inc=[path], Path to libboost include files | arg: with-libboost-inc=[path], Path to libboost include files | ||||||
| arg: with-libboost-lib=[path], Path to libboost library files |  | ||||||
| -----END QCMOD----- | -----END QCMOD----- | ||||||
| */ | */ | ||||||
| #include <boost/version.hpp> |  | ||||||
| #include <libtorrent/version.hpp> |  | ||||||
|  |  | ||||||
| class qc_libboost : public ConfObj | class qc_libboost : public ConfObj | ||||||
| { | { | ||||||
| public: | public: | ||||||
| 	qc_libboost(Conf *c) : ConfObj(c) {} | 	qc_libboost(Conf *c) : ConfObj(c) {} | ||||||
| 	QString name() const { return "libboost"; } | 	QString name() const { return "libboost"; } | ||||||
| 	QString shortname() 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(){ | 	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; | 			QStringList sl; | ||||||
|     QString s = conf->getenv("QC_WITH_LIBBOOST_INC"); |  | ||||||
|     if (!s.isEmpty()) |  | ||||||
|       sl << s; |  | ||||||
| 			sl << "/usr/include"; | 			sl << "/usr/include"; | ||||||
| 			sl << "/usr/local/include"; | 			sl << "/usr/local/include"; | ||||||
| 			bool found = false; | 			bool found = false; | ||||||
| 			foreach(s, sl){ | 			foreach(s, sl){ | ||||||
|       if (conf->checkHeader(s, "boost/format.hpp") | 				if(conf->checkHeader(s, "boost/format.hpp")){ | ||||||
| #if LIBTORRENT_VERSION_MAJOR == 0 && LIBTORRENT_VERSION_MINOR < 16 |  | ||||||
|           && conf->checkHeader(s, "boost/filesystem/path.hpp") |  | ||||||
| #endif |  | ||||||
|          ) { |  | ||||||
|         found = true; |  | ||||||
|         break; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|     if (!found) |  | ||||||
|       return false; |  | ||||||
|  |  | ||||||
|     conf->addIncludePath(s); |  | ||||||
|  |  | ||||||
|     // Find library |  | ||||||
|     s = conf->getenv("QC_WITH_LIBBOOST_LIB"); |  | ||||||
|     QStringList required_libs; |  | ||||||
| #if BOOST_VERSION >= 103500 |  | ||||||
|       required_libs << "system";  |  | ||||||
| #endif |  | ||||||
| #if LIBTORRENT_VERSION_MAJOR == 0 && LIBTORRENT_VERSION_MINOR < 16 |  | ||||||
|     required_libs << "filesystem" ; |  | ||||||
| #endif |  | ||||||
|     required_libs << "thread"; |  | ||||||
|     QStringList libDirs; |  | ||||||
|     if (!s.isEmpty()) |  | ||||||
|       libDirs << s; |  | ||||||
|     libDirs << "/usr/lib/" << "/usr/lib64/" << "/usr/local/lib/" << "/usr/local/lib64/"; |  | ||||||
|  |  | ||||||
|     foreach(const QString& lib, required_libs) { |  | ||||||
|       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; | 					found = true; | ||||||
| 					break; | 					break; | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			if(!found) { | 			if(!found) { | ||||||
|         printf("Could not find boost %s library!\n", qPrintable(lib)); | 				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; | 				return false; | ||||||
|       			} |       			} | ||||||
| 		} | 		} | ||||||
|  | 		conf->addIncludePath(s); | ||||||
| 		return true; | 		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,17 +8,22 @@ class qc_libtorrent_rasterbar : public ConfObj | |||||||
| { | { | ||||||
| public: | public: | ||||||
| 	qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {} | 	qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {} | ||||||
| 	QString name() const { return "libtorrent-rasterbar >= 0.14.4"; } | 	QString name() const { return "libtorrent-rasterbar >= 0.14.0 (>= 0.14.4 advised)"; } | ||||||
| 	QString shortname() const { return "libtorrent-rasterbar"; } | 	QString shortname() const { return "libtorrent-rasterbar"; } | ||||||
| 	bool exec(){ | 	bool exec(){ | ||||||
| 		QStringList incs; | 		QStringList incs; | ||||||
| 		QString req_ver = "0.14.4"; | 		QString req_ver = "0.14.0"; | ||||||
|  | 		QString adv_ver = "0.14.4"; | ||||||
| 		QString version, libs, other; | 		QString version, libs, other; | ||||||
| 		VersionMode mode = VersionMin; | 		VersionMode mode = VersionMin; | ||||||
| 		if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other)) | 		if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other)) | ||||||
| 			return false; | 			return false; | ||||||
| 		for(int n = 0; n < incs.count(); ++n) | 		for(int n = 0; n < incs.count(); ++n) | ||||||
| 			conf->addIncludePath(incs[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; | 		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(); |  | ||||||
| 	} |  | ||||||
| }; |  | ||||||
| @@ -1,31 +0,0 @@ | |||||||
| /* |  | ||||||
| -----BEGIN QCMOD----- |  | ||||||
| name: qt-dbus |  | ||||||
| -----END QCMOD----- |  | ||||||
| */ |  | ||||||
| // see  Conf::findPkgConfig |  | ||||||
| class qc_qt_dbus : public ConfObj |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	qc_qt_dbus(Conf *c) : ConfObj(c) {} |  | ||||||
| 	QString name() const { return "QtDBus >= 4.5"; } |  | ||||||
| 	QString shortname() const { return "qt-dbus"; } |  | ||||||
|         QString checkString() const { |  | ||||||
|                 if(!conf->getenv("QC_DISABLE_qt_dbus").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) |  | ||||||
|                         return ""; |  | ||||||
|                 return ConfObj::checkString(); |  | ||||||
|         } |  | ||||||
| 	bool exec(){ |  | ||||||
|                 if(!conf->getenv("QC_DISABLE_qt_dbus").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) |  | ||||||
|                   return false; |  | ||||||
| 		QStringList incs; |  | ||||||
| 		QString req_ver = "4.5.0"; |  | ||||||
| 		QString version, libs, other; |  | ||||||
| 		VersionMode mode = VersionMin; |  | ||||||
| 		if(conf->findPkgConfig("QtDBus", mode, req_ver, &version, &incs, &libs, &other)) { |  | ||||||
|                         conf->addExtra("CONFIG += dbus"); |  | ||||||
| 			return true; |  | ||||||
|                 } |  | ||||||
| 		return false; |  | ||||||
| 	} |  | ||||||
| }; |  | ||||||
| @@ -1,31 +0,0 @@ | |||||||
| /* |  | ||||||
| -----BEGIN QCMOD----- |  | ||||||
| name: qt-svg |  | ||||||
| -----END QCMOD----- |  | ||||||
| */ |  | ||||||
| // see  Conf::findPkgConfig |  | ||||||
| class qc_qt_svg : public ConfObj |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	qc_qt_svg(Conf *c) : ConfObj(c) {} |  | ||||||
| 	QString name() const { return "QtSvg >= 4.5"; } |  | ||||||
| 	QString shortname() const { return "qt-svg"; } |  | ||||||
|         QString checkString() const { |  | ||||||
|                 if(!conf->getenv("QC_DISABLE_qt_svg").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) |  | ||||||
|                         return ""; |  | ||||||
|                 return ConfObj::checkString(); |  | ||||||
|         } |  | ||||||
| 	bool exec(){ |  | ||||||
|                 if(!conf->getenv("QC_DISABLE_qt_svg").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) |  | ||||||
|                   return false; |  | ||||||
| 		QStringList incs; |  | ||||||
| 		QString req_ver = "4.5.0"; |  | ||||||
| 		QString version, libs, other; |  | ||||||
| 		VersionMode mode = VersionMin; |  | ||||||
| 		if(conf->findPkgConfig("QtSvg", mode, req_ver, &version, &incs, &libs, &other)) { |  | ||||||
|                         conf->addExtra("CONFIG += svg"); |  | ||||||
| 			return true; |  | ||||||
|                 } |  | ||||||
| 		return false; |  | ||||||
| 	} |  | ||||||
| }; |  | ||||||
							
								
								
									
										30
									
								
								qcm/qt4.qcm
									
									
									
									
									
								
							
							
						
						
									
										30
									
								
								qcm/qt4.qcm
									
									
									
									
									
								
							| @@ -1,36 +1,20 @@ | |||||||
| /* | /* | ||||||
| -----BEGIN QCMOD----- | -----BEGIN QCMOD----- | ||||||
| name: Qt >= 4.5 | name: Qt >= 4.3 | ||||||
| arg: enable-debug, Enable debug mode |  | ||||||
| arg: disable-gui, Disable qBittorrent Graphical user interface for headless running |  | ||||||
| -----END QCMOD----- | -----END QCMOD----- | ||||||
| */ | */ | ||||||
| class qc_qt4 : public ConfObj | class qc_qt4 : public ConfObj | ||||||
| { | { | ||||||
| public: | public: | ||||||
| 	qc_qt4(Conf *c) : ConfObj(c) {} | 	qc_qt4(Conf *c) : ConfObj(c) {} | ||||||
| 	QString name() const { return "Qt >= 4.5"; } | 	QString name() const { return "Qt >= 4.3"; } | ||||||
| 	QString shortname() const { return "Qt 4.5"; } | 	QString shortname() const { return "Qt 4.3"; } | ||||||
| 	bool exec() | 	bool exec() | ||||||
| 	{ | 	{ | ||||||
|                 // NOX mode | 		if(QT_VERSION >= 0x040400) { | ||||||
| 		if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) { | 			conf->addDefine("QT_4_4"); | ||||||
| 			conf->addExtra("CONFIG += nox"); |  | ||||||
| 		} | 		} | ||||||
|                 // Debug mode | 		return(QT_VERSION >= 0x040300); | ||||||
|                 if(!conf->getenv("QC_ENABLE_DEBUG").isEmpty()) { | 		 | ||||||
|                   conf->addExtra("CONFIG -= release"); |  | ||||||
|                   conf->addExtra("CONFIG += debug"); |  | ||||||
|                 } else { |  | ||||||
|                   conf->addExtra("CONFIG -= debug"); |  | ||||||
|                   conf->addExtra("CONFIG += release"); |  | ||||||
|                 } |  | ||||||
|                 #ifdef Q_OS_FREEBSD |  | ||||||
|                   conf->addLib("-lexecinfo"); |  | ||||||
|                   conf->addExtra("MANPREFIX = $$PREFIX"); |  | ||||||
|                 #else |  | ||||||
|                   conf->addExtra("MANPREFIX = $$PREFIX/share");  |  | ||||||
|                 #endif |  | ||||||
| 		return(QT_VERSION >= 0x040500); |  | ||||||
| 	} | 	} | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -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 | ||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user