1
mirror of https://github.com/qbittorrent/qBittorrent synced 2025-10-26 06:12:17 +01:00

Compare commits

..

1 Commits

Author SHA1 Message Date
Christophe Dumez
a4f62b4e18 Tagged v2.2.1 release 2010-03-20 17:43:18 +00:00
50 changed files with 3333 additions and 3734 deletions

View File

@@ -1,10 +1,3 @@
* 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

View File

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

Binary file not shown.

Before

Width:  |  Height:  |  Size: 78 KiB

After

Width:  |  Height:  |  Size: 79 KiB

View File

@@ -31,6 +31,7 @@
#include <QDir>
#include <QDateTime>
#include <QString>
#include <QTimer>
#include <QSettings>
#include <stdlib.h>
@@ -131,8 +132,6 @@ 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)));
@@ -281,14 +280,12 @@ void Bittorrent::configureSession() {
startTorrentsInPause(Preferences::addTorrentsInPause());
// * Scan dirs
const QStringList &scan_dirs = Preferences::getScanDirs();
QVariantList downloadInDirList = Preferences::getDownloadInScanDirs();
while(scan_dirs.size() > downloadInDirList.size()) {
downloadInDirList << QVariant(false);
}
int i = 0;
foreach (const QString &dir, scan_dirs) {
m_scanFolders->addPath(dir, downloadInDirList.at(i).toBool());
++i;
m_scanFolders->addPath(dir);
}
const QVariantList &downloadInDirList = Preferences::getDownloadInScanDirs();
for (int i = 0; i < downloadInDirList.count(); ++i) {
m_scanFolders->setDownloadAtPath(i, downloadInDirList.at(i).toBool());
}
// * Export Dir
const bool newTorrentExport = Preferences::isTorrentExportEnabled();
@@ -1396,23 +1393,10 @@ 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
@@ -2001,9 +1985,12 @@ void Bittorrent::addConsoleMessage(QString msg, QString) {
}
}
#endif
else if (torrent_paused_alert* p = dynamic_cast<torrent_paused_alert*>(a.get())) {
p->handle.save_resume_data();
/*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 (tracker_error_alert* p = dynamic_cast<tracker_error_alert*>(a.get())) {
// Level: fatal
QTorrentHandle h(p->handle);

View File

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

View File

@@ -130,29 +130,25 @@ 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") && m.contains("download_in_scan_dirs")) {
QVariantList download_at_path = m["download_in_scan_dirs"].toList();
if(m.contains("scan_dirs")) {
QStringList old_folders = Preferences::getScanDirs();
QStringList new_folders = m["scan_dirs"].toStringList();
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 &old_folder, old_folders) {
// Update deleted folders
if(!new_folders.contains(old_folder)) {
BTSession->getScanFoldersModel()->removePath(old_folder);
}
}
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"))
@@ -189,10 +185,6 @@ 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());
@@ -278,8 +270,6 @@ 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,14 +2574,6 @@ 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">Parametr</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Value</source>
<translation type="unfinished">Wartość</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ignore transfer limits on local network</source>
<translation type="unfinished">Ignoruj limity prędkości w sieciach lokalnych</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Include TCP/IP overhead in transfer limits</source>
<translation type="unfinished">Ignoruj narzuty protokołu TCP/IP w limitach prędkości</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Disk write cache size</source>
<translation type="unfinished">Rozmiar pamięci podręcznej na zapisy</translation>
<translation type="unfinished"></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">Sprawdź torrenty po pobraniu</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Transfer list refresh interval</source>
<translation type="unfinished">Okres odświeżania listy transferów</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source> ms</source>
<comment> milliseconds</comment>
<translation type="unfinished">milisekund</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Resolve peer countries (GeoIP)</source>
<translation type="unfinished">Odczytuj kraje partnerów (GeoIP)</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Resolve peer host names</source>
<translation type="unfinished">Odczytuj nazwy hostów partnerów</translation>
<translation type="unfinished">Odczytuje 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">Powód: %1</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Note: new trackers were added to the existing torrent.</source>
<translation type="unfinished">Uwaga: nowe trackery zostały dodane do istniejącego torrenta.</translation>
<translation type="unfinished"></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">Wystąpił błąd We/Wy, &apos;%1&apos; wstrzymany.</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -2646,18 +2646,10 @@ Czy napewno zamknąć qBittorrent?</translation>
</message>
<message>
<source>Use normal speed limits</source>
<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>
<source>Use alternative speed limits</source>
<translation type="unfinished"></translation>
</message>
</context>
@@ -2688,7 +2680,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">Twój adres IP został zablokowany po zbyt wielu nieudanych próbach uwierzytelnienia.</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>D: %1/s - T: %2</source>
@@ -2838,7 +2830,7 @@ No further notices will be issued.</source>
</message>
<message>
<source>Press %1 key to accept and continue...</source>
<translation type="unfinished">Nacisnij klawisz %1 aby zaakceptować i kontynuować...</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -3117,7 +3109,7 @@ No further notices will be issued.</source>
</message>
<message>
<source>Use alternative speed limits</source>
<translation type="unfinished">Użyj alternatywnych limitów prędkości</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -3608,7 +3600,7 @@ QGroupBox {
</message>
<message>
<source>Authentication</source>
<translation type="unfinished">Uwierzytelnianie</translation>
<translation type="unfinished">Autentykacja</translation>
</message>
<message>
<source>Username:</source>
@@ -3717,15 +3709,15 @@ QGroupBox {
</message>
<message>
<source>Speed</source>
<translation type="unfinished">Prędkość</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Global speed limits</source>
<translation type="unfinished">Ogólne limity prędkości</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Alternative global speed limits</source>
<translation type="unfinished">Alternatywne ogólne limity prędkości</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Scheduled times:</source>
@@ -3738,11 +3730,11 @@ QGroupBox {
</message>
<message>
<source>On days:</source>
<translation type="unfinished">W dniach:</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Every day</source>
<translation type="unfinished">Codziennie</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Week days</source>
@@ -3754,23 +3746,23 @@ QGroupBox {
</message>
<message>
<source>Advanced</source>
<translation type="unfinished">Zaawansowane</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Copy .torrent files to:</source>
<translation type="unfinished">Kopiuj pliki .torrent do:</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Check Folders for .torrent Files:</source>
<translation type="unfinished">Sprawdź katalogi w poszukowaniu plików .torrent:</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Add folder ...</source>
<translation type="unfinished">Dodaj katalog ...</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Remove folder</source>
<translation type="unfinished">Usuń katalog</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -4343,11 +4335,11 @@ p, li { white-space: pre-wrap; }
<name>ScanFoldersModel</name>
<message>
<source>Watched Folder</source>
<translation type="unfinished">Obserwowany katalog</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Download here</source>
<translation type="unfinished">Pobierz tutaj</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>
@@ -4630,11 +4622,11 @@ Zmiany:
</message>
<message>
<source>Click to disable alternative speed limits</source>
<translation type="unfinished">Kliknij, aby wyłączyć alternatywne limity prędkości</translation>
<translation type="unfinished"></translation>
</message>
<message>
<source>Click to enable alternative speed limits</source>
<translation type="unfinished">Kliknij, aby włączyć alternatywne limity prędkości</translation>
<translation type="unfinished"></translation>
</message>
</context>
<context>

View File

@@ -2528,14 +2528,6 @@ 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,14 +2528,6 @@ 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

@@ -2466,14 +2466,6 @@ Sunteți siguri că doriți să închideți qBittorrent?</translation>
<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>

View File

@@ -2635,14 +2635,6 @@ Are you sure you want to quit qBittorrent?</source>
<source>Use alternative speed limits</source>
<translation>Использовать альтернативные лимиты скорости</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

@@ -2554,14 +2554,6 @@ Ste si istý, že chcete ukončiť Bittorrent?</translation>
<source>Use alternative speed limits</source>
<translation>Používať alternatívne rýchlostné obmedzenia</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

@@ -1201,14 +1201,6 @@ Are you sure you want to quit qBittorrent?</source>
<source>Options were saved successfully.</source>
<translation>Опције када је сачуван успешно.</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

@@ -1611,14 +1611,6 @@ Are you sure you want to quit qBittorrent?</source>
<source>Use alternative speed limits</source>
<translation>Använd alternativa hastighetsgränser</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