diff options
| author | Mikaƫl Capelle <capelle.mikael@gmail.com> | 2023-07-09 17:36:03 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2023-07-09 17:36:03 +0200 |
| commit | ef94aee28464039672b277243a0181ae93550d6c (patch) | |
| tree | 0575a68af5f154e9d6d0738edbaefb16a11d6f5c /src/viewmarkingscrollbar.cpp | |
| parent | 7d6cb8528d20e36a4cee822263865ee2f7f32481 (diff) | |
| parent | 3de050e9c03e553f7ae3f780f6bd080a30ae123e (diff) | |
Merge pull request #1839 from Holt59/ci/initial-gh-action-for-build
Clang-Format + Github Workflow
Diffstat (limited to 'src/viewmarkingscrollbar.cpp')
| -rw-r--r-- | src/viewmarkingscrollbar.cpp | 111 |
1 files changed, 56 insertions, 55 deletions
diff --git a/src/viewmarkingscrollbar.cpp b/src/viewmarkingscrollbar.cpp index 56754237..7fe5c1c3 100644 --- a/src/viewmarkingscrollbar.cpp +++ b/src/viewmarkingscrollbar.cpp @@ -1,55 +1,56 @@ -#include "viewmarkingscrollbar.h"
-#include "modelutils.h"
-#include <QStyle>
-#include <QStyleOptionSlider>
-#include <QPainter>
-
-using namespace MOShared;
-
-ViewMarkingScrollBar::ViewMarkingScrollBar(QTreeView* view, int role)
- : QScrollBar(view)
- , m_view(view)
- , m_role(role)
-{
- // not implemented for horizontal sliders
- Q_ASSERT(this->orientation() == Qt::Vertical);
-}
-
-QColor ViewMarkingScrollBar::color(const QModelIndex& index) const
-{
- auto data = index.data(m_role);
- if (data.canConvert<QColor>()) {
- return data.value<QColor>();
- }
- return QColor();
-}
-
-void ViewMarkingScrollBar::paintEvent(QPaintEvent* event)
-{
- if (m_view->model() == nullptr) {
- return;
- }
- QScrollBar::paintEvent(event);
-
- QStyleOptionSlider styleOption;
- initStyleOption(&styleOption);
-
- QPainter painter(this);
-
- QRect handleRect = style()->subControlRect(QStyle::CC_ScrollBar, &styleOption, QStyle::SC_ScrollBarSlider, this);
- QRect innerRect = style()->subControlRect(QStyle::CC_ScrollBar, &styleOption, QStyle::SC_ScrollBarGroove, this);
-
- auto indices = visibleIndex(m_view, 0);
-
- painter.translate(innerRect.topLeft() + QPoint(0, 3));
- qreal scale = static_cast<qreal>(innerRect.height() - 3) / static_cast<qreal>(indices.size());
-
- for (int i = 0; i < indices.size(); ++i) {
- QColor color = this->color(indices[i]);
- if (color.isValid()) {
- painter.setPen(color);
- painter.setBrush(color);
- painter.drawRect(QRect(2, i * scale - 2, handleRect.width() - 5, 3));
- }
- }
-}
+#include "viewmarkingscrollbar.h" +#include "modelutils.h" +#include <QPainter> +#include <QStyle> +#include <QStyleOptionSlider> + +using namespace MOShared; + +ViewMarkingScrollBar::ViewMarkingScrollBar(QTreeView* view, int role) + : QScrollBar(view), m_view(view), m_role(role) +{ + // not implemented for horizontal sliders + Q_ASSERT(this->orientation() == Qt::Vertical); +} + +QColor ViewMarkingScrollBar::color(const QModelIndex& index) const +{ + auto data = index.data(m_role); + if (data.canConvert<QColor>()) { + return data.value<QColor>(); + } + return QColor(); +} + +void ViewMarkingScrollBar::paintEvent(QPaintEvent* event) +{ + if (m_view->model() == nullptr) { + return; + } + QScrollBar::paintEvent(event); + + QStyleOptionSlider styleOption; + initStyleOption(&styleOption); + + QPainter painter(this); + + QRect handleRect = style()->subControlRect(QStyle::CC_ScrollBar, &styleOption, + QStyle::SC_ScrollBarSlider, this); + QRect innerRect = style()->subControlRect(QStyle::CC_ScrollBar, &styleOption, + QStyle::SC_ScrollBarGroove, this); + + auto indices = visibleIndex(m_view, 0); + + painter.translate(innerRect.topLeft() + QPoint(0, 3)); + qreal scale = + static_cast<qreal>(innerRect.height() - 3) / static_cast<qreal>(indices.size()); + + for (int i = 0; i < indices.size(); ++i) { + QColor color = this->color(indices[i]); + if (color.isValid()) { + painter.setPen(color); + painter.setBrush(color); + painter.drawRect(QRect(2, i * scale - 2, handleRect.width() - 5, 3)); + } + } +} |
