1
mirror of https://github.com/qbittorrent/qBittorrent synced 2025-10-19 05:12:18 +02:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Christophe Dumez
b024820a30 Tagged v2.5.0rc1 release 2010-11-23 18:33:36 +00:00
106 changed files with 9663 additions and 10000 deletions

View File

@@ -76,7 +76,7 @@ Translations authors:
- Croatian: Oliver Mucafir (oliver.untwist@gmail.com)
- 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)
- Finnish: Niklas Laxström (nikerabbit@users.sourceforge.net)
- French: Christophe Dumez (chris@qbittorrent.org)

View File

@@ -1,18 +1,4 @@
* Sun Dec 19 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.5.2
- BUGFIX: Fix alternative speed icon staying pressed when disabled
- BUGFIX: Fix slot warning on startup
- BUGFIX: Fix alignment issues in program preferences
- BUGFIX: Make sure we don't move completed torrent to the temp directory
for checking (closes #602938)
- BUGFIX: Fix some 'File Not found' warning in the Web UI
- BUGFIX: Fix dangerous usage of vector iterator
- BUGFIX: No longer expand the first folder in the torrent content list
- BUGFIX: Fixes possible crash in the RSS Downloader dialog (closes #691426)
* Sun Dec 5 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.5.1
- BUGFIX: Fix possible crash when right-clicking on a torrent
* Sun Dec 5 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.5.0
* Unreleased - Christophe Dumez <chris@qbittorrent.org> - v2.5.0
- FEATURE: qBittorrent can now act as a tracker
- FEATURE: New and improved RSS feed automated downloader
- FEATURE: Added feature to shutdown qbittorrent on torrents completion
@@ -28,18 +14,10 @@
- FEATURE: Optimized and improved the peer country resolution code
- FEATURE: Download first/last pieces first when sequential download is
enabled (Thanks Ahmad)
- FEATURE: Download first/last pieces first now applies to all media files
in the torrent (Thanks Ahmad)
- BUGFIX: Fix SOCKS5 proxy authentication in search engine(closes #680072)
- BUGFIX: Fix two advanced settings (ignore limits on LAN and protocol
overhead inclusion in rate limiter)
- BUGFIX: Fix strict super seeding (was not working)
- BUGFIX: Improve magnet save path handling (closes #683395)
- BUGFIX: Disable overwrite confirmation in torrent addition dialog (closes # 685269)
- COSMETIC: Replaced message box by on-screen notification for download errors
- COSMETIC: Improved the torrent creation tool appearance
- COSMETIC: Use country flags by Mark James (Thanks to Dmytro Pukha)
- COSMETIC: Use bigger alternative speed icon
- OTHERS: Dropped support for Qt <= 4.4
* Tue Aug 24 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.4.0

5
configure vendored
View File

@@ -32,8 +32,7 @@ Dependency options:
executable (please follow
instructions in
src/geoip/README)
--disable-qtsingleapplication Disable use of
qtsingleapplication
--disable-qtsingleapplication Disable use of libboost
--with-qtsingleapplication=[system|shipped] Use the shipped
qtsingleapplication library
or the system one
@@ -610,7 +609,7 @@ public:
#line 1 "qtsingleapplication.qcm"
/*
-----BEGIN QCMOD-----
name: qtsingleapplication
name: libboost
arg: with-qtsingleapplication=[system|shipped], Use the shipped qtsingleapplication library or the system one
-----END QCMOD-----
*/

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-----
*/

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 B

After

Width:  |  Height:  |  Size: 439 B

Binary file not shown.

Before

Width:  |  Height:  |  Size: 423 B

After

Width:  |  Height:  |  Size: 439 B

View File

@@ -1,6 +1,6 @@
[Desktop Entry]
Categories=Qt;Network;P2P;
Comment=V2.5.2
Comment=V2.5.0
Exec=qbittorrent %f
GenericName=Bittorrent client
GenericName[ar]=العميل Bittorrent

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 1.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.3 KiB

View File

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

View File

@@ -68,7 +68,7 @@ class about : public QDialog, private Ui::AboutDlg{
<li><u>Croatian:</u> Oliver Mucafir (oliver.untwist@gmail.com)</li>\
<li><u>Czech:</u> Jirka Vilim (web@tets.cz)</li>\
<li><u>Danish:</u> Mathias Nielsen (comoneo@gmail.com)</li>\
<li><u>Dutch:</u> Pieter Heyvaert (pieter_heyvaert@hotmail.com)</li>\
<li><u>Dutch:</u> Joost Schipper (heavyjoost@users.sourceforge.net) and Peter Koeleman (peter@peerweb.nl)</li>\
<li><u>Finnish:</u> Niklas Laxström (nikerabbit@users.sourceforge.net) and Pekka Niemi (pekka.niemi@iki.fi)</li>\
<li><u>German:</u> Niels Hoffmann (zentralmaschine@users.sourceforge.net)</li>\
<li><u>Greek:</u> Tsvetan Bankov (emerge_life@users.sourceforge.net)</li>\

View File

@@ -1,55 +1,57 @@
<?xml version="1.0" encoding="UTF-8"?>
<ui version="4.0">
<ui version="4.0" >
<author></author>
<comment></comment>
<exportmacro></exportmacro>
<class>downloadFromURL</class>
<widget class="QDialog" name="downloadFromURL">
<property name="geometry">
<widget class="QDialog" name="downloadFromURL" >
<property name="geometry" >
<rect>
<x>0</x>
<y>0</y>
<width>482</width>
<width>360</width>
<height>220</height>
</rect>
</property>
<property name="windowTitle">
<property name="windowTitle" >
<string>Download from urls</string>
</property>
<layout class="QVBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<property name="margin">
<layout class="QVBoxLayout" >
<property name="margin" >
<number>9</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<property name="margin">
<layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
<widget class="QLabel" name="icon_lbl">
<property name="minimumSize">
<widget class="QLabel" name="icon_lbl" >
<property name="minimumSize" >
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="maximumSize">
<property name="maximumSize" >
<size>
<width>32</width>
<height>32</height>
</size>
</property>
<property name="text">
<property name="text" >
<string/>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="downloadURL_lbl">
<property name="font">
<widget class="QLabel" name="downloadURL_lbl" >
<property name="font" >
<font>
<family>Sans Serif</family>
<pointsize>12</pointsize>
@@ -60,7 +62,7 @@
<strikeout>false</strikeout>
</font>
</property>
<property name="text">
<property name="text" >
<string>Download Torrents from URLs</string>
</property>
</widget>
@@ -68,21 +70,21 @@
</layout>
</item>
<item>
<widget class="QTextEdit" name="textUrls">
<property name="acceptRichText">
<widget class="QTextEdit" name="textUrls" >
<property name="acceptRichText" >
<bool>false</bool>
</property>
</widget>
</item>
<item>
<widget class="QLabel" name="label_infos">
<property name="maximumSize">
<widget class="QLabel" name="label_infos" >
<property name="maximumSize" >
<size>
<width>16777215</width>
<height>17</height>
</size>
</property>
<property name="font">
<property name="font" >
<font>
<family>Sans Serif</family>
<pointsize>9</pointsize>
@@ -93,25 +95,25 @@
<strikeout>false</strikeout>
</font>
</property>
<property name="text">
<property name="text" >
<string>Only one URL per line</string>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout">
<property name="spacing">
<number>6</number>
</property>
<property name="margin">
<layout class="QHBoxLayout" >
<property name="margin" >
<number>0</number>
</property>
<property name="spacing" >
<number>6</number>
</property>
<item>
<spacer>
<property name="orientation">
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<property name="sizeHint" >
<size>
<width>40</width>
<height>20</height>
@@ -120,25 +122,25 @@
</spacer>
</item>
<item>
<widget class="QPushButton" name="downloadButton">
<property name="text">
<widget class="QPushButton" name="downloadButton" >
<property name="text" >
<string>Download</string>
</property>
</widget>
</item>
<item>
<widget class="QPushButton" name="cancelButton">
<property name="text">
<widget class="QPushButton" name="cancelButton" >
<property name="text" >
<string>Cancel</string>
</property>
</widget>
</item>
<item>
<spacer>
<property name="orientation">
<property name="orientation" >
<enum>Qt::Horizontal</enum>
</property>
<property name="sizeHint" stdset="0">
<property name="sizeHint" >
<size>
<width>40</width>
<height>20</height>
@@ -150,6 +152,7 @@
</item>
</layout>
</widget>
<pixmapfunction></pixmapfunction>
<resources/>
<connections/>
</ui>

View File

@@ -45,9 +45,9 @@
/** Download Thread **/
downloadThread::downloadThread(QObject* parent) : QObject(parent) {
connect(&m_networkManager, SIGNAL(finished (QNetworkReply*)), this, SLOT(processDlFinished(QNetworkReply*)));
connect(&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>)));
connect(&networkManager, SIGNAL(sslErrors(QNetworkReply*,QList<QSslError>)), this, SLOT(ignoreSslErrors(QNetworkReply*,QList<QSslError>)));
#endif
}
@@ -63,13 +63,13 @@ void downloadThread::processDlFinished(QNetworkReply* reply) {
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);
redirect_mapping.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);
if(redirect_mapping.contains(url)) {
url = redirect_mapping.take(url);
}
// Success
QString filePath;
@@ -104,7 +104,7 @@ void downloadThread::processDlFinished(QNetworkReply* reply) {
#ifndef DISABLE_GUI
void downloadThread::loadCookies(const QString &host_name, QString url) {
const QList<QByteArray> raw_cookies = RssSettings().getHostNameCookies(host_name);
QNetworkCookieJar *cookie_jar = m_networkManager.cookieJar();
QNetworkCookieJar *cookie_jar = networkManager.cookieJar();
QList<QNetworkCookie> cookies;
qDebug("Loading cookies for host name: %s", qPrintable(host_name));
foreach(const QByteArray& raw_cookie, raw_cookies) {
@@ -115,7 +115,7 @@ void downloadThread::loadCookies(const QString &host_name, QString url) {
}
}
cookie_jar->setCookiesFromUrl(cookies, url);
m_networkManager.setCookieJar(cookie_jar);
networkManager.setCookieJar(cookie_jar);
}
#endif
@@ -148,12 +148,12 @@ QNetworkReply* downloadThread::downloadUrl(QString url){
// Web server banning
request.setRawHeader("User-Agent", "Mozilla/5.0 (X11; U; Linux i686 (x86_64); en-US; rv:1.9.1.5) Gecko/20091102 Firefox/3.5.5");
qDebug("Downloading %s...", request.url().toEncoded().data());
qDebug("%d cookies for this URL", m_networkManager.cookieJar()->cookiesForUrl(url).size());
for(int i=0; i<m_networkManager.cookieJar()->cookiesForUrl(url).size(); ++i) {
qDebug("%s=%s", m_networkManager.cookieJar()->cookiesForUrl(url).at(i).name().data(), m_networkManager.cookieJar()->cookiesForUrl(url).at(i).value().data());
qDebug("Domain: %s, Path: %s", qPrintable(m_networkManager.cookieJar()->cookiesForUrl(url).at(i).domain()), qPrintable(m_networkManager.cookieJar()->cookiesForUrl(url).at(i).path()));
qDebug("%d cookies for this URL", networkManager.cookieJar()->cookiesForUrl(url).size());
for(int i=0; i<networkManager.cookieJar()->cookiesForUrl(url).size(); ++i) {
qDebug("%s=%s", networkManager.cookieJar()->cookiesForUrl(url).at(i).name().data(), networkManager.cookieJar()->cookiesForUrl(url).at(i).value().data());
qDebug("Domain: %s, Path: %s", qPrintable(networkManager.cookieJar()->cookiesForUrl(url).at(i).domain()), qPrintable(networkManager.cookieJar()->cookiesForUrl(url).at(i).path()));
}
return m_networkManager.get(request);
return networkManager.get(request);
}
void downloadThread::checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal) {
@@ -200,7 +200,7 @@ void downloadThread::applyProxySettings() {
} else {
proxy.setType(QNetworkProxy::NoProxy);
}
m_networkManager.setProxy(proxy);
networkManager.setProxy(proxy);
}
QString downloadThread::errorCodeToString(QNetworkReply::NetworkError status) {

View File

@@ -41,33 +41,33 @@ class QNetworkAccessManager;
class downloadThread : public QObject {
Q_OBJECT
public:
downloadThread(QObject* parent = 0);
QNetworkReply* downloadUrl(QString url);
void downloadTorrentUrl(QString url);
//void setProxy(QString IP, int port, QString username, QString password);
private:
QNetworkAccessManager networkManager;
QHash<QString, QString> redirect_mapping;
signals:
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*,QList<QSslError>);
#endif
public:
downloadThread(QObject* parent);
QNetworkReply* downloadUrl(QString url);
void downloadTorrentUrl(QString url);
//void setProxy(QString IP, int port, QString username, QString password);
private:
protected:
QString errorCodeToString(QNetworkReply::NetworkError status);
void applyProxySettings();
#ifndef DISABLE_GUI
void loadCookies(const QString &host_name, QString url);
#endif
private:
QNetworkAccessManager m_networkManager;
QHash<QString, QString> m_redirectMapping;
protected slots:
void processDlFinished(QNetworkReply* reply);
void checkDownloadSize(qint64 bytesReceived, qint64 bytesTotal);
#ifndef QT_NO_OPENSSL
void ignoreSslErrors(QNetworkReply*,QList<QSslError>);
#endif
};

View File

@@ -118,7 +118,9 @@ void GeoIPManager::loadDatabase(session *s) {
#endif
if(QFile::exists(geoipDBpath(false))) {
qDebug("Loading GeoIP database from %s...", qPrintable(geoipDBpath(false)));
s->load_country_db(geoipDBpath(false).toLocal8Bit().constData());
if(!s->load_country_db(geoipDBpath(false).toLocal8Bit().constData())) {
std::cerr << "Failed to load Geoip Database at " << qPrintable(geoipDBpath(false)) << std::endl;
}
} else {
qDebug("ERROR: Impossible to find local Geoip Database");
}

View File

@@ -40,14 +40,15 @@ class HeadlessLoader: public QObject {
Q_OBJECT
public:
HeadlessLoader(const QStringList &torrentCmdLine) {
HeadlessLoader(QStringList torrentCmdLine) {
Preferences pref;
// Enable Web UI
pref.setWebUiEnabled(true);
// Instanciate Bittorrent Object
connect(QBtSession::instance(), SIGNAL(newConsoleMessage(QString)), this, SLOT(displayConsoleMessage(QString)));
BTSession = QBtSession::instance();
connect(BTSession, SIGNAL(newConsoleMessage(QString)), this, SLOT(displayConsoleMessage(QString)));
// Resume unfinished torrents
QBtSession::instance()->startUpTorrents();
BTSession->startUpTorrents();
// Process command line parameters
processParams(torrentCmdLine);
// Display some information to the user
@@ -71,7 +72,7 @@ public slots:
qApp->quit();
}
void displayConsoleMessage(const QString &msg) {
void displayConsoleMessage(QString msg) {
std::cout << qPrintable(msg) << std::endl;
}
@@ -87,21 +88,24 @@ public slots:
foreach(QString param, params) {
param = param.trimmed();
if(param.startsWith(QString::fromUtf8("http://"), Qt::CaseInsensitive) || param.startsWith(QString::fromUtf8("ftp://"), Qt::CaseInsensitive) || param.startsWith(QString::fromUtf8("https://"), Qt::CaseInsensitive)) {
QBtSession::instance()->downloadFromUrl(param);
BTSession->downloadFromUrl(param);
}else{
if(param.startsWith("bc://bt/", Qt::CaseInsensitive)) {
qDebug("Converting bc link to magnet link");
param = misc::bcLinkToMagnet(param);
}
if(param.startsWith("magnet:", Qt::CaseInsensitive)) {
QBtSession::instance()->addMagnetUri(param);
BTSession->addMagnetUri(param);
} else {
QBtSession::instance()->addTorrent(param);
BTSession->addTorrent(param);
}
}
}
}
private:
QBtSession *BTSession;
};
#endif

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because one or more lines are too long

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

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because one or more lines are too long

Binary file not shown.

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

Binary file not shown.

File diff suppressed because it is too large Load Diff

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