comparison layer/SliceLayer.cpp @ 1284:51e6125627fa

Hack to ensure vertical scale lines are in the right place in pixel-doubling rendering
author Chris Cannam
date Tue, 08 May 2018 14:27:54 +0100
parents fc9d9f1103fa
children d79e21855aef
comparison
equal deleted inserted replaced
1283:6e35062fc10a 1284:51e6125627fa
371 paint.setBrush(Qt::NoBrush); 371 paint.setBrush(Qt::NoBrush);
372 372
373 if (v->getViewManager() && v->getViewManager()->shouldShowScaleGuides()) { 373 if (v->getViewManager() && v->getViewManager()->shouldShowScaleGuides()) {
374 if (!m_scalePoints.empty()) { 374 if (!m_scalePoints.empty()) {
375 paint.setPen(QColor(240, 240, 240)); //!!! and dark background? 375 paint.setPen(QColor(240, 240, 240)); //!!! and dark background?
376 int ratio = int(round(double(v->getPaintHeight()) /
377 m_scalePaintHeight));
376 for (int i = 0; i < (int)m_scalePoints.size(); ++i) { 378 for (int i = 0; i < (int)m_scalePoints.size(); ++i) {
377 paint.drawLine(0, m_scalePoints[i], rect.width(), m_scalePoints[i]); 379 paint.drawLine(0, m_scalePoints[i] * ratio,
380 rect.width(), m_scalePoints[i] * ratio);
378 } 381 }
379 } 382 }
380 } 383 }
381 384
382 if (m_plotStyle == PlotBlocks) { 385 if (m_plotStyle == PlotBlocks) {
552 (paint, actual, thresh, 1.0 / m_gain, 555 (paint, actual, thresh, 1.0 / m_gain,
553 PaintAssistant::Scale(m_energyScale), 556 PaintAssistant::Scale(m_energyScale),
554 mult, 557 mult,
555 const_cast<std::vector<int> *>(&m_scalePoints)); 558 const_cast<std::vector<int> *>(&m_scalePoints));
556 559
560 // Ugly hack (but then everything about this scale drawing is a
561 // bit ugly). In pixel-doubling hi-dpi scenarios, the scale is
562 // painted at pixel-doubled resolution but we do explicit
563 // pixel-doubling ourselves when painting the layer content. We
564 // make a note of this here so that we can compare with the
565 // equivalent dimension in the paint method when deciding where to
566 // place scale continuation lines.
567 m_scalePaintHeight = v->getPaintHeight();
568
557 if (mult != 1 && mult != 0) { 569 if (mult != 1 && mult != 0) {
558 int log = int(lrint(log10(mult))); 570 int log = int(lrint(log10(mult)));
559 QString a = tr("x10"); 571 QString a = tr("x10");
560 QString b = QString("%1").arg(-log); 572 QString b = QString("%1").arg(-log);
561 paint.drawText(3, 8 + paint.fontMetrics().ascent(), a); 573 paint.drawText(3, 8 + paint.fontMetrics().ascent(), a);