Compare commits
	
		
			20 Commits
		
	
	
		
			release-3.
			...
			release-2.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 42574242ef | ||
|   | d5c174a6f8 | ||
|   | 173999e504 | ||
|   | 1ed928bc39 | ||
|   | b85d51ba79 | ||
|   | 779b53722b | ||
|   | 76780c4c46 | ||
|   | da74f24a71 | ||
|   | 01c56865db | ||
|   | b541c9fa4c | ||
|   | aac0fbcbe4 | ||
|   | b315551edd | ||
|   | 58a885cb87 | ||
|   | d19282285c | ||
|   | e0d8ca39a5 | ||
|   | ec3169c9b0 | ||
|   | 7bfd7e9cda | ||
|   | 459bb8c51d | ||
|   | 9159a9f25d | ||
|   | 8ea8f8a9f7 | 
							
								
								
									
										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 |  | ||||||
							
								
								
									
										47
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						| @@ -2,29 +2,16 @@ 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 | ||||||
|  |  | ||||||
| * files src/search_engine/socks.py |  | ||||||
|   copyright: Dan Haim <negativeiq@users.sourceforge.net> |  | ||||||
|   license: BSD |  | ||||||
|  |  | ||||||
| Images Authors: | Images Authors: | ||||||
| * files: src/Icons/*.png | * files: src/Icons/*.png | ||||||
|   copyright: Gnome Icon Theme |   copyright: Gnome Icon Theme | ||||||
| @@ -37,9 +24,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 +37,6 @@ Images Authors: | |||||||
|   copyright: Greg Houston <gregory.houston@gmail.com> |   copyright: Greg Houston <gregory.houston@gmail.com> | ||||||
|   license: MIT |   license: MIT | ||||||
|  |  | ||||||
| * file: src/Icons/skin/qbittorrent_mono* |  | ||||||
|   copyright: Daniel Eguren <deguren@gmail.com> |  | ||||||
|   license: LGPL |  | ||||||
|  |  | ||||||
| * file: src/search_engine/engines/btjunkie.png | * file: src/search_engine/engines/btjunkie.png | ||||||
|   copyright: Downloaded from btjunkie.org |   copyright: Downloaded from btjunkie.org | ||||||
|  |  | ||||||
| @@ -72,40 +55,32 @@ Images Authors: | |||||||
| Translations authors: | Translations authors: | ||||||
| * files: src/lang/*.ts | * files: src/lang/*.ts | ||||||
|   copyright: |   copyright: | ||||||
|   - Arabic: SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com) |  | ||||||
|   - Armenian: Hrant Ohanyan (hrantohanyan@mail.am) |  | ||||||
|   - Basque: Xabier Aramendi (azpidatziak@gmail.com) |  | ||||||
|   - Belarusian: Mihas Varantsou (meequz@gmail.com) |  | ||||||
|   - Brazilian: Nick Marinho (nickmarinho@gmail.com) |   - Brazilian: Nick Marinho (nickmarinho@gmail.com) | ||||||
|   - Bulgarian: Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net) |   - Bulgarian: Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net) | ||||||
|   - Catalan: Francisco Luque Contreras (frannoe@ya.com) |   - Catalan: Gekko Dam Beer (gekko04@users.sourceforge.net) | ||||||
|   - Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com) |   - Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com) | ||||||
|   - Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com) |   - Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com) | ||||||
|   - Croatian: Oliver Mucafir (oliver.untwist@gmail.com) |  | ||||||
|   - Czech: Jirka Vilim (web@tets.cz) |   - Czech: Jirka Vilim (web@tets.cz) | ||||||
|   - Danish: Mathias Nielsen (comoneo@gmail.com) |   - Danish: Mathias Nielsen (comoneo@gmail.com) | ||||||
|   - Dutch: Pieter Heyvaert (pieter_heyvaert@hotmail.com) |   - Dutch: Joost Schipper (heavyjoost@users.sourceforge.net) | ||||||
|   - English: Christophe Dumez (chris@qbittorrent.org) |   - English: Christophe Dumez (chris@qbittorrent.org) | ||||||
|   - Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net) |   - Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net) | ||||||
|   - French: Christophe Dumez (chris@qbittorrent.org) |   - French: Christophe Dumez (chris@qbittorrent.org) | ||||||
|   - Galician: Marcos Lans (marcoslansgarza@gmail.com) |  | ||||||
|   - Georgian: Beqa Arabuli (arabulibeqa@yahoo.com) |  | ||||||
|   - German: Niels Hoffmann (zentralmaschine@users.sourceforge.net) |   - German: Niels Hoffmann (zentralmaschine@users.sourceforge.net) | ||||||
|   - Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net) and Stephanos Antaris (santaris@csd.auth.gr) |   - Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net) 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) | ||||||
|   - Russian: Nick Khazov (m2k3d0n at users.sourceforge.net) |   - Russian: Nick Khazov (m2k3d0n at users.sourceforge.net) | ||||||
|   - Serbian: Anaximandar Milet (anaximandar at operamail.com) |   - Serbian: Anaximandar Milet (anaximandar at operamail.com) | ||||||
|   - Slovak:  helix84 |   - Slovak:  helix84 | ||||||
|   - Spanish: Francisco Luque Contreras (frannoe@ya.com) |   - Spanish: Vicente Raul Plata Fonseca (silverxnt@users.sourceforge.net) | ||||||
|   - Swedish: Daniel Nylander (po@danielnylander.se) |   - Swedish: Daniel Nylander (po@danielnylander.se) | ||||||
|   - Turkish: Hasan Yilmaz (iletisim@hedefturkce.com) |   - Turkish: Hasan Yilmaz (iletisim@hedefturkce.com) | ||||||
|   - Ukrainian: Oleh Prypin (blaxpirit@gmail.com) |   - Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net) | ||||||
|   license: GPLv2 |   license: GPLv2 | ||||||
|   | |||||||
							
								
								
									
										247
									
								
								Changelog
									
									
									
									
									
								
							
							
						
						| @@ -1,250 +1,3 @@ | |||||||
| * Thu Aug 09 2012 - Christophe Dumez <chris@qbittorrent.org> - v3.0.0 |  | ||||||
|     - FEATURE: Brand new torrent addition dialog |  | ||||||
|     - FEATURE: Add the ability to choose the save path when using magnet links (mutoso) |  | ||||||
|     - FEATURE: Add support for adding multiple local torrents at once (Web UI) |  | ||||||
|     - COSMETIC: Improve style of left panel |  | ||||||
|     - BUGFIX: Lower panels no longer gets disabled |  | ||||||
|     - BUGFIX: Major code refactoring and various optimizations. |  | ||||||
|     - BUGFIX: No longer strip root folder from torrent files |  | ||||||
|     - OTHER: Drop support for libtorrent v0.14.x |  | ||||||
|     - OTHER: Drop support for Qt 4.5 |  | ||||||
|  |  | ||||||
| * 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 |  | ||||||
|     - FEATURE: Graphical User Interface can be disabled at compilation time (headless running) |  | ||||||
|     - FEATURE: Torrents can be labeled/categorized |  | ||||||
|     - FEATURE: Labeled torrent can be downloaded corresponding subfolders |  | ||||||
|     - FEATURE: Disk cache size can be set from preferences |  | ||||||
|     - FEATURE: Peer Exchange (PeX) can be disabled from preferences |  | ||||||
|     - FEATURE: Append !.qB extension to incomplete files option (libtorrent >= v0.15 only) |  | ||||||
|     - FEATURE: Torrent files/folders can be renamed (torrent addition dialog or files properties) |  | ||||||
|     - FEATURE: uTorrent compatible tracker list support (use torrentz.com url as a default) |  | ||||||
|     - FEATURE: Better proxy support and preferences remodeling |  | ||||||
|     - FEATURE: qBittorrent can identify itself as uTorrent, Vuze or KTorrent (Any stable version) |  | ||||||
|     - FEATURE: Torrents can be renamed in transfer list |  | ||||||
|     - FEATURE: Display torrent addition dialog for magnet links too |  | ||||||
|     - FEATURE: Files contained in a torrent are opened on double click (files panel) |  | ||||||
|     - FEATURE: Added support for magnet links in search engine |  | ||||||
|     - FEATURE: Added vertor.com and torrentdownloads.net search plugins |  | ||||||
|     - FEATURE: Search engine can now use a SOCKS5 proxy |  | ||||||
|     - FEATURE: HTTP proxy support for peer communication |  | ||||||
|     - BUGFIX: Search engine loads new proxy settings without program restart |  | ||||||
|     - BUGFIX: Use XDG folders (.cache, .local) instead of .qbittorrent |  | ||||||
|     - BUGFIX: Added legal notice on startup that the user must accept |  | ||||||
|     - BUGFIX: Protect Web UI authentication against brute forcing |  | ||||||
|     - BUGFIX: Use HTTP digest mode for Web UI authentication (instead of Basic) |  | ||||||
|     - BUGFIX: Properly display torrents with one file in subfolder(s) |  | ||||||
|     - BUGFIX: Display Web UI favicon |  | ||||||
|     - BUGFIX: File priority can be set for finished torrents that have filtered files |  | ||||||
|     - COSMETIC: Use checkboxes to filter torrent content instead of comboboxes |  | ||||||
|     - COSMETIC: Use alternating row colors in transfer list (set in program preferences) |  | ||||||
|     - COSMETIC: Added a spin box to speed limiting dialog for manual input |  | ||||||
|  |  | ||||||
| * Mon Jan 11 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.0.7 |  | ||||||
|     - BUGFIX: Fix 'Add in pause' setting in torrent addition dialog |  | ||||||
|     - BUGFIX: Update RSS feed as soon as feed downloader is enabled |  | ||||||
|     - BUGFIX: RSS Feed downloader ignores articles above maximum number of articles |  | ||||||
|     - BUGFIX: Fix possible bug when deleting a RSS folder |  | ||||||
|     - BUGFIX: Remove persistant data when a RSS feed is deleted |  | ||||||
|     - BUGFIX: RSS filters are now alphabetically sorted |  | ||||||
|     - BUGFIX: Fix crash when renaming currently displayed RSS filter |  | ||||||
|     - BUGFIX: Remove overwriting confirmation when exporting RSS filters since Qt takes care of it |  | ||||||
|  |  | ||||||
| * Tue Jan 5 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.0.6 |  | ||||||
|     - BUGFIX: Fix detection of invalid torrent files |  | ||||||
|     - BUGFIX: Stop catching signals once one has been caught to avoid possible infinite loop |  | ||||||
|     - BUGFIX: Force data recheck whenever a torrent is moved |  | ||||||
|     - BUGFIX: Detect existing torrent data even if incomplete torrents are saved to a different folder |  | ||||||
|     - COSMETIC: Improve torrent deletion confirmation dialog so that the text that not get truncated |  | ||||||
|  |  | ||||||
| * Thu Dec 31 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.5 |  | ||||||
|     - BUGFIX: Fix crash with downloaded/availability bars when the torrent has too many pieces |  | ||||||
|  |  | ||||||
| * Wed Dec 30 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.4 |  | ||||||
|     - BUGFIX: Fix PeerGuardian .p2b binary filter support |  | ||||||
|     - BUGFIX: Fix possible crash when closing a search engine tab |  | ||||||
|     - BUGFIX: Make sure service port does not change |  | ||||||
|     - BUGFIX: Fix possible DHT port saving issue |  | ||||||
|     - BUGFIX: Fix communication between qBittorrent and Web UI (Qt 4.6) |  | ||||||
|     - BUGFIX: Use Wildcard matching instead of full regex in RSS feed downloader |  | ||||||
|     - BUGFIX: Fix code for listening on a random port whenever it failed to listen on the one defined |  | ||||||
|     - BUGFIX: Use global maximum transfer rates as maximum values in per-torrent speed limiting dialogs |  | ||||||
|     - BUGFIX: Fix global download rate limiting from Web UI |  | ||||||
|     - COSMETIC: Display a disconnected icon in status bar whenever qBittorrent failed to listen on the port defined |  | ||||||
|  |  | ||||||
| * Wed Dec 23 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.3 |  | ||||||
|     - BUGFIX: Minor cosmetic fix to program preferences |  | ||||||
|     - BUGFIX: Fix "Temp path" button in program preferences |  | ||||||
|     - BUGFIX: Handle paths with [~, ., ..] properly |  | ||||||
|     - BUGFIX: Trackers are now displayed for torrents without metadata |  | ||||||
|     - BUGFIX: Fix issue with speed limiting (unlimited was not handled properly) |  | ||||||
|     - BUGFIX: Use the save path set in program preferences as a default in torrent addition dialog |  | ||||||
|  |  | ||||||
| * Fri Dec 18 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.2 | * Fri Dec 18 2009 - Christophe Dumez <chris@qbittorrent.org> - v2.0.2 | ||||||
|     - BUGFIX: Fix .qbittorrent folder not being created (critical bug introduced in v2.0.1 that makes qBittorrent unusuable for new users) |     - BUGFIX: Fix .qbittorrent folder not being created (critical bug introduced in v2.0.1 that makes qBittorrent unusuable for new users) | ||||||
|     - BUGFIX: Fix RSS Feed downloader for some feeds |     - BUGFIX: Fix RSS Feed downloader for some feeds | ||||||
|   | |||||||
							
								
								
									
										55
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						| @@ -1,55 +1,32 @@ | |||||||
| qBittorrent - A BitTorrent client in C++ / Qt4 | qBittorrent - A BitTorrent client in C++ / Qt4 | ||||||
| ------------------------------------------ | ------------------------------------------ | ||||||
|  |  | ||||||
| 1) Compile and install qBittorrent with Qt4 Graphical Interface | ./configure | ||||||
|  | make && make install | ||||||
|   $ ./configure | qbittorrent | ||||||
|   $ make && make install |  | ||||||
|   $ qbittorrent |  | ||||||
|  |  | ||||||
| will install and execute qBittorrent hopefully without any problems. | will install and execute qBittorrent hopefully without any problems. | ||||||
|  |  | ||||||
| Dependencies: | Dependencies: | ||||||
|     - Qt >= 4.6.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.0 REQUIRED, >= v0.15.0 ADVISED) | ||||||
|  |     -> http://www.qbittorrent.org/download.php (advised) | ||||||
|     - libtorrent-rasterbar by Arvid Norberg (>= 0.15.0) |  | ||||||
|         -> http://www.libtorrent.net |  | ||||||
|         Be careful: another library (the one used by rTorrent) uses a similar name. |  | ||||||
|  |  | ||||||
|     - libboost 1.34.x (libboost-filesystem°) + libasio |  | ||||||
|       or |  | ||||||
|     - libboost >= 1.35.x (libboost-system, libboost-filesystem°) |  | ||||||
|        |  | ||||||
|     °libboost-filesystem is not needed if libtorrent-rasterbar >= v0.16.x is used |  | ||||||
|  |  | ||||||
|     - python >= 2.3 (needed by search engine) |  | ||||||
|         * Run time only dependency |  | ||||||
|  |  | ||||||
|     - geoip-database (optional) |  | ||||||
|         * If qBittorrent cannot find this database, it will try to resolve countries using the Internet but it will be a lot slower. |  | ||||||
|         * Run time only dependency |  | ||||||
|  |  | ||||||
| 2) Compile and install qBittorrent without Qt4 Graphical interface |  | ||||||
|  |  | ||||||
|   $ ./configure --disable-gui |  | ||||||
|   $ make && make install |  | ||||||
|   $ qbittorrent |  | ||||||
|  |  | ||||||
|   will install and execute qBittorrent hopefully without any problems. |  | ||||||
|  |  | ||||||
|   Dependencies: |  | ||||||
|     - Qt >= 4.4.0 (libqt-devel, libqtcore, libqtnetwork) |  | ||||||
|  |  | ||||||
|     - pkg-config executable |  | ||||||
|  |  | ||||||
|     - libtorrent-rasterbar by Arvid Norberg (>= v0.15.0) |  | ||||||
|     -> http://www.libtorrent.net |     -> http://www.libtorrent.net | ||||||
|     Be careful: another library (the one used by rTorrent) uses a similar name. |     Be careful: another library (the one used by rTorrent) uses a similar name. | ||||||
|  |  | ||||||
| - libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization | - libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization | ||||||
|  |  | ||||||
|  | - 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 | ||||||
|  |  | ||||||
| DOCUMENTATION: | DOCUMENTATION: | ||||||
| Please note that there is a documentation with a "compiling howto" at http://wiki.qbittorrent.org. | Please note that there is a documentation with a "compiling howto" at http://wiki.qbittorrent.org. | ||||||
|   | |||||||
							
								
								
									
										61
									
								
								README.os2
									
									
									
									
									
								
							
							
						
						| @@ -1,61 +0,0 @@ | |||||||
| qBittorrent - A BitTorrent client in Qt4 |  | ||||||
| ------------------------------------------ |  | ||||||
|  |  | ||||||
| This is the eComStation (OS/2) qBittorrent part of the readme. See also README for more general information. |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Building qBittorrent |  | ||||||
| ******************** |  | ||||||
|  |  | ||||||
|  |  | ||||||
| Requirements |  | ||||||
| ============ |  | ||||||
|  |  | ||||||
| - gcc based build env (recommended gcc v4.4.2 or greater) |  | ||||||
|    |  | ||||||
| - Qt4 for eCS (OS/2) dev package (see http://svn.netlabs.org/qt4 for more information) |  | ||||||
|  |  | ||||||
| - libtorrent-rasterbar for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information) |  | ||||||
|  |  | ||||||
| - boost for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information) |  | ||||||
|  |  | ||||||
|  |  | ||||||
| How to build |  | ||||||
| ============ |  | ||||||
|  |  | ||||||
| First you need to create the conf.pri file in the same dir as this readme.os2 is. |  | ||||||
| the conf.pri file has the following content: |  | ||||||
|  |  | ||||||
| ##### conf.pri content beginn ##### |  | ||||||
| BINDIR = ./bin |  | ||||||
| INCDIR = ./include |  | ||||||
| LIBDIR = ./lib |  | ||||||
| DATADIR = ./share |  | ||||||
|  |  | ||||||
| CONFIG += staticlib |  | ||||||
| INCLUDEPATH += x:/trees/libtorrent/trunk/include |  | ||||||
| LIBS += -Lx:/trees/libtorrent/trunk/src/.libs \ |  | ||||||
|         -Lx:/trees/boost/trunk/stage/lib \ |  | ||||||
|         -Lx:/trees/openssl \ |  | ||||||
| 	-Lx:/extras/lib |  | ||||||
| ##### conf.pri content end ##### |  | ||||||
|  |  | ||||||
| Of course all the above path references have to be adjusted to your build env. |  | ||||||
|  |  | ||||||
| It should now be easy to build qBittorrent: |  | ||||||
|  |  | ||||||
| Simply type: |  | ||||||
| $ qmake |  | ||||||
|  |  | ||||||
| Followed by: |  | ||||||
| $ make |  | ||||||
|  |  | ||||||
| If all works fine you should get a working qbittorrent executable. |  | ||||||
|  |  | ||||||
| If you have any question regarding the eCS (OS/2) port of qBittorrent you can meet me (_diver) on IRC: |  | ||||||
| #netlabs on irc.freenode.net |  | ||||||
|  |  | ||||||
| ------------------------------------------ |  | ||||||
| Silvan Scherrer <silvan.scherrer@aroa.ch> |  | ||||||
|  |  | ||||||
|  |  | ||||||
| @@ -1,44 +0,0 @@ | |||||||
| .\" This manpage has been automatically generated by docbook2man |  | ||||||
| .\" from a DocBook document.  This tool can be found at: |  | ||||||
| .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>. |  | ||||||
| .TH "QBITTORRENT\-NOX" "1" "January 16th 2010" "Command line Bittorrent client written in C++ / Qt4" "" |  | ||||||
|  |  | ||||||
| .SH "NAME" |  | ||||||
| qBittorrent\-nox \- a command line Bittorrent client written in C++ / Qt4 |  | ||||||
|  |  | ||||||
| .SH "SYNOPSIS" |  | ||||||
|  |  | ||||||
| \fBqbittorrent\-nox\fR [\-\-webui-port=x] [TORRENT_FILE | URL]... |  | ||||||
|  |  | ||||||
| \fBqbittorrent\-nox\fR \-\-help |  | ||||||
|  |  | ||||||
| \fBqbittorrent\-nox\fR \-\-version |  | ||||||
|  |  | ||||||
| .PP |  | ||||||
| .SH "DESCRIPTION" |  | ||||||
|  |  | ||||||
| \fBqBittorrent-nox\fR is an advanced command-line Bittorrent client written in C++ / Qt4, |  | ||||||
| using the \fBlibtorrent-rasterbar\fR library by Arvid Norberg. qBittorrent\-nox aims |  | ||||||
| to be a good alternative to other command line bittorrent clients and provides features similar to popular graphical clients. |  | ||||||
|  |  | ||||||
| qBittorrent\-nox is fast, stable, light and it supports unicode.  |  | ||||||
| It also comes with UPnP port forwarding / NAT-PMP, encryption (Vuze compatible),  |  | ||||||
| FAST extension (mainline) and PeX support (utorrent compatible). |  | ||||||
|  |  | ||||||
| qBittorrent\-nox is meant to be controlled via its feature-rich Web UI which is accessible as a default on http://localhost:8080. The Web UI access is secured and the default account user name is "admin" with "adminadmin" as a password. |  | ||||||
|  |  | ||||||
| .SH "OPTIONS" |  | ||||||
|  |  | ||||||
| \fB--help\fR Prints the command line options. |  | ||||||
|  |  | ||||||
| \fB--version\fR Prints qbittorrent program version number. |  | ||||||
|  |  | ||||||
| \fB--webui-port=x\fR Changes Web UI port to x (default: 8080). |  | ||||||
|  |  | ||||||
| .SH "BUGS" |  | ||||||
|  |  | ||||||
| If you find a bug, please report it at http://bugs.qbittorrent.org |  | ||||||
|  |  | ||||||
| .SH "AUTHOR" |  | ||||||
|  |  | ||||||
| Christophe Dumez <chris@qbittorrent.org> |  | ||||||
| @@ -1,14 +1,14 @@ | |||||||
| .\" This manpage has been automatically generated by docbook2man | .\" This manpage has been automatically generated by docbook2man | ||||||
| .\" from a DocBook document.  This tool can be found at: | .\" from a DocBook document.  This tool can be found at: | ||||||
| .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>. | .\" <http://shell.ipoline.com/~elmert/comp/docbook2X/>. | ||||||
| .TH "QBITTORRENT" "1" "January 16th 2010" "Bittorrent client written in C++ / Qt4" "" | .TH "QBITTORRENT" "1" "September 30th 2009" "Bittorrent client written in C++ / Qt4" "" | ||||||
|  |  | ||||||
| .SH "NAME" | .SH "NAME" | ||||||
| qBittorrent \- a Bittorrent client written in C++ / Qt4 | qBittorrent \- a Bittorrent client written in C++ / Qt4 | ||||||
|  |  | ||||||
| .SH "SYNOPSIS" | .SH "SYNOPSIS" | ||||||
|  |  | ||||||
| \fBqbittorrent\fR [\-\-no-splash] [\-\-webui-port=x] [TORRENT_FILE | URL]... | \fBqbittorrent\fR [\-\-no-splash] [TORRENT_FILE | URL]... | ||||||
|  |  | ||||||
| \fBqbittorrent\fR \-\-help | \fBqbittorrent\fR \-\-help | ||||||
|  |  | ||||||
| @@ -18,9 +18,10 @@ qBittorrent \- a Bittorrent client written in C++ / Qt4 | |||||||
| .SH "DESCRIPTION" | .SH "DESCRIPTION" | ||||||
|  |  | ||||||
| \fBqBittorrent\fR is an advanced Bittorrent client written in C++ / Qt4, | \fBqBittorrent\fR is an advanced Bittorrent client written in C++ / Qt4, | ||||||
| using the \fBlibtorrent-rasterbar\fR library by Arvid Norberg. qBittorrent is similar to uTorrent. qBittorrent | using the \fBrblibtorrent\fR library by Arvid Norberg. qBittorrent aims | ||||||
|  | to be a good alternative to all other bittorrent clients out there. qBittorrent | ||||||
| is fast, stable, light, it supports unicode and it provides a good integrated search engine. | is fast, stable, light, it supports unicode and it provides a good integrated search engine. | ||||||
| It also comes with UPnP port forwarding / NAT-PMP, encryption (Vuze compatible),  | It also comes with UPnP port forwarding / NAT-PMP, encryption (Azureus compatible),  | ||||||
| FAST extension (mainline) and PeX support (utorrent compatible). | FAST extension (mainline) and PeX support (utorrent compatible). | ||||||
|  |  | ||||||
| .SH "OPTIONS" | .SH "OPTIONS" | ||||||
| @@ -31,8 +32,6 @@ FAST extension (mainline) and PeX support (utorrent compatible). | |||||||
|  |  | ||||||
| \fB--no-splash\fR Disables splash screen on startup. | \fB--no-splash\fR Disables splash screen on startup. | ||||||
|  |  | ||||||
| \fB--webui-port=x\fR Changes Web UI port to x (default: 8080). |  | ||||||
|  |  | ||||||
| .SH "BUGS" | .SH "BUGS" | ||||||
|  |  | ||||||
| If you find a bug, please report it at http://bugs.qbittorrent.org | If you find a bug, please report it at http://bugs.qbittorrent.org | ||||||
|   | |||||||
							
								
								
									
										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> | ||||||
| @@ -1,18 +1,6 @@ | |||||||
| TEMPLATE = subdirs | TEMPLATE = subdirs | ||||||
|  |  | ||||||
|  | include(conf.pri) | ||||||
|  |  | ||||||
| SUBDIRS += src | SUBDIRS += src | ||||||
|  |  | ||||||
| include(version.pri) |  | ||||||
|  |  | ||||||
| # Dist |  | ||||||
| dist.commands += rm -fR ../$${PROJECT_NAME}-$${PROJECT_VERSION}/ && |  | ||||||
| dist.commands += git clone . ../$${PROJECT_NAME}-$${PROJECT_VERSION} && |  | ||||||
| dist.commands += rm -fR ../$${PROJECT_NAME}-$${PROJECT_VERSION}/.git && |  | ||||||
| dist.commands += rm -f ../$${PROJECT_NAME}-$${PROJECT_VERSION}/.gitignore && |  | ||||||
| dist.commands += cd .. && |  | ||||||
| dist.commands += tar czf $${PROJECT_NAME}-$${PROJECT_VERSION}.tar.gz $${PROJECT_NAME}-$${PROJECT_VERSION} && |  | ||||||
| dist.commands += tar cf $${PROJECT_NAME}-$${PROJECT_VERSION}.tar $${PROJECT_NAME}-$${PROJECT_VERSION} && |  | ||||||
| dist.commands += xz -f $${PROJECT_NAME}-$${PROJECT_VERSION}.tar && |  | ||||||
| dist.commands += rm -fR $${PROJECT_NAME}-$${PROJECT_VERSION} |  | ||||||
|  |  | ||||||
| QMAKE_EXTRA_TARGETS += dist |  | ||||||
|   | |||||||
| @@ -6,20 +6,14 @@ | |||||||
|   <dep type='qt4'> |   <dep type='qt4'> | ||||||
|     <required/> |     <required/> | ||||||
|   </dep> |   </dep> | ||||||
|   <dep type='qt-dbus'> |  | ||||||
|   </dep> |  | ||||||
|   <dep type='pkg-config'> |  | ||||||
|     <required/> |  | ||||||
|   </dep> |  | ||||||
|   <dep type='libtorrent-rasterbar'> |   <dep type='libtorrent-rasterbar'> | ||||||
|     <required/> |     <required/> | ||||||
|   </dep> |   </dep> | ||||||
|   <dep type='libboost'> |   <dep type='libboost'> | ||||||
|     <required/> |     <required/> | ||||||
|   </dep> |   </dep> | ||||||
|  |   <dep type='libnotify'> | ||||||
|  |   </dep> | ||||||
|   <dep type='geoip-database'> |   <dep type='geoip-database'> | ||||||
|   </dep> |   </dep> | ||||||
|   <dep type='qtsingleapplication'> |  | ||||||
|     <required/> |  | ||||||
|   </dep> |  | ||||||
| </qconf> | </qconf> | ||||||
|   | |||||||
| @@ -11,15 +11,7 @@ public: | |||||||
| 	qc_geoip_database(Conf *c) : ConfObj(c) {} | 	qc_geoip_database(Conf *c) : ConfObj(c) {} | ||||||
| 	QString name() const { return "GeoIP Database (optional)"; } | 	QString name() const { return "GeoIP Database (optional)"; } | ||||||
| 	QString shortname() const { return "GeoIP Database"; } | 	QString shortname() const { return "GeoIP Database"; } | ||||||
|         QString checkString() const { |  | ||||||
|                 if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) |  | ||||||
|                         return ""; |  | ||||||
|                 return ConfObj::checkString(); |  | ||||||
|         } |  | ||||||
| 	bool exec() { | 	bool exec() { | ||||||
| 	if(!conf->getenv("QC_DISABLE_geoip_database").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) { |  | ||||||
| 		return false; |  | ||||||
| 	} |  | ||||||
| #ifdef Q_WS_X11 | #ifdef Q_WS_X11 | ||||||
| 		if(!conf->getenv("QC_WITH_GEOIP_DATABASE_EMBEDDED").isEmpty()) { | 		if(!conf->getenv("QC_WITH_GEOIP_DATABASE_EMBEDDED").isEmpty()) { | ||||||
| #endif | #endif | ||||||
|   | |||||||
| @@ -2,96 +2,55 @@ | |||||||
| -----BEGIN QCMOD----- | -----BEGIN QCMOD----- | ||||||
| name: libboost | name: libboost | ||||||
| arg: with-libboost-inc=[path], Path to libboost include files | arg: with-libboost-inc=[path], Path to libboost include files | ||||||
| arg: with-libboost-lib=[path], Path to libboost library files |  | ||||||
| -----END QCMOD----- | -----END QCMOD----- | ||||||
| */ | */ | ||||||
| #include <boost/version.hpp> |  | ||||||
| #include <libtorrent/version.hpp> |  | ||||||
|  |  | ||||||
| class qc_libboost : public ConfObj | class qc_libboost : public ConfObj | ||||||
| { | { | ||||||
| public: | public: | ||||||
| 	qc_libboost(Conf *c) : ConfObj(c) {} | 	qc_libboost(Conf *c) : ConfObj(c) {} | ||||||
| 	QString name() const { return "libboost"; } | 	QString name() const { return "libboost"; } | ||||||
| 	QString shortname() const { return "libboost"; } | 	QString shortname() const { return "libboost"; } | ||||||
|  |  | ||||||
|   QString findBoostLib(QString path, QString lib) const { |  | ||||||
|     QString name; |  | ||||||
|     QDir libDir(path); |  | ||||||
|     QStringList filters; |  | ||||||
|     filters << "libboost_"+lib+"*-mt*.so"; |  | ||||||
|     QStringList result = libDir.entryList(filters, QDir::Files); |  | ||||||
|     if(!result.empty()) { |  | ||||||
|       name = result.first().mid(3); |  | ||||||
|       // Remove .so |  | ||||||
|       name.chop(3); |  | ||||||
|     } else { |  | ||||||
|       // Fall back to non -mt boost lib |  | ||||||
|       filters.clear(); |  | ||||||
|       filters << "libboost_"+lib+"*.so"; |  | ||||||
|       result = libDir.entryList(filters, QDir::Files); |  | ||||||
|       if(!result.empty()) { |  | ||||||
|         name = result.first().mid(3); |  | ||||||
|         // Remove .so |  | ||||||
|         name.chop(3); |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|     return name; |  | ||||||
|   } |  | ||||||
|  |  | ||||||
| 	bool exec(){ | 	bool exec(){ | ||||||
|  |         	QString s; | ||||||
|  | 		s = conf->getenv("QC_WITH_LIBBOOST_INC"); | ||||||
|  | 		if(!s.isEmpty()) { | ||||||
|  | 			if(!conf->checkHeader(s, "boost/format.hpp")) { | ||||||
|  | 				return false; | ||||||
|  |       			} | ||||||
|  | 			if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) { | ||||||
|  | 				return false; | ||||||
|  |       			} | ||||||
|  | 			if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) { | ||||||
|  | 				return false; | ||||||
|  |       			} | ||||||
|  | 			if(!conf->checkHeader(s, "boost/thread.hpp")) { | ||||||
|  | 				return false; | ||||||
|  |       			} | ||||||
|  | 		}else{ | ||||||
| 			QStringList sl; | 			QStringList sl; | ||||||
|     QString s = conf->getenv("QC_WITH_LIBBOOST_INC"); |  | ||||||
|     if (!s.isEmpty()) |  | ||||||
|       sl << s; |  | ||||||
| 			sl << "/usr/include"; | 			sl << "/usr/include"; | ||||||
| 			sl << "/usr/local/include"; | 			sl << "/usr/local/include"; | ||||||
| 			bool found = false; | 			bool found = false; | ||||||
| 			foreach(s, sl){ | 			foreach(s, sl){ | ||||||
|       if (conf->checkHeader(s, "boost/format.hpp") | 				if(conf->checkHeader(s, "boost/format.hpp")){ | ||||||
| #if LIBTORRENT_VERSION_MAJOR == 0 && LIBTORRENT_VERSION_MINOR < 16 |  | ||||||
|           && conf->checkHeader(s, "boost/filesystem/path.hpp") |  | ||||||
| #endif |  | ||||||
|          ) { |  | ||||||
|         found = true; |  | ||||||
|         break; |  | ||||||
|       } |  | ||||||
|     } |  | ||||||
|     if (!found) |  | ||||||
|       return false; |  | ||||||
|  |  | ||||||
|     conf->addIncludePath(s); |  | ||||||
|  |  | ||||||
|     // Find library |  | ||||||
|     s = conf->getenv("QC_WITH_LIBBOOST_LIB"); |  | ||||||
|     QStringList required_libs; |  | ||||||
| #if BOOST_VERSION >= 103500 |  | ||||||
|       required_libs << "system";  |  | ||||||
| #endif |  | ||||||
| #if LIBTORRENT_VERSION_MAJOR == 0 && LIBTORRENT_VERSION_MINOR < 16 |  | ||||||
|     required_libs << "filesystem" ; |  | ||||||
| #endif |  | ||||||
|     required_libs << "thread"; |  | ||||||
|     QStringList libDirs; |  | ||||||
|     if (!s.isEmpty()) |  | ||||||
|       libDirs << s; |  | ||||||
|     libDirs << "/usr/lib/" << "/usr/lib64/" << "/usr/local/lib/" << "/usr/local/lib64/"; |  | ||||||
|  |  | ||||||
|     foreach(const QString& lib, required_libs) { |  | ||||||
|       bool found = false; |  | ||||||
|       foreach(const QString& libDir, libDirs) { |  | ||||||
|         QString detected_name = findBoostLib(libDir, lib); |  | ||||||
|         if(!detected_name.isEmpty()) { |  | ||||||
|           conf->addLib("-l"+detected_name); |  | ||||||
| 					found = true; | 					found = true; | ||||||
| 					break; | 					break; | ||||||
| 				} | 				} | ||||||
| 			} | 			} | ||||||
| 			if(!found) { | 			if(!found) { | ||||||
|         printf("Could not find boost %s library!\n", qPrintable(lib)); | 				return false; | ||||||
|  |           		} | ||||||
|  | 			if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) { | ||||||
|  | 				return false; | ||||||
|  |       			} | ||||||
|  | 			if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) { | ||||||
|  | 				return false; | ||||||
|  |       			} | ||||||
|  | 			if(!conf->checkHeader(s, "boost/thread.hpp")) { | ||||||
| 				return false; | 				return false; | ||||||
|       			} |       			} | ||||||
| 		} | 		} | ||||||
|  | 		conf->addIncludePath(s); | ||||||
| 		return true; | 		return true; | ||||||
| 	} | 	} | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -10,21 +10,13 @@ public: | |||||||
| 	qc_libnotify(Conf *c) : ConfObj(c) {} | 	qc_libnotify(Conf *c) : ConfObj(c) {} | ||||||
| 	QString name() const { return "libnotify >= 0.4.2 (optional)"; } | 	QString name() const { return "libnotify >= 0.4.2 (optional)"; } | ||||||
| 	QString shortname() const { return "libnotify"; } | 	QString shortname() const { return "libnotify"; } | ||||||
|         QString checkString() const { |  | ||||||
|                 if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) |  | ||||||
|                         return ""; |  | ||||||
|                 return ConfObj::checkString(); |  | ||||||
|         } |  | ||||||
| 	bool exec(){ | 	bool exec(){ | ||||||
| 		if(!conf->getenv("QC_DISABLE_libnotify").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) { |  | ||||||
| 			return false; |  | ||||||
| 		} |  | ||||||
| 		QStringList incs; | 		QStringList incs; | ||||||
| 		QString req_ver = "0.4.2"; | 		QString req_ver = "0.4.2"; | ||||||
| 		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,17 +32,6 @@ 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; | ||||||
| 		} | 		} | ||||||
|   | |||||||
| @@ -8,17 +8,24 @@ class qc_libtorrent_rasterbar : public ConfObj | |||||||
| { | { | ||||||
| public: | public: | ||||||
| 	qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {} | 	qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {} | ||||||
| 	QString name() const { return "libtorrent-rasterbar >= 0.15.0"; } | 	QString name() const { return "libtorrent-rasterbar >= 0.14.0 (>= 0.15.0 advised)"; } | ||||||
| 	QString shortname() const { return "libtorrent-rasterbar"; } | 	QString shortname() const { return "libtorrent-rasterbar"; } | ||||||
| 	bool exec(){ | 	bool exec(){ | ||||||
| 		QStringList incs; | 		QStringList incs; | ||||||
| 		QString req_ver = "0.15.0"; | 		QString req_ver = "0.14.0"; | ||||||
|  | 		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.\nAlthough it will compile and run, you will be missing some features. Please consider updating to v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data()); | ||||||
|  | 		else | ||||||
|  | 			conf->addDefine("LIBTORRENT_0_15"); | ||||||
| 		return true; | 		return true; | ||||||
| 	} | 	} | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -1,16 +0,0 @@ | |||||||
| /* |  | ||||||
| -----BEGIN QCMOD----- |  | ||||||
| name: pkg-config |  | ||||||
| -----END QCMOD----- |  | ||||||
| */ |  | ||||||
| #include <QProcess> |  | ||||||
| class qc_pkg_config : public ConfObj |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	qc_pkg_config(Conf *c) : ConfObj(c) {} |  | ||||||
| 	QString name() const { return "pkg-config executable"; } |  | ||||||
| 	QString shortname() const { return "pkg-config"; } |  | ||||||
| 	bool exec(){ |  | ||||||
| 		return !conf->findProgram("pkg-config").isEmpty(); |  | ||||||
| 	} |  | ||||||
| }; |  | ||||||
| @@ -1,31 +0,0 @@ | |||||||
| /* |  | ||||||
| -----BEGIN QCMOD----- |  | ||||||
| name: qt-dbus |  | ||||||
| -----END QCMOD----- |  | ||||||
| */ |  | ||||||
| // see  Conf::findPkgConfig |  | ||||||
| class qc_qt_dbus : public ConfObj |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	qc_qt_dbus(Conf *c) : ConfObj(c) {} |  | ||||||
| 	QString name() const { return "QtDBus >= 4.5"; } |  | ||||||
| 	QString shortname() const { return "qt-dbus"; } |  | ||||||
|         QString checkString() const { |  | ||||||
|                 if(!conf->getenv("QC_DISABLE_qt_dbus").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) |  | ||||||
|                         return ""; |  | ||||||
|                 return ConfObj::checkString(); |  | ||||||
|         } |  | ||||||
| 	bool exec(){ |  | ||||||
|                 if(!conf->getenv("QC_DISABLE_qt_dbus").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) |  | ||||||
|                   return false; |  | ||||||
| 		QStringList incs; |  | ||||||
| 		QString req_ver = "4.5.0"; |  | ||||||
| 		QString version, libs, other; |  | ||||||
| 		VersionMode mode = VersionMin; |  | ||||||
| 		if(conf->findPkgConfig("QtDBus", mode, req_ver, &version, &incs, &libs, &other)) { |  | ||||||
|                         conf->addExtra("CONFIG += dbus"); |  | ||||||
| 			return true; |  | ||||||
|                 } |  | ||||||
| 		return false; |  | ||||||
| 	} |  | ||||||
| }; |  | ||||||
| @@ -1,31 +0,0 @@ | |||||||
| /* |  | ||||||
| -----BEGIN QCMOD----- |  | ||||||
| name: qt-svg |  | ||||||
| -----END QCMOD----- |  | ||||||
| */ |  | ||||||
| // see  Conf::findPkgConfig |  | ||||||
| class qc_qt_svg : public ConfObj |  | ||||||
| { |  | ||||||
| public: |  | ||||||
| 	qc_qt_svg(Conf *c) : ConfObj(c) {} |  | ||||||
| 	QString name() const { return "QtSvg >= 4.5"; } |  | ||||||
| 	QString shortname() const { return "qt-svg"; } |  | ||||||
|         QString checkString() const { |  | ||||||
|                 if(!conf->getenv("QC_DISABLE_qt_svg").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) |  | ||||||
|                         return ""; |  | ||||||
|                 return ConfObj::checkString(); |  | ||||||
|         } |  | ||||||
| 	bool exec(){ |  | ||||||
|                 if(!conf->getenv("QC_DISABLE_qt_svg").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty()) |  | ||||||
|                   return false; |  | ||||||
| 		QStringList incs; |  | ||||||
| 		QString req_ver = "4.5.0"; |  | ||||||
| 		QString version, libs, other; |  | ||||||
| 		VersionMode mode = VersionMin; |  | ||||||
| 		if(conf->findPkgConfig("QtSvg", mode, req_ver, &version, &incs, &libs, &other)) { |  | ||||||
|                         conf->addExtra("CONFIG += svg"); |  | ||||||
| 			return true; |  | ||||||
|                 } |  | ||||||
| 		return false; |  | ||||||
| 	} |  | ||||||
| }; |  | ||||||
							
								
								
									
										30
									
								
								qcm/qt4.qcm
									
									
									
									
									
								
							
							
						
						| @@ -1,36 +1,20 @@ | |||||||
