#include "platform.h"
const int TranslucentButton::pixels = 95;
+const int TranslucentButton::elevatorInterval = 750;
TranslucentButton::TranslucentButton(const QString &name_, QWidget *parent):
QLabel(parent), name(name_), transparent(true)
{
- setGeometry(0, 0, pixels, pixels);
- timer = new QTimer(this);
- timer->setSingleShot(true);
- connect(timer, SIGNAL(timeout()), this, SLOT(stopFlash()));
- show();
+ setFixedSize(pixels, pixels);
+ elevatorTimer = startTimer(elevatorInterval);
+}
+
+TranslucentButton::~TranslucentButton()
+{
+ killTimer(elevatorTimer);
}
void TranslucentButton::paintEvent(QPaintEvent *)
QPainter painter(this);
if (!transparent) {
painter.setRenderHint(QPainter::Antialiasing, true);
- painter.drawPixmap(0, 0, QPixmap(Platform::icon(name)).scaled(
+ painter.drawPixmap(0, 0, QPixmap(Platform::instance()->icon(name)).scaled(
QSize(pixels, pixels), Qt::IgnoreAspectRatio,
Qt::SmoothTransformation));
} else {
void TranslucentButton::flash(int duration)
{
- show();
raise();
+ show();
transparent = false;
update();
- timer->start(duration);
+ QTimer::singleShot(duration, this, SLOT(stopFlash()));
}
void TranslucentButton::stopFlash()
emit triggered();
e->accept();
}
+
+void TranslucentButton::timerEvent(QTimerEvent *e)
+{
+ if (e->timerId() == elevatorTimer) {
+ raise();
+ }
+ QLabel::timerEvent(e);
+}