+void SmallRuler::updatePixmap()
+{
+ m_pixmap = QPixmap(width(), height());
+ m_pixmap.fill(palette().window().color());
+ QPainter p(&m_pixmap);
+ double f, fend;
+
+ const int zoneStart = (int)(m_zoneStart * m_scale);
+ const int zoneEnd = (int)(m_zoneEnd * m_scale);
+ p.fillRect(zoneStart, height() / 2 - 1, zoneEnd - zoneStart, height() / 2, m_zoneColor);
+
+ // draw markers
+ if (!m_markers.isEmpty()) {
+ p.setPen(Qt::red);
+ for (int i = 0; i < m_markers.count(); i++) {
+ p.drawLine(m_markers.at(i) * m_scale, 0, m_markers.at(i) * m_scale, 9);
+ }
+ }
+ p.setPen(palette().dark().color());
+ // draw the little marks
+ fend = m_scale * m_small;
+ if (fend > 2) for (f = 0; f < width(); f += fend) {
+ p.drawLine((int)f, 0, (int)f, 3);
+ }
+
+ // draw medium marks
+ fend = m_scale * m_medium;
+ if (fend > 2) for (f = 0; f < width(); f += fend) {
+ p.drawLine((int)f, 0, (int)f, 6);
+ }
+ p.end();
+ update();
+}
+