Compare commits
	
		
			1 Commits
		
	
	
		
			release-1.
			...
			release-1.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 85de82bcc4 | 
							
								
								
									
										18
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						| @@ -6,11 +6,6 @@ Contributors: | ||||
| * Ishan Arora <ishan@qbittorrent.org> | ||||
| * Grigis Gaëtan <cipher16@gmail.com> | ||||
|  | ||||
| Code from other projects: | ||||
| * files src/ico.cpp src/ico.h | ||||
|   copyright: Malte Starostik <malte@kde.org> | ||||
|   license: LGPL | ||||
|  | ||||
| Images Authors: | ||||
| * files: src/Icons/*.png | ||||
|   copyright: Gnome Icon Theme | ||||
| @@ -22,14 +17,13 @@ Images Authors: | ||||
|   license: Creative Commons Public Domain Dedication | ||||
|   url: http://www.openclipart.org | ||||
|  | ||||
| * files: src/Icons/skin/*.png | ||||
|   files: src/menuicons/YYxYY/*.png | ||||
| * files: src/Icons/skins/*.png | ||||
|   copyright: Mateusz Tobola <tobejodok@qbittorrent.org> | ||||
|   license: GPLv2 | ||||
|  | ||||
| * file: src/Icons/skin/tabs.gif | ||||
|   copyright: Greg Houston <gregory.houston@gmail.com> | ||||
|   license: MIT | ||||
| * files: src/menuicons/YYxYY/*.png | ||||
|   copyright: Mateusz Tobola <tobejodok@qbittorrent.org> | ||||
|   license: GPLv2 | ||||
|  | ||||
| * file: src/search_engine/engines/btjunkie.png | ||||
|   copyright: Downloaded from btjunkie.org | ||||
| @@ -52,9 +46,7 @@ Translations authors: | ||||
|   - Brazilian: Nick Marinho (nickmarinho@gmail.com) | ||||
|   - Bulgarian: Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net) | ||||
|   - Catalan: Gekko Dam Beer (gekko04@users.sourceforge.net) | ||||
|   - Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com) | ||||
|   - Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com) | ||||
|   - Czech: Jirka Vilim (web@tets.cz) | ||||
|   - Chinese (Simplified): Guo Yue (guoyue0418@hotmail.com) | ||||
|   - Danish: Mathias Nielsen (comoneo@gmail.com) | ||||
|   - Dutch: Joost Schipper (heavyjoost@users.sourceforge.net) | ||||
|   - English: Christophe Dumez (chris@qbittorrent.org) | ||||
|   | ||||
							
								
								
									
										14
									
								
								COPYING
									
									
									
									
									
								
							
							
						
						| @@ -1,17 +1,3 @@ | ||||
| qBittorrent is licensed under the GNU General Public License version 2 with the | ||||
| addition of the following special exception: | ||||
|  | ||||
| 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. | ||||
|  | ||||
| ---------- | ||||
|  | ||||
| 		    GNU GENERAL PUBLIC LICENSE | ||||
| 		       Version 2, June 1991 | ||||
|  | ||||
|   | ||||
							
								
								
									
										109
									
								
								Changelog
									
									
									
									
									
								
							
							
						
						| @@ -1,114 +1,11 @@ | ||||
| * Sun Jul 12 2009 - Christophe DUMEZ <chris@qbittorrent.org> - v1.3.4 | ||||
|     - BUGFIX: Fixed IP filter file parsing on 64bits | ||||
|     - BUGFIX: Suppressed QLayout: Attempting to add QLayout "" to properties "properties" warning message when opening a properties dialog | ||||
|     - BUGFIX: Fixed a little bug in search engine plugins helper file | ||||
|     - BUGFIX: Fixed compilation problems with Qt 4.3 | ||||
|     - BUGFIX: Percentages no longer disapear with default cleanlooks style | ||||
|     - BUGFIX: Cleanly fixed popup menus position in lists (no more workarounds) | ||||
|     - BUGFIX: Fixed memory leak in search engine | ||||
|     - BUGFIX: Torrents with an infinite ratio are no longer affected by ratio_limit set in program preferences | ||||
|     - BUGFIX: Display a ratio of 0.0 if total_upload and total_download are both 0 | ||||
|     - BUGFIX: Remove last separator in top tool bar | ||||
|     - BUGFIX: Tuned lists properties to make sure display is correct | ||||
|     - COSMETIC: Display date as well as time in log window | ||||
|  | ||||
| * Sun Apr 5 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.3 | ||||
|     - BUGFIX: Fixed Web UI torrent upload form | ||||
|     - BUGFIX: Fixed unicode support in search engine | ||||
|     - BUGFIX: Fixed search engine bug that prevented a torrent from appearing more than once among all tabs | ||||
|     - LICENSE: Added an exception to the license regarding OpenSSL. | ||||
|     - I18N: Updated Finnish translation | ||||
|  | ||||
| * Sat Mar 7 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.2 | ||||
|     - BUGFIX: Fix top toolbar disabling | ||||
|     - BUGFIX: Fix building with Qt 4.5 | ||||
|     - BUGFIX: RSS items read status is now remembered upon restart | ||||
|  | ||||
| * Mon Jan 26 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.1 | ||||
|     - BUGFIX: Torrents paused due to an I/O error were displayed as queued | ||||
|     - BUGFIX: qBittorrent now prints backtrace in terminal when segfaulting | ||||
|     - BUGFIX: Fixed files progress display in torrent properties | ||||
|     - BUGFIX: Improved torrent ratio calculation | ||||
|     - BUGFIX: Fixed possible crash when parsing filter file | ||||
|     - BUGFIX: Made some code optimization | ||||
|     - BUGFIX: Fixed download/upload speed decrease problems | ||||
|     - I18N: Updated Finnish, Bulgarian and Greek translations | ||||
|  | ||||
| * Fri Jan 9 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.3.0 | ||||
|     - FEATURE: Based on libtorrent-rasterbar v0.14.2 | ||||
|     - FEATURE: Improved ratio calculation system | ||||
|     - FEATURE: Torrent creation code cleanup | ||||
|     - FEATURE: Allow to set maximum number of active seeds (queueing) | ||||
|     - FEATURE: Now seeds priorities are handled automatically by libtorrent-rasterbar (queueing) | ||||
|     - FEATURE: Code cleanup and optimization (save memory and cpu) | ||||
|     - FEATURE: ETA calculation now relies on average speed over all sessions | ||||
|     - FEATURE: Allow to force rechecking torrents | ||||
|     - FEATURE: Added support for 2 new extensions (uTorrent metadata and smart ban plugin) | ||||
|     - FEATURE: Allow to change the save path of torrents after addition | ||||
|     - FEATURE: Got rid of libmagick++ dependency | ||||
|     - FEATURE: Updated Web interface to MochaUI v0.9.5 | ||||
|     - FEATURE: Added notification in WebUI when qBittorrent is not reachable | ||||
|     - FEATURE: Rewrote folder scanning code (Now uses a filesystem watcher) | ||||
|     - FEATURE: Added torrent deletion from hard drive function in Web UI | ||||
|     - FEATURE: Added queueing priority actions in Web UI | ||||
|     - FEATURE: Display progress using progress bars in Web UI | ||||
|     - BUGFIX: Made usage of fastresume data more reliable | ||||
|     - BUGFIX: qBittorrent shutdown is now faster | ||||
|     - BUGFIX: Fixed several memory leaks | ||||
|     - BUGFIX: WebUI is now working with IE7 | ||||
|     - BUGFIX: Fixed spacing problem in toolbar when toggling its visibility | ||||
|     - BUGFIX: Fixed some compilation and Qt4 warnings | ||||
|     - BUGFIX: Do not use an addition dialog for torrents from folder scanning | ||||
|     - BUGFIX: Catch SIGTERM to exit cleanly (e.g. computer shutdown) | ||||
|     - BUGFIX: Improved proxy support code | ||||
|     - BUGFIX: Fixed systray icon tooltip on Windows | ||||
|     - BUGFIX: Proxy settings are now saved even if disabled | ||||
|  | ||||
| * Sun Nov 9 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.2.1 | ||||
|     - BUGFIX: Fixed possible crash when deleting a torrent permanently | ||||
|     - BUGFIX: Queued_for_checking torrents were not displayed as checking in seeding list | ||||
|     - BUGFIX: Speed up startup time when having a lot of torrents | ||||
|  | ||||
| * Wed Oct 29th 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.2.0 | ||||
| * Unknown - Christophe Dumez <chris@qbittorrent.org> - v1.2.0 | ||||
|     - FEATURE: Torrent queueing system (with priorities) | ||||
|     - FEATURE: DHT is always ON (no longer used as fallback) | ||||
|     - FEATURE: The number of DHT nodes is displayed | ||||
|     - FEATURE: RSS can now be disabled from program preferences | ||||
|     - FEATURE: Added collapse/expand all buttons in addition and properties dialogs | ||||
|     - FEATURE: Can have different proxies for Bittorrent and search engine | ||||
|     - FEATURE: Allow multiple item selection in Web UI transfer list | ||||
|     - FEATURE: Moved uploads to a separate list in Web UI | ||||
|     - BUGFIX: Totally rewritten Web UI list refresh system (fixed memory leak) | ||||
|     - BUGFIX: Disable ETA calculation when ETA column is hidden | ||||
|     - BUGFIX: Removed "disconnected" connection state, detection was far from perfect | ||||
|     - BUGFIX: Torrents are no longer starting from scratch when changing default save path (when torrent addition dialog is disabled) | ||||
|     - BUGFIX: Single instance code is now more reliable on Qt >= 4.4 | ||||
|     - COSMETIC: Transfer speed, ratio, connection status and DHT nodes are displayed in status bar     | ||||
|     - COSMETIC: Transfer speed, ratio and DHT nodes are displayed in status bar     | ||||
|     - COSMETIC: RSS Tab is now hidden as a default | ||||
|     - COSMETIC: Allow to hide or display top toolbar | ||||
|     - COSMETIC: Log is now in a separate dialog | ||||
|  | ||||
| * Sun Sept 14 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.4 | ||||
|     - FEATURE: DHT is no longer used as fallback only | ||||
|     - FEATURE: Ported WebUI to Mootools v1.2 | ||||
|     - BUGFIX: Fixed 'start seeding after torrent creation' feature | ||||
|     - BUGFIX: Fixed compilation with boost v1.36 | ||||
|     - BUGFIX: Some code optimization | ||||
|     - BUGFIX: Fixed memory leak in Web UI | ||||
|     - BUGFIX: Fixed problems with column sorting | ||||
|     - BUGFIX: Improved code for pausing torrents on startup | ||||
|     - BUGFIX: Torrent addition dialog is now disabled for downloads from WebUI | ||||
|     - BUGFIX: Give focus to input field in WebUI download dialog | ||||
|  | ||||
| * Tue Aug 26 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.3 | ||||
|     - BUGFIX: Fixed ratio saving for seeding torrents | ||||
|     - I18N: Added czech and traditional chinese translations | ||||
|  | ||||
| * Sun Aug 17 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.2 | ||||
|     - BUGFIX: Fixed progress calculation | ||||
|     - BUGFIX: Fixed finished torrent detection | ||||
|  | ||||
| * Fri Aug 01 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.1 | ||||
|     - BUGFIX: Fixed bad resource file for icons | ||||
|  | ||||
| * Fri Aug 01 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.1.0 | ||||
|     - FEATURE: Web interface to control qbittorrent (Ishan Arora) | ||||
|   | ||||
							
								
								
									
										2
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						| @@ -17,7 +17,7 @@ Dependencies: | ||||
| - Qt >= 4.3.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml) | ||||
|   Qt >= 4.4.0 is advised | ||||
|  | ||||
| - libtorrent-rasterbar by Arvid Norberg (>= v0.14.0 REQUIRED) | ||||
| - libtorrent-rasterbar by Arvid Norberg (>= v0.13.1 REQUIRED) | ||||
|     -> http://www.qbittorrent.org/download.php (advised) | ||||
|     -> http://www.libtorrent.net | ||||
|     Be careful: another library (the one used by rTorrent) uses a similar name. | ||||
|   | ||||
							
								
								
									
										59
									
								
								TODO
									
									
									
									
									
								
							
							
						
						| @@ -1,21 +1,46 @@ | ||||
| See https://blueprints.launchpad.net/qbittorrent/ | ||||
| // Easy | ||||
| - Translations into as many languages as possible | ||||
| - Use Launchpad/Rosetta for translations once it supports TS files | ||||
|  | ||||
| // translations done in v1.3.0 | ||||
| - Romanian | ||||
| - Russian | ||||
| - Hungarian | ||||
| - German | ||||
| - Chinese (traditional) | ||||
| - Chinese (simplified) | ||||
| - Italian | ||||
| - Swedish | ||||
| - Turkish | ||||
| // Intermediate | ||||
| - Port on MacOS, Windows (and create an installer for Windows) - Slow progress | ||||
| - Add some transparency (menus,...), improve look / usabilty | ||||
| - Skins support? (contact Mateusz) | ||||
|  | ||||
| // Harder | ||||
| - Torrent scheduler ala µtorrent/Bitcomet | ||||
|  | ||||
| // Waiting for libtorrent | ||||
| - Allow to prioritize torrents (may code this in qBittorrent?) | ||||
|  | ||||
| // Unsure | ||||
| - Display the peers we are connected to for each torrent with infos (like flag, dl/up speeds, ...) | ||||
| - Azureus spoofing to prevent ban from trackers? | ||||
| - Option to shutdown computer when downloads are finished | ||||
| - NAT checker/Tester | ||||
| - Display hard drive space left? | ||||
| - Make use of dbus on Linux for the single instance instead of socket communication? | ||||
|   (http://techbase.kde.org/Development/Tutorials/D-Bus/Accessing_Interfaces) | ||||
| - When favicon can't be downloaded, try to parse the webpage for: | ||||
|   <link rel="icon" href="http://example.com/favicon.ico" type="image/vnd.microsoft.icon"> | ||||
|     * Be careful, the link can be relative | ||||
| - Improve search plugin install (choose in a list taken from plugins.qbittorrent.org) | ||||
| - support zipped torrents? (useful?) | ||||
| - Allow to limit the number of downloading torrents simultaneously (other are paused until a download finishes) | ||||
|  | ||||
| // in v1.2.0 | ||||
| - Allow user to organize the downloads into categories/folders? | ||||
|  | ||||
| // in v1.1.0 | ||||
| - Stop calculating ETAs when ETA column is hidden | ||||
| -> See https://blueprints.launchpad.net/qbittorrent | ||||
|  | ||||
| Translations updated: | ||||
| - French | ||||
| - Slovak | ||||
| - Czech | ||||
| - Korean | ||||
| - Chinese | ||||
| - Polish | ||||
| - Portuguese | ||||
| - Brazilian | ||||
| - Greek | ||||
| - Bulgarian | ||||
| - Finnish | ||||
| - Slovak | ||||
| - Swedish | ||||
| - Romanian | ||||
|   | ||||
							
								
								
									
										113
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -26,6 +26,9 @@ Dependency options: | ||||
|   --with-libboost-inc=[path]              Path to libboost include files | ||||
|   --with-libcurl-inc=[path]               Path to libcurl include files | ||||
|   --with-libcurl-lib=[path]               Path to libcurl library files | ||||
|   --disable-libmagick                    Disable use of libmagick | ||||
|   --with-libmagick-inc=[path]             Path to libmagick++ include files | ||||
|   --with-libmagick-lib=[path]             Path to libmagick++ library files | ||||
|   --disable-libzzip                      Disable use of libzzip | ||||
|   --with-libzzip-inc=[path]               Path to libzzip++ include files | ||||
|   --with-libzzip-lib=[path]               Path to libzzip++ library files | ||||
| @@ -175,6 +178,21 @@ while [ $# -gt 0 ]; do | ||||
| 			shift | ||||
| 			;; | ||||
|  | ||||
| 		--disable-libmagick) | ||||
| 			QC_DISABLE_libmagick="Y" | ||||
| 			shift | ||||
| 			;; | ||||
|  | ||||
| 		--with-libmagick-inc=*) | ||||
| 			QC_WITH_LIBMAGICK_INC=$optarg | ||||
| 			shift | ||||
| 			;; | ||||
|  | ||||
| 		--with-libmagick-lib=*) | ||||
| 			QC_WITH_LIBMAGICK_LIB=$optarg | ||||
| 			shift | ||||
| 			;; | ||||
|  | ||||
| 		--disable-libzzip) | ||||
| 			QC_DISABLE_libzzip="Y" | ||||
| 			shift | ||||
| @@ -217,6 +235,9 @@ echo QC_WITH_LIBTORRENT_STATIC_LIB=$QC_WITH_LIBTORRENT_STATIC_LIB | ||||
| echo QC_WITH_LIBBOOST_INC=$QC_WITH_LIBBOOST_INC | ||||
| echo QC_WITH_LIBCURL_INC=$QC_WITH_LIBCURL_INC | ||||
| echo QC_WITH_LIBCURL_LIB=$QC_WITH_LIBCURL_LIB | ||||
| echo QC_DISABLE_libmagick=$QC_DISABLE_libmagick | ||||
| echo QC_WITH_LIBMAGICK_INC=$QC_WITH_LIBMAGICK_INC | ||||
| echo QC_WITH_LIBMAGICK_LIB=$QC_WITH_LIBMAGICK_LIB | ||||
| echo QC_DISABLE_libzzip=$QC_DISABLE_libzzip | ||||
| echo QC_WITH_LIBZZIP_INC=$QC_WITH_LIBZZIP_INC | ||||
| echo QC_WITH_LIBZZIP_LIB=$QC_WITH_LIBZZIP_LIB | ||||
| @@ -355,13 +376,13 @@ class qc_libtorrent_rasterbar : public ConfObj | ||||
| { | ||||
| public: | ||||
| 	qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {} | ||||
| 	QString name() const { return "libtorrent-rasterbar >= 0.14"; } | ||||
| 	QString name() const { return "libtorrent-rasterbar >= 0.13"; } | ||||
| 	QString shortname() const { return "libtorrent-rasterbar"; } | ||||
| 	bool exec(){ | ||||
|         	QString s; | ||||
| 		s = conf->getenv("QC_WITH_LIBTORRENT_INC"); | ||||
| 		if(!s.isEmpty()) { | ||||
| 			if(!conf->checkHeader(s, "libtorrent/magnet_uri.hpp")) { | ||||
| 			if(!conf->checkHeader(s, "libtorrent/lsd.hpp")) { | ||||
| 				return false; | ||||
|       			} | ||||
| 		}else{ | ||||
| @@ -370,7 +391,7 @@ public: | ||||
| 			sl << "/usr/local/include"; | ||||
| 			bool found = false; | ||||
| 			foreach(s, sl){ | ||||
| 				if(conf->checkHeader(s, "libtorrent/magnet_uri.hpp")){ | ||||
| 				if(conf->checkHeader(s, "libtorrent/lsd.hpp")){ | ||||
| 					found = true; | ||||
| 					break; | ||||
| 				} | ||||
| @@ -532,6 +553,86 @@ public: | ||||
| 		return true; | ||||
| 	} | ||||
| }; | ||||
| #line 1 "libmagick.qcm" | ||||
| /* | ||||
| -----BEGIN QCMOD----- | ||||
| name: libmagick | ||||
| arg: with-libmagick-inc=[path], Path to libmagick++ include files | ||||
| arg: with-libmagick-lib=[path], Path to libmagick++ library files | ||||
| -----END QCMOD----- | ||||
| */ | ||||
| #include <QProcess> | ||||
| class qc_libmagick : public ConfObj | ||||
| { | ||||
| public: | ||||
| 	qc_libmagick(Conf *c) : ConfObj(c) {} | ||||
| 	QString name() const { return "ImageMagick library (libmagick++)"; } | ||||
| 	QString shortname() const { return "libmagick++"; } | ||||
| 	QString checkString() const { | ||||
| 		if(!conf->getenv("QC_DISABLE_libmagick").isEmpty()) | ||||
| 			return ""; | ||||
| 		return ConfObj::checkString(); | ||||
| 	} | ||||
| 	bool exec(){ | ||||
| 		if(!conf->getenv("QC_DISABLE_libmagick").isEmpty()) | ||||
| 			return false; | ||||
| 		QString s; | ||||
| 		s = conf->getenv("QC_WITH_LIBMAGICK_INC"); | ||||
| 		if(!s.isEmpty()) { | ||||
| 			if(!conf->checkHeader(s, "Magick++.h")) { | ||||
| 				return false; | ||||
|     			} | ||||
| 		}else{ | ||||
| 			QStringList sl; | ||||
| 			sl << "/usr/include"; | ||||
| 			sl << "/usr/local/include"; | ||||
| 			bool found = false; | ||||
| 			foreach(s, sl){ | ||||
| 				if(conf->checkHeader(s, "Magick++.h")){ | ||||
| 					found = true; | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| 			if(!found) | ||||
| 				return false; | ||||
| 		} | ||||
| 		conf->addIncludePath(s); | ||||
|  | ||||
| 		s = conf->getenv("QC_WITH_LIBMAGICK_LIB"); | ||||
| 		if(!s.isEmpty()) { | ||||
|                         if(!conf->checkLibrary(s, "Magick++")) { | ||||
| 				return false; | ||||
| 			} | ||||
| 		}else{ | ||||
| 			QStringList sl; | ||||
| 			sl << "/usr/lib/"; | ||||
| 			sl << "/usr/lib64/"; | ||||
| 			sl << "/usr/local/lib/"; | ||||
| 			sl << "/usr/local/lib64/"; | ||||
| 			bool found = false; | ||||
| 			foreach(s, sl){ | ||||
| 				if(conf->checkLibrary(s, "Magick++")) { | ||||
| 					found = true; | ||||
|                                         break; | ||||
| 				} | ||||
| 			} | ||||
| 			if(!found) | ||||
|                          	return false; | ||||
| 		} | ||||
| 		conf->addLib(QString("-L") + s); | ||||
| 		QProcess magickConfig; | ||||
| 		QStringList params; | ||||
| 		params << "--libs"; | ||||
| 		magickConfig.start("Magick++-config", params, QIODevice::ReadOnly); | ||||
| 		magickConfig.waitForStarted(); | ||||
| 		magickConfig.waitForFinished(); | ||||
| 		QByteArray result = magickConfig.readAll(); | ||||
| 		result = result.replace("\n", ""); | ||||
| 		conf->addLib(result.data()); | ||||
| 		conf->addDefine("HAVE_MAGICK"); | ||||
| 		return true; | ||||
| 	} | ||||
| }; | ||||
| #line 1 "libzzip.qcm" | ||||
| /* | ||||
| -----BEGIN QCMOD----- | ||||
| @@ -619,6 +720,9 @@ cat >$1/modules_new.cpp <<EOT | ||||
|     o = new qc_libcurl(conf); | ||||
|     o->required = true; | ||||
|     o->disabled = false; | ||||
|     o = new qc_libmagick(conf); | ||||
|     o->required = false; | ||||
|     o->disabled = false; | ||||
|     o = new qc_libzzip(conf); | ||||
|     o->required = false; | ||||
|     o->disabled = false; | ||||
| @@ -1573,6 +1677,9 @@ export QC_WITH_LIBTORRENT_STATIC_LIB | ||||
| export QC_WITH_LIBBOOST_INC | ||||
| export QC_WITH_LIBCURL_INC | ||||
| export QC_WITH_LIBCURL_LIB | ||||
| export QC_DISABLE_libmagick | ||||
| export QC_WITH_LIBMAGICK_INC | ||||
| export QC_WITH_LIBMAGICK_LIB | ||||
| export QC_DISABLE_libzzip | ||||
| export QC_WITH_LIBZZIP_INC | ||||
| export QC_WITH_LIBZZIP_LIB | ||||
|   | ||||
| @@ -15,5 +15,6 @@ | ||||
|   <dep type='libcurl'> | ||||
|     <required/> | ||||
|   </dep> | ||||
|   <dep type='libmagick'/> | ||||
|   <dep type='libzzip'/> | ||||
| </qconf> | ||||
|   | ||||
							
								
								
									
										65
									
								
								qcm/libcommoncpp2.qcm
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -0,0 +1,65 @@ | ||||
| /* | ||||
| -----BEGIN QCMOD----- | ||||
| name: libcommoncpp2 | ||||
| arg: with-libcommoncpp2-inc=[path], Path to libcommoncpp2 include files | ||||
| arg: with-libcommoncpp2-lib=[path], Path to libcommoncpp2 library files | ||||
| -----END QCMOD----- | ||||
| */ | ||||
| class qc_libcommoncpp2 : public ConfObj | ||||
| { | ||||
| public: | ||||
| 	qc_libcommoncpp2(Conf *c) : ConfObj(c) {} | ||||
| 	QString name() const { return "GNU Common C++ library (libcommoncpp2)"; } | ||||
| 	QString shortname() const { return "libcommoncpp2"; } | ||||
| 	bool exec(){ | ||||
|     QString s; | ||||
| 		s = conf->getenv("QC_WITH_LIBCOMMONCPP2_INC"); | ||||
| 		if(!s.isEmpty()) { | ||||
| 			if(!conf->checkHeader(s, "cc++/url.h")) { | ||||
| 				return false; | ||||
|     	} | ||||
| 		}else{ | ||||
| 			QStringList sl; | ||||
| 			sl << "/usr/include"; | ||||
| 			sl << "/usr/local/include"; | ||||
| 			bool found = false; | ||||
| 			foreach(s, sl){ | ||||
| 				if(conf->checkHeader(s, "cc++/url.h")){ | ||||
| 					found = true; | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| 			if(!found) { | ||||
| 				return false; | ||||
|       } | ||||
| 		} | ||||
| 		conf->addIncludePath(s); | ||||
|  | ||||
| 		s = conf->getenv("QC_WITH_LIBCOMMONCPP2_LIB"); | ||||
| 		if(!s.isEmpty()) { | ||||
| 			if(!QFile::exists(s+QString("/libccext2.so"))) | ||||
| 		    return false; | ||||
| 			if(!QFile::exists(s+QString("/libccgnu2.so"))) | ||||
| 				return false; | ||||
|     	conf->addLib(QString("-L") + s); | ||||
| 		}else{ | ||||
| 			QStringList sl; | ||||
| 			sl << "/usr/lib/"; | ||||
| 			sl << "/usr/lib64/"; | ||||
| 			sl << "/usr/local/lib/"; | ||||
| 			sl << "/usr/local/lib64/"; | ||||
| 			bool found = false; | ||||
| 			foreach(s, sl){ | ||||
| 				if(QFile::exists(s+QString("libccext2.so"))){ | ||||
| 				  if(QFile::exists(s+QString("libccgnu2.so"))){ | ||||
| 						found = true; | ||||
| 						break; | ||||
| 					} | ||||
| 				} | ||||
| 			} | ||||
| 			if(!found) return false; | ||||
| 			conf->addLib(QString("-L") + s); | ||||
| 		} | ||||
| 		return true; | ||||
| 	} | ||||
| }; | ||||
| @@ -6,18 +6,17 @@ arg: with-libtorrent-lib=[path], Path to libtorrent-rasterbar library files | ||||
| arg: with-libtorrent-static-lib=[path], Path to libtorrent-rasterbar .a file | ||||
| -----END QCMOD----- | ||||
| */ | ||||
| // see  Conf::findPkgConfig | ||||
| class qc_libtorrent_rasterbar : public ConfObj | ||||
| { | ||||
| public: | ||||
| 	qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {} | ||||
| 	QString name() const { return "libtorrent-rasterbar >= 0.14"; } | ||||
| 	QString name() const { return "libtorrent-rasterbar >= 0.13"; } | ||||
| 	QString shortname() const { return "libtorrent-rasterbar"; } | ||||
| 	bool exec(){ | ||||
|         	QString s; | ||||
| 		s = conf->getenv("QC_WITH_LIBTORRENT_INC"); | ||||
| 		if(!s.isEmpty()) { | ||||
| 			if(!conf->checkHeader(s, "libtorrent/magnet_uri.hpp")) { | ||||
| 			if(!conf->checkHeader(s, "libtorrent/lsd.hpp")) { | ||||
| 				return false; | ||||
|       			} | ||||
| 		}else{ | ||||
| @@ -26,7 +25,7 @@ public: | ||||
| 			sl << "/usr/local/include"; | ||||
| 			bool found = false; | ||||
| 			foreach(s, sl){ | ||||
| 				if(conf->checkHeader(s, "libtorrent/magnet_uri.hpp")){ | ||||
| 				if(conf->checkHeader(s, "libtorrent/lsd.hpp")){ | ||||
| 					found = true; | ||||
| 					break; | ||||
| 				} | ||||
|   | ||||
| @@ -16,15 +16,6 @@ | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
| @@ -81,10 +72,7 @@ class DLListDelegate: public QItemDelegate { | ||||
|         case RATIO:{ | ||||
|           QItemDelegate::drawBackground(painter, opt, index); | ||||
|           double ratio = index.data().toDouble(); | ||||
|           if(ratio > 100.) | ||||
|               QItemDelegate::drawDisplay(painter, opt, opt.rect, QString::fromUtf8("∞")); | ||||
|           else | ||||
|               QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1))); | ||||
|           QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1))); | ||||
|           break; | ||||
|         } | ||||
|         case PROGRESS:{ | ||||
|   | ||||
| @@ -16,15 +16,6 @@ | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
| @@ -46,9 +37,8 @@ | ||||
| #define F_UPSPEED 2 | ||||
| #define F_LEECH 3 | ||||
| #define F_RATIO 4 | ||||
| #define F_HASH 5 | ||||
|  | ||||
| #define MAX_RATIO 100. | ||||
| #define F_PRIORITY 5 | ||||
| #define F_HASH 6 | ||||
|  | ||||
| class FinishedListDelegate: public QItemDelegate { | ||||
|   Q_OBJECT | ||||
| @@ -74,10 +64,7 @@ class FinishedListDelegate: public QItemDelegate { | ||||
|         case F_RATIO:{ | ||||
|           QItemDelegate::drawBackground(painter, opt, index); | ||||
|           double ratio = index.data().toDouble(); | ||||
|           if(ratio > MAX_RATIO) | ||||
|             QItemDelegate::drawDisplay(painter, opt, opt.rect, QString::fromUtf8("∞")); | ||||
|           else | ||||
|             QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1))); | ||||
|           QItemDelegate::drawDisplay(painter, opt, opt.rect, QString(QByteArray::number(ratio, 'f', 1))); | ||||
|           break; | ||||
|         } | ||||
|         default: | ||||
|   | ||||
| @@ -16,15 +16,6 @@ | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
| @@ -69,11 +60,11 @@ class FinishedTorrents : public QWidget, public Ui::seeding { | ||||
|     void displayFinishedHoSMenu(const QPoint&); | ||||
|     void setRowColor(int row, QString color); | ||||
|     void saveColWidthFinishedList() const; | ||||
|     void toggleFinishedListSortOrder(int index); | ||||
|     void sortFinishedList(int index=-1, Qt::SortOrder sortOrder=Qt::AscendingOrder); | ||||
|     void sortFinishedList(int index); | ||||
|     void sortFinishedListFloat(int index, Qt::SortOrder sortOrder); | ||||
|     void sortFinishedListString(int index, Qt::SortOrder sortOrder); | ||||
|     void updateFileSize(QString hash); | ||||
|     void torrentAdded(QString path, QTorrentHandle& h, bool fastResume); | ||||
|     void on_actionSet_upload_limit_triggered(); | ||||
|     void notifyTorrentDoubleClicked(const QModelIndex& index); | ||||
|     void hideOrShowColumnName(); | ||||
| @@ -81,16 +72,17 @@ class FinishedTorrents : public QWidget, public Ui::seeding { | ||||
|     void hideOrShowColumnUpSpeed(); | ||||
|     void hideOrShowColumnLeechers(); | ||||
|     void hideOrShowColumnRatio(); | ||||
|     void forceRecheck(); | ||||
|     void hideOrShowColumnPriority(); | ||||
|  | ||||
|   public slots: | ||||
|     void addTorrent(QString hash); | ||||
|     void updateTorrent(QTorrentHandle h); | ||||
|     void updateFinishedList(); | ||||
|     void pauseTorrent(QString hash); | ||||
|     void resumeTorrent(QString hash); | ||||
|     void propertiesSelection(); | ||||
|     void deleteTorrent(QString hash); | ||||
|     void showPropertiesFromHash(QString hash); | ||||
|     void loadLastSortedColumn(); | ||||
|     void hidePriorityColumn(bool hide); | ||||
|  | ||||
|   signals: | ||||
|     void torrentMovedFromFinishedList(QString); | ||||
|   | ||||
							
								
								
									
										739
									
								
								src/GUI.cpp
									
									
									
									
									
								
							
							
						
						
							
								
								
									
										37
									
								
								src/GUI.h
									
									
									
									
									
								
							
							
						
						| @@ -16,15 +16,6 @@ | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
| @@ -33,7 +24,7 @@ | ||||
|  | ||||
| #include <QProcess> | ||||
| #include <QSystemTrayIcon> | ||||
| #include <QPointer> | ||||
|  | ||||
| #include "ui_MainWindow.h" | ||||
| #include "qtorrenthandle.h" | ||||
|  | ||||
| @@ -73,9 +64,9 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; | ||||
|     // GUI related | ||||
|     QTabWidget *tabs; | ||||
|     QPointer<options_imp> options; | ||||
|     options_imp *options; | ||||
|     QSystemTrayIcon *myTrayIcon; | ||||
|     QPointer<QTimer> systrayCreator; | ||||
|     QTimer *systrayCreator; | ||||
|     QMenu *myTrayIconMenu; | ||||
|     DownloadingTorrents *downloadingTorrentTab; | ||||
|     FinishedTorrents *finishedTorrentTab; | ||||
| @@ -92,7 +83,6 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     QFrame *statusSep1; | ||||
|     QFrame *statusSep2; | ||||
|     QFrame *statusSep3; | ||||
|     QFrame *statusSep4; | ||||
|     // Keyboard shortcuts | ||||
|     QShortcut *switchSearchShortcut; | ||||
|     QShortcut *switchSearchShortcut2; | ||||
| @@ -100,13 +90,12 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     QShortcut *switchUpShortcut; | ||||
|     QShortcut *switchRSSShortcut; | ||||
|     QAction *prioSeparator; | ||||
|     QAction *prioSeparator2; | ||||
|     // Search | ||||
|     SearchEngine *searchEngine; | ||||
|     // RSS | ||||
|     RSSImp *rssWidget; | ||||
|     // Web UI | ||||
|     QPointer<HttpServer> httpServer; | ||||
|     HttpServer *httpServer; | ||||
|     // Misc | ||||
| #ifdef QT_4_4 | ||||
|     QLocalServer *localServer; | ||||
| @@ -125,7 +114,6 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     void on_actionCreate_torrent_triggered(); | ||||
|     void on_actionWebsite_triggered() const; | ||||
|     void on_actionBugReport_triggered() const; | ||||
|     void on_actionShow_console_triggered(); | ||||
|     void readParamsOnSocket(); | ||||
|     void acceptConnection(); | ||||
|     void togglePausedState(QString hash); | ||||
| @@ -137,6 +125,8 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     void readSettings(); | ||||
|     void on_actionExit_triggered(); | ||||
|     void createTrayIcon(); | ||||
|     void updateUnfinishedTorrentNumberCalc(); | ||||
|     void updateFinishedTorrentNumberCalc(); | ||||
|     void updateUnfinishedTorrentNumber(unsigned int nb); | ||||
|     void updateFinishedTorrentNumber(unsigned int nb); | ||||
|     void fullDiskError(QTorrentHandle& h) const; | ||||
| @@ -165,21 +155,21 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     void processParams(const QStringList& params); | ||||
|     void addTorrent(QString path); | ||||
|     void addUnauthenticatedTracker(QPair<QTorrentHandle,QString> tracker); | ||||
|     void processScannedFiles(const QStringList& params); | ||||
|     void processDownloadedFiles(QString path, QString url); | ||||
|     void downloadFromURLList(const QStringList& urls); | ||||
|     void deleteTorrent(QString hash); | ||||
|     void deleteRatioTorrent(QString fileName); | ||||
|     void finishedTorrent(QTorrentHandle& h) const; | ||||
|     void addedTorrent(QTorrentHandle& h) const; | ||||
|     void checkedTorrent(QTorrentHandle& h) const; | ||||
|     void pausedTorrent(QTorrentHandle& h) const; | ||||
|     void resumedTorrent(QTorrentHandle& h) const; | ||||
|     void updateLists(bool force=false); | ||||
|     void torrentChecked(QString hash) const; | ||||
|     void updateLists(); | ||||
|     bool initWebUi(QString username, QString password, int port); | ||||
|     void pauseTorrent(QString hash); | ||||
|     void on_actionIncreasePriority_triggered(); | ||||
|     void on_actionDecreasePriority_triggered(); | ||||
|     // Options slots | ||||
|     void on_actionOptions_triggered(); | ||||
|     void OptionsSaved(bool deleteOptions); | ||||
|     void OptionsSaved(QString info, bool deleteOptions); | ||||
|     // HTTP slots | ||||
|     void on_actionDownload_from_URL_triggered(); | ||||
|  | ||||
| @@ -193,8 +183,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|  | ||||
|   protected: | ||||
|     void closeEvent(QCloseEvent *); | ||||
|     void showEvent(QShowEvent *); | ||||
|     bool event(QEvent * event); | ||||
|     void hideEvent(QHideEvent *); | ||||
|     void displayRSSTab(bool enable); | ||||
|  | ||||
|   public: | ||||
|   | ||||
| Before Width: | Height: | Size: 455 B | 
| Before Width: | Height: | Size: 333 B | 
| @@ -1,6 +1,6 @@ | ||||
| [Desktop Entry] | ||||
| Categories=Qt;Network;P2P | ||||
| Comment=V1.3.4 | ||||
| Comment=V1.2.0 | ||||
| Exec=qbittorrent %f | ||||
| GenericName=Bittorrent client | ||||
| GenericName[bg]=Торент клиент | ||||
|   | ||||
| Before Width: | Height: | Size: 1.4 KiB After Width: | Height: | Size: 2.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/skin/connecting.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 576 B | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/skin/disconnected.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.0 KiB | 
| Before Width: | Height: | Size: 1.5 KiB After Width: | Height: | Size: 2.8 KiB | 
| Before Width: | Height: | Size: 2.0 KiB | 
| Before Width: | Height: | Size: 76 KiB After Width: | Height: | Size: 76 KiB | 
| @@ -41,8 +41,6 @@ | ||||
|     <addaction name="separator" /> | ||||
|     <addaction name="actionDelete" /> | ||||
|     <addaction name="actionDelete_Permanently" /> | ||||
|     <addaction name="actionDecreasePriority" /> | ||||
|     <addaction name="actionIncreasePriority" /> | ||||
|    </widget> | ||||
|    <widget class="QMenu" name="menu_Help" > | ||||
|     <property name="title" > | ||||
| @@ -58,7 +56,6 @@ | ||||
|      <string>Options</string> | ||||
|     </property> | ||||
|     <addaction name="actionOptions" /> | ||||
|     <addaction name="actionShow_console" /> | ||||
|    </widget> | ||||
|    <widget class="QMenu" name="menu_File" > | ||||
|     <property name="title" > | ||||
| @@ -121,6 +118,7 @@ | ||||
|    <addaction name="actionIncreasePriority" /> | ||||
|    <addaction name="separator" /> | ||||
|    <addaction name="actionExit" /> | ||||
|    <addaction name="separator" /> | ||||
|   </widget> | ||||
|   <widget class="QStatusBar" name="statusBar" /> | ||||
|   <action name="actionOpen" > | ||||
| @@ -255,14 +253,6 @@ | ||||
|     <bool>false</bool> | ||||
|    </property> | ||||
|   </action> | ||||
|   <action name="actionShow_console" > | ||||
|    <property name="icon" > | ||||
|     <iconset resource="icons.qrc" >:/Icons/log.png</iconset> | ||||
|    </property> | ||||
|    <property name="text" > | ||||
|     <string>Console</string> | ||||
|    </property> | ||||
|   </action> | ||||
|  </widget> | ||||
|  <resources> | ||||
|   <include location="icons.qrc" /> | ||||
|   | ||||
| @@ -16,15 +16,6 @@ | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
|   | ||||
| @@ -16,15 +16,6 @@ | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
|   | ||||
| @@ -16,15 +16,6 @@ | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
|   | ||||
| @@ -16,15 +16,6 @@ | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
| @@ -56,14 +47,13 @@ SearchTab::SearchTab(SearchEngine *parent) : QWidget() | ||||
|      | ||||
|     setLayout(box); | ||||
|     // Set Search results list model | ||||
|     SearchListModel = new QStandardItemModel(0,6); | ||||
|     SearchListModel = new QStandardItemModel(0,5); | ||||
|     SearchListModel->setHeaderData(SEARCH_NAME, Qt::Horizontal, tr("Name", "i.e: file name")); | ||||
|     SearchListModel->setHeaderData(SEARCH_SIZE, Qt::Horizontal, tr("Size", "i.e: file size")); | ||||
|     SearchListModel->setHeaderData(SEARCH_SEEDERS, Qt::Horizontal, tr("Seeders", "i.e: Number of full sources")); | ||||
|     SearchListModel->setHeaderData(SEARCH_LEECHERS, Qt::Horizontal, tr("Leechers", "i.e: Number of partial sources")); | ||||
|     SearchListModel->setHeaderData(SEARCH_ENGINE, Qt::Horizontal, tr("Search engine")); | ||||
|     resultsBrowser->setModel(SearchListModel); | ||||
|     resultsBrowser->hideColumn(URL_COLUMN); // Hide url column | ||||
|     SearchDelegate = new SearchListDelegate(); | ||||
|     resultsBrowser->setItemDelegate(SearchDelegate); | ||||
|     // Make search list header clickable for sorting | ||||
| @@ -138,7 +128,7 @@ void SearchTab::sortSearchListInt(int index, Qt::SortOrder sortOrder){ | ||||
|   for(int row=0; row<lines.size(); ++row){ | ||||
|     SearchListModel->insertRow(SearchListModel->rowCount()); | ||||
|     int sourceRow = lines[row].first; | ||||
|     for(int col=0; col<6; ++col){ | ||||
|     for(int col=0; col<5; ++col){ | ||||
|       SearchListModel->setData(SearchListModel->index(nbRows_old+row, col), SearchListModel->data(SearchListModel->index(sourceRow, col))); | ||||
|       SearchListModel->setData(SearchListModel->index(nbRows_old+row, col), SearchListModel->data(SearchListModel->index(sourceRow, col), Qt::ForegroundRole), Qt::ForegroundRole); | ||||
|     } | ||||
| @@ -158,7 +148,7 @@ void SearchTab::sortSearchListString(int index, Qt::SortOrder sortOrder){ | ||||
|   for(int row=0; row<nbRows_old; ++row){ | ||||
|     SearchListModel->insertRow(SearchListModel->rowCount()); | ||||
|     int sourceRow = lines[row].first; | ||||
|     for(int col=0; col<6; ++col){ | ||||
|     for(int col=0; col<5; ++col){ | ||||
|       SearchListModel->setData(SearchListModel->index(nbRows_old+row, col), SearchListModel->data(SearchListModel->index(sourceRow, col))); | ||||
|       SearchListModel->setData(SearchListModel->index(nbRows_old+row, col), SearchListModel->data(SearchListModel->index(sourceRow, col), Qt::ForegroundRole), Qt::ForegroundRole); | ||||
|     } | ||||
|   | ||||
| @@ -16,15 +16,6 @@ | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
| @@ -33,9 +24,6 @@ | ||||
|  | ||||
| #include "ui_search.h" | ||||
|  | ||||
| #define ENGINE_URL_COLUMN 4 | ||||
| #define URL_COLUMN 5 | ||||
|  | ||||
| class SearchListDelegate; | ||||
| class SearchEngine; | ||||
| class QTreeView; | ||||
|   | ||||
| @@ -16,15 +16,6 @@ | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
|   | ||||
| @@ -16,15 +16,6 @@ | ||||
|  * 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 | ||||
|  */ | ||||
|  | ||||
| @@ -66,11 +57,9 @@ class about : public QDialog, private Ui::AboutDlg{ | ||||
|           - <u>Bulgarian:</u> Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net)<br>\ | ||||
|           - <u>Catalan:</u> Gekko Dam Beer (gekko04@users.sourceforge.net)<br>\ | ||||
|           - <u>Chinese (Simplified):</u> Guo Yue (yue.guo0418@gmail.com)<br>\ | ||||
|           - <u>Chinese (Traditional):</u> Yi-Shun Wang (dnextstep@gmail.com)<br>\ | ||||
|           - <u>Czech:</u> Jirka Vilim (web@tets.cz)<br>\ | ||||
|           - <u>Danish:</u> Mathias Nielsen (comoneo@gmail.com)<br>\ | ||||
|           - <u>Dutch:</u> Joost Schipper (heavyjoost@users.sourceforge.net) and Peter Koeleman (peter@peerweb.nl)<br>\ | ||||
|           - <u>Finnish:</u> Niklas Laxström (nikerabbit@users.sourceforge.net) and Pekka Niemi (pekka.niemi@iki.fi)<br>\ | ||||
|           - <u>Finnish:</u> Niklas Laxström (nikerabbit@users.sourceforge.net)<br>\ | ||||
|           - <u>German:</u> Niels Hoffmann (zentralmaschine@users.sourceforge.net)<br>\ | ||||
|           - <u>Greek:</u> Tsvetan Bankov (emerge_life@users.sourceforge.net)<br>\ | ||||
|           - <u>Hungarian:</u> Majoros Péter (majoros.peterj@gmail.com)<br>\ | ||||
| @@ -85,7 +74,7 @@ class about : public QDialog, private Ui::AboutDlg{ | ||||
|           - <u>Slovak:</u>  helix84<br>\ | ||||
|           - <u>Spanish:</u> Vicente Raul Plata Fonseca (silverxnt@users.sourceforge.net) and Gabriel de Oliveira (deadloop@hotmail.com)<br>\ | ||||
|           - <u>Swedish:</u> Daniel Nylander (po@danielnylander.se)<br>\ | ||||
|           - <u>Turkish:</u> Hasan YILMAZ (iletisim@hedefturkce.com) and Erdem Bingöl (erdem84@gmail.com)<br>\ | ||||
|           - <u>Turkish:</u> Erdem Bingöl (erdem84@gmail.com)<br>\ | ||||
|           - <u>Ukrainian:</u> Andrey Shpachenko (masterfix@users.sourceforge.net)<br><br>")); | ||||
|       te_translation->append(tr("Please contact me if you would like to translate qBittorrent into your own language.")); | ||||
|       te_translation->scrollToAnchor(QString::fromUtf8("top")); | ||||
|   | ||||