You've already forked qBittorrent
mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-10-19 05:12:18 +02:00
Compare commits
26 Commits
release-2.
...
release-2.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
6cf2b44b8a | ||
![]() |
ba22fa8331 | ||
![]() |
5ce02cb612 | ||
![]() |
1013f39a42 | ||
![]() |
cd5c4bf464 | ||
![]() |
84bfc54b03 | ||
![]() |
5b3b5eb2ef | ||
![]() |
990a863d41 | ||
![]() |
7f27d10735 | ||
![]() |
1377a75a53 | ||
![]() |
bcd33fc861 | ||
![]() |
46d8fa1656 | ||
![]() |
28cf69b84d | ||
![]() |
89389df74d | ||
![]() |
77c29f48cb | ||
![]() |
c5d92f3d69 | ||
![]() |
54487c8247 | ||
![]() |
be64008870 | ||
![]() |
8113b150dd | ||
![]() |
4a33367cb0 | ||
![]() |
0af5d82114 | ||
![]() |
10c4fd330a | ||
![]() |
9a30d5a295 | ||
![]() |
724b47d999 | ||
![]() |
2c0f7c33a2 | ||
![]() |
ce33e266fe |
15
Changelog
15
Changelog
@@ -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
45
configure
vendored
@@ -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
|
||||
|
@@ -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;
|
||||
}
|
||||
};
|
||||
|
@@ -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;
|
||||
}
|
||||
};
|
||||
|
27
src/GUI.cpp
27
src/GUI.cpp
@@ -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'/> "+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
|
||||
}
|
||||
|
@@ -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 |
@@ -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();
|
||||
}
|
||||
|
@@ -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);
|
||||
|
@@ -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
|
||||
|
@@ -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
@@ -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.
@@ -158,23 +158,23 @@ Wszystkie prawa zastrżeżone © 2006 Christophe Dumez<br>(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<br>(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<br>(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<br>(new line)
|
||||
</message>
|
||||
<message>
|
||||
<source>An I/O error occured, '%1' paused.</source>
|
||||
<translation type="unfinished"></translation>
|
||||
<translation type="unfinished">Wystąpił błąd We/Wy, '%1' 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>
|
||||
|
@@ -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>
|
||||
|
@@ -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
Reference in New Issue
Block a user