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

Compare commits

..

26 Commits

Author SHA1 Message Date
Christophe Dumez
6cf2b44b8a Tagged v2.2.3 release 2010-04-04 20:05:10 +00:00
Christophe Dumez
ba22fa8331 Bump to v2.2.3 2010-04-04 19:55:16 +00:00
Christophe Dumez
5ce02cb612 Clean fix for progress display with cleanlooks style 2010-03-31 14:36:16 +00:00
Christophe Dumez
1013f39a42 A msvc compilation fix 2010-03-30 19:40:35 +00:00
Christophe Dumez
cd5c4bf464 On Windows, add qBittorrent executable folder to PATH envar 2010-03-30 19:03:12 +00:00
Christophe Dumez
84bfc54b03 Updated Changelog 2010-03-30 12:13:43 +00:00
Christophe Dumez
5b3b5eb2ef Enable Apply button when alternative rate limits are changed 2010-03-30 12:09:51 +00:00
Christophe Dumez
990a863d41 Several compilation and execution fixes for Windows and OS/2
Cleaner binutils gold linker support
2010-03-30 11:39:40 +00:00
Christophe Dumez
7f27d10735 Fix possible error in boost exception handling 2010-03-29 10:44:33 +00:00
Christophe Dumez
1377a75a53 Fix typo 2010-03-27 16:00:47 +00:00
Christophe Dumez
bcd33fc861 ANother Windows fix 2010-03-27 15:58:28 +00:00
Christophe Dumez
46d8fa1656 Another compilation fix 2010-03-27 15:50:50 +00:00
Christophe Dumez
28cf69b84d Windows compilation fix improvement 2010-03-27 09:17:40 +00:00
Christophe Dumez
89389df74d Compilation fix on Windows (getuid missing) 2010-03-27 09:06:01 +00:00
Christophe Dumez
77c29f48cb Fix possible crash when deleting a torrent just after pausing it 2010-03-23 21:42:33 +00:00
Christophe Dumez
c5d92f3d69 FEATURE: DHT port can be set from Web UI 2010-03-22 20:41:36 +00:00
Christophe Dumez
54487c8247 Improvement to last commit 2010-03-22 19:42:47 +00:00
Christophe Dumez
be64008870 Bump to v2.2.2 2010-03-22 19:12:34 +00:00
Christophe Dumez
8113b150dd Updated french translation 2010-03-22 19:07:36 +00:00
Christophe Dumez
4a33367cb0 Fix to last commit 2010-03-22 19:04:48 +00:00
Christophe Dumez
0af5d82114 BUGFIX: Fix possible crash with folder scanning 2010-03-22 18:57:32 +00:00
Christophe Dumez
10c4fd330a I18N: Updated Polish translation (thanks Szymon Świerkosz) 2010-03-22 18:24:32 +00:00
Christophe Dumez
9a30d5a295 Properly raise SIGSEGV/SIGABRT after catching it 2010-03-20 21:44:11 +00:00
Christophe Dumez
724b47d999 Save fast resume data every 3 minutes 2010-03-20 21:25:31 +00:00
Christophe Dumez
2c0f7c33a2 Made M3U files previewable 2010-03-20 19:38:21 +00:00
Christophe Dumez
ce33e266fe Attempt to fix mac compilation 2010-03-20 19:14:17 +00:00
64 changed files with 3931 additions and 3506 deletions

View File

@@ -1,3 +1,18 @@
* Sun Apr 04 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.3
- BUGFIX: Fix possible crash when deleting a torrent just after pausing it
- BUGFIX: Enable Apply button when alternative rate limits are changed
- BUGFIX: Source compatibility with Windows (Thanks Ishan Arora)
- BUGFIX: Source compatibility with eCS (OS/2) (Thanks Silvan Scherrer)
- BUGFIX: Cleaner binutils gold linker support
- BUGFIX: Clean fix for progress display with cleanlooks style
* Mon Mar 22 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.2
- FEATURE: DHT port can be set from Web UI
- BUGFIX: Fix possible crash with folder scanning
- BUGFIX: Fix Mac compilation
- BUGFIX: Save fast resume data every 3 minutes (for robustness)
- I18N: Updated Polish translation (thanks Szymon Świerkosz)
* Sat Mar 20 2010 - Christophe Dumez <chris@qbittorrent.org> - v2.2.1
- FEATURE: Display pieces that are being downloaded
- FEATURE: Added back folder watching in Web UI

