From 65dade566fb2371e3c6c2dd68ff9101c542f1ca0 Mon Sep 17 00:00:00 2001 From: Flavio Date: Sat, 29 Jan 2011 22:09:34 +0100 Subject: [PATCH] Monochrome flat progress bar --- src/loadingwidget.cpp | 31 ++++++++++++++++++++++++------- src/loadingwidget.h | 5 ++--- 2 files changed, 26 insertions(+), 10 deletions(-) diff --git a/src/loadingwidget.cpp b/src/loadingwidget.cpp index ce830ba..a1c81dd 100644 --- a/src/loadingwidget.cpp +++ b/src/loadingwidget.cpp @@ -40,11 +40,14 @@ LoadingWidget::LoadingWidget(QWidget *parent) : QWidget(parent) { descriptionLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding); layout->addWidget(descriptionLabel); - /* progressBar = new QProgressBar(this); - progressBar->hide(); + progressBar->setAutoFillBackground(false); + progressBar->setBackgroundRole(QPalette::Window); + progressBar->setPalette(p); + // progressBar->hide(); + progressBar->setStyleSheet("QProgressBar {max-height:3px; background:black; border:0} QProgressBar::chunk {background:white}"); + progressBar->setTextVisible(false); layout->addWidget(progressBar); - */ setMouseTracking(true); @@ -60,24 +63,38 @@ void LoadingWidget::setVideo(Video *video) { titleLabel->setText(title); descriptionLabel->setText(video->description()); // progressBar->hide(); + progressBar->setValue(0); + startTime.start(); } void LoadingWidget::setError(QString message) { titleLabel->setText(tr("Error")); descriptionLabel->setText(message); // progressBar->hide(); + progressBar->setValue(0); } -void LoadingWidget::bufferStatus(int /* percent */) { +void LoadingWidget::bufferStatus(int percent) { + // qDebug() << percent; + /* - qDebug() << percent; - progressBar->setShown(percent > 0); + if (progressBar->isHidden() && percent > 0) { + progressBar->show(); + QPropertyAnimation *animation = new QPropertyAnimation(progressBar, "opacity"); + animation->setDuration(1000); + animation->setStartValue(0.0); + animation->setEndValue(1.0); + animation->start(); + }*/ + // progressBar->setShown(percent > 0); + if (startTime.elapsed() < 1000) return; + if (progressBar->value() == 0 && percent > 80) return; progressBar->setValue(percent); - */ } void LoadingWidget::clear() { titleLabel->clear(); descriptionLabel->clear(); // progressBar->hide(); + progressBar->setValue(0); } diff --git a/src/loadingwidget.h b/src/loadingwidget.h index 77a3b1d..96a8b44 100644 --- a/src/loadingwidget.h +++ b/src/loadingwidget.h @@ -20,9 +20,8 @@ public slots: private: QLabel *titleLabel; QLabel *descriptionLabel; - // TODO uncomment the whole progress bar feature - // when the Phonon backends will correctly emit bufferStatus(int) - // QProgressBar *progressBar; + QProgressBar *progressBar; + QTime startTime; }; -- 2.39.5