Compare commits
	
		
			15 Commits
		
	
	
		
			release-2.
			...
			release-2.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
| 
						 | 
					e3f2d458d4 | ||
| 
						 | 
					94f754000f | ||
| 
						 | 
					67c7d257a3 | ||
| 
						 | 
					f6f62a01a9 | ||
| 
						 | 
					b759211af8 | ||
| 
						 | 
					26ce8ad19a | ||
| 
						 | 
					efa52b62b1 | ||
| 
						 | 
					0144611b9d | ||
| 
						 | 
					9292fdc647 | ||
| 
						 | 
					064306af17 | ||
| 
						 | 
					2401ae1d8a | ||
| 
						 | 
					fc42449d3a | ||
| 
						 | 
					b651fcffa0 | ||
| 
						 | 
					5ab38a9de8 | ||
| 
						 | 
					2afed45400 | 
							
								
								
									
										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
 | 
			
		||||
							
								
								
									
										27
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						@@ -2,7 +2,6 @@ Author:
 | 
			
		||||
* Christophe Dumez <chris@qbittorrent.org>
 | 
			
		||||
 | 
			
		||||
Contributors:
 | 
			
		||||
* Vladimir Golovnev <glassez@yandex.ru>
 | 
			
		||||
* Stefanos Antaris <santaris@csd.auth.gr>
 | 
			
		||||
* Mohammad Dib <mdib@qbittorrent.org>
 | 
			
		||||
* Mirco Chinelli <infinity89@fastwebmail.it>
 | 
			
		||||
@@ -13,7 +12,7 @@ Contributors:
 | 
			
		||||
* Silvan Scherrer <silvan.scherrer@aroa.ch>
 | 
			
		||||
 | 
			
		||||
Code from other projects:
 | 
			
		||||
