void PropertiesWidget::clear() { qDebug("Clearing torrent properties"); save_path->clear(); lbl_creationDate->clear(); pieceSize_lbl->clear(); hash_lbl->clear(); comment_text->clear(); progress_lbl->clear(); trackerList->clear(); downloaded_pieces->clear(); pieces_availability->clear(); avail_average_lbl->clear(); wasted->clear(); upTotal->clear(); dlTotal->clear(); peersList->clear(); lbl_uplimit->clear(); lbl_dllimit->clear(); lbl_elapsed->clear(); lbl_connections->clear(); reannounce_lbl->clear(); shareRatio->clear(); listWebSeeds->clear(); m_contentFilerLine->clear(); PropListModel->model()->clear(); showPiecesAvailability(false); showPiecesDownloaded(false); }
void PropertiesWidget::loadDynamicData() { // Refresh only if the torrent handle is valid and if visible if (!m_torrent || (main_window->getCurrentTabWidget() != transferList) || (state != VISIBLE)) return; // Transfer infos switch(stackedProperties->currentIndex()) { case PropTabBar::MAIN_TAB: { wasted->setText(Utils::Misc::friendlyUnit(m_torrent->wastedSize())); upTotal->setText(tr("%1 (%2 this session)").arg(Utils::Misc::friendlyUnit(m_torrent->totalUpload())) .arg(Utils::Misc::friendlyUnit(m_torrent->totalPayloadUpload()))); dlTotal->setText(tr("%1 (%2 this session)").arg(Utils::Misc::friendlyUnit(m_torrent->totalDownload())) .arg(Utils::Misc::friendlyUnit(m_torrent->totalPayloadDownload()))); lbl_uplimit->setText(m_torrent->uploadLimit() <= 0 ? QString::fromUtf8(C_INFINITY) : Utils::Misc::friendlyUnit(m_torrent->uploadLimit(), true)); lbl_dllimit->setText(m_torrent->downloadLimit() <= 0 ? QString::fromUtf8(C_INFINITY) : Utils::Misc::friendlyUnit(m_torrent->downloadLimit(), true)); QString elapsed_txt; if (m_torrent->isSeed()) elapsed_txt = tr("%1 (seeded for %2)", "e.g. 4m39s (seeded for 3m10s)") .arg(Utils::Misc::userFriendlyDuration(m_torrent->activeTime())) .arg(Utils::Misc::userFriendlyDuration(m_torrent->seedingTime())); else elapsed_txt = Utils::Misc::userFriendlyDuration(m_torrent->activeTime()); lbl_elapsed->setText(elapsed_txt); lbl_connections->setText(tr("%1 (%2 max)", "%1 and %2 are numbers, e.g. 3 (10 max)") .arg(m_torrent->connectionsCount()) .arg(m_torrent->connectionsLimit() < 0 ? QString::fromUtf8(C_INFINITY) : QString::number(m_torrent->connectionsLimit()))); label_eta_val->setText(Utils::Misc::userFriendlyDuration(m_torrent->eta())); // Update next announce time reannounce_lbl->setText(Utils::Misc::userFriendlyDuration(m_torrent->nextAnnounce())); // Update ratio info const qreal ratio = m_torrent->realRatio(); shareRatio->setText(ratio > BitTorrent::TorrentHandle::MAX_RATIO ? QString::fromUtf8(C_INFINITY) : Utils::String::fromDouble(ratio, 2)); label_seeds_val->setText(tr("%1 (%2 total)", "%1 and %2 are numbers, e.g. 3 (10 total)") .arg(QString::number(m_torrent->seedsCount())) .arg(QString::number(m_torrent->totalSeedsCount()))); label_peers_val->setText(tr("%1 (%2 total)", "%1 and %2 are numbers, e.g. 3 (10 total)") .arg(QString::number(m_torrent->leechsCount())) .arg(QString::number(m_torrent->totalLeechersCount()))); label_dl_speed_val->setText(tr("%1 (%2 avg.)", "%1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.)") .arg(Utils::Misc::friendlyUnit(m_torrent->downloadPayloadRate(), true)) .arg(Utils::Misc::friendlyUnit(m_torrent->totalDownload() / (1 + m_torrent->activeTime() - m_torrent->finishedTime()), true))); label_upload_speed_val->setText(tr("%1 (%2 avg.)", "%1 and %2 are speed rates, e.g. 200KiB/s (100KiB/s avg.)") .arg(Utils::Misc::friendlyUnit(m_torrent->uploadPayloadRate(), true)) .arg(Utils::Misc::friendlyUnit(m_torrent->totalUpload() / (1 + m_torrent->activeTime()), true))); label_last_complete_val->setText(m_torrent->lastSeenComplete().isValid() ? m_torrent->lastSeenComplete().toString(Qt::DefaultLocaleShortDate) : tr("Never")); label_completed_on_val->setText(m_torrent->completedTime().isValid() ? m_torrent->completedTime().toString(Qt::DefaultLocaleShortDate) : ""); label_added_on_val->setText(m_torrent->addedTime().toString(Qt::DefaultLocaleShortDate)); if (m_torrent->hasMetadata()) { label_total_pieces_val->setText(tr("%1 x %2 (have %3)", "(torrent pieces) eg 152 x 4MB (have 25)").arg(m_torrent->piecesCount()).arg(Utils::Misc::friendlyUnit(m_torrent->pieceLength())).arg(m_torrent->piecesHave())); if (!m_torrent->isSeed() && !m_torrent->isPaused() && !m_torrent->isQueued() && !m_torrent->isChecking()) { // Pieces availability showPiecesAvailability(true); pieces_availability->setAvailability(m_torrent->pieceAvailability()); avail_average_lbl->setText(Utils::String::fromDouble(m_torrent->distributedCopies(), 3)); } else { showPiecesAvailability(false); } // Progress qreal progress = m_torrent->progress() * 100.; progress_lbl->setText(Utils::String::fromDouble(progress, 1)+"%"); downloaded_pieces->setProgress(m_torrent->pieces(), m_torrent->downloadingPieces()); } else { showPiecesAvailability(false); } break; } case PropTabBar::TRACKERS_TAB: { // Trackers trackerList->loadTrackers(); break; } case PropTabBar::PEERS_TAB: { // Load peers peersList->loadPeers(m_torrent); break; } case PropTabBar::FILES_TAB: { // Files progress if (m_torrent->hasMetadata()) { qDebug("Updating priorities in files tab"); filesList->setUpdatesEnabled(false); PropListModel->model()->updateFilesProgress(m_torrent->filesProgress()); // XXX: We don't update file priorities regularly for performance // reasons. This means that priorities will not be updated if // set from the Web UI. // PropListModel->model()->updateFilesPriorities(h.file_priorities()); filesList->setUpdatesEnabled(true); } break; } default:; } }
void PropertiesWidget::loadDynamicData() { // Refresh only if the torrent handle is valid and if visible if (!m_torrent || (main_window->getCurrentTabWidget() != transferList) || (state != VISIBLE)) return; // Transfer infos if (stackedProperties->currentIndex() == PropTabBar::MAIN_TAB) { wasted->setText(Utils::Misc::friendlyUnit(m_torrent->wastedSize())); upTotal->setText(Utils::Misc::friendlyUnit(m_torrent->totalUpload()) + " ("+Utils::Misc::friendlyUnit(m_torrent->totalPayloadUpload())+" "+tr("this session")+")"); dlTotal->setText(Utils::Misc::friendlyUnit(m_torrent->totalDownload()) + " ("+Utils::Misc::friendlyUnit(m_torrent->totalPayloadDownload())+" "+tr("this session")+")"); lbl_uplimit->setText(m_torrent->uploadLimit() <= 0 ? QString::fromUtf8("∞") : Utils::Misc::friendlyUnit(m_torrent->uploadLimit())+tr("/s", "/second (i.e. per second)")); lbl_dllimit->setText(m_torrent->downloadLimit() <= 0 ? QString::fromUtf8("∞") : Utils::Misc::friendlyUnit(m_torrent->downloadLimit())+tr("/s", "/second (i.e. per second)")); QString elapsed_txt = Utils::Misc::userFriendlyDuration(m_torrent->activeTime()); if (m_torrent->isSeed()) { elapsed_txt += " ("+tr("Seeded for %1", "e.g. Seeded for 3m10s").arg(Utils::Misc::userFriendlyDuration(m_torrent->seedingTime()))+")"; } lbl_elapsed->setText(elapsed_txt); if (m_torrent->connectionsLimit() > 0) lbl_connections->setText(QString::number(m_torrent->connectionsCount())+" ("+tr("%1 max", "e.g. 10 max").arg(QString::number(m_torrent->connectionsLimit()))+")"); else lbl_connections->setText(QString::number(m_torrent->connectionsLimit())); // Update next announce time reannounce_lbl->setText(Utils::Misc::userFriendlyDuration(m_torrent->nextAnnounce())); // Update ratio info const qreal ratio = m_torrent->realRatio(); shareRatio->setText(ratio > BitTorrent::TorrentHandle::MAX_RATIO ? QString::fromUtf8("∞") : Utils::String::fromDouble(ratio, 2)); if (!m_torrent->isSeed() && m_torrent->hasMetadata()) { showPiecesDownloaded(true); // Downloaded pieces downloaded_pieces->setProgress(m_torrent->pieces(), m_torrent->downloadingPieces()); // Pieces availability if (!m_torrent->isPaused() && !m_torrent->isQueued() && !m_torrent->isChecking()) { showPiecesAvailability(true); pieces_availability->setAvailability(m_torrent->pieceAvailability()); avail_average_lbl->setText(Utils::String::fromDouble(m_torrent->distributedCopies(), 3)); } else { showPiecesAvailability(false); } // Progress qreal progress = m_torrent->progress() * 100.; progress_lbl->setText(Utils::String::fromDouble(progress, 1)+"%"); } else { showPiecesAvailability(false); showPiecesDownloaded(false); } return; } if (stackedProperties->currentIndex() == PropTabBar::TRACKERS_TAB) { // Trackers trackerList->loadTrackers(); return; } if (stackedProperties->currentIndex() == PropTabBar::PEERS_TAB) { // Load peers peersList->loadPeers(m_torrent); return; } if (stackedProperties->currentIndex() == PropTabBar::FILES_TAB) { // Files progress if (m_torrent->hasMetadata()) { qDebug("Updating priorities in files tab"); filesList->setUpdatesEnabled(false); PropListModel->model()->updateFilesProgress(m_torrent->filesProgress()); // XXX: We don't update file priorities regularly for performance // reasons. This means that priorities will not be updated if // set from the Web UI. // PropListModel->model()->updateFilesPriorities(h.file_priorities()); filesList->setUpdatesEnabled(true); } } }