Compare commits
	
		
			58 Commits
		
	
	
		
			release-2.
			...
			release-2.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					89c9a646ad | ||
| 
						 | 
					1ee45151a1 | ||
| 
						 | 
					772f05c5d4 | ||
| 
						 | 
					de9e215404 | ||
| 
						 | 
					eeabf85e3b | ||
| 
						 | 
					6b99c84fe3 | ||
| 
						 | 
					7d42969505 | ||
| 
						 | 
					90351c4a57 | ||
| 
						 | 
					492b9dc88f | ||
| 
						 | 
					c9a8c1d053 | ||
| 
						 | 
					c8fdf8dc10 | ||
| 
						 | 
					119f83fbf0 | ||
| 
						 | 
					e8db20a558 | ||
| 
						 | 
					508a811a8a | ||
| 
						 | 
					296267ec20 | ||
| 
						 | 
					39d4af1d6e | ||
| 
						 | 
					2e8f50b709 | ||
| 
						 | 
					fdccf9cc1c | ||
| 
						 | 
					31819e148f | ||
| 
						 | 
					5371fb15f8 | ||
| 
						 | 
					f845acb207 | ||
| 
						 | 
					f42eec5ad9 | ||
| 
						 | 
					ec1a06d7c8 | ||
| 
						 | 
					e9b6a726e3 | ||
| 
						 | 
					a3f54fc3b9 | ||
| 
						 | 
					10f58b4eed | ||
| 
						 | 
					52fef5ac38 | ||
| 
						 | 
					4d0cdea1c9 | ||
| 
						 | 
					86ca755dfe | ||
| 
						 | 
					659664509a | ||
| 
						 | 
					412f947db5 | ||
| 
						 | 
					ad47565b93 | ||
| 
						 | 
					89175ea827 | ||
| 
						 | 
					8dc34463e3 | ||
| 
						 | 
					cab38857d1 | ||
| 
						 | 
					14db21c241 | ||
| 
						 | 
					975ab9ad64 | ||
| 
						 | 
					b810278452 | ||
| 
						 | 
					86ac0a430e | ||
| 
						 | 
					78a0f34645 | ||
| 
						 | 
					3ae09658c9 | ||
| 
						 | 
					7d9caad31e | ||
| 
						 | 
					c9c627dec2 | ||
| 
						 | 
					5b104cdd9b | ||
| 
						 | 
					8f667dce5c | ||
| 
						 | 
					89412e5050 | ||
| 
						 | 
					63c121ecc7 | ||
| 
						 | 
					33b60779d6 | ||
| 
						 | 
					26b2367833 | ||
| 
						 | 
					9b40a036a7 | ||
| 
						 | 
					d4cc0e9e4a | ||
| 
						 | 
					ca802a6233 | ||
| 
						 | 
					35394c4966 | ||
| 
						 | 
					077dd11af6 | ||
| 
						 | 
					a5c9c8d670 | ||
| 
						 | 
					1ef0bcbc06 | ||
| 
						 | 
					e15eab9b6a | ||
| 
						 | 
					8f1c56babd | 
							
								
								
									
										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
 | 
					 | 
				
			||||||
							
								
								
									
										39
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						@@ -2,21 +2,12 @@ Author:
 | 
				
			|||||||
* Christophe Dumez <chris@qbittorrent.org>
 | 
					* Christophe Dumez <chris@qbittorrent.org>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
Contributors:
 | 
					Contributors:
 | 
				
			||||||
* Vladimir Golovnev <glassez@yandex.ru>
 | 
					 | 
				
			||||||
* Stefanos Antaris <santaris@csd.auth.gr>
 | 
					* Stefanos Antaris <santaris@csd.auth.gr>
 | 
				
			||||||
* Mohammad Dib <mdib@qbittorrent.org>
 | 
					 | 
				
			||||||
* Mirco Chinelli <infinity89@fastwebmail.it>
 | 
					 | 
				
			||||||
* Ishan Arora <ishan@qbittorrent.org>
 | 
					* Ishan Arora <ishan@qbittorrent.org>
 | 
				
			||||||
* Arnaud Demaizière <arnaud@qbittorrent.org>
 | 
					* Arnaud Demaizière <arnaud@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
 | 
				
			||||||
@@ -37,9 +28,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 +41,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,32 +59,24 @@ 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: Francisco Luque Contreras (frannoe@ya.com)
 | 
				
			||||||
  - 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) and Stephanos Antaris (santaris@csd.auth.gr)
 | 
				
			||||||
  - 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 (alphisation@gmail.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: Mariusz Fik (fisiu@opensuse.org)
 | 
					  - 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)
 | 
				
			||||||