45
configure vendored
View File

@@ -21,6 +21,7 @@ Dependency options:
--disable-gui Disable qBittorrent Graphical user
interface for headless running
--with-libboost-inc=[path] Path to libboost include files
--with-libboost-lib=[path] Path to libboost library files
--disable-libnotify Disable use of libnotify
--disable-geoip-database Disable use of geoip-database
--with-geoip-database-embedded Geoip Database will be embedded in
@@ -152,6 +153,11 @@ while [ $# -gt 0 ]; do
shift
;;
--with-libboost-lib=*)
QC_WITH_LIBBOOST_LIB=$optarg
shift
;;
--disable-libnotify)
QC_DISABLE_libnotify="Y"
shift
@@ -190,6 +196,7 @@ echo DATADIR=$DATADIR
echo EX_QTDIR=$EX_QTDIR
echo QC_DISABLE_GUI=$QC_DISABLE_GUI
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
echo QC_DISABLE_geoip_database=$QC_DISABLE_geoip_database
echo QC_WITH_GEOIP_DATABASE_EMBEDDED=$QC_WITH_GEOIP_DATABASE_EMBEDDED
@@ -362,11 +369,13 @@ public:
else
conf->addDefine("LIBTORRENT_0_15");
// Get linking parameters
QStringList params;
QByteArray staticlibs;
params << "--static" << "--libs" << "libtorrent-rasterbar";
conf->doCommand("pkg-config", params, &staticlibs);
conf->addLib(staticlibs.trimmed());
//QStringList params;
//QByteArray staticlibs;
//params << "--static" << "--libs" << "libtorrent-rasterbar";
//conf->doCommand("pkg-config", params, &staticlibs);
//conf->addLib(staticlibs.trimmed());
//libcrypto
conf->addLib("-lcrypto");
return true;
}
};
@@ -375,6 +384,7 @@ public:
-----BEGIN QCMOD-----
name: libboost
arg: with-libboost-inc=[path], Path to libboost include files
arg: with-libboost-lib=[path], Path to libboost library files
-----END QCMOD-----
*/
class qc_libboost : public ConfObj
@@ -424,6 +434,30 @@ public:
}
}
conf->addIncludePath(s);
// Find library
s = conf->getenv("QC_WITH_LIBBOOST_LIB");
if(!s.isEmpty()) {
if(!conf->checkLibrary(s, "boost_system-mt")) {
return false;
}
}else{
QStringList sl;
sl << "/usr/lib/";
sl << "/usr/lib64/";
sl << "/usr/local/lib/";
sl << "/usr/local/lib64/";
bool found = false;
foreach(s, sl){
if(conf->checkLibrary(s, "boost_system-mt")) {
found = true;
break;
}
}
if(!found)
return false;
}
conf->addLib(QString("-L") + s);
conf->addLib("-lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt");
return true;
}
};
@@ -1483,6 +1517,7 @@ export DATADIR
export EX_QTDIR
export QC_DISABLE_GUI
export QC_WITH_LIBBOOST_INC
export QC_WITH_LIBBOOST_LIB
export QC_DISABLE_libnotify
export QC_DISABLE_geoip_database
export QC_WITH_GEOIP_DATABASE_EMBEDDED

View File

