10 #include <QApplication> 16 : QStyledItemDelegate { parent }
17 , ProgressGetter_ { std::move (progress) }
23 const auto& progress = ProgressGetter_ (index);
26 QStyledItemDelegate::paint (painter, option, index);
30 const auto style = option.widget ? option.widget->style () : QApplication::style ();
31 style->drawPrimitive (QStyle::PE_PanelItemViewItem, &option, painter, option.widget);
33 QStyleOptionProgressBar progressBarOption;
34 progressBarOption.state = option.state | QStyle::StateFlag::State_Horizontal;
35 progressBarOption.direction = option.direction;
36 progressBarOption.rect = option.rect;
37 progressBarOption.fontMetrics = option.fontMetrics;
38 progressBarOption.palette = option.palette;
39 progressBarOption.textAlignment = Qt::AlignCenter;
40 progressBarOption.textVisible =
true;
42 progressBarOption.minimum = progress->Minimum_;
43 progressBarOption.maximum = progress->Maximum_;
44 progressBarOption.progress = progress->Progress_;
47 style->drawControl (QStyle::CE_ProgressBar, &progressBarOption, painter, option.widget);
QString ElideProgressBarText(const QString &text, const QStyleOptionViewItem &option)
void paint(QPainter *, const QStyleOptionViewItem &, const QModelIndex &) const override
ProgressDelegate(ProgressGetter_t &&progress, QObject *parent=nullptr)
std::function< std::optional< Progress >(QModelIndex)> ProgressGetter_t