* files src/qtsingleapp/* src/lineedit/*
 | 
			
		||||
* files src/qtsingleapp/*
 | 
			
		||||
  copyright: Nokia Corporation
 | 
			
		||||
  license: LGPL
 | 
			
		||||
 | 
			
		||||
@@ -37,9 +36,9 @@ Images Authors:
 | 
			
		||||
  url: http://www.oxygen-icons.org
 | 
			
		||||
 | 
			
		||||
* files: src/Icons/flags/*.png
 | 
			
		||||
  copyright: Mark James <mjames@gmail.com>
 | 
			
		||||
  license: Public Domain
 | 
			
		||||
  url: http://www.famfamfam.com
 | 
			
		||||
  copyright: Open Clip Art Library
 | 
			
		||||
  license: Creative Commons Public Domain Dedication
 | 
			
		||||
  url: http://www.openclipart.org
 | 
			
		||||
 | 
			
		||||
* files: src/Icons/skin/*.png
 | 
			
		||||
  files: src/menuicons/YYxYY/*.png
 | 
			
		||||
@@ -50,10 +49,6 @@ Images Authors:
 | 
			
		||||
  copyright: Greg Houston <gregory.houston@gmail.com>
 | 
			
		||||
  license: MIT
 | 
			
		||||
 | 
			
		||||
* file: src/Icons/skin/qbittorrent_mono*
 | 
			
		||||
  copyright: Daniel Eguren <deguren@gmail.com>
 | 
			
		||||
  license: LGPL
 | 
			
		||||
 | 
			
		||||
* file: src/search_engine/engines/btjunkie.png
 | 
			
		||||
  copyright: Downloaded from btjunkie.org
 | 
			
		||||
 | 
			
		||||
@@ -73,9 +68,6 @@ Translations authors:
 | 
			
		||||
* files: src/lang/*.ts
 | 
			
		||||
  copyright:
 | 
			
		||||
  - Arabic: SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com)
 | 
			
		||||
  - Armenian: Hrant Ohanyan (hrantohanyan@mail.am)
 | 
			
		||||
  - Basque: Xabier Aramendi (azpidatziak@gmail.com)
 | 
			
		||||
  - Belarusian: Mihas Varantsou (meequz@gmail.com)
 | 
			
		||||
  - Brazilian: Nick Marinho (nickmarinho@gmail.com)
 | 
			
		||||
  - Bulgarian: Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net)
 | 
			
		||||
  - Catalan: Francisco Luque Contreras (frannoe@ya.com)
 | 
			
		||||
@@ -84,20 +76,17 @@ Translations authors:
 | 
			
		||||
  - Croatian: Oliver Mucafir (oliver.untwist@gmail.com)
 | 
			
		||||
  - Czech: Jirka Vilim (web@tets.cz)
 | 
			
		||||
  - Danish: Mathias Nielsen (comoneo@gmail.com)
 | 
			
		||||
  - Dutch: Pieter Heyvaert (pieter_heyvaert@hotmail.com)
 | 
			
		||||
  - Dutch: Joost Schipper (heavyjoost@users.sourceforge.net)
 | 
			
		||||
  - English: Christophe Dumez (chris@qbittorrent.org)
 | 
			
		||||
  - Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net)
 | 
			
		||||
  - French: Christophe Dumez (chris@qbittorrent.org)
 | 
			
		||||
  - Galician: Marcos Lans (marcoslansgarza@gmail.com)
 | 
			
		||||
  - Georgian: Beqa Arabuli (arabulibeqa@yahoo.com)
 | 
			
		||||
  - German: Niels Hoffmann (zentralmaschine@users.sourceforge.net)
 | 
			
		||||
  - Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net) and Stephanos Antaris (santaris@csd.auth.gr)
 | 
			
		||||
  - Hungarian: Majoros Péter (majoros.j.p@t-online.hu)
 | 
			
		||||
  - Italian: Matteo Sechi (bu17714@gmail.com)
 | 
			
		||||
  - Japanese: Masato Hashimoto (cabezon.hashimoto@gmail.com)
 | 
			
		||||
  - Italian: Mirko Ferrari (mirkoferrari@gmail.com) and Ferraro Luciano (luciano.ferraro@gmail.com)
 | 
			
		||||
  - Japanese: Nardog (alphisation@gmail.com)
 | 
			
		||||
  - Korean: Jin Woo Sin (jin828sin@users.sourceforge.net)
 | 
			
		||||
  - Lithuanian: Naglis Jonaitis (njonaitis@gmail.com)
 | 
			
		||||
  - Norwegian: Tomaso
 | 
			
		||||
  - Norwegian: Lars-Erik Labori (hamil@users.sourceforge.net)
 | 
			
		||||
  - Polish: Mariusz Fik (fisiu@opensuse.org)
 | 
			
		||||
  - Portuguese: Nick Marinho (nickmarinho@gmail.com)
 | 
			
		||||
  - Romanian: Obada Denis (obadadenis@users.sourceforge.net)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										189
									
								
								Changelog
									
									
									
									
									
								
							
							
						
						@@ -1,184 +1,11 @@
 | 
			
		||||
* Sun May 20 - Christophe Dumez <chris@qbittorrent.org> - v2.9.9
 | 
			
		||||
    - BUGFIX: More reliable RSS feed parsing (closes #1001777)
 | 
			
		||||
    - BUGFIX: Better support for cookies in RSS
 | 
			
		||||
    - BUGFIX: Make sure show/hide text in tray icon menu is correct
 | 
			
		||||
    - COSMETIC: Improve style of left panel
 | 
			
		||||
    - COSMETIC: Never disable properties panel
 | 
			
		||||
    - COSMETIC: Make sure first tab is initially selected in options dialog
 | 
			
		||||
    - COSMETIC: Fix a few focus issues on Mac OS X
 | 
			
		||||
 | 
			
		||||
* Sat May 5 2012 - Christophe Dumez <chris@qbittorrent.org> - v2.9.8
 | 
			
		||||
    - BUGFIX: Various UI style fixes
 | 
			
		||||
    - BUGFIX: Fix compilation with gcc 4.7
 | 
			
		||||
    - BUGFIX: Fix possible compilation error with msvc (Windows)
 | 
			
		||||
    - BUGFIX: Fix compilation on OS/2
 | 
			
		||||
    - I18N: Update Italian translation
 | 
			
		||||
 | 
			
		||||
* Sun Mar 18 2012 - Christophe Dumez <chris@qbittorrent.org> - v2.9.7
 | 
			
		||||
    - BUGFIX: Fix important HTTP request parsing bug (Web UI)
 | 
			
		||||
 | 
			
		||||
* Sat Mar 17 2012 - Christophe Dumez <chris@qbittorrent.org> - v2.9.6
 | 
			
		||||
    - BUGFIX: Fix download first/last pieces state reporting
 | 
			
		||||
    - BUGFIX: Fix name of progress column in torrent content panel
 | 
			
		||||
    - BUGFIX: Disable system tray icon on Mac OS X
 | 
			
		||||
    - BUGFIX: RSS downloader should not ignore "Do not start automatically" rule (closes #946910)
 | 
			
		||||
    - BUGFIX: Fix DHT port setting in Web UI (Closes #952182)
 | 
			
		||||
    - 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
 | 
			
		||||
    - BUGFIX: Fix crash when disabling then reenabling RSS
 | 
			
		||||
    - BUGFIX: Fix duplicate torrent detection when adding a magnet link
 | 
			
		||||
    - BUGFIX: Fix import of new trackers when adding a torrent with same hash (Closes #747000)
 | 
			
		||||
    - BUGFIX: Fix possible redownload of torrents marked as read (Closes #927495)
 | 
			
		||||
    - BUGFIX: Properly remove RSS feed settings/history upon feed removal
 | 
			
		||||
 | 
			
		||||
* Sat Feb 18 2012 - Christophe Dumez <chris@qbittorrent.org> - v2.9.4
 | 
			
		||||
    - BUGFIX: qBittorrent does not handle redirection to relative URLs correctly (Closes #919905)
 | 
			
		||||
    - BUGFIX: Cmd+M minimizes main window on Mac OS X (Closes #928216)
 | 
			
		||||
    - BUGFIX: Cmd+Del removes torrents on Mac OS X (Closes #928852)
 | 
			
		||||
    - BUGFIX: Fix potential bug when moving single file torrents to tmp folder (closes #932861)
 | 
			
		||||
    - BUGFIX: Fix torrent import dialog layout (Closes #930932)
 | 
			
		||||
    - BUGFIX: Prevent log window buffer from filling up (Closes #929673)
 | 
			
		||||
    - I18N: Add Belarusian translation
 | 
			
		||||
 | 
			
		||||
* Thu Dec 29 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.9.3
 | 
			
		||||
    - BUGFIX: Fix btdigg plugin (Python3 support + torrent name in magnet links)
 | 
			
		||||
    - BUGFIX: Fix banning of IPv6 peers (Closes #885021)
 | 
			
		||||
    - BUGFIX: Fix torrent addition dialog layout problem (Closes #84650522)
 | 
			
		||||
    - BUGFIX: Do not report any progress for disabled files (Closes #56731485)
 | 
			
		||||
    - BUGFIX: Make torrent sorting case insensitive (Closes #857154)
 | 
			
		||||
    - BUGFIX: Improve Web UI usability of small devices
 | 
			
		||||
    - BUGFIX: Program updater: More reliable version detection / comparison
 | 
			
		||||
    - I18N: Add Georgian translation
 | 
			
		||||
 | 
			
		||||
* Sat Oct 29 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.9.2
 | 
			
		||||
    - BUGFIX: Fix mimimum dimensions for torrent addition dialog
 | 
			
		||||
    - BUGFIX: Remove dependency on boost-datetime
 | 
			
		||||
    - BUGFIX: Remove dependency on boost-filesystem (libtorrent v0.16.x)
 | 
			
		||||
 | 
			
		||||
* 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 Aug 17 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.3.1
 | 
			
		||||
    - BUGFIX: Fix compilation with gcc 4.5
 | 
			
		||||
    - BUGFIX: Fix about dialog layout
 | 
			
		||||
    - BUGFIX: Remember previously selected paths in torrent creation dialog
 | 
			
		||||
    - BUGFIX: Added missing right-click menu icon in Web UI
 | 
			
		||||
    - BUGFIX: Fix speed limit sliders initialization in Web UI
 | 
			
		||||
    - BUGFIX: Priority actions are only effective if the transfer list tab is displayed
 | 
			
		||||
    - BUGFIX: Fix possible folder watching issues on Windows and OS/2
 | 
			
		||||
 | 
			
		||||
* 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)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										14
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						@@ -10,23 +10,25 @@ qBittorrent - A BitTorrent client in C++ / Qt4
 | 
			
		||||
  will install and execute qBittorrent hopefully without any problems.
 | 
			
		||||
 | 
			
		||||
  Dependencies:
 | 
			
		||||
    - Qt >= 4.5.0 (libqtgui, libqtcore, libqtnetwork, libqtxml, libqtdbus/optional)
 | 
			
		||||
    - Qt >= 4.4.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
 | 
			
		||||
 | 
			
		||||
    - 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, compatible with v0.15.x)
 | 
			
		||||
        -> http://www.libtorrent.net
 | 
			
		||||
        Be careful: another library (the one used by rTorrent) uses a similar name.
 | 
			
		||||
 | 
			
		||||
    - libboost 1.34.x (libboost-filesystem°) + libasio
 | 
			
		||||
    - libboost 1.34.x (libboost-filesystem, libboost-thread, libboost-date-time) + libasio
 | 
			
		||||
      or
 | 
			
		||||
    - libboost >= 1.35.x (libboost-system, libboost-filesystem°)
 | 
			
		||||
      
 | 
			
		||||
    °libboost-filesystem is not needed if libtorrent-rasterbar >= v0.16.x is used
 | 
			
		||||
    - libboost >= 1.35.x (libboost-system, libboost-filesystem, libboost-thread, libboost-date-time)
 | 
			
		||||
 | 
			
		||||
    - python >= 2.3 (needed by search engine)
 | 
			
		||||
        * Run time only dependency
 | 
			
		||||
 | 
			
		||||
    - libnotify >= 0.4.2, glib-2.0 (optional)
 | 
			
		||||
        * Can be used for system notifications to replace standard Qt notifications
 | 
			
		||||
          so that it integrates better into the Desktop
 | 
			
		||||
 | 
			
		||||
    - geoip-database (optional)
 | 
			
		||||
        * If qBittorrent cannot find this database, it will try to resolve countries using the Internet but it will be a lot slower.
 | 
			
		||||
        * Run time only dependency
 | 
			
		||||
 
 | 
			
		||||
@@ -27,6 +27,7 @@ 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
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										174
									
								
								install.os2
									
									
									
									
									
								
							
							
						
						@@ -1,174 +0,0 @@
 | 
			
		||||
QBittorrent installation
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
0. CONTENTS OF THIS FILE
 | 
			
		||||
========================
 | 
			
		||||
 | 
			
		||||
1. INTRODUCTION
 | 
			
		||||
 | 
			
		||||
2. REQUIREMENTS
 | 
			
		||||
 | 
			
		||||
3. INSTALLATION
 | 
			
		||||
 | 
			
		||||
4. BUGREPORTS
 | 
			
		||||
 | 
			
		||||
5. CREDITS
 | 
			
		||||
 | 
			
		||||
6. SUPPORT AND DONATIONS
 | 
			
		||||
 | 
			
		||||
7. HISTORY
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
1. INTRODUCTION
 | 
			
		||||
===============
 | 
			
		||||
 | 
			
		||||
Welcome to QBittorrent port for OS/2 and eComStation.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
2. REQUIREMENTS
 | 
			
		||||
===============
 | 
			
		||||
 | 
			
		||||
The following requirements can be installed either by rpm or by zip files.
 | 
			
		||||
 | 
			
		||||
RPM Installation:
 | 
			
		||||
 | 
			
		||||
klibc
 | 
			
		||||
-----
 | 
			
		||||
 | 
			
		||||
  1. yum install libc
 | 
			
		||||
 | 
			
		||||
openssl 1.0
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
  1. yum install openssl
 | 
			
		||||
 | 
			
		||||
pthread
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
  1. yum install pthread
 | 
			
		||||
 | 
			
		||||
GCC4Core
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
  1. yum install libgcc
 | 
			
		||||
  2. yum install gcc-stack-protector
 | 
			
		||||
  3. yum install gcc-stdc++-shared-library
 | 
			
		||||
  4. yum install gcc-supc++-shared-library
 | 
			
		||||
 | 
			
		||||
Qt4 dll
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
  1. yum install libqt4
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
ZIP Installation:
 | 
			
		||||
 | 
			
		||||
klibc
 | 
			
		||||
-----
 | 
			
		||||
 | 
			
		||||
  1. Download klibc 0.6.4 or better (see http://svn.netlabs.org/libc for more information)
 | 
			
		||||
  2. Install the files to your libpath eg x:\ecs\dll
 | 
			
		||||
 | 
			
		||||
openssl 1.0
 | 
			
		||||
-----------
 | 
			
		||||
 | 
			
		||||
  1. Download the zip file from http://rpm.netlabs.org/release/00/zip
 | 
			
		||||
  2. Install the files to your libpath eg. x:\ecs\dll
 | 
			
		||||
 | 
			
		||||
pthread
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
  1. Download pthread 2012-03-13 or better from http://rpm.netlabs.org/release/00/zip
 | 
			
		||||
  2. Install the files to your libpath eg. x:\ecs\dll
 | 
			
		||||
 | 
			
		||||
GCC4Core
 | 
			
		||||
--------
 | 
			
		||||
 | 
			
		||||
  1. Download GCC4Core 1.2.1 or better from http://ftp.netlabs.org/pub/gcc
 | 
			
		||||
  2. Install the files to your libpath eg. x:\ecs\dll
 | 
			
		||||
 | 
			
		||||
Qt4 dll
 | 
			
		||||
-------
 | 
			
		||||
 | 
			
		||||
  1. Download Qt4 4.7.3 or better (see http://svn.netlabs.org/qt4 for more information)
 | 
			
		||||
  2. Install the files according to the readme
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
3. INSTALLATION
 | 
			
		||||
===============
 | 
			
		||||
          
 | 
			
		||||
To install QBittorrent, do the following:
 | 
			
		||||
 | 
			
		||||
  1. Create a directory for QBittorrent.
 | 
			
		||||
  2. Extract the QBittorrent package to the new directory.
 | 
			
		||||
  3. Create a WPS object for QBittorrent.exe.
 | 
			
		||||
  4. Start QBittorrent
 | 
			
		||||
  5. Happy torrenting
 | 
			
		||||
  
 | 
			
		||||
 | 
			
		||||
4. BUGREPORTS
 | 
			
		||||
=============
 | 
			
		||||
 | 
			
		||||
Please create bugreports at http://svn.netlabs.org/qtapps
 | 
			
		||||
Only bug reports with a reproducable bug are accepted. :-)
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
5. CREDITS
 | 
			
		||||
==========
 | 
			
		||||
 | 
			
		||||
The port was done by:
 | 
			
		||||
 | 
			
		||||
Silvan Scherrer aka _diver
 | 
			
		||||
 | 
			
		||||
Thanks go to:
 | 
			
		||||
 | 
			
		||||
  * Dmitry A. Kuminov
 | 
			
		||||
 | 
			
		||||
They either helped me when I had some nasty questions or did some testing for
 | 
			
		||||
me.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
6. SUPPORT AND DONATIONS
 | 
			
		||||
========================
 | 
			
		||||
 | 
			
		||||
QBittorrent port is based on volunteer work. If you would like to support further
 | 
			
		||||
development, you can do so in one of the following ways:
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
  * Donate to the Qt4 project: see qt.netlabs.org for more information
 | 
			
		||||
 | 
			
		||||
  * Contribute to the project: Besides actual development, this also includes
 | 
			
		||||
    maintaining the documentation and the project web site as well as help
 | 
			
		||||
    for users.
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
7. HISTORY
 | 
			
		||||
==========
 | 
			
		||||
 | 
			
		||||
2012-03-15
 | 
			
		||||
 | 
			
		||||
  * updated to 2.9.5 code level of QBittorrent
 | 
			
		||||
 | 
			
		||||
2011-09-26
 | 
			
		||||
 | 
			
		||||
  * updated to 2.8.5 code level of QBittorrent
 | 
			
		||||
  * updated to Qt 4.7.3
 | 
			
		||||
 | 
			
		||||
2011-06-20
 | 
			
		||||
 | 
			
		||||
  * updated to 2.7.3 code level of QBittorrent
 | 
			
		||||
  * updated libtorrent to 0.15.6 level
 | 
			
		||||
 | 
			
		||||
2010-12-23
 | 
			
		||||
 | 
			
		||||
  * updated to 2.5.2 code level of QBittorrent
 | 
			
		||||
 | 
			
		||||
2010-11-22
 | 
			
		||||
 | 
			
		||||
  * updated to 2.4.11 code level of QBittorrent
 | 
			
		||||
 | 
			
		||||
2010-xx-xx
 | 
			
		||||
 | 
			
		||||
  * initial port
 | 
			
		||||
 | 
			
		||||
							
								
								
									
										31
									
								
								macxconf.pri
									
									
									
									
									
								
							
							
						
						@@ -1,31 +0,0 @@
 | 
			
		||||
PREFIX = /usr/local
 | 
			
		||||
BINDIR = /usr/local/bin
 | 
			
		||||
DATADIR = /usr/local/share
 | 
			
		||||
 | 
			
		||||
# Use pkg-config to get all necessary libtorrent DEFINES
 | 
			
		||||
CONFIG += link_pkgconfig
 | 
			
		||||
PKGCONFIG += libtorrent-rasterbar
 | 
			
		||||
DEFINES += BOOST_ASIO_DYN_LINK
 | 
			
		||||
 | 
			
		||||
# Special include/libs paths (macports)
 | 
			
		||||
INCLUDEPATH += /usr/include/openssl /usr/include /opt/local/include/boost /opt/local/include
 | 
			
		||||
LIBS += -L/opt/local/lib
 | 
			
		||||
 | 
			
		||||
# OpenSSL lib
 | 
			
		||||
LIBS += -lssl -lcrypto
 | 
			
		||||
# Boost system lib
 | 
			
		||||
LIBS += -lboost_system-mt
 | 
			
		||||
# Boost filesystem lib (Not needed for libtorrent >= 0.16.0)
 | 
			
		||||
LIBS += -lboost_filesystem-mt
 | 
			
		||||
# Carbon
 | 
			
		||||
LIBS += -framework Carbon -framework IOKit
 | 
			
		||||
 | 
			
		||||
document_icon.path = Contents/Resources
 | 
			
		||||
document_icon.files = Icons/qBitTorrentDocument.icns
 | 
			
		||||
 | 
			
		||||
QMAKE_BUNDLE_DATA += document_icon
 | 
			
		||||
ICON = Icons/qbittorrent_mac.icns
 | 
			
		||||
QMAKE_INFO_PLIST = Info.plist
 | 
			
		||||
 | 
			
		||||
DEFINES += WITH_GEOIP_EMBEDDED
 | 
			
		||||
message("On Mac OS X, GeoIP database must be embedded.")
 | 
			
		||||
							
								
								
									
										18
									
								
								os2conf.pri
									
									
									
									
									
								
							
							
						
						@@ -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,17 +2,3 @@ TEMPLATE = subdirs
 | 
			
		||||
 | 
			
		||||
SUBDIRS += src
 | 
			
		||||
 | 
			
		||||
include(version.pri)
 | 
			
		||||
 | 
			
		||||
# Dist
 | 
			
		||||
dist.commands += rm -fR ../$${PROJECT_NAME}-$${PROJECT_VERSION}/ &&
 | 
			
		||||
dist.commands += git clone . ../$${PROJECT_NAME}-$${PROJECT_VERSION} &&
 | 
			
		||||
dist.commands += rm -fR ../$${PROJECT_NAME}-$${PROJECT_VERSION}/.git &&
 | 
			
		||||
dist.commands += rm -f ../$${PROJECT_NAME}-$${PROJECT_VERSION}/.gitignore &&
 | 
			
		||||
dist.commands += cd .. &&
 | 
			
		||||
dist.commands += tar czf $${PROJECT_NAME}-$${PROJECT_VERSION}.tar.gz $${PROJECT_NAME}-$${PROJECT_VERSION} &&
 | 
			
		||||
dist.commands += tar cf $${PROJECT_NAME}-$${PROJECT_VERSION}.tar $${PROJECT_NAME}-$${PROJECT_VERSION} &&
 | 
			
		||||
dist.commands += xz -f $${PROJECT_NAME}-$${PROJECT_VERSION}.tar &&
 | 
			
		||||
dist.commands += rm -fR $${PROJECT_NAME}-$${PROJECT_VERSION}
 | 
			
		||||
 | 
			
		||||
QMAKE_EXTRA_TARGETS += dist
 | 
			
		||||
 
 | 
			
		||||
@@ -6,8 +6,6 @@
 | 
			
		||||
  <dep type='qt4'>
 | 
			
		||||
    <required/>
 | 
			
		||||
  </dep>
 | 
			
		||||
  <dep type='qt-dbus'>
 | 
			
		||||
  </dep>
 | 
			
		||||
  <dep type='pkg-config'>
 | 
			
		||||
    <required/>
 | 
			
		||||
  </dep>
 | 
			
		||||
@@ -17,9 +15,10 @@
 | 
			
		||||
  <dep type='libboost'>
 | 
			
		||||
    <required/>
 | 
			
		||||
  </dep>
 | 
			
		||||
  <dep type='libnotify'>
 | 
			
		||||
  </dep>
 | 
			
		||||
  <dep type='geoip-database'>
 | 
			
		||||
  </dep>
 | 
			
		||||
  <dep type='qtsingleapplication'>
 | 
			
		||||
    <required/>
 | 
			
		||||
  </dep>
 | 
			
		||||
</qconf>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										123
									
								
								qcm/libboost.qcm
									
									
									
									
									
								
							
							
						
						@@ -6,15 +6,12 @@ arg: with-libboost-lib=[path], Path to libboost library files
 | 
			
		||||
-----END QCMOD-----
 | 
			
		||||
*/
 | 
			
		||||
