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:
parent
10ab8f107c
commit
497cb07852
@ -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) {}
|
||||
}
|
||||
|
@ -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);
|
||||
|
@ -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
|
||||
|
Loading…
x
Reference in New Issue
Block a user