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

Compare commits

..

62 Commits

Author SHA1 Message Date
Christophe Dumez
b6b124c7b6 Tagged todays releases 2010-10-17 15:45:55 +00:00
Christophe Dumez
df42c4d59f Bump to v2.4.6 2010-10-17 15:27:25 +00:00
Christophe Dumez
8047495b2e BUGFIX: Fix moving of a torrent to an unexisting directory 2010-10-17 15:16:25 +00:00
Christophe Dumez
de04b47c29 BUGFIX: Fix detection of files at final destination when temp dir is used 2010-10-17 14:53:03 +00:00
Christophe Dumez
b709bec24d Fix compilation error with libtorrent v0.14 2010-10-17 11:47:16 +00:00
Christophe Dumez
35f93e8e16 BUGFIX: The properties panel data would sometimes not match the selected torrent 2010-10-17 09:12:24 +00:00
Christophe Dumez
554a84f8b0 Improvement to last commit 2010-10-17 09:01:34 +00:00
Christophe Dumez
f26fcabde1 BUGFIX: Fix "torrent seeding after creation" feature 2010-10-17 08:48:32 +00:00
Christophe Dumez
75b91c204d Forgot to commit this file 2010-10-17 08:42:34 +00:00
Christophe Dumez
0837c25602 Updated Changelog 2010-10-12 16:09:03 +00:00
Christophe Dumez
34f8937b8d Code optimization 2010-10-12 16:08:09 +00:00
Christophe Dumez
4a7f3ee415 Some more code optimization 2010-10-11 21:30:11 +00:00
Christophe Dumez
b218531ff7 BUGFIX: Piece availability/downloaded widgets performance improvement 2010-10-11 21:08:49 +00:00
Christophe Dumez
e96dee2038 Fix possible variable overflow 2010-10-11 20:01:56 +00:00
Christophe Dumez
080105c088 Bump to v2.4.5 2010-10-11 19:43:50 +00:00
Christophe Dumez
5d2535c1c1 BUGFIX: Improved peer hostname resolution with caching 2010-10-10 21:06:07 +00:00
Christophe Dumez
49b21059fa BUGFIX: Fix display of URL seeds in the UI 2010-10-10 15:43:53 +00:00
Christophe Dumez
c1af948649 Fix issues introduced recently related to torrent completion 2010-10-09 15:04:15 +00:00
Christophe Dumez
36ad3df9e7 Fix feature to keep incomplete torrents in a separate folder 2010-10-09 08:57:26 +00:00
Christophe Dumez
e607d721a2 Forgot to commit gpl.html 2010-10-08 17:52:10 +00:00
Christophe Dumez
5bfbfeb665 Fix some cosmetic issues in about dlg 2010-10-08 17:50:45 +00:00
Ishan Arora
1f1eabb1e9 moved windows path configs from src/src.pro to winconf.pri 2010-10-05 01:12:29 +00:00
Christophe Dumez
762050f8fc Remember torrent seeding date correctly 2010-10-02 12:55:39 +00:00
Christophe Dumez
e3c1270205 Code cleanup 2010-10-02 12:14:29 +00:00
Christophe Dumez
414685910b Fix to last commit 2010-10-01 20:52:53 +00:00
Christophe Dumez
d61b9c5d4d Bump to v2.4.4 2010-10-01 20:22:20 +00:00
Christophe Dumez
cf86a1cecd BUGFIX: Fix possible search engine plugin update 2010-10-01 20:19:17 +00:00
Christophe Dumez
a3f3287e24 Clean program exit on system shutdown/log out 2010-10-01 20:05:54 +00:00
Christophe Dumez
6e18d780ba Updated Changelog 2010-09-28 16:57:31 +00:00
Christophe Dumez
7dde763fc6 Fix wrong mapping to source model 2010-09-28 16:56:49 +00:00
Christophe Dumez
8c85ffca5f Fix tiny memory leak 2010-09-27 20:47:26 +00:00
Christophe Dumez
321e568d86 TorrentDownloads performance improvement 2010-09-27 19:48:58 +00:00
Christophe Dumez
e0649a7e78 Bump to v2.4.3 2010-09-27 17:49:33 +00:00
Christophe Dumez
4cd3233cd0 Better fix for encoding issue 2010-09-27 17:36:42 +00:00
Christophe Dumez
c554528afe BUGFIX: Fix possible crash when changing the save path in addition dialog 2010-09-27 17:35:34 +00:00
Christophe Dumez
7ab7f4b0fc BUGFIX: Fix encoding issue in command line parameters processing 2010-09-27 17:19:27 +00:00
Christophe Dumez
58c0ac7638 BUGFIX: Really fix manual editing of save path in torrent addition dialog 2010-09-26 17:10:21 +00:00
Christophe Dumez
2514224a3a Bump to v2.4.2 2010-09-26 16:57:04 +00:00
Christophe Dumez
247f6b4a8e BUGFIX: Fix display of torrent content in addition dialog 2010-09-26 16:53:20 +00:00
Christophe Dumez
3d89864b75 Fix deprecation warning 2010-09-26 11:15:00 +00:00
Christophe Dumez
7ac75ad772 Fix to last commit 2010-09-25 19:41:12 +00:00
Christophe Dumez
caa628371f BUGFIX: Limit torrent addition dialog width to fit the screen 2010-09-25 19:40:29 +00:00
Christophe Dumez
fd31f632d9 BUGFIX: Fix saving to drive root on Windows 2010-09-25 17:38:20 +00:00
Christophe Dumez
a25b6e087b Bump to v2.4.1 (release is nearing) 2010-09-25 17:08:21 +00:00
Christophe Dumez
1626d938d1 Fix save path encoding on non-utf8 systems (e.g. Windows)
Fix progress bar style on Windows
2010-09-25 17:02:40 +00:00
Christophe Dumez
a4c7640499 BUGFIX: Use AND operator for torrentdownloads.net searches 2010-09-25 13:12:02 +00:00
Christophe Dumez
2c1b93a12b BUGFIX: Fix locale switching from Web UI 2010-09-25 12:44:31 +00:00
Christophe Dumez
8f19025c2a Remove obsolete strings from language files 2010-09-25 12:12:08 +00:00
Christophe Dumez
20d41bcff2 Fix Web Ui for spanish users 2010-09-25 11:44:44 +00:00
Christophe Dumez
1ad77e00ff BUGFIX: Added support for | (OR) operator in RSS feed downloader 2010-09-25 11:31:33 +00:00
Christophe Dumez
0b65c02666 BUGFIX: Fix possible issue with temporary download path persistence 2010-09-25 11:05:02 +00:00
Christophe Dumez
294095367a BUGFIX: Add .torrent extension only when missing (torrent creator) 2010-09-25 10:49:13 +00:00
Christophe Dumez
05a6ffd554 Fix download in scan dir persistence (closes #633396) 2010-09-25 10:41:17 +00:00
Christophe Dumez
e0a30dc40c BUGFIX: Save path can now be edited in torrent addition dialog 2010-09-25 09:14:00 +00:00
Christophe Dumez
1940bc4e73 Higher maximum download limit 2010-09-25 08:04:36 +00:00
Christophe Dumez
a7e4e0273a Detect OGV as a previewable format 2010-09-25 07:42:55 +00:00
Christophe Dumez
29a9d57cdc Updated Changelog 2010-09-19 08:40:44 +00:00
Christophe Dumez
9c7a4e4983 Fixes to German translation 2010-09-19 08:39:14 +00:00
Christophe Dumez
35ead5bcf2 Updated Spanish and Catalan translations 2010-08-27 07:43:42 +00:00
Christophe Dumez
645bd58d79 Updated Arabic translation 2010-08-25 06:34:50 +00:00
Christophe Dumez
6c47a552ab Updated release date in Changelog 2010-08-24 18:28:56 +00:00
Christophe Dumez
f54bc8bea4 Branched v2.4.x 2010-08-24 18:27:18 +00:00
970 changed files with 104626 additions and 210539 deletions

15
.gitignore vendored
View File

@@ -1,15 +0,0 @@
src/geoip/GeoIP.dat
src/qbittorrent
qbittorrent.pro.user*
conf.pri
Makefile
*.pyc
*.log
# Compiled object files
*.o
# Generated MOC, resource and UI files
moc_*.cpp
qrc_*.cpp
ui_*.h
*.moc
src/lang/qbittorrent_*.qm

View File

@@ -1,53 +0,0 @@
language:
- cpp
env:
# use libtorrent 0.15.10
- lt_source=from_dist gui=true
- lt_source=from_dist gui=false
# use libtorrent 0.16.X from RC_0_16 svn branch
- lt_source=from_svn gui=true
- lt_source=from_svn gui=false
branches:
except:
- search_encoding_windows
- v2_9_x
notifications:
email:
on_success: change
on_failure: change
before_install:
- shopt -s expand_aliases
- alias sudo="sudo "
# Using nprocs/2 sometimes may fail (gcc is killed by system), just use two threads
- alias make="colormake -j2 "
# Also setup a virtual display for after_success target when gui == true
- if ! $gui; then qbtconf="$qbtconf --disable-gui"; else export "DISPLAY=:99.0" && /sbin/start-stop-daemon --start --quiet --pidfile /tmp/custom_xvfb_99.pid --make-pidfile --background --exec /usr/bin/Xvfb -- :99 -ac -screen 0 1280x1024x16 ; fi
- ltconf=" --with-libgeoip=system"
- echo settings
- echo $lt_source
- echo $ltconf
- echo $gui
- echo $qbtconf
- sudo apt-get -qq update
# Travis can stall during heavy load if these packages are installed in one step - split the command
- sudo apt-get -qq install debhelper qconf colormake libssl-dev libgeoip-dev
- sudo apt-get -qq install libboost-dev libboost-filesystem-dev libboost-system-dev
- sudo apt-get -qq install libqt4-dev
install:
- if [[ "$lt_source" == "from_dist" ]]; then sudo apt-get -qq install libtorrent-rasterbar-dev; fi
- if [[ "$lt_source" == "from_svn" ]]; then cd .. && svn co svn://svn.code.sf.net/p/libtorrent/code/branches/RC_0_16 ./libtorrent && (cd libtorrent && ./autotool.sh && ./configure $ltconf && sudo make install) && sudo ldconfig /usr/local/lib && cd $TRAVIS_BUILD_DIR ; fi
script:
- qt-qconf
- ./configure $qbtconf && sudo make install
after_success:
- if $gui ; then qbittorrent --version ; else qbittorrent-nox --version ; fi

View File

@@ -1,18 +0,0 @@
[main]
host = https://www.transifex.com
[qbittorrent.qbittorrent_v3_1_x]
file_filter = src/lang/qbittorrent_<lang>.ts
source_file = src/lang/qbittorrent_en.ts
source_lang = en
type = QT
minimum_perc = 23
mode = developer
[qbittorrent.qbittorrentdesktop_master]
source_file = src/Icons/qBittorrent.desktop
source_lang = en
type = DESKTOP
minimum_perc = 23
mode = developer

64
AUTHORS
View File

@@ -1,11 +1,7 @@
Current maintainer:
* Sledgehammer999 <sledgehammer999@qbittorrent.org>
Original author:
Author:
* Christophe Dumez <chris@qbittorrent.org>
Contributors:
* Vladimir Golovnev <glassez@yandex.ru>
* Stefanos Antaris <santaris@csd.auth.gr>
* Mohammad Dib <mdib@qbittorrent.org>
* Mirco Chinelli <infinity89@fastwebmail.it>
@@ -14,7 +10,6 @@ Contributors:
* Grigis Gaëtan <cipher16@gmail.com>
* Christian Kandeler <zambesi@users.sourceforge.net>
* Silvan Scherrer <silvan.scherrer@aroa.ch>
* Nick Tiskov <daymansmail@gmail.com>
Code from other projects:
* files src/qtsingleapp/* src/lineedit/*
@@ -29,10 +24,6 @@ Code from other projects:
copyright: Dan Haim <negativeiq@users.sourceforge.net>
license: BSD
* file src/stacktrace_win.h
copyright: Quassel Project
license: GPLv2/3
Images Authors:
* files: src/Icons/*.png
copyright: Gnome Icon Theme
@@ -45,9 +36,9 @@ Images Authors:
url: http://www.oxygen-icons.org
* files: src/Icons/flags/*.png
copyright: Mark James <mjames@gmail.com>
license: Public Domain
url: http://www.famfamfam.com
copyright: Open Clip Art Library
license: Creative Commons Public Domain Dedication
url: http://www.openclipart.org
* files: src/Icons/skin/*.png
files: src/menuicons/YYxYY/*.png
@@ -58,10 +49,6 @@ Images Authors:
copyright: Greg Houston <gregory.houston@gmail.com>
license: MIT
* file: src/Icons/skin/qbittorrent_mono*
copyright: Daniel Eguren <deguren@gmail.com>
license: LGPL
* file: src/search_engine/engines/btjunkie.png
copyright: Downloaded from btjunkie.org
@@ -79,46 +66,35 @@ Images Authors:
Translations authors:
* files: src/lang/*.ts
* file: src/Icons/qBittorrent.desktop
copyright:
- Arabic: SDERAWI (abz8868@msn.com), sn51234 (nesseyan@gmail.com) and Ibrahim Saed ibraheem_alex(Transifex)
- Armenian: Hrant Ohanyan (hrantohanyan@mail.am)
- Basque: Xabier Aramendi (azpidatziak@gmail.com)
- Belarusian: Mihas Varantsou (meequz@gmail.com)
- 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)
- Catalan: Francisco Luque Contreras (frannoe@ya.com)
- Chinese (Simplified): Guo Yue (yue.guo0418@gmail.com)
- Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com) and 冥王歐西里斯 s8321414(Transifex)
- Chinese (Traditional): Yi-Shun Wang (dnextstep@gmail.com)
- Croatian: Oliver Mucafir (oliver.untwist@gmail.com)
- Czech: Jirka Vilim (web@tets.cz) and Petr Cernobila abr(Transifex)
- Czech: Jirka Vilim (web@tets.cz)
- Danish: Mathias Nielsen (comoneo@gmail.com)
- Dutch: Pieter Heyvaert (pieter_heyvaert@hotmail.com)
- Dutch: Joost Schipper (heavyjoost@users.sourceforge.net)
- English: Christophe Dumez (chris@qbittorrent.org)
- English(Australia): Robert Readman readmanr(Transifex)
- English(United Kingdom): Robert Readman readmanr(Transifex)
- Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net), Pekka Niemi (pekka.niemi@iki.fi) and Jiri Grönroos artnay(Transifex)
- Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net)
- French: Christophe Dumez (chris@qbittorrent.org)
- Galician: Marcos Lans (marcoslansgarza@gmail.com) and antiparvos(Transifex)
- Georgian: Beqa Arabuli (arabulibeqa@yahoo.com)
- German: Niels Hoffmann (zentralmaschine@users.sourceforge.net)
- Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net), Stephanos Antaris (santaris@csd.auth.gr), sledgehammer999(hammered999@gmail.com) and Γιάννης Ανθυμίδης Evropi(Transifex)
- Hebrew: David Deutsch (d.deffo@gmail.com)
- Greek: Tsvetan Bankov (emerge_life@users.sourceforge.net) and Stephanos Antaris (santaris@csd.auth.gr)
- Hungarian: Majoros Péter (majoros.j.p@t-online.hu)
- Italian: bovirus (bovirus@live.it) and Matteo Sechi (bu17714@gmail.com)
- Japanese: Masato Hashimoto (cabezon.hashimoto@gmail.com)
- Italian: Mirko Ferrari (mirkoferrari@gmail.com) and Ferraro Luciano (luciano.ferraro@gmail.com)
- Japanese: Nardog (alphisation@gmail.com)
- Korean: Jin Woo Sin (jin828sin@users.sourceforge.net)
- Lithuanian: Naglis Jonaitis (njonaitis@gmail.com)
- Norwegian: Tomaso
- Norwegian: Lars-Erik Labori (hamil@users.sourceforge.net)
- Polish: Mariusz Fik (fisiu@opensuse.org)
- Portuguese: Sérgio Marques smarquespt(Transifex)
- Portuguese(Brazil): Nick Marinho (nickmarinho@gmail.com)
- Romanian: Obada Denis (obadadenis@users.sourceforge.net), Adrian Gabor Adriannho(Transifex) and Mihai Coman z0id(Transifex)
- Russian: Nick Khazov (m2k3d0n at users.sourceforge.net), Alexey Morsov (samurai@ricom.ru), Nick Tiskov Dayman(daymansmail (at) gmail (dot) com), Dmitry DmitryKX(Transifex) and kraleksandr kraleksandr(Transifex)
- Portuguese: Nick Marinho (nickmarinho@gmail.com)
- Romanian: Obada Denis (obadadenis@users.sourceforge.net)
- Russian: Nick Khazov (m2k3d0n at users.sourceforge.net)
- Serbian: Anaximandar Milet (anaximandar at operamail.com)
- Slovak: helix84
- Spanish: Francisco Luque Contreras (frannoe@ya.com), Alfredo Monclus alfrix(Transifex) and José Antonio Moray moray33(Transifex)
- Swedish: Daniel Nylander (po@danielnylander.se) and Emil Hammarberg Ooglogput(Transifex)
- Spanish: Francisco Luque Contreras (frannoe@ya.com)
- Swedish: Daniel Nylander (po@danielnylander.se)
- Turkish: Hasan Yilmaz (iletisim@hedefturkce.com)
- Ukrainian: Oleh Prypin (blaxpirit@gmail.com) and zubr139(Transifex)
- Vietnamese: Anh Phan ppanhh(Transifex)
- Ukrainian: Andrey Shpachenko (masterfix@users.sourceforge.net) and Oleh Prypin (blaxpirit@gmail.com)
license: GPLv2

10
COPYING
View File

@@ -69,7 +69,7 @@ patent must be licensed for everyone's free use or not licensed at all.
The precise terms and conditions for copying, distribution and
modification follow.
GNU GENERAL PUBLIC LICENSE
TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION
@@ -124,7 +124,7 @@ above, provided that you also meet all of these conditions:
License. (Exception: if the Program itself is interactive but
does not normally print such an announcement, your work based on
the Program is not required to print an announcement.)
These requirements apply to the modified work as a whole. If
identifiable sections of that work are not derived from the Program,
and can be reasonably considered independent and separate works in
@@ -182,7 +182,7 @@ access to copy from a designated place, then offering equivalent
access to copy the source code from the same place counts as
distribution of the source code, even though third parties are not
compelled to copy the source along with the object code.
4. You may not copy, modify, sublicense, or distribute the Program
except as expressly provided under this License. Any attempt
otherwise to copy, modify, sublicense or distribute the Program is
@@ -239,7 +239,7 @@ impose that choice.
This section is intended to make thoroughly clear what is believed to
be a consequence of the rest of this License.
8. If the distribution and/or use of the Program is restricted in
certain countries either by patents or by copyrighted interfaces, the
original copyright holder who places the Program under this License
@@ -292,7 +292,7 @@ PROGRAMS), EVEN IF SUCH HOLDER OR OTHER PARTY HAS BEEN ADVISED OF THE
POSSIBILITY OF SUCH DAMAGES.
END OF TERMS AND CONDITIONS
How to Apply These Terms to Your New Programs
If you develop a new program, and you want it to be of the greatest

285
Changelog

File diff suppressed because it is too large Load Diff

16
INSTALL
View File

@@ -10,23 +10,25 @@ qBittorrent - A BitTorrent client in C++ / Qt4
will install and execute qBittorrent hopefully without any problems.
Dependencies:
- Qt >= 4.6.0 (libqtgui, libqtcore, libqtnetwork, libqtxml, libqtdbus/optional)
- Qt >= 4.4.0 (libqt-devel, libqtgui, libqtcore, libqtnetwork, libqtxml)
- pkg-config executable
- libtorrent-rasterbar by Arvid Norberg (>= 0.15.0)
- libtorrent-rasterbar by Arvid Norberg (>= 0.14.4 REQUIRED, compatible with v0.15.x)
-> http://www.libtorrent.net
Be careful: another library (the one used by rTorrent) uses a similar name.
- libboost 1.34.x (libboost-filesystem°) + libasio
- libboost 1.34.x (libboost-filesystem, libboost-thread, libboost-date-time) + libasio
or
- libboost >= 1.35.x (libboost-system, libboost-filesystem°)
°libboost-filesystem is not needed if libtorrent-rasterbar >= v0.16.x is used
- libboost >= 1.35.x (libboost-system, libboost-filesystem, libboost-thread, libboost-date-time)
- python >= 2.3 (needed by search engine)
* Run time only dependency
- libnotify >= 0.4.2, glib-2.0 (optional)
* Can be used for system notifications to replace standard Qt notifications
so that it integrates better into the Desktop
- geoip-database (optional)
* If qBittorrent cannot find this database, it will try to resolve countries using the Internet but it will be a lot slower.
* Run time only dependency
@@ -44,7 +46,7 @@ qBittorrent - A BitTorrent client in C++ / Qt4
- pkg-config executable
- libtorrent-rasterbar by Arvid Norberg (>= v0.15.0)
- 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.

View File

@@ -27,6 +27,7 @@ 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
@@ -42,10 +43,7 @@ LIBS += -Lx:/trees/libtorrent/trunk/src/.libs \
Of course all the above path references have to be adjusted to your build env.
Now you can either do a normal build or a shadow build. A shadow build has the
advantage that no created files are in the same dir as the sources are.
For a normal build do the following:
It should now be easy to build qBittorrent:
Simply type:
$ qmake
@@ -53,16 +51,6 @@ $ qmake
Followed by:
$ make
For a shadow build do the following:
given your sources are in x:\trees\qbittorrent\trunk create a
x:\trees\qbittorrent\build directory
Now switch to the created directory and type:
$ qmake ..\trunk
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:

315
configure vendored

File diff suppressed because it is too large Load Diff

View File

@@ -8,7 +8,7 @@ qBittorrent\-nox \- a command line Bittorrent client written in C++ / Qt4
.SH "SYNOPSIS"
\fBqbittorrent\-nox\fR [\-\-d|\-\-daemon] [\-\-webui-port=x] [TORRENT_FILE | URL]...
\fBqbittorrent\-nox\fR [\-\-webui-port=x] [TORRENT_FILE | URL]...
\fBqbittorrent\-nox\fR \-\-help

View File

@@ -1,187 +0,0 @@
QBittorrent installation
0. CONTENTS OF THIS FILE
========================
1. INTRODUCTION
2. REQUIREMENTS
3. INSTALLATION
4. BUGREPORTS
5. CREDITS
6. SUPPORT AND DONATIONS
7. HISTORY
1. INTRODUCTION
===============
Welcome to QBittorrent port for OS/2 and eComStation.
2. REQUIREMENTS
===============
The following requirements can be installed either by rpm or by zip files.
RPM Installation:
klibc
-----
1. yum install libc
openssl 1.0
-----------
1. yum install openssl
pthread
-------
1. yum install pthread
GCC4Core
--------
1. yum install libgcc
2. yum install gcc-stack-protector
3. yum install gcc-stdc++-shared-library
4. yum install gcc-supc++-shared-library
Qt4 dll
-------
1. yum install libqt4
ZIP Installation:
klibc
-----
1. Download klibc 0.6.5 or better (see http://svn.netlabs.org/libc for more information)
2. Install the files to your libpath eg x:\ecs\dll
openssl 1.0
-----------
1. Download the zip file from http://rpm.netlabs.org/release/00/zip
2. Install the files to your libpath eg. x:\ecs\dll
pthread
-------
1. Download pthread 2012-03-13 or better from http://rpm.netlabs.org/release/00/zip
2. Install the files to your libpath eg. x:\ecs\dll
GCC4Core
--------
1. Download GCC4Core 1.2.1 or better from http://ftp.netlabs.org/pub/gcc
2. Install the files to your libpath eg. x:\ecs\dll
Qt4 dll
-------
1. Download Qt4 4.7.3 or better (see http://svn.netlabs.org/qt4 for more information)
2. Install the files according to the readme
3. INSTALLATION
===============
To install QBittorrent, do the following:
1. Create a directory for QBittorrent.
2. Extract the QBittorrent package to the new directory.
3. Create a WPS object for QBittorrent.exe.
4. Start QBittorrent
5. Happy torrenting
4. BUGREPORTS
=============
Please create bugreports at http://svn.netlabs.org/qtapps
Only bug reports with a reproducable bug are accepted. :-)
5. CREDITS
==========
The port was done by:
Silvan Scherrer aka _diver
Thanks go to:
* Dmitry A. Kuminov
They either helped me when I had some nasty questions or did some testing for
me.
6. SUPPORT AND DONATIONS
========================
QBittorrent port is based on volunteer work. If you would like to support further
development, you can do so in one of the following ways:
* Donate to the Qt4 project: see qt.netlabs.org for more information
* Contribute to the project: Besides actual development, this also includes
maintaining the documentation and the project web site as well as help
for users.
7. HISTORY
==========
2012-09-19
* updated to 3.0.4 code level of QBittorrent
* updated libtorrent to 0.16.3 level
2012-09-06
* updated to 3.0.2 code level of QBittorrent
2012-05-14
* updated to 2.9.8 code level of QBittorrent
2012-03-15
* updated to 2.9.5 code level of QBittorrent
2011-09-26
* updated to 2.8.5 code level of QBittorrent
* updated to Qt 4.7.3
2011-06-20
* updated to 2.7.3 code level of QBittorrent
* updated libtorrent to 0.15.6 level
2010-12-23
* updated to 2.5.2 code level of QBittorrent
2010-11-22
* updated to 2.4.11 code level of QBittorrent
2010-xx-xx
* initial port

View File

@@ -1,67 +0,0 @@
PREFIX = /usr/local
BINDIR = /usr/local/bin
DATADIR = /usr/local/share
# Use pkg-config to get all necessary libtorrent DEFINES
CONFIG += link_pkgconfig
PKGCONFIG += libtorrent-rasterbar
DEFINES += BOOST_ASIO_DYN_LINK
# Special include/libs paths (macports)
INCLUDEPATH += /usr/include/openssl /usr/include /opt/local/include/boost /opt/local/include
LIBS += -L/opt/local/lib
# OpenSSL lib
LIBS += -lssl -lcrypto
# Boost system lib
LIBS += -lboost_system-mt
# Boost filesystem lib (Not needed for libtorrent >= 0.16.0)
#LIBS += -lboost_filesystem-mt
# Carbon
LIBS += -framework Carbon -framework IOKit
# Zlib
LIBS += -lz
document_icon.path = Contents/Resources
document_icon.files = mac/qBitTorrentDocument.icns
QMAKE_BUNDLE_DATA += document_icon
qt_conf.path = Contents/Resources
qt_conf.files = mac/qt.conf
QMAKE_BUNDLE_DATA += qt_conf
qt_translations.path = Contents/MacOS/translations
qt_translations.files = qt-translations/qt_ar.qm \
qt-translations/qt_bg.qm \
qt-translations/qt_ca.qm \
qt-translations/qt_cs.qm \
qt-translations/qt_da.qm \
qt-translations/qt_de.qm \
qt-translations/qt_es.qm \
qt-translations/qt_fi.qm \
qt-translations/qt_fr.qm \
qt-translations/qt_gl.qm \
qt-translations/qt_he.qm \
qt-translations/qt_hu.qm \
qt-translations/qt_it.qm \
qt-translations/qt_ja.qm \
qt-translations/qt_ko.qm \
qt-translations/qt_lt.qm \
qt-translations/qt_nl.qm \
qt-translations/qt_pl.qm \
qt-translations/qt_pt.qm \
qt-translations/qt_pt_BR.qm \
qt-translations/qt_ru.qm \
qt-translations/qt_sk.qm \
qt-translations/qt_sv.qm \
qt-translations/qt_tr.qm \
qt-translations/qt_uk.qm \
qt-translations/qt_zh_CN.qm \
qt-translations/qt_zh_TW.qm
QMAKE_BUNDLE_DATA += qt_translations
ICON = mac/qbittorrent_mac.icns
QMAKE_INFO_PLIST = mac/Info.plist
DEFINES += WITH_GEOIP_EMBEDDED
message("On Mac OS X, GeoIP database must be embedded.")

View File

@@ -1,19 +0,0 @@
exists(conf.pri) {
# to the conf.pri goes all system dependent stuff
include(conf.pri)
}
LIBS += -ltorrent-rasterbar \
-lboost_thread \
-lboost_system \
-lboost_filesystem \
-lssl -lcrypto -lidn -lpthread -lz
RC_FILE = qbittorrent_os2.rc
# LIBTORRENT DEFINES
DEFINES += WITH_SHIPPED_GEOIP_H
DEFINES += BOOST_ASIO_DYN_LINK
DEFINES += WITH_GEOIP_EMBEDDED
message("On eCS(OS/2), GeoIP database must be embedded.")

199
qBittorrent.kdevelop Normal file
View File

@@ -0,0 +1,199 @@
<?xml version = '1.0'?>
<kdevelop>
<general>
<author>Christophe Dumez</author>
<email>chris@qbittorrent.org</email>
<version>1.0.0</version>
<projectmanagement>KDevTrollProject</projectmanagement>
<primarylanguage>C++</primarylanguage>
<keywords>
<keyword>Qt</keyword>
</keywords>
<projectname>qBittorrent</projectname>
<ignoreparts/>
<projectdirectory>.</projectdirectory>
<absoluteprojectpath>false</absoluteprojectpath>
<description/>
<defaultencoding/>
<versioncontrol>kdevsubversion</versioncontrol>
</general>
<kdevfileview>
<groups>
<group pattern="*.cpp;*.cxx;*.h" name="Sources" />
<group pattern="*.ui" name="User Interface" />
<group pattern="*.png" name="Icons" />
<group pattern="*" name="Others" />
<hidenonprojectfiles>false</hidenonprojectfiles>
<hidenonlocation>false</hidenonlocation>
</groups>
<tree>
<hidepatterns>*.o,*.lo,CVS</hidepatterns>
<hidenonprojectfiles>false</hidenonprojectfiles>
<showvcsfields>false</showvcsfields>
</tree>
</kdevfileview>
<kdevdoctreeview>
<ignoretocs>
<toc>bash</toc>
<toc>bash_bugs</toc>
<toc>clanlib</toc>
<toc>w3c-dom-level2-html</toc>
<toc>fortran_bugs_gcc</toc>
<toc>gnome1</toc>
<toc>gnustep</toc>
<toc>gtk</toc>
<toc>gtk_bugs</toc>
<toc>haskell</toc>
<toc>haskell_bugs_ghc</toc>
<toc>java_bugs_gcc</toc>
<toc>java_bugs_sun</toc>
<toc>kde2book</toc>
<toc>opengl</toc>
<toc>pascal_bugs_fp</toc>
<toc>php</toc>
<toc>php_bugs</toc>
<toc>perl</toc>
<toc>perl_bugs</toc>
<toc>python</toc>
<toc>python_bugs</toc>
<toc>qt-kdev3</toc>
<toc>ruby</toc>
<toc>ruby_bugs</toc>
<toc>sdl</toc>
<toc>stl</toc>
<toc>w3c-svg</toc>
<toc>sw</toc>
<toc>w3c-uaag10</toc>
<toc>wxwidgets_bugs</toc>
</ignoretocs>
<ignoredoxygen>
<toc>KDE Libraries (Doxygen)</toc>
</ignoredoxygen>
</kdevdoctreeview>
<kdevdebugger>
<general>
<dbgshell/>
<gdbpath/>
<configGdbScript/>
<runShellScript/>
<runGdbScript/>
<breakonloadinglibs>true</breakonloadinglibs>
<separatetty>false</separatetty>
<floatingtoolbar>false</floatingtoolbar>
</general>
<display>
<staticmembers>false</staticmembers>
<demanglenames>true</demanglenames>
<outputradix>10</outputradix>
</display>
</kdevdebugger>
<kdevcppsupport>
<qt>
<version>4</version>
<used>true</used>
<includestyle>4</includestyle>
<designerintegration>ExternalDesigner</designerintegration>
<root>/usr/lib/qt4</root>
<qmake>/usr/bin/qmake</qmake>
<designer>/usr/bin/designer</designer>
<designerpluginpaths/>
</qt>
<references>
<pcs>automatic_%2Fhome%2Fishanarora%2Fprojects%2Fqbittorrent</pcs>
</references>
<codecompletion>
<automaticCodeCompletion>true</automaticCodeCompletion>
<automaticArgumentsHint>true</automaticArgumentsHint>
<automaticHeaderCompletion>true</automaticHeaderCompletion>
<codeCompletionDelay>250</codeCompletionDelay>
<argumentsHintDelay>400</argumentsHintDelay>
<headerCompletionDelay>250</headerCompletionDelay>
<showOnlyAccessibleItems>false</showOnlyAccessibleItems>
<completionBoxItemOrder>0</completionBoxItemOrder>
<howEvaluationContextMenu>true</howEvaluationContextMenu>
<showCommentWithArgumentHint>true</showCommentWithArgumentHint>
<statusBarTypeEvaluation>false</statusBarTypeEvaluation>
<namespaceAliases>std=_GLIBCXX_STD;__gnu_cxx=std</namespaceAliases>
<processPrimaryTypes>true</processPrimaryTypes>
<processFunctionArguments>true</processFunctionArguments>
<preProcessAllHeaders>true</preProcessAllHeaders>
<parseMissingHeadersExperimental>true</parseMissingHeadersExperimental>
<resolveIncludePathsUsingMakeExperimental>true</resolveIncludePathsUsingMakeExperimental>
<alwaysParseInBackground>true</alwaysParseInBackground>
<usePermanentCaching>true</usePermanentCaching>
<alwaysIncludeNamespaces>false</alwaysIncludeNamespaces>
<includePaths>.;</includePaths>
</codecompletion>
<creategettersetter>
<prefixGet>get</prefixGet>
<prefixSet>set</prefixSet>
<prefixVariable>m_,_</prefixVariable>
<parameterName>theValue</parameterName>
<inlineGet>true</inlineGet>
<inlineSet>true</inlineSet>
</creategettersetter>
<splitheadersource>
<enabled>false</enabled>
<synchronize>true</synchronize>
<orientation>Vertical</orientation>
</splitheadersource>
</kdevcppsupport>
<kdevfilecreate>
<filetypes/>
<useglobaltypes>
<type ext="ui" />
<type ext="cpp" />
<type ext="h" />
</useglobaltypes>
</kdevfilecreate>
<kdevtrollproject>
<general>
<activedir>src</activedir>
</general>
<run>
<directoryradio>executable</directoryradio>
<mainprogram>/home/ishanarora/projects/qbittorrent/src/qbittorrent</mainprogram>
<programargs/>
<globaldebugarguments/>
<globalcwd>/home/ishanarora/projects/qbittorrent</globalcwd>
<useglobalprogram>true</useglobalprogram>
<terminal>false</terminal>
<autocompile>true</autocompile>
<autoinstall>false</autoinstall>
<autokdesu>false</autokdesu>
<envvars/>
</run>
<make>
<abortonerror>true</abortonerror>
<runmultiplejobs>false</runmultiplejobs>
<numberofjobs>1</numberofjobs>
<dontact>false</dontact>
<makebin/>
<prio>0</prio>
<envvars/>
</make>
<qmake>
<savebehaviour>2</savebehaviour>
<replacePaths>false</replacePaths>
<disableDefaultOpts>true</disableDefaultOpts>
</qmake>
</kdevtrollproject>
<cppsupportpart>
<filetemplates>
<interfacesuffix>.h</interfacesuffix>
<implementationsuffix>.cpp</implementationsuffix>
</filetemplates>
</cppsupportpart>
<ctagspart>
<customArguments/>
<customTagfilePath>/home/ishanarora/projects/qbittorrent/tags</customTagfilePath>
<activeTagsFiles/>
</ctagspart>
<kdevdocumentation>
<projectdoc>
<docsystem/>
<docurl/>
<usermanualurl/>
</projectdoc>
</kdevdocumentation>
</kdevelop>

View File

@@ -2,18 +2,3 @@ TEMPLATE = subdirs
SUBDIRS += src
include(version.pri)
include(qm_gen.pri)
# Dist
dist.commands += rm -fR ../$${PROJECT_NAME}-$${PROJECT_VERSION}/ &&
dist.commands += git clone . ../$${PROJECT_NAME}-$${PROJECT_VERSION} &&
dist.commands += rm -fR ../$${PROJECT_NAME}-$${PROJECT_VERSION}/.git &&
dist.commands += rm -f ../$${PROJECT_NAME}-$${PROJECT_VERSION}/.gitignore &&
dist.commands += cd .. &&
dist.commands += tar czf $${PROJECT_NAME}-$${PROJECT_VERSION}.tar.gz $${PROJECT_NAME}-$${PROJECT_VERSION} &&
dist.commands += tar cf $${PROJECT_NAME}-$${PROJECT_VERSION}.tar $${PROJECT_NAME}-$${PROJECT_VERSION} &&
dist.commands += xz -f $${PROJECT_NAME}-$${PROJECT_VERSION}.tar &&
dist.commands += rm -fR $${PROJECT_NAME}-$${PROJECT_VERSION}
QMAKE_EXTRA_TARGETS += dist

View File

@@ -6,8 +6,6 @@
<dep type='qt4'>
<required/>
</dep>
<dep type='qt-dbus'>
</dep>
<dep type='pkg-config'>
<required/>
</dep>
@@ -17,9 +15,10 @@
<dep type='libboost'>
<required/>
</dep>
<dep type='libnotify'>
</dep>
<dep type='geoip-database'>
</dep>
<dep type='qtsingleapplication'>
<required/>
</dep>
</qconf>

View File

@@ -6,15 +6,12 @@ arg: with-libboost-lib=[path], Path to libboost library files
-----END QCMOD-----
*/
#include <boost/version.hpp>
#include <libtorrent/version.hpp>
class qc_libboost : public ConfObj
{
public:
qc_libboost(Conf *c) : ConfObj(c) {}
QString name() const { return "libboost"; }
QString shortname() const { return "libboost"; }
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);
@@ -38,60 +35,84 @@ public:
}
return name;
}
bool exec(){
QStringList sl;
QString s = conf->getenv("QC_WITH_LIBBOOST_INC");
if (!s.isEmpty())
sl << s;
sl << "/usr/include";
sl << "/usr/local/include";
bool found = false;
foreach (s, sl) {
if (conf->checkHeader(s, "boost/format.hpp")
#if LIBTORRENT_VERSION_MAJOR == 0 && LIBTORRENT_VERSION_MINOR < 16
&& conf->checkHeader(s, "boost/filesystem/path.hpp")
#endif
) {
found = true;
break;
}
}
if (!found)
return false;
conf->addIncludePath(s);
// Find library
s = conf->getenv("QC_WITH_LIBBOOST_LIB");
bool exec(){
QString s;
s = conf->getenv("QC_WITH_LIBBOOST_INC");
if(!s.isEmpty()) {
if(!conf->checkHeader(s, "boost/format.hpp")) {
return false;
}
if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) {
return false;
}
if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
return false;
}
if(!conf->checkHeader(s, "boost/thread.hpp")) {
return false;
}
}else{
QStringList sl;
sl << "/usr/include";
sl << "/usr/local/include";
bool found = false;
foreach(s, sl){
if(conf->checkHeader(s, "boost/format.hpp")){
found = true;
break;
}
}
if(!found) {
return false;
}
if(!conf->checkHeader(s, "boost/date_time/posix_time/posix_time.hpp")) {
return false;
}
if(!conf->checkHeader(s, "boost/filesystem/path.hpp")) {
return false;
}
if(!conf->checkHeader(s, "boost/thread.hpp")) {
return false;
}
}
conf->addIncludePath(s);
// Find library
s = conf->getenv("QC_WITH_LIBBOOST_LIB");
QStringList required_libs;
#if BOOST_VERSION >= 103500
required_libs << "system";
#endif
#if LIBTORRENT_VERSION_MAJOR == 0 && LIBTORRENT_VERSION_MINOR < 16
required_libs << "filesystem" ;
#endif
//required_libs << "thread";
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
// Not required by nox
required_libs << "filesystem" << "thread";
}
QStringList libDirs;
if (!s.isEmpty())
libDirs << s;
libDirs << "/usr/lib/" << "/usr/lib/i386-linux-gnu/" << "/usr/lib64/" << "/usr/lib/x86_64-linux-gnu/" << "/usr/local/lib/" << "/usr/lib/local/i386-linux-gnu/" << "/usr/local/lib64/" << "/usr/local/lib/x86_64-linux-gnu/";
libDirs << "/usr/lib/" << "/usr/lib64/" << "/usr/local/lib/" << "/usr/local/lib64/";
foreach(const QString& lib, required_libs) {
bool found = false;
foreach(const QString& libDir, libDirs) {
QString detected_name = findBoostLib(libDir, lib);
if(!detected_name.isEmpty()) {
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);
found = true;
break;
}
} 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;
}
}
if(!found) {
printf("Could not find boost %s library!\n", qPrintable(lib));
return false;
}
}
return true;
}
return true;
}
};