@@ -107,5 +86,5 @@ Translations authors:
 | 
				
			|||||||
  - Spanish: Francisco Luque Contreras (frannoe@ya.com)
 | 
					  - Spanish: Francisco Luque Contreras (frannoe@ya.com)
 | 
				
			||||||
  - Swedish: Daniel Nylander (po@danielnylander.se)
 | 
					  - Swedish: Daniel Nylander (po@danielnylander.se)
 | 
				
			||||||
  - Turkish: Hasan Yilmaz (iletisim@hedefturkce.com)
 | 
					  - Turkish: Hasan Yilmaz (iletisim@hedefturkce.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
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										248
									
								
								Changelog
									
									
									
									
									
								
							
							
						
						@@ -1,215 +1,45 @@
 | 
				
			|||||||
* Sat Mar 17 2012 - Christophe Dumez <chris@qbittorrent.org> - v2.9.6
 | 
					* Mon Feb 8 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.4
 | 
				
			||||||
    - BUGFIX: Fix download first/last pieces state reporting
 | 
					    - BUGFIX: Fix file prioritizing in a torrent
 | 
				
			||||||
    - BUGFIX: Fix name of progress column in torrent content panel
 | 
					    - BUGFIX: Make sure seeding torrents display a progress of 100%
 | 
				
			||||||
    - BUGFIX: Disable system tray icon on Mac OS X
 | 
					    - BUGFIX: Usage display was improved and localized (--help)
 | 
				
			||||||
    - BUGFIX: RSS downloader should not ignore "Do not start automatically" rule (closes #946910)
 | 
					    - BUGFIX: Fix possible crash when deleting a torrent
 | 
				
			||||||
    - BUGFIX: Fix DHT port setting in Web UI (Closes #952182)
 | 
					    - BUGFIX: Fix possible crash when changing torrents label
 | 
				
			||||||
    - BUGFIX: Fix possible Web UI authentication problem when using SSL (closes #941343)
 | 
					 | 
				
			||||||
    - BUGFIX: Fix possible issues with folder removal when removing a torrent
 | 
					 | 
				
			||||||
    - I18N: Add Basque translation
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Sat Feb 18 2012 - Christophe Dumez <chris@qbittorrent.org> - v2.9.5
 | 
					* Sun Jan 31 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.3
 | 
				
			||||||
    - BUGFIX: Fix crash when disabling then reenabling RSS
 | 
					    - BUGFIX: Fix "Append .!qB extension to complete files" (libtorrent v0.15)
 | 
				
			||||||
    - BUGFIX: Fix duplicate torrent detection when adding a magnet link
 | 
					    - BUGFIX: Make sure bandwidth limiting dialogs are centered on screen
 | 
				
			||||||
    - BUGFIX: Fix import of new trackers when adding a torrent with same hash (Closes #747000)
 | 
					    - BUGFIX: Added support for HTTP redirection
 | 
				
			||||||
    - BUGFIX: Fix possible redownload of torrents marked as read (Closes #927495)
 | 
					    - BUGFIX: Fix compilation error when geoip database is embedded
 | 
				
			||||||
    - BUGFIX: Properly remove RSS feed settings/history upon feed removal
 | 
					    - BUGFIX: Fix crash when double-clicking on a torrent that has no metadata to open its save path
 | 
				
			||||||
 | 
					    - BUGFIX: Fix Scan directory preferences in Web UI
 | 
				
			||||||
 | 
					    - BUGFIX: Clear torrent error state when resuming it
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Sat Feb 18 2012 - Christophe Dumez <chris@qbittorrent.org> - v2.9.4
 | 
					* Sun Jan 24 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.2
 | 
				
			||||||
    - BUGFIX: qBittorrent does not handle redirection to relative URLs correctly (Closes #919905)
 | 
					    - FEATURE: Added back file prioritizing in a torrent
 | 
				
			||||||
    - BUGFIX: Cmd+M minimizes main window on Mac OS X (Closes #928216)
 | 
					    - BUGFIX: Fix issue causing torrents not to be displayed in the list
 | 
				
			||||||
    - BUGFIX: Cmd+Del removes torrents on Mac OS X (Closes #928852)
 | 
					    - BUGFIX: Make sure invalid torrent are removed from the transfer list
 | 
				
			||||||
    - BUGFIX: Fix potential bug when moving single file torrents to tmp folder (closes #932861)
 | 
					    - BUGFIX: Fix overwrite check when renaming a folder in a torrent
 | 
				
			||||||
    - BUGFIX: Fix torrent import dialog layout (Closes #930932)
 | 
					    - BUGFIX: Force a recheck after renaming files to avoid overwriting
 | 
				
			||||||
    - BUGFIX: Prevent log window buffer from filling up (Closes #929673)
 | 
					    - BUGFIX: Improve "Open destination folder" behavior
 | 
				
			||||||
    - I18N: Add Belarusian translation
 | 
					    - BUGFIX: Fix race condition in RSS that could cause a crash on startup
 | 
				
			||||||
 | 
					    - BUGFIX: Improved user friendlyness of size units
 | 
				
			||||||
 | 
					    - BUGFIX: Optimized transfer list repainting
 | 
				
			||||||
 | 
					    - COSMETIC: Improved transfer speed display in peers list
 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Thu Dec 29 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.9.3
 | 
					* Wed Jan 20 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.1
 | 
				
			||||||
    - BUGFIX: Fix btdigg plugin (Python3 support + torrent name in magnet links)
 | 
					    - BUGFIX: Fix compilation with Qt4.4
 | 
				
			||||||
    - BUGFIX: Fix banning of IPv6 peers (Closes #885021)
 | 
					    - BUGFIX: Save torrent metadata so that it does not have to be re-downloaded on restart (Magnet links)
 | 
				
			||||||
    - BUGFIX: Fix torrent addition dialog layout problem (Closes #84650522)
 | 
					    - BUGFIX: Fix folder renaming in a torrent (would rename children under certain conditions)
 | 
				
			||||||
    - BUGFIX: Do not report any progress for disabled files (Closes #56731485)
 | 
					    - BUGFIX: Nox version no longer requires libQtXml
 | 
				
			||||||
    - BUGFIX: Make torrent sorting case insensitive (Closes #857154)
 | 
					    - BUGFIX: Configure file now checks for pkg-config executable which is required
 | 
				
			||||||
    - BUGFIX: Improve Web UI usability of small devices
 | 
					    - BUGFIX: Torrents added from magnet links were not remembered on restart
 | 
				
			||||||
    - BUGFIX: Program updater: More reliable version detection / comparison
 | 
					    - BUGFIX: "Add in pause" setting can be ignored from torrent addition dialog
 | 
				
			||||||
    - I18N: Add Georgian translation
 | 
					    - BUGFIX: Fix renaming of files with unicode characters in their name
 | 
				
			||||||
 | 
					    - BUGFIX: Fix typo in legal notice (startup)
 | 
				
			||||||
* Sat Oct 29 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.9.2
 | 
					    - BUGFIX: Can listen on ports < 1024 (must be root)
 | 
				
			||||||
    - BUGFIX: Fix mimimum dimensions for torrent addition dialog
 | 
					    - BUGFIX: Paused torrents can now be rechecked
 | 
				
			||||||
    - BUGFIX: Remove dependency on boost-datetime
 | 
					    - BUGFIX: Fix "open torrent destination" feature when path contains spaces
 | 
				
			||||||
    - BUGFIX: Remove dependency on boost-filesystem (libtorrent v0.16.x)
 | 
					    - I18N: Updated translations (Hungarian, Chinese, Russian)
 | 
				
			||||||
 | 
					 | 
				
			||||||
* Sun Oct 23 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.9.1
 | 
					 | 
				
			||||||
    - BUGFIX: Add support for speed limits scheduling (Web UI)
 | 
					 | 
				
			||||||
    - BUGFIX: Fix ratio calculation for purely seeded torrents
 | 
					 | 
				
			||||||
    - I18N: Update Russian translation
 | 
					 | 
				
			||||||
    - COSMETIC: Torrent addition dialog layout fixes
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Sat Oct 08 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.9.0
 | 
					 | 
				
			||||||
    - FEATURE: Add file association settings to program preferences (Windows)
 | 
					 | 
				
			||||||
    - FEATURE: Add setting to ignore slow torrents in queueing system
 | 
					 | 
				
			||||||
    - FEATURE: Add advanced setting to announce to all trackers
 | 
					 | 
				
			||||||
    - FEATURE: Add support for anonymous mode (libtorrent >= v0.16)
 | 
					 | 
				
			||||||
    - FEATURE: Add quick "set as default save path" checkbox to torrent addition dialog (sledgehammer999)
 | 
					 | 
				
			||||||
    - BUGFIX: Add tray menu entry for toggling window visibility
 | 
					 | 
				
			||||||
    - BUGFIX: Fix execution log lines selection and copying
 | 
					 | 
				
			||||||
    - BUGFIX: Reduce CPU usage when running Web UI
 | 
					 | 
				
			||||||
    - BUGFIX: Save RSS items to disk regularly for safety
 | 
					 | 
				
			||||||
    - BUGFIX: Fix ratio calculation (use all_time_download)
 | 
					 | 
				
			||||||
    - BUGFIX: Fix torrent upload issues (Web UI)
 | 
					 | 
				
			||||||
    - BUGFIX: Fix some IE incompatibilities (Web UI)
 | 
					 | 
				
			||||||
    - COSMETIC: Display speed at the beginning of the Window title
 | 
					 | 
				
			||||||
    - COSMETIC: Several cosmetic fixes to the Web UI
 | 
					 | 
				
			||||||
    - COSMETIC: Make top toolbar follow system style
 | 
					 | 
				
			||||||
    - OTHER: Display libraries versions in about dialog (sledgehammer999)
 | 
					 | 
				
			||||||
    - OTHER: Display qBittorrent version in Web UI about dialog
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Thu Jun 02 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.8.0
 | 
					 | 
				
			||||||
    - FEATURE: Added full libtorrent v0.16 support (uTP, ...)
 | 
					 | 
				
			||||||
    - FEATURE: Proxy can be disabled for peer connections
 | 
					 | 
				
			||||||
    - FEATURE: Added support for secure SMTP connection (SSL)
 | 
					 | 
				
			||||||
    - FEATURE: Added support for SMTP authentication
 | 
					 | 
				
			||||||
    - FEATURE: Added UPnP/NAT-PMP port forward for the Web UI port
 | 
					 | 
				
			||||||
    - FEATURE: qBittorrent can update dynamic DNS services (DynDNS, no-ip)
 | 
					 | 
				
			||||||
    - FEATURE: Display peer connection type in peer list (BT, uTP, Web)
 | 
					 | 
				
			||||||
    - FEATURE: Added full regex support to RSS downloader
 | 
					 | 
				
			||||||
    - FEATURE: Added regex help and validation in RSS downloader
 | 
					 | 
				
			||||||
    - FEATURE: Added HTTPS support to Web UI (Ishan Arora)
 | 
					 | 
				
			||||||
    - BUGFIX: Change systray icon on the fly (no restart needed)
 | 
					 | 
				
			||||||
    - BUGFIX: Remember peer-level rate limits (requires libtorrent v0.16)
 | 
					 | 
				
			||||||
    - BUGFIX: Stop annoncing to trackers an all tiers (more respectful)
 | 
					 | 
				
			||||||
    - BUGFIX: Stop sharing private trackers with other peers
 | 
					 | 
				
			||||||
    - BUGFIX: Tracker exchange extension can be disabled
 | 
					 | 
				
			||||||
    - BUGFIX: Cleaner program exit on system log out
 | 
					 | 
				
			||||||
    - BUGFIX: Fix possible magnet link parsing problems
 | 
					 | 
				
			||||||
    - BUGFIX: Fix possible RSS URL parsing problems
 | 
					 | 
				
			||||||
    - COSMETIC: Added monochrome icon for light themes 
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Sun Mar 20 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.7.0
 | 
					 | 
				
			||||||
    - FEATURE: Added search field for torrent content
 | 
					 | 
				
			||||||
    - FEATURE: Added auto-shutdown confirmation dialog
 | 
					 | 
				
			||||||
    - FEATURE: Added option to skip torrent deletion confirmation (Ville Kiiskinen)
 | 
					 | 
				
			||||||
    - FEATURE: IP address reported to trackers is now customizable
 | 
					 | 
				
			||||||
    - FEATURE: Inhibit system sleep when torrents are active (Vladimir Golovnev)
 | 
					 | 
				
			||||||
    - FEATURE: Added option to bypass Web UI authentication for localhost
 | 
					 | 
				
			||||||
    - FEATURE: Added option to disable program exit confirmation
 | 
					 | 
				
			||||||
    - FEATURE: Added per-torrent ratio limiting (Christian Kandeler)
 | 
					 | 
				
			||||||
    - FEATURE: Torrent content list is now sortable
 | 
					 | 
				
			||||||
    - BUGFIX: Fix compilation with namespaced Qt (Christian Kandeler)
 | 
					 | 
				
			||||||
    - BUGFIX: Added length restriction on UI lock password
 | 
					 | 
				
			||||||
    - COSMETIC: Added monochrome tray icon
 | 
					 | 
				
			||||||
    - COSMETIC: Improved status bar's style
 | 
					 | 
				
			||||||
    - OTHER: Make QtDBus dependency optional (X11)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Sun Jan 9 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.6.0
 | 
					 | 
				
			||||||
    - FEATURE: Use system icons (Linux, Qt >= 4.6)
 | 
					 | 
				
			||||||
    - FEATURE: Improved ETA calculation
 | 
					 | 
				
			||||||
    - FEATURE: Simplify program preferences
 | 
					 | 
				
			||||||
    - FEATURE: Software update check can now be disabled (Mac OS X / Windows)
 | 
					 | 
				
			||||||
    - FEATURE: Display pieces size in torrent properties
 | 
					 | 
				
			||||||
    - FEATURE: Added "Time Active/Seeded" column to transfer list
 | 
					 | 
				
			||||||
    - FEATURE: Give feedback regarding the IP filter parsing
 | 
					 | 
				
			||||||
    - FEATURE: Added a button to reload the IP filter
 | 
					 | 
				
			||||||
    - FEATURE: Search engine results can now be opened in a Web browser
 | 
					 | 
				
			||||||
    - FEATURE: Added a search engine plugin to extratorrent.com
 | 
					 | 
				
			||||||
    - FEATURE: Added a search engine plugin for kickasstorrents.com
 | 
					 | 
				
			||||||
    - FEATURE: Added auto-suspend upon downloads completion feature
 | 
					 | 
				
			||||||
    - BUGFIX: Hide unwanted files that have to be partly downloaded
 | 
					 | 
				
			||||||
    - BUGFIX: Do not allocate space for unwanted files (preallocation mode)
 | 
					 | 
				
			||||||
    - I18N: Added Galician translation
 | 
					 | 
				
			||||||
    - COSMETIC: Same deletion confirmation dialog in the GUI and Web UI
 | 
					 | 
				
			||||||
    - COSMETIC: Simplified the top toolbar
 | 
					 | 
				
			||||||
    - COSMETIC: Display execution log as a tab instead of a modal window
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Sun Dec 5 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.5.0
 | 
					 | 
				
			||||||
    - FEATURE: qBittorrent can now act as a tracker
 | 
					 | 
				
			||||||
    - FEATURE: New and improved RSS feed automated downloader
 | 
					 | 
				
			||||||
    - FEATURE: Added feature to shutdown qbittorrent on torrents completion
 | 
					 | 
				
			||||||
    - FEATURE: Added a torrent import assistant to seed or keep downloading outside torrents
 | 
					 | 
				
			||||||
    - FEATURE: qBittorrent can update itself from Sourceforge (Windows/Mac OS X only)
 | 
					 | 
				
			||||||
    - FEATURE: Added a transfer list column to display the current tracker
 | 
					 | 
				
			||||||
    - FEATURE: Remember the last trackers used in the torrent creation tool
 | 
					 | 
				
			||||||
    - FEATURE: The optimal piece size is now automatically computed in the torrent creation tool
 | 
					 | 
				
			||||||
    - FEATURE: Bring up the connection settings when clicking on the connection status icon
 | 
					 | 
				
			||||||
    - FEATURE: Major code refactoring and optimization
 | 
					 | 
				
			||||||
    - FEATURE: Added "Amount downloaded/left" columns to transfer list
 | 
					 | 
				
			||||||
    - FEATURE: Simplified proxy settings
 | 
					 | 
				
			||||||
    - FEATURE: Optimized and improved the peer country resolution code
 | 
					 | 
				
			||||||
    - FEATURE: Download first/last pieces first when sequential download is
 | 
					 | 
				
			||||||
    enabled (Thanks Ahmad)
 | 
					 | 
				
			||||||
    - FEATURE: Download first/last pieces first now applies to all media files
 | 
					 | 
				
			||||||
    in the torrent (Thanks Ahmad)
 | 
					 | 
				
			||||||
    - BUGFIX: Fix SOCKS5 proxy authentication in search engine(closes #680072)
 | 
					 | 
				
			||||||
    - BUGFIX: Fix two advanced settings (ignore limits on LAN and protocol
 | 
					 | 
				
			||||||
    overhead inclusion in rate limiter)
 | 
					 | 
				
			||||||
    - BUGFIX: Fix strict super seeding (was not working)
 | 
					 | 
				
			||||||
    - BUGFIX: Improve magnet save path handling (closes #683395)
 | 
					 | 
				
			||||||
    - BUGFIX: Disable overwrite confirmation in torrent addition dialog (closes # 685269)
 | 
					 | 
				
			||||||
    - COSMETIC: Replaced message box by on-screen notification for download errors
 | 
					 | 
				
			||||||
    - COSMETIC: Improved the torrent creation tool appearance
 | 
					 | 
				
			||||||
    - COSMETIC: Use country flags by Mark James (Thanks to Dmytro Pukha)
 | 
					 | 
				
			||||||
    - COSMETIC: Use bigger alternative speed icon
 | 
					 | 
				
			||||||
    - OTHERS: Dropped support for Qt <= 4.4
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Tue Aug 24 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.4.0
 | 
					 | 
				
			||||||
    - FEATURE: Added actions to "Move to top/bottom" of priority queue
 | 
					 | 
				
			||||||
    - FEATURE: Auto-Shutdown on downloads completion
 | 
					 | 
				
			||||||
    - FEATURE: Email notification on download completion
 | 
					 | 
				
			||||||
    - FEATURE: Added button to password-lock the UI
 | 
					 | 
				
			||||||
    - FEATURE: Added label-level Pause/Resume/Delete actions
 | 
					 | 
				
			||||||
    - FEATURE: Torrents can now be filtered by name
 | 
					 | 
				
			||||||
    - FEATURE: Run external program on torrent completion
 | 
					 | 
				
			||||||
    - FEATURE: Detect executable updates in order to advise the user to restart
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Tue Jul 27 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.3.0
 | 
					 | 
				
			||||||
    - FEATURE: Simplified torrent root folder renaming/truncating (< v2.3.0 is no longer forward compatible)
 | 
					 | 
				
			||||||
    - FEATURE: Remember previous save paths in torrent addition dialog
 | 
					 | 
				
			||||||
    - FEATURE: Max number of half-open connections can now be edited
 | 
					 | 
				
			||||||
    - FEATURE: Added support for strict super seeding
 | 
					 | 
				
			||||||
    - FEATURE: The user can force listening on a particular network interface
 | 
					 | 
				
			||||||
    - FEATURE: Added cookie support for RSS feeds
 | 
					 | 
				
			||||||
    - FEATURE: User can force tracker reannounce
 | 
					 | 
				
			||||||
    - FEATURE: Added "No action" setting for double-click action
 | 
					 | 
				
			||||||
    - FEATURE: Several torrents can be moved at once
 | 
					 | 
				
			||||||
    - FEATURE: Added error state for torrents (error is displayed in a tooltip)
 | 
					 | 
				
			||||||
    - FEATURE: Added filter for paused/error torrents
 | 
					 | 
				
			||||||
    - FEATURE: Add Check/Uncheck all feature in Web UI
 | 
					 | 
				
			||||||
    - FEATURE: Search engine can now be disabled
 | 
					 | 
				
			||||||
    - FEATURE: Torrents can be automatically paused once they reach a given ratio
 | 
					 | 
				
			||||||
    - FEATURE: Several files can now be disabled at once
 | 
					 | 
				
			||||||
    - FEATURE: Added "Select All/None" buttons to files list
 | 
					 | 
				
			||||||
    - FEATURE: Added support for BitComet links (bc://bt/...)
 | 
					 | 
				
			||||||
    - BUGFIX: Hide seeding torrents files priorities in Web UI
 | 
					 | 
				
			||||||
    - BUGFIX: The user can disable permanently recursive torrent download
 | 
					 | 
				
			||||||
    - BUGFIX: Peer Exchange status is now correctly reported
 | 
					 | 
				
			||||||
    - BUGFIX: Use an INI file instead of the registry on Windows (More reliable)
 | 
					 | 
				
			||||||
    - BUGFIX: Removed client spoofing feature to avoid tracker blacklisting
 | 
					 | 
				
			||||||
    - COSMETIC: Display peers country name in tooltip
 | 
					 | 
				
			||||||
    - COSMETIC: Display number of torrents in transfers tab label
 | 
					 | 
				
			||||||
    - COSMETIC: Simplified program preferences
 | 
					 | 
				
			||||||
    - COSMETIC: Fix naming of actions opening new dialogs (use Name...)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Sun Mar 14 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.0
 | 
					 | 
				
			||||||
    - FEATURE: User can set alternative speed limits for fast toggling
 | 
					 | 
				
			||||||
    - FEATURE: Bandwidth scheduler (automatically use alternative speed limits for a given period)
 | 
					 | 
				
			||||||
    - FEATURE: Added "Added/Completed On" columns to transfer list
 | 
					 | 
				
			||||||
    - FEATURE: Added "Upload/Download limit" columns to transfer list
 | 
					 | 
				
			||||||
    - FEATURE: Torrent files can be exported to a given directory
 | 
					 | 
				
			||||||
    - FEATURE: Outgoing ports range can be customized (for QoS)
 | 
					 | 
				
			||||||
    - FEATURE: User can choose to apply transfer limits on LAN too
 | 
					 | 
				
			||||||
    - FEATURE: User can choose to include the protocol overhead in transfer limits
 | 
					 | 
				
			||||||
    - FEATURE: Torrents can be automatically rechecked on completion
 | 
					 | 
				
			||||||
    - FEATURE: If 2 torrents have the same hash, add new trackers/URL seeds to the existing torrent
 | 
					 | 
				
			||||||
    - FEATURE: Trackers can be added from Web UI
 | 
					 | 
				
			||||||
    - FEATURE: Global transfer information are displayed in the new Web UI status bar
 | 
					 | 
				
			||||||
    - FEATURE: Allow to change the priority of several files at once
 | 
					 | 
				
			||||||
    - FEATURE: Support for multiple scan folders (Patch by Christian Kandeler)
 | 
					 | 
				
			||||||
    - BUGFIX: Only one log window can be opened at a time
 | 
					 | 
				
			||||||
    - BUGFIX: Optimized RSS module memory usage
 | 
					 | 
				
			||||||
    - BUGFIX: Consider HTTP downloads >1MB as invalid .torrent files and abort
 | 
					 | 
				
			||||||
    - BUGFIX: Fix Web UI authentication with some browsers
 | 
					 | 
				
			||||||
    - BUGFIX: Set Web UI ban period to 1 hour
 | 
					 | 
				
			||||||
    - COSMETIC: Improved style management
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
* Mon Jan 18 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.0
 | 
					* Mon Jan 18 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.0
 | 
				
			||||||
    - FEATURE: Graphical User Interface can be disabled at compilation time (headless running)
 | 
					    - FEATURE: Graphical User Interface can be disabled at compilation time (headless running)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										14
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						@@ -10,23 +10,23 @@ qBittorrent - A BitTorrent client in C++ / Qt4
 | 
				
			|||||||
  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.4.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - pkg-config executable
 | 
					    - pkg-config executable
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, compatible with v0.15.x/v0.16.x)
 | 
					    - 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 1.34.x (libboost-filesystem°) + libasio
 | 
					    - libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
 | 
				
			||||||
      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)
 | 
					    - python >= 2.3 (needed by search engine)
 | 
				
			||||||
        * Run time only dependency
 | 
					        * Run time only dependency
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    - libnotify >= 0.4.2, glib-2.0 (optional)
 | 
				
			||||||
 | 
					        * Can be used for system notifications to replace standard Qt notifications
 | 
				
			||||||
 | 
					          so that it integrates better into the Desktop
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    - geoip-database (optional)
 | 
					    - 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.
 | 
					        * 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
 | 
					        * Run time only dependency
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										62
									
								
								README.os2
									
									
									
									
									
								
							
							
						
						@@ -1,62 +0,0 @@
 | 
				
			|||||||
qBittorrent - A BitTorrent client in Qt4
 | 
					 | 
				
			||||||
------------------------------------------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
This is the eComStation (OS/2) qBittorrent part of the readme. See also README for more general information.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Building qBittorrent
 | 
					 | 
				
			||||||
********************
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Requirements
 | 
					 | 
				
			||||||
============
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- gcc based build env (recommended gcc v4.4.2 or greater)
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
- Qt4 for eCS (OS/2) dev package (see http://svn.netlabs.org/qt4 for more information)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- libtorrent-rasterbar for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
- boost for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
How to build
 | 
					 | 
				
			||||||
============
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
First you need to create the conf.pri file in the same dir as this readme.os2 is.
 | 
					 | 
				
			||||||
the conf.pri file has the following content:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
##### conf.pri content beginn #####
 | 
					 | 
				
			||||||
PREFIX = .
 | 
					 | 
				
			||||||
BINDIR = ./bin
 | 
					 | 
				
			||||||
INCDIR = ./include
 | 
					 | 
				
			||||||
LIBDIR = ./lib
 | 
					 | 
				
			||||||
DATADIR = ./share
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
CONFIG += staticlib
 | 
					 | 
				
			||||||
INCLUDEPATH += x:/trees/libtorrent/trunk/include
 | 
					 | 
				
			||||||
LIBS += -Lx:/trees/libtorrent/trunk/src/.libs \
 | 
					 | 
				
			||||||
        -Lx:/trees/boost/trunk/stage/lib \
 | 
					 | 
				
			||||||
        -Lx:/trees/openssl \
 | 
					 | 
				
			||||||
	-Lx:/extras/lib
 | 
					 | 
				
			||||||
##### conf.pri content end #####
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Of course all the above path references have to be adjusted to your build env.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
It should now be easy to build qBittorrent:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Simply type:
 | 
					 | 
				
			||||||
$ qmake
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Followed by:
 | 
					 | 
				
			||||||
$ make
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
If all works fine you should get a working qbittorrent executable.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
If you have any question regarding the eCS (OS/2) port of qBittorrent you can meet me (_diver) on IRC:
 | 
					 | 
				
			||||||
#netlabs on irc.freenode.net
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
------------------------------------------
 | 
					 | 
				
			||||||
Silvan Scherrer <silvan.scherrer@aroa.ch>
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							
								
								
									
										136
									
								
								install.os2
									
									
									
									
									
								
							
							
						
						@@ -1,136 +0,0 @@
 | 
				
			|||||||
QBittorrent installation
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
0. CONTENTS OF THIS FILE
 | 
					 | 
				
			||||||
========================
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
1. INTRODUCTION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
2. REQUIREMENTS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3. INSTALLATION
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4. CONTACT
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
5. CREDITS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
6. SUPPORT AND DONATIONS
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
7. HISTORY
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
1. INTRODUCTION
 | 
					 | 
				
			||||||
===============
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Welcome to QBittorrent port for OS/2 and eComStation.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
2. REQUIREMENTS
 | 
					 | 
				
			||||||
===============
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* klibc 0.6.3 or later
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    ftp://ftp.netlabs.org/pub/gcc/libc-0_6_3-csd3.wpi
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* openssl 1.0
 | 
					 | 
				
			||||||
 
 | 
					 | 
				
			||||||
    ftp://ftp.netlabs.org/pub/unixos2/ssl10.zip
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
* Qt4 dll
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    see http://svn.netlabs.org/qt4 for more information whats needed and where to get the latest
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
3. INSTALLATION
 | 
					 | 
				
			||||||
===============
 | 
					 | 
				
			||||||
          
 | 
					 | 
				
			||||||
To install QBittorrent, do the following:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
klibc
 | 
					 | 
				
			||||||
-----
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  1. Download klibc 0.6.3 csd3 or later.
 | 
					 | 
				
			||||||
  2. Install the package by double-clicking on the WPI file.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
openssl 1.0
 | 
					 | 
				
			||||||
-----------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  1. Download the zip file
 | 
					 | 
				
			||||||
  2. Install the files to your libpath eg. x:\ecs\dll
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Qt4 dll
 | 
					 | 
				
			||||||
-------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  1. Download the package
 | 
					 | 
				
			||||||
  2. Install the package by double-clicking on the wpi file.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
QBittorrent
 | 
					 | 
				
			||||||
-----------
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  1. Create a directory for QBittorrent.
 | 
					 | 
				
			||||||
  2. Extract the QBittorrent package to the new directory.
 | 
					 | 
				
			||||||
  3. Create a WPS object for QBittorrent.exe.
 | 
					 | 
				
			||||||
  4. Start QBittorrent
 | 
					 | 
				
			||||||
  5. Happy torrenting
 | 
					 | 
				
			||||||
  
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
4. CONTACT
 | 
					 | 
				
			||||||
==========
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Please send bugreports to:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  ecs@aroa.ch
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Only bug reports with a reproducable bug are accepted. :-)
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
5. CREDITS
 | 
					 | 
				
			||||||
==========
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
The port was done by:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Silvan Scherrer aka _diver
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
Thanks go to:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  * Dmitry A. Kuminov
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
They either helped me when I had some nasty questions or did some testing for
 | 
					 | 
				
			||||||
me.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
6. SUPPORT AND DONATIONS
 | 
					 | 
				
			||||||
========================
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
QBittorrent port is based on volunteer work. If you would like to support further
 | 
					 | 
				
			||||||
development, you can do so in one of the following ways:
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  * Donate to the Qt4 project: see qt.netlabs.org for more information
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  * Contribute to the project: Besides actual development, this also includes
 | 
					 | 
				
			||||||
    maintaining the documentation and the project web site as well as help
 | 
					 | 
				
			||||||
    for users.
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
7. HISTORY
 | 
					 | 
				
			||||||
==========
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
2010-12-23
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  * updated to 2.5.2 code level of QBittorrent
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
2010-11-22
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  * updated to 2.4.11 code level of QBittorrent
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
2010-xx-xx
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
  * initial port
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
							
								
								
									
										30
									
								
								macxconf.pri
									
									
									
									
									
								
							
							
						
						@@ -1,30 +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
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
# 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
									
									
									
									
									
								
							
							
						
						@@ -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
									
								
							
							
						
						@@ -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>
 | 
				
			||||||
@@ -2,15 +2,3 @@ TEMPLATE = subdirs
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
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 += rm -fR $${PROJECT_NAME}-$${PROJECT_VERSION}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
QMAKE_EXTRA_TARGETS += dist
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -6,8 +6,6 @@
 | 
				
			|||||||
  <dep type='qt4'>
 | 
					  <dep type='qt4'>
 | 
				
			||||||
    <required/>
 | 
					    <required/>
 | 
				
			||||||
  </dep>
 | 
					  </dep>
 | 
				
			||||||
  <dep type='qt-dbus'>
 | 
					 | 
				
			||||||
  </dep>
 | 
					 | 
				
			||||||
  <dep type='pkg-config'>
 | 
					  <dep type='pkg-config'>
 | 
				
			||||||
    <required/>
 | 
					    <required/>
 | 
				
			||||||
  </dep>
 | 
					  </dep>
 | 
				
			||||||
@@ -17,9 +15,8 @@
 | 
				
			|||||||
  <dep type='libboost'>
 | 
					  <dep type='libboost'>
 | 
				
			||||||
    <required/>
 | 
					    <required/>
 | 
				
			||||||
  </dep>
 | 
					  </dep>
 | 
				
			||||||
 | 
					  <dep type='libnotify'>
 | 
				
			||||||
 | 
					  </dep>
 | 
				
			||||||
  <dep type='geoip-database'>
 | 
					  <dep type='geoip-database'>
 | 
				
			||||||
  </dep>
 | 
					  </dep>
 | 
				
			||||||
  <dep type='qtsingleapplication'>
 | 
					 | 
				
			||||||
    <required/>
 | 
					 | 
				
			||||||
  </dep>
 | 
					 | 
				
			||||||
</qconf>
 | 
					</qconf>
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										133
									
								
								qcm/libboost.qcm
									
									
									
									
									
								
							
							
						
						@@ -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"; }
 | 
				
			||||||
 | 
						bool exec(){
 | 
				
			||||||
  QString findBoostLib(QString path, QString lib) const {
 | 
					        	QString s;
 | 
				
			||||||
    QString name;
 | 
							s = conf->getenv("QC_WITH_LIBBOOST_INC");
 | 
				
			||||||
    QDir libDir(path);
 | 
							if(!s.isEmpty()) {
 | 
				
			||||||
    QStringList filters;
 | 
								if(!conf->checkHeader(s, "boost/format.hpp")) {
 | 
				
			||||||
    filters << "libboost_"+lib+"*-mt*.so";
 | 
									return false;
 | 
				
			||||||
    QStringList result = libDir.entryList(filters, QDir::Files);
 | 
					      			}
 | 
				
			||||||
    if(!result.empty()) {
 | 
								if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) {
 | 
				
			||||||
      name = result.first().mid(3);
 | 
									return false;
 | 
				
			||||||
      // Remove .so
 | 
					      			}
 | 
				
			||||||
      name.chop(3);
 | 
								if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
 | 
				
			||||||
    } else {
 | 
									return false;
 | 
				
			||||||
      // Fall back to non -mt boost lib
 | 
					      			}
 | 
				
			||||||
      filters.clear();
 | 
								if(!conf->checkHeader(s, "boost/thread.hpp")) {
 | 
				
			||||||
      filters << "libboost_"+lib+"*.so";
 | 
									return false;
 | 
				
			||||||
      result = libDir.entryList(filters, QDir::Files);
 | 
					      			}
 | 
				
			||||||
      if(!result.empty()) {
 | 
							}else{
 | 
				
			||||||
        name = result.first().mid(3);
 | 
								QStringList sl;
 | 
				
			||||||
        // Remove .so
 | 
								sl << "/usr/include";
 | 
				
			||||||
        name.chop(3);
 | 
								sl << "/usr/local/include";
 | 
				
			||||||
      }
 | 
								bool found = false;
 | 
				
			||||||
    }
 | 
								foreach(s, sl){
 | 
				
			||||||
    return name;
 | 
									if(conf->checkHeader(s, "boost/format.hpp")){
 | 
				
			||||||
  }
 | 
										found = true;
 | 
				
			||||||
 | 
										break;
 | 
				
			||||||
  bool exec(){
 | 
									}
 | 
				
			||||||
    QStringList sl;
 | 
								}
 | 
				
			||||||
    QString s = conf->getenv("QC_WITH_LIBBOOST_INC");
 | 
								if(!found) {
 | 
				
			||||||
    if (!s.isEmpty())
 | 
									return false;
 | 
				
			||||||
      sl << s;
 | 
					          		}
 | 
				
			||||||
    sl << "/usr/include";
 | 
								if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) {
 | 
				
			||||||
    sl << "/usr/local/include";
 | 
									return false;
 | 
				
			||||||
    bool found = false;
 | 
					      			}
 | 
				
			||||||
    foreach (s, sl) {
 | 
								if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
 | 
				
			||||||
      if (conf->checkHeader(s, "boost/format.hpp")
 | 
									return false;
 | 
				
			||||||
#if LIBTORRENT_VERSION_MAJOR == 0 && LIBTORRENT_VERSION_MINOR < 16
 | 
					      			}
 | 
				
			||||||
          && conf->checkHeader(s, "boost/filesystem/path.hpp")
 | 
								if(!conf->checkHeader(s, "boost/thread.hpp")) {
 | 
				
			||||||
#endif
 | 
									return false;
 | 
				
			||||||
         ) {
 | 
					      			}
 | 
				
			||||||
        found = true;
 | 
							}
 | 
				
			||||||
        break;
 | 
							conf->addIncludePath(s);
 | 
				
			||||||
      }
 | 
							return true;
 | 
				
			||||||
    }
 | 
						}
 | 
				
			||||||
    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;
 | 
					 | 
				
			||||||
          break;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
      if(!found) {
 | 
					 | 
				
			||||||
        printf("Could not find boost %s library!\n", qPrintable(lib));
 | 
					 | 
				
			||||||
        return false;
 | 
					 | 
				
			||||||
      }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return true;
 | 
					 | 
				
			||||||
  }
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -24,7 +24,7 @@ public:
 | 
				
			|||||||
		QString version, libs, other;
 | 
							QString version, libs, other;
 | 
				
			||||||
		VersionMode mode = VersionMin;
 | 
							VersionMode mode = VersionMin;
 | 
				
			||||||
		if(conf->findPkgConfig("libnotify", mode, req_ver, &version, &incs, &libs, &other)) {
 | 
							if(conf->findPkgConfig("libnotify", mode, req_ver, &version, &incs, &libs, &other)) {
 | 
				
			||||||
			conf->addExtra("CONFIG += libnotify");
 | 
								conf->addDefine("WITH_LIBNOTIFY");
 | 
				
			||||||
			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())
 | 
								if(!libs.isEmpty())
 | 
				
			||||||
@@ -40,21 +40,10 @@ public:
 | 
				
			|||||||
			} else {
 | 
								} else {
 | 
				
			||||||
				return false;
 | 
									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 {
 | 
							} else {
 | 
				
			||||||
			return false;
 | 
								return false;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
 | 
							
 | 
				
			||||||
		return true;
 | 
							return true;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -13,12 +13,19 @@ public:
 | 
				
			|||||||
	bool exec(){
 | 
						bool exec(){
 | 
				
			||||||
		QStringList incs;
 | 
							QStringList incs;
 | 
				
			||||||
		QString req_ver = "0.14.4";
 | 
							QString req_ver = "0.14.4";
 | 
				
			||||||
 | 
							QString adv_ver = "0.15.0";
 | 
				
			||||||
		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. Some feature will be disabled because they require v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data());
 | 
				
			||||||
 | 
							else
 | 
				
			||||||
 | 
								conf->addDefine("LIBTORRENT_0_15");
 | 
				
			||||||
		return true;
 | 
							return true;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -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
									
									
									
									
									
								
							
							
						
						@@ -1,7 +1,6 @@
 | 
				
			|||||||
/*
 | 
					/*
 | 
				
			||||||
-----BEGIN QCMOD-----
 | 
					-----BEGIN QCMOD-----
 | 
				
			||||||
name: Qt >= 4.5
 | 
					name: Qt >= 4.4
 | 
				
			||||||
arg: enable-debug, Enable debug mode
 | 
					 | 
				
			||||||
arg: disable-gui, Disable qBittorrent Graphical user interface for headless running
 | 
					arg: disable-gui, Disable qBittorrent Graphical user interface for headless running
 | 
				
			||||||
-----END QCMOD-----
 | 
					-----END QCMOD-----
 | 
				
			||||||
*/
 | 
					*/
 | 
				
			||||||
@@ -9,28 +8,17 @@ 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.4"; }
 | 
				
			||||||
	QString shortname() const { return "Qt 4.5"; }
 | 
						QString shortname() const { return "Qt 4.4"; }
 | 
				
			||||||
	bool exec()
 | 
						bool exec()
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
                // NOX mode
 | 
					 | 
				
			||||||
		if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
 | 
							if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
 | 
				
			||||||
			conf->addExtra("CONFIG += nox");
 | 
								conf->addDefine("DISABLE_GUI");
 | 
				
			||||||
		}
 | 
							}	
 | 
				
			||||||
                // Debug mode
 | 
							if(QT_VERSION >= 0x040500) {
 | 
				
			||||||
                if(!conf->getenv("QC_ENABLE_DEBUG").isEmpty()) {
 | 
					                        conf->addDefine("QT_4_5");
 | 
				
			||||||
                  conf->addExtra("CONFIG -= release");
 | 
					 | 
				
			||||||
                  conf->addExtra("CONFIG += debug");
 | 
					 | 
				
			||||||
                } else {
 | 
					 | 
				
			||||||
                  conf->addExtra("CONFIG -= debug");
 | 
					 | 
				
			||||||
                  conf->addExtra("CONFIG += release");
 | 
					 | 
				
			||||||
                }
 | 
					                }
 | 
				
			||||||
                #ifdef Q_OS_FREEBSD
 | 
							return(QT_VERSION >= 0x040400);
 | 
				
			||||||
                  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;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
};
 | 
					 | 
				
			||||||
							
								
								
									
										927
									
								
								src/GUI.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -37,80 +37,83 @@
 | 
				
			|||||||
#include "ui_mainwindow.h"
 | 
					#include "ui_mainwindow.h"
 | 
				
			||||||
#include "qtorrenthandle.h"
 | 
					#include "qtorrenthandle.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
class QBtSession;
 | 
					enum TabIndex{TAB_TRANSFER, TAB_SEARCH, TAB_RSS};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					class Bittorrent;
 | 
				
			||||||
 | 
					class QTimer;
 | 
				
			||||||
class downloadFromURL;
 | 
					class downloadFromURL;
 | 
				
			||||||
class SearchEngine;
 | 
					class SearchEngine;
 | 
				
			||||||
 | 
					class QLocalServer;
 | 
				
			||||||
 | 
					class QCloseEvent;
 | 
				
			||||||
class RSSImp;
 | 
					class RSSImp;
 | 
				
			||||||
 | 
					class QShortcut;
 | 
				
			||||||
class about;
 | 
					class about;
 | 
				
			||||||
class options_imp;
 | 
					class options_imp;
 | 
				
			||||||
 | 
					class QTabWidget;
 | 
				
			||||||
class TransferListWidget;
 | 
					class TransferListWidget;
 | 
				
			||||||
class TransferListFiltersWidget;
 | 
					class TransferListFiltersWidget;
 | 
				
			||||||
 | 
					class QSplitter;
 | 
				
			||||||
class PropertiesWidget;
 | 
					class PropertiesWidget;
 | 
				
			||||||
class StatusBar;
 | 
					class StatusBar;
 | 
				
			||||||
class consoleDlg;
 | 
					 | 
				
			||||||
class about;
 | 
					 | 
				
			||||||
class TorrentCreatorDlg;
 | 
					 | 
				
			||||||
class downloadFromURL;
 | 
					 | 
				
			||||||
class HidableTabWidget;
 | 
					 | 
				
			||||||
class LineEdit;
 | 
					 | 
				
			||||||
class ExecutionLog;
 | 
					 | 
				
			||||||
class PowerManagement;
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
QT_BEGIN_NAMESPACE
 | 
					class GUI : public QMainWindow, private Ui::MainWindow{
 | 
				
			||||||
class QCloseEvent;
 | 
					 | 
				
			||||||
class QFileSystemWatcher;
 | 
					 | 
				
			||||||
class QShortcut;
 | 
					 | 
				
			||||||
class QSplitter;
 | 
					 | 
				
			||||||
class QTabWidget;
 | 
					 | 
				
			||||||
class QTimer;
 | 
					 | 
				
			||||||
QT_END_NAMESPACE
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
class MainWindow : public QMainWindow, private Ui::MainWindow{
 | 
					 | 
				
			||||||
  Q_OBJECT
 | 
					  Q_OBJECT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
public:
 | 
					private:
 | 
				
			||||||
  // Construct / Destruct
 | 
					  // Bittorrent
 | 
				
			||||||
  MainWindow(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
 | 
					  Bittorrent *BTSession;
 | 
				
			||||||
  ~MainWindow();
 | 
					  QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed?
 | 
				
			||||||
  // Methods
 | 
					  // GUI related
 | 
				
			||||||
  QWidget* getCurrentTabWidget() const;
 | 
					  QTimer *guiUpdater;
 | 
				
			||||||
  TransferListWidget* getTransferList() const { return transferList; }
 | 
					  QTabWidget *tabs;
 | 
				
			||||||
  QMenu* getTrayIconMenu();
 | 
					  StatusBar *status_bar;
 | 
				
			||||||
  PropertiesWidget *getProperties() const { return properties; }
 | 
					  QPointer<options_imp> options;
 | 
				
			||||||
 | 
					  QPointer<QSystemTrayIcon> systrayIcon;
 | 
				
			||||||
public slots:
 | 
					  QPointer<QTimer> systrayCreator;
 | 
				
			||||||
  void trackerAuthenticationRequired(const QTorrentHandle& h);
 | 
					  QMenu *myTrayIconMenu;
 | 
				
			||||||
  void setTabText(int index, QString text) const;
 | 
					  TransferListWidget *transferList;
 | 
				
			||||||
  void showNotificationBaloon(QString title, QString msg) const;
 | 
					  TransferListFiltersWidget *transferListFilters;
 | 
				
			||||||
  void downloadFromURLList(const QStringList& urls);
 | 
					  PropertiesWidget *properties;
 | 
				
			||||||
  void updateAltSpeedsBtn(bool alternative);
 | 
					  bool displaySpeedInTitle;
 | 
				
			||||||
  void updateNbTorrents();
 | 
					  bool force_exit;
 | 
				
			||||||
  void deleteBTSession();
 | 
					  // Keyboard shortcuts
 | 
				
			||||||
 | 
					  QShortcut *switchSearchShortcut;
 | 
				
			||||||
 | 
					  QShortcut *switchSearchShortcut2;
 | 
				
			||||||
 | 
					  QShortcut *switchTransferShortcut;
 | 
				
			||||||
 | 
					  QShortcut *switchRSSShortcut;
 | 
				
			||||||
 | 
					  // Widgets
 | 
				
			||||||
 | 
					  QAction *prioSeparator;
 | 
				
			||||||
 | 
					  QAction *prioSeparator2;
 | 
				
			||||||
 | 
					  QSplitter *hSplitter;
 | 
				
			||||||
 | 
					  QSplitter *vSplitter;
 | 
				
			||||||
 | 
					  // Search
 | 
				
			||||||
 | 
					  SearchEngine *searchEngine;
 | 
				
			||||||
 | 
					  // RSS
 | 
				
			||||||
 | 
					  QPointer<RSSImp> rssWidget;
 | 
				
			||||||
 | 
					  // Misc
 | 
				
			||||||
 | 
					  QLocalServer *localServer;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected slots:
 | 
					protected slots:
 | 
				
			||||||
  // GUI related slots
 | 
					  // GUI related slots
 | 
				
			||||||
  void dropEvent(QDropEvent *event);
 | 
					  void dropEvent(QDropEvent *event);
 | 
				
			||||||
  void dragEnterEvent(QDragEnterEvent *event);
 | 
					  void dragEnterEvent(QDragEnterEvent *event);
 | 
				
			||||||
  void toggleVisibility(QSystemTrayIcon::ActivationReason e = QSystemTrayIcon::Trigger);
 | 
					  void toggleVisibility(QSystemTrayIcon::ActivationReason e);
 | 
				
			||||||
  void on_actionAbout_triggered();
 | 
					  void on_actionAbout_triggered();
 | 
				
			||||||
  void on_actionCreate_torrent_triggered();
 | 
					  void on_actionCreate_torrent_triggered();
 | 
				
			||||||
  void on_actionWebsite_triggered() const;
 | 
					  void on_actionWebsite_triggered() const;
 | 
				
			||||||
  void on_actionBugReport_triggered() const;
 | 
					  void on_actionBugReport_triggered() const;
 | 
				
			||||||
 | 
					  void on_actionShow_console_triggered();
 | 
				
			||||||
 | 
					  void readParamsOnSocket();
 | 
				
			||||||
 | 
					  void acceptConnection();
 | 
				
			||||||
  void balloonClicked();
 | 
					  void balloonClicked();
 | 
				
			||||||
  void writeSettings();
 | 
					  void writeSettings();
 | 
				
			||||||
  void readSettings();
 | 
					  void readSettings();
 | 
				
			||||||
  void on_actionExit_triggered();
 | 
					  void on_actionExit_triggered();
 | 
				
			||||||
  void createTrayIcon();
 | 
					  void createTrayIcon();
 | 
				
			||||||
  void fullDiskError(const QTorrentHandle& h, QString msg) const;
 | 
					  void fullDiskError(QTorrentHandle& h, QString msg) const;
 | 
				
			||||||
  void handleDownloadFromUrlFailure(QString, QString) const;
 | 
					  void handleDownloadFromUrlFailure(QString, QString) const;
 | 
				
			||||||
  void createSystrayDelayed();
 | 
					  void createSystrayDelayed();
 | 
				
			||||||
  void tab_changed(int);
 | 
					  void tab_changed(int);
 | 
				
			||||||
  void on_actionLock_qBittorrent_triggered();
 | 
					 | 
				
			||||||
  void defineUILockPassword();
 | 
					 | 
				
			||||||
  bool unlockUI();
 | 
					 | 
				
			||||||
  void notifyOfUpdate(QString);
 | 
					 | 
				
			||||||
  void showConnectionSettings();
 | 
					 | 
				
			||||||
  void minimizeWindow();
 | 
					 | 
				
			||||||
  // Keyboard shortcuts
 | 
					  // Keyboard shortcuts
 | 
				
			||||||
  void createKeyboardShortcuts();
 | 
					  void createKeyboardShortcuts();
 | 
				
			||||||
  void displayTransferTab() const;
 | 
					  void displayTransferTab() const;
 | 
				
			||||||
@@ -123,90 +126,37 @@ protected slots:
 | 
				
			|||||||
  void on_actionOpen_triggered();
 | 
					  void on_actionOpen_triggered();
 | 
				
			||||||
  void updateGUI();
 | 
					  void updateGUI();
 | 
				
			||||||
  void loadPreferences(bool configure_session=true);
 | 
					  void loadPreferences(bool configure_session=true);
 | 
				
			||||||
  void processParams(const QString& params);
 | 
					 | 
				
			||||||
  void processParams(const QStringList& params);
 | 
					  void processParams(const QStringList& params);
 | 
				
			||||||
  void addTorrent(QString path);
 | 
					  void addTorrent(QString path);
 | 
				
			||||||
  void addUnauthenticatedTracker(const QPair<QTorrentHandle,QString> &tracker);
 | 
					  void addUnauthenticatedTracker(QPair<QTorrentHandle,QString> tracker);
 | 
				
			||||||
  void processDownloadedFiles(QString path, QString url);
 | 
					  void processDownloadedFiles(QString path, QString url);
 | 
				
			||||||
  void finishedTorrent(const QTorrentHandle& h) const;
 | 
					  void finishedTorrent(QTorrentHandle& h) const;
 | 
				
			||||||
  void askRecursiveTorrentDownloadConfirmation(const QTorrentHandle &h);
 | 
					 | 
				
			||||||
  // Options slots
 | 
					  // Options slots
 | 
				
			||||||
  void on_actionOptions_triggered();
 | 
					  void on_actionOptions_triggered();
 | 
				
			||||||
  void optionsSaved();
 | 
					  void optionsSaved();
 | 
				
			||||||
  // HTTP slots
 | 
					  // HTTP slots
 | 
				
			||||||
  void on_actionDownload_from_URL_triggered();
 | 
					  void on_actionDownload_from_URL_triggered();
 | 
				
			||||||
#if defined(Q_WS_WIN) || defined(Q_WS_MAC)
 | 
					
 | 
				
			||||||
  void handleUpdateCheckFinished(bool update_available, QString new_version);
 | 
					
 | 
				
			||||||
  void handleUpdateInstalled(QString error_msg);
 | 
					public slots:
 | 
				
			||||||
#endif
 | 
					  void trackerAuthenticationRequired(QTorrentHandle& h);
 | 
				
			||||||
 | 
					  void setTabText(int index, QString text) const;
 | 
				
			||||||
 | 
					  void showNotificationBaloon(QString title, QString msg) const;
 | 
				
			||||||
 | 
					  void downloadFromURLList(const QStringList& urls);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
protected:
 | 
					protected:
 | 
				
			||||||
  void closeEvent(QCloseEvent *);
 | 
					  void closeEvent(QCloseEvent *);
 | 
				
			||||||
  void showEvent(QShowEvent *);
 | 
					  void showEvent(QShowEvent *);
 | 
				
			||||||
  bool event(QEvent * event);
 | 
					  bool event(QEvent * event);
 | 
				
			||||||
  void displayRSSTab(bool enable);
 | 
					  void displayRSSTab(bool enable);
 | 
				
			||||||
  void displaySearchTab(bool enable);
 | 
					 | 
				
			||||||
 | 
					
 | 
				
			||||||
private:
 | 
					public:
 | 
				
			||||||
  QIcon getSystrayIcon() const;
 | 
					  // Construct / Destruct
 | 
				
			||||||
 | 
					  GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
 | 
				
			||||||
private:
 | 
					  ~GUI();
 | 
				
			||||||
  QFileSystemWatcher *executable_watcher;
 | 
					  // Methods
 | 
				
			||||||
  // Bittorrent
 | 
					  int getCurrentTabIndex() const;
 | 
				
			||||||
  QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed?
 | 
					  TransferListWidget* getTransferList() const { return transferList; }
 | 
				
			||||||
  // GUI related
 | 
					 | 
				
			||||||
  bool m_posInitialized;
 | 
					 | 
				
			||||||
  QTimer *guiUpdater;
 | 
					 | 
				
			||||||
  HidableTabWidget *tabs;
 | 
					 | 
				
			||||||
  StatusBar *status_bar;
 | 
					 | 
				
			||||||
  QPointer<options_imp> options;
 | 
					 | 
				
			||||||
  QPointer<consoleDlg> console;
 | 
					 | 
				
			||||||
  QPointer<about> aboutDlg;
 | 
					 | 
				
			||||||
  QPointer<TorrentCreatorDlg> createTorrentDlg;
 | 
					 | 
				
			||||||
  QPointer<downloadFromURL> downloadFromURLDialog;
 | 
					 | 
				
			||||||
  QPointer<QSystemTrayIcon> systrayIcon;
 | 
					 | 
				
			||||||
  QPointer<QTimer> systrayCreator;
 | 
					 | 
				
			||||||
  QPointer<QMenu> myTrayIconMenu;
 | 
					 | 
				
			||||||
  TransferListWidget *transferList;
 | 
					 | 
				
			||||||
  TransferListFiltersWidget *transferListFilters;
 | 
					 | 
				
			||||||
  PropertiesWidget *properties;
 | 
					 | 
				
			||||||
  bool displaySpeedInTitle;
 | 
					 | 
				
			||||||
  bool force_exit;
 | 
					 | 
				
			||||||
  bool ui_locked;
 | 
					 | 
				
			||||||
  LineEdit *search_filter;
 | 
					 | 
				
			||||||
  // Keyboard shortcuts
 | 
					 | 
				
			||||||
  QShortcut *switchSearchShortcut;
 | 
					 | 
				
			||||||
  QShortcut *switchSearchShortcut2;
 | 
					 | 
				
			||||||
  QShortcut *switchTransferShortcut;
 | 
					 | 
				
			||||||
  QShortcut *switchRSSShortcut;
 | 
					 | 
				
			||||||
  // Widgets
 | 
					 | 
				
			||||||
  QAction *prioSeparator;
 | 
					 | 
				
			||||||
  QAction *prioSeparatorMenu;
 | 
					 | 
				
			||||||
  QSplitter *hSplitter;
 | 
					 | 
				
			||||||
  QSplitter *vSplitter;
 | 
					 | 
				
			||||||
  // Search
 | 
					 | 
				
			||||||
  QPointer<SearchEngine> searchEngine;
 | 
					 | 
				
			||||||
  // RSS
 | 
					 | 
				
			||||||
  QPointer<RSSImp> rssWidget;
 | 
					 | 
				
			||||||
  // Execution Log
 | 
					 | 
				
			||||||
  QPointer<ExecutionLog> m_executionLog;
 | 
					 | 
				
			||||||
  // Power Management
 | 
					 | 
				
			||||||
  PowerManagement *m_pwr;
 | 
					 | 
				
			||||||
  QTimer *preventTimer;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
private slots:
 | 
					 | 
				
			||||||
    void on_actionSearch_engine_triggered();
 | 
					 | 
				
			||||||
    void on_actionRSS_Reader_triggered();
 | 
					 | 
				
			||||||
    void on_actionSpeed_in_title_bar_triggered();
 | 
					 | 
				
			||||||
    void on_actionTop_tool_bar_triggered();
 | 
					 | 
				
			||||||
    void on_action_Import_Torrent_triggered();
 | 
					 | 
				
			||||||
    void on_actionDonate_money_triggered();
 | 
					 | 
				
			||||||
    void on_actionExecution_Logs_triggered(bool checked);
 | 
					 | 
				
			||||||
    void on_actionAutoExit_qBittorrent_toggled(bool );
 | 
					 | 
				
			||||||
    void on_actionAutoSuspend_system_toggled(bool );
 | 
					 | 
				
			||||||
    void on_actionAutoShutdown_system_toggled(bool );
 | 
					 | 
				
			||||||
    // Check for active torrents and set preventing from suspend state
 | 
					 | 
				
			||||||
    void checkForActiveTorrents();
 | 
					 | 
				
			||||||
};
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#endif
 | 
					#endif
 | 
				
			||||||
| 
		 Before Width: | Height: | Size: 322 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/L.gif
									
									
									
									
									
								
							
							
						
						| 
		 Before Width: | Height: | Size: 66 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/downarrow.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 722 B  | 
| 
		 Before Width: | Height: | Size: 643 B  | 
| 
		 Before Width: | Height: | Size: 408 B  | 
| 
		 Before Width: | Height: | Size: 604 B  | 
| 
		 Before Width: | Height: | Size: 591 B  | 
| 
		 Before Width: | Height: | Size: 643 B  | 
| 
		 Before Width: | Height: | Size: 600 B  | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/flags/algeria.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| 
		 After Width: | Height: | Size: 473 B  | 
| 
		 Before Width: | Height: | Size: 497 B  |