]> git.sur5r.net Git - minitube/blob - src/loadingwidget.cpp
ce830bad78b52d6cf4f076ea98502b952228a69f
[minitube] / src / loadingwidget.cpp
1 #include "loadingwidget.h"
2
3 LoadingWidget::LoadingWidget(QWidget *parent) : QWidget(parent) {
4
5     QPalette p = palette();
6     p.setBrush(QPalette::Window, Qt::black);
7     p.setBrush(QPalette::Text, Qt::white);
8     setPalette(p);
9
10     setAutoFillBackground(true);
11
12     QFont bigFont;
13     bigFont.setPointSize(bigFont.pointSize()*4);
14     QFontMetrics fm(bigFont);
15     int textHeightInPixels = fm.height();
16     int spacing = textHeightInPixels / 2;
17
18     QBoxLayout *layout = new QVBoxLayout();
19     layout->setSpacing(spacing);
20     layout->setMargin(spacing);
21
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);
30
31     QFont biggerFont;
32     biggerFont.setPointSize(biggerFont.pointSize()*2);
33
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);
42
43     /*
44     progressBar = new QProgressBar(this);
45     progressBar->hide();
46     layout->addWidget(progressBar);
47     */
48
49     setMouseTracking(true);
50
51     setLayout(layout);
52 }
53
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();
63 }
64
65 void LoadingWidget::setError(QString message) {
66     titleLabel->setText(tr("Error"));
67     descriptionLabel->setText(message);
68     // progressBar->hide();
69 }
70
71 void LoadingWidget::bufferStatus(int /* percent */) {
72     /*
73     qDebug() << percent;
74     progressBar->setShown(percent > 0);
75     progressBar->setValue(percent);
76     */
77 }
78
79 void LoadingWidget::clear() {
80     titleLabel->clear();
81     descriptionLabel->clear();
82     // progressBar->hide();
83 }