mirror of
https://github.com/qbittorrent/qBittorrent
synced 2025-07-15 01:33:07 -07: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
3 changed files with 16 additions and 9 deletions
|
@ -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
|
||||
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,11 +356,13 @@ void PropertiesWidget::loadDynamicData() {
|
|||
}
|
||||
if(stackedProperties->currentIndex() == FILES_TAB) {
|
||||
// Files progress
|
||||
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…
Add table
Add a link
Reference in a new issue