]> git.sur5r.net Git - minitube/blob - src/faderwidget/FaderWidget.cpp
Imported Upstream version 1.5
[minitube] / src / faderwidget / FaderWidget.cpp
1 #include "FaderWidget.h"
2
3 // http://labs.trolltech.com/blogs/2007/08/21/fade-effects-a-blast-from-the-past/
4
5 FaderWidget::FaderWidget(QWidget *parent) : QWidget(parent) {
6     timeLine = new QTimeLine(250, this);
7     timeLine->setFrameRange(1000, 0);
8     connect(timeLine, SIGNAL(frameChanged(int)), this, SLOT(update()));
9     setAttribute(Qt::WA_DeleteOnClose);
10     resize(parent->size());
11 }
12
13 void FaderWidget::start(QPixmap frozenView) {
14     this->frozenView = frozenView;
15     timeLine->start();
16     show();
17 }
18
19 void FaderWidget::paintEvent(QPaintEvent *) {
20     const qreal opacity = timeLine->currentFrame() / 1000.;
21     QPainter painter(this);
22     painter.setOpacity(opacity);
23     painter.drawPixmap(0, 0, frozenView);
24     // qDebug() << opacity;
25
26     if (opacity <= 0.)
27         close();
28
29 }