diff options
| author | Krzysztof Starecki <krzysztof.starecki@gmail.com> | 2018-12-31 02:15:47 +0100 |
|---|---|---|
| committer | Krzysztof Starecki <krzysztof.starecki@gmail.com> | 2018-12-31 02:15:47 +0100 |
| commit | 03823a433a27bb5f9a94973c47e1408dd83cc5c0 (patch) | |
| tree | ebcb4142544ed90d23519096c28a8add3f139961 /src/downloadlistwidget.cpp | |
| parent | c11ff7e2db09514304cef35a650aa3fbef27dd16 (diff) | |
Add qss styling options for progress bar and compact mode widgets
Diffstat (limited to 'src/downloadlistwidget.cpp')
| -rw-r--r-- | src/downloadlistwidget.cpp | 28 |
1 files changed, 15 insertions, 13 deletions
diff --git a/src/downloadlistwidget.cpp b/src/downloadlistwidget.cpp index 6a85c317..e908faf3 100644 --- a/src/downloadlistwidget.cpp +++ b/src/downloadlistwidget.cpp @@ -32,20 +32,22 @@ void DownloadProgressDelegate::paint(QPainter *painter, const QStyleOptionViewIt if (sourceIndex.column() == DownloadList::COL_STATUS && sourceIndex.row() < m_Manager->numTotalDownloads()
&& m_Manager->getState(sourceIndex.row()) == DownloadManager::STATE_DOWNLOADING) {
bool pendingDownload = sourceIndex.row() >= m_Manager->numTotalDownloads();
- QStyleOptionProgressBar progressBarOption;
- progressBarOption.state = QStyle::State_Enabled;
- progressBarOption.direction = QApplication::layoutDirection();
- progressBarOption.rect = option.rect;
- progressBarOption.fontMetrics = QApplication::fontMetrics();
- progressBarOption.minimum = 0;
- progressBarOption.maximum = 100;
- progressBarOption.textAlignment = Qt::AlignCenter;
- progressBarOption.textVisible = true;
- progressBarOption.progress = m_Manager->getProgress(sourceIndex.row()).first;
- progressBarOption.text = m_Manager->getProgress(sourceIndex.row()).second;
+ QProgressBar progressBarOption;
+ progressBarOption.setProperty("compact", option.widget->property("compact"));
+ progressBarOption.setMinimum(0);
+ progressBarOption.setMaximum(100);
+ progressBarOption.setAlignment(Qt::AlignCenter);
+ progressBarOption.resize(option.rect.width(), option.rect.height());
+ progressBarOption.setValue(m_Manager->getProgress(sourceIndex.row()).first);
+ progressBarOption.setFormat(m_Manager->getProgress(sourceIndex.row()).second);
- QApplication::style()->drawControl(QStyle::CE_ProgressBar,
- &progressBarOption, painter);
+ // paint the background with default delegate first to preserve table cell styling
+ QStyledItemDelegate::paint(painter, option, index);
+
+ painter->save();
+ painter->translate(option.rect.topLeft());
+ progressBarOption.render(painter);
+ painter->restore();
} else {
QStyledItemDelegate::paint(painter, option, index);
}
|
