1
mirror of https://github.com/qbittorrent/qBittorrent synced 2025-10-07 09:52:18 +02:00

Compare commits

...

75 Commits

Author SHA1 Message Date
Christophe Dumez
726e3b2eae - Tagged v1.0.0final 2008-04-11 17:01:38 +00:00
Christophe Dumez
755a5a4aa7 - Fixed unlimited download limit problem (trayicon) 2008-03-14 20:55:37 +00:00
Christophe Dumez
45c2044634 - Fixed mistake in french translation 2008-03-14 20:46:07 +00:00
Christophe Dumez
b7ea2c7401 - Fixed index problem in preview selection (closes #192495) 2008-02-17 13:34:50 +00:00
Christophe Dumez
84fd2ec218 - Attempt to fix compilation on vc++ 2008-02-03 10:47:01 +00:00
Christophe Dumez
bf2e0f5982 - Fixed torrents' names in mininova search engine 2008-01-28 12:27:39 +00:00
Christophe Dumez
a270c87b28 Updated language files 2008-01-04 20:51:58 +00:00
Christophe Dumez
1e95bac659 BUGFIX: Catch all possible exceptions when adding a torrent to avoid crashing 2008-01-04 20:48:03 +00:00
Christophe Dumez
729adf06c3 - Fixed systray integration when qbittorrent is launched on system startup 2008-01-04 20:11:32 +00:00
Christophe Dumez
0b9452ac30 - Use 16px tray icon on windows
- Updated TODO
2008-01-04 19:49:19 +00:00
Christophe Dumez
71149e7baa - Threadified torrent creation
- Added a progress bar in torrent creation
- Display if UPnP/NAT-PMP was successful or not
2007-12-31 16:57:35 +00:00
Christophe Dumez
032ba42ef3 - version bump to rc11 2007-12-30 18:16:43 +00:00
Christophe Dumez
2f689208be - BUGFIX: Fixed torrent creation from a directory
- BUGFIX: Fixed save path when seeding automatically after torrent creation
2007-12-30 18:13:00 +00:00
Christophe Dumez
faa33b0d7e - Removed debug mode 2007-12-28 10:00:28 +00:00
Christophe Dumez
8fdf3d520c - Fixed btjunkie search engine 2007-12-28 09:58:14 +00:00
Christophe Dumez
b238a4ed69 - Fixed eol problems on Windows 2007-12-12 22:01:49 +00:00
Christophe Dumez
ba53bdc708 should fix eol problems on windows 2007-12-12 21:47:31 +00:00
Christophe Dumez
f2a65e07b5 - Fix for windows 2007-12-12 18:21:08 +00:00
Christophe Dumez
62afd4f98b - Forgot to call one script with python executable 2007-12-12 17:55:56 +00:00
Christophe Dumez
6c11fd5a0d - Call python script with python executable (fix for windows) 2007-12-12 17:15:13 +00:00
Christophe Dumez
cc39504a61 - Attempt to fix search engine plugins copy on windows 2007-12-12 16:57:33 +00:00
Christophe Dumez
1baec5378f - Updated rc11 changelog 2007-12-12 12:32:38 +00:00
Christophe Dumez
b60b4fafff - DownloadThread now write in binary mode (should fix problems on Windows) 2007-12-12 12:24:12 +00:00
Christophe Dumez
3325dd0550 - Removed libcurl debug output 2007-12-11 20:31:20 +00:00
Christophe Dumez
29dc0fede0 - DownloadThread can now follow redirections (fixes Mininova search engine) 2007-12-11 20:23:13 +00:00
Christophe Dumez
19f6b8491e - Forgot to remove the temporary download file when addition fails 2007-12-11 20:01:33 +00:00
Christophe Dumez
01b1e78dcd - Fixed torrentreactor search engine 2007-12-11 19:33:19 +00:00
Christophe Dumez
bd546e3d18 - BUGFIX: Bypass exit confirmation on system shutdown 2007-12-09 16:39:55 +00:00
Christophe Dumez
6ca93dfbae - Fixed a compilation warning 2007-12-09 15:52:00 +00:00
Christophe Dumez
f175ce5249 - Fixed preview when path contains spaces (closes #175015)
- Version bump to rc10
2007-12-09 09:32:01 +00:00
Christophe Dumez
940a8b28e4 - BUGFIX: Fixed possible problem when closing to systray and cancelling app exit
( closes #173832)
2007-12-04 12:07:00 +00:00
Christophe Dumez
9ee9c7d362 - Disabled debug mode 2007-12-03 20:31:50 +00:00
Christophe Dumez
2899494ef3 - fix for windows compilation 2007-12-03 20:22:57 +00:00
Christophe Dumez
624e2b287a - Still trying to fix windows compilation 2007-12-03 20:14:00 +00:00
Christophe Dumez
681d538163 - Fix last commit 2007-12-03 20:07:42 +00:00
Christophe Dumez
60f1a1989c - Attempt to fix compilation on windows 2007-12-03 20:02:18 +00:00
Christophe Dumez
050dc9de44 - Fixed nbResult != 0 when clearing results while a search is running 2007-12-03 19:31:19 +00:00
Christophe Dumez
d80f94643f - Attempt to fix downloadFromUrl on windows 2007-11-30 16:06:07 +00:00
Christophe Dumez
1b4bb7655f limit search engine plugins to 10 result pages 2007-11-30 11:55:50 +00:00
Christophe Dumez
e8ffaa2f87 - BUGFIX: Added a 3 minutes search engine timeout 2007-11-30 10:49:20 +00:00
Christophe Dumez
a89188acc3 - Commited Peerkoel's windows building script 2007-11-29 21:56:01 +00:00
Christophe Dumez
993002a151 - BUGFIX: Fixed proxy host max length in preferences 2007-11-28 12:51:27 +00:00
Christophe Dumez
8bcaf55439 - Fixed compilation on windows (closes #172391) 2007-11-27 19:38:40 +00:00
Christophe Dumez
48aac758c9 - COSMETIC: Use more skin colors instead of hard coded ones 2007-11-24 23:50:27 +00:00
Christophe Dumez
4ba2c3d385 - FEATURE: Greatly improved ETA calculation algorithm (use GASA) 2007-11-24 22:01:31 +00:00
Christophe Dumez
d96e21c07f - Updated TODO 2007-11-24 19:40:14 +00:00
Christophe Dumez
1204cebaa1 - bump to rc9 2007-11-23 23:43:14 +00:00
Christophe Dumez
1695e85bdf - Added some errors code for libcurl
- Added HTTPS download support
2007-11-23 23:07:07 +00:00
Christophe Dumez
33305cca9f - Moved from libcommoncpp2 to libcurl for downloads from urls
- Added SOCKS5 proxy support in downloads from urls, RSS
2007-11-23 23:00:38 +00:00
Christophe Dumez
04b683c38c - Do not use SOCKS5 proxy in downloadThread.cpp (code does not work). HTTP is ok though. 2007-11-23 20:51:03 +00:00
Christophe Dumez
d55cd9aec8 - Fixed HTTP proxy support in downloadThread.cpp 2007-11-23 15:59:18 +00:00
Christophe Dumez
0b5652bd72 - BUGFIX: Fixed everlasting libtorrent session destruction on exit 2007-11-23 15:22:12 +00:00
Christophe Dumez
878787e965 - BUGFIX: Fixed proxy layout in program preferences 2007-11-23 00:25:34 +00:00
Christophe Dumez
3536577af6 Added a h.is_valid check 2007-11-22 21:54:24 +00:00
Christophe Dumez
9f2d9e4d3f - Do not save fastresume data for paused torrents anymore 2007-11-22 21:51:22 +00:00
Christophe Dumez
efe0dbabaa - Fixed proxy auth disable problem when disabling proxy 2007-11-22 21:33:31 +00:00
Christophe Dumez
b1d8fb0f11 - Some bug fixes (Proxy) 2007-11-22 10:49:10 +00:00
Christophe Dumez
78fc5d4865 - BUGFIX: Added proxy support in search engine, RSS, downloads from urls
- Must add SOCKS5 proxy support in search engine plugins (python -> urllib2?)
2007-11-21 22:33:32 +00:00
Christophe Dumez
19996736d6 do not save fastresume data regularly for seeding torrents 2007-11-21 20:34:17 +00:00
Christophe Dumez
6f9d22af03 - BUGFIX: title bar is now reset when "Display speed in title" is disabled 2007-11-21 20:18:11 +00:00
Christophe Dumez
6b6d05a380 - BUGFIX: Fixed possible overflow in ETA calculation 2007-11-21 19:01:24 +00:00
Christophe Dumez
df92e3e5e9 - Save fastresume data every minute instead of every 10 sec 2007-11-21 16:50:26 +00:00
Christophe Dumez
26b6c26ea8 - Fixed segfault that would happen when unfiltering files in torrent addition dialog (closes #163379) 2007-11-19 21:44:21 +00:00
Christophe Dumez
1b6183bfa3 - BUGFIX: Saving trackers file only when necessary 2007-11-19 21:22:48 +00:00
Christophe Dumez
7edbaa3847 - BUGFIX: Do not save fastresume data for checking torrents anymore 2007-11-19 20:45:35 +00:00
Christophe Dumez
2ee152a374 - BUGFIX: Do no pause torrents before saving fastresume data anymore (no longer needed)
- BUGFIX: Save fast resume data regularly (every 10 seconds) to avoid downloading from s
cratch if qBittorrent crashes
2007-11-19 20:36:01 +00:00
Christophe Dumez
bc8ac43a54 - BUGFIX: Improved proxy support in search engine (HTTP only) 2007-11-16 20:01:15 +00:00
Christophe Dumez
5f48a51070 - BUGFIX: Remember properties window size and position 2007-11-16 19:35:12 +00:00
Christophe Dumez
c3a6b24ed1 - FEATURE: Better media file preview (player detected automatically) 2007-11-16 18:39:50 +00:00
Christophe Dumez
c3b22c9a01 bump version to rc8 2007-11-14 21:50:33 +00:00
Christophe Dumez
5d09ace7eb - Removed a fedora 7 workaround 2007-11-13 10:31:42 +00:00
Christophe Dumez
fe37724338 - Removed Fedora pkg-config workaround because Fedora 8 fixed the problem 2007-11-10 09:27:25 +00:00
Christophe Dumez
8aaacbe38d - BUGFIX: Stop search when clearing results 2007-11-07 11:18:09 +00:00
Christophe Dumez
edc625c9c9 - fixed torrent files filtering (closes #158846) 2007-11-06 20:57:36 +00:00
Christophe Dumez
6ae21c2919 - Moved v1.0.x to a branch so that we work on v1.1.x in trunk 2007-11-06 11:07:07 +00:00
158 changed files with 36159 additions and 18471 deletions

View File

@@ -1,5 +1,5 @@
Author:
* Christophe Dumez <chris@qbittorrent.org>
Other developers:
Contributors:
* Arnaud Demaizière <arnaud@qbittorrent.org>

View File

@@ -5,6 +5,8 @@
- FEATURE: Bittorrent FAST extension support
- FEATURE: Added RSS support
- FEATURE: Support files prioritizing in a torrent
- FEATURE: Brand new search engine plugins system
- FEATURE: Filtered files don't appear on hard disk anymore
- FEATURE: Finished torrents are now moved to another tab for seeding
- FEATURE: Display more infos about the torrent in its properties
- FEATURE: Allow the user to edit torrents' trackers
@@ -30,21 +32,34 @@
- FEATURE: User is now warned when fast resume data was rejected
- FEATURE: Url seeds are now displayed in torrent properties and are editable
- FEATURE: Allow to drag 'n drop urls on the main window
- FEATURE: Improved search engine (multipage support in all plugins)
- FEATURE: Added BTJunkie search engine plugin
- FEATURE: Added an option to force full disk allocation for all torrents
- FEATURE: Added an option to add torrents in paused state
- FEATURE: Added an option to set the max number of connections per torrent
- FEATURE: Added an option to set the max number of uploads per torrent
- FEATURE: Added an option to automatically delete torrents when they reach a given ratio (>= 1.0)
- FEATURE: Added an option to display current transfer speeds in title bar
- FEATURE: Torrent content is now displayed as a tree
- FEATURE: Better media file preview (player detected automatically)
- FEATURE: Greatly improved ETA calculation algorithm (use GASA)
- I18N: Added Hungarian translation
- I18N: Added Brazilian translation
- BUGFIX: Progress of paused torrents is now correct on restart
- BUGFIX: clear the results of a search stops searching
- BUGFIX: Progress column gets sorted on restart it is was during last execution
- BUGFIX: Made ETA more reliable using stats instead of instant values
- BUGFIX: Remove torrent from hard drive used to delete parent folder if empty
- BUGFIX: Fixed a crash when filtering all the files in a torrent
- BUGFIX: Reload torrent only when necessary (properties)
- BUGFIX: qBittorrent is not exiting anymore when a dialog is closed and main window is hidden
- BUGFIX: Catch all possible exceptions when adding a torrent to avoid crashing
- BUGFIX: Search plugin update is not making the GUI freeze anymore (moved to a thread)
- BUGFIX: DHT settings were not saved correctly
- BUGFIX: Workaround to build on Fedora system (pkg-config problem)
- BUGFIX: search plugin update - do not display only last version changelog
- BUGFIX: Search plugin update - fixed missing new lines in changelog
- BUGFIX: The number of search results was not reset when clicking on 'Clear' button
- BUGFIX: Fixed systray integration when qbittorrent is launched on system startup
- BUGFIX: Update torrent progress when its content changed (filtered files)
- BUGFIX: Improved the way menu icons are installed to avoid problems on some systems
- BUGFIX: Improved incremental download
@@ -52,11 +67,18 @@
- BUGFIX: Made torrent deletion from hard-drive safer
- BUGFIX: Prevent downloadFromUrl flooding
- BUGFIX: ETA was wrong for torrents with filtered files
- BUGFIX: Fixed drag'n drop on non-KDE systems
- BUGFIX: Removed build dependency on Python
- BUGFIX: Catching DHT exception in case there is a problem
- BUGFIX: Remember properties window size and position
- BUGFIX: Improved proxy support in search engine (HTTP only)
- COSMETIC: Redesigned torrent properties a little
- COSMETIC: Redesigned options a little
- COSMETIC: Totally redesigned program preferences
- COSMETIC: Display more logs messages concerning features
- COSMETIC: Improved lists renderers
- COSMETIC: Use a different icon for torrents being checked and for connecting ones
- COSMETIC: Improved some icons
- COSMETIC: Improved systray tooltip style
* Mon May 07 2007 - Christophe Dumez <chris@qbittorrent.org> - v0.9.3
- BUGFIX: Fixed pause toggle on double-click in download list

23
INSTALL
View File

@@ -1,4 +1,4 @@
qBittorrent - A BitTorrent client in C++ / Qt4.2
qBittorrent - A BitTorrent client in C++ / Qt4
------------------------------------------
*** Necessary if qt3 is default on your system ***
@@ -14,25 +14,30 @@ qbittorrent
will install and execute qBittorrent hopefully without any problems.
Dependencies:
- Qt >= 4.2 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
- Qt >= 4.3.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
- libtorrent by Arvid Norberg (>= v0.13 REQUIRED)
- rblibtorrent by Arvid Norberg (>= v0.13 REQUIRED)
-> http://www.qbittorrent.org/download.php (advised)
-> http://www.libtorrent.net
Be carefull: another library (the one used by rtorrent) use the same name.
Be careful: another library (the one used by rTorrent) use the same name.
These are TWO different libraries and qBittorrent will only work with the one provided
on sourceforge (created by Arvid Norberg). The two libraries conflicts with each other.
- libboost: libboost-filesystem, libboost-date-time, libboost-thread, libboost-serialization
- libcommoncpp2
- libcurl
- python >= 2.3 (previous might work - not tested): needed by search engine.
- python >= 2.3 (needed by search engine)
- libmagick++ (advised, not required)
* Needed for favicons support (RSS / Search plugins)
NOTE FOR GNOME USERS:
- qt4-qtconfig package is advised when using Plastique style (default)
or just change qBittorrent style to Cleanlooks (GNOME like)
- libzzip (advised, not required)
* Needed for zip support (Search plugins)
NOTE FOR NON-KDE USERS:
- qt4-qtconfig package is advised when using other systems than KDE.
You can also change qBittorrent style to Cleanlooks (GNOME like)
DOCUMENTATION:
Please note that there is a documentation with a "compiling howto" at http://wiki.qbittorrent.org.

14
README
View File

@@ -3,30 +3,30 @@ qBittorrent - A BitTorrent client in Qt4
Description:
********************************
qBittorrent is a bittorrent client programmed in C++ / Qt4 that use
libtorrent (sometimes called rb_libtorrent) by Arvid Norberg.
qBittorrent is a bittorrent client programmed in C++ / Qt4 that uses
libtorrent (sometimes called rblibtorrent) by Arvid Norberg.
It aims to be a good alternative to all other bittorrent clients
out there. qBittorrent is fast, stable and provides unicode
support.
support as well as many features.
Installation:
********************************
For installation follow the instructions from INSTALL file, but simple
For installation, follow the instructions from INSTALL file, but simple:
./configure
make && make install
qbittorrent
will install and execute qBittorrent hopefully without any problems.
will install and execute qBittorrent hopefully without any problem.
For more information please visit:
http://www.qbittorrent.org
Please report any bug (or feature requests) to:
Please report any bug (or feature request) to:
http://bugs.qbittorrent.org
You can also meet me on IRC:
You can also meet me (chris-qBT) on IRC:
#qbittorrent on irc.freenode.net
------------------------------------------

97
TODO
View File

@@ -1,98 +1,49 @@
// Easy
- Translations into as many languages as possible
- Improve man page
- Use Launchpad/Rosetta for translations once it supports TS files
// Intermediate
- Port on MacOS, Windows (and create an installer for Windows) - Progressing slowly
- Add some transparency (menus,...), improve look
- Port on MacOS, Windows (and create an installer for Windows) - Slow progress
- Add some transparency (menus,...), improve look / usabilty
- Skins support? (contact Mateusz)
// Harder
- Display a progress bar that really displays the pieces we have (like in eMule)
- Torrent scheduler ala µtorrent/Bitcomet
// Waiting for libtorrent
- File selection in a torrent in compact mode
- Allow to prioritize torrents
- Allow to prioritize torrents (may code this in qBittorrent?)
// Unsure
- Display the peers we are connected to for each torrent with infos (like flag, dl/up speeds, ...)
- Azureus spoofing to prevent ban from trackers?
- Option to shutdown computer when downloads are finished
- Add a torrent scheduler
- NAT checker/Tester
- Display hard drive space left?
- Make use of dbus on Linux for the single instance instead of socket communication?
(http://techbase.kde.org/Development/Tutorials/D-Bus/Accessing_Interfaces)
- search engines customizing
- When favicon can't be downloaded, try to parse the webpage for:
<link rel="icon" href="http://example.com/favicon.ico" type="image/vnd.microsoft.icon">
* Be carefull, the link can be relative
// in v1.2.0
- Allow user to organize the downloads into categories/folders
- Allow user to organize the downloads into categories/folders?
// in v1.1.0
- Tabs support in search
- Allow to hide columns?
- Allow to scan multiple directories? (useful?)
- Web interface (turbogears? php?)
- Web interface (turbogears? php? python?)
* Webserver? Try to write a webserver as a plugin for qBittorrent in Python
* http://fragments.turtlemeat.com/pythonwebserver.php
- improve and test tracker authentication code (remember login/pass) (need a tracker to test this)
- support zipped torrents? (useful?)
- Add option for RSS customization (refresh interval, max news per RSS...)
- Allow to disable UPnP/NAT-PMP/LSD in options?
- Allow to automatically delete torrents when they reach a given ratio (in options) : easy
- Allow to limit the number of downloading torrents simultaneously (other are paused until a download finishes)
- Add "Mark all as read" feature for RSS
- Allow to customize lists refreshing interval (in options)
- Use search engines as plugins (split them, load them dynamically) to allow the user to add some
- Improve search plugin install (choose in a list taken from plugins.qbittorrent.org)
- Display the number of DHT node if possible
- When adding a duplicate torrent, check if the trackers are different from the existing one and ask the user if he wants to add them
- Display in torrent addition dialog:
* free disk space on selected drive
* free disk space after torrent download (and/or torrent size)
// in v1.0.0 (partial) - WIP
- Check storage st creation + hasher in torrent creation
- Fix all (or almost all) opened bugs in bug tracker
- update sorting when a new torrent is added?
- Keep documention up to date
- Windows port (Chris - Peerkoel)
- write patches libtorrent for file_priority(int index), actual_size() ?
- valgrind --tool=memcheck --leak-check=full src/qbittorrent (Looks ok)
- 128m 29m 16m S 4.8 2.9 0:02.28 qbittorrent
* beta 6
- Translations update (IN PROGRESS)
- Wait for some bug fixes in libtorrent :
- Number of seeds non null for finished torrent (Ticket #122)
LANGUAGES UPDATED:
- French *BETA3*
- English *BETA3*
- Japanese *BETA3*
- Swedish *BETA3*
- Slovak *BETA3*
- Ukrainian *BETA3*
- Chinese (simplified) *BETA4*
- Hungarian *BETA4*
- Italian *BETA5*
- Polish *BETA5*
- Portuguese *BETA5*
- Brazilian *BETA5*
- Spanish *BETA5*
- German *BETA5*
- Russian *BETA5*
- Korean *BETA5*
- Greek *BETA6*
- Dutch *BETA6*
- Romanian *BETA6*
beta5->beta6 changelog:
- FEATURE: Split download tab from GUI class and cleaned up code
- FEATURE: A lot of code optimization (CPU & memory usage)
- FEATURE: Added support for .ico format (useful for RSS favicons)
- FEATURE: Replaced Meganova search engine by TorrentReactor
- I18N: Updated Greek, Dutch and Romanian translation
- I18N: Removed no longer maintained Traditional chinese translation
- BUGFIX: Made torrent deletion from hard-drive safer
- BUGFIX: Fixed a bug when switching from finished to downloading list
- BUGFIX: Showing checking progress for paused torrents too
- BUGFIX: Fixed progress column sorting on startup
- BUGFIX: Prevent downloadFromUrl flooding
- BUGFIX: Fixed pause state toggle for paused and checking torrents
- BUGFIX: Made finished list context menu more similar to the download list one
- BUGFIX: Fixed Pause/Start action in lists context menus
- BUGFIX: Improved ETA calculation
- BUGFIX: ETA was wrong for torrents with filtered files
- BUGFIX: Display the torrent that are being checked as 'checking' in seeding list
- BUGFIX: Fixed file preview and improved previewable files detection
- BUGFIX: Do not store and calculate ETA values for finished/paused torrents
- BUGFIX: Fixed memory leak in GUI
rc11 -> final? changelog:
BUGFIX: Fixed systray integration when qbittorrent is launched on system startup
BUGFIX: Catch all possible exceptions when adding a torrent to avoid crashing

213
configure vendored

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -3,7 +3,7 @@
<profile>qbittorrent.pro</profile>
<moddir>qcm</moddir>
<datadir/>
<dep type='qt42'>
<dep type='qt4'>
<required/>
</dep>
<dep type='libtorrent'>
@@ -12,11 +12,9 @@
<dep type='libboost'>
<required/>
</dep>
<dep type='libcommoncpp2'>
<required/>
</dep>
<dep type='libmagick'/>
<dep type='python'>
<dep type='libcurl'>
<required/>
</dep>
<dep type='libmagick'/>
<dep type='libzzip'/>
</qconf>

View File

@@ -37,15 +37,17 @@ public:
s = conf->getenv("QC_WITH_LIBCOMMONCPP2_LIB");
if(!s.isEmpty()) {
if(!QFile::exists(s+QString("libccext2.so")))
if(!QFile::exists(s+QString("/libccext2.so")))
return false;
if(!QFile::exists(s+QString("libccgnu2.so")))
if(!QFile::exists(s+QString("/libccgnu2.so")))
return false;
conf->addLib(QString("-L") + s);
}else{
QStringList sl;
sl << "/usr/lib/";
sl << "/usr/lib64/";
sl << "/usr/local/lib/";
sl << "/usr/local/lib64/";
bool found = false;
foreach(s, sl){
if(QFile::exists(s+QString("libccext2.so"))){
@@ -58,16 +60,6 @@ public:
if(!found) return false;
conf->addLib(QString("-L") + s);
}
// BUGFIX for Fedora (doesn't support pkg-config?)
QFile issue_file("/etc/issue");
if(issue_file.open(QIODevice::ReadOnly | QIODevice::Text)){
QString content = issue_file.readAll();
issue_file.close();
if(content.indexOf("Fedora") != -1){
qWarning("Fedora detected. WORKAROUND for Fedora pkg-config problem enabled");
conf->addLib("-pthread -lccext2 -lz -lccgnu2 -ldl -lrt");
}
}
return true;
}
};

61
qcm/libcurl.qcm Normal file
View File

@@ -0,0 +1,61 @@
/*
-----BEGIN QCMOD-----
name: libcommoncpp2
arg: with-libcurl-inc=[path], Path to libcurl include files
arg: with-libcurl-lib=[path], Path to libcurl library files
-----END QCMOD-----
*/
class qc_libcurl : public ConfObj
{
public:
qc_libcurl(Conf *c) : ConfObj(c) {}
QString name() const { return "libcurl"; }
QString shortname() const { return "libcurl"; }
bool exec(){
QString s;
s = conf->getenv("QC_WITH_LIBCURL_INC");
if(!s.isEmpty()) {
if(!conf->checkHeader(s, "curl/curl.h")) {
return false;
}
}else{
QStringList sl;
sl << "/usr/include";
sl << "/usr/local/include";
bool found = false;
foreach(s, sl){
if(conf->checkHeader(s, "curl/curl.h")){
found = true;
break;
}
}
if(!found) {
return false;
}
}
conf->addIncludePath(s);
s = conf->getenv("QC_WITH_LIBCURL_LIB");
if(!s.isEmpty()) {
if(!QFile::exists(s+QString("/libcurl.so")))
return false;
conf->addLib(QString("-L") + s);
}else{
QStringList sl;
sl << "/usr/lib/";
sl << "/usr/lib64/";
sl << "/usr/local/lib/";
sl << "/usr/local/lib64/";
bool found = false;
foreach(s, sl){
if(QFile::exists(s+QString("libcurl.so"))){
found = true;
break;
}
}
if(!found) return false;
conf->addLib(QString("-L") + s);
}
return true;
}
};

View File

@@ -44,18 +44,20 @@ public:
s = conf->getenv("QC_WITH_LIBMAGICK_LIB");
if(!s.isEmpty()) {
if(!QFile::exists(s+QString("libMagick++.so"))){
return false;
}
if(!conf->checkLibrary(s, "Magick++")) {
return false;
}
}else{
QStringList sl;
sl << "/usr/lib/";
sl << "/usr/lib64/";
sl << "/usr/local/lib/";
sl << "/usr/local/lib64/";
bool found = false;
foreach(s, sl){
if(QFile::exists(s+QString("libMagick++.so"))){
if(conf->checkLibrary(s, "Magick++")) {
found = true;
break;
break;
}
}
if(!found)
@@ -69,6 +71,7 @@ public:
magickConfig.waitForStarted();
magickConfig.waitForFinished();
QByteArray result = magickConfig.readAll();
result = result.replace("\n", "");
conf->addLib(result.data());
conf->addDefine("HAVE_MAGICK");
return true;

View File

@@ -52,7 +52,9 @@ public:
}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")){
@@ -63,16 +65,6 @@ public:
if(!found) return false;
conf->addLib(QString("-L") + s);
}
// BUGFIX for Fedora (doesn't support pkg-config?)
QFile issue_file("/etc/issue");
if(issue_file.open(QIODevice::ReadOnly | QIODevice::Text)){
QString content = issue_file.readAll();
issue_file.close();
if(content.indexOf("Fedora") != -1){
qWarning("Fedora detected. WORKAROUND for Fedora pkg-config problem enabled");
conf->addLib("-lssl -lcrypto -lboost_date_time -lboost_filesystem -lboost_thread -lz -ltorrent");
}
}
return true;
}
};

71
qcm/libzzip.qcm Normal file
View File

@@ -0,0 +1,71 @@
/*
-----BEGIN QCMOD-----
name: libzzip
arg: with-libzzip-inc=[path], Path to libzzip++ include files
arg: with-libzzip-lib=[path], Path to libzzip++ library files
-----END QCMOD-----
*/
#include <QProcess>
class qc_libzzip : public ConfObj
{
public:
qc_libzzip(Conf *c) : ConfObj(c) {}
QString name() const { return "Zzip library (libzzip)"; }
QString shortname() const { return "libzzip"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_LIBZZIP").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec(){
if(!conf->getenv("QC_DISABLE_LIBZZIP").isEmpty())
return false;
QString s;
s = conf->getenv("QC_WITH_LIBZZIP_INC");
if(!s.isEmpty()) {
if(!conf->checkHeader(s, "zzip/zzip.h")) {
return false;
}
}else{
QStringList sl;
sl << "/usr/include";
sl << "/usr/local/include";
bool found = false;
foreach(s, sl){
if(conf->checkHeader(s, "zzip/zzip.h")){
found = true;
break;
}
}
if(!found)
return false;
}
conf->addIncludePath(s);
s = conf->getenv("QC_WITH_LIBZZIP_LIB");
if(!s.isEmpty()) {
if(!QFile::exists(s+QString("/libzzip.so"))){
return false;
}
}else{
QStringList sl;
sl << "/usr/lib/";
sl << "/usr/lib64/";
sl << "/usr/local/lib/";
sl << "/usr/local/lib64/";
bool found = false;
foreach(s, sl){
if(QFile::exists(s+QString("libzzip.so"))){
found = true;
break;
}
}
if(!found)
return false;
}
conf->addLib(QString("-L") + s);
conf->addLib("-lzzip");
conf->addDefine("HAVE_ZZIP");
return true;
}
};

View File

@@ -1,19 +0,0 @@
/*
-----BEGIN QCMOD-----
name: python
-----END QCMOD-----
*/
class qc_python : public ConfObj
{
public:
qc_python(Conf *c) : ConfObj(c) {}
QString name() const { return "python >= 2.3"; }
QString shortname() const { return "python"; }
bool exec(){
int r = conf->doCommand("python testpython.py");
if(r == 0)
return true;
else
return false;
}
};

16
qcm/qt4.qcm Normal file
View File

@@ -0,0 +1,16 @@
/*
-----BEGIN QCMOD-----
name: Qt >= 4.3
-----END QCMOD-----
*/
class qc_qt4 : public ConfObj
{
public:
qc_qt4(Conf *c) : ConfObj(c) {}
QString name() const { return "Qt >= 4.3"; }
QString shortname() const { return "Qt 4.3"; }
bool exec()
{
return(QT_VERSION >= 0x040300);
}
};

View File

@@ -1,16 +0,0 @@
/*
-----BEGIN QCMOD-----
name: Qt >= 4.2
-----END QCMOD-----
*/
class qc_qt42 : public ConfObj
{
public:
qc_qt42(Conf *c) : ConfObj(c) {}
QString name() const { return "Qt >= 4.2"; }
QString shortname() const { return "qt42"; }
bool exec()
{
return(QT_VERSION >= 0x040200);
}
};

View File

@@ -83,11 +83,9 @@ class DLListDelegate: public QItemDelegate {
newopt.maximum = 100;
newopt.minimum = 0;
newopt.state |= QStyle::State_Enabled;
newopt.textVisible = false;
newopt.textVisible = true;
QApplication::style()->drawControl(QStyle::CE_ProgressBar, &newopt,
painter);
painter->setPen(QColor("Black"));
painter->drawText(opt.rect, Qt::AlignCenter, newopt.text);
break;
}
default:

View File

@@ -76,11 +76,9 @@ class FinishedListDelegate: public QItemDelegate {
newopt.maximum = 100;
newopt.minimum = 0;
newopt.state |= QStyle::State_Enabled;
newopt.textVisible = false;
newopt.textVisible = true;
QApplication::style()->drawControl(QStyle::CE_ProgressBar, &newopt,
painter);
painter->setPen(QColor("Black"));
painter->drawText(opt.rect, Qt::AlignCenter, newopt.text);
break;
}
default:

View File

@@ -122,7 +122,8 @@ void FinishedTorrents::torrentAdded(QString, QTorrentHandle& h, bool) {
// Set the color of a row in data model
void FinishedTorrents::setRowColor(int row, QString color){
for(int i=0; i<finishedListModel->columnCount(); ++i){
unsigned int nbColumns = finishedListModel->columnCount()-1;
for(unsigned int i=0; i<nbColumns; ++i){
finishedListModel->setData(finishedListModel->index(row, i), QVariant(QColor(color)), Qt::ForegroundRole);
}
}
@@ -209,6 +210,10 @@ void FinishedTorrents::updateFinishedList(){
}
Q_ASSERT(row != -1);
if(h.is_paused()) continue;
if(BTSession->getTorrentsToPauseAfterChecking().indexOf(hash) != -1) {
finishedListModel->setData(finishedListModel->index(row, F_PROGRESS), QVariant((double)h.progress()));
continue;
}
if(h.state() == torrent_status::downloading || (h.state() != torrent_status::checking_files && h.state() != torrent_status::queued_for_checking && h.progress() < 1.)) {
// What are you doing here? go back to download tab!
qDebug("Info: a torrent was moved from finished to download tab");
@@ -218,10 +223,8 @@ void FinishedTorrents::updateFinishedList(){
continue;
}
if(h.state() == torrent_status::checking_files){
if(BTSession->getTorrentsToPauseAfterChecking().indexOf(hash) == -1) {
finishedListModel->setData(finishedListModel->index(row, F_NAME), QVariant(QIcon(QString::fromUtf8(":/Icons/time.png"))), Qt::DecorationRole);
setRowColor(row, QString::fromUtf8("grey"));
}
finishedListModel->setData(finishedListModel->index(row, F_NAME), QVariant(QIcon(QString::fromUtf8(":/Icons/time.png"))), Qt::DecorationRole);
setRowColor(row, QString::fromUtf8("grey"));
finishedListModel->setData(finishedListModel->index(row, F_PROGRESS), QVariant((double)h.progress()));
continue;
}
@@ -310,8 +313,6 @@ void FinishedTorrents::displayFinishedListMenu(const QPoint& pos){
QModelIndex index;
// Enable/disable pause/start action given the DL state
QModelIndexList selectedIndexes = finishedList->selectionModel()->selectedIndexes();
QSettings settings("qBittorrent", "qBittorrent");
QString previewProgram = settings.value("Options/Misc/PreviewProgram", QString()).toString();
bool has_pause = false, has_start = false, has_preview = false;
foreach(index, selectedIndexes) {
if(index.column() == F_NAME) {
@@ -331,7 +332,7 @@ void FinishedTorrents::displayFinishedListMenu(const QPoint& pos){
has_pause = true;
}
}
if(!previewProgram.isEmpty() && BTSession->isFilePreviewPossible(hash) && !has_preview) {
if(BTSession->isFilePreviewPossible(hash) && !has_preview) {
myFinishedListMenu.addAction(actionPreview_file);
has_preview = true;
}

File diff suppressed because it is too large Load Diff

View File

@@ -59,12 +59,15 @@ class GUI : public QMainWindow, private Ui::MainWindow{
QTabWidget *tabs;
options_imp *options;
QSystemTrayIcon *myTrayIcon;
QTimer *systrayCreator;
QMenu *myTrayIconMenu;
DownloadingTorrents *downloadingTorrentTab;
FinishedTorrents *finishedTorrentTab;
QLabel *connecStatusLblIcon;
bool systrayIntegration;
bool displaySpeedInTitle;
bool force_exit;
unsigned int refreshInterval;
QTimer *refresher;
// Keyboard shortcuts
QShortcut *switchSearchShortcut;
@@ -72,8 +75,6 @@ class GUI : public QMainWindow, private Ui::MainWindow{
QShortcut *switchDownShortcut;
QShortcut *switchUpShortcut;
QShortcut *switchRSSShortcut;
// Preview
QProcess *previewProcess;
// Search
SearchEngine *searchEngine;
// RSS
@@ -96,7 +97,6 @@ class GUI : public QMainWindow, private Ui::MainWindow{
void togglePausedState(QString hash);
void on_actionPreview_file_triggered();
void previewFile(QString filePath);
void cleanTempPreviewFile(int, QProcess::ExitStatus) const;
void balloonClicked();
void writeSettings();
void readSettings();
@@ -106,6 +106,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
void updateFinishedTorrentNumber(unsigned int nb);
void fullDiskError(QTorrentHandle& h) const;
void handleDownloadFromUrlFailure(QString, QString) const;
void createSystrayDelayed();
// Keyboard shortcuts
void createKeyboardShortcuts();
void displayDownTab() const;
@@ -127,10 +128,12 @@ class GUI : public QMainWindow, private Ui::MainWindow{
void checkConnectionStatus();
void configureSession(bool deleteOptions);
void processParams(const QStringList& params);
void addTorrent(QString path);
void addUnauthenticatedTracker(QPair<QTorrentHandle,QString> tracker);
void processScannedFiles(const QStringList& params);
void processDownloadedFiles(QString path, QString url);
void downloadFromURLList(const QStringList& urls);
void deleteTorrent(QString hash, QString fileName, bool finished);
void finishedTorrent(QTorrentHandle& h) const;
void torrentChecked(QString hash) const;
void updateLists();
@@ -154,7 +157,7 @@ class GUI : public QMainWindow, private Ui::MainWindow{
GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
~GUI();
// Methods
unsigned int getCurrentTabIndex() const;
int getCurrentTabIndex() const;
QPoint screenCenter() const;
};

BIN
src/Icons/bt_settings.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.5 KiB

BIN
src/Icons/configure.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 820 B

BIN
src/Icons/download.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.2 KiB

BIN
src/Icons/edit_clear.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 575 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.4 KiB

BIN
src/Icons/file.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 704 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 998 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 558 B

BIN
src/Icons/folder.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 449 B

BIN
src/Icons/gear.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.3 KiB

Some files were not shown because too many files have changed in this diff Show More