19 #include <QApplication>
20 #include <QMouseEvent>
21 #include <QPaintDevice>
23 #include <QStyleOptionProgressBarV2>
37 const QModelIndex& index)
const
39 if (option.state & QStyle::State_Selected)
40 painter->fillRect(option.rect, option.palette.highlight());
50 painter->setRenderHint(QPainter::Antialiasing,
true);
54 painter->drawText(textRect, text);
59 QStyleOptionButton button;
62 button.icon = QIcon(
":/images/dark-close.svg");
63 button.iconSize = QSize(12, 12);
65 QApplication::style()->drawControl(QStyle::CE_PushButton, &button, painter);
72 const QStyleOptionViewItem& option,
const QModelIndex& index)
74 if (event->type() == QEvent::MouseButtonPress || event->type() == QEvent::MouseButtonRelease) {
77 return QItemDelegate::editorEvent(event, model, option, index);
91 QMouseEvent* mouseEvent =
static_cast<QMouseEvent*
>(event);
92 if (!buttonRect.contains(mouseEvent->pos())) {
97 if (event->type() == QEvent::MouseButtonPress) {
99 }
else if (event->type() == QEvent::MouseButtonRelease) {
101 qDebug(
"JobListViewDelegate::editorEvent() -> cancel clicked");
108 const QStyleOptionViewItem& option)
const
114 painter->setRenderHint(QPainter::Antialiasing);
115 painter->setBrush(QColor(204, 223, 230));
116 painter->setPen(QColor(
"transparent"));
117 QRect rect2(rect.x(), rect.y(), rect.width(), rect.height());
118 painter->drawRoundedRect(rect2, 2, 2);
121 int progBarWidth = float((rect.width() * progress) / 100);
123 painter->setRenderHint(QPainter::Antialiasing);
124 painter->setPen(QColor(
"transparent"));
126 QRect rect5(rect.x(), rect.y(), progBarWidth, rect.height());
127 painter->drawRoundedRect(rect5, 2, 2);
134 int width = optionRect.width() * 0.4;
135 int height = optionRect.height();
136 int x = optionRect.x() + 3;
137 int y = optionRect.y();
138 QRect result(x, y, width, height);
145 int width = optionRect.width() * 0.4;
146 int height = optionRect.height() * 0.6;
147 int x = optionRect.x() + optionRect.width() * 0.5;
148 int y = optionRect.y() + (optionRect.height() - height) / 2.;
149 QRect result(x, y, width, height);
158 int x = optionRect.x() + optionRect.width() * 0.92;
159 int y = optionRect.y() + (optionRect.height() - height) / 2.;
160 QRect result(x, y, width, height);
#define ASSERT(condition)
Defines class JobListViewDelegate.
QString getStatus() const
JobListViewDelegate(QWidget *parent)
bool editorEvent(QEvent *event, QAbstractItemModel *model, const QStyleOptionViewItem &option, const QModelIndex &index)
void paint(QPainter *painter, const QStyleOptionViewItem &option, const QModelIndex &index) const
void cancelButtonClicked(const QModelIndex &index)
QRect getProgressBarRect(QRect optionRect) const
returns rectangle for progress bar
QStyle::State m_buttonState
QRect getTextRect(QRect optionRect) const
returns rectangle for text
QRect getButtonRect(QRect optionRect) const
returns rectangle for button
QMap< QString, QColor > m_status_to_color
void drawCustomProjectBar(const JobItem *item, QPainter *painter, const QStyleOptionViewItem &option) const
const JobItem * getJobItemForIndex(const QModelIndex &index) const
QString itemName() const
Get item name, return display name if no name is set.