Fix crash when adding an ampty tracker URL

This commit is contained in:
Christophe Dumez
2011-02-24 17:29:47 +00:00
parent 01725b1b55
commit d4b5f68295
3 changed files with 10 additions and 1 deletions

View File

@@ -4,6 +4,7 @@
- BUGFIX: Disable OS cache for aligned files to reduce memory consumption - BUGFIX: Disable OS cache for aligned files to reduce memory consumption
- BUGFIX: Fix torrent upload from Web UI (Windows) - BUGFIX: Fix torrent upload from Web UI (Windows)
- BUGFIX: Fix cursor problem in torrent addition dialog - BUGFIX: Fix cursor problem in torrent addition dialog
- BUGFIX: Fix crash when additing an empty tracker URL
* Tue Feb 8 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.6.6 * Tue Feb 8 2011 - Christophe Dumez <chris@qbittorrent.org> - v2.6.6
- FEATURE: IP address reported to trackers is now customizable - FEATURE: IP address reported to trackers is now customizable

View File

@@ -295,6 +295,7 @@ void TrackerList::askForTrackers(){
QStringList trackers = TrackersAdditionDlg::askForTrackers(h); QStringList trackers = TrackersAdditionDlg::askForTrackers(h);
if(!trackers.empty()) { if(!trackers.empty()) {
foreach(const QString& tracker, trackers) { foreach(const QString& tracker, trackers) {
if(tracker.trimmed().isEmpty()) continue;
announce_entry url(tracker.toStdString()); announce_entry url(tracker.toStdString());
url.tier = 0; url.tier = 0;
h.add_tracker(url); h.add_tracker(url);

View File

@@ -67,6 +67,7 @@ public:
public slots: public slots:
void on_uTorrentListButton_clicked() { void on_uTorrentListButton_clicked() {
downloadThread *d = new downloadThread(this); downloadThread *d = new downloadThread(this);
uTorrentListButton->setEnabled(false);
connect(d, SIGNAL(downloadFinished(QString,QString)), SLOT(parseUTorrentList(QString,QString))); connect(d, SIGNAL(downloadFinished(QString,QString)), SLOT(parseUTorrentList(QString,QString)));
connect(d, SIGNAL(downloadFailure(QString,QString)), SLOT(getTrackerError(QString,QString))); connect(d, SIGNAL(downloadFailure(QString,QString)), SLOT(getTrackerError(QString,QString)));
//Just to show that it takes times //Just to show that it takes times
@@ -79,6 +80,8 @@ public slots:
if (!list_file.open(QFile::ReadOnly)) { if (!list_file.open(QFile::ReadOnly)) {
QMessageBox::warning(this, tr("I/O Error"), tr("Error while trying to open the downloaded file."), QMessageBox::Ok); QMessageBox::warning(this, tr("I/O Error"), tr("Error while trying to open the downloaded file."), QMessageBox::Ok);
setCursor(Qt::ArrowCursor); setCursor(Qt::ArrowCursor);
uTorrentListButton->setEnabled(true);
sender()->deleteLater();
return; return;
} }
QList<QUrl> existingTrackers; QList<QUrl> existingTrackers;
@@ -114,16 +117,20 @@ public slots:
list_file.remove(); list_file.remove();
//To restore the cursor ... //To restore the cursor ...
setCursor(Qt::ArrowCursor); setCursor(Qt::ArrowCursor);
uTorrentListButton->setEnabled(true);
// Display information message if necessary // Display information message if necessary
if(nb == 0) { if(nb == 0) {
QMessageBox::information(this, tr("No change"), tr("No additional trackers were found."), QMessageBox::Ok); QMessageBox::information(this, tr("No change"), tr("No additional trackers were found."), QMessageBox::Ok);
} }
sender()->deleteLater();
} }
void getTrackerError(QString, QString error) { void getTrackerError(const QString&, const QString &error) {
//To restore the cursor ... //To restore the cursor ...
setCursor(Qt::ArrowCursor); setCursor(Qt::ArrowCursor);
uTorrentListButton->setEnabled(true);
QMessageBox::warning(this, tr("Download error"), tr("The trackers list could not be downloaded, reason: %1").arg(error), QMessageBox::Ok); QMessageBox::warning(this, tr("Download error"), tr("The trackers list could not be downloaded, reason: %1").arg(error), QMessageBox::Ok);
sender()->deleteLater();
} }
public: public: