Compare commits
	
		
			247 Commits
		
	
	
		
			release-1.
			...
			release-1.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 11276174c1 | ||
|   | 05948e2edf | ||
|   | c9c4f7001a | ||
|   | 6cd185d0d5 | ||
|   | 063219cbe7 | ||
|   | e324f3792b | ||
|   | 0267ecc342 | ||
|   | e53c7aaea6 | ||
|   | 3e90e56266 | ||
|   | 1c1b8acd67 | ||
|   | 811846e5fa | ||
|   | 3ba28885b9 | ||
|   | 8ed1c57c29 | ||
|   | af5d24c5bc | ||
|   | 9dcd572d60 | ||
|   | e024a3ff35 | ||
|   | 37342e0f0c | ||
|   | bfbbc1f497 | ||
|   | 5d31dcdb15 | ||
|   | 6f89b1f131 | ||
|   | 9d35bda43c | ||
|   | e780d83fd0 | ||
|   | 7a59d5e47c | ||
|   | f2ea524be9 | ||
|   | a33094519c | ||
|   | e313ae808f | ||
|   | dc9802fe1e | ||
|   | 64f1d306f4 | ||
|   | f3af4867fd | ||
|   | 4fe22dbc57 | ||
|   | 1d9b524b77 | ||
|   | 63761afd0a | ||
|   | 8da148ffa1 | ||
|   | e2dc2207d8 | ||
|   | 6e87d6655a | ||
|   | d72485a955 | ||
|   | 04c6760892 | ||
|   | 382f3e3c86 | ||
|   | c1378450fc | ||
|   | 4e10a8dbf7 | ||
|   | 4f7b4c2a55 | ||
|   | f98f076335 | ||
|   | b148a93a8f | ||
|   | 37cf23fe33 | ||
|   | 87f43123c6 | ||
|   | 11dd2d81b8 | ||
|   | d18d07efed | ||
|   | 518a120c07 | ||
|   | 290bc8b7a6 | ||
|   | 0ede09efb5 | ||
|   | 15de12f6dd | ||
|   | ef95d6df81 | ||
|   | f382ba4fd0 | ||
|   | 01d504d992 | ||
|   | cdd894a6a1 | ||
|   | d7b2d3497f | ||
|   | 5dbd5c4326 | ||
|   | 9a14c4c599 | ||
|   | 3fa14cd47f | ||
|   | 941d9b9bd9 | ||
|   | 3d88b7b05c | ||
|   | 8d39e2a776 | ||
|   | 4a1c8a7279 | ||
|   | b8d8862562 | ||
|   | 40e9105ee5 | ||
|   | 0984b8b8e1 | ||
|   | 3dd7dcc58f | ||
|   | 6ba5df3ec8 | ||
|   | 1560b4ca3b | ||
|   | 68d8a9ed47 | ||
|   | ca00f3084d | ||
|   | 39c16b20ae | ||
|   | 666d4622b9 | ||
|   | 27388643b1 | ||
|   | 90d17d16a4 | ||
|   | df0f01cd71 | ||
|   | 480d00d747 | ||
|   | a0923741a4 | ||
|   | 8e2efc2950 | ||
|   | 91dee6058e | ||
|   | f5c1343722 | ||
|   | d4d0a08390 | ||
|   | d02aca7323 | ||
|   | fd81567ecd | ||
|   | 8e5f5b5d65 | ||
|   | 215d561b82 | ||
|   | dc18780a97 | ||
|   | 06fb19e8be | ||
|   | 3550e31871 | ||
|   | 46c6c4fc9a | ||
|   | e126de8ff5 | ||
|   | f2d2e70967 | ||
|   | 48b14d1066 | ||
|   | 725700420c | ||
|   | 480df1f5dc | ||
|   | 2fa43dd973 | ||
|   | b9f1586068 | ||
|   | 07dbe388f4 | ||
|   | b2af40c95b | ||
|   | 05569a5011 | ||
|   | 73dbce45b2 | ||
|   | fdaeafc701 | ||
|   | 9ca4e2f1f6 | ||
|   | 2b53aa7e81 | ||
|   | 8e79e918c5 | ||
|   | 687842a949 | ||
|   | 645ee86860 | ||
|   | f50762dfa8 | ||
|   | 7e252d3fbd | ||
|   | 2dc9f10bf4 | ||
|   | bca03706a0 | ||
|   | e7663e7b6b | ||
|   | 2b0e05b453 | ||
|   | 4d67170d3e | ||
|   | 538c028f8a | ||
|   | 2cbbd6ef50 | ||
|   | 955d8069e2 | ||
|   | 25d998f1b5 | ||
|   | 462f6c41cd | ||
|   | 298f1e6a9a | ||
|   | 2926745102 | ||
|   | c6003c7403 | ||
|   | 66e5a6672a | ||
|   | c35500dd29 | ||
|   | f80bd42361 | ||
|   | 0b9c05d41b | ||
|   | 2477dc1fc0 | ||
|   | 706362333d | ||
|   | 6fcf25af52 | ||
|   | c8e8306e0a | ||
|   | e429126934 | ||
|   | 7e71de558a | ||
|   | 09d8a4797d | ||
|   | 1bcb8b1ed8 | ||
|   | d132d50f4d | ||
|   | e619b6977a | ||
|   | 2742a54d6e | ||
|   | 360a327d7d | ||
|   | b659303419 | ||
|   | 43108712be | ||
|   | a038616fe5 | ||
|   | 81e5c295b6 | ||
|   | 08d079a563 | ||
|   | 454c8dc2bc | ||
|   | 337fc72ee6 | ||
|   | b1e9c1ccf5 | ||
|   | 64806cb199 | ||
|   | 8e8e7cd3e7 | ||
|   | 27a18e01e2 | ||
|   | fc9e7d74a3 | ||
|   | 037a1875f9 | ||
|   | 66baa4d3dc | ||
|   | 9e522a8a6c | ||
|   | cfa4edd140 | ||
|   | 9e9134cd44 | ||
|   | 83a798b07e | ||
|   | baee85684c | ||
|   | 88afb0f0e7 | ||
|   | 6f212f18f5 | ||
|   | f04e600340 | ||
|   | 5140886567 | ||
|   | 0aa59694fd | ||
|   | 66d31b5ca1 | ||
|   | 47135932a4 | ||
|   | 40d0e44f15 | ||
|   | 16c30a2f10 | ||
|   | 7f2639fcbd | ||
|   | 8ad987a672 | ||
|   | b24194068a | ||
|   | f4e9b00ce3 | ||
|   | 5c0a24d58b | ||
|   | c4aa23c86b | ||
|   | 96911a2c48 | ||
|   | 85abb80f43 | ||
|   | 2372f434cf | ||
|   | ee6bc3c2e9 | ||
|   | b6c6637c3b | ||
|   | d358987316 | ||
|   | 6f28711f9e | ||
|   | 7b4b568859 | ||
|   | c3aa2906bb | ||
|   | 9509bbaed4 | ||
|   | b7c7245fb5 | ||
|   | 0153b03160 | ||
|   | ca83fdecff | ||
|   | bca898d8b6 | ||
|   | c877c9c412 | ||
|   | 4dfd1f229b | ||
|   | 0d63f46035 | ||
|   | 106f7cdd32 | ||
|   | 0308825c11 | ||
|   | 8c21ef5c04 | ||
|   | 53c2fe4a60 | ||
|   | 64fef21a86 | ||
|   | f6f4b5f219 | ||
|   | f809b8a014 | ||
|   | cf8dbf22f8 | ||
|   | 00d9f7c36b | ||
|   | 9a314db530 | ||
|   | 7db2ffc09f | ||
|   | 9a02c12ec9 | ||
|   | 2a77de686c | ||
|   | a79b294885 | ||
|   | 13c670b96d | ||
|   | 65c4da6f0e | ||
|   | bf9dc052d3 | ||
|   | 0ea6ee32be | ||
|   | 019bd476db | ||
|   | baf5cb31af | ||
|   | fc3c123f5b | ||
|   | 7dfdebd593 | ||
|   | 9835af4962 | ||
|   | 04cbd91f04 | ||
|   | 66db20cb47 | ||
|   | 2e0707bc0c | ||
|   | e9c12cbf78 | ||
|   | 031de096f5 | ||
|   | b85ed8ff38 | ||
|   | 00c5127ba1 | ||
|   | 714bf4f2ab | ||
|   | c2244f746e | ||
|   | 8214d87ce5 | ||
|   | e8454596ea | ||
|   | 1cc039c147 | ||
|   | fe455970f1 | ||
|   | 36871a34ad | ||
|   | 4ea6ca75ca | ||
|   | 9e46c6c047 | ||
|   | a2e9210665 | ||
|   | aaf79add0b | ||
|   | 55743021e8 | ||
|   | a8d627e1df | ||
|   | eead11427f | ||
|   | bec1388ba5 | ||
|   | 1542ff98bc | ||
|   | 0e9fd2dc3f | ||
|   | cd618150b0 | ||
|   | a2bcfa9192 | ||
|   | 1421f1450c | ||
|   | 288300d264 | ||
|   | 5e41a64c8b | ||
|   | f4502367f3 | ||
|   | 273526b414 | ||
|   | 5b7b4b2cf3 | ||
|   | ee99df0ba9 | ||
|   | aec32db565 | ||
|   | 3894452840 | 
							
								
								
									
										5
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						| @@ -17,6 +17,11 @@ Images Authors: | ||||
|   license: GPLv2 | ||||
|   url: http://ftp.acc.umu.se/pub/GNOME/sources/gnome-icon-theme | ||||
|  | ||||
| * files: src/oxygen/*.png | ||||
|   copyright: Oxygen Icon Theme (KDE) | ||||
|   license: LGPL | ||||
|   url: http://www.oxygen-icons.org | ||||
|  | ||||
| * files: src/Icons/flags/*.png | ||||
|   copyright: Open Clip Art Library | ||||
|   license: Creative Commons Public Domain Dedication | ||||
|   | ||||
							
								
								
									
										49
									
								
								Changelog
									
									
									
									
									
								
							
							
						
						| @@ -1,3 +1,52 @@ | ||||
| * Unknown - Christophe Dumez <chris@qbittorrent.org> - v1.5.0 | ||||
|     - FEATURE: Added Magnet URI support | ||||
|     - FEATURE: Search engine supports category-based requests | ||||
|     - FEATURE: Make use of torrent enclosure in RSS feeds for direct download | ||||
|     - FEATURE: Implemented a RSS feed downloader with filter support | ||||
|     - FEATURE: Save old RSS item to hard disk to remember them on start up | ||||
|     - FEATURE: Display free disk space in torrent addition dialog | ||||
|     - FEATURE: In torrent addition from URL, paste clipboard content if it contains an URL | ||||
|     - FEATURE: RSS feeds URLs can now be copied to clipboard | ||||
|     - FEATURE: RSS feeds can now be grouped into folders | ||||
|     - FEATURE: Added "Unread" item to RSS feed list to display all unread news | ||||
|     - FEATURE: If a torrent contains a torrent file, process downloaded torrent file too | ||||
|     - FEATURE: A random listening port can be chosen automatically | ||||
|     - BUGFIX: torrent resume code rewrited | ||||
|     - BUGFIX: Greatly improved column sorting code | ||||
|     - BUGFIX: Possibility to create trackerless torrents | ||||
|     - BUGFIX: Better item coloring in torrent content filtering dialog | ||||
|     - COSMETIC: Redesigned search tab to improve usability | ||||
|     - COSMETIC: Redesigned RSS tab to improve usability | ||||
|  | ||||
| * Sun Aug 21 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.4.1 | ||||
|     - BUGFIX: Fix problems when changing save path (if using temporary download folder) | ||||
|     - BUGFIX: Display real save path instead of the temporary one in torrent properties | ||||
|     - BUGFIX: Catching invalid_handle exception to avoid rare crashes | ||||
|     - BUGFIX: Fixed popup menu position in RSS feeds list | ||||
|     - BUGFIX: Don't save RSS feed state if it could not be updated | ||||
|  | ||||
| * Thu Aug 13 2009 - Christophe Dumez <chris@qbittorrent.org> - v1.4.0 | ||||
|     - FEATURE: Display swarm information in lists | ||||
|     - FEATURE: Allow to define temporary download folder | ||||
|     - FEATURE: Display total amount of uploaded data in finished list | ||||
|     - FEATURE: Resizing a column in a search results tab affects all tabs | ||||
|     - FEATURE: Search results tab columns are now remembered upon startup | ||||
|     - FEATURE: Added right click menu in search engine to clear completion history | ||||
|     - FEATURE: Allow to set a different port for DHT (UDP) than the one used for Bittorrent | ||||
|     - FEATURE: Updated spoofing code to avoid trackers ban | ||||
|     - BUGFIX: Provide more helpful explanation when an I/O error occured | ||||
|     - BUGFIX: Stop enforcing UTF-8 and use system locale instead | ||||
|     - COSMETIC: Redesigned program preferences | ||||
|     - COSMETIC: Updated icons set | ||||
|  | ||||
| * Fri Jul 24 2009 - Christophe DUMEZ <chris@qbittorrent.org> - 1.3.5 | ||||
|     - BUGFIX: Made IP filter parser more robust | ||||
|     - BUGFIX: Fixed torrent creation tool | ||||
|     - BUGFIX: Fixed possible overflow in progress calculation in arborescence.h | ||||
|     - BUGFIX: Save properties window size, position, columns width and restore them | ||||
|     - BUGFIX: Set a minimum default width for NAME column in properties | ||||
|     - BUGFIX: Remember visual indexes of columns in transfer lists | ||||
|  | ||||
| * 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 | ||||
|   | ||||
							
								
								
									
										19
									
								
								TODO
									
									
									
									
									
								
							
							
						
						| @@ -1,21 +1,2 @@ | ||||
| See https://blueprints.launchpad.net/qbittorrent/ | ||||
|  | ||||
| // translations done in v1.3.0 | ||||
| - Romanian | ||||
| - Russian | ||||
| - Hungarian | ||||
| - German | ||||
| - Chinese (traditional) | ||||
| - Chinese (simplified) | ||||
| - Italian | ||||
| - Swedish | ||||
| - Turkish | ||||
| - French | ||||
| - Slovak | ||||
| - Czech | ||||
| - Korean | ||||
| - Portuguese | ||||
| - Brazilian | ||||
| - Greek | ||||
| - Bulgarian | ||||
| - Finnish | ||||
|   | ||||
							
								
								
									
										109
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -18,17 +18,12 @@ Main options: | ||||
|   --help              This help text. | ||||
|  | ||||
| Dependency options: | ||||
|   --with-libtorrent-inc=[path]            Path to libtorrent-rasterbar include | ||||
|                                          files | ||||
|   --with-libtorrent-lib=[path]            Path to libtorrent-rasterbar library | ||||
|                                          files | ||||
|   --with-libtorrent-static-lib=[path]     Path to libtorrent-rasterbar .a file | ||||
|   --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-libzzip                      Disable use of libzzip | ||||
|   --with-libzzip-inc=[path]               Path to libzzip++ include files | ||||
|   --with-libzzip-lib=[path]               Path to libzzip++ library files | ||||
|   --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-libzzip             Disable use of libzzip | ||||
|   --with-libzzip-inc=[path]      Path to libzzip++ include files | ||||
|   --with-libzzip-lib=[path]      Path to libzzip++ library files | ||||
|  | ||||
| EOT | ||||
| } | ||||
| @@ -145,21 +140,6 @@ while [ $# -gt 0 ]; do | ||||
| 			shift | ||||
| 			;; | ||||
|  | ||||
| 		--with-libtorrent-inc=*) | ||||
| 			QC_WITH_LIBTORRENT_INC=$optarg | ||||
| 			shift | ||||
| 			;; | ||||
|  | ||||
| 		--with-libtorrent-lib=*) | ||||
| 			QC_WITH_LIBTORRENT_LIB=$optarg | ||||
| 			shift | ||||
| 			;; | ||||
|  | ||||
| 		--with-libtorrent-static-lib=*) | ||||
| 			QC_WITH_LIBTORRENT_STATIC_LIB=$optarg | ||||
| 			shift | ||||
| 			;; | ||||
|  | ||||
| 		--with-libboost-inc=*) | ||||
| 			QC_WITH_LIBBOOST_INC=$optarg | ||||
| 			shift | ||||
| @@ -211,9 +191,6 @@ echo PREFIX=$PREFIX | ||||
| echo BINDIR=$BINDIR | ||||
| echo DATADIR=$DATADIR | ||||
| echo EX_QTDIR=$EX_QTDIR | ||||
| echo QC_WITH_LIBTORRENT_INC=$QC_WITH_LIBTORRENT_INC | ||||
| echo QC_WITH_LIBTORRENT_LIB=$QC_WITH_LIBTORRENT_LIB | ||||
| 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 | ||||
| @@ -346,70 +323,29 @@ public: | ||||
| /* | ||||
| -----BEGIN QCMOD----- | ||||
| name: libtorrent-rasterbar | ||||
| arg: with-libtorrent-inc=[path], Path to libtorrent-rasterbar include files | ||||
| 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.14.0 (>= 0.14.4 advised)"; } | ||||
| 	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")) { | ||||
| 				return false; | ||||
|       			} | ||||
| 		}else{ | ||||
| 			QStringList sl; | ||||
| 			sl << "/usr/include"; | ||||
| 			sl << "/usr/local/include"; | ||||
| 			bool found = false; | ||||
| 			foreach(s, sl){ | ||||
| 				if(conf->checkHeader(s, "libtorrent/magnet_uri.hpp")){ | ||||
| 					found = true; | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| 			if(!found) { | ||||
| 				return false; | ||||
|           		} | ||||
| 		} | ||||
| 		conf->addIncludePath(s); | ||||
| 		conf->addIncludePath(s+QDir::separator()+"libtorrent"); | ||||
|  | ||||
| 		s = conf->getenv("QC_WITH_LIBTORRENT_STATIC_LIB"); | ||||
| 		if(!s.isEmpty() && QFile::exists(s) && s.endsWith(".a")){ | ||||
| 			conf->addLib(s); | ||||
| 			return true; | ||||
| 		} | ||||
|  | ||||
| 		s = conf->getenv("QC_WITH_LIBTORRENT_LIB"); | ||||
| 		if(!s.isEmpty()) { | ||||
|       			if(!conf->checkLibrary(s, "torrent-rasterbar")) { | ||||
| 			        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(conf->checkLibrary(s, "torrent-rasterbar")){ | ||||
| 					found = true; | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| 			if(!found) return false; | ||||
| 			conf->addLib(QString("-L") + s); | ||||
| 		} | ||||
| 		QStringList incs; | ||||
| 		QString req_ver = "0.14.0"; | ||||
| 		QString adv_ver = "0.14.4"; | ||||
| 		QString version, libs, other; | ||||
| 		VersionMode mode = VersionMin; | ||||
| 		if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other)) | ||||
| 			return false; | ||||
| 		for(int n = 0; n < incs.count(); ++n) | ||||
| 			conf->addIncludePath(incs[n]); | ||||
| 		if(!libs.isEmpty()) | ||||
| 			conf->addLib(libs); | ||||
| 		if(!conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other)) | ||||
| 			printf("\nWarning: libtorrent-rasterbar v%s was detected. Although it will compile and run, you will probably experience some bugs. Please consider updating to v%s!\n", version.toUtf8().data(), adv_ver.toUtf8().data()); | ||||
| 		return true; | ||||
| 	} | ||||
| }; | ||||
| @@ -1567,9 +1503,6 @@ export PREFIX | ||||
| export BINDIR | ||||
| export DATADIR | ||||
| export EX_QTDIR | ||||
| export QC_WITH_LIBTORRENT_INC | ||||
| export QC_WITH_LIBTORRENT_LIB | ||||
| export QC_WITH_LIBTORRENT_STATIC_LIB | ||||
| export QC_WITH_LIBBOOST_INC | ||||
| export QC_WITH_LIBCURL_INC | ||||
| export QC_WITH_LIBCURL_LIB | ||||
|   | ||||
| @@ -64,14 +64,11 @@ public: | ||||
|                          	return false; | ||||
| 		} | ||||
| 		conf->addLib(QString("-L") + s); | ||||
| 		QProcess magickConfig; | ||||
| 		QString out = ""; | ||||
| 		QStringList params; | ||||
| 		params << "--libs"; | ||||
| 		magickConfig.start("Magick++-config", params, QIODevice::ReadOnly); | ||||
| 		magickConfig.waitForStarted(); | ||||
| 		magickConfig.waitForFinished(); | ||||
| 		QByteArray result = magickConfig.readAll(); | ||||
| 		result = result.replace("\n", ""); | ||||
|                 params << "--libs"; | ||||
| 		qconf->doCommand("Magick++-config", params, &out); | ||||
| 		out = out.replace("\n", ""); | ||||
| 		conf->addLib(result.data()); | ||||
| 		conf->addDefine("HAVE_MAGICK"); | ||||
| 		return true; | ||||
|   | ||||
| @@ -1,9 +1,6 @@ | ||||
| /* | ||||
| -----BEGIN QCMOD----- | ||||
| name: libtorrent-rasterbar | ||||
| arg: with-libtorrent-inc=[path], Path to libtorrent-rasterbar include files | ||||
| 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 | ||||
| @@ -11,61 +8,22 @@ 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.14.0 (>= 0.14.4 advised)"; } | ||||
| 	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")) { | ||||
| 				return false; | ||||
|       			} | ||||
| 		}else{ | ||||
| 			QStringList sl; | ||||
| 			sl << "/usr/include"; | ||||
| 			sl << "/usr/local/include"; | ||||
| 			bool found = false; | ||||
| 			foreach(s, sl){ | ||||
| 				if(conf->checkHeader(s, "libtorrent/magnet_uri.hpp")){ | ||||
| 					found = true; | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| 			if(!found) { | ||||
| 				return false; | ||||
|           		} | ||||
| 		} | ||||
| 		conf->addIncludePath(s); | ||||
| 		conf->addIncludePath(s+QDir::separator()+"libtorrent"); | ||||
|  | ||||
| 		s = conf->getenv("QC_WITH_LIBTORRENT_STATIC_LIB"); | ||||
| 		if(!s.isEmpty() && QFile::exists(s) && s.endsWith(".a")){ | ||||
| 			conf->addLib(s); | ||||
| 			return true; | ||||
| 		} | ||||
|  | ||||
| 		s = conf->getenv("QC_WITH_LIBTORRENT_LIB"); | ||||
| 		if(!s.isEmpty()) { | ||||
|       			if(!conf->checkLibrary(s, "torrent-rasterbar")) { | ||||
| 			        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(conf->checkLibrary(s, "torrent-rasterbar")){ | ||||
| 					found = true; | ||||
| 					break; | ||||
| 				} | ||||
| 			} | ||||
| 			if(!found) return false; | ||||
| 			conf->addLib(QString("-L") + s); | ||||
| 		} | ||||
| 		QStringList incs; | ||||
| 		QString req_ver = "0.14.0"; | ||||
| 		QString adv_ver = "0.14.4"; | ||||
| 		QString version, libs, other; | ||||
| 		VersionMode mode = VersionMin; | ||||
| 		if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other)) | ||||
| 			return false; | ||||
| 		for(int n = 0; n < incs.count(); ++n) | ||||
| 			conf->addIncludePath(incs[n]); | ||||
| 		if(!libs.isEmpty()) | ||||
| 			conf->addLib(libs); | ||||
| 		if(!conf->findPkgConfig("libtorrent-rasterbar", mode, adv_ver, &version, &incs, &libs, &other)) | ||||
| 			printf("\nWarning: libtorrent-rasterbar v%s was detected. Although it will compile and run, you will probably experience some bugs. Please consider updating to v%s!\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data()); | ||||
| 		return true; | ||||
| 	} | ||||
| }; | ||||
|   | ||||
							
								
								
									
										480
									
								
								src/FeedDownloader.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
							
								
								
									
										546
									
								
								src/FeedDownloader.ui
									
									
									
									
									
										Normal file
									
								
							
							
						
						| @@ -44,9 +44,11 @@ | ||||
| #define F_NAME 0 | ||||
| #define F_SIZE 1 | ||||
| #define F_UPSPEED 2 | ||||
| #define F_LEECH 3 | ||||
| #define F_RATIO 4 | ||||
| #define F_HASH 5 | ||||
| #define F_SWARM 3 | ||||
| #define F_PEERS 4 | ||||
| #define F_UPLOAD 5 | ||||
| #define F_RATIO 6 | ||||
| #define F_HASH 7 | ||||
|  | ||||
| #define MAX_RATIO 100. | ||||
|  | ||||
| @@ -62,6 +64,7 @@ class FinishedListDelegate: public QItemDelegate { | ||||
|       QStyleOptionViewItemV2 opt = QItemDelegate::setOptions(index, option); | ||||
|       switch(index.column()){ | ||||
|         case F_SIZE: | ||||
|         case F_UPLOAD: | ||||
|           QItemDelegate::drawBackground(painter, opt, index); | ||||
|           QItemDelegate::drawDisplay(painter, opt, option.rect, misc::friendlyUnit(index.data().toLongLong())); | ||||
|           break; | ||||
|   | ||||
| @@ -35,6 +35,7 @@ | ||||
| #include "qtorrenthandle.h" | ||||
|  | ||||
| class QStandardItemModel; | ||||
| class QSortFilterProxyModel; | ||||
| class bittorrent; | ||||
| class FinishedListDelegate; | ||||
|  | ||||
| @@ -47,6 +48,7 @@ class FinishedTorrents : public QWidget, public Ui::seeding { | ||||
|     bittorrent *BTSession; | ||||
|     FinishedListDelegate *finishedListDelegate; | ||||
|     QStandardItemModel *finishedListModel; | ||||
|     QSortFilterProxyModel *proxyModel; | ||||
|     unsigned int nbFinished; | ||||
|     void hideOrShowColumn(int index); | ||||
|     bool loadHiddenColumns(); | ||||
| @@ -69,17 +71,15 @@ 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 sortFinishedListFloat(int index, Qt::SortOrder sortOrder); | ||||
|     void sortFinishedListString(int index, Qt::SortOrder sortOrder); | ||||
|     void updateFileSize(QString hash); | ||||
|     void on_actionSet_upload_limit_triggered(); | ||||
|     void notifyTorrentDoubleClicked(const QModelIndex& index); | ||||
|     void hideOrShowColumnName(); | ||||
|     void hideOrShowColumnSize(); | ||||
|     void hideOrShowColumnUpSpeed(); | ||||
|     void hideOrShowColumnLeechers(); | ||||
|     void hideOrShowColumnSwarm(); | ||||
|     void hideOrShowColumnPeers(); | ||||
|     void hideOrShowColumnUpload(); | ||||
|     void hideOrShowColumnRatio(); | ||||
|     void forceRecheck(); | ||||
|  | ||||
| @@ -91,6 +91,8 @@ class FinishedTorrents : public QWidget, public Ui::seeding { | ||||
|     void deleteTorrent(QString hash); | ||||
|     void showPropertiesFromHash(QString hash); | ||||
|     void loadLastSortedColumn(); | ||||
|     void saveLastSortedColumn(); | ||||
|     void updateMetadata(QTorrentHandle &h); | ||||
|  | ||||
|   signals: | ||||
|     void torrentMovedFromFinishedList(QString); | ||||
|   | ||||
							
								
								
									
										2438
									
								
								src/GUI.cpp
									
									
									
									
									
								
							
							
						
						| @@ -70,6 +70,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     // Bittorrent | ||||
|     bittorrent *BTSession; | ||||
|     QTimer *checkConnect; | ||||
|     QTimer *scrapeTimer; | ||||
|     QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; | ||||
|     // GUI related | ||||
|     QTabWidget *tabs; | ||||
| @@ -139,9 +140,10 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     void createTrayIcon(); | ||||
|     void updateUnfinishedTorrentNumber(unsigned int nb); | ||||
|     void updateFinishedTorrentNumber(unsigned int nb); | ||||
|     void fullDiskError(QTorrentHandle& h) const; | ||||
|     void fullDiskError(QTorrentHandle& h, QString msg) const; | ||||
|     void handleDownloadFromUrlFailure(QString, QString) const; | ||||
|     void createSystrayDelayed(); | ||||
|     void setPaused(QTorrentHandle &h) const; | ||||
|     // Keyboard shortcuts | ||||
|     void createKeyboardShortcuts(); | ||||
|     void displayDownTab() const; | ||||
| @@ -177,6 +179,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     bool initWebUi(QString username, QString password, int port); | ||||
|     void on_actionIncreasePriority_triggered(); | ||||
|     void on_actionDecreasePriority_triggered(); | ||||
|     void scrapeTrackers(); | ||||
|     // Options slots | ||||
|     void on_actionOptions_triggered(); | ||||
|     void OptionsSaved(bool deleteOptions); | ||||
| @@ -189,6 +192,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|     void setTabText(int index, QString text) const; | ||||
|     void openDestinationFolder() const; | ||||
|     void goBuyPage() const; | ||||
|     void copyMagnetURI() const; | ||||
|     void updateRatio(); | ||||
|  | ||||
|   protected: | ||||
|   | ||||
| Before Width: | Height: | Size: 1005 B | 
| Before Width: | Height: | Size: 1.3 KiB | 
| Before Width: | Height: | Size: 1.5 KiB | 
| Before Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 820 B | 
| Before Width: | Height: | Size: 821 B | 
| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 998 B | 
| Before Width: | Height: | Size: 1.3 KiB | 
| Before Width: | Height: | Size: 1.4 KiB | 
| Before Width: | Height: | Size: 1.2 KiB | 
| Before Width: | Height: | Size: 846 B | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/magnet.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 7.0 KiB | 
| Before Width: | Height: | Size: 813 B | 
| Before Width: | Height: | Size: 532 B | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/oxygen/application-x-kgetlist-no.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 743 B | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/oxygen/application-x-kgetlist.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 659 B |