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

Compare commits

...

28 Commits

Author SHA1 Message Date
Christophe Dumez
0f1850175b - Tagged v1.1.0 release (stable) 2008-08-01 14:34:04 +00:00
Christophe Dumez
c2f22d292a - Updated bulgarian and greek translations 2008-07-31 12:45:35 +00:00
Christophe Dumez
9778112b3b - Allow to download torrents from local files in WEB UI 2008-07-31 12:11:01 +00:00
Christophe Dumez
1708361bd5 - Added peerkoel to dutch translators 2008-07-29 09:58:50 +00:00
Christophe Dumez
cc04f7eec2 - Updated dutch translation 2008-07-29 09:56:32 +00:00
Christophe Dumez
395805f9e8 - Added new Russian translator's name 2008-07-29 07:48:26 +00:00
Christophe Dumez
ba5daee92f - Patch from Alexey Morsov for desktop file to satisfy freedesktop
standard
2008-07-29 07:42:45 +00:00
Christophe Dumez
bfef2b5cc0 - updated russian translation 2008-07-29 07:40:03 +00:00
Christophe Dumez
af2431afbd - Added new spanish translator's name 2008-07-28 13:24:14 +00:00
Christophe Dumez
7a1b92e467 - Updated spanish translation 2008-07-28 13:17:55 +00:00
Christophe Dumez
dc399e9ed9 - optimized downloadthreads
- fixed resizing in torrent addition dialog
2008-07-27 18:11:45 +00:00
Christophe Dumez
dad79d2cc8 - Bump to rc2 2008-07-27 16:02:58 +00:00
Christophe Dumez
b5d30d5154 - Fixed vertical alignements of menus 2008-07-27 15:58:33 +00:00
Christophe Dumez
72df85749b - Updated TODO file 2008-07-27 15:42:57 +00:00
Christophe Dumez
6c84288b09 - Updated German translation 2008-07-23 07:00:16 +00:00
Christophe Dumez
78239d6956 - Fixed building on ARM (patch from Cristian Greco) 2008-07-22 19:49:22 +00:00
Christophe Dumez
41be514dcf - Commented ASSERT due to a little string encoding bug in libtorrent 2008-07-22 14:40:01 +00:00
Christophe Dumez
855b539843 - Add missing line at the end 2008-07-19 20:04:01 +00:00
Christophe Dumez
2e72ab4973 - Fixed extented selection in search results list (Bug introduced by Tab support in search engine) 2008-07-19 19:28:57 +00:00
Christophe Dumez
ae2ad8e747 - Fixed a bug in torrent progress display 2008-07-16 21:53:34 +00:00
Christophe Dumez
42fa5ef8f3 - Updated hungarian translation 2008-07-13 21:12:16 +00:00
Christophe Dumez
9395f7316d - Updated hungarian translator's mail 2008-07-13 21:10:18 +00:00
Christophe Dumez
fa1c4050ed - Updated Korean translation 2008-07-12 21:23:27 +00:00
Christophe Dumez
565b98a94a - Updated turkish translation 2008-07-11 21:35:39 +00:00
Christophe Dumez
f58efdfefc - Bump to rc1
- Disable debug
2008-07-11 17:37:13 +00:00
Christophe Dumez
a806c27f70 - Updated Italian translation 2008-07-11 16:30:52 +00:00
Christophe Dumez
a8f82d9e12 - Updated Finnish translation 2008-07-10 18:50:34 +00:00
Christophe Dumez
fe6054307e - Moved v1.1.x to its own branch. Trunk will now be dedicated to v1.2.x 2008-07-10 18:11:26 +00:00
78 changed files with 6420 additions and 4834 deletions

View File

@@ -27,6 +27,7 @@
- COSMETIC: Display "unpaused/total_torrent" in download/upload tabs - COSMETIC: Display "unpaused/total_torrent" in download/upload tabs
- COSMETIC: Allow to resize RSS column - COSMETIC: Allow to resize RSS column
- COSMETIC: Global UP/DL speeds and ratio are displayed above tabs - COSMETIC: Global UP/DL speeds and ratio are displayed above tabs
- COSMETIC: Use infinity symbol for ETA when time is infinite
* Fri Apr 11 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.0.0 * Fri Apr 11 2008 - Christophe Dumez <chris@qbittorrent.org> - v1.0.0
- FEATURE: Based on new libtorrent v0.13 - FEATURE: Based on new libtorrent v0.13

View File

@@ -18,7 +18,6 @@ Dependencies:
Qt >= 4.4.0 is advised Qt >= 4.4.0 is advised
- libtorrent-rasterbar by Arvid Norberg (>= v0.13.1 REQUIRED) - libtorrent-rasterbar by Arvid Norberg (>= v0.13.1 REQUIRED)
-> http://www.qbittorrent.org/download.php (advised)
-> http://www.libtorrent.net -> http://www.libtorrent.net
Be careful: another library (the one used by rTorrent) uses a similar name. Be careful: another library (the one used by rTorrent) uses a similar name.

51
TODO
View File

