Browse Source

Show the loaded torrents in the transferlist when qBT is launched with a torrent/magnet and the AddNewTorrentDialog is showing. Closes #1564.

adaptive-webui-19844
sledgehammer999 10 years ago
parent
commit
30bc5a1da6
  1. 21
      src/addnewtorrentdialog.cpp
  2. 4
      src/addnewtorrentdialog.h
  3. 16
      src/mainwindow.cpp

21
src/addnewtorrentdialog.cpp

@ -60,6 +60,7 @@ AddNewTorrentDialog::AddNewTorrentDialog(QWidget *parent) :
m_hasRenamedFile(false) m_hasRenamedFile(false)
{ {
ui->setupUi(this); ui->setupUi(this);
setAttribute(Qt::WA_DeleteOnClose);
ui->lblMetaLoading->setVisible(false); ui->lblMetaLoading->setVisible(false);
ui->progMetaLoading->setVisible(false); ui->progMetaLoading->setVisible(false);
@ -120,18 +121,22 @@ void AddNewTorrentDialog::saveState()
pref->setAddNewTorrentDialogExpanded(ui->adv_button->isChecked()); pref->setAddNewTorrentDialogExpanded(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; AddNewTorrentDialog *dlg = new AddNewTorrentDialog(parent);
if (dlg.loadTorrent(torrent_path, from_url)) if (dlg->loadTorrent(torrent_path, from_url))
dlg.exec(); dlg->open();
else
delete dlg;
} }
void AddNewTorrentDialog::showMagnet(const QString& link) void AddNewTorrentDialog::showMagnet(const QString& link, QWidget *parent)
{ {
AddNewTorrentDialog dlg; AddNewTorrentDialog *dlg = new AddNewTorrentDialog(parent);
if (dlg.loadMagnet(link)) if (dlg->loadMagnet(link))
dlg.exec(); dlg->open();
else
delete dlg;
} }
void AddNewTorrentDialog::showEvent(QShowEvent *event) { void AddNewTorrentDialog::showEvent(QShowEvent *event) {

4
src/addnewtorrentdialog.h

@ -54,8 +54,8 @@ class AddNewTorrentDialog : public QDialog
public: public:
~AddNewTorrentDialog(); ~AddNewTorrentDialog();
static void showTorrent(const QString& torrent_path, const QString& from_url = QString()); static void showTorrent(const QString& torrent_path, const QString& from_url, QWidget *parent = 0);
static void showMagnet(const QString& torrent_link); static void showMagnet(const QString& torrent_link, QWidget *parent = 0);
protected: protected:
void showEvent(QShowEvent *event); void showEvent(QShowEvent *event);

16
src/mainwindow.cpp

@ -890,13 +890,13 @@ void MainWindow::dropEvent(QDropEvent *event) {
} }
if (file.startsWith("magnet:", Qt::CaseInsensitive)) { if (file.startsWith("magnet:", Qt::CaseInsensitive)) {
if (useTorrentAdditionDialog) if (useTorrentAdditionDialog)
AddNewTorrentDialog::showMagnet(file); AddNewTorrentDialog::showMagnet(file, this);
else else
QBtSession::instance()->addMagnetUri(file); QBtSession::instance()->addMagnetUri(file);
} else { } else {
// Local file // Local file
if (useTorrentAdditionDialog) if (useTorrentAdditionDialog)
AddNewTorrentDialog::showTorrent(file); AddNewTorrentDialog::showTorrent(file, QString(), this);
else else
QBtSession::instance()->addTorrent(file); QBtSession::instance()->addTorrent(file);
} }
@ -932,7 +932,7 @@ void MainWindow::on_actionOpen_triggered() {
const uint listSize = pathsList.size(); const uint listSize = pathsList.size();
for (uint i=0; i<listSize; ++i) { for (uint i=0; i<listSize; ++i) {
if (pref->useAdditionDialog()) if (pref->useAdditionDialog())
AddNewTorrentDialog::showTorrent(pathsList.at(i)); AddNewTorrentDialog::showTorrent(pathsList.at(i), QString(), this);
else else
QBtSession::instance()->addTorrent(pathsList.at(i)); QBtSession::instance()->addTorrent(pathsList.at(i));
} }
@ -975,12 +975,12 @@ void MainWindow::processParams(const QStringList& params) {
} }
if (param.startsWith("magnet:", Qt::CaseInsensitive)) { if (param.startsWith("magnet:", Qt::CaseInsensitive)) {
if (useTorrentAdditionDialog) if (useTorrentAdditionDialog)
AddNewTorrentDialog::showMagnet(param); AddNewTorrentDialog::showMagnet(param, this);
else else
QBtSession::instance()->addMagnetUri(param); QBtSession::instance()->addMagnetUri(param);
} else { } else {
if (useTorrentAdditionDialog) if (useTorrentAdditionDialog)
AddNewTorrentDialog::showTorrent(param); AddNewTorrentDialog::showTorrent(param, QString(), this);
else else
QBtSession::instance()->addTorrent(param); QBtSession::instance()->addTorrent(param);
} }
@ -995,7 +995,7 @@ void MainWindow::addTorrent(QString path) {
void MainWindow::processDownloadedFiles(QString path, QString url) { void MainWindow::processDownloadedFiles(QString path, QString url) {
Preferences* const pref = Preferences::instance(); Preferences* const pref = Preferences::instance();
if (pref->useAdditionDialog()) if (pref->useAdditionDialog())
AddNewTorrentDialog::showTorrent(path, url); AddNewTorrentDialog::showTorrent(path, url, this);
else else
QBtSession::instance()->addTorrent(path, false, url); QBtSession::instance()->addTorrent(path, false, url);
} }
@ -1003,7 +1003,7 @@ void MainWindow::processDownloadedFiles(QString path, QString url) {
void MainWindow::processNewMagnetLink(const QString& link) { void MainWindow::processNewMagnetLink(const QString& link) {
Preferences* const pref = Preferences::instance(); Preferences* const pref = Preferences::instance();
if (pref->useAdditionDialog()) if (pref->useAdditionDialog())
AddNewTorrentDialog::showMagnet(link); AddNewTorrentDialog::showMagnet(link, this);
else else
QBtSession::instance()->addMagnetUri(link); QBtSession::instance()->addMagnetUri(link);
} }
@ -1198,7 +1198,7 @@ void MainWindow::downloadFromURLList(const QStringList& url_list) {
} }
if (url.startsWith("magnet:", Qt::CaseInsensitive)) { if (url.startsWith("magnet:", Qt::CaseInsensitive)) {
if (useTorrentAdditionDialog) if (useTorrentAdditionDialog)
AddNewTorrentDialog::showMagnet(url); AddNewTorrentDialog::showMagnet(url, this);
else else
QBtSession::instance()->addMagnetUri(url); QBtSession::instance()->addMagnetUri(url);
} }

Loading…
Cancel
Save