From cdce77962a24c07e4c5fb6a27f9679f98022af9f Mon Sep 17 00:00:00 2001 From: Christophe Dumez Date: Sat, 21 Nov 2009 20:01:09 +0000 Subject: [PATCH] - Display piece availability average next to the bar --- src/pieceavailabilitybar.h | 6 ++++-- src/propertieswidget.cpp | 5 ++++- src/ui/propertieswidget.ui | 7 +++++-- 3 files changed, 13 insertions(+), 5 deletions(-) diff --git a/src/pieceavailabilitybar.h b/src/pieceavailabilitybar.h index 9426eb7d8..180600e24 100644 --- a/src/pieceavailabilitybar.h +++ b/src/pieceavailabilitybar.h @@ -50,7 +50,8 @@ public: setFixedHeight(BAR_HEIGHT); } - void setAvailability(std::vector& avail) { + double setAvailability(std::vector& avail) { + double average = 0; if(avail.empty()) { // Empty bar pixmap = QPixmap(1, 1); @@ -59,7 +60,7 @@ public: painter.drawPoint(0,0); } else { // Look for maximum value - double average = std::accumulate(avail.begin(), avail.end(), 0)/(double)avail.size(); + average = std::accumulate(avail.begin(), avail.end(), 0)/(double)avail.size(); uint nb_pieces = avail.size(); pixmap = QPixmap(nb_pieces, 1); QPainter painter(&pixmap); @@ -70,6 +71,7 @@ public: } } update(); + return average; } void clear() { diff --git a/src/propertieswidget.cpp b/src/propertieswidget.cpp index 0365864e2..16cbcaef0 100644 --- a/src/propertieswidget.cpp +++ b/src/propertieswidget.cpp @@ -139,6 +139,7 @@ void PropertiesWidget::showPieceBars(bool show) { downloaded_pieces->setVisible(show); progress_lbl->setVisible(show); line_2->setVisible(show); + avail_average_lbl->setVisible(show); } void PropertiesWidget::reduce() { @@ -178,6 +179,7 @@ void PropertiesWidget::clear() { trackerList->clear(); downloaded_pieces->clear(); pieces_availability->clear(); + avail_average_lbl->clear(); wasted->clear(); upTotal->clear(); dlTotal->clear(); @@ -329,7 +331,8 @@ void PropertiesWidget::loadDynamicData() { // Pieces availability std::vector avail; h.piece_availability(avail); - pieces_availability->setAvailability(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)+"%"); } diff --git a/src/ui/propertieswidget.ui b/src/ui/propertieswidget.ui index 8fc5b4d4c..98d77e169 100644 --- a/src/ui/propertieswidget.ui +++ b/src/ui/propertieswidget.ui @@ -135,7 +135,7 @@ - + 50 @@ -143,7 +143,10 @@ - + 0.0 + + + Qt::AlignCenter