@@ -1,41 +1,6 @@
// Easy See https://blueprints.launchpad.net/qbittorrent/
- Translations into as many languages as possible
- Use Launchpad/Rosetta for translations once it supports TS files
// Intermediate Translations updated in v1.1.0:
- Port on MacOS, Windows (and create an installer for Windows) - Slow progress
- Add some transparency (menus,...), improve look / usabilty
- Skins support? (contact Mateusz)
// Harder
- Torrent scheduler ala µtorrent/Bitcomet
// Waiting for libtorrent
- Allow to prioritize torrents (may code this in qBittorrent?)
// Unsure
- Display the peers we are connected to for each torrent with infos (like flag, dl/up speeds, ...)
- Azureus spoofing to prevent ban from trackers?
- Option to shutdown computer when downloads are finished
- NAT checker/Tester
- Display hard drive space left?
- Make use of dbus on Linux for the single instance instead of socket communication?
(http://techbase.kde.org/Development/Tutorials/D-Bus/Accessing_Interfaces)
- When favicon can't be downloaded, try to parse the webpage for:
<link rel="icon" href="http://example.com/favicon.ico" type="image/vnd.microsoft.icon">
* Be careful, the link can be relative
- Improve search plugin install (choose in a list taken from plugins.qbittorrent.org)
- support zipped torrents? (useful?)
- Allow to limit the number of downloading torrents simultaneously (other are paused until a download finishes)
// in v1.2.0
- Allow user to organize the downloads into categories/folders?
// in v1.1.0
- Stop calculating ETAs when ETA column is hidden
-> See https://blueprints.launchpad.net/qbittorrent
Translations updated:
- French - French
- Chinese - Chinese
- Polish - Polish
@@ -43,3 +8,15 @@ Translations updated:
- Brazilian - Brazilian
- Slovak - Slovak
- Swedish - Swedish
- Romanian
- Finnish
- Italian
- Turkish
- Korean
- Hungarian
- German
- Spanish
- Russian
- Dutch
- Bulgarian
- Greek

View File

@@ -394,7 +394,7 @@ void FinishedTorrents::displayFinishedListMenu(const QPoint& pos){
// Call menu // Call menu
// XXX: why mapToGlobal() is not enough? // XXX: why mapToGlobal() is not enough?
myFinishedListMenu.exec(mapToGlobal(pos)+QPoint(10,55)); myFinishedListMenu.exec(mapToGlobal(pos)+QPoint(10,59));
} }
@@ -410,7 +410,7 @@ void FinishedTorrents::displayFinishedHoSMenu(const QPoint& pos){
hideshowColumn.addAction(getActionHoSCol(i)); hideshowColumn.addAction(getActionHoSCol(i));
} }
// Call menu // Call menu
hideshowColumn.exec(mapToGlobal(pos)+QPoint(10,55)); hideshowColumn.exec(mapToGlobal(pos)+QPoint(10,32));
} }
// toggle hide/show a column // toggle hide/show a column

View File

@@ -1,7 +1,7 @@
[Desktop Entry] [Desktop Entry]
Categories=Qt;Application;Network;P2P Categories=Qt;Network;P2P
Comment=V1.1.0 Comment=V1.1.0
Exec=qbittorrent Exec=qbittorrent %f
GenericName=Bittorrent client GenericName=Bittorrent client
GenericName[bg]=Торент клиент GenericName[bg]=Торент клиент
GenericName[de]=Bittorren Client GenericName[de]=Bittorren Client
@@ -19,7 +19,7 @@ GenericName[tr]=Bittorrent istemcisi
GenericName[uk]=Bittorrent-клієнт GenericName[uk]=Bittorrent-клієнт
GenericName[zh]=Bittorrent之用户 GenericName[zh]=Bittorrent之用户
Icon=qbittorrent Icon=qbittorrent
MimeType=application/x-bittorrent MimeType=application/x-bittorrent;
Name=qBittorrent Name=qBittorrent
Name[ko]=큐비토런트 Name[ko]=큐비토런트
Terminal=false Terminal=false

View File

@@ -41,6 +41,7 @@ SearchTab::SearchTab(SearchEngine *parent) : QWidget()
box=new QVBoxLayout(); box=new QVBoxLayout();
results_lbl=new QLabel(); results_lbl=new QLabel();
resultsBrowser = new QTreeView(); resultsBrowser = new QTreeView();
resultsBrowser->setSelectionMode(QAbstractItemView::ExtendedSelection);
box->addWidget(results_lbl); box->addWidget(results_lbl);
box->addWidget(resultsBrowser); box->addWidget(resultsBrowser);
@@ -185,4 +186,5 @@ bool SearchTab::loadColWidthSearchList(){
} }
qDebug("Search list columns width loaded"); qDebug("Search list columns width loaded");
return true; return true;
} }

View File

@@ -58,11 +58,11 @@ class about : public QDialog, private Ui::AboutDlg{
- <u>Catalan:</u> Gekko Dam Beer (gekko04@users.sourceforge.net)<br>\ - <u>Catalan:</u> Gekko Dam Beer (gekko04@users.sourceforge.net)<br>\
- <u>Chinese (Simplified):</u> Guo Yue (guoyue0418@hotmail.com)<br>\ - <u>Chinese (Simplified):</u> Guo Yue (guoyue0418@hotmail.com)<br>\
- <u>Danish:</u> Mathias Nielsen (comoneo@gmail.com)<br>\ - <u>Danish:</u> Mathias Nielsen (comoneo@gmail.com)<br>\
- <u>Dutch:</u> Joost Schipper (heavyjoost@users.sourceforge.net)<br>\ - <u>Dutch:</u> Joost Schipper (heavyjoost@users.sourceforge.net) and Peter Koeleman (peter@peerweb.nl)<br>\
- <u>Finnish:</u> Niklas Laxström (nikerabbit@users.sourceforge.net)<br>\ - <u>Finnish:</u> Niklas Laxström (nikerabbit@users.sourceforge.net)<br>\
- <u>German:</u> Niels Hoffmann (zentralmaschine@users.sourceforge.net)<br>\ - <u>German:</u> Niels Hoffmann (zentralmaschine@users.sourceforge.net)<br>\
- <u>Greek:</u> Tsvetan Bankov (emerge_life@users.sourceforge.net)<br>\ - <u>Greek:</u> Tsvetan Bankov (emerge_life@users.sourceforge.net)<br>\
- <u>Hungarian:</u> Majoros Péter (majoros.j.p@t-online.hu)<br>\ - <u>Hungarian:</u> Majoros Péter (majoros.peterj@gmail.com)<br>\
- <u>Italian:</u> Mirko Ferrari (mirkoferrari@gmail.com) and Ferraro Luciano (luciano.ferraro@gmail.com)<br>\ - <u>Italian:</u> Mirko Ferrari (mirkoferrari@gmail.com) and Ferraro Luciano (luciano.ferraro@gmail.com)<br>\
- <u>Japanese:</u> Nardog (nardog@e2umail.com)<br>\ - <u>Japanese:</u> Nardog (nardog@e2umail.com)<br>\
- <u>Korean:</u> Jin Woo Sin (jin828sin@users.sourceforge.net)<br>\ - <u>Korean:</u> Jin Woo Sin (jin828sin@users.sourceforge.net)<br>\
@@ -70,9 +70,9 @@ class about : public QDialog, private Ui::AboutDlg{
- <u>Polish:</u> Jarek Smieja (ajep9691@wp.pl)<br>\ - <u>Polish:</u> Jarek Smieja (ajep9691@wp.pl)<br>\
- <u>Portuguese:</u> Nick Marinho (nickmarinho@gmail.com)<br>\ - <u>Portuguese:</u> Nick Marinho (nickmarinho@gmail.com)<br>\
- <u>Romanian:</u> Obada Denis (obadadenis@users.sourceforge.net)<br>\ - <u>Romanian:</u> Obada Denis (obadadenis@users.sourceforge.net)<br>\
- <u>Russian:</u> Nick Khazov (m2k3d0n at users.sourceforge.net)<br>\ - <u>Russian:</u> Nick Khazov (m2k3d0n@users.sourceforge.net) and Alexey Morsov (samurai@ricom.ru)<br>\
- <u>Slovak:</u> helix84<br>\ - <u>Slovak:</u> helix84<br>\
- <u>Spanish:</u> Vicente Raul Plata Fonseca (silverxnt@users.sourceforge.net)<br>\ - <u>Spanish:</u> Vicente Raul Plata Fonseca (silverxnt@users.sourceforge.net) and Gabriel de Oliveira (deadloop@hotmail.com)<br>\
- <u>Swedish:</u> Daniel Nylander (po@danielnylander.se)<br>\ - <u>Swedish:</u> Daniel Nylander (po@danielnylander.se)<br>\
- <u>Turkish:</u> Erdem Bingöl (erdem84@gmail.com)<br>\ - <u>Turkish:</u> Erdem Bingöl (erdem84@gmail.com)<br>\
- <u>Ukrainian:</u> Andrey Shpachenko (masterfix@users.sourceforge.net)<br><br>")); - <u>Ukrainian:</u> Andrey Shpachenko (masterfix@users.sourceforge.net)<br><br>"));