| /* | /* | ||||||
| -----BEGIN QCMOD----- | -----BEGIN QCMOD----- | ||||||
| name: Qt >= 4.6 | name: Qt >= 4.4 | ||||||
| arg: enable-debug, Enable debug mode |  | ||||||
| arg: disable-gui, Disable qBittorrent Graphical user interface for headless running |  | ||||||
| -----END QCMOD----- | -----END QCMOD----- | ||||||
| */ | */ | ||||||
| class qc_qt4 : public ConfObj | class qc_qt4 : public ConfObj | ||||||
| { | { | ||||||
| public: | public: | ||||||
| 	qc_qt4(Conf *c) : ConfObj(c) {} | 	qc_qt4(Conf *c) : ConfObj(c) {} | ||||||
| 	QString name() const { return "Qt >= 4.6"; } | 	QString name() const { return "Qt >= 4.4"; } | ||||||
| 	QString shortname() const { return "Qt 4.6"; } | 	QString shortname() const { return "Qt 4.4"; } | ||||||
| 	bool exec() | 	bool exec() | ||||||
| 	{ | 	{ | ||||||
|                 // NOX mode | 		if(QT_VERSION >= 0x040500) { | ||||||
| 		if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) { |                         conf->addDefine("QT_4_5"); | ||||||
| 			conf->addExtra("CONFIG += nox"); |  | ||||||
|                 } |                 } | ||||||
|                 // Debug mode | 		return(QT_VERSION >= 0x040400); | ||||||
|                 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 >= 0x040600); |  | ||||||
| 	} | 	} | ||||||
| }; | }; | ||||||
|   | |||||||
| @@ -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; |  | ||||||
|         } |  | ||||||
| }; |  | ||||||
							
								
								
									
										918
									
								
								src/GUI.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										162
									
								
								src/GUI.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,162 @@ | |||||||
