1 | #include "JobButton.h" |
---|---|
2 | |
3 | #include <JenkinsJobInfo.h> |
4 | |
5 | #include <QLabel> |
6 | #include <QIcon> |
7 | #include <QHBoxLayout> |
8 | #include <QMouseEvent> |
9 | |
10 | namespace Jenkins |
11 | { |
12 | JobButton::JobButton(const JenkinsJobInfo &job, QWidget *parent) |
13 | : QFrame(parent) |
14 | , mJob(job) |
15 | { |
16 | mJob.name.replace("%2F", "/"); |
17 | mJob.color.remove("_anime"); |
18 | |
19 | if (mJob.color.contains("blue")) |
20 | mJob.color = "green"; |
21 | else if (mJob.color.contains("disabled") || mJob.color.contains( "grey") || mJob.color.contains( "notbuilt")) |
22 | mJob.color = "grey"; |
23 | else if (mJob.color.contains("aborted")) |
24 | mJob.color = "dark_grey"; |
25 | |
26 | const auto icon = new QLabel(); |
27 | icon->setPixmap(QIcon(QString(":/icons/%1").arg(mJob.color)).pixmap(22, 22)); |
28 | |
29 | const auto layout = new QHBoxLayout(this); |
30 | layout->setContentsMargins(QMargins()); |
31 | layout->setSpacing(20); |
32 | layout->addWidget(icon); |
33 | layout->addWidget(new QLabel(mJob.name)); |
34 | layout->addStretch(); |
35 | } |
36 | |
37 | void JobButton::mousePressEvent(QMouseEvent *e) |
38 | { |
39 | mPressed = rect().contains(e->pos()) && e->button() == Qt::LeftButton; |
40 | } |
41 | |
42 | void JobButton::mouseReleaseEvent(QMouseEvent *e) |
43 | { |
44 | if (mPressed && rect().contains(e->pos()) && e->button() == Qt::LeftButton) |
45 | emit clicked(); |
46 | } |
47 | |
48 | } |
49 |