View File

@@ -234,7 +234,7 @@ class arborescence {
void addFile(QString path, size_type file_size, int index, float progress=0., int priority=1) { void addFile(QString path, size_type file_size, int index, float progress=0., int priority=1) {
Q_ASSERT(root->isDir()); Q_ASSERT(root->isDir());
path = QDir::cleanPath(path); path = QDir::cleanPath(path);
Q_ASSERT(path.startsWith(root->path())); //Q_ASSERT(path.startsWith(root->path()));
QString relative_path = path.remove(0, root->path().size()); QString relative_path = path.remove(0, root->path().size());
if(relative_path.at(0) ==QDir::separator()) if(relative_path.at(0) ==QDir::separator())
relative_path.remove(0, 1); relative_path.remove(0, 1);

View File

@@ -24,6 +24,8 @@
#include <QSettings> #include <QSettings>
#include <stdio.h> #include <stdio.h>
#define MAX_THREADS 3
// http://curl.rtin.bz/libcurl/c/libcurl-errors.html // http://curl.rtin.bz/libcurl/c/libcurl-errors.html
QString subDownloadThread::errorCodeToString(CURLcode status) { QString subDownloadThread::errorCodeToString(CURLcode status) {
switch(status){ switch(status){
@@ -150,9 +152,7 @@ downloadThread::~downloadThread(){
void downloadThread::downloadUrl(QString url){ void downloadThread::downloadUrl(QString url){
QMutexLocker locker(&mutex); QMutexLocker locker(&mutex);
if(downloading_list.contains(url)) return; urls_queue.enqueue(url);
url_list << url;
downloading_list << url;
if(!isRunning()){ if(!isRunning()){
start(); start();
}else{ }else{
@@ -165,8 +165,8 @@ void downloadThread::run(){
if(abort) if(abort)
return; return;
mutex.lock(); mutex.lock();
if(url_list.size() != 0){ if(!urls_queue.empty() && subThreads.size() < MAX_THREADS){
QString url = url_list.takeFirst(); QString url = urls_queue.dequeue();
mutex.unlock(); mutex.unlock();
subDownloadThread *st = new subDownloadThread(0, url); subDownloadThread *st = new subDownloadThread(0, url);
subThreads << st; subThreads << st;
@@ -187,9 +187,9 @@ void downloadThread::propagateDownloadedFile(subDownloadThread* st, QString url,
delete st; delete st;
emit downloadFinished(url, path); emit downloadFinished(url, path);
mutex.lock(); mutex.lock();
index = downloading_list.indexOf(url); if(!urls_queue.empty()) {
Q_ASSERT(index != -1); condition.wakeOne();
downloading_list.removeAt(index); }
mutex.unlock(); mutex.unlock();
} }
@@ -200,8 +200,8 @@ void downloadThread::propagateDownloadFailure(subDownloadThread* st, QString url
delete st; delete st;
emit downloadFailure(url, reason); emit downloadFailure(url, reason);
mutex.lock(); mutex.lock();
index = downloading_list.indexOf(url); if(!urls_queue.empty()) {
Q_ASSERT(index != -1); condition.wakeOne();
downloading_list.removeAt(index); }
mutex.unlock(); mutex.unlock();
} }

View File

@@ -30,6 +30,7 @@
#include <QWaitCondition> #include <QWaitCondition>
#include <QStringList> #include <QStringList>
#include <curl/curl.h> #include <curl/curl.h>
#include <QQueue>
class subDownloadThread : public QThread { class subDownloadThread : public QThread {
Q_OBJECT Q_OBJECT
@@ -55,8 +56,7 @@ class downloadThread : public QThread {
Q_OBJECT Q_OBJECT
private: private:
QStringList url_list; QQueue<QString> urls_queue;
QStringList downloading_list;
QMutex mutex; QMutex mutex;
QWaitCondition condition; QWaitCondition condition;
bool abort; bool abort;

View File

@@ -311,7 +311,7 @@ void DownloadingTorrents::displayDLListMenu(const QPoint& pos) {
myDLLlistMenu.addAction(actionBuy_it); myDLLlistMenu.addAction(actionBuy_it);
// Call menu // Call menu
// XXX: why mapToGlobal() is not enough? // XXX: why mapToGlobal() is not enough?
myDLLlistMenu.exec(mapToGlobal(pos)+QPoint(10,60)); myDLLlistMenu.exec(mapToGlobal(pos)+QPoint(10,35));
} }
@@ -327,7 +327,7 @@ void DownloadingTorrents::displayDLHoSMenu(const QPoint& pos){
hideshowColumn.addAction(getActionHoSCol(i)); hideshowColumn.addAction(getActionHoSCol(i));
} }
// Call menu // Call menu
hideshowColumn.exec(mapToGlobal(pos)+QPoint(10,55)); hideshowColumn.exec(mapToGlobal(pos)+QPoint(10,10));
} }
// toggle hide/show a column // toggle hide/show a column

View File

@@ -30,6 +30,7 @@
#include <QHttpResponseHeader> #include <QHttpResponseHeader>
#include <QFile> #include <QFile>
#include <QDebug> #include <QDebug>
#include <QTemporaryFile>
HttpConnection::HttpConnection(QTcpSocket *socket, HttpServer *parent) HttpConnection::HttpConnection(QTcpSocket *socket, HttpServer *parent)
: QObject(parent), socket(socket), parent(parent) : QObject(parent), socket(socket), parent(parent)
@@ -45,11 +46,17 @@ HttpConnection::~HttpConnection()
void HttpConnection::read() void HttpConnection::read()
{ {
QString input = socket->readAll(); QByteArray input = socket->readAll();
qDebug(" -------"); qDebug(" -------");
qDebug("|REQUEST|"); qDebug("|REQUEST|");
qDebug(" -------"); qDebug(" -------");
qDebug("%s", input.toAscii().constData()); //qDebug("%s", input.toAscii().constData());
if(input.size() > 100000) {
qDebug("Request too big");
generator.setStatusLine(400, "Bad Request");
write();
return;
}
parser.write(input); parser.write(input);
if(parser.isError()) if(parser.isError())
{ {
@@ -74,6 +81,7 @@ void HttpConnection::write()
void HttpConnection::respond() void HttpConnection::respond()
{ {
qDebug("Respond called");
QStringList auth = parser.value("Authorization").split(" ", QString::SkipEmptyParts); QStringList auth = parser.value("Authorization").split(" ", QString::SkipEmptyParts);
if (auth.size() != 2 || QString::compare(auth[0], "Basic", Qt::CaseInsensitive) != 0 || !parent->isAuthorized(auth[1].toUtf8())) if (auth.size() != 2 || QString::compare(auth[0], "Basic", Qt::CaseInsensitive) != 0 || !parent->isAuthorized(auth[1].toUtf8()))
{ {
@@ -176,6 +184,25 @@ void HttpConnection::respondCommand(QString command)
emit urlsReadyToBeDownloaded(url_list_cleaned); emit urlsReadyToBeDownloaded(url_list_cleaned);
return; return;
} }
if(command == "upload")
{
QByteArray torrentfile = parser.torrent();
// XXX: Trick to get a unique filename
QString filePath;
QTemporaryFile *tmpfile = new QTemporaryFile();
if (tmpfile->open()) {
filePath = tmpfile->fileName();
}
delete tmpfile;
// write it to HD
QFile torrent(filePath);
if(torrent.open(QIODevice::WriteOnly)) {
torrent.write(torrentfile);
torrent.close();
}
emit torrentReadyToBeDownloaded(filePath, false, QString(), false);
return;
}
if(command == "resumeall") if(command == "resumeall")
{ {
emit resumeAllTorrents(); emit resumeAllTorrents();

View File

@@ -57,6 +57,7 @@ class HttpConnection : public QObject
signals: signals:
void urlsReadyToBeDownloaded(const QStringList&); void urlsReadyToBeDownloaded(const QStringList&);
void torrentReadyToBeDownloaded(QString, bool, QString, bool);
void deleteTorrent(QString hash); void deleteTorrent(QString hash);
void resumeTorrent(QString hash); void resumeTorrent(QString hash);
void pauseTorrent(QString hash); void pauseTorrent(QString hash);

View File

@@ -49,11 +49,11 @@ QString HttpRequestParser::url() const
return path; return path;
} }
QString HttpRequestParser::message() const QByteArray HttpRequestParser::message() const
{ {
if(isParsable()) if(isParsable())
return data; return data;
return QString(); return QByteArray();
} }
QString HttpRequestParser::get(const QString key) const QString HttpRequestParser::get(const QString key) const
@@ -66,7 +66,12 @@ QString HttpRequestParser::post(const QString key) const
return postMap[key]; return postMap[key];
} }
void HttpRequestParser::write(QString str) QByteArray HttpRequestParser::torrent() const
{
return torrent_content;
}
void HttpRequestParser::write(QByteArray str)
{ {
while (!headerDone && str.size()>0) while (!headerDone && str.size()>0)
{ {
@@ -111,7 +116,7 @@ void HttpRequestParser::write(QString str)
if(contentType() == "application/x-www-form-urlencoded") if(contentType() == "application/x-www-form-urlencoded")
{ {
QUrl url; QUrl url;
url.setEncodedQuery(data.toAscii()); url.setEncodedQuery(data);
QListIterator<QPair<QString, QString> > i(url.queryItems()); QListIterator<QPair<QString, QString> > i(url.queryItems());
while (i.hasNext()) while (i.hasNext())
{ {
@@ -120,9 +125,15 @@ void HttpRequestParser::write(QString str)
qDebug() << pair.first << "=" << post(pair.first); qDebug() << pair.first << "=" << post(pair.first);
} }
} }
if(contentType() == "multipart/form-data")
{
//qDebug() << data.right(data.size()-data.indexOf("\r\n\r\n")-QByteArray("\r\n\r\n").size());
torrent_content = data.right(data.size()-data.indexOf("\r\n\r\n")-QByteArray("\r\n\r\n").size());
}
} }
} }
else else
error = true; error = true;
} }
qDebug() << "isError: " << isError();
} }

View File

@@ -30,10 +30,11 @@ class HttpRequestParser : public QHttpRequestHeader
bool headerDone; bool headerDone;
bool messageDone; bool messageDone;
bool error; bool error;
QString data; QByteArray data;
QString path; QString path;
QMap<QString, QString> postMap; QMap<QString, QString> postMap;
QMap<QString, QString> getMap; QMap<QString, QString> getMap;
QByteArray torrent_content;
public: public:
HttpRequestParser(); HttpRequestParser();
@@ -41,10 +42,11 @@ class HttpRequestParser : public QHttpRequestHeader
bool isParsable() const; bool isParsable() const;
bool isError() const; bool isError() const;
QString url() const; QString url() const;
QString message() const; QByteArray message() const;
QString get(const QString key) const; QString get(const QString key) const;
QString post(const QString key) const; QString post(const QString key) const;
void write(QString str); QByteArray torrent() const;
void write(QByteArray str);
}; };
#endif #endif

View File

@@ -62,6 +62,7 @@ void HttpServer::newHttpConnection()
HttpConnection *connection = new HttpConnection(socket, this); HttpConnection *connection = new HttpConnection(socket, this);
//connect connection to BTSession //connect connection to BTSession
connect(connection, SIGNAL(urlsReadyToBeDownloaded(const QStringList&)), BTSession, SLOT(downloadFromURLList(const QStringList&))); connect(connection, SIGNAL(urlsReadyToBeDownloaded(const QStringList&)), BTSession, SLOT(downloadFromURLList(const QStringList&)));
connect(connection, SIGNAL(torrentReadyToBeDownloaded(QString, bool, QString, bool)), BTSession, SLOT(addTorrent(QString, bool, QString, bool)));
connect(connection, SIGNAL(deleteTorrent(QString)), BTSession, SLOT(deleteTorrent(QString))); connect(connection, SIGNAL(deleteTorrent(QString)), BTSession, SLOT(deleteTorrent(QString)));
connect(connection, SIGNAL(pauseTorrent(QString)), BTSession, SLOT(pauseTorrent(QString))); connect(connection, SIGNAL(pauseTorrent(QString)), BTSession, SLOT(pauseTorrent(QString)));
connect(connection, SIGNAL(resumeTorrent(QString)), BTSession, SLOT(resumeTorrent(QString))); connect(connection, SIGNAL(resumeTorrent(QString)), BTSession, SLOT(resumeTorrent(QString)));

View File

@@ -1,106 +1,110 @@
<!DOCTYPE RCC><RCC version="1.0"> <!DOCTYPE RCC><RCC version="1.0">
<qresource> <qresource>
<file>Icons/folder.png</file> <file>Icons/add_file.png</file>
<file>Icons/qbittorrent32.png</file> <file>Icons/add_folder.png</file>
<file>Icons/file.png</file> <file>Icons/bt_settings.png</file>
<file>Icons/smile.png</file> <file>Icons/button_cancel.png</file>
<file>Icons/qbittorrent22.png</file> <file>Icons/button_ok.png</file>
<file>Icons/mascot.png</file>
<file>Icons/downarrow.png</file>
<file>Icons/unavailable.png</file>
<file>Icons/proxy.png</file>
<file>Icons/description.png</file>
<file>Icons/log.png</file>
<file>Icons/uparrow.png</file>
<file>Icons/home.png</file>
<file>Icons/unsubscribe.png</file>
<file>Icons/url.png</file>
<file>Icons/unsubscribe16.png</file>
<file>Icons/stare.png</file>
<file>Icons/qbittorrent16.png</file>
<file>Icons/locale.png</file>
<file>Icons/splash.png</file>
<file>Icons/subscribe16.png</file>
<file>Icons/loading.png</file>
<file>Icons/star.png</file>
<file>Icons/gnome-shutdown.png</file>
<file>Icons/style.png</file>
<file>Icons/rss16.png</file>
<file>Icons/configure.png</file> <file>Icons/configure.png</file>
<file>Icons/connection.png</file> <file>Icons/connection.png</file>
<file>Icons/systemtray.png</file> <file>Icons/description.png</file>
<file>Icons/sphere.png</file> <file>Icons/downarrow.png</file>
<file>Icons/add_folder.png</file>
<file>Icons/button_cancel.png</file>
<file>Icons/encrypted.png</file>
<file>Icons/wizard.png</file>
<file>Icons/edit_clear.png</file>
<file>Icons/rss32.png</file>
<file>Icons/subscribe.png</file>
<file>Icons/bt_settings.png</file>
<file>Icons/password.png</file>
<file>Icons/newmsg.png</file>
<file>Icons/sphere2.png</file>
<file>Icons/button_ok.png</file>
<file>Icons/unhappy.png</file>
<file>Icons/add_file.png</file>
<file>Icons/filter.png</file>
<file>Icons/money.png</file>
<file>Icons/download.png</file> <file>Icons/download.png</file>
<file>Icons/time.png</file> <file>Icons/edit_clear.png</file>
<file>Icons/refresh.png</file> <file>Icons/encrypted.png</file>
<file>Icons/file.png</file>
<file>Icons/filter.png</file>
<file>Icons/folder.png</file>
<file>Icons/gear.png</file> <file>Icons/gear.png</file>
<file>Icons/skin/new.png</file> <file>Icons/gnome-shutdown.png</file>
<file>Icons/skin/qb_question.png</file> <file>Icons/home.png</file>
<file>Icons/skin/play.png</file> <file>Icons/loading.png</file>
<file>Icons/skin/connecting.png</file> <file>Icons/locale.png</file>
<file>Icons/skin/settings.png</file> <file>Icons/log.png</file>
<file>Icons/skin/add.png</file> <file>Icons/mascot.png</file>
<file>Icons/skin/open.png</file> <file>Icons/money.png</file>
<file>Icons/skin/play_all.png</file> <file>Icons/newmsg.png</file>
<file>Icons/skin/info.png</file> <file>Icons/password.png</file>
<file>Icons/skin/connected.png</file> <file>Icons/proxy.png</file>
<file>Icons/skin/search.png</file> <file>Icons/qbittorrent16.png</file>
<file>Icons/skin/url.png</file> <file>Icons/qbittorrent22.png</file>
<file>Icons/skin/firewalled.png</file> <file>Icons/qbittorrent32.png</file>
<file>Icons/skin/properties.png</file> <file>Icons/queued-and-gear.png</file>
<file>Icons/skin/preview.png</file> <file>Icons/queued-and-hashing.png</file>
<file>Icons/skin/remove.png</file> <file>Icons/queued.png</file>
<file>Icons/skin/delete_perm.png</file> <file>Icons/refresh.png</file>
<file>Icons/skin/pause_all.png</file> <file>Icons/rss16.png</file>
<file>Icons/skin/delete_all.png</file> <file>Icons/rss32.png</file>
<file>Icons/skin/stalled.png</file> <file>Icons/smile.png</file>
<file>Icons/skin/downloading.png</file> <file>Icons/sphere.png</file>
<file>Icons/skin/delete.png</file> <file>Icons/sphere2.png</file>
<file>Icons/skin/exit.png</file> <file>Icons/splash.png</file>
<file>Icons/skin/seeding.png</file> <file>Icons/star.png</file>
<file>Icons/skin/paused.png</file> <file>Icons/stare.png</file>
<file>Icons/skin/disconnected.png</file> <file>Icons/style.png</file>
<file>Icons/skin/pause.png</file> <file>Icons/subscribe.png</file>
<file>Icons/flags/turkey.png</file> <file>Icons/subscribe16.png</file>
<file>Icons/flags/portugal.png</file> <file>Icons/systemtray.png</file>
<file>Icons/flags/finland.png</file> <file>Icons/time.png</file>
<file>Icons/flags/ukraine.png</file> <file>Icons/unavailable.png</file>
<file>Icons/flags/bulgaria.png</file> <file>Icons/unhappy.png</file>
<file>Icons/flags/spain_catalunya.png</file> <file>Icons/unsubscribe.png</file>
<file>Icons/unsubscribe16.png</file>
<file>Icons/up-queued.png</file>
<file>Icons/uparrow.png</file>
<file>Icons/url.png</file>
<file>Icons/wizard.png</file>
<file>Icons/flags/brazil.png</file> <file>Icons/flags/brazil.png</file>
<file>Icons/flags/norway.png</file> <file>Icons/flags/bulgaria.png</file>
<file>Icons/flags/slovakia.png</file>
<file>Icons/flags/romania.png</file>
<file>Icons/flags/united_kingdom.png</file>
<file>Icons/flags/netherlands.png</file>
<file>Icons/flags/china.png</file> <file>Icons/flags/china.png</file>
<file>Icons/flags/denmark.png</file> <file>Icons/flags/denmark.png</file>
<file>Icons/flags/hungary.png</file> <file>Icons/flags/finland.png</file>
<file>Icons/flags/greece.png</file>
<file>Icons/flags/spain.png</file>
<file>Icons/flags/italy.png</file>
<file>Icons/flags/germany.png</file>
<file>Icons/flags/russia.png</file>
<file>Icons/flags/japan.png</file>
<file>Icons/flags/south_korea.png</file>
<file>Icons/flags/france.png</file> <file>Icons/flags/france.png</file>
<file>Icons/flags/sweden.png</file> <file>Icons/flags/germany.png</file>
<file>Icons/flags/greece.png</file>
<file>Icons/flags/hungary.png</file>
<file>Icons/flags/italy.png</file>
<file>Icons/flags/japan.png</file>
<file>Icons/flags/netherlands.png</file>
<file>Icons/flags/norway.png</file>
<file>Icons/flags/poland.png</file> <file>Icons/flags/poland.png</file>
<file>Icons/flags/portugal.png</file>
<file>Icons/flags/romania.png</file>
<file>Icons/flags/russia.png</file>
<file>Icons/flags/slovakia.png</file>
<file>Icons/flags/south_korea.png</file>
<file>Icons/flags/spain.png</file>
<file>Icons/flags/spain_catalunya.png</file>
<file>Icons/flags/sweden.png</file>
<file>Icons/flags/turkey.png</file>
<file>Icons/flags/ukraine.png</file>
<file>Icons/flags/united_kingdom.png</file>
<file>Icons/skin/add.png</file>
<file>Icons/skin/connected.png</file>
<file>Icons/skin/connecting.png</file>
<file>Icons/skin/delete.png</file>
<file>Icons/skin/delete_all.png</file>
<file>Icons/skin/delete_perm.png</file>
<file>Icons/skin/disconnected.png</file>
<file>Icons/skin/downloading.png</file>
<file>Icons/skin/exit.png</file>
<file>Icons/skin/firewalled.png</file>
<file>Icons/skin/info.png</file>
<file>Icons/skin/new.png</file>
<file>Icons/skin/open.png</file>
<file>Icons/skin/pause.png</file>
<file>Icons/skin/pause_all.png</file>
<file>Icons/skin/paused.png</file>
<file>Icons/skin/play.png</file>
<file>Icons/skin/play_all.png</file>
<file>Icons/skin/preview.png</file>
<file>Icons/skin/properties.png</file>
<file>Icons/skin/qb_question.png</file>
<file>Icons/skin/remove.png</file>
<file>Icons/skin/search.png</file>
<file>Icons/skin/seeding.png</file>
<file>Icons/skin/settings.png</file>
<file>Icons/skin/stalled.png</file>
<file>Icons/skin/url.png</file>
</qresource> </qresource>
</RCC> </RCC>

View File

@@ -1,29 +1,29 @@
<!DOCTYPE RCC><RCC version="1.0"> <!DOCTYPE RCC><RCC version="1.0">
<qresource> <qresource>
<file>lang/qbittorrent_uk.qm</file> <file>lang/qbittorrent_bg.qm</file>
<file>lang/qbittorrent_tr.qm</file> <file>lang/qbittorrent_ca.qm</file>
<file>lang/qbittorrent_nl.qm</file>
<file>lang/qbittorrent_de.qm</file>
<file>lang/qbittorrent_ru.qm</file>
<file>lang/qbittorrent_fr.qm</file>
<file>lang/qbittorrent_da.qm</file> <file>lang/qbittorrent_da.qm</file>
<file>lang/qbittorrent_de.qm</file>
<file>lang/qbittorrent_el.qm</file>
<file>lang/qbittorrent_en.qm</file>
<file>lang/qbittorrent_es.qm</file>
<file>lang/qbittorrent_fi.qm</file> <file>lang/qbittorrent_fi.qm</file>
<file>lang/qbittorrent_pl.qm</file> <file>lang/qbittorrent_fr.qm</file>
<file>lang/qbittorrent_hu.qm</file>
<file>lang/qbittorrent_it.qm</file>
<file>lang/qbittorrent_ja.qm</file>
<file>lang/qbittorrent_ko.qm</file> <file>lang/qbittorrent_ko.qm</file>
<file>lang/qbittorrent_nb.qm</file> <file>lang/qbittorrent_nb.qm</file>
<file>lang/qbittorrent_sv.qm</file> <file>lang/qbittorrent_nl.qm</file>
<file>lang/qbittorrent_zh.qm</file> <file>lang/qbittorrent_pl.qm</file>
<file>lang/qbittorrent_el.qm</file>
<file>lang/qbittorrent_sk.qm</file>
<file>lang/qbittorrent_ca.qm</file>
<file>lang/qbittorrent_hu.qm</file>
<file>lang/qbittorrent_bg.qm</file>
<file>lang/qbittorrent_it.qm</file>
<file>lang/qbittorrent_pt.qm</file> <file>lang/qbittorrent_pt.qm</file>
<file>lang/qbittorrent_en.qm</file>
<file>lang/qbittorrent_pt_BR.qm</file> <file>lang/qbittorrent_pt_BR.qm</file>
<file>lang/qbittorrent_ja.qm</file>
<file>lang/qbittorrent_ro.qm</file> <file>lang/qbittorrent_ro.qm</file>
<file>lang/qbittorrent_es.qm</file> <file>lang/qbittorrent_ru.qm</file>
<file>lang/qbittorrent_sk.qm</file>
<file>lang/qbittorrent_sv.qm</file>
<file>lang/qbittorrent_tr.qm</file>
<file>lang/qbittorrent_uk.qm</file>
<file>lang/qbittorrent_zh.qm</file>
</qresource> </qresource>
</RCC> </RCC>

Binary file not shown.

File diff suppressed because it is too large Load Diff

Binary file not shown.

View File

@@ -2838,31 +2838,31 @@ Log:
<context> <context>
<name>SearchTab</name> <name>SearchTab</name>
<message> <message>
<location filename="../SearchTab.cpp" line="50"/> <location filename="../SearchTab.cpp" line="51"/>
<source>Name</source> <source>Name</source>
<comment>i.e: file name</comment> <comment>i.e: file name</comment>
<translation type="unfinished">Nom</translation> <translation type="unfinished">Nom</translation>
</message> </message>
<message> <message>
<location filename="../SearchTab.cpp" line="51"/> <location filename="../SearchTab.cpp" line="52"/>
<source>Size</source> <source>Size</source>
<comment>i.e: file size</comment> <comment>i.e: file size</comment>
<translation type="unfinished">Mida</translation> <translation type="unfinished">Mida</translation>
</message> </message>
<message> <message>
<location filename="../SearchTab.cpp" line="52"/> <location filename="../SearchTab.cpp" line="53"/>
<source>Seeders</source> <source>Seeders</source>
<comment>i.e: Number of full sources</comment> <comment>i.e: Number of full sources</comment>
<translation type="unfinished">Seeders</translation> <translation type="unfinished">Seeders</translation>
</message> </message>
<message> <message>
<location filename="../SearchTab.cpp" line="53"/> <location filename="../SearchTab.cpp" line="54"/>
<source>Leechers</source> <source>Leechers</source>
<comment>i.e: Number of partial sources</comment> <comment>i.e: Number of partial sources</comment>
<translation type="unfinished">Leechers</translation> <translation type="unfinished">Leechers</translation>
</message> </message>
<message> <message>
<location filename="../SearchTab.cpp" line="54"/> <location filename="../SearchTab.cpp" line="55"/>
<source>Search engine</source> <source>Search engine</source>
<translation type="unfinished">Motor per cercar</translation> <translation type="unfinished">Motor per cercar</translation>
</message> </message>
@@ -3800,7 +3800,7 @@ However, those plugins were disabled.</source>
<message> <message>
<location filename="../misc.h" line="322"/> <location filename="../misc.h" line="322"/>
<source>Unknown</source> <source>Unknown</source>
<translation>Desconegut</translation> <translation type="obsolete">Desconegut</translation>
</message> </message>
<message> <message>
<location filename="../misc.h" line="110"/> <location filename="../misc.h" line="110"/>
@@ -4601,47 +4601,47 @@ However, those plugins were disabled.</source>
<context> <context>
<name>subDownloadThread</name> <name>subDownloadThread</name>
<message> <message>
<location filename="../downloadThread.cpp" line="32"/> <location filename="../downloadThread.cpp" line="34"/>
<source>Host is unreachable</source> <source>Host is unreachable</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="35"/> <location filename="../downloadThread.cpp" line="37"/>
<source>File was not found (404)</source> <source>File was not found (404)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="39"/> <location filename="../downloadThread.cpp" line="41"/>
<source>Connection was denied</source> <source>Connection was denied</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="41"/> <location filename="../downloadThread.cpp" line="43"/>
<source>Url is invalid</source> <source>Url is invalid</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="51"/> <location filename="../downloadThread.cpp" line="53"/>
<source>Connection failure</source> <source>Connection failure</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="53"/> <location filename="../downloadThread.cpp" line="55"/>
<source>Connection was timed out</source> <source>Connection was timed out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="55"/> <location filename="../downloadThread.cpp" line="57"/>
<source>Incorrect network interface</source> <source>Incorrect network interface</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="57"/> <location filename="../downloadThread.cpp" line="59"/>
<source>Unknown error</source> <source>Unknown error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="43"/> <location filename="../downloadThread.cpp" line="45"/>
<source>Could not resolve proxy</source> <source>Could not resolve proxy</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

Binary file not shown.

View File

@@ -2296,31 +2296,31 @@ Changelog:
<context> <context>
<name>SearchTab</name> <name>SearchTab</name>
<message> <message>
<location filename="../SearchTab.cpp" line="50"/> <location filename="../SearchTab.cpp" line="51"/>
<source>Name</source> <source>Name</source>
<comment>i.e: file name</comment> <comment>i.e: file name</comment>
<translation type="unfinished">Navn</translation> <translation type="unfinished">Navn</translation>
</message> </message>
<message> <message>
<location filename="../SearchTab.cpp" line="51"/> <location filename="../SearchTab.cpp" line="52"/>
<source>Size</source> <source>Size</source>
<comment>i.e: file size</comment> <comment>i.e: file size</comment>
<translation type="unfinished">Størrelse</translation> <translation type="unfinished">Størrelse</translation>
</message> </message>
<message> <message>
<location filename="../SearchTab.cpp" line="52"/> <location filename="../SearchTab.cpp" line="53"/>
<source>Seeders</source> <source>Seeders</source>
<comment>i.e: Number of full sources</comment> <comment>i.e: Number of full sources</comment>
<translation type="unfinished">Seedere</translation> <translation type="unfinished">Seedere</translation>
</message> </message>
<message> <message>
<location filename="../SearchTab.cpp" line="53"/> <location filename="../SearchTab.cpp" line="54"/>
<source>Leechers</source> <source>Leechers</source>
<comment>i.e: Number of partial sources</comment> <comment>i.e: Number of partial sources</comment>
<translation type="unfinished">Leechere</translation> <translation type="unfinished">Leechere</translation>
</message> </message>
<message> <message>
<location filename="../SearchTab.cpp" line="54"/> <location filename="../SearchTab.cpp" line="55"/>
<source>Search engine</source> <source>Search engine</source>
<translation type="unfinished">Søgemaskine</translation> <translation type="unfinished">Søgemaskine</translation>
</message> </message>
@@ -3195,7 +3195,7 @@ However, those plugins were disabled.</source>
<message> <message>
<location filename="../misc.h" line="322"/> <location filename="../misc.h" line="322"/>
<source>Unknown</source> <source>Unknown</source>
<translation>Ukendt</translation> <translation type="obsolete">Ukendt</translation>
</message> </message>
<message> <message>
<location filename="../misc.h" line="110"/> <location filename="../misc.h" line="110"/>
@@ -3826,47 +3826,47 @@ However, those plugins were disabled.</source>
<context> <context>
<name>subDownloadThread</name> <name>subDownloadThread</name>
<message> <message>
<location filename="../downloadThread.cpp" line="32"/> <location filename="../downloadThread.cpp" line="34"/>
<source>Host is unreachable</source> <source>Host is unreachable</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="35"/> <location filename="../downloadThread.cpp" line="37"/>
<source>File was not found (404)</source> <source>File was not found (404)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="39"/> <location filename="../downloadThread.cpp" line="41"/>
<source>Connection was denied</source> <source>Connection was denied</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="41"/> <location filename="../downloadThread.cpp" line="43"/>
<source>Url is invalid</source> <source>Url is invalid</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="51"/> <location filename="../downloadThread.cpp" line="53"/>
<source>Connection failure</source> <source>Connection failure</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="53"/> <location filename="../downloadThread.cpp" line="55"/>
<source>Connection was timed out</source> <source>Connection was timed out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="55"/> <location filename="../downloadThread.cpp" line="57"/>
<source>Incorrect network interface</source> <source>Incorrect network interface</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="57"/> <location filename="../downloadThread.cpp" line="59"/>
<source>Unknown error</source> <source>Unknown error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="43"/> <location filename="../downloadThread.cpp" line="45"/>
<source>Could not resolve proxy</source> <source>Could not resolve proxy</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

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.

View File

@@ -1545,31 +1545,31 @@ Are you sure you want to quit qBittorrent?</source>
<context> <context>
<name>SearchTab</name> <name>SearchTab</name>
<message> <message>
<location filename="../SearchTab.cpp" line="50"/> <location filename="../SearchTab.cpp" line="51"/>
<source>Name</source> <source>Name</source>
<comment>i.e: file name</comment> <comment>i.e: file name</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../SearchTab.cpp" line="51"/> <location filename="../SearchTab.cpp" line="52"/>
<source>Size</source> <source>Size</source>
<comment>i.e: file size</comment> <comment>i.e: file size</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../SearchTab.cpp" line="52"/> <location filename="../SearchTab.cpp" line="53"/>
<source>Seeders</source> <source>Seeders</source>
<comment>i.e: Number of full sources</comment> <comment>i.e: Number of full sources</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../SearchTab.cpp" line="53"/> <location filename="../SearchTab.cpp" line="54"/>
<source>Leechers</source> <source>Leechers</source>
<comment>i.e: Number of partial sources</comment> <comment>i.e: Number of partial sources</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../SearchTab.cpp" line="54"/> <location filename="../SearchTab.cpp" line="55"/>
<source>Search engine</source> <source>Search engine</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
@@ -2278,11 +2278,6 @@ However, those plugins were disabled.</source>
<comment>tebibytes (1024 gibibytes)</comment> <comment>tebibytes (1024 gibibytes)</comment>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message>
<location filename="../misc.h" line="322"/>
<source>Unknown</source>
<translation type="unfinished"></translation>
</message>
<message> <message>
<location filename="../misc.h" line="110"/> <location filename="../misc.h" line="110"/>
<source>Unknown</source> <source>Unknown</source>
@@ -2774,47 +2769,47 @@ However, those plugins were disabled.</source>
<context> <context>
<name>subDownloadThread</name> <name>subDownloadThread</name>
<message> <message>
<location filename="../downloadThread.cpp" line="32"/> <location filename="../downloadThread.cpp" line="34"/>
<source>Host is unreachable</source> <source>Host is unreachable</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="35"/> <location filename="../downloadThread.cpp" line="37"/>
<source>File was not found (404)</source> <source>File was not found (404)</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="39"/> <location filename="../downloadThread.cpp" line="41"/>
<source>Connection was denied</source> <source>Connection was denied</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="41"/> <location filename="../downloadThread.cpp" line="43"/>
<source>Url is invalid</source> <source>Url is invalid</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="51"/> <location filename="../downloadThread.cpp" line="53"/>
<source>Connection failure</source> <source>Connection failure</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="53"/> <location filename="../downloadThread.cpp" line="55"/>
<source>Connection was timed out</source> <source>Connection was timed out</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="55"/> <location filename="../downloadThread.cpp" line="57"/>
<source>Incorrect network interface</source> <source>Incorrect network interface</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="57"/> <location filename="../downloadThread.cpp" line="59"/>
<source>Unknown error</source> <source>Unknown error</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>
<message> <message>
<location filename="../downloadThread.cpp" line="43"/> <location filename="../downloadThread.cpp" line="45"/>
<source>Could not resolve proxy</source> <source>Could not resolve proxy</source>
<translation type="unfinished"></translation> <translation type="unfinished"></translation>
</message> </message>

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