1 #include "loadingwidget.h"
3 LoadingWidget::LoadingWidget(QWidget *parent) : QWidget(parent) {
5 QPalette p = palette();
6 p.setBrush(QPalette::Window, Qt::black);
7 p.setBrush(QPalette::Text, Qt::white);
10 setAutoFillBackground(true);
13 bigFont.setPointSize(bigFont.pointSize()*4);
14 QFontMetrics fm(bigFont);
15 int textHeightInPixels = fm.height();
16 int spacing = textHeightInPixels / 2;
18 QBoxLayout *layout = new QVBoxLayout();
19 layout->setSpacing(spacing);
20 layout->setMargin(spacing);
22 titleLabel = new QLabel(this);
23 titleLabel->setAlignment(Qt::AlignHCenter | Qt::AlignBottom);
24 titleLabel->setPalette(p);
25 titleLabel->setForegroundRole(QPalette::Text);
26 titleLabel->setWordWrap(true);
27 titleLabel->setFont(bigFont);
28 titleLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
29 layout->addWidget(titleLabel);
32 biggerFont.setPointSize(biggerFont.pointSize()*2);
34 descriptionLabel = new QLabel(this);
35 descriptionLabel->setAlignment(Qt::AlignHCenter | Qt::AlignTop);
36 descriptionLabel->setPalette(p);
37 descriptionLabel->setForegroundRole(QPalette::Text);
38 descriptionLabel->setWordWrap(true);
39 descriptionLabel->setFont(biggerFont);
40 descriptionLabel->setSizePolicy(QSizePolicy::Expanding, QSizePolicy::Expanding);
41 layout->addWidget(descriptionLabel);
44 progressBar = new QProgressBar(this);
46 layout->addWidget(progressBar);
49 setMouseTracking(true);
54 void LoadingWidget::setVideo(Video *video) {
55 QString title = video->title();
56 // enhance legibility by splitting the title
57 title = title.replace(" - ", "<p>");
58 title = title.replace("] ", "]<p>");
59 title = title.replace(" [", "<p>[");
60 titleLabel->setText(title);
61 descriptionLabel->setText(video->description());
62 // progressBar->hide();
65 void LoadingWidget::setError(QString message) {
66 titleLabel->setText(tr("Error"));
67 descriptionLabel->setText(message);
68 // progressBar->hide();
71 void LoadingWidget::bufferStatus(int /* percent */) {
74 progressBar->setShown(percent > 0);
75 progressBar->setValue(percent);
79 void LoadingWidget::clear() {
81 descriptionLabel->clear();
82 // progressBar->hide();