1
mirror of https://github.com/qbittorrent/qBittorrent synced 2025-10-16 20:32:23 +02:00

Compare commits

..

62 Commits

Author SHA1 Message Date
Christophe Dumez
c92a8cee7b Tagged v2.6.4 release 2011-01-23 19:42:51 +00:00
Christophe Dumez
536f275ca3 Stop using load_file from libtorrent 2011-01-23 19:34:28 +00:00
Christophe Dumez
3238336e6e Updated Changelog 2011-01-23 08:50:09 +00:00
Christophe Dumez
bd8c03ecd8 BUGFIX: Fix renaming of single-file torrents (by Vladimir Golovnev) 2011-01-23 08:34:54 +00:00
Christophe Dumez
32ed944ac8 Make sure the main window is initially centered 2011-01-22 19:53:02 +00:00
Christophe Dumez
72fbf11f70 Make sure the properties panel is initially hidden 2011-01-22 19:41:39 +00:00
Christophe Dumez
0dc4b27cb6 Display legal notice on screen center 2011-01-22 19:32:44 +00:00
Christophe Dumez
a5aa1a5cab Code clean up 2011-01-22 19:20:22 +00:00
Christophe Dumez
2dbf418f5a Updated release date 2011-01-22 19:10:14 +00:00
Christophe Dumez
04f6d96575 Bump to v2.6.4 2011-01-22 19:04:32 +00:00
Christophe Dumez
25eb43d3bb Dropped dependency on libboost-thread 2011-01-22 19:03:23 +00:00
Christophe Dumez
cc785c4eea Improved host resolution code 2011-01-22 19:00:53 +00:00
Christophe Dumez
a589cb7fdc Fix possible status list height problem 2011-01-21 20:17:30 +00:00
Christophe Dumez
4704b50379 fix compilation with Qt < 4.7 2011-01-20 21:00:26 +00:00
Christophe Dumez
f43de35c33 Updated Changelog 2011-01-20 17:15:09 +00:00
Christophe Dumez
ec61870c9e I18N: Fix translation of size units (by Владимир Головнёв) 2011-01-20 17:12:07 +00:00
Christophe Dumez
746ffaf420 More UI buttons are now translated 2011-01-20 16:17:41 +00:00
Christophe Dumez
c60545977c Fix compilation on OS/2 2011-01-18 16:56:56 +00:00
Christophe Dumez
10020ed520 BUGFIX: Avoid main window flashing on startup (closes #703984) 2011-01-17 17:31:59 +00:00
Christophe Dumez
0aae5f947d Fixes to Polish translation 2011-01-16 09:53:36 +00:00
Christophe Dumez
11b5965b31 Fix RSS labeling 2011-01-15 18:27:32 +00:00
Christophe Dumez
35b2377e68 - BUGFIX: Added unicode support to email notification
- BUGFIX: Improved compatibility with various SMTP servers
2011-01-15 16:55:31 +00:00
Christophe Dumez
b0ab072aba Fix to Russian translation 2011-01-15 14:19:31 +00:00
Christophe Dumez
4552df5ec2 Bump to v2.6.3 2011-01-15 10:36:31 +00:00
Christophe Dumez
c19db4fa04 Fix FreeBSD compilation 2011-01-15 09:33:37 +00:00
Christophe Dumez
74e2339bc8 Get rid of DBus dependency in nox mode 2011-01-15 08:51:30 +00:00
Christophe Dumez
991c308423 Fix file priority context menu 2011-01-14 21:20:16 +00:00
Christophe Dumez
1867643288 Fixed Web UI translation 2011-01-14 19:14:02 +00:00
Christophe Dumez
50023bd968 Fixed icon size issues 2011-01-14 17:31:38 +00:00
Christophe Dumez
30c5bf3fd6 Updated Polish translation 2011-01-14 16:51:36 +00:00
Christophe Dumez
4e2d9564d1 Updated Armenian translation 2011-01-14 16:49:01 +00:00
Christophe Dumez
600186a6e9 Updated Armenian translation 2011-01-14 15:14:38 +00:00
Christophe Dumez
ca0e605276 Code clean up 2011-01-13 20:59:14 +00:00
Christophe Dumez
201aaae897 Fix possible crashes in full allocation mode 2011-01-13 20:44:42 +00:00
Christophe Dumez
629dc15bef Remove obsolete translatable strings 2011-01-12 17:51:50 +00:00
Christophe Dumez
35541e14aa Bump to v2.6.2 2011-01-12 17:48:35 +00:00
Christophe Dumez
cdede2d3db Translate locale names 2011-01-12 17:45:24 +00:00
Christophe Dumez
1f2e34b828 Fix torrent import 2011-01-12 17:13:44 +00:00
Christophe Dumez
d5aaf975dd Fix possible crash on adding a magnet link 2011-01-12 16:55:10 +00:00
Christophe Dumez
4ac59dbaba Updated Russian translation 2011-01-12 16:47:06 +00:00
Christophe Dumez
67802b16ab Updated Croatian translation 2011-01-12 15:50:35 +00:00
Christophe Dumez
41883c99c5 Updated Armenian settings 2011-01-12 15:46:33 +00:00
Christophe Dumez
d663c7bd3a Remove country flags from program preferences 2011-01-11 21:12:18 +00:00
Christophe Dumez
a6d1090515 Updated Ukrainian translation 2011-01-11 21:07:36 +00:00
Christophe Dumez
7844ce287d Fix typo 2011-01-11 21:01:39 +00:00
Christophe Dumez
c6ce0d35b2 Code clea nup 2011-01-11 19:42:54 +00:00
Christophe Dumez
eec56074fc Code clean up 2011-01-11 19:07:13 +00:00
Christophe Dumez
7c180dc57a Code clean up 2011-01-11 18:54:46 +00:00
Christophe Dumez
043b9f2981 Added Python 2.7 support (Windows) 2011-01-11 17:34:35 +00:00
Christophe Dumez
229559ef67 Added Armenian translation 2011-01-11 17:15:32 +00:00
Christophe Dumez
5e4b815d0f Updated Greek and Bulgarian translations 2011-01-11 17:05:48 +00:00
Christophe Dumez
c98ab55e11 BUGFIX: Do not report PeX as being disabled when DHT is 2011-01-10 21:13:40 +00:00
Christophe Dumez
632c2c5e4a Fix typo 2011-01-10 21:01:16 +00:00
Christophe Dumez
bbd9764f9c Reduced top toolbar spacing 2011-01-10 17:55:27 +00:00
Christophe Dumez
7437bd4265 Bump to v2.6.1 2011-01-10 17:39:47 +00:00
Christophe Dumez
1299e75934 BUGFIX: Fix magnet torrent name update problem 2011-01-10 17:36:17 +00:00
Christophe Dumez
514f82a3c9 Move transfer list filter on the right side of the toolbar 2011-01-10 17:12:55 +00:00
Christophe Dumez
51a69dc36a Also fix toolbar icon size in Web UI 2011-01-10 16:57:57 +00:00
Christophe Dumez
737fee79ed COSMETIC: Use 24px size for toolbar icons 2011-01-10 15:54:20 +00:00
Christophe Dumez
e5e4bb1111 BUGFIX: Fix some missing icons in the Web UI 2011-01-09 19:41:11 +00:00
Christophe Dumez
75111cdd8a BUGFIX: Really disable torrent addition dialog by default 2011-01-09 14:02:28 +00:00
Christophe Dumez
f5f915eb5d Branched v2.6.x series 2011-01-09 11:08:51 +00:00
181 changed files with 14870 additions and 57690 deletions

View File

@@ -50,10 +50,6 @@ Images Authors:
copyright: Greg Houston <gregory.houston@gmail.com>
license: MIT
* file: src/Icons/skin/qbittorrent_mono.svg
copyright: Daniel Eguren <deguren@gmail.com>
license: LGPL
* file: src/search_engine/engines/btjunkie.png
copyright: Downloaded from btjunkie.org
@@ -93,8 +89,7 @@ Translations authors:
- Italian: Matteo Sechi (bu17714@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: Nick Marinho (nickmarinho@gmail.com)
- Romanian: Obada Denis (obadadenis@users.sourceforge.net)

View File

@@ -1,18 +1,39 @@
* Sun Mar 20 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.7.0
- FEATURE: Added search field for torrent content
- FEATURE: Added auto-shutdown confirmation dialog
- FEATURE: Added option to skip torrent deletion confirmation (Ville Kiiskinen)
- FEATURE: IP address reported to trackers is now customizable
- FEATURE: Inhibit system sleep when torrents are active (Vladimir Golovnev)
- FEATURE: Added option to bypass Web UI authentication for localhost
- FEATURE: Added option to disable program exit confirmation
- FEATURE: Added per-torrent ratio limiting (Christian Kandeler)
- FEATURE: Torrent content list is now sortable
- BUGFIX: Fix compilation with namespaced Qt (Christian Kandeler)
- BUGFIX: Added length restriction on UI lock password
- COSMETIC: Added monochrome tray icon
- COSMETIC: Improved status bar's style
- OTHER: Make QtDBus dependency optional (X11)
* Sun Jan 23 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.6.4
- BUGFIX: Added unicode support to email notification
- BUGFIX: Improved compatibility with various SMTP servers
- BUGFIX: Fix Labeling in RSS downloader
- BUGFIX: Avoid main window flashing on startup (closes #703984)
- BUGFIX: Improved hostname resolution code
- BUGFIX: Dropped dependency on libboost-thread
- BUGFIX: Display legal notice on screen center
- BUGFIX: Fix renaming of single-file torrents (by Vladimir Golovnev)
- I18N: More dialog buttons are now translated (by Vladimir Golovnev)
- I18N: Fix translation of size units (by Vladimir Golovnev)
* Sat Jan 15 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.6.3
- BUGFIX: Fix possible crashes in full allocation mode
- BUGFIX: Fix icon size issues (Linux, icon theme)
- BUGFIX: Fixed file priority context menu
- BUGFIX: Remove dbus dependency in nox mode
- BUGFIX: Fix compilation on FreeBSD
- I18N: Improve Web UI translation
- I18N: Updated Polish translation
* Wed Jan 12 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.6.2
- BUGFIX: Do not report PeX as being disabled when DHT is
- BUGFIX: Fix possible crash on adding magnet links
- BUGFIX: Fix torrent import (was not working)
- I18N: Updated Greek, Croatian, Russian, Unkrainian and Bulgarian translations
- I18N: Added Armenian translation (New)
- I18N: Remove country flags from program preferences (language selection)
- I18N: Translate locale names (language selection)
* Mon Jan 10 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.6.1
- BUGFIX: Really disable torrent addition dialog by default
- BUGFIX: Fix some missing icons in the Web UI
- BUGFIX: Fix magnet torrent name update problem
- COSMETIC: Use 24px size for toolbar icons and reduce spacing
- COSMETIC: Move transfer list filter on the right side of the toolbar
* Sun Jan 9 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.6.0
- FEATURE: Use system icons (Linux, Qt >= 4.6)

86
configure vendored
View File

@@ -22,8 +22,6 @@ Dependency options:
--disable-gui Disable qBittorrent
Graphical user interface for
headless running
--disable-qt-dbus Disable use of qt-dbus
--disable-qt-svg Disable use of qt-svg
--with-libboost-inc=[path] Path to libboost include
files
--with-libboost-lib=[path] Path to libboost library
@@ -164,16 +162,6 @@ while [ $# -gt 0 ]; do
shift
;;
--disable-qt-dbus)
QC_DISABLE_qt_dbus="Y"
shift
;;
--disable-qt-svg)
QC_DISABLE_qt_svg="Y"
shift
;;
--with-libboost-inc=*)
QC_WITH_LIBBOOST_INC=$optarg
shift
@@ -227,8 +215,6 @@ echo DATADIR=$DATADIR
echo EX_QTDIR=$EX_QTDIR
echo QC_ENABLE_DEBUG=$QC_ENABLE_DEBUG
echo QC_DISABLE_GUI=$QC_DISABLE_GUI
echo QC_DISABLE_qt_dbus=$QC_DISABLE_qt_dbus
echo QC_DISABLE_qt_svg=$QC_DISABLE_qt_svg
echo QC_WITH_LIBBOOST_INC=$QC_WITH_LIBBOOST_INC
echo QC_WITH_LIBBOOST_LIB=$QC_WITH_LIBBOOST_LIB
echo QC_DISABLE_libnotify=$QC_DISABLE_libnotify
@@ -369,70 +355,6 @@ public:
return(QT_VERSION >= 0x040500);
}
};
#line 1 "qt-dbus.qcm"
/*
-----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;
}
};
#line 1 "qt-svg.qcm"
/*
-----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;
}
};
#line 1 "pkg-config.qcm"
/*
-----BEGIN QCMOD-----
@@ -723,12 +645,6 @@ cat >$1/modules_new.cpp <<EOT
o = new qc_qt4(conf);
o->required = true;
o->disabled = false;
o = new qc_qt_dbus(conf);
o->required = false;
o->disabled = false;
o = new qc_qt_svg(conf);
o->required = false;
o->disabled = false;
o = new qc_pkg_config(conf);
o->required = true;
o->disabled = false;
@@ -1694,8 +1610,6 @@ export DATADIR
export EX_QTDIR
export QC_ENABLE_DEBUG
export QC_DISABLE_GUI
export QC_DISABLE_qt_dbus
export QC_DISABLE_qt_svg
export QC_WITH_LIBBOOST_INC
export QC_WITH_LIBBOOST_LIB
export QC_DISABLE_libnotify

View File

@@ -6,10 +6,6 @@
<dep type='qt4'>
<required/>
</dep>
<dep type='qt-dbus'>
</dep>
<dep type='qt-svg'>
</dep>
<dep type='pkg-config'>
<required/>
</dep>

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;
}
};

BIN
src/Icons/downarrow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 722 B

View File

@@ -1,39 +1,36 @@
[Desktop Entry]
Categories=Network;FileTransfer;P2P;Qt;
Exec=qbittorrent %U
GenericName=BitTorrent client
GenericName[ar]=العميل BitTorrent
Categories=Qt;Network;P2P;
Comment=V2.6.4
Exec=qbittorrent %f
GenericName=Bittorrent client
GenericName[ar]=العميل Bittorrent
GenericName[bg]=Торент клиент
GenericName[cs]=BitTorrent klient
GenericName[de]=BitTorren Client
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 クライアント
GenericName[cs]=Bittorrent klient
GenericName[de]=Bittorren Client
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 クライアント
GenericName[ko]=비토렌트 클라이언트
GenericName[lt]=BitTorrent klientas
GenericName[nl]=BitTorrent-cliënt
GenericName[pl]=Klient BitTorrent
GenericName[pt]=Cliente BitTorrent
GenericName[pt_BR]=Cliente BitTorrent
GenericName[ro]=Client BitTorrent
GenericName[ru]=клиент BitTorrent
GenericName[sk]=Klient siete BitTorrent
GenericName[sr]=BitTorrent-клијент
GenericName[sv]=BitTorrent-klient
GenericName[tr]=BitTorrent istemcisi
GenericName[uk]=BitTorrent-клієнт
GenericName[zh]=BitTorrent之用户
GenericName[zh_TW]=BitTorrent客戶端
Comment=Download and share files over BitTorrent
Comment[fr]=Télécharger et partager des fichiers avec BitTorrent
Comment[pl]=Dzielenie się plikami przez BitTorrent
GenericName[nl]=Bittorrent-cliënt
GenericName[pl]=Klient Bittorrent
GenericName[pt]=Cliente Bittorrent
GenericName[pt_BR]=Cliente Bittorrent
GenericName[ro]=Client Bittorrent
GenericName[ru]=клиент Bittorrent
GenericName[sk]=Klient siete Bittorrent
GenericName[sr]=Bittorrent-клијент
GenericName[sv]=Bittorrent-klient
GenericName[tr]=Bittorrent istemcisi
GenericName[uk]=Bittorrent-клієнт
GenericName[zh]=Bittorrent之用户
GenericName[zh_TW]=Bittorrent客戶端
Icon=qbittorrent
MimeType=application/x-bittorrent;x-scheme-handler/magnet;
MimeType=application/x-bittorrent;
Name=qBittorrent
Name[ko]=큐비토런트
Terminal=false

File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 483 B

BIN
src/Icons/uparrow.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 787 B

View File

@@ -47,7 +47,7 @@
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleGetInfoString</key>
<string>2.7.0</string>
<string>2.6.4</string>
<key>CFBundleSignature</key>
<string>????</string>
<key>CFBundleExecutable</key>

View File

@@ -78,8 +78,7 @@ class about : public QDialog, private Ui::AboutDlg{
<li><u>Italian:</u> Matteo Sechi (bu17714@gmail.com)</li>\
<li><u>Japanese:</u> Nardog (alphisation@gmail.com)</li>\
<li><u>Korean:</u> Jin Woo Sin (jin828sin@users.sourceforge.net)</li>\
<li><u>Lithuanian:</u> Naglis Jonaitis (njonaitis@gmail.com)</li>\
<li><u>Norwegian:</u> Tomaso</li>\
<li><u>Norwegian:</u> Lars-Erik Labori (hamil@users.sourceforge.net)</li>\
<li><u>Polish:</u> Mariusz Fik (fisiu@opensuse.org)</li>\
<li><u>Portuguese:</u> Nick Marinho (nickmarinho@gmail.com)</li>\
<li><u>Romanian:</u> Obada Denis (obadadenis@users.sourceforge.net)</li>\

View File

@@ -38,75 +38,71 @@
#include "downloadthread.h"
#include "preferences.h"
#ifndef DISABLE_GUI
#include "rsssettings.h"
#include "rsssettings.h"
#endif
#include "qinisettings.h"
/** Download Thread **/
DownloadThread::DownloadThread(QObject* parent) : QObject(parent) {
downloadThread::downloadThread(QObject* parent) : QObject(parent) {
connect(&m_networkManager, SIGNAL(finished (QNetworkReply*)), this, SLOT(processDlFinished(QNetworkReply*)));
#ifndef QT_NO_OPENSSL
connect(&m_networkManager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(ignoreSslErrors(QNetworkReply*,QList<QSslError>)));
#endif
}
void DownloadThread::processDlFinished(QNetworkReply* reply) {
void downloadThread::processDlFinished(QNetworkReply* reply) {
QString url = reply->url().toString();
qDebug("Download finished: %s", qPrintable(url));
// Check if the request was successful
if(reply->error() != QNetworkReply::NoError) {
// Failure
qDebug("Download failure (%s), reason: %s", qPrintable(url), qPrintable(errorCodeToString(reply->error())));
emit downloadFailure(url, errorCodeToString(reply->error()));
reply->deleteLater();
return;
}
// Check if the server ask us to redirect somewhere lese
const QVariant redirection = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
if(redirection.isValid()) {
// We should redirect
qDebug("Redirecting from %s to %s", qPrintable(url), qPrintable(redirection.toUrl().toString()));
m_redirectMapping.insert(redirection.toUrl().toString(), url);
downloadUrl(redirection.toUrl().toString());
reply->deleteLater();
return;
}
// Checking if it was redirected, restoring initial URL
if(m_redirectMapping.contains(url)) {
url = m_redirectMapping.take(url);
}
// Success
QTemporaryFile *tmpfile = new QTemporaryFile;
tmpfile->setAutoRemove(false);
if (tmpfile->open()) {
QString filePath = tmpfile->fileName();
qDebug("Temporary filename is: %s", qPrintable(filePath));
if(reply->isOpen() || reply->open(QIODevice::ReadOnly)) {
// TODO: Support GZIP compression
tmpfile->write(reply->readAll());
tmpfile->close();
// XXX: For some reason, tmpfile has to be destroyed before
// the signal is sent or the file stays locked on Windows
// for some reason.
delete tmpfile;
// Send finished signal
emit downloadFinished(url, filePath);
} else {
QVariant redirection = reply->attribute(QNetworkRequest::RedirectionTargetAttribute);
if(redirection.isValid()) {
// We should redirect
qDebug("Redirecting from %s to %s", qPrintable(url), qPrintable(redirection.toUrl().toString()));
m_redirectMapping.insert(redirection.toUrl().toString(), url);
downloadUrl(redirection.toUrl().toString());
return;
}
// Checking if it was redirecting, restoring initial URL
if(m_redirectMapping.contains(url)) {
url = m_redirectMapping.take(url);
}
// Success
QString filePath;
QTemporaryFile *tmpfile = new QTemporaryFile;
tmpfile->setAutoRemove(false);
if (tmpfile->open()) {
filePath = tmpfile->fileName();
qDebug("Temporary filename is: %s", qPrintable(filePath));
if(reply->open(QIODevice::ReadOnly)) {
// TODO: Support GZIP compression
tmpfile->write(reply->readAll());
reply->close();
tmpfile->close();
delete tmpfile;
// Send finished signal
emit downloadFinished(url, filePath);
} else {
// Error when reading the request
tmpfile->close();
delete tmpfile;
emit downloadFailure(url, tr("I/O Error"));
}
} else {
delete tmpfile;
// Error when reading the request
emit downloadFailure(url, tr("I/O Error"));
}
} else {
delete tmpfile;
emit downloadFailure(url, tr("I/O Error"));
}
// Clean up
reply->deleteLater();
}
#ifndef DISABLE_GUI
void DownloadThread::loadCookies(const QString &host_name, QString url) {
void downloadThread::loadCookies(const QString &host_name, QString url) {
const QList<QByteArray> raw_cookies = RssSettings().getHostNameCookies(host_name);
QNetworkCookieJar *cookie_jar = m_networkManager.cookieJar();
QList<QNetworkCookie> cookies;
@@ -123,24 +119,30 @@ void DownloadThread::loadCookies(const QString &host_name, QString url) {
}
#endif
void DownloadThread::downloadTorrentUrl(const QString &url) {
void downloadThread::downloadTorrentUrl(QString url) {
#ifndef DISABLE_GUI
// Load cookies
QString host_name = QUrl::fromEncoded(url.toLocal8Bit()).host();
if(!host_name.isEmpty())
loadCookies(host_name, url);
#endif
// Process request
QNetworkReply *reply = downloadUrl(url);
connect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(checkDownloadSize(qint64,qint64)));
}
QNetworkReply* DownloadThread::downloadUrl(const QString &url){
QNetworkReply* downloadThread::downloadUrl(QString url){
// Update proxy settings
applyProxySettings();
#ifndef DISABLE_GUI
// Load cookies
QString host_name = QUrl::fromEncoded(url.toUtf8()).host();
QString host_name = QUrl::fromEncoded(url.toLocal8Bit()).host();
if(!host_name.isEmpty())
loadCookies(host_name, url);
#endif
// Process download request
qDebug("url is %s", qPrintable(url));
const QUrl qurl = QUrl::fromEncoded(url.toUtf8());
const QUrl qurl = QUrl::fromEncoded(url.toLocal8Bit());
QNetworkRequest request(qurl);
// Spoof Firefox 3.5 user agent to avoid
// Web server banning
@@ -154,28 +156,26 @@ QNetworkReply* DownloadThread::downloadUrl(const QString &url){
return m_networkManager.get(request);
}
void DownloadThread::checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal) {
QNetworkReply *reply = qobject_cast<QNetworkReply*>(sender());
if(!reply) return;
void downloadThread::checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal) {
if(bytesTotal > 0) {
QNetworkReply *reply = static_cast<QNetworkReply*>(sender());
// Total number of bytes is available
if(bytesTotal > 1048576) {
// More than 1MB, this is probably not a torrent file, aborting...
reply->abort();
reply->deleteLater();
} else {
disconnect(reply, SIGNAL(downloadProgress(qint64,qint64)), this, SLOT(checkDownloadSize(qint64,qint64)));
}
} else {
if(bytesReceived > 1048576) {
// More than 1MB, this is probably not a torrent file, aborting...
QNetworkReply *reply = static_cast<QNetworkReply*>(sender());
reply->abort();
reply->deleteLater();
}
}
}
void DownloadThread::applyProxySettings() {
void downloadThread::applyProxySettings() {
QNetworkProxy proxy;
const Preferences pref;
if(pref.isProxyEnabled()) {
@@ -203,7 +203,7 @@ void DownloadThread::applyProxySettings() {
m_networkManager.setProxy(proxy);
}
QString DownloadThread::errorCodeToString(QNetworkReply::NetworkError status) {
QString downloadThread::errorCodeToString(QNetworkReply::NetworkError status) {
switch(status){
case QNetworkReply::HostNotFoundError:
return tr("The remote host name was not found (invalid hostname)");
@@ -253,7 +253,7 @@ QString DownloadThread::errorCodeToString(QNetworkReply::NetworkError status) {
}
#ifndef QT_NO_OPENSSL
void DownloadThread::ignoreSslErrors(QNetworkReply* reply, const QList<QSslError> &errors) {
void downloadThread::ignoreSslErrors(QNetworkReply* reply,QList<QSslError> errors) {
Q_UNUSED(errors)
// Ignore all SSL errors
reply->ignoreSslErrors();

View File

@@ -36,28 +36,26 @@
#include <QHash>
#include <QSslError>
QT_BEGIN_NAMESPACE
class QNetworkAccessManager;
QT_END_NAMESPACE
class DownloadThread : public QObject {
class downloadThread : public QObject {
Q_OBJECT
public:
DownloadThread(QObject* parent = 0);
QNetworkReply* downloadUrl(const QString &url);
void downloadTorrentUrl(const QString &url);
downloadThread(QObject* parent = 0);
QNetworkReply* downloadUrl(QString url);
void downloadTorrentUrl(QString url);
//void setProxy(QString IP, int port, QString username, QString password);
signals:
void downloadFinished(const QString &url, const QString &file_path);
void downloadFailure(const QString &url, const QString &reason);
void downloadFinished(QString url, QString file_path);
void downloadFailure(QString url, QString reason);
private slots:
void processDlFinished(QNetworkReply* reply);
void checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal);
#ifndef QT_NO_OPENSSL
void ignoreSslErrors(QNetworkReply*,const QList<QSslError>&);
void ignoreSslErrors(QNetworkReply*,QList<QSslError>);
#endif
private:

View File

@@ -3,11 +3,9 @@
#include <QWidget>
QT_BEGIN_NAMESPACE
namespace Ui {
class ExecutionLog;
}
QT_END_NAMESPACE
class ExecutionLog : public QWidget
{

View File

@@ -73,10 +73,6 @@ void IconProvider::useSystemIconTheme(bool enable)
m_useSystemTheme = enable;
}
// Makes sure the icon is at least available in 16px and 24px size
// It scales the icon from the theme if necessary
// Otherwise, the UI looks broken if the icon is not available
// in the correct size.
QIcon IconProvider::generateDifferentSizes(const QIcon &icon)
{
QIcon new_icon;

View File

@@ -3,7 +3,9 @@
<file>Icons/url.png</file>
<file>Icons/loading.png</file>
<file>Icons/3-state-checkbox.gif</file>
<file>Icons/uparrow.png</file>
<file>Icons/sphere.png</file>
<file>Icons/downarrow.png</file>
<file>Icons/slow_off.png</file>
<file>Icons/sphere2.png</file>
<file>Icons/magnet.png</file>
@@ -34,12 +36,10 @@
<file>Icons/skin/firewalled.png</file>
<file>Icons/skin/downloading.png</file>
<file>Icons/skin/toolbox-divider.gif</file>
<file>Icons/skin/qbittorrent_mono.svg</file>
<file>Icons/skin/stalledUP.png</file>
<file>Icons/skin/filteractive.png</file>
<file>Icons/skin/bg-handle-horizontal.gif</file>
<file>Icons/skin/download.png</file>
<file>Icons/skin/ratio.png</file>
<file>Icons/flags/sm.png</file>
<file>Icons/flags/lt.png</file>
<file>Icons/flags/th.png</file>

View File

@@ -15,7 +15,6 @@
<file>lang/qbittorrent_fr.qm</file>
<file>lang/qbittorrent_uk.qm</file>
<file>lang/qbittorrent_zh.qm</file>
<file>lang/qbittorrent_lt.qm</file>
<file>lang/qbittorrent_ko.qm</file>
<file>lang/qbittorrent_nb.qm</file>
<file>lang/qbittorrent_sv.qm</file>
@@ -25,7 +24,6 @@
<file>lang/qbittorrent_pt_BR.qm</file>
<file>lang/qbittorrent_da.qm</file>
<file>lang/qbittorrent_cs.qm</file>
<file>lang/qbittorrent_hy.qm</file>
<file>lang/qbittorrent_pl.qm</file>
<file>lang/qbittorrent_bg.qm</file>
<file>lang/qbittorrent_ar.qm</file>
@@ -33,5 +31,6 @@
<file>lang/qbittorrent_en.qm</file>
<file>lang/qbittorrent_hr.qm</file>
<file>lang/qbittorrent_ro.qm</file>
<file>lang/qbittorrent_hy.qm</file>
</qresource>
</RCC>
</RCC>

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

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