@@ -2,6 +2,7 @@
-----BEGIN QCMOD-----
name: libboost
arg: with-libboost-inc=[path], Path to libboost include files
arg: with-libboost-lib=[path], Path to libboost library files
-----END QCMOD-----
*/
class qc_libboost : public ConfObj
@@ -51,6 +52,30 @@ public:
}
}
conf->addIncludePath(s);
// Find library
s = conf->getenv("QC_WITH_LIBBOOST_LIB");
if(!s.isEmpty()) {
if(!conf->checkLibrary(s, "boost_system-mt")) {
return false;
}
}else{
QStringList sl;
sl << "/usr/lib/";
sl << "/usr/lib64/";
sl << "/usr/local/lib/";
sl << "/usr/local/lib64/";
bool found = false;
foreach(s, sl){
if(conf->checkLibrary(s, "boost_system-mt")) {
found = true;
break;
}
}
if(!found)
return false;
}
conf->addLib(QString("-L") + s);
conf->addLib("-lboost_system-mt -lboost_filesystem-mt -lboost_thread-mt");
return true;
}
};

View File

@@ -27,11 +27,13 @@ public:
else
conf->addDefine("LIBTORRENT_0_15");
// Get linking parameters
QStringList params;
QByteArray staticlibs;
params << "--static" << "--libs" << "libtorrent-rasterbar";
conf->doCommand("pkg-config", params, &staticlibs);
conf->addLib(staticlibs.trimmed());
//QStringList params;
//QByteArray staticlibs;
//params << "--static" << "--libs" << "libtorrent-rasterbar";
//conf->doCommand("pkg-config", params, &staticlibs);
//conf->addLib(staticlibs.trimmed());
//libcrypto
conf->addLib("-lcrypto");
return true;
}
};

View File

