Compare commits
	
		
			58 Commits
		
	
	
		
			release-2.
			...
			release-2.
		
	
	| Author | SHA1 | Date | |
|---|---|---|---|
|   | 89c9a646ad | ||
|   | 1ee45151a1 | ||
|   | 772f05c5d4 | ||
|   | de9e215404 | ||
|   | eeabf85e3b | ||
|   | 6b99c84fe3 | ||
|   | 7d42969505 | ||
|   | 90351c4a57 | ||
|   | 492b9dc88f | ||
|   | c9a8c1d053 | ||
|   | c8fdf8dc10 | ||
|   | 119f83fbf0 | ||
|   | e8db20a558 | ||
|   | 508a811a8a | ||
|   | 296267ec20 | ||
|   | 39d4af1d6e | ||
|   | 2e8f50b709 | ||
|   | fdccf9cc1c | ||
|   | 31819e148f | ||
|   | 5371fb15f8 | ||
|   | f845acb207 | ||
|   | f42eec5ad9 | ||
|   | ec1a06d7c8 | ||
|   | e9b6a726e3 | ||
|   | a3f54fc3b9 | ||
|   | 10f58b4eed | ||
|   | 52fef5ac38 | ||
|   | 4d0cdea1c9 | ||
|   | 86ca755dfe | ||
|   | 659664509a | ||
|   | 412f947db5 | ||
|   | ad47565b93 | ||
|   | 89175ea827 | ||
|   | 8dc34463e3 | ||
|   | cab38857d1 | ||
|   | 14db21c241 | ||
|   | 975ab9ad64 | ||
|   | b810278452 | ||
|   | 86ac0a430e | ||
|   | 78a0f34645 | ||
|   | 3ae09658c9 | ||
|   | 7d9caad31e | ||
|   | c9c627dec2 | ||
|   | 5b104cdd9b | ||
|   | 8f667dce5c | ||
|   | 89412e5050 | ||
|   | 63c121ecc7 | ||
|   | 33b60779d6 | ||
|   | 26b2367833 | ||
|   | 9b40a036a7 | ||
|   | d4cc0e9e4a | ||
|   | ca802a6233 | ||
|   | 35394c4966 | ||
|   | 077dd11af6 | ||
|   | a5c9c8d670 | ||
|   | 1ef0bcbc06 | ||
|   | e15eab9b6a | ||
|   | 8f1c56babd | 
							
								
								
									
										14
									
								
								AUTHORS
									
									
									
									
									
								
							
							
						
						| @@ -3,19 +3,11 @@ 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/* src/lineedit/* | ||||
|   copyright: Nokia Corporation | ||||
|   license: LGPL | ||||
|  | ||||
| * files src/ico.cpp src/ico.h | ||||
|   copyright: Malte Starostik <malte@kde.org> | ||||
|   license: LGPL | ||||
| @@ -67,13 +59,11 @@ Images Authors: | ||||
| Translations authors: | ||||
| * files: src/lang/*.ts | ||||
|   copyright: | ||||
|   - Arabic: SDERAWI (abz8868@msn.com) and sn51234 (nesseyan@gmail.com) | ||||
|   - Brazilian: Nick Marinho (nickmarinho@gmail.com) | ||||
|   - Bulgarian: Tsvetan & Boyko Bankoff (emerge_life@users.sourceforge.net) | ||||
|   - Bulgarian: Tsvetan & Boiko Bankov (emerge_life@users.sourceforge.net) | ||||
|   - Catalan: Francisco Luque Contreras (frannoe@ya.com) | ||||
|   - 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) | ||||
| @@ -96,5 +86,5 @@ Translations authors: | ||||
|   - Spanish: Francisco Luque Contreras (frannoe@ya.com) | ||||
|   - Swedish: Daniel Nylander (po@danielnylander.se) | ||||
|   - Turkish: Hasan Yilmaz (iletisim@hedefturkce.com) | ||||
|   - Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net) and Oleh Prypin (blaxpirit@gmail.com) | ||||
|   - Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net) | ||||
|   license: GPLv2 | ||||
|   | ||||
							
								
								
									
										97
									
								
								Changelog
									
									
									
									
									
								
							
							
						
						| @@ -1,62 +1,45 @@ | ||||
| * Unreleased - Christophe Dumez <chris@qbittorrent.org> - v2.4.0 | ||||
|     - FEATURE: Added actions to "Move to top/bottom" of priority queue | ||||
|     - FEATURE: Auto-Shutdown on downloads completion | ||||
|     - FEATURE: Email notification on download completion | ||||
|     - FEATURE: Added button to password-lock the UI | ||||
|     - FEATURE: Added label-level Pause/Resume/Delete actions | ||||
|     - FEATURE: Torrents can now be filtered by name | ||||
|     - FEATURE: Run external program on torrent completion | ||||
|     - FEATURE: Detect executable updates in order to advise the user to restart | ||||
| * Mon Feb 8 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.4 | ||||
|     - BUGFIX: Fix file prioritizing in a torrent | ||||
|     - BUGFIX: Make sure seeding torrents display a progress of 100% | ||||
|     - BUGFIX: Usage display was improved and localized (--help) | ||||
|     - BUGFIX: Fix possible crash when deleting a torrent | ||||
|     - BUGFIX: Fix possible crash when changing torrents label | ||||
|  | ||||
| * 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 Jan 31 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.3 | ||||
|     - BUGFIX: Fix "Append .!qB extension to complete files" (libtorrent v0.15) | ||||
|     - BUGFIX: Make sure bandwidth limiting dialogs are centered on screen | ||||
|     - BUGFIX: Added support for HTTP redirection | ||||
|     - BUGFIX: Fix compilation error when geoip database is embedded | ||||
|     - BUGFIX: Fix crash when double-clicking on a torrent that has no metadata to open its save path | ||||
|     - BUGFIX: Fix Scan directory preferences in Web UI | ||||
|     - BUGFIX: Clear torrent error state when resuming it | ||||
|  | ||||
| * Sun Mar 14 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.0 | ||||
|     - FEATURE: User can set alternative speed limits for fast toggling | ||||
|     - FEATURE: Bandwidth scheduler (automatically use alternative speed limits for a given period) | ||||
|     - FEATURE: Added "Added/Completed On" columns to transfer list | ||||
|     - FEATURE: Added "Upload/Download limit" columns to transfer list | ||||
|     - FEATURE: Torrent files can be exported to a given directory | ||||
|     - FEATURE: Outgoing ports range can be customized (for QoS) | ||||
|     - FEATURE: User can choose to apply transfer limits on LAN too | ||||
|     - FEATURE: User can choose to include the protocol overhead in transfer limits | ||||
|     - FEATURE: Torrents can be automatically rechecked on completion | ||||
|     - FEATURE: If 2 torrents have the same hash, add new trackers/URL seeds to the existing torrent | ||||
|     - FEATURE: Trackers can be added from Web UI | ||||
|     - FEATURE: Global transfer information are displayed in the new Web UI status bar | ||||
|     - FEATURE: Allow to change the priority of several files at once | ||||
|     - FEATURE: Support for multiple scan folders (Patch by Christian Kandeler) | ||||
|     - BUGFIX: Only one log window can be opened at a time | ||||
|     - BUGFIX: Optimized RSS module memory usage | ||||
|     - BUGFIX: Consider HTTP downloads >1MB as invalid .torrent files and abort | ||||
|     - BUGFIX: Fix Web UI authentication with some browsers | ||||
|     - BUGFIX: Set Web UI ban period to 1 hour | ||||
|     - COSMETIC: Improved style management | ||||
| * Sun Jan 24 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.2 | ||||
|     - FEATURE: Added back file prioritizing in a torrent | ||||
|     - BUGFIX: Fix issue causing torrents not to be displayed in the list | ||||
|     - BUGFIX: Make sure invalid torrent are removed from the transfer list | ||||
|     - BUGFIX: Fix overwrite check when renaming a folder in a torrent | ||||
|     - BUGFIX: Force a recheck after renaming files to avoid overwriting | ||||
|     - BUGFIX: Improve "Open destination folder" behavior | ||||
|     - BUGFIX: Fix race condition in RSS that could cause a crash on startup | ||||
|     - BUGFIX: Improved user friendlyness of size units | ||||
|     - BUGFIX: Optimized transfer list repainting | ||||
|     - COSMETIC: Improved transfer speed display in peers list | ||||
|  | ||||
| * Wed Jan 20 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.1 | ||||
|     - BUGFIX: Fix compilation with Qt4.4 | ||||
|     - BUGFIX: Save torrent metadata so that it does not have to be re-downloaded on restart (Magnet links) | ||||
|     - BUGFIX: Fix folder renaming in a torrent (would rename children under certain conditions) | ||||
|     - BUGFIX: Nox version no longer requires libQtXml | ||||
|     - BUGFIX: Configure file now checks for pkg-config executable which is required | ||||
|     - BUGFIX: Torrents added from magnet links were not remembered on restart | ||||
|     - BUGFIX: "Add in pause" setting can be ignored from torrent addition dialog | ||||
|     - BUGFIX: Fix renaming of files with unicode characters in their name | ||||
|     - BUGFIX: Fix typo in legal notice (startup) | ||||
|     - BUGFIX: Can listen on ports < 1024 (must be root) | ||||
|     - BUGFIX: Paused torrents can now be rechecked | ||||
|     - BUGFIX: Fix "open torrent destination" feature when path contains spaces | ||||
|     - I18N: Updated translations (Hungarian, Chinese, Russian) | ||||
|  | ||||
| * Mon Jan 18 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.1.0 | ||||
|     - FEATURE: Graphical User Interface can be disabled at compilation time (headless running) | ||||
|   | ||||
							
								
								
									
										6
									
								
								INSTALL
									
									
									
									
									
								
							
							
						
						| @@ -14,13 +14,11 @@ qBittorrent - A BitTorrent client in C++ / Qt4 | ||||
|  | ||||
|     - pkg-config executable | ||||
|  | ||||
|     - libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, compatible with v0.15.x) | ||||
|     - libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, >= v0.15.0 ADVISED) | ||||
|         -> http://www.libtorrent.net | ||||
|         Be careful: another library (the one used by rTorrent) uses a similar name. | ||||
|  | ||||
|     - libboost 1.34.x (libboost-filesystem, libboost-thread, libboost-date-time) + libasio | ||||
|       or | ||||
|     - libboost >= 1.35.x (libboost-system, libboost-filesystem, libboost-thread, libboost-date-time) | ||||
|     - libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization | ||||
|  | ||||
|     - python >= 2.3 (needed by search engine) | ||||
|         * Run time only dependency | ||||
|   | ||||
							
								
								
									
										62
									
								
								README.os2
									
									
									
									
									
								
							
							
						
						| @@ -1,62 +0,0 @@ | ||||
| qBittorrent - A BitTorrent client in Qt4 | ||||
| ------------------------------------------ | ||||
|  | ||||
| This is the eComStation (OS/2) qBittorrent part of the readme. See also README for more general information. | ||||
|  | ||||
|  | ||||
| Building qBittorrent | ||||
| ******************** | ||||
|  | ||||
|  | ||||
| Requirements | ||||
| ============ | ||||
|  | ||||
| - gcc based build env (recommended gcc v4.4.2 or greater) | ||||
|    | ||||
| - Qt4 for eCS (OS/2) dev package (see http://svn.netlabs.org/qt4 for more information) | ||||
|  | ||||
| - libtorrent-rasterbar for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information) | ||||
|  | ||||
| - boost for eCS (OS/2) port (see http://svn.netlabs.org/ports for more information) | ||||
|  | ||||
|  | ||||
| How to build | ||||
| ============ | ||||
|  | ||||
| First you need to create the conf.pri file in the same dir as this readme.os2 is. | ||||
| the conf.pri file has the following content: | ||||
|  | ||||
| ##### conf.pri content beginn ##### | ||||
| PREFIX = . | ||||
| BINDIR = ./bin | ||||
| INCDIR = ./include | ||||
| LIBDIR = ./lib | ||||
| DATADIR = ./share | ||||
|  | ||||
| CONFIG += staticlib | ||||
| INCLUDEPATH += x:/trees/libtorrent/trunk/include | ||||
| LIBS += -Lx:/trees/libtorrent/trunk/src/.libs \ | ||||
|         -Lx:/trees/boost/trunk/stage/lib \ | ||||
|         -Lx:/trees/openssl \ | ||||
| 	-Lx:/extras/lib | ||||
| ##### conf.pri content end ##### | ||||
|  | ||||
| Of course all the above path references have to be adjusted to your build env. | ||||
|  | ||||
| It should now be easy to build qBittorrent: | ||||
|  | ||||
| Simply type: | ||||
| $ qmake | ||||
|  | ||||
| Followed by: | ||||
| $ make | ||||
|  | ||||
| If all works fine you should get a working qbittorrent executable. | ||||
|  | ||||
| If you have any question regarding the eCS (OS/2) port of qBittorrent you can meet me (_diver) on IRC: | ||||
| #netlabs on irc.freenode.net | ||||
|  | ||||
| ------------------------------------------ | ||||
| Silvan Scherrer <silvan.scherrer@aroa.ch> | ||||
|  | ||||
|  | ||||
| @@ -19,6 +19,4 @@ | ||||
|   </dep> | ||||
|   <dep type='geoip-database'> | ||||
|   </dep> | ||||
|   <dep type='qtsingleapplication'> | ||||
|   </dep> | ||||
| </qconf> | ||||
|   | ||||
| @@ -2,39 +2,14 @@ | ||||
| -----BEGIN QCMOD----- | ||||
| name: libboost | ||||
| arg: with-libboost-inc=[path], Path to libboost include files | ||||
| arg: with-libboost-lib=[path], Path to libboost library files | ||||
| -----END QCMOD----- | ||||
| */ | ||||
| #include <boost/version.hpp> | ||||
| class qc_libboost : public ConfObj | ||||
| { | ||||
| public: | ||||
| 	qc_libboost(Conf *c) : ConfObj(c) {} | ||||
| 	QString name() const { return "libboost"; } | ||||
| 	QString shortname() const { return "libboost"; } | ||||
|   QString findBoostLib(QString path, QString lib) const { | ||||
|     QString name; | ||||
|     QDir libDir(path); | ||||
|     QStringList filters; | ||||
|     filters << "libboost_"+lib+"*-mt*.so"; | ||||
|     QStringList result = libDir.entryList(filters, QDir::Files); | ||||
|     if(!result.empty()) { | ||||
|       name = result.first().mid(3); | ||||
|       // Remove .so | ||||
|       name.chop(3); | ||||
|     } else { | ||||
|       // Fall back to non -mt boost lib | ||||
|       filters.clear(); | ||||
|       filters << "libboost_"+lib+"*.so"; | ||||
|       result = libDir.entryList(filters, QDir::Files); | ||||
|       if(!result.empty()) { | ||||
|         name = result.first().mid(3); | ||||
|         // Remove .so | ||||
|         name.chop(3); | ||||
|       } | ||||
|     } | ||||
|     return name; | ||||
|   } | ||||
| 	bool exec(){ | ||||
|         	QString s; | ||||
| 		s = conf->getenv("QC_WITH_LIBBOOST_INC"); | ||||
| @@ -76,43 +51,6 @@ public: | ||||
|       			} | ||||
| 		} | ||||
| 		conf->addIncludePath(s); | ||||
| 		// Find library | ||||
| 		s = conf->getenv("QC_WITH_LIBBOOST_LIB"); | ||||
|     QStringList required_libs; | ||||
| #if BOOST_VERSION >= 103500 | ||||
|       required_libs << "system";  | ||||
| #endif | ||||
|     if(conf->getenv("QC_DISABLE_GUI").isEmpty()) { | ||||
|       // Not required by nox | ||||
|       required_libs << "filesystem" << "thread"; | ||||
|     } | ||||
|     QStringList libDirs; | ||||
|     libDirs << "/usr/lib/" << "/usr/lib64/" << "/usr/local/lib/" << "/usr/local/lib64/"; | ||||
|     foreach(const QString& lib, required_libs) { | ||||
|       if(!s.isEmpty()) { | ||||
|         QString detected_name = findBoostLib(s, lib); | ||||
|         if(detected_name.isEmpty()) { | ||||
|           printf("Could not find boost %s library!\n", qPrintable(lib)); | ||||
|           return false; | ||||
|         } else { | ||||
|           conf->addLib("-l"+detected_name); | ||||
|         } | ||||
|       } else { | ||||
|         bool found = false; | ||||
|         foreach(const QString& libDir, libDirs) { | ||||
|           QString detected_name = findBoostLib(libDir, lib); | ||||
|           if(!detected_name.isEmpty()) { | ||||
|             conf->addLib("-l"+detected_name); | ||||
|             found = true; | ||||
|             break; | ||||
|           } | ||||
|         } | ||||
|         if(!found) { | ||||
|           printf("Could not find boost %s library!\n", qPrintable(lib)); | ||||
|           return false; | ||||
|         } | ||||
|       } | ||||
|     } | ||||
| 		return true; | ||||
| 	} | ||||
| }; | ||||
|   | ||||
| @@ -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,15 +13,19 @@ 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(conf->getenv("QC_DISABLE_GUI").isEmpty()) { | ||||
|   		  conf->addLib("-lcrypto"); | ||||
|                 } | ||||
| 		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"); | ||||
| 		return true; | ||||
| 	} | ||||
| }; | ||||
|   | ||||
| @@ -15,6 +15,10 @@ public: | ||||
| 		if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) { | ||||
| 			conf->addDefine("DISABLE_GUI"); | ||||
| 		}	 | ||||
| 		if(QT_VERSION >= 0x040500) { | ||||
|                         conf->addDefine("QT_4_5"); | ||||
|                 } | ||||
| 		return(QT_VERSION >= 0x040400); | ||||
| 		 | ||||
| 	} | ||||
| }; | ||||
|   | ||||
							
								
								
									
										606
									
								
								src/GUI.cpp
									
									
									
									
									
								
							
							
						
						
							
								
								
									
										130
									
								
								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; | ||||