#include <boost/version.hpp>
 | 
			
		||||
#include <libtorrent/version.hpp>
 | 
			
		||||
 | 
			
		||||
class qc_libboost : public ConfObj
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
  qc_libboost(Conf *c) : ConfObj(c) {}
 | 
			
		||||
  QString name() const { return "libboost"; }
 | 
			
		||||
  QString shortname() const { return "libboost"; }
 | 
			
		||||
 | 
			
		||||
	qc_libboost(Conf *c) : ConfObj(c) {}
 | 
			
		||||
	QString name() const { return "libboost"; }
 | 
			
		||||
	QString shortname() const { return "libboost"; }
 | 
			
		||||
  QString findBoostLib(QString path, QString lib) const {
 | 
			
		||||
    QString name;
 | 
			
		||||
    QDir libDir(path);
 | 
			
		||||
@@ -38,60 +35,84 @@ public:
 | 
			
		||||
    }
 | 
			
		||||
    return name;
 | 
			
		||||
  }
 | 
			
		||||
 | 
			
		||||
  bool exec(){
 | 
			
		||||
    QStringList sl;
 | 
			
		||||
    QString s = conf->getenv("QC_WITH_LIBBOOST_INC");
 | 
			
		||||
    if (!s.isEmpty())
 | 
			
		||||
      sl << s;
 | 
			
		||||
    sl << "/usr/include";
 | 
			
		||||
    sl << "/usr/local/include";
 | 
			
		||||
    bool found = false;
 | 
			
		||||
    foreach (s, sl) {
 | 
			
		||||
      if (conf->checkHeader(s, "boost/format.hpp")
 | 
			
		||||
#if LIBTORRENT_VERSION_MAJOR == 0 && LIBTORRENT_VERSION_MINOR < 16
 | 
			
		||||
          && conf->checkHeader(s, "boost/filesystem/path.hpp")
 | 
			
		||||
#endif
 | 
			
		||||
         ) {
 | 
			
		||||
        found = true;
 | 
			
		||||
        break;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    if (!found)
 | 
			
		||||
      return false;
 | 
			
		||||
 | 
			
		||||
    conf->addIncludePath(s);
 | 
			
		||||
 | 
			
		||||
    // Find library
 | 
			
		||||
    s = conf->getenv("QC_WITH_LIBBOOST_LIB");
 | 
			
		||||
	bool exec(){
 | 
			
		||||
        	QString s;
 | 
			
		||||
		s = conf->getenv("QC_WITH_LIBBOOST_INC");
 | 
			
		||||
		if(!s.isEmpty()) {
 | 
			
		||||
			if(!conf->checkHeader(s, "boost/format.hpp")) {
 | 
			
		||||
				return false;
 | 
			
		||||
      			}
 | 
			
		||||
			if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) {
 | 
			
		||||
				return false;
 | 
			
		||||
      			}
 | 
			
		||||
			if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
 | 
			
		||||
				return false;
 | 
			
		||||
      			}
 | 
			
		||||
			if(!conf->checkHeader(s, "boost/thread.hpp")) {
 | 
			
		||||
				return false;
 | 
			
		||||
      			}
 | 
			
		||||
		}else{
 | 
			
		||||
			QStringList sl;
 | 
			
		||||
			sl << "/usr/include";
 | 
			
		||||
			sl << "/usr/local/include";
 | 
			
		||||
			bool found = false;
 | 
			
		||||
			foreach(s, sl){
 | 
			
		||||
				if(conf->checkHeader(s, "boost/format.hpp")){
 | 
			
		||||
					found = true;
 | 
			
		||||
					break;
 | 
			
		||||
				}
 | 
			
		||||
			}
 | 
			
		||||
			if(!found) {
 | 
			
		||||
				return false;
 | 
			
		||||
          		}
 | 
			
		||||
			if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) {
 | 
			
		||||
				return false;
 | 
			
		||||
      			}
 | 
			
		||||
			if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
 | 
			
		||||
				return false;
 | 
			
		||||
      			}
 | 
			
		||||
			if(!conf->checkHeader(s, "boost/thread.hpp")) {
 | 
			
		||||
				return false;
 | 
			
		||||
      			}
 | 
			
		||||
		}
 | 
			
		||||
		conf->addIncludePath(s);
 | 
			
		||||
		// 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";
 | 
			
		||||
    if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
 | 
			
		||||
      // Not required by nox
 | 
			
		||||
      required_libs << "filesystem" << "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()) {
 | 
			
		||||
      if(!s.isEmpty()) {
 | 
			
		||||
        QString detected_name = findBoostLib(s, lib);
 | 
			
		||||
        if(detected_name.isEmpty()) {
 | 
			
		||||
          printf("Could not find boost %s library!\n", qPrintable(lib));
 | 
			
		||||
          return false;
 | 
			
		||||
        } else {
 | 
			
		||||
          conf->addLib("-l"+detected_name);
 | 
			
		||||
          found = true;
 | 
			
		||||
          break;
 | 
			
		||||
        }
 | 
			
		||||
      } else {
 | 
			
		||||
        bool found = false;
 | 
			
		||||
        foreach(const QString& libDir, libDirs) {
 | 
			
		||||
          QString detected_name = findBoostLib(libDir, lib);
 | 
			
		||||
          if(!detected_name.isEmpty()) {
 | 
			
		||||
            conf->addLib("-l"+detected_name);
 | 
			
		||||
            found = true;
 | 
			
		||||
            break;
 | 
			
		||||
          }
 | 
			
		||||
        }
 | 
			
		||||
        if(!found) {
 | 
			
		||||
          printf("Could not find boost %s library!\n", qPrintable(lib));
 | 
			
		||||
          return false;
 | 
			
		||||
        }
 | 
			
		||||
      }
 | 
			
		||||
      if(!found) {
 | 
			
		||||
        printf("Could not find boost %s library!\n", qPrintable(lib));
 | 
			
		||||
        return false;
 | 
			
		||||
      }
 | 
			
		||||
    }
 | 
			
		||||
    return true;
 | 
			
		||||
  }
 | 
			
		||||
		return true;
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -24,7 +24,7 @@ public:
 | 
			
		||||
		QString version, libs, other;
 | 
			
		||||
		VersionMode mode = VersionMin;
 | 
			
		||||
		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)
 | 
			
		||||
				conf->addIncludePath(incs[n]);
 | 
			
		||||
			if(!libs.isEmpty())
 | 
			
		||||
 
 | 
			
		||||