@@ -66,6 +66,11 @@
#include "propertieswidget.h"
#include "statusbar.h"
#ifdef Q_WS_WIN
#include <windows.h>
const int UNLEN = 256;
#endif
using namespace libtorrent;
#define TIME_TRAY_BALLOON 5000
@@ -161,7 +166,15 @@ GUI::GUI(QWidget *parent, QStringList torrentCmdLine) : QMainWindow(parent), dis
processParams(torrentCmdLine);
// Use a tcp server to allow only one instance of qBittorrent
localServer = new QLocalServer();
QString uid = QString::number(getuid());
QString uid = "";
#ifdef Q_WS_WIN
char buffer[UNLEN+1] = {0};
DWORD buffer_len = UNLEN + 1;
if (!GetUserName(buffer, &buffer_len))
uid = QString(buffer)
#else
uid = QString::number(getuid());
#endif
#ifdef Q_WS_X11
if(QFile::exists(QDir::tempPath()+QDir::separator()+QString("qBittorrent-")+uid)) {
// Socket was not closed cleanly
@@ -815,12 +828,7 @@ void GUI::trackerAuthenticationRequired(QTorrentHandle& h) {
void GUI::updateGUI() {
// update global informations
if(systrayIcon) {
#ifdef Q_WS_WIN
// Windows does not support html here
QString html =tr("DL speed: %1 KiB/s", "e.g: Download speed: 10 KiB/s").arg(QString::number(BTSession->getPayloadDownloadRate()/1024., 'f', 1));
html += "\n";
html += tr("UP speed: %1 KiB/s", "e.g: Upload speed: 10 KiB/s").arg(QString::number(BTSession->getPayloadUploadRate()/1024., 'f', 1));
#else
#if defined(Q_WS_X11) || defined(Q_WS_MAC)
QString html = "<div style='background-color: #678db2; color: #fff;height: 18px; font-weight: bold; margin-bottom: 5px;'>";
html += tr("qBittorrent");
html += "</div>";
@@ -830,6 +838,11 @@ void GUI::updateGUI() {
html += "<div style='vertical-align: baseline; height: 18px;'>";
html += "<img src=':/Icons/skin/seeding.png'/>&nbsp;"+tr("UP speed: %1 KiB/s", "e.g: Upload speed: 10 KiB/s").arg(QString::number(BTSession->getPayloadUploadRate()/1024., 'f', 1));
html += "</div>";
#else
// OSes such as Windows do not support html here
QString html =tr("DL speed: %1 KiB/s", "e.g: Download speed: 10 KiB/s").arg(QString::number(BTSession->getPayloadDownloadRate()/1024., 'f', 1));
html += "\n";
html += tr("UP speed: %1 KiB/s", "e.g: Upload speed: 10 KiB/s").arg(QString::number(BTSession->getPayloadUploadRate()/1024., 'f', 1));
#endif
systrayIcon->setToolTip(html); // tray icon
}

View File

@@ -1,6 +1,6 @@
[Desktop Entry]
Categories=Qt;Network;P2P;
Comment=V2.2.1
Comment=V2.2.3
Exec=qbittorrent %f
GenericName=Bittorrent client
GenericName[bg]=Торент клиент

Binary file not shown.

Before

Width:  |  Height:  |  Size: 79 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

@@ -92,6 +92,9 @@ class about : public QDialog, private Ui::AboutDlg{
te_translation->scrollToAnchor(QString::fromUtf8("top"));
// License
te_license->append(QString::fromUtf8("<a name='top'></a>"));
#ifdef Q_WS_WIN
te_license->append(QString::fromUtf8("qBittorrent is licensed under the GNU General Public License version 2."));
#else
te_license->append(QString::fromUtf8("qBittorrent is licensed under the GNU General Public License version 2 with the\
addition of the following special exception:\
<br><br>\
@@ -438,6 +441,7 @@ exception statement from your version.</i>\
consider it more useful to permit linking proprietary applications with the<br>\
library. If this is what you want to do, use the GNU Library General<br>\
Public License instead of this License.<br>"));
#endif
te_license->scrollToAnchor(QString::fromUtf8("top"));
show();
}

View File

@@ -31,7 +31,6 @@
#include <QDir>
#include <QDateTime>
#include <QString>
#include <QTimer>
#include <QSettings>
#include <stdlib.h>
@@ -132,6 +131,8 @@ Bittorrent::Bittorrent()
timerAlerts = new QTimer();
connect(timerAlerts, SIGNAL(timeout()), this, SLOT(readAlerts()));
timerAlerts->start(3000);
connect(&resumeDataTimer, SIGNAL(timeout()), this, SLOT(saveTempFastResumeData()));
resumeDataTimer.start(180000); // 3min
// To download from urls
downloader = new downloadThread(this);
connect(downloader, SIGNAL(downloadFinished(QString, QString)), this, SLOT(processDownloadedFile(QString, QString)));
@@ -280,12 +281,14 @@ void Bittorrent::configureSession() {
startTorrentsInPause(Preferences::addTorrentsInPause());
// * Scan dirs
const QStringList &scan_dirs = Preferences::getScanDirs();
foreach (const QString &dir, scan_dirs) {
m_scanFolders->addPath(dir);
QVariantList downloadInDirList = Preferences::getDownloadInScanDirs();
while(scan_dirs.size() > downloadInDirList.size()) {
downloadInDirList << QVariant(false);
}
const QVariantList &downloadInDirList = Preferences::getDownloadInScanDirs();
for (int i = 0; i < downloadInDirList.count(); ++i) {
m_scanFolders->setDownloadAtPath(i, downloadInDirList.at(i).toBool());
int i = 0;
foreach (const QString &dir, scan_dirs) {
m_scanFolders->addPath(dir, downloadInDirList.at(i).toBool());
++i;
}
// * Export Dir
const bool newTorrentExport = Preferences::isTorrentExportEnabled();
@@ -1393,10 +1396,23 @@ float Bittorrent::getRealRatio(QString hash) const{
return ratio;
}
void Bittorrent::saveTempFastResumeData() {
std::vector<torrent_handle> torrents = s->get_torrents();
std::vector<torrent_handle>::iterator torrentIT;
for(torrentIT = torrents.begin(); torrentIT != torrents.end(); torrentIT++) {
QTorrentHandle h = QTorrentHandle(*torrentIT);
if(!h.is_valid() || !h.has_metadata() || h.is_seed() || h.is_paused()) continue;
if(h.state() == torrent_status::checking_files || h.state() == torrent_status::queued_for_checking) continue;
qDebug("Saving fastresume data for %s", qPrintable(h.name()));
h.save_resume_data();
}
}
// Only save fast resume data for unfinished and unpaused torrents (Optimization)
// Called periodically and on exit
void Bittorrent::saveFastResumeData() {
// Stop listening for alerts
resumeDataTimer.stop();
timerAlerts->stop();
int num_resume_data = 0;
// Pause session
@@ -1985,12 +2001,11 @@ void Bittorrent::addConsoleMessage(QString msg, QString) {
}
}
#endif
/*else if (torrent_paused_alert* p = dynamic_cast<torrent_paused_alert*>(a.get())) {
QTorrentHandle h(p->handle);
if(h.is_valid()) {
emit torrentPaused(h);
else if (torrent_paused_alert* p = dynamic_cast<torrent_paused_alert*>(a.get())) {
if(p->handle.is_valid()) {
p->handle.save_resume_data();
}
}
}*/
else if (tracker_error_alert* p = dynamic_cast<tracker_error_alert*>(a.get())) {
// Level: fatal
QTorrentHandle h(p->handle);

View File

@@ -41,6 +41,7 @@
#include <QPalette>
#endif
#include <QPointer>
#include <QTimer>
#include <libtorrent/session.hpp>
#include <libtorrent/ip_filter.hpp>
@@ -194,6 +195,7 @@ protected slots:
void deleteBigRatios();
void takeETASamples();
void exportTorrentFiles(QString path);
void saveTempFastResumeData();
signals:
void addedTorrent(QTorrentHandle& h);
@@ -222,6 +224,7 @@ private:
QMap<QUrl, QString> savepath_fromurl;
QHash<QString, QHash<QString, TrackerInfos> > trackersInfos;
QStringList torrentsToPausedAfterChecking;
QTimer resumeDataTimer;
// Ratio
QPointer<QTimer> BigRatioTimer;
// HTTP

View File

@@ -130,25 +130,29 @@ void EventManager::setGlobalPreferences(QVariantMap m) const {
Preferences::setTempPathEnabled(m["temp_path_enabled"].toBool());
if(m.contains("temp_path"))
Preferences::setTempPath(m["temp_path"].toString());
if(m.contains("scan_dirs")) {
if(m.contains("scan_dirs") && m.contains("download_in_scan_dirs")) {
QVariantList download_at_path = m["download_in_scan_dirs"].toList();
QStringList old_folders = Preferences::getScanDirs();
QStringList new_folders = m["scan_dirs"].toStringList();
foreach(const QString &old_folder, old_folders) {
// Update deleted folders
if(!new_folders.contains(old_folder)) {
BTSession->getScanFoldersModel()->removePath(old_folder);
if(download_at_path.size() == new_folders.size()) {
Preferences::setScanDirs(new_folders);
Preferences::setDownloadInScanDirs(download_at_path);
foreach(const QString &old_folder, old_folders) {
// Update deleted folders
if(!new_folders.contains(old_folder)) {
BTSession->getScanFoldersModel()->removePath(old_folder);
}
}
int i = 0;
foreach(const QString &new_folder, new_folders) {
// Update new folders
if(!old_folders.contains(new_folder)) {
BTSession->getScanFoldersModel()->addPath(new_folder, download_at_path.at(i).toBool());
}
++i;
}
}
foreach(const QString &new_folder, new_folders) {
// Update new folders
if(!old_folders.contains(new_folder)) {
BTSession->getScanFoldersModel()->addPath(new_folder);
}
}
Preferences::setScanDirs(new_folders);
}
if(m.contains("download_in_scan_dirs"))
Preferences::setDownloadInScanDirs(m["download_in_scan_dirs"].toList());
if(m.contains("export_dir"))
Preferences::setExportDir(m["export_dir"].toString());
if(m.contains("preallocate_all"))
@@ -185,6 +189,10 @@ void EventManager::setGlobalPreferences(QVariantMap m) const {
// Bittorrent
if(m.contains("dht"))
Preferences::setDHTEnabled(m["dht"].toBool());
if(m.contains("dhtSameAsBT"))
Preferences::setDHTPortSameAsBT(m["dhtSameAsBT"].toBool());
if(m.contains("dht_port"))
Preferences::setDHTPort(m["dht_port"].toInt());
if(m.contains("pex"))
Preferences::setPeXEnabled(m["pex"].toBool());
qDebug("Pex support: %d", (int)m["pex"].toBool());
@@ -270,6 +278,8 @@ QVariantMap EventManager::getGlobalPreferences() const {
data["max_uploads_per_torrent"] = Preferences::getMaxUploadsPerTorrent();
// Bittorrent
data["dht"] = Preferences::isDHTEnabled();
data["dhtSameAsBT"] = Preferences::isDHTPortSameAsBT();
data["dht_port"] = Preferences::getDHTPort();
data["pex"] = Preferences::isPeXEnabled();
data["lsd"] = Preferences::isLSDEnabled();
data["encryption"] = Preferences::getEncryptionSetting();

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

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

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -2574,6 +2574,14 @@ Are you sure you want to quit qBittorrent?</source>
<source>Use alternative speed limits</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Recursive download confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The torrent %1 contains torrent files, do you want to proceed with their download?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HeadlessLoader</name>

Binary file not shown.

View File

@@ -158,23 +158,23 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez&lt;br&gt;(new line)
<name>AdvancedSettings</name>
<message>
<source>Property</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Parametr</translation>
</message>
<message>
<source>Value</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Wartość</translation>
</message>
<message>
<source>Ignore transfer limits on local network</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Ignoruj limity prędkości w sieciach lokalnych</translation>
</message>
<message>
<source>Include TCP/IP overhead in transfer limits</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Ignoruj narzuty protokołu TCP/IP w limitach prędkości</translation>
</message>
<message>
<source>Disk write cache size</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Rozmiar pamięci podręcznej na zapisy</translation>
</message>
<message>
<source> MiB</source>
@@ -190,24 +190,24 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez&lt;br&gt;(new line)
</message>
<message>
<source>Recheck torrents on completion</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Sprawdź torrenty po pobraniu</translation>
</message>
<message>
<source>Transfer list refresh interval</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Okres odświeżania listy transferów</translation>
</message>
<message>
<source> ms</source>
<comment> milliseconds</comment>
<translation type="unfinished"></translation>
<translation type="unfinished">milisekund</translation>
</message>
<message>
<source>Resolve peer countries (GeoIP)</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Odczytuj kraje partnerów (GeoIP)</translation>
</message>
<message>
<source>Resolve peer host names</source>
<translation type="unfinished">Odczytuje nazwy hostów partnerów</translation>
<translation type="unfinished">Odczytuj nazwy hostów partnerów</translation>
</message>
</context>
<context>
@@ -401,11 +401,11 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez&lt;br&gt;(new line)
</message>
<message>
<source>Reason: %1</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Powód: %1</translation>
</message>
<message>
<source>Note: new trackers were added to the existing torrent.</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Uwaga: nowe trackery zostały dodane do istniejącego torrenta.</translation>
</message>
<message>
<source>Note: new URL seeds were added to the existing torrent.</source>
@@ -413,7 +413,7 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez&lt;br&gt;(new line)
</message>
<message>
<source>An I/O error occured, &apos;%1&apos; paused.</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Wystąpił błąd We/Wy, &apos;%1&apos; wstrzymany.</translation>
</message>
</context>
<context>
@@ -2646,10 +2646,18 @@ Czy napewno zamknąć qBittorrent?</translation>
</message>
<message>
<source>Use normal speed limits</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Użyj normalnych limitów prędkości</translation>
</message>
<message>
<source>Use alternative speed limits</source>
<translation type="unfinished">Użyj alternatywnych limitów prędkości</translation>
</message>
<message>
<source>Recursive download confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The torrent %1 contains torrent files, do you want to proceed with their download?</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -2680,7 +2688,7 @@ Czy napewno zamknąć qBittorrent?</translation>
<name>HttpConnection</name>
<message>
<source>Your IP address has been banned after too many failed authentication attempts.</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Twój adres IP został zablokowany po zbyt wielu nieudanych próbach uwierzytelnienia.</translation>
</message>
<message>
<source>D: %1/s - T: %2</source>
@@ -2830,7 +2838,7 @@ No further notices will be issued.</source>
</message>
<message>
<source>Press %1 key to accept and continue...</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Nacisnij klawisz %1 aby zaakceptować i kontynuować...</translation>
</message>
</context>
<context>
@@ -3109,7 +3117,7 @@ No further notices will be issued.</source>
</message>
<message>
<source>Use alternative speed limits</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Użyj alternatywnych limitów prędkości</translation>
</message>
</context>
<context>
@@ -3600,7 +3608,7 @@ QGroupBox {
</message>
<message>
<source>Authentication</source>
<translation type="unfinished">Autentykacja</translation>
<translation type="unfinished">Uwierzytelnianie</translation>
</message>
<message>
<source>Username:</source>
@@ -3709,15 +3717,15 @@ QGroupBox {
</message>
<message>
<source>Speed</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Prędkość</translation>
</message>
<message>
<source>Global speed limits</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Ogólne limity prędkości</translation>
</message>
<message>
<source>Alternative global speed limits</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Alternatywne ogólne limity prędkości</translation>
</message>
<message>
<source>Scheduled times:</source>
@@ -3730,11 +3738,11 @@ QGroupBox {
</message>
<message>
<source>On days:</source>
<translation type="unfinished"></translation>
<translation type="unfinished">W dniach:</translation>
</message>
<message>
<source>Every day</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Codziennie</translation>
</message>
<message>
<source>Week days</source>
@@ -3746,23 +3754,23 @@ QGroupBox {
</message>
<message>
<source>Advanced</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Zaawansowane</translation>
</message>
<message>
<source>Copy .torrent files to:</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Kopiuj pliki .torrent do:</translation>
</message>
<message>
<source>Check Folders for .torrent Files:</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Sprawdź katalogi w poszukowaniu plików .torrent:</translation>
</message>
<message>
<source>Add folder ...</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Dodaj katalog ...</translation>
</message>
<message>
<source>Remove folder</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Usuń katalog</translation>
</message>
</context>
<context>
@@ -4335,11 +4343,11 @@ p, li { white-space: pre-wrap; }
<name>ScanFoldersModel</name>
<message>
<source>Watched Folder</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Obserwowany katalog</translation>
</message>
<message>
<source>Download here</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Pobierz tutaj</translation>
</message>
</context>
<context>
@@ -4622,11 +4630,11 @@ Zmiany:
</message>
<message>
<source>Click to disable alternative speed limits</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Kliknij, aby wyłączyć alternatywne limity prędkości</translation>
</message>
<message>
<source>Click to enable alternative speed limits</source>
<translation type="unfinished"></translation>
<translation type="unfinished">Kliknij, aby włączyć alternatywne limity prędkości</translation>
</message>
</context>
<context>

View File

@@ -2528,6 +2528,14 @@ Está certo que quer sair do qBittorrent?</translation>
<source>Use alternative speed limits</source>
<translation>Usar limite de velocidade alternativo</translation>
</message>
<message>
<source>Recursive download confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The torrent %1 contains torrent files, do you want to proceed with their download?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HeadlessLoader</name>

View File

@@ -2528,6 +2528,14 @@ Está certo que quer sair do qBittorrent?</translation>
<source>Use alternative speed limits</source>
<translation>Usar limite de velocidade alternativo</translation>
</message>
<message>
<source>Recursive download confirmation</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>The torrent %1 contains torrent files, do you want to proceed with their download?</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>HeadlessLoader</name>

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