You've already forked qBittorrent
mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-10-09 18:32:15 +02:00
Compare commits
143 Commits
release-3.
...
release-3.
Author | SHA1 | Date | |
---|---|---|---|
![]() |
99a596ab8d | ||
![]() |
9a74b27a85 | ||
![]() |
b12f250642 | ||
![]() |
2dede108e7 | ||
![]() |
7cf1e7b8ca | ||
![]() |
e1934e8c16 | ||
![]() |
14b958216b | ||
![]() |
1120c14890 | ||
![]() |
88075d9226 | ||
![]() |
36464fcd59 | ||
![]() |
f7f1c81238 | ||
![]() |
b8da4bcf74 | ||
![]() |
bf7a6aceb0 | ||
![]() |
3ef2da898b | ||
![]() |
d0cd939143 | ||
![]() |
e36d76d457 | ||
![]() |
daa4314093 | ||
![]() |
f707d6c9d5 | ||
![]() |
83b6619b16 | ||
![]() |
8b322648c8 | ||
![]() |
d159117965 | ||
![]() |
1fd2dce0bd | ||
![]() |
f97238e1c9 | ||
![]() |
67355810ae | ||
![]() |
7246b0c254 | ||
![]() |
03345b95c1 | ||
![]() |
16f6e26f67 | ||
![]() |
5e643ffefd | ||
![]() |
0bd4308d0f | ||
![]() |
c78ad12144 | ||
![]() |
cb838edb50 | ||
![]() |
8fac3c793d | ||
![]() |
26896de9ad | ||
![]() |
238715ad22 | ||
![]() |
a3710251a7 | ||
![]() |
f6634ccacd | ||
![]() |
e4df557208 | ||
![]() |
355c55452a | ||
![]() |
87350e3842 | ||
![]() |
0031cfc60a | ||
![]() |
d0374dd425 | ||
![]() |
d8c8d51386 | ||
![]() |
5740c933fb | ||
![]() |
1f13dd0cc3 | ||
![]() |
84d9fc2da2 | ||
![]() |
47ec418e9c | ||
![]() |
72ca101830 | ||
![]() |
0625ef62c1 | ||
![]() |
8161185b08 | ||
![]() |
739132ec82 | ||
![]() |
cf61dd3d09 | ||
![]() |
82768e2098 | ||
![]() |
3b9dc7add2 | ||
![]() |
af2145d567 | ||
![]() |
d7d604d83a | ||
![]() |
9aaf958fad | ||
![]() |
20204ac4c4 | ||
![]() |
0c3d5f0430 | ||
![]() |
820a558bca | ||
![]() |
19ac362103 | ||
![]() |
f64e8f9459 | ||
![]() |
bc77a7c2d1 | ||
![]() |
1a7f2b29b7 | ||
![]() |
037aaf752e | ||
![]() |
5cb04f9b31 | ||
![]() |
ac166a89ae | ||
![]() |
cd9515982d | ||
![]() |
808a4d7e9b | ||
![]() |
f75f5616b1 | ||
![]() |
da81d3351d | ||
![]() |
9d05d864e2 | ||
![]() |
9aee1632ae | ||
![]() |
714cfe3241 | ||
![]() |
ddbe5b18d5 | ||
![]() |
15a948675b | ||
![]() |
cea3f71e61 | ||
![]() |
d04f829e35 | ||
![]() |
e252c19342 | ||
![]() |
2f0d6815c9 | ||
![]() |
54eaf51880 | ||
![]() |
6f5f661f30 | ||
![]() |
8659fec3f2 | ||
![]() |
2cf8b86dad | ||
![]() |
0b0e9675c4 | ||
![]() |
8267bd6434 | ||
![]() |
6593cb774d | ||
![]() |
fcee431dee | ||
![]() |
60d7e3ef30 | ||
![]() |
dac8e20aad | ||
![]() |
d845b57ad1 | ||
![]() |
a9310e0f19 | ||
![]() |
6c56e9736c | ||
![]() |
b63915f10a | ||
![]() |
bf173d894c | ||
![]() |
d11e0f523c | ||
![]() |
e09d75f68e | ||
![]() |
077006d4d6 | ||
![]() |
092a1d4f33 | ||
![]() |
0047ba5dc5 | ||
![]() |
42efa21ef3 | ||
![]() |
09538393a6 | ||
![]() |
2b6ee130a2 | ||
![]() |
b14777584e | ||
![]() |
d8c40084a7 | ||
![]() |
4aa9ed946f | ||
![]() |
b6ef38e7a7 | ||
![]() |
0f900268da | ||
![]() |
c1831a4e97 | ||
![]() |
6d961cdcc5 | ||
![]() |
292e077562 | ||
![]() |
e2bebdf57b | ||
![]() |
db6cc8336b | ||
![]() |
1af271653a | ||
![]() |
bd1a34bebe | ||
![]() |
7ccefae3f8 | ||
![]() |
f4a9597ae8 | ||
![]() |
41e5216371 | ||
![]() |
b41b044d02 | ||
![]() |
8d5cfcdabd | ||
![]() |
ef58c08876 | ||
![]() |
52f59371cf | ||
![]() |
311e78d016 | ||
![]() |
d1c514ea3e | ||
![]() |
3974861955 | ||
![]() |
af04d80d93 | ||
![]() |
de9d675d3d | ||
![]() |
b734532b18 | ||
![]() |
bfd864efce | ||
![]() |
573b0d921e | ||
![]() |
758e357fc5 | ||
![]() |
0b235dc968 | ||
![]() |
8305d8ff64 | ||
![]() |
534a94310d | ||
![]() |
26e6787e85 | ||
![]() |
c659a180d2 | ||
![]() |
632faf55be | ||
![]() |
5c7bc46451 | ||
![]() |
6932c960da | ||
![]() |
a4d9e65d38 | ||
![]() |
ab83c2fff5 | ||
![]() |
106f5d7cc0 | ||
![]() |
11943f6b88 | ||
![]() |
665e0967a5 |
96
Changelog
96
Changelog
@@ -1,3 +1,99 @@
|
||||
* Wed Oct 22 2014 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.1.11
|
||||
- FEATURE: Allow relative torrent paths when qBittorrent is already running (pmzqla)
|
||||
- FEATURE: Make Windows icons suitable for high dpi screens (pmzqla)
|
||||
- FEATURE: Increase maximum size of system icons (pmzqla)
|
||||
- BUGFIX: Fix crash in the "Content" widget when user would right click in it without a torrent selected (Ivan Sorokin)
|
||||
- BUGFIX: Don't show multiple unlock UI dialogs. Closes #2040. (sledgehammer999)
|
||||
- SEARCH: Fix bug where python would falsely be detected and nothing worked (paolo-sz)
|
||||
- SEARCH: Fix TorrentReactor search plugin (Bruno Barbieri)
|
||||
- SEARCH: Fix search engine encoding issues with python3 on Windows (Bruno Barbieri)
|
||||
- SEARCH: Pirate bay search engine update (DoumanAsh)
|
||||
- SEARCH: Internal improvements in the python code (Bruno Barbieri)
|
||||
- WINDOWS: Fix magnet link association. Closes #1952. (sledgehammer999)
|
||||
- WINDOWS and OSX: Fix again the program updater. The url was changed by sourceforge.net. Closes #1954. (sledgehammer999)
|
||||
- OSX: Fix compilation (sledgehammer999)
|
||||
- WEBUI: Set correct HTTP Content-Type in case of forbidden access. (pmzqla)
|
||||
- COSMETIC: Remove unneeded tooltip (pmzqla)
|
||||
- COSMETIC: Don't stretch the last section in the transfer list (pmzqla)
|
||||
- COSMETIC: Set minimum width of the left panel in the preferences (pmzqla)
|
||||
- OTHER: Optimize sorting of rows. This should have less CPU impact when many torrents are present. (Ivan Sorokin)
|
||||
- OTHER: Use the correct character encoding for exceptions coming from libtorrent. (sledgehammer999)
|
||||
- OTHER: Use boost:bind() as the docs show. Allows compilation with older gcc versions. (sledgehammer999)
|
||||
|
||||
* Sun Sep 21 2014 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.1.10
|
||||
- FEATURE: Allow disabling of OS cache. This will prevent RAM increases on Windows when seeding many files. Closes #1699. (sledgehammer999)
|
||||
- FEATURE: Add 'Completed' column. Closes #1241. (sledgehammer999)
|
||||
- FEATURE: Added 'Ratio Limit' column. Closes #936. (sledgehammer999)
|
||||
- FEATURE: Add 'Open' and 'Open Containing Folder' entries in the content's right-click menu. Closes #1143. (sledgehammer999)
|
||||
- FEATURE: Don't listen on IPv6 address by default. Prevents network connectivity problems. Closes #1880. (sledgehammer999)
|
||||
- FEATURE: Added 'Shutdown now' button in shutdown confirmation dialog. Closes #969. (sledgehammer999)
|
||||
- FEATURE: Add peer port column to PeerListWidget. Closes #1650. (Ivanov Juriy)
|
||||
- COSMETIC: Fix weird ratio values when torrent was imported or downloaded history was lost due to crash. (sledgehammer999)
|
||||
- COSMETIC: Use 'μTP' instead of 'uTP'. (sledgehammer999)
|
||||
- COSMETIC: Show the loaded torrents in the transferlist when qBT is launched with a torrent/magnet and the AddNewTorrentDialog is showing. Closes #1564. (sledgehammer999)
|
||||
- COSMETIC: Don't mix finished/unifinished torrents when sorting by ETA. Closes #1688. (sledgehammer999)
|
||||
- COSMETIC: Sort finished torrents by completed date when sorting by queue number. (sledgehammer999)
|
||||
- COSMETIC: Right align numerical values in the transfer list. Partially revert 51a9a9aab. Closes #1903. (sledgehammer999)
|
||||
- COSMETIC: Don't display the Search Engine tab by default. (sledgehammer999)
|
||||
- WINDOWS: Correctly associate torrents and magnet links with qBittorrent under non-admin accounts. Closes #291 #527 #579 #614 #964. (glassez, sledgehammer999)
|
||||
- WINDOWS: Check for python before creating the search engine tab. Prevents the creation of python specific files in the user's PC if no python is found. Closes #1370. (sledgehammer999)
|
||||
- WINDOWS: Don't create keys in the registry if python isn't found. Closes #1370. (sledgehammer999)
|
||||
- WINDOWS: Can now correctly detect 64bit and 32bit python installations on 64bit Windows. Closes #1148 #445 #795 #1708. (sledgehammer999)
|
||||
- WINDOWS: Search first in PATH for python. Closes #956. (sledgehammer999)
|
||||
- OSX: Enable system tray in MACOSX (Nick Korotysh).
|
||||
- OSX: Fix headless (nox) build. (sledgehammer999)
|
||||
- WEBUI: Correctly save/load settings and other improvements (glassez)
|
||||
- WEBUI: Removed broken 'Report a bug' iframe. Closes #1343 (Benjamin Hutchins)
|
||||
- WEBUI: Removed broken 'Documentation'. Improves fix for #1343 (Benjamin Hutchins)
|
||||
- WEBUI: Removed essentially useless 'Visit website' iframe and changed it to a regular link. Improves fix for #1343 (Benjamin Hutchins)
|
||||
- BUGFIX: Fix RSS feed icon. The tmp file gets deleted in the feed destructor. Closes #1639 (sledgehammer999)
|
||||
- BUGFIX: fix issue #1674: AddNewTorrentDialog is shown again and again even if checkbox "dont ask me again" is set (Ivan Sorokin)
|
||||
- BUGFIX: Don't show availability bar for magnet links (Ivan Sorokin)
|
||||
- BUGFIX: Fix crash when the selected torrent disappears from the transfer list. Closes #1661 (sledgehammer999)
|
||||
- BUGFIX: Fix tracker announcing problem(hit-and-run) when many torrents are being active. Closes #1571 (sledgehammer999)
|
||||
- BUGFIX: Count magnet links in the 'downloading' filter and make them prevent system inhibition. Closes #1558 (sledgehammer999)
|
||||
- BUGFIX: Pick up updated plugins. Closes #1745. (sledgehammer999)
|
||||
- BUGFIX: Bring mainwindow in front when notification is clicked and other windows are in front. (sledgehammer999)
|
||||
- BUGFIX: Speedup torrent moving (Ivan Sorokin)
|
||||
- BUGFIX: Fix bug when moving a torrent before the previous move is completed (Ivan Sorokin)
|
||||
- BUGFIX: Add option to hibernate computer in Auto-Shutdown menu (Bruno Barbieri)
|
||||
- BUGFIX: Fix column resizing issues (Bryan Roscoe)
|
||||
- BUGFIX: Fix possible crashes. Closes #1814. (sledgehammer999)
|
||||
- BUGFIX: Limit max cache to 1800MiB for 32bits compiled binaries and to 4GiB for other. Closes #1698. (sledgehammer999)
|
||||
- BUGFIX: Don't localize double numbers in the webui. Closes #1525. (sledgehammer999)
|
||||
- BUGFIX: Don't shrink transferlist rows when scrolling horizontally. Closes #1613. (sledgehammer999)
|
||||
- BUGFIX: When qBT is launched with a magnet don't show it in the transferlist while the metadata are being loaded in the background. (sledgehammer999)
|
||||
- BUGFIX: Show disk space while retrieving metadata. Closes #1693. (sledgehammer999)
|
||||
- BUGFIX: Don't disable DHT/LSD/UPnP in the GUI when anonymous mode is enabled. (sledgehammer999)
|
||||
- BUGFIX: Possible fix for crash in RSS code. Closes #1901. (sledgehammer999)
|
||||
- BUGFIX: Fixed SMTP emailing code (Ivanov Juriy, sledgehammer999)
|
||||
- BUGFIX: Don't display the context menu in 'Content' and 'HTTP Sources' buttons when no torrent is selected. It prevents crashes. Closes #1906, #1900. (sledgehammer999)
|
||||
- BUGFIX: Don't translate file extensions. Closes #1907. (sledgehammer999)
|
||||
- BUGFIX: Fix available disk space label on single file torrents. (sledgehammer999)
|
||||
- BUGFIX: Show stalled downloads that are uploading under the 'Active' filter. Closes #1654." (sledgehammer999)
|
||||
- BUGFIX: fix import torrent with "Keep incomplete torrents in:" enabled (lojack5)
|
||||
- BUGFIX: Send a spoofed user agent for the search engines(fixes some of them) (Martin Janco)
|
||||
- BUGFIX: Support URLs that redirect to magnet links (Gelmir)
|
||||
- BUGFIX: Consider queued items before deciding to 'auto-shutdown on downloads completion'. Closes #1942. (sledgehammer999)
|
||||
|
||||
* Tue Apr 29 2014 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.1.9.2
|
||||
- OTHER: The v3.1.9.1 Windows build was broken
|
||||
|
||||
* Mon Apr 28 2014 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.1.9.1
|
||||
- OTHER: This is an excuse to produce new builds with an OpenSSL version that isn't affected by the heartbleed bug for Windows and Mac. This bug should only affect the WebUI and only if HTTPS/SSL authentication was enabled.
|
||||
|
||||
* Sat Mar 01 2014 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.1.9
|
||||
- BUGFIX: Fix nox build. Closes #1368 (bob23450)
|
||||
- BUGFIX: Fix build with libtorrent 0.15.x (sledgehammer999)
|
||||
- BUGFIX: Fix missing percentage signs. Closes #1392. (sledgehammer999)
|
||||
- BUGFIX: Fix queue sorting order. (alfrix)
|
||||
- BUGFIX: Fix build using qt < 4.7 Closes #1385. (Evgeny Lensky)
|
||||
- BUGFIX: Fix autoupdater. Send our user-agent to sourceforge.net (sledgehammer999)
|
||||
- FEATURE: Add button for links in toolbar (alfrix)
|
||||
|
||||
* Sun Feb 02 2014 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.1.8
|
||||
- BUGFIX: Really fix build of v3.1.6
|
||||
|
||||
* Sun Feb 02 2014 - sledgehammer999 <sledgehammer999@qbittorrent.org> - v3.1.7
|
||||
- BUGFIX: Fix build of v3.1.6
|
||||
|
||||
|
@@ -1,10 +1,11 @@
|
||||
qBittorrent - A BitTorrent client in Qt4
|
||||
qBittorrent - A BitTorrent client in Qt
|
||||
------------------------------------------
|
||||
|
||||
Description:
|
||||
[](https://travis-ci.org/qbittorrent/qBittorrent)
|
||||
********************************
|
||||
qBittorrent is a bittorrent client programmed in C++ / Qt4 that uses
|
||||
libtorrent (sometimes called rblibtorrent) by Arvid Norberg.
|
||||
###Description:
|
||||
qBittorrent is a bittorrent client programmed in C++ / Qt that uses
|
||||
libtorrent (sometimes called libtorrent-rasterbar) by Arvid Norberg.
|
||||
|
||||
It aims to be a good alternative to all other bittorrent clients
|
||||
out there. qBittorrent is fast, stable and provides unicode
|
||||
@@ -13,13 +14,14 @@ support as well as many features.
|
||||
This product includes GeoLite data created by MaxMind, available from
|
||||
http://maxmind.com/
|
||||
|
||||
Installation:
|
||||
********************************
|
||||
### Installation:
|
||||
For installation, follow the instructions from INSTALL file, but simple:
|
||||
|
||||
```
|
||||
./configure
|
||||
make && make install
|
||||
qbittorrent
|
||||
```
|
||||
|
||||
will install and execute qBittorrent hopefully without any problem.
|
||||
|
||||
@@ -32,9 +34,9 @@ http://wiki.qbittorrent.org
|
||||
Please report any bug (or feature request) to:
|
||||
http://bugs.qbittorrent.org
|
||||
|
||||
You can also meet me (chris-qBT) on IRC:
|
||||
#qbittorrent on irc.freenode.net
|
||||
You can also meet me (sledgehammer_999) on IRC:
|
||||
`#qbittorrent on irc.freenode.net`
|
||||
|
||||
------------------------------------------
|
||||
Christophe Dumez <chris@qbittorrent.org>
|
||||
sledgehammer999 <sledgehammer999@qbittorrent.org>
|
||||
|
@@ -46,7 +46,6 @@
|
||||
#include <QFile>
|
||||
#include <QUrl>
|
||||
#include <QMenu>
|
||||
#include <QTimer>
|
||||
#include <QFileDialog>
|
||||
#include <libtorrent/version.hpp>
|
||||
|
||||
@@ -62,6 +61,7 @@ AddNewTorrentDialog::AddNewTorrentDialog(QWidget *parent) :
|
||||
m_hasRenamedFile(false)
|
||||
{
|
||||
ui->setupUi(this);
|
||||
setAttribute(Qt::WA_DeleteOnClose);
|
||||
ui->lblMetaLoading->setVisible(false);
|
||||
ui->progMetaLoading->setVisible(false);
|
||||
|
||||
@@ -125,18 +125,22 @@ void AddNewTorrentDialog::saveState()
|
||||
settings.setValue("expanded", ui->adv_button->isChecked());
|
||||
}
|
||||
|
||||
void AddNewTorrentDialog::showTorrent(const QString &torrent_path, const QString& from_url)
|
||||
void AddNewTorrentDialog::showTorrent(const QString &torrent_path, const QString& from_url, QWidget *parent)
|
||||
{
|
||||
AddNewTorrentDialog dlg;
|
||||
if (dlg.loadTorrent(torrent_path, from_url))
|
||||
dlg.exec();
|
||||
AddNewTorrentDialog *dlg = new AddNewTorrentDialog(parent);
|
||||
if (dlg->loadTorrent(torrent_path, from_url))
|
||||
dlg->open();
|
||||
else
|
||||
delete dlg;
|
||||
}
|
||||
|
||||
void AddNewTorrentDialog::showMagnet(const QString& link)
|
||||
void AddNewTorrentDialog::showMagnet(const QString& link, QWidget *parent)
|
||||
{
|
||||
AddNewTorrentDialog dlg;
|
||||
if (dlg.loadMagnet(link))
|
||||
dlg.exec();
|
||||
AddNewTorrentDialog *dlg = new AddNewTorrentDialog(parent);
|
||||
if (dlg->loadMagnet(link))
|
||||
dlg->open();
|
||||
else
|
||||
delete dlg;
|
||||
}
|
||||
|
||||
void AddNewTorrentDialog::showEvent(QShowEvent *event) {
|
||||
@@ -154,7 +158,7 @@ void AddNewTorrentDialog::showAdvancedSettings(bool show)
|
||||
if (show) {
|
||||
ui->adv_button->setText(QString::fromUtf8("▲"));
|
||||
ui->settings_group->setVisible(true);
|
||||
ui->info_group->setVisible(m_hasMetadata);
|
||||
ui->info_group->setVisible(true);
|
||||
if (m_hasMetadata && (m_torrentInfo->num_files() > 1)) {
|
||||
ui->content_tree->setVisible(true);
|
||||
setSizePolicy(QSizePolicy::Preferred, QSizePolicy::Preferred);
|
||||
@@ -193,7 +197,7 @@ bool AddNewTorrentDialog::loadTorrent(const QString& torrent_path, const QString
|
||||
m_torrentInfo = new torrent_info(m_filePath.toUtf8().data());
|
||||
m_hash = misc::toQString(m_torrentInfo->info_hash());
|
||||
} catch(const std::exception& e) {
|
||||
MessageBoxRaised::critical(0, tr("Invalid torrent"), tr("Failed to load the torrent: %1").arg(e.what()));
|
||||
MessageBoxRaised::critical(0, tr("Invalid torrent"), tr("Failed to load the torrent: %1").arg(misc::toQStringU(e.what())));
|
||||
return false;
|
||||
}
|
||||
|
||||
@@ -231,7 +235,7 @@ bool AddNewTorrentDialog::loadMagnet(const QString &magnet_uri)
|
||||
setWindowTitle(torrent_name.isEmpty() ? tr("Magnet link") : torrent_name);
|
||||
|
||||
QIniSettings settings;
|
||||
showAdvancedSettings(settings.value("AddNewTorrentDialog/expanded").toBool());
|
||||
setupTreeview();
|
||||
// Set dialog position
|
||||
setdialogPosition();
|
||||
|
||||
@@ -284,24 +288,28 @@ void AddNewTorrentDialog::updateFileNameInSavePaths(const QString &new_filename)
|
||||
}
|
||||
}
|
||||
|
||||
void AddNewTorrentDialog::updateDiskSpaceLabel()
|
||||
{
|
||||
Q_ASSERT(m_hasMetadata);
|
||||
void AddNewTorrentDialog::updateDiskSpaceLabel() {
|
||||
// Determine torrent size
|
||||
qulonglong torrent_size = 0;
|
||||
if (m_contentModel) {
|
||||
const std::vector<int> priorities = m_contentModel->model()->getFilesPriorities();
|
||||
Q_ASSERT(priorities.size() == (uint) m_torrentInfo->num_files());
|
||||
for (uint i=0; i<priorities.size(); ++i) {
|
||||
if (priorities[i] > 0)
|
||||
torrent_size += m_torrentInfo->file_at(i).size;
|
||||
|
||||
if (m_hasMetadata) {
|
||||
if (m_contentModel) {
|
||||
const std::vector<int> priorities = m_contentModel->model()->getFilesPriorities();
|
||||
Q_ASSERT(priorities.size() == (uint) m_torrentInfo->num_files());
|
||||
for (uint i=0; i<priorities.size(); ++i) {
|
||||
if (priorities[i] > 0)
|
||||
torrent_size += m_torrentInfo->file_at(i).size;
|
||||
}
|
||||
} else {
|
||||
torrent_size = m_torrentInfo->total_size();
|
||||
}
|
||||
} else {
|
||||
torrent_size = m_torrentInfo->total_size();
|
||||
}
|
||||
QString size_string = misc::friendlyUnit(torrent_size);
|
||||
|
||||
QString size_string = torrent_size ? misc::friendlyUnit(torrent_size) : QString(tr("Not Available", "This size is unavailable."));
|
||||
size_string += " (";
|
||||
size_string += tr("Disk space: %1").arg(misc::friendlyUnit(fsutils::freeDiskSpaceOnPath(ui->save_path_combo->currentText())));
|
||||
size_string += tr("Disk space: %1").arg(misc::friendlyUnit(fsutils::freeDiskSpaceOnPath(
|
||||
ui->save_path_combo->itemData(
|
||||
ui->save_path_combo->currentIndex()).toString())));
|
||||
size_string += ")";
|
||||
ui->size_lbl->setText(size_string);
|
||||
}
|
||||
@@ -360,8 +368,7 @@ void AddNewTorrentDialog::onSavePathChanged(int index)
|
||||
relayout();
|
||||
// Remember index
|
||||
old_index = ui->save_path_combo->currentIndex();
|
||||
if (m_hasMetadata)
|
||||
updateDiskSpaceLabel();
|
||||
updateDiskSpaceLabel();
|
||||
}
|
||||
|
||||
void AddNewTorrentDialog::relayout()
|
||||
@@ -379,6 +386,8 @@ void AddNewTorrentDialog::renameSelectedFile()
|
||||
if (selectedIndexes.size() != 1)
|
||||
return;
|
||||
const QModelIndex &index = selectedIndexes.first();
|
||||
if (!index.isValid())
|
||||
return;
|
||||
// Ask for new name
|
||||
bool ok;
|
||||
const QString new_name_last = AutoExpandableDialog::getText(this, tr("Rename the file"),
|
||||
@@ -627,59 +636,63 @@ void AddNewTorrentDialog::setMetadataProgressIndicator(bool visibleIndicator, co
|
||||
}
|
||||
|
||||
void AddNewTorrentDialog::setupTreeview() {
|
||||
// Set dialog title
|
||||
setWindowTitle(misc::toQStringU(m_torrentInfo->name()));
|
||||
if (!m_hasMetadata) {
|
||||
ui->comment_lbl->setText(tr("Not Available", "This comment is unavailable"));
|
||||
ui->date_lbl->setText(tr("Not Available", "This date is unavailable"));
|
||||
}
|
||||
else {
|
||||
// Set dialog title
|
||||
setWindowTitle(misc::toQStringU(m_torrentInfo->name()));
|
||||
|
||||
// Set torrent information
|
||||
QString comment = misc::toQString(m_torrentInfo->comment());
|
||||
ui->comment_lbl->setText(comment.replace('\n', ' '));
|
||||
ui->date_lbl->setText(m_torrentInfo->creation_date() ? misc::toQString(*m_torrentInfo->creation_date()) : tr("Not available"));
|
||||
updateDiskSpaceLabel();
|
||||
// Set torrent information
|
||||
QString comment = misc::toQString(m_torrentInfo->comment());
|
||||
ui->comment_lbl->setText(comment.replace('\n', ' '));
|
||||
ui->date_lbl->setText(m_torrentInfo->creation_date() ? misc::toQString(*m_torrentInfo->creation_date()) : tr("Not available"));
|
||||
|
||||
#if LIBTORRENT_VERSION_NUM >= 1600
|
||||
file_storage fs = m_torrentInfo->files();
|
||||
#endif
|
||||
|
||||
// Populate m_filesList
|
||||
// Populate m_filesList
|
||||
for (int i = 0; i < m_torrentInfo->num_files(); ++i) {
|
||||
#if LIBTORRENT_VERSION_NUM >= 1600
|
||||
m_filesPath << misc::toQStringU(fs.file_path(m_torrentInfo->file_at(i)));
|
||||
#else
|
||||
m_filesPath << misc::toQStringU(m_torrentInfo->file_at(i).path.string());
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
||||
// Prepare content tree
|
||||
if (fs.num_files() > 1) {
|
||||
m_contentModel = new TorrentContentFilterModel(this);
|
||||
connect(m_contentModel->model(), SIGNAL(filteredFilesChanged()), SLOT(updateDiskSpaceLabel()));
|
||||
ui->content_tree->setModel(m_contentModel);
|
||||
ui->content_tree->hideColumn(PROGRESS);
|
||||
m_contentDelegate = new PropListDelegate();
|
||||
ui->content_tree->setItemDelegate(m_contentDelegate);
|
||||
connect(ui->content_tree, SIGNAL(clicked(const QModelIndex&)), ui->content_tree, SLOT(edit(const QModelIndex&)));
|
||||
connect(ui->content_tree, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayContentTreeMenu(const QPoint&)));
|
||||
// Prepare content tree
|
||||
if (fs.num_files() > 1) {
|
||||
m_contentModel = new TorrentContentFilterModel(this);
|
||||
connect(m_contentModel->model(), SIGNAL(filteredFilesChanged()), SLOT(updateDiskSpaceLabel()));
|
||||
ui->content_tree->setModel(m_contentModel);
|
||||
ui->content_tree->hideColumn(PROGRESS);
|
||||
m_contentDelegate = new PropListDelegate();
|
||||
ui->content_tree->setItemDelegate(m_contentDelegate);
|
||||
connect(ui->content_tree, SIGNAL(clicked(const QModelIndex&)), ui->content_tree, SLOT(edit(const QModelIndex&)));
|
||||
connect(ui->content_tree, SIGNAL(customContextMenuRequested(const QPoint&)), this, SLOT(displayContentTreeMenu(const QPoint&)));
|
||||
|
||||
// List files in torrent
|
||||
m_contentModel->model()->setupModelData(*m_torrentInfo);
|
||||
if (!m_headerState.isEmpty())
|
||||
ui->content_tree->header()->restoreState(m_headerState);
|
||||
// List files in torrent
|
||||
m_contentModel->model()->setupModelData(*m_torrentInfo);
|
||||
if (!m_headerState.isEmpty())
|
||||
ui->content_tree->header()->restoreState(m_headerState);
|
||||
|
||||
// Expand root folder
|
||||
ui->content_tree->setExpanded(m_contentModel->index(0, 0), true);
|
||||
} else {
|
||||
// Update save paths (append file name to them)
|
||||
// Expand root folder
|
||||
ui->content_tree->setExpanded(m_contentModel->index(0, 0), true);
|
||||
} else {
|
||||
// Update save paths (append file name to them)
|
||||
#if LIBTORRENT_VERSION_NUM >= 1600
|
||||
QString single_file_relpath = misc::toQStringU(fs.file_path(m_torrentInfo->file_at(0)));
|
||||
#else
|
||||
QString single_file_relpath = misc::toQStringU(m_torrentInfo->file_at(0).path.string());
|
||||
#endif
|
||||
for (int i=0; i<ui->save_path_combo->count()-1; ++i) {
|
||||
for (int i=0; i<ui->save_path_combo->count()-1; ++i) {
|
||||
ui->save_path_combo->setItemText(i, fsutils::toDisplayPath(QDir(ui->save_path_combo->itemText(i)).absoluteFilePath(single_file_relpath)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
QIniSettings settings;
|
||||
updateDiskSpaceLabel();
|
||||
showAdvancedSettings(settings.value("AddNewTorrentDialog/expanded").toBool());
|
||||
// Set dialog position
|
||||
setdialogPosition();
|
||||
|
@@ -53,8 +53,8 @@ class AddNewTorrentDialog : public QDialog
|
||||
public:
|
||||
~AddNewTorrentDialog();
|
||||
|
||||
static void showTorrent(const QString& torrent_path, const QString& from_url = QString());
|
||||
static void showMagnet(const QString& torrent_link);
|
||||
static void showTorrent(const QString& torrent_path, const QString& from_url, QWidget *parent = 0);
|
||||
static void showMagnet(const QString& torrent_link, QWidget *parent = 0);
|
||||
|
||||
protected:
|
||||
void showEvent(QShowEvent *event);
|
||||
|
@@ -122,6 +122,14 @@ void DownloadThread::processDlFinished(QNetworkReply* reply) {
|
||||
newUrl = reply->url().resolved(newUrl);
|
||||
const QString newUrlString = newUrl.toString();
|
||||
qDebug("Redirecting from %s to %s", qPrintable(url), qPrintable(newUrlString));
|
||||
// Redirect to magnet workaround
|
||||
if (newUrlString.startsWith("magnet:", Qt::CaseInsensitive)) {
|
||||
qDebug("Magnet redirect detected.");
|
||||
reply->abort();
|
||||
emit magnetRedirect(newUrlString, url);
|
||||
reply->deleteLater();
|
||||
return;
|
||||
}
|
||||
m_redirectMapping.insert(newUrlString, url);
|
||||
// redirecting with first cookies
|
||||
downloadUrl(newUrlString, m_networkManager.cookieJar()->cookiesForUrl(url));
|
||||
|
@@ -54,6 +54,7 @@ public:
|
||||
signals:
|
||||
void downloadFinished(const QString &url, const QString &file_path);
|
||||
void downloadFailure(const QString &url, const QString &reason);
|
||||
void magnetRedirect(const QString &url_new, const QString &url_old);
|
||||
|
||||
private slots:
|
||||
void processDlFinished(QNetworkReply* reply);
|
||||
|
@@ -81,7 +81,7 @@ QIcon IconProvider::generateDifferentSizes(const QIcon& icon)
|
||||
{
|
||||
QIcon new_icon;
|
||||
QList<QSize> required_sizes;
|
||||
required_sizes << QSize(16, 16) << QSize(24, 24);
|
||||
required_sizes << QSize(16, 16) << QSize(24, 24) << QSize(32, 32);
|
||||
QList<QIcon::Mode> modes;
|
||||
modes << QIcon::Normal << QIcon::Active << QIcon::Selected << QIcon::Disabled;
|
||||
foreach (const QSize& size, required_sizes) {
|
||||
|
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
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
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user