|  | /* | ||||||
|  |  * Bittorrent Client using Qt4 and libtorrent. | ||||||
|  |  * Copyright (C) 2006  Christophe Dumez | ||||||
|  |  * | ||||||
|  |  * This program is free software; you can redistribute it and/or | ||||||
|  |  * modify it under the terms of the GNU General Public License | ||||||
|  |  * as published by the Free Software Foundation; either version 2 | ||||||
|  |  * of the License, or (at your option) any later version. | ||||||
|  |  * | ||||||
|  |  * This program is distributed in the hope that it will be useful, | ||||||
|  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | ||||||
|  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | ||||||
|  |  * GNU General Public License for more details. | ||||||
|  |  * | ||||||
|  |  * You should have received a copy of the GNU General Public License | ||||||
|  |  * along with this program; if not, write to the Free Software | ||||||
|  |  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301, USA. | ||||||
|  |  * | ||||||
|  |  * In addition, as a special exception, the copyright holders give permission to | ||||||
|  |  * link this program with the OpenSSL project's "OpenSSL" library (or with | ||||||
|  |  * modified versions of it that use the same license as the "OpenSSL" library), | ||||||
|  |  * and distribute the linked executables. You must obey the GNU General Public | ||||||
|  |  * License in all respects for all of the code used other than "OpenSSL".  If you | ||||||
|  |  * modify file(s), you may extend this exception to your version of the file(s), | ||||||
|  |  * but you are not obligated to do so. If you do not wish to do so, delete this | ||||||
|  |  * exception statement from your version. | ||||||
|  |  * | ||||||
|  |  * Contact : chris@qbittorrent.org | ||||||
|  |  */ | ||||||
|  |  | ||||||
|  | #ifndef GUI_H | ||||||
|  | #define GUI_H | ||||||
|  |  | ||||||
|  | #include <QProcess> | ||||||
|  | #include <QSystemTrayIcon> | ||||||
|  | #include <QPointer> | ||||||
|  | #include "ui_mainwindow.h" | ||||||
|  | #include "qtorrenthandle.h" | ||||||
|  |  | ||||||
|  | enum TabIndex{TAB_TRANSFER, TAB_SEARCH, TAB_RSS}; | ||||||
|  |  | ||||||
|  | class Bittorrent; | ||||||
|  | class QTimer; | ||||||
|  | class downloadFromURL; | ||||||
|  | class SearchEngine; | ||||||
|  | class QLocalServer; | ||||||
|  | class QCloseEvent; | ||||||
|  | class RSSImp; | ||||||
|  | class QShortcut; | ||||||
|  | class about; | ||||||
|  | class options_imp; | ||||||
|  | class QTabWidget; | ||||||
|  | class TransferListWidget; | ||||||
|  | class TransferListFiltersWidget; | ||||||
|  | class QSplitter; | ||||||
|  | class PropertiesWidget; | ||||||
|  | class StatusBar; | ||||||
|  |  | ||||||
|  | class GUI : public QMainWindow, private Ui::MainWindow{ | ||||||
|  |   Q_OBJECT | ||||||
|  |  | ||||||
|  |   private: | ||||||
|  |     // Bittorrent | ||||||
|  |     Bittorrent *BTSession; | ||||||
|  |     QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed? | ||||||
|  |     // GUI related | ||||||
|  |     QTimer *guiUpdater; | ||||||
|  |     QTabWidget *tabs; | ||||||
|  |     StatusBar *status_bar; | ||||||
|  |     QPointer<options_imp> options; | ||||||
|  |     QPointer<QSystemTrayIcon> systrayIcon; | ||||||
|  |     QPointer<QTimer> systrayCreator; | ||||||
|  |     QMenu *myTrayIconMenu; | ||||||
|  |     TransferListWidget *transferList; | ||||||
|  |     TransferListFiltersWidget *transferListFilters; | ||||||
|  |     PropertiesWidget *properties; | ||||||
|  |     bool displaySpeedInTitle; | ||||||
|  |     bool force_exit; | ||||||
|  |     // 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: | ||||||
|  |     // GUI related slots | ||||||
|  |     void dropEvent(QDropEvent *event); | ||||||
|  |     void dragEnterEvent(QDragEnterEvent *event); | ||||||
|  |     void toggleVisibility(QSystemTrayIcon::ActivationReason e); | ||||||
|  |     void on_actionAbout_triggered(); | ||||||
|  |     void on_actionCreate_torrent_triggered(); | ||||||
|  |     void on_actionWebsite_triggered() const; | ||||||
|  |     void on_actionBugReport_triggered() const; | ||||||
|  |     void on_actionShow_console_triggered(); | ||||||
|  |     void readParamsOnSocket(); | ||||||
|  |     void acceptConnection(); | ||||||
|  |     void balloonClicked(); | ||||||
|  |     void writeSettings(); | ||||||
|  |     void readSettings(); | ||||||
|  |     void on_actionExit_triggered(); | ||||||
|  |     void createTrayIcon(); | ||||||
|  |     void fullDiskError(QTorrentHandle& h, QString msg) const; | ||||||
|  |     void handleDownloadFromUrlFailure(QString, QString) const; | ||||||
|  |     void createSystrayDelayed(); | ||||||
|  |     void tab_changed(int); | ||||||
|  |     // Keyboard shortcuts | ||||||
|  |     void createKeyboardShortcuts(); | ||||||
|  |     void displayTransferTab() const; | ||||||
|  |     void displaySearchTab() const; | ||||||
|  |     void displayRSSTab() const; | ||||||
|  |     // Torrent actions | ||||||
|  |     void on_actionSet_global_upload_limit_triggered(); | ||||||
|  |     void on_actionSet_global_download_limit_triggered(); | ||||||
|  |     void on_actionDocumentation_triggered() const; | ||||||
|  |     void on_actionOpen_triggered(); | ||||||
|  |     void updateGUI(); | ||||||
|  |     void loadPreferences(bool configure_session=true); | ||||||
|  |     void processParams(const QStringList& params); | ||||||
|  |     void addTorrent(QString path); | ||||||
|  |     void addUnauthenticatedTracker(QPair<QTorrentHandle,QString> tracker); | ||||||
|  |     void processDownloadedFiles(QString path, QString url); | ||||||
|  |     void downloadFromURLList(const QStringList& urls); | ||||||
|  |     void finishedTorrent(QTorrentHandle& h) const; | ||||||
|  |     // Options slots | ||||||
|  |     void on_actionOptions_triggered(); | ||||||
|  |     void optionsSaved(); | ||||||
|  |     // HTTP slots | ||||||
|  |     void on_actionDownload_from_URL_triggered(); | ||||||
|  |  | ||||||
|  |  | ||||||
|  |   public slots: | ||||||
|  |     void trackerAuthenticationRequired(QTorrentHandle& h); | ||||||
|  |     void setTabText(int index, QString text) const; | ||||||
|  |     void showNotificationBaloon(QString title, QString msg) const; | ||||||
|  |  | ||||||
|  |   protected: | ||||||
|  |     void closeEvent(QCloseEvent *); | ||||||
|  |     void showEvent(QShowEvent *); | ||||||
|  |     bool event(QEvent * event); | ||||||
|  |     void displayRSSTab(bool enable); | ||||||
|  |  | ||||||
|  |   public: | ||||||
|  |     // Construct / Destruct | ||||||
|  |     GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList()); | ||||||
|  |     ~GUI(); | ||||||
|  |     // Methods | ||||||
|  |     int getCurrentTabIndex() const; | ||||||
|  |     QPoint screenCenter() const; | ||||||
|  | }; | ||||||
|  |  | ||||||
|  | #endif | ||||||
| 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 |