1
0
mirror of https://github.com/d47081/qBittorrent.git synced 2025-01-23 04:54:18 +00:00

- Fix several possible crashes when using Magnet URI (because they don't have metadata in the beginning)

This commit is contained in:
Christophe Dumez 2009-12-02 20:13:10 +00:00
parent 10ab8f107c
commit 497cb07852
3 changed files with 16 additions and 9 deletions

View File

@ -204,6 +204,7 @@ Bittorrent* PropertiesWidget::getBTSession() const {
}
void PropertiesWidget::loadTorrentInfos(QTorrentHandle &_h) {
clear();
h = _h;
if(!h.is_valid()) {
clear();
@ -330,10 +331,12 @@ void PropertiesWidget::loadDynamicData() {
// Downloaded pieces
downloaded_pieces->setProgress(h.pieces());
// Pieces availability
std::vector<int> avail;
h.piece_availability(avail);
double avail_average = pieces_availability->setAvailability(avail);
avail_average_lbl->setText(QString::number(avail_average, 'f', 1));
if(h.has_metadata()) {
std::vector<int> avail;
h.piece_availability(avail);
double avail_average = pieces_availability->setAvailability(avail);
avail_average_lbl->setText(QString::number(avail_average, 'f', 1));
}
// Progress
progress_lbl->setText(QString::number(h.progress()*100., 'f', 1)+"%");
} else {
@ -353,10 +356,12 @@ void PropertiesWidget::loadDynamicData() {
}
if(stackedProperties->currentIndex() == FILES_TAB) {
// Files progress
std::vector<size_type> fp;
h.file_progress(fp);
PropListModel->updateFilesPriorities(h.file_priorities());
PropListModel->updateFilesProgress(fp);
if(h.has_metadata()) {
std::vector<size_type> fp;
h.file_progress(fp);
PropListModel->updateFilesPriorities(h.file_priorities());
PropListModel->updateFilesProgress(fp);
}
}
} catch(invalid_handle e) {}
}

View File

@ -122,7 +122,7 @@ public:
if(index.column() != PRIORITY) return 0;
if(properties) {
QTorrentHandle h = properties->getCurrentTorrent();
if(!h.is_valid() || h.is_seed()) return 0;
if(!h.is_valid() || h.is_seed() || !h.has_metadata()) return 0;
}
QComboBox* editor = new QComboBox(parent);
editor->setFocusPolicy(Qt::StrongFocus);

View File

@ -275,6 +275,8 @@ public slots:
}
void showTrackerListMenu(QPoint) {
QTorrentHandle h = properties->getCurrentTorrent();
if(!h.is_valid() || !h.has_metadata()) return;
QList<QTreeWidgetItem*> selected_items = getSelectedTrackerItems();
QMenu menu;
// Add actions