You've already forked qBittorrent
mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-10-07 09:52:18 +02:00
Compare commits
17 Commits
release-4.
...
release-3.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
14b3414e9d | ||
![]() |
73254962f1 | ||
![]() |
74f042516b | ||
![]() |
8c0853248c | ||
![]() |
80ea0a67b5 | ||
![]() |
6d2b51203c | ||
![]() |
8ac82156b3 | ||
![]() |
c1806b099a | ||
![]() |
1046c816bf | ||
![]() |
cfbb5ecde5 | ||
![]() |
afdec02674 | ||
![]() |
927e6bc6cc | ||
![]() |
e862d3332c | ||
![]() |
699144a83d | ||
![]() |
1792f44bfa | ||
![]() |
64e4095ef1 | ||
![]() |
1d1ffcec7c |
@@ -1,3 +1,10 @@
|
||||
* Tue Aug 21 2012 - Christophe Dumez <chris@qbittorrent.org> - v3.0.1
|
||||
- BUGFIX: Fix possible crash when adding a tracker to a magnet torrent without metadata (Closes #1034254)
|
||||
- BUGFIX: Remember queue position for torrents without metadata (closes #17)
|
||||
- BUGFIX: Fix crash when using unauthorized characters in label names (closes #19)
|
||||
- BUGFIX: Fix search plugins updating (closes #25)
|
||||
- BUGFIX: Make uTP connections rate limited by default
|
||||
|
||||
* Thu Aug 09 2012 - Christophe Dumez <chris@qbittorrent.org> - v3.0.0
|
||||
- FEATURE: Brand new torrent addition dialog
|
||||
- FEATURE: Add the ability to choose the save path when using magnet links (mutoso)
|
||||
|
@@ -45,7 +45,7 @@
|
||||
<key>CFBundlePackageType</key>
|
||||
<string>APPL</string>
|
||||
<key>CFBundleShortVersionString</key>
|
||||
<string>3.0.0</string>
|
||||
<string>3.0.1</string>
|
||||
<key>CFBundleSignature</key>
|
||||
<string>qBit</string>
|
||||
<key>CFBundleExecutable</key>
|
||||
|
@@ -66,9 +66,6 @@
|
||||
|
||||
using namespace libtorrent;
|
||||
|
||||
// EXT2/3/4 file systems support a maximum of 255 bytes for filenames.
|
||||
const int MAX_FILENAME_BYTES = 255;
|
||||
|
||||
/**
|
||||
* Converts a path to a string suitable for display.
|
||||
* This function makes sure the directory separator used is consistent
|
||||
@@ -204,54 +201,6 @@ qint64 fsutils::computePathSize(const QString& path)
|
||||
return size;
|
||||
}
|
||||
|
||||
/**
|
||||
* Fixes the given file path by shortening the file names if too long.
|
||||
*/
|
||||
QString fsutils::fixFileNames(const QString& path)
|
||||
{
|
||||
QByteArray raw_path = path.toLocal8Bit();
|
||||
raw_path.replace("\\", "/");
|
||||
QList<QByteArray> parts = raw_path.split('/');
|
||||
if (parts.isEmpty()) return path;
|
||||
QByteArray last_part = parts.takeLast();
|
||||
|
||||
QList<QByteArray>::iterator it = parts.begin();
|
||||
QList<QByteArray>::iterator itend = parts.end();
|
||||
for ( ; it != itend; ++it) {
|
||||
// Make sure the filename is not too long
|
||||
if (it->size() > MAX_FILENAME_BYTES) {
|
||||
qWarning() << "Folder" << *it << "was cut because it was too long";
|
||||
it->resize(MAX_FILENAME_BYTES);
|
||||
qWarning() << "New folder name is" << *it;
|
||||
Q_ASSERT(it->length() == MAX_FILENAME_BYTES);
|
||||
}
|
||||
}
|
||||
// Fix the last part (file name)
|
||||
qDebug() << "Last part length:" << last_part.length();
|
||||
if (last_part.length() > MAX_FILENAME_BYTES) {
|
||||
qWarning() << "Filename" << last_part << "was cut because it was too long";
|
||||
// Shorten the name, keep the file extension
|
||||
const int point_index = last_part.lastIndexOf(".");
|
||||
QByteArray extension = "";
|
||||
if (point_index >= 0) {
|
||||
extension = last_part.mid(point_index);
|
||||
last_part = last_part.left(point_index);
|
||||
}
|
||||
last_part.resize(MAX_FILENAME_BYTES - extension.length());
|
||||
last_part += extension;
|
||||
Q_ASSERT(last_part.length() == MAX_FILENAME_BYTES);
|
||||
qWarning() << "New file name is" << last_part;
|
||||
}
|
||||
|
||||
QString ret;
|
||||
foreach(const QByteArray& part, parts) {
|
||||
ret += QString::fromLocal8Bit(part.constData()) + "/";
|
||||
}
|
||||
ret += QString::fromLocal8Bit(last_part.constData());
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* Makes deep comparison of two files to make sure they are identical.
|
||||
*/
|
||||
|
@@ -46,7 +46,6 @@ static QString toDisplayPath(const QString& path);
|
||||
static QString fileExtension(const QString& filename);
|
||||
static QString fileName(const QString& file_path);
|
||||
static qint64 computePathSize(const QString& path);
|
||||
static QString fixFileNames(const QString& path);
|
||||
static bool sameFiles(const QString& path1, const QString& path2);
|
||||
static QString updateLabelInSavePath(QString defaultSavePath, QString save_path, const QString& old_label, const QString& new_label);
|
||||
static QString toValidFileSystemName(QString filename);
|
||||
|
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
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
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
@@ -509,7 +509,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>482</width>
|
||||
<width>486</width>
|
||||
<height>952</height>
|
||||
</rect>
|
||||
</property>
|
||||
@@ -969,7 +969,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>474</width>
|
||||
<width>486</width>
|
||||
<height>577</height>
|
||||
</rect>
|
||||
</property>
|
||||
@@ -1413,7 +1413,7 @@
|
||||
<rect>
|
||||
<x>0</x>
|
||||
<y>0</y>
|
||||
<width>363</width>
|
||||
<width>486</width>
|
||||
<height>480</height>
|
||||
</rect>
|
||||
</property>
|
||||
@@ -1987,7 +1987,7 @@
|
||||
<item>
|
||||
<widget class="QLabel" name="label_anonymous">
|
||||
<property name="text">
|
||||
<string> (<a href="http://sourceforge.net/apps/mediawiki/qbittorrent/index.php?title=Anonymous_mode">More information</a>)</string>
|
||||
<string> (<a href="http://github.com/qbittorrent/qBittorrent/wiki/Anonymous-Mode">More information</a>)</string>
|
||||
</property>
|
||||
</widget>
|
||||
</item>
|
||||
|
@@ -559,11 +559,11 @@ public:
|
||||
}
|
||||
|
||||
bool isuTPRateLimited() const {
|
||||
return value(QString::fromUtf8("Preferences/Bittorrent/uTP_rate_limiting"), false).toBool();
|
||||
return value(QString::fromUtf8("Preferences/Bittorrent/uTP_rate_limited"), true).toBool();
|
||||
}
|
||||
|
||||
void setuTPRateLimited(bool enabled) {
|
||||
setValue("Preferences/Bittorrent/uTP_rate_limiting", enabled);
|
||||
setValue("Preferences/Bittorrent/uTP_rate_limited", enabled);
|
||||
}
|
||||
|
||||
bool isDHTEnabled() const {
|
||||
|
@@ -396,7 +396,9 @@ void PropertiesWidget::loadDynamicData() {
|
||||
filesList->setUpdatesEnabled(true);
|
||||
}
|
||||
}
|
||||
} catch(invalid_handle e) {}
|
||||
} catch(const invalid_handle& e) {
|
||||
qWarning() << "Caught exception in PropertiesWidget::loadDynamicData(): " << e.what();
|
||||
}
|
||||
}
|
||||
|
||||
void PropertiesWidget::loadUrlSeeds() {
|
||||
|
@@ -186,6 +186,28 @@ void TrackerList::clear() {
|
||||
}
|
||||
|
||||
void TrackerList::loadStickyItems(const QTorrentHandle &h) {
|
||||
// load DHT information
|
||||
if (QBtSession::instance()->isDHTEnabled() && (!h.has_metadata() || !h.priv())) {
|
||||
dht_item->setText(COL_STATUS, tr("Working"));
|
||||
} else {
|
||||
dht_item->setText(COL_STATUS, tr("Disabled"));
|
||||
}
|
||||
if (h.has_metadata() && h.priv()) {
|
||||
dht_item->setText(COL_MSG, tr("This torrent is private"));
|
||||
}
|
||||
|
||||
// Load PeX Information
|
||||
if (QBtSession::instance()->isPexEnabled())
|
||||
pex_item->setText(COL_STATUS, tr("Working"));
|
||||
else
|
||||
pex_item->setText(COL_STATUS, tr("Disabled"));
|
||||
|
||||
// Load LSD Information
|
||||
if (QBtSession::instance()->isLSDEnabled())
|
||||
lsd_item->setText(COL_STATUS, tr("Working"));
|
||||
else
|
||||
lsd_item->setText(COL_STATUS, tr("Disabled"));
|
||||
|
||||
// XXX: libtorrent should provide this info...
|
||||
// Count peers from DHT, LSD, PeX
|
||||
uint nb_dht = 0, nb_lsd = 0, nb_pex = 0;
|
||||
@@ -201,27 +223,8 @@ void TrackerList::loadStickyItems(const QTorrentHandle &h) {
|
||||
if (it->source & peer_info::pex)
|
||||
++nb_pex;
|
||||
}
|
||||
// load DHT information
|
||||
if (QBtSession::instance()->isDHTEnabled() && !h.priv()) {
|
||||
dht_item->setText(COL_STATUS, tr("Working"));
|
||||
} else {
|
||||
dht_item->setText(COL_STATUS, tr("Disabled"));
|
||||
}
|
||||
dht_item->setText(COL_PEERS, QString::number(nb_dht));
|
||||
if (h.has_metadata() && h.priv()) {
|
||||
dht_item->setText(COL_MSG, tr("This torrent is private"));
|
||||
}
|
||||
// Load PeX Information
|
||||
if (QBtSession::instance()->isPexEnabled())
|
||||
pex_item->setText(COL_STATUS, tr("Working"));
|
||||
else
|
||||
pex_item->setText(COL_STATUS, tr("Disabled"));
|
||||
pex_item->setText(COL_PEERS, QString::number(nb_pex));
|
||||
// Load LSD Information
|
||||
if (QBtSession::instance()->isLSDEnabled())
|
||||
lsd_item->setText(COL_STATUS, tr("Working"));
|
||||
else
|
||||
lsd_item->setText(COL_STATUS, tr("Disabled"));
|
||||
lsd_item->setText(COL_PEERS, QString::number(nb_lsd));
|
||||
}
|
||||
|
||||
|
File diff suppressed because it is too large
Load Diff
@@ -46,7 +46,7 @@
|
||||
#include <QTemporaryFile>
|
||||
|
||||
enum EngineColumns {ENGINE_NAME, ENGINE_URL, ENGINE_STATE, ENGINE_ID};
|
||||
const QString UPDATE_URL = QString("https://raw.github.com/cdumez/qBittorrent/master/src/searchengine/") + (misc::pythonVersion() >= 3 ? "nova3" : "nova") + "/engines/";
|
||||
const QString UPDATE_URL = QString("https://raw.github.com/qbittorrent/qBittorrent/master/src/searchengine/") + (misc::pythonVersion() >= 3 ? "nova3" : "nova") + "/engines/";
|
||||
|
||||
engineSelectDlg::engineSelectDlg(QWidget *parent, SupportedEngines *supported_engines) : QDialog(parent), supported_engines(supported_engines) {
|
||||
setupUi(this);
|
||||
|
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user