MCPcopy Create free account
hub / github.com/KDAB/GammaRay / paintEvent

Method paintEvent

plugins/quickinspector/geometryextension/sgwireframewidget.cpp:40–174  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

38SGWireframeWidget::~SGWireframeWidget() = default;
39
40void SGWireframeWidget::paintEvent(QPaintEvent *)
41{
42 if (!m_vertexModel || m_vertices.isEmpty() || m_positionColumn == -1)
43 return;
44
45 // Prepare painting
46 m_zoom = qMin((width() - 20) / m_geometryWidth, (height() - 20) / m_geometryHeight);
47
48 QPainter painter(this);
49 painter.setRenderHint(QPainter::Antialiasing);
50 painter.setPen(qApp->palette().color(QPalette::WindowText));
51 painter.setBrush(QBrush(Qt::black, Qt::SolidPattern));
52
53 // Paint
54 for (int i = 0; i < m_adjacencyList.size(); i++) {
55 // Calculate the index of the vertex we're supposed to draw a line from
56 const int index = m_adjacencyList[i];
57
58 if (index >= m_vertices.size())
59 continue;
60
61 // Draw highlighted faces
62 if ((m_drawingMode == GL_TRIANGLES && i % 3 == 2)
63 || (m_drawingMode == GL_TRIANGLE_STRIP && i >= 2)) {
64 drawHighlightedFace(&painter, QVector<int>() << index << m_adjacencyList[i - 1] << m_adjacencyList[i - 2]);
65 } else if (m_drawingMode == GL_TRIANGLE_FAN && i >= 2) {
66 drawHighlightedFace(&painter, QVector<int>() << index << m_adjacencyList[i - 1] << m_adjacencyList.first());
67 }
68
69#if !QT_CONFIG(opengles2)
70 else if ((m_drawingMode == GL_QUADS || m_drawingMode == GL_QUAD_STRIP) && i % 4 == 3) {
71 drawHighlightedFace(&painter,
72 QVector<int>() << index << m_adjacencyList[i - 1] << m_adjacencyList[i - 2] << m_adjacencyList[i - 3]);
73 } else if (m_drawingMode == GL_POLYGON && i == m_adjacencyList.size() - 1) {
74 QVector<int> vertices;
75 vertices.reserve(m_adjacencyList.size());
76 for (int j = 0; j < m_adjacencyList.size(); j++)
77 vertices << j;
78 drawHighlightedFace(&painter, vertices);
79 }
80#endif
81
82 // Draw wires
83
84 // Draw a connection to the previous vertex
85 if (((m_drawingMode == GL_LINES && i % 2)
86 || m_drawingMode == GL_LINE_LOOP
87 || m_drawingMode == GL_LINE_STRIP
88 || (m_drawingMode == GL_TRIANGLES && i % 3)
89 || m_drawingMode == GL_TRIANGLE_STRIP
90 || m_drawingMode == GL_TRIANGLE_FAN
91#if !QT_CONFIG(opengles2)
92 || (m_drawingMode == GL_QUADS && i % 4 != 0)
93 || (m_drawingMode == GL_QUAD_STRIP && i % 2)
94 || m_drawingMode == GL_POLYGON
95#endif
96 )
97 && i > 0) {

Callers

nothing calls this directly

Calls 6

paletteMethod · 0.80
reserveMethod · 0.80
saveMethod · 0.80
isEmptyMethod · 0.45
sizeMethod · 0.45
drawEllipseMethod · 0.45

Tested by

no test coverage detected