Compare commits
	
		
			86 Commits
		
	
	
		
			release-2.
			...
			release-2.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 3f22122348 | ||
|   | 59c77a3f9c | ||
|   | 8ce9649310 | ||
|   | fe5ac5d083 | ||
|   | 8740627c12 | ||
|   | c47f2e449b | ||
|   | db09e40690 | ||
|   | 3ca3f91590 | ||
|   | ee9a8d0563 | ||
|   | 3542980e50 | ||
|   | f243b8535a | ||
|   | 7953809024 | ||
|   | 3ac65a477c | ||
|   | 00cab62381 | ||
|   | ab31300201 | ||
|   | 754eb2788f | ||
|   | 8dcb9f17bc | ||
|   | 38121920a1 | ||
|   | e815f934e1 | ||
|   | 4a305222be | ||
|   | dcfed67173 | ||
|   | db43606620 | ||
|   | 3b16a89c36 | ||
|   | 4c03e708e0 | ||
|   | 3e0fc5234f | ||
|   | 5ba7e643b9 | ||
|   | c53e265b70 | ||
|   | 2b5f12e014 | ||
|   | ee518973ea | ||
|   | aa08552686 | ||
|   | fa43393b65 | ||
|   | 48dcfb56ad | ||
|   | 511fa5d988 | ||
|   | 5694c8aa8b | ||
|   | e3098c5191 | ||
|   | dbacb1961c | ||
|   | 1092064115 | ||
|   | 7988f15da7 | ||
|   | 689df74d7e | ||
|   | c59dde4f58 | ||
|   | 4bc36b4d28 | ||
|   | 430c7d2deb | ||
|   | d72c79b259 | ||
|   | efbf470585 | ||
|   | 4e20723ae6 | ||
|   | f3268bf49e | ||
|   | 5aba9179c4 | ||
|   | 450814ae23 | ||
|   | ba22fa8331 | ||
|   | 5ce02cb612 | ||
|   | 1013f39a42 | ||
|   | cd5c4bf464 | ||
|   | 84bfc54b03 | ||
|   | 5b3b5eb2ef | ||
|   | 990a863d41 | ||
|   | 7f27d10735 | ||
|   | 1377a75a53 | ||
|   | bcd33fc861 | ||
|   | 46d8fa1656 | ||
|   | 28cf69b84d | ||
|   | 89389df74d | ||
|   | 77c29f48cb | ||
|   | c5d92f3d69 | ||
|   | 54487c8247 | ||
|   | be64008870 | ||
|   | 8113b150dd | ||
|   | 4a33367cb0 | ||
|   | 0af5d82114 | ||
|   | 10c4fd330a | ||
|   | 9a30d5a295 | ||
|   | 724b47d999 | ||
|   | 2c0f7c33a2 | ||
|   | ce33e266fe | ||
|   | 2f291daefa | ||
|   | 722f2aeb5d | ||
|   | d5b9598b5b | ||
|   | cc7d74b67c | ||
|   | e853b0b736 | ||
|   | 5e395b24a9 | ||
|   | 9c3789f83f | ||
|   | 758595dc8c | ||
|   | 01f9e989ef | ||
|   | eb9f0cb559 | ||
|   | 2592948182 | ||
|   | 6f6ab1c439 | ||
|   | b10e606dda | 
							
								
								
									
										8
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						| @@ -3,19 +3,12 @@ Author: | ||||
|  | ||||
| Contributors: | ||||
| * Stefanos Antaris <santaris@csd.auth.gr> | ||||
| * Mohammad Dib <mdib@qbittorrent.org> | ||||
| * Mirco Chinelli <infinity89@fastwebmail.it> | ||||
| * Ishan Arora <ishan@qbittorrent.org> | ||||
| * Arnaud Demaizière <arnaud@qbittorrent.org> | ||||
| * Grigis Gaëtan <cipher16@gmail.com> | ||||
| * Christian Kandeler <zambesi@users.sourceforge.net> | ||||
| * Silvan Scherrer <silvan.scherrer@aroa.ch> | ||||
|  | ||||
| Code from other projects: | ||||
| * files src/qtsingleapp/* | ||||
|   copyright: Nokia Corporation | ||||
|   license: LGPL | ||||
|  | ||||
| * files src/ico.cpp src/ico.h | ||||
|   copyright: Malte Starostik <malte@kde.org> | ||||
|   license: LGPL | ||||
| @@ -73,7 +66,6 @@ Translations authors: | ||||
|   - Catalan: Francisco Luque Contreras (frannoe@ya.com) | ||||
|   - Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com) | ||||
|   - Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com) | ||||
|   - Croatian: Oliver Mucafir (oliver.untwist@gmail.com) | ||||
|   - Czech: Jirka Vilim (web@tets.cz) | ||||
|   - Danish: Mathias Nielsen (comoneo@gmail.com) | ||||
|   - Dutch: Joost Schipper (heavyjoost@users.sourceforge.net) | ||||
|   | ||||
							
								
								
									
										84
									
								
								Changelog
									
									
									
									
									
								
							
							
						
						| @@ -1,30 +1,60 @@ | ||||
| * 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 Apr 18 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.6 | ||||
|     - BUGFIX: Announce to all trackers at once | ||||
|     - BUGFIX: Added support for single-thread boost | ||||
|     - BUGFIX: Remove old folder when moving a torrent | ||||
|     - BUGFIX: Improved reliability of torrent moving | ||||
|     - BUGFIX: Stop rechecking torrents when they are moved | ||||
|     - BUGFIX: Status filters height stays correct when the visual style changes | ||||
|     - I18N: Added Arabic translation | ||||
|  | ||||
| * Wed Apr 07 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.5 | ||||
|     - BUGFIX: Fix crash when adding a new torrent label | ||||
|     - BUGFIX: Fix HTTPS protocol support in torrent/rss downloader | ||||
|     - BUGFIX: Fix default width of file name column in torrent content | ||||
|     - BUGFIX: Fix torrent addition dialog buttons height | ||||
|     - BUGFIX: Fix deprecation warnings with libtorrent v0.15 | ||||
|     - BUGFIX: Fix "Download from URL" title size in Web UI | ||||
|     - BUGFIX: Fix transparency of speed limits icons | ||||
|     - BUGFIX: Dropped dependency on Qt gif library | ||||
|     - BUGFIX: Improved libboost detection by configure file | ||||
|     - BUGFIX: Bring back compatibility with boost v1.34 | ||||
|     - COSMETIC: Added icons to menu actions in Web UI | ||||
|  | ||||
| * Tue Apr 06 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.4 | ||||
|     - BUGFIX: Fix possible crash when adding a torrent | ||||
|     - BUGFIX: Fix failure to remember some torrents on startup | ||||
|     - BUGFIX: Fix torrent addition window layout (torrent content not expanding) | ||||
|     - BUGFIX: Fix about dialog in Web UI | ||||
|     - BUGFIX: Correctly clear trackers error messages once they work | ||||
|     - BUGFIX: Display correct share ratio for paused torrents | ||||
|     - COSMETIC: Improved alternative speed limits icons | ||||
|  | ||||
| * Sun Apr 04 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.3 | ||||
|     - BUGFIX: Fix possible crash when deleting a torrent just after pausing it | ||||
|     - BUGFIX: Enable Apply button when alternative rate limits are changed | ||||
|     - BUGFIX: Source compatibility with Windows (Thanks Ishan Arora) | ||||
|     - BUGFIX: Source compatibility with eCS (OS/2) (Thanks Silvan Scherrer) | ||||
|     - BUGFIX: Cleaner binutils gold linker support | ||||
|     - BUGFIX: Clean fix for progress display with cleanlooks style | ||||
|  | ||||
| * Mon Mar 22 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.2 | ||||
|     - FEATURE: DHT port can be set from Web UI | ||||
|     - BUGFIX: Fix possible crash with folder scanning | ||||
|     - BUGFIX: Fix Mac compilation | ||||
|     - BUGFIX: Save fast resume data every 3 minutes (for robustness) | ||||
|     - I18N: Updated Polish translation (thanks Szymon Świerkosz) | ||||
|  | ||||
| * Sat Mar 20 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.1 | ||||
|     - FEATURE: Display pieces that are being downloaded | ||||
|     - FEATURE: Added back folder watching in Web UI | ||||
|     - FEATURE: Added back file prioritizing in Web UI | ||||
|     - BUGFIX: Fix compilation with Qt 4.4 | ||||
|     - BUGFIX: Fix Web UI compatibility with Safari | ||||
|     - BUGFIX: Fix progress display with cleanlook style | ||||
|     - BUGFIX: Fix file filtering in complex torrents | ||||
|     - BUGFIX: Ask for user confirmation for recursive torrent download | ||||
|     - BUGFIX: Fix "add file" dialog in torrent creation tool | ||||
|     - BUGFIX: Fix "Ctrl+A" in Web UI | ||||
|  | ||||
| * Sun Mar 14 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.0 | ||||
|     - FEATURE: User can set alternative speed limits for fast toggling | ||||
|   | ||||
							
								
								
									
										99
									
								
								configure
									
									
									
									
										vendored
									
									
								
							
							
						
						| @@ -18,24 +18,15 @@ Main options: | ||||
|   --help              This help text. | ||||
|  | ||||
| Dependency options: | ||||
|   --disable-gui                                   Disable qBittorrent | ||||
|                                                  Graphical user interface for | ||||
|                                                  headless running | ||||
|   --with-libboost-inc=[path]                      Path to libboost include | ||||
|                                                  files | ||||
|   --with-libboost-lib=[path]                      Path to libboost library | ||||
|                                                  files | ||||
|   --disable-libnotify                            Disable use of libnotify | ||||
|   --disable-geoip-database                       Disable use of geoip-database | ||||
|   --with-geoip-database-embedded                  Geoip Database will be | ||||
|                                                  embedded in qBittorrent | ||||
|                                                  executable (please follow | ||||
|                                                  instructions in | ||||
|                                                  src/geoip/README) | ||||
|   --disable-qtsingleapplication                  Disable use of libboost | ||||
|   --with-qtsingleapplication=[system|shipped]     Use the shipped | ||||
|                                                  qtsingleapplication library | ||||
|                                                  or the system one | ||||
|   --disable-gui                      Disable qBittorrent Graphical user | ||||
|                                     interface for headless running | ||||
|   --with-libboost-inc=[path]         Path to libboost include files | ||||
|   --with-libboost-lib=[path]         Path to libboost library files | ||||
|   --disable-libnotify               Disable use of libnotify | ||||
|   --disable-geoip-database          Disable use of geoip-database | ||||
|   --with-geoip-database-embedded     Geoip Database will be embedded in | ||||
|                                     qBittorrent executable (please follow | ||||
|                                     instructions in src/geoip/README) | ||||
|  | ||||
| EOT | ||||
| } | ||||
| @@ -182,16 +173,6 @@ while [ $# -gt 0 ]; do | ||||
| 			shift | ||||
| 			;; | ||||
|  | ||||
| 		--disable-qtsingleapplication) | ||||
| 			QC_DISABLE_qtsingleapplication="Y" | ||||
| 			shift | ||||
| 			;; | ||||
|  | ||||
| 		--with-qtsingleapplication=*) | ||||
| 			QC_WITH_QTSINGLEAPPLICATION=$optarg | ||||
| 			shift | ||||
| 			;; | ||||
|  | ||||
| 		--verbose) | ||||
| 			QC_VERBOSE="Y" | ||||
| 			shift | ||||
| @@ -219,8 +200,6 @@ echo QC_WITH_LIBBOOST_LIB=$QC_WITH_LIBBOOST_LIB | ||||
| echo QC_DISABLE_libnotify=$QC_DISABLE_libnotify | ||||
| echo QC_DISABLE_geoip_database=$QC_DISABLE_geoip_database | ||||
| echo QC_WITH_GEOIP_DATABASE_EMBEDDED=$QC_WITH_GEOIP_DATABASE_EMBEDDED | ||||
| echo QC_DISABLE_qtsingleapplication=$QC_DISABLE_qtsingleapplication | ||||
| echo QC_WITH_QTSINGLEAPPLICATION=$QC_WITH_QTSINGLEAPPLICATION | ||||
| echo | ||||
| fi | ||||
|  | ||||
| @@ -376,12 +355,27 @@ public: | ||||
| 	bool exec(){ | ||||
| 		QStringList incs; | ||||
| 		QString req_ver = "0.14.4"; | ||||
| 		QString adv_ver = "0.15.0"; | ||||
| 		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. Some feature will be disabled because they require v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data()); | ||||
| 		//else | ||||
| 			conf->addDefine("LIBTORRENT_0_15"); | ||||
| 		} | ||||
| 		// Get linking parameters | ||||
| 		//QStringList params; | ||||
| 		//QByteArray staticlibs; | ||||
| 		//params << "--static" << "--libs" << "libtorrent-rasterbar"; | ||||
| 		//conf->doCommand("pkg-config", params, &staticlibs); | ||||
| 		//conf->addLib(staticlibs.trimmed()); | ||||
| 		//libcrypto | ||||
| 		if(conf->getenv("QC_DISABLE_GUI").isEmpty()) { | ||||
|   		  conf->addLib("-lcrypto"); | ||||
|                 } | ||||
| @@ -550,21 +544,10 @@ public: | ||||
| 			} else { | ||||
| 				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 { | ||||
| 			return false; | ||||
| 		} | ||||
|  | ||||
| 		 | ||||
| 		return true; | ||||
| 	} | ||||
| }; | ||||
| @@ -606,33 +589,6 @@ public: | ||||
| #endif | ||||
| 	} | ||||
| }; | ||||
| #line 1 "qtsingleapplication.qcm" | ||||
| /* | ||||
| -----BEGIN QCMOD----- | ||||
| name: libboost | ||||
| 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->addDefine("USE_SYSTEM_QTSINGLEAPPLICATION"); | ||||
|                   printf(" [system] "); | ||||
|                 } else { | ||||
|                   printf(" [shipped] "); | ||||
| 		} | ||||
| 		return true; | ||||
| 	} | ||||
| }; | ||||
|  | ||||
| EOT | ||||
| cat >$1/modules_new.cpp <<EOT | ||||
| @@ -654,9 +610,6 @@ cat >$1/modules_new.cpp <<EOT | ||||
|     o = new qc_geoip_database(conf); | ||||
|     o->required = false; | ||||
|     o->disabled = false; | ||||
|     o = new qc_qtsingleapplication(conf); | ||||
|     o->required = false; | ||||
|     o->disabled = false; | ||||
|  | ||||
| EOT | ||||
| cat >$1/conf4.h <<EOT | ||||
| @@ -1608,8 +1561,6 @@ export QC_WITH_LIBBOOST_LIB | ||||
| export QC_DISABLE_libnotify | ||||
| export QC_DISABLE_geoip_database | ||||
| export QC_WITH_GEOIP_DATABASE_EMBEDDED | ||||
| export QC_DISABLE_qtsingleapplication | ||||
| export QC_WITH_QTSINGLEAPPLICATION | ||||
| export QC_VERBOSE | ||||
| rm -rf .qconftemp | ||||
| ( | ||||
|   | ||||
| @@ -19,6 +19,4 @@ | ||||
|   </dep> | ||||
|   <dep type='geoip-database'> | ||||
|   </dep> | ||||
|   <dep type='qtsingleapplication'> | ||||
|   </dep> | ||||
| </qconf> | ||||
|   | ||||
| @@ -40,21 +40,10 @@ public: | ||||
| 			} else { | ||||
| 				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 { | ||||
| 			return false; | ||||
| 		} | ||||
|  | ||||
| 		 | ||||
| 		return true; | ||||
| 	} | ||||
| }; | ||||
|   | ||||
| @@ -13,12 +13,27 @@ public: | ||||
| 	bool exec(){ | ||||
| 		QStringList incs; | ||||
| 		QString req_ver = "0.14.4"; | ||||
| 		QString adv_ver = "0.15.0"; | ||||
| 		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. Some feature will be disabled because they require v%s.\n", version.toLocal8Bit().data(), adv_ver.toUtf8().data()); | ||||
| 		//else | ||||
| 			conf->addDefine("LIBTORRENT_0_15"); | ||||
| 		} | ||||
| 		// Get linking parameters | ||||
| 		//QStringList params; | ||||
| 		//QByteArray staticlibs; | ||||
| 		//params << "--static" << "--libs" << "libtorrent-rasterbar"; | ||||
| 		//conf->doCommand("pkg-config", params, &staticlibs); | ||||
| 		//conf->addLib(staticlibs.trimmed()); | ||||
| 		//libcrypto | ||||
| 		if(conf->getenv("QC_DISABLE_GUI").isEmpty()) { | ||||
|   		  conf->addLib("-lcrypto"); | ||||
|                 } | ||||
|   | ||||
							
								
								
									
										414
									
								
								src/GUI.cpp
									
									
									
									
									
								
							
							
						
						
							
								
								
									
										26
									
								
								src/GUI.h
									
									
									
									
									
								
							
							
						
						| @@ -37,10 +37,13 @@ | ||||
| #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; | ||||
| @@ -56,7 +59,6 @@ class consoleDlg; | ||||
| class about; | ||||
| class createtorrent; | ||||
| class downloadFromURL; | ||||
| class HidableTabWidget; | ||||
|  | ||||
| class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|   Q_OBJECT | ||||
| @@ -66,9 +68,8 @@ public: | ||||
|   GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList()); | ||||
|   ~GUI(); | ||||
|   // Methods | ||||
|   QWidget* getCurrentTabWidget() const; | ||||
|   int getCurrentTabIndex() const; | ||||
|   TransferListWidget* getTransferList() const { return transferList; } | ||||
|   QMenu* getTrayIconMenu(); | ||||
|  | ||||
| public slots: | ||||
|   void trackerAuthenticationRequired(QTorrentHandle& h); | ||||
| @@ -76,7 +77,6 @@ public slots: | ||||
|   void showNotificationBaloon(QString title, QString msg) const; | ||||
|   void downloadFromURLList(const QStringList& urls); | ||||
|   void updateAltSpeedsBtn(bool alternative); | ||||
|   void updateNbTorrents(unsigned int nb_downloading, unsigned int nb_seeding, unsigned int nb_active, unsigned int nb_inactive, unsigned int nb_paused); | ||||
|  | ||||
| protected slots: | ||||
|   // GUI related slots | ||||
| @@ -88,6 +88,8 @@ protected slots: | ||||
|   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(); | ||||
| @@ -109,7 +111,6 @@ protected slots: | ||||
|   void on_actionOpen_triggered(); | ||||
|   void updateGUI(); | ||||
|   void loadPreferences(bool configure_session=true); | ||||
|   void processParams(const QString& params); | ||||
|   void processParams(const QStringList& params); | ||||
|   void addTorrent(QString path); | ||||
|   void addUnauthenticatedTracker(const QPair<QTorrentHandle,QString> &tracker); | ||||
| @@ -127,7 +128,6 @@ protected: | ||||
|   void showEvent(QShowEvent *); | ||||
|   bool event(QEvent * event); | ||||
|   void displayRSSTab(bool enable); | ||||
|   void displaySearchTab(bool enable); | ||||
|  | ||||
| private: | ||||
|   // Bittorrent | ||||
| @@ -135,7 +135,7 @@ private: | ||||
|   QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed? | ||||
|   // GUI related | ||||
|   QTimer *guiUpdater; | ||||
|   HidableTabWidget *tabs; | ||||
|   QTabWidget *tabs; | ||||
|   StatusBar *status_bar; | ||||
|   QPointer<options_imp> options; | ||||
|   QPointer<consoleDlg> console; | ||||
| @@ -144,7 +144,7 @@ private: | ||||
|   QPointer<downloadFromURL> downloadFromURLDialog; | ||||
|   QPointer<QSystemTrayIcon> systrayIcon; | ||||
|   QPointer<QTimer> systrayCreator; | ||||
|   QPointer<QMenu> myTrayIconMenu; | ||||
|   QMenu *myTrayIconMenu; | ||||
|   TransferListWidget *transferList; | ||||
|   TransferListFiltersWidget *transferListFilters; | ||||
|   PropertiesWidget *properties; | ||||
| @@ -161,15 +161,11 @@ private: | ||||
|   QSplitter *hSplitter; | ||||
|   QSplitter *vSplitter; | ||||
|   // Search | ||||
|   QPointer<SearchEngine> searchEngine; | ||||
|   SearchEngine *searchEngine; | ||||
|   // RSS | ||||
|   QPointer<RSSImp> rssWidget; | ||||
|  | ||||
| private slots: | ||||
|     void on_actionSearch_engine_triggered(); | ||||
|     void on_actionRSS_Reader_triggered(); | ||||
|     void on_actionSpeed_in_title_bar_triggered(); | ||||
|     void on_actionTop_tool_bar_triggered(); | ||||
|   // Misc | ||||
|   QLocalServer *localServer; | ||||
| }; | ||||
|  | ||||
| #endif | ||||
|   | ||||
| Before Width: | Height: | Size: 322 B | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/L.gif
									
									
									
									
									
								
							
							
						
						| Before Width: | Height: | Size: 66 B | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/locale.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.3 KiB | 
| Before Width: | Height: | Size: 2.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/oxygen/mail-queue.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 860 B | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/oxygen/wallet.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.2 KiB | 
| @@ -1,9 +1,8 @@ | ||||
| [Desktop Entry] | ||||
| Categories=Qt;Network;P2P; | ||||
| Comment=V2.3.0 | ||||
| Comment=V2.2.6 | ||||
| Exec=qbittorrent %f | ||||
| GenericName=Bittorrent client | ||||
| GenericName[ar]=العميل Bittorrent | ||||
| GenericName[bg]=Торент клиент | ||||
| GenericName[cs]=Bittorrent klient | ||||
| GenericName[de]=Bittorren Client | ||||
| @@ -11,7 +10,6 @@ GenericName[el]=Bittorrent πελάτης | ||||
| GenericName[es]=Cliente Bittorrent | ||||
| GenericName[fi]=Bittorrent-ohjelma | ||||
| GenericName[fr]=Client Bittorrent | ||||
| GenericName[hr]=Bittorrent klijent | ||||
| GenericName[hu]=Bittorrent kliens | ||||
| GenericName[it]=Client Bittorrent | ||||
| GenericName[ja]=Bittorrent クライアント | ||||
|   | ||||
| Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 3.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/skin/checkingUP.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 3.3 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/skin/delete_perm22.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.6 KiB | 
| Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 257 B | 
| Before Width: | Height: | Size: 3.0 KiB After Width: | Height: | Size: 2.9 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/skin/pausedUP.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.9 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/skin/properties.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.4 KiB | 
| Before Width: | Height: | Size: 2.9 KiB After Width: | Height: | Size: 2.9 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/skin/queuedUP.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 2.9 KiB | 
| Before Width: | Height: | Size: 79 KiB After Width: | Height: | Size: 79 KiB | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/skin/stalled.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 315 B | 
| @@ -1,60 +0,0 @@ | ||||
| <?xml version="1.0" encoding="UTF-8"?> | ||||
| <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||||
| <plist version="1.0"> | ||||
| <dict> | ||||
| 	<key>CFBundleDocumentTypes</key> | ||||
| 	<array> | ||||
| 		<dict> | ||||
| 			<key>CFBundleTypeExtensions</key> | ||||
| 			<array> | ||||
| 				<string>torrent</string> | ||||
| 			</array> | ||||
| 			<key>CFBundleTypeIconFile</key> | ||||
| 			<string>qBitTorrentDocument</string> | ||||
| 			<key>CFBundleTypeName</key> | ||||
| 			<string>BitTorrent Document</string> | ||||
| 			<key>CFBundleTypeMIMETypes</key> | ||||
| 			<array> | ||||
| 				<string>application/x-bittorrent</string> | ||||
| 			</array> | ||||
| 			<key>CFBundleTypeRole</key> | ||||
| 			<string>Viewer</string> | ||||
| 			<key>LSHandlerRank</key> | ||||
| 			<string>Owner</string> | ||||
| 			<key>LSItemContentTypes</key> | ||||
| 			<array> | ||||
| 				<string>org.bittorrent.torrent</string> | ||||
| 			</array> | ||||
| 			<key>LSIsAppleDefaultForType</key> | ||||
| 			<true/> | ||||
| 		</dict> | ||||
| 	</array> | ||||
| 	<key>CFBundleURLTypes</key> | ||||
| 	<array> | ||||
| 		<dict> | ||||
| 			<key>CFBundleURLSchemes</key> | ||||
| 			<array> | ||||
| 				<string>magnet</string> | ||||
| 			</array> | ||||
| 			<key>CFBundleURLName</key> | ||||
| 			<string>BitTorrent Magnet URL</string> | ||||
| 		</dict> | ||||
| 	</array> | ||||
| 	<key>CFBundleIconFile</key> | ||||
| 	<string>qbittorrent_mac.icns</string> | ||||
| 	<key>CFBundleInfoDictionaryVersion</key> | ||||
| 	<string>6.0</string> | ||||
| 	<key>CFBundlePackageType</key> | ||||
| 	<string>APPL</string> | ||||
| 	<key>CFBundleGetInfoString</key> | ||||
| 	<string>2.3.0</string> | ||||
| 	<key>CFBundleSignature</key> | ||||
| 	<string>????</string> | ||||
| 	<key>CFBundleExecutable</key> | ||||
| 	<string>qbittorrent</string> | ||||
| 	<key>CFBundleIdentifier</key> | ||||
| 	<string>org.qbittorrent</string> | ||||
| 	<key>NOTE</key> | ||||
| 	<string>This file was generated by Qt/QMake.</string> | ||||
| </dict> | ||||
| </plist> | ||||
| @@ -54,8 +54,8 @@ class about : public QDialog, private Ui::AboutDlg{ | ||||
|       te_thanks->append(QString::fromUtf8("<a name='top'></a>")); | ||||
|       te_thanks->append(QString::fromUtf8("<ul><li>I would first like to thank sourceforge.net for hosting qBittorrent project and for their support.</li>")); | ||||
|       te_thanks->append(QString::fromUtf8("<li>I am pleased that people from all over the world are contributing to qBittorrent: Ishan Arora (India), Arnaud Demaizière (France) and Stephanos Antaris (Greece). Their help is greatly appreciated</li>")); | ||||
|       te_thanks->append(QString::fromUtf8("<li>I also want to thank Στέφανος Αντάρης (santaris@csd.auth.gr) and Mirco Chinelli (infinity89@fastwebmail.it) for working on Mac OS X packaging.</li>")); | ||||
|       te_thanks->append(QString::fromUtf8("<li>I am grateful to Peter Koeleman (peter@qbittorrent.org) and Mohammad Dib (mdib@qbittorrent.org) for working on qBittorrent port to Windows.</li>")); | ||||
|       te_thanks->append(QString::fromUtf8("<li>I also want to thank Jeffery Fernandez (jeffery@qbittorrent.org), project consultant, for his help and support since the beginning of this project.</li>")); | ||||
|       te_thanks->append(QString::fromUtf8("<li>I am grateful to Peter Koeleman (peter@qbittorrent.org) for working on qBittorrent port to Windows.</li>")); | ||||
|       te_thanks->append(QString::fromUtf8("<li>Thanks a lot to our graphist Mateusz Toboła (tobejodok@qbittorrent.org) for his great work.</li></ul><br><br>")); | ||||
|       te_thanks->scrollToAnchor(QString::fromUtf8("top")); | ||||
|       // Translation | ||||
| @@ -68,7 +68,6 @@ class about : public QDialog, private Ui::AboutDlg{ | ||||
|           - <u>Catalan:</u> Francisco Luque Contreras (frannoe@ya.com)<br>\ | ||||
|           - <u>Chinese (Simplified):</u> Guo Yue (yue.guo0418@gmail.com)<br>\ | ||||
|           - <u>Chinese (Traditional):</u> Yi-Shun Wang (dnextstep@gmail.com)<br>\ | ||||
|           - <u>Croatian:</u> Oliver Mucafir (oliver.untwist@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>\ | ||||
|   | ||||
| @@ -5,22 +5,18 @@ | ||||
| #include <QHeaderView> | ||||
| #include <QSpinBox> | ||||
| #include <QCheckBox> | ||||
| #include <QComboBox> | ||||
| #include <QNetworkInterface> | ||||
| #include <libtorrent/version.hpp> | ||||
| #include "preferences.h" | ||||
|  | ||||
| enum AdvSettingsCols {PROPERTY, VALUE}; | ||||
| enum AdvSettingsRows {DISK_CACHE, OUTGOING_PORT_MIN, OUTGOING_PORT_MAX, IGNORE_LIMIT_LAN, COUNT_OVERHEAD, RECHECK_COMPLETED, LIST_REFRESH, RESOLVE_COUNTRIES, RESOLVE_HOSTS, MAX_HALF_OPEN, SUPER_SEEDING, NETWORK_IFACE, PROGRAM_NOTIFICATIONS }; | ||||
| #define ROW_COUNT 13 | ||||
| enum AdvSettingsRows {DISK_CACHE, OUTGOING_PORT_MIN, OUTGOING_PORT_MAX, IGNORE_LIMIT_LAN, COUNT_OVERHEAD, RECHECK_COMPLETED, LIST_REFRESH, RESOLVE_COUNTRIES, RESOLVE_HOSTS }; | ||||
| #define ROW_COUNT 9 | ||||
|  | ||||
| class AdvancedSettings: public QTableWidget { | ||||
|   Q_OBJECT | ||||
|  | ||||
| private: | ||||
|   QSpinBox *spin_cache, *outgoing_ports_min, *outgoing_ports_max, *spin_list_refresh, *spin_maxhalfopen; | ||||
|   QCheckBox *cb_ignore_limits_lan, *cb_count_overhead, *cb_recheck_completed, *cb_resolve_countries, *cb_resolve_hosts, *cb_super_seeding, *cb_program_notifications; | ||||
|   QComboBox *combo_iface; | ||||
|   QSpinBox *spin_cache, *outgoing_ports_min, *outgoing_ports_max, *spin_list_refresh; | ||||
|   QCheckBox *cb_ignore_limits_lan, *cb_count_overhead, *cb_recheck_completed, *cb_resolve_countries, *cb_resolve_hosts; | ||||
|  | ||||
| public: | ||||
|   AdvancedSettings(QWidget *parent=0): QTableWidget(parent) { | ||||
| @@ -49,10 +45,6 @@ public: | ||||
|     delete spin_list_refresh; | ||||
|     delete cb_resolve_countries; | ||||
|     delete cb_resolve_hosts; | ||||
|     delete spin_maxhalfopen; | ||||
|     delete cb_super_seeding; | ||||
|     delete combo_iface; | ||||
|     delete cb_program_notifications; | ||||
|   } | ||||
|  | ||||
| public slots: | ||||
| @@ -73,21 +65,6 @@ public slots: | ||||
|     // Peer resolution | ||||
|     Preferences::resolvePeerCountries(cb_resolve_countries->isChecked()); | ||||
|     Preferences::resolvePeerHostNames(cb_resolve_hosts->isChecked()); | ||||
|     // Max Half-Open connections | ||||
|     Preferences::setMaxHalfOpenConnections(spin_maxhalfopen->value()); | ||||
| #if LIBTORRENT_VERSION_MINOR > 14 | ||||
|     // Super seeding | ||||
|     Preferences::enableSuperSeeding(cb_super_seeding->isChecked()); | ||||
| #endif | ||||
|     // Network interface | ||||
|     if(combo_iface->currentIndex() == 0) { | ||||
|       // All interfaces (default) | ||||
|       Preferences::setNetworkInterface(QString::null); | ||||
|     } else { | ||||
|       Preferences::setNetworkInterface(combo_iface->currentText()); | ||||
|     } | ||||
|     // Program notification | ||||
|     Preferences::useProgramNotification(cb_program_notifications->isChecked()); | ||||
|   } | ||||
|  | ||||
| protected slots: | ||||
| @@ -156,45 +133,6 @@ protected slots: | ||||
|     connect(cb_resolve_hosts, SIGNAL(toggled(bool)), this, SLOT(emitSettingsChanged())); | ||||
|     cb_resolve_hosts->setChecked(Preferences::resolvePeerHostNames()); | ||||
|     setCellWidget(RESOLVE_HOSTS, VALUE, cb_resolve_hosts); | ||||
|     // Max Half Open connections | ||||
|     setItem(MAX_HALF_OPEN, PROPERTY, new QTableWidgetItem(tr("Maximum number of half-open connections [0: Disabled]"))); | ||||
|     spin_maxhalfopen = new QSpinBox(); | ||||
|     connect(spin_maxhalfopen, SIGNAL(valueChanged(int)), this, SLOT(emitSettingsChanged())); | ||||
|     spin_maxhalfopen->setMinimum(0); | ||||
|     spin_maxhalfopen->setMaximum(99999); | ||||
|     spin_maxhalfopen->setValue(Preferences::getMaxHalfOpenConnections()); | ||||
|     setCellWidget(MAX_HALF_OPEN, VALUE, spin_maxhalfopen); | ||||
|     // Super seeding | ||||
|     setItem(SUPER_SEEDING, PROPERTY, new QTableWidgetItem(tr("Strict super seeding"))); | ||||
|     cb_super_seeding = new QCheckBox(); | ||||
|     connect(cb_super_seeding, SIGNAL(toggled(bool)), this, SLOT(emitSettingsChanged())); | ||||
| #if LIBTORRENT_VERSION_MINOR > 14 | ||||
|     cb_super_seeding->setChecked(Preferences::isSuperSeedingEnabled()); | ||||
| #else | ||||
|     cb_super_seeding->setEnabled(false); | ||||
| #endif | ||||
|     setCellWidget(SUPER_SEEDING, VALUE, cb_super_seeding); | ||||
|     // Network interface | ||||
|     setItem(NETWORK_IFACE, PROPERTY, new QTableWidgetItem(tr("Network Interface (requires restart)"))); | ||||
|     combo_iface = new QComboBox; | ||||
|     combo_iface->addItem(tr("Any interface", "i.e. Any network interface")); | ||||
|     const QString current_iface = Preferences::getNetworkInterface(); | ||||
|     int i = 1; | ||||
|     foreach(const QNetworkInterface& iface, QNetworkInterface::allInterfaces()) { | ||||
|       if(iface.name() == "lo") continue; | ||||
|       combo_iface->addItem(iface.name()); | ||||
|       if(!current_iface.isEmpty() && iface.name() == current_iface) | ||||
|         combo_iface->setCurrentIndex(i); | ||||
|       ++i; | ||||
|     } | ||||
|     connect(combo_iface, SIGNAL(currentIndexChanged(int)), this, SLOT(emitSettingsChanged())); | ||||
|     setCellWidget(NETWORK_IFACE, VALUE, combo_iface); | ||||
|     // Program notifications | ||||
|     setItem(PROGRAM_NOTIFICATIONS, PROPERTY, new QTableWidgetItem(tr("Display program notification baloons"))); | ||||
|     cb_program_notifications = new QCheckBox(); | ||||
|     connect(cb_program_notifications, SIGNAL(toggled(bool)), this, SLOT(emitSettingsChanged())); | ||||
|     cb_program_notifications->setChecked(Preferences::useProgramNotification()); | ||||
|     setCellWidget(PROGRAM_NOTIFICATIONS, VALUE, cb_program_notifications); | ||||
|   } | ||||
|  | ||||
|   void emitSettingsChanged() { | ||||
|   | ||||