@@ -19,6 +19,9 @@ public:
 | 
			
		||||
			return false;
 | 
			
		||||
		for(int n = 0; n < incs.count(); ++n)
 | 
			
		||||
			conf->addIncludePath(incs[n]);
 | 
			
		||||
		if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
 | 
			
		||||
  		  conf->addLib("-lcrypto");
 | 
			
		||||
                }
 | 
			
		||||
		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;
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										28
									
								
								qcm/qt4.qcm
									
									
									
									
									
								
							
							
						
						@@ -1,7 +1,6 @@
 | 
			
		||||
/*
 | 
			
		||||
-----BEGIN QCMOD-----
 | 
			
		||||
name: Qt >= 4.5
 | 
			
		||||
arg: enable-debug, Enable debug mode
 | 
			
		||||
name: Qt >= 4.4
 | 
			
		||||
arg: disable-gui, Disable qBittorrent Graphical user interface for headless running
 | 
			
		||||
-----END QCMOD-----
 | 
			
		||||
*/
 | 
			
		||||
@@ -9,28 +8,13 @@ class qc_qt4 : public ConfObj
 | 
			
		||||
{
 | 
			
		||||
public:
 | 
			
		||||
	qc_qt4(Conf *c) : ConfObj(c) {}
 | 
			
		||||
	QString name() const { return "Qt >= 4.5"; }
 | 
			
		||||
	QString shortname() const { return "Qt 4.5"; }
 | 
			
		||||
	QString name() const { return "Qt >= 4.4"; }
 | 
			
		||||
	QString shortname() const { return "Qt 4.4"; }
 | 
			
		||||
	bool exec()
 | 
			
		||||
	{
 | 
			
		||||
                // NOX mode
 | 
			
		||||
		if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
 | 
			
		||||
			conf->addExtra("CONFIG += nox");
 | 
			
		||||
		}
 | 
			
		||||
                // Debug mode
 | 
			
		||||
                if(!conf->getenv("QC_ENABLE_DEBUG").isEmpty()) {
 | 
			
		||||
                  conf->addExtra("CONFIG -= release");
 | 
			
		||||
                  conf->addExtra("CONFIG += debug");
 | 
			
		||||
                } else {
 | 
			
		||||
                  conf->addExtra("CONFIG -= debug");
 | 
			
		||||
                  conf->addExtra("CONFIG += release");
 | 
			
		||||
                }
 | 
			
		||||
                #ifdef Q_OS_FREEBSD
 | 
			
		||||
                  conf->addLib("-lexecinfo");
 | 
			
		||||
                  conf->addExtra("MANPREFIX = $$PREFIX");
 | 
			
		||||
                #else
 | 
			
		||||
                  conf->addExtra("MANPREFIX = $$PREFIX/share"); 
 | 
			
		||||
                #endif
 | 
			
		||||
		return(QT_VERSION >= 0x040500);
 | 
			
		||||
			conf->addDefine("DISABLE_GUI");
 | 
			
		||||
		}	
 | 
			
		||||
		return(QT_VERSION >= 0x040400);
 | 
			
		||||
	}
 | 
			
		||||
};
 | 
			
		||||
 
 | 
			
		||||