View File

@@ -24,7 +24,7 @@ public:
QString version, libs, other;
VersionMode mode = VersionMin;
if(conf->findPkgConfig("libnotify", mode, req_ver, &version, &incs, &libs, &other)) {
conf->addExtra("CONFIG += libnotify");
conf->addDefine("WITH_LIBNOTIFY");
for(int n = 0; n < incs.count(); ++n)
conf->addIncludePath(incs[n]);
if(!libs.isEmpty())

View File

@@ -8,17 +8,20 @@ class qc_libtorrent_rasterbar : public ConfObj
{
public:
qc_libtorrent_rasterbar(Conf *c) : ConfObj(c) {}
QString name() const { return "libtorrent-rasterbar >= 0.15.0"; }
QString name() const { return "libtorrent-rasterbar >= 0.14.4"; }
QString shortname() const { return "libtorrent-rasterbar"; }
bool exec(){
QStringList incs;
QString req_ver = "0.15.0";
QString req_ver = "0.14.4";
QString version, libs, other;
VersionMode mode = VersionMin;
if(!conf->findPkgConfig("libtorrent-rasterbar", mode, req_ver, &version, &incs, &libs, &other))
return false;
for(int n = 0; n < incs.count(); ++n)
conf->addIncludePath(incs[n]);
if(conf->getenv("QC_DISABLE_GUI").isEmpty()) {
conf->addLib("-lcrypto");
}
return true;
}
};

View File

@@ -1,31 +0,0 @@
/*
-----BEGIN QCMOD-----
name: qt-dbus
-----END QCMOD-----
*/
// see Conf::findPkgConfig
class qc_qt_dbus : public ConfObj
{
public:
qc_qt_dbus(Conf *c) : ConfObj(c) {}
QString name() const { return "QtDBus >= 4.5"; }
QString shortname() const { return "qt-dbus"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_qt_dbus").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec(){
if(!conf->getenv("QC_DISABLE_qt_dbus").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return false;
QStringList incs;
QString req_ver = "4.5.0";
QString version, libs, other;
VersionMode mode = VersionMin;
if(conf->findPkgConfig("QtDBus", mode, req_ver, &version, &incs, &libs, &other)) {
conf->addExtra("CONFIG += dbus");
return true;
}
return false;
}
};

View File

@@ -1,31 +0,0 @@
/*
-----BEGIN QCMOD-----
name: qt-svg
-----END QCMOD-----
*/
// see Conf::findPkgConfig
class qc_qt_svg : public ConfObj
{
public:
qc_qt_svg(Conf *c) : ConfObj(c) {}
QString name() const { return "QtSvg >= 4.5"; }
QString shortname() const { return "qt-svg"; }
QString checkString() const {
if(!conf->getenv("QC_DISABLE_qt_svg").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return "";
return ConfObj::checkString();
}
bool exec(){
if(!conf->getenv("QC_DISABLE_qt_svg").isEmpty() || !conf->getenv("QC_DISABLE_GUI").isEmpty())
return false;
QStringList incs;
QString req_ver = "4.5.0";
QString version, libs, other;
VersionMode mode = VersionMin;
if(conf->findPkgConfig("QtSvg", mode, req_ver, &version, &incs, &libs, &other)) {
conf->addExtra("CONFIG += svg");
return true;
}
return false;
}
};

View File

@@ -1,7 +1,6 @@
/*
-----BEGIN QCMOD-----
name: Qt >= 4.6
arg: enable-debug, Enable debug mode
name: Qt >= 4.4
arg: disable-gui, Disable qBittorrent Graphical user interface for headless running
-----END QCMOD-----
*/
@@ -9,28 +8,13 @@ class qc_qt4 : public ConfObj
{
public:
qc_qt4(Conf *c) : ConfObj(c) {}
QString name() const { return "Qt >= 4.6"; }
QString shortname() const { return "Qt 4.6"; }
QString name() const { return "Qt >= 4.4"; }
QString shortname() const { return "Qt 4.4"; }
bool exec()
{
// NOX mode
if(!conf->getenv("QC_DISABLE_GUI").isEmpty()) {
conf->addExtra("CONFIG += nox");
}
// Debug mode
if(!conf->getenv("QC_ENABLE_DEBUG").isEmpty()) {
conf->addExtra("CONFIG -= release");
conf->addExtra("CONFIG += debug");
} else {
conf->addExtra("CONFIG -= debug");
conf->addExtra("CONFIG += release");
}
#ifdef Q_OS_FREEBSD
conf->addLib("-lexecinfo");
conf->addExtra("MANPREFIX = $$PREFIX");
#else
conf->addExtra("MANPREFIX = $$PREFIX/share");
#endif
return(QT_VERSION >= 0x040600);
conf->addDefine("DISABLE_GUI");
}
return(QT_VERSION >= 0x040400);
}
};

View File

@@ -1,6 +1,6 @@
/*
-----BEGIN QCMOD-----
name: qtsingleapplication
name: libboost
arg: with-qtsingleapplication=[system|shipped], Use the shipped qtsingleapplication library or the system one
-----END QCMOD-----
*/
@@ -16,7 +16,7 @@ public:
s = conf->getenv("QC_WITH_QTSINGLEAPPLICATION");
if(s.compare("system", Qt::CaseInsensitive) == 0) {
// System
conf->addExtra("CONFIG += usesystemqtsingleapplication");
conf->addDefine("USE_SYSTEM_QTSINGLEAPPLICATION");
printf(" [system] ");
} else {
printf(" [shipped] ");

View File

@@ -1,19 +0,0 @@
TS_IN = $$fromfile(src/src.pro,TRANSLATIONS)
TS_IN_NOEXT = $$replace(TS_IN,".ts","")
isEmpty(QMAKE_LRELEASE) {
win32|os2:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]\\lrelease.exe
else:QMAKE_LRELEASE = $$[QT_INSTALL_BINS]/lrelease
unix {
!exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease-qt4 }
} else {
!exists($$QMAKE_LRELEASE) { QMAKE_LRELEASE = lrelease }
}
}
message("Building translations")
for(L,TS_IN_NOEXT) {
message("Processing $${L}")
system("$$QMAKE_LRELEASE -silent src/$${L}.ts -qm src/$${L}.qm")
!exists("src/$${L}.qm"):error("Building translations failed, cannot continue")
}

1214
src/GUI.cpp Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -36,42 +36,37 @@
#include <QPointer>
#include "ui_mainwindow.h"
#include "qtorrenthandle.h"
#include "statsdialog.h"
class QBtSession;
class Bittorrent;
class QTimer;
class downloadFromURL;
class SearchEngine;
class QCloseEvent;
class RSSImp;
class QShortcut;
class about;
class options_imp;
class QTabWidget;
class TransferListWidget;
class TransferListFiltersWidget;
class QSplitter;
class PropertiesWidget;
class StatusBar;
class consoleDlg;
class about;
class TorrentCreatorDlg;
class createtorrent;
class downloadFromURL;
class HidableTabWidget;
class LineEdit;
class ExecutionLog;
class PowerManagement;
QT_BEGIN_NAMESPACE
class QCloseEvent;
class QFileSystemWatcher;
class QShortcut;
class QSplitter;
class QTabWidget;
class QTimer;
QT_END_NAMESPACE
class MainWindow : public QMainWindow, private Ui::MainWindow{
class GUI : public QMainWindow, private Ui::MainWindow{
Q_OBJECT
public:
// Construct / Destruct
MainWindow(QWidget *parent=0, const QStringList& torrentCmdLine = QStringList());
GUI(QWidget *parent=0, QStringList torrentCmdLine=QStringList());
~GUI();
// Methods
QWidget* getCurrentTabWidget() const;
TransferListWidget* getTransferList() const { return transferList; }
@@ -79,41 +74,37 @@ public:
PropertiesWidget *getProperties() const { return properties; }
public slots:
void trackerAuthenticationRequired(const QTorrentHandle& h);
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();
void shutdownCleanUp();
void updateNbTorrents(unsigned int nb_downloading, unsigned int nb_seeding, unsigned int nb_active, unsigned int nb_inactive, unsigned int nb_paused);
void deleteBTSession();
protected slots:
// GUI related slots
void dropEvent(QDropEvent *event);
void dragEnterEvent(QDragEnterEvent *event);
void toggleVisibility(QSystemTrayIcon::ActivationReason e = QSystemTrayIcon::Trigger);
void toggleVisibility(QSystemTrayIcon::ActivationReason e);
void on_actionAbout_triggered();
void on_actionStatistics_triggered();
void on_actionCreate_torrent_triggered();
void on_actionWebsite_triggered() const;
void on_actionBugReport_triggered() const;
void on_actionShow_console_triggered();
void balloonClicked();
void writeSettings();
void readSettings();
void on_actionExit_triggered();
void createTrayIcon();
void fullDiskError(const QTorrentHandle& h, QString msg) const;
void fullDiskError(QTorrentHandle& h, QString msg) const;
void handleDownloadFromUrlFailure(QString, QString) const;
void createSystrayDelayed();
void tab_changed(int);
void on_actionLock_qBittorrent_triggered();
void defineUILockPassword();
void clearUILockPassword();
bool unlockUI();
void notifyOfUpdate(QString);
void showConnectionSettings();
void minimizeWindow();
void updateTrayIconMenu();
// Keyboard shortcuts
void createKeyboardShortcuts();
void displayTransferTab() const;
@@ -131,17 +122,13 @@ protected slots:
void addTorrent(QString path);
void addUnauthenticatedTracker(const QPair<QTorrentHandle,QString> &tracker);
void processDownloadedFiles(QString path, QString url);
void processNewMagnetLink(const QString& link);
void finishedTorrent(const QTorrentHandle& h) const;
void askRecursiveTorrentDownloadConfirmation(const QTorrentHandle &h);
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();
#if defined(Q_WS_WIN) || defined(Q_WS_MAC)
void handleUpdateCheckFinished(bool update_available, QString new_version, bool invokedByUser);
#endif
protected:
void closeEvent(QCloseEvent *);
@@ -150,23 +137,19 @@ protected:
void displayRSSTab(bool enable);
void displaySearchTab(bool enable);
private:
QIcon getSystrayIcon() const;
private:
QFileSystemWatcher *executable_watcher;
// Bittorrent
Bittorrent *BTSession;
QList<QPair<QTorrentHandle,QString> > unauthenticated_trackers; // Still needed?
// GUI related
bool m_posInitialized;
QTimer *guiUpdater;
HidableTabWidget *tabs;
StatusBar *status_bar;
QPointer<options_imp> options;
QPointer<consoleDlg> console;
QPointer<about> aboutDlg;
QPointer<StatsDialog> statsDlg;
QPointer<TorrentCreatorDlg> createTorrentDlg;
QPointer<createtorrent> createTorrentDlg;
QPointer<downloadFromURL> downloadFromURLDialog;
QPointer<QSystemTrayIcon> systrayIcon;
QPointer<QTimer> systrayCreator;
@@ -185,38 +168,21 @@ private:
QShortcut *switchRSSShortcut;
// Widgets
QAction *prioSeparator;
QAction *prioSeparatorMenu;
QAction *prioSeparator2;
QSplitter *hSplitter;
QSplitter *vSplitter;
QMenu *lockMenu;
// Search
QPointer<SearchEngine> searchEngine;
// RSS
QPointer<RSSImp> rssWidget;
// Execution Log
QPointer<ExecutionLog> m_executionLog;
// Power Management
PowerManagement *m_pwr;
QTimer *preventTimer;
#if defined(Q_WS_WIN) || defined(Q_WS_MAC)
QTimer programUpdateTimer;
#endif
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_action_Import_Torrent_triggered();
void on_actionDonate_money_triggered();
void on_actionExecution_Logs_triggered(bool checked);
void on_actionAutoExit_qBittorrent_toggled(bool );
void on_actionAutoSuspend_system_toggled(bool );
void on_actionAutoShutdown_system_toggled(bool );
// Check for active torrents and set preventing from suspend state
void checkForActiveTorrents();
#if defined(Q_WS_WIN) || defined(Q_WS_MAC)
void checkProgramUpdate();
#endif
void on_actionShutdown_when_downloads_complete_triggered();
};
#endif

BIN
src/Icons/downarrow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 643 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 408 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 604 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 591 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 643 B

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