| @@ -52,34 +55,43 @@ class TransferListFiltersWidget; | ||||
| class QSplitter; | ||||
| class PropertiesWidget; | ||||
| class StatusBar; | ||||
| class consoleDlg; | ||||
| class about; | ||||
| class createtorrent; | ||||
| class downloadFromURL; | ||||
| class HidableTabWidget; | ||||
| class LineEdit; | ||||
| class QFileSystemWatcher; | ||||
|  | ||||
| class GUI : public QMainWindow, private Ui::MainWindow{ | ||||
|   Q_OBJECT | ||||
|  | ||||
| public: | ||||
|   // Construct / Destruct | ||||
|   GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList()); | ||||
|   ~GUI(); | ||||
|   // Methods | ||||
|   QWidget* getCurrentTabWidget() const; | ||||
|   TransferListWidget* getTransferList() const { return transferList; } | ||||
|   QMenu* getTrayIconMenu(); | ||||
|   PropertiesWidget *getProperties() const { return properties; } | ||||
|  | ||||
| public slots: | ||||
|   void trackerAuthenticationRequired(QTorrentHandle& h); | ||||
|   void setTabText(int index, QString text) const; | ||||
|   void showNotificationBaloon(QString title, QString msg) const; | ||||
|   void downloadFromURLList(const QStringList& urls); | ||||
|   void updateAltSpeedsBtn(bool alternative); | ||||
|   void updateNbTorrents(unsigned int nb_downloading, unsigned int nb_seeding, unsigned int nb_active, unsigned int nb_inactive, unsigned int nb_paused); | ||||
| private: | ||||
|   // Bittorrent | ||||
|   Bittorrent *BTSession; | ||||
|   QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed? | ||||
|   // GUI related | ||||
|   QTimer *guiUpdater; | ||||
|   QTabWidget *tabs; | ||||
|   StatusBar *status_bar; | ||||
|   QPointer<options_imp> options; | ||||
|   QPointer<QSystemTrayIcon> systrayIcon; | ||||
|   QPointer<QTimer> systrayCreator; | ||||
|   QMenu *myTrayIconMenu; | ||||
|   TransferListWidget *transferList; | ||||
|   TransferListFiltersWidget *transferListFilters; | ||||
|   PropertiesWidget *properties; | ||||
|   bool displaySpeedInTitle; | ||||
|   bool force_exit; | ||||
|   // Keyboard shortcuts | ||||
|   QShortcut *switchSearchShortcut; | ||||
|   QShortcut *switchSearchShortcut2; | ||||
|   QShortcut *switchTransferShortcut; | ||||
|   QShortcut *switchRSSShortcut; | ||||
|   // Widgets | ||||
|   QAction *prioSeparator; | ||||
|   QAction *prioSeparator2; | ||||
|   QSplitter *hSplitter; | ||||
|   QSplitter *vSplitter; | ||||
|   // Search | ||||
|   SearchEngine *searchEngine; | ||||
|   // RSS | ||||
|   QPointer<RSSImp> rssWidget; | ||||
|   // Misc | ||||
|   QLocalServer *localServer; | ||||
|  | ||||
| protected slots: | ||||
|   // GUI related slots | ||||
| @@ -91,6 +103,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(); | ||||
| @@ -100,10 +114,6 @@ protected slots: | ||||
|   void handleDownloadFromUrlFailure(QString, QString) const; | ||||
|   void createSystrayDelayed(); | ||||
|   void tab_changed(int); | ||||
|   void on_actionLock_qBittorrent_triggered(); | ||||
|   void defineUILockPassword(); | ||||
|   bool unlockUI(); | ||||
|   void notifyOfUpdate(QString); | ||||
|   // Keyboard shortcuts | ||||
|   void createKeyboardShortcuts(); | ||||
|   void displayTransferTab() const; | ||||
| @@ -116,71 +126,37 @@ 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); | ||||
|   void addUnauthenticatedTracker(QPair<QTorrentHandle,QString> tracker); | ||||
|   void processDownloadedFiles(QString path, QString url); | ||||
|   void finishedTorrent(QTorrentHandle& h) const; | ||||
|   void askRecursiveTorrentDownloadConfirmation(QTorrentHandle &h); | ||||
|   // Options slots | ||||
|   void on_actionOptions_triggered(); | ||||
|   void optionsSaved(); | ||||
|   // HTTP slots | ||||
|   void on_actionDownload_from_URL_triggered(); | ||||
|  | ||||
|  | ||||
| public slots: | ||||
|   void trackerAuthenticationRequired(QTorrentHandle& h); | ||||
|   void setTabText(int index, QString text) const; | ||||
|   void showNotificationBaloon(QString title, QString msg) const; | ||||
|   void downloadFromURLList(const QStringList& urls); | ||||
|  | ||||
| protected: | ||||
|   void closeEvent(QCloseEvent *); | ||||
|   void showEvent(QShowEvent *); | ||||
|   bool event(QEvent * event); | ||||
|   void displayRSSTab(bool enable); | ||||
|   void displaySearchTab(bool enable); | ||||
|  | ||||
| private: | ||||
|   QFileSystemWatcher *executable_watcher; | ||||
|   // Bittorrent | ||||
|   Bittorrent *BTSession; | ||||
|   QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed? | ||||
|   // GUI related | ||||
|   QTimer *guiUpdater; | ||||
|   HidableTabWidget *tabs; | ||||
|   StatusBar *status_bar; | ||||
|   QPointer<options_imp> options; | ||||
|   QPointer<consoleDlg> console; | ||||
|   QPointer<about> aboutDlg; | ||||
|   QPointer<createtorrent> createTorrentDlg; | ||||
|   QPointer<downloadFromURL> downloadFromURLDialog; | ||||
|   QPointer<QSystemTrayIcon> systrayIcon; | ||||
|   QPointer<QTimer> systrayCreator; | ||||
|   QPointer<QMenu> myTrayIconMenu; | ||||
|   TransferListWidget *transferList; | ||||
|   TransferListFiltersWidget *transferListFilters; | ||||
|   PropertiesWidget *properties; | ||||
|   bool displaySpeedInTitle; | ||||
|   bool force_exit; | ||||
|   bool ui_locked; | ||||
|   LineEdit *search_filter; | ||||
|   // Keyboard shortcuts | ||||
|   QShortcut *switchSearchShortcut; | ||||
|   QShortcut *switchSearchShortcut2; | ||||
|   QShortcut *switchTransferShortcut; | ||||
|   QShortcut *switchRSSShortcut; | ||||
|   // Widgets | ||||
|   QAction *prioSeparator; | ||||
|   QAction *prioSeparator2; | ||||
|   QSplitter *hSplitter; | ||||
|   QSplitter *vSplitter; | ||||
|   // Search | ||||
|   QPointer<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(); | ||||
|     void on_actionShutdown_when_downloads_complete_triggered(); | ||||
| public: | ||||
|   // Construct / Destruct | ||||
|   GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList()); | ||||
|   ~GUI(); | ||||
|   // Methods | ||||
|   int getCurrentTabIndex() const; | ||||
|   TransferListWidget* getTransferList() const { return transferList; } | ||||
| }; | ||||
|  | ||||
| #endif | ||||
|   | ||||
| Before Width: | Height: | Size: 322 B | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/L.gif
									
									
									
									
									
								
							
							
						
						| Before Width: | Height: | Size: 66 B | 
| Before Width: | Height: | Size: 546 B | 
							
								
								
									
										
											BIN
										
									
								
								src/Icons/locale.png
									
									
									
									
									
										Normal file
									
								
							
							
						
						| After Width: | Height: | Size: 1.3 KiB | 
| Before Width: | Height: | Size: 7.0 KiB | 
| Before Width: | Height: | Size: 2.3 KiB | 
| Before Width: | Height: | Size: 1.0 KiB | 
| Before Width: | Height: | Size: 1.8 KiB | 
| Before Width: | Height: | Size: 1.0 KiB | 
| Before Width: | Height: | Size: 892 B | 
| Before Width: | Height: | Size: 996 B | 
| Before Width: | Height: | Size: 929 B | 
							
								
								
									
										
											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.4.0 | ||||
| Comment=V2.1.4 | ||||
| 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: 54 B | 
| 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 |