@@ -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;
 | 
			
		||||
        }
 | 
			
		||||
};
 | 
			
		||||
							
								
								
									
										1102
									
								
								src/GUI.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						@@ -37,81 +37,66 @@
 | 
			
		||||
#include "ui_mainwindow.h"
 | 
			
		||||
#include "qtorrenthandle.h"
 | 
			
		||||
 | 
			
		||||
class QBtSession;
 | 
			
		||||
class Bittorrent;
 | 
			
		||||
class QTimer;
 | 
			
		||||
class downloadFromURL;
 | 
			
		||||
class SearchEngine;
 | 
			
		||||
class QCloseEvent;
 | 
			
		||||
class RSSImp;
 | 
			
		||||
class QShortcut;
 | 
			
		||||
class about;
 | 
			
		||||
class options_imp;
 | 
			
		||||
class QTabWidget;
 | 
			
		||||
class TransferListWidget;
 | 
			
		||||
class TransferListFiltersWidget;
 | 
			
		||||
class QSplitter;
 | 
			
		||||
class PropertiesWidget;
 | 
			
		||||
class StatusBar;
 | 
			
		||||
class consoleDlg;
 | 
			
		||||
class about;
 | 
			
		||||
class TorrentCreatorDlg;
 | 
			
		||||
class createtorrent;
 | 
			
		||||
