]> git.sur5r.net Git - minitube/blob - src/messagebar.cpp
Upload 3.9.3-2 to unstable
[minitube] / src / messagebar.cpp
1 #include "messagebar.h"
2 #include "iconutils.h"
3
4 MessageBar::MessageBar(QWidget *parent) : QWidget(parent) {
5     setSizePolicy(QSizePolicy::Minimum, QSizePolicy::Minimum);
6
7     QBoxLayout *layout = new QHBoxLayout(this);
8     layout->setSpacing(16);
9
10     msgLabel = new QLabel();
11     connect(msgLabel, &QLabel::linkActivated, this, &MessageBar::linkActivated);
12     layout->addWidget(msgLabel);
13
14     QToolButton *closeToolButton = new QToolButton();
15     closeToolButton->setIcon(IconUtils::icon("close"));
16     connect(closeToolButton, &QToolButton::clicked, this, [this] {
17         emit closed();
18         hide();
19     });
20     layout->addWidget(closeToolButton);
21 }
22
23 void MessageBar::setMessage(const QString &message) {
24     msgLabel->setText(message);
25 }
26
27 void MessageBar::setOpenExternalLinks(bool value) {
28     msgLabel->setOpenExternalLinks(value);
29 }
30
31 void MessageBar::paintEvent(QPaintEvent *e) {
32     Q_UNUSED(e);
33     QStyleOption o;
34     o.initFrom(this);
35     QPainter p(this);
36     style()->drawPrimitive(QStyle::PE_Widget, &o, &p, this);
37 }