class downloadFromURL;
 | 
			
		||||
class HidableTabWidget;
 | 
			
		||||
class LineEdit;
 | 
			
		||||
class ExecutionLog;
 | 
			
		||||
class PowerManagement;
 | 
			
		||||
 | 
			
		||||
QT_BEGIN_NAMESPACE
 | 
			
		||||
class QCloseEvent;
 | 
			
		||||
class QFileSystemWatcher;
 | 
			
		||||
class QShortcut;
 | 
			
		||||
class QSplitter;
 | 
			
		||||
class QTabWidget;
 | 
			
		||||
class QTimer;
 | 
			
		||||
QT_END_NAMESPACE
 | 
			
		||||
 | 
			
		||||
class MainWindow : public QMainWindow, private Ui::MainWindow{
 | 
			
		||||
class GUI : public QMainWindow, private Ui::MainWindow{
 | 
			
		||||
  Q_OBJECT
 | 
			
		||||
 | 
			
		||||
public:
 | 
			
		||||
  // Construct / Destruct
 | 
			
		||||
  MainWindow(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
 | 
			
		||||
  ~MainWindow();
 | 
			
		||||
  GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
 | 
			
		||||
  ~GUI();
 | 
			
		||||
  // Methods
 | 
			
		||||
  QWidget* getCurrentTabWidget() const;
 | 
			
		||||
  TransferListWidget* getTransferList() const { return transferList; }
 | 
			
		||||
  QMenu* getTrayIconMenu();
 | 
			
		||||
  PropertiesWidget *getProperties() const { return properties; }
 | 
			
		||||
 | 
			
		||||
public slots:
 | 
			
		||||
  void trackerAuthenticationRequired(const QTorrentHandle& h);
 | 
			
		||||
  void trackerAuthenticationRequired(QTorrentHandle& h);
 | 
			
		||||
  void setTabText(int index, QString text) const;
 | 
			
		||||
  void showNotificationBaloon(QString title, QString msg) const;
 | 
			
		||||
  void downloadFromURLList(const QStringList& urls);
 | 
			
		||||
  void updateAltSpeedsBtn(bool alternative);
 | 
			
		||||
  void updateNbTorrents();
 | 
			
		||||
  void deleteBTSession();
 | 
			
		||||
  void updateNbTorrents(unsigned int nb_downloading, unsigned int nb_seeding, unsigned int nb_active, unsigned int nb_inactive, unsigned int nb_paused);
 | 
			
		||||
 | 
			
		||||
protected slots:
 | 
			
		||||
  // GUI related slots
 | 
			
		||||
  void dropEvent(QDropEvent *event);
 | 
			
		||||
  void dragEnterEvent(QDragEnterEvent *event);
 | 
			
		||||
  void toggleVisibility(QSystemTrayIcon::ActivationReason e = QSystemTrayIcon::Trigger);
 | 
			
		||||
  void toggleVisibility(QSystemTrayIcon::ActivationReason e);
 | 
			
		||||
  void on_actionAbout_triggered();
 | 
			
		||||
  void on_actionCreate_torrent_triggered();
 | 
			
		||||
  void on_actionWebsite_triggered() const;
 | 
			
		||||
  void on_actionBugReport_triggered() const;
 | 
			
		||||
  void on_actionShow_console_triggered();
 | 
			
		||||
  void balloonClicked();
 | 
			
		||||
  void writeSettings();
 | 
			
		||||
  void readSettings();
 | 
			
		||||
  void on_actionExit_triggered();
 | 
			
		||||
  void createTrayIcon();
 | 
			
		||||
  void fullDiskError(const QTorrentHandle& h, QString msg) const;
 | 
			
		||||
  void fullDiskError(QTorrentHandle& h, QString msg) const;
 | 
			
		||||
  void handleDownloadFromUrlFailure(QString, QString) const;
 | 
			
		||||
  void createSystrayDelayed();
 | 
			
		||||
  void tab_changed(int);
 | 
			
		||||
  void on_actionLock_qBittorrent_triggered();
 | 
			
		||||
  void defineUILockPassword();
 | 
			
		||||
  bool unlockUI();
 | 
			
		||||
  void notifyOfUpdate(QString);
 | 
			
		||||
  void showConnectionSettings();
 | 
			
		||||
  void minimizeWindow();
 | 
			
		||||
  void updateTrayIconMenu();
 | 
			
		||||
  // Keyboard shortcuts
 | 
			
		||||
  void createKeyboardShortcuts();
 | 
			
		||||
  void displayTransferTab() const;
 | 
			
		||||
@@ -129,17 +114,13 @@ protected slots:
 | 
			
		||||
  void addTorrent(QString path);
 | 
			
		||||
  void addUnauthenticatedTracker(const QPair<QTorrentHandle,QString> &tracker);
 | 
			
		||||
  void processDownloadedFiles(QString path, QString url);
 | 
			
		||||
  void finishedTorrent(const QTorrentHandle& h) const;
 | 
			
		||||
  void askRecursiveTorrentDownloadConfirmation(const QTorrentHandle &h);
 | 
			
		||||
  void finishedTorrent(QTorrentHandle& h) const;
 | 
			
		||||
  void askRecursiveTorrentDownloadConfirmation(QTorrentHandle &h);
 | 
			
		||||
  // Options slots
 | 
			
		||||
  void on_actionOptions_triggered();
 | 
			
		||||
  void optionsSaved();
 | 
			
		||||
  // HTTP slots
 | 
			
		||||
  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);
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
protected:
 | 
			
		||||
  void closeEvent(QCloseEvent *);
 | 
			
		||||
@@ -149,21 +130,17 @@ protected:
 | 
			
		||||
  void displaySearchTab(bool enable);
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
  QIcon getSystrayIcon() const;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
  QFileSystemWatcher *executable_watcher;
 | 
			
		||||
  // Bittorrent
 | 
			
		||||
  Bittorrent *BTSession;
 | 
			
		||||
  QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed?
 | 
			
		||||
  // 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<createtorrent> createTorrentDlg;
 | 
			
		||||
  QPointer<downloadFromURL> downloadFromURLDialog;
 | 
			
		||||
  QPointer<QSystemTrayIcon> systrayIcon;
 | 
			
		||||
  QPointer<QTimer> systrayCreator;
 | 
			
		||||
@@ -173,8 +150,6 @@ private:
 | 
			
		||||
  PropertiesWidget *properties;
 | 
			
		||||
  bool displaySpeedInTitle;
 | 
			
		||||
  bool force_exit;
 | 
			
		||||
  bool ui_locked;
 | 
			
		||||
  LineEdit *search_filter;
 | 
			
		||||
  // Keyboard shortcuts
 | 
			
		||||
  QShortcut *switchSearchShortcut;
 | 
			
		||||
  QShortcut *switchSearchShortcut2;
 | 
			
		||||
@@ -182,32 +157,19 @@ private:
 | 
			
		||||
  QShortcut *switchRSSShortcut;
 | 
			
		||||
  // Widgets
 | 
			
		||||
  QAction *prioSeparator;
 | 
			
		||||
  QAction *prioSeparatorMenu;
 | 
			
		||||
  QAction *prioSeparator2;
 | 
			
		||||
  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
 | 
			
		||||
							
								
								
									
										
											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  | 
| 
		 Before Width: | Height: | Size: 488 B  | 
| 
		 Before Width: | Height: | Size: 428 B  |