CursorHeader: Use the same number format as the ruler.
[pulseview.git] / pv / view / cursorheader.cpp
index d1660276417d65a79e42a628aeee87cfd92bc716..6592acd4d06d43490688f4484dd12c6cbe282dfe 100644 (file)
 
 #include "cursorheader.h"
 
+#include "ruler.h"
 #include "view.h"
 
 #include <QApplication>
+#include <QFontMetrics>
 #include <QMouseEvent>
 
 #include <pv/widgets/popup.h>
@@ -32,18 +34,26 @@ using std::shared_ptr;
 namespace pv {
 namespace view {
 
-const int CursorHeader::CursorHeaderHeight = 26;
+const int CursorHeader::Padding = 20;
+
+int CursorHeader::calculateTextHeight()
+{
+       QFontMetrics fm(font());
+       return fm.boundingRect(0, 0, INT_MAX, INT_MAX,
+               Qt::AlignLeft | Qt::AlignTop, "8").height();
+}
 
 CursorHeader::CursorHeader(View &parent) :
        MarginWidget(parent),
-       _dragging(false)
+       _dragging(false),
+       _textHeight(calculateTextHeight())
 {
        setMouseTracking(true);
 }
 
 QSize CursorHeader::sizeHint() const
 {
-       return QSize(0, CursorHeaderHeight);
+       return QSize(0, _textHeight + Padding);
 }
 
 void CursorHeader::clear_selection()
@@ -59,9 +69,12 @@ void CursorHeader::paintEvent(QPaintEvent*)
        QPainter p(this);
        p.setRenderHint(QPainter::Antialiasing);
 
+       unsigned int prefix = pv::view::Ruler::calculate_tick_spacing(
+               p, _view.scale(), _view.offset()).second;
+
        // Draw the cursors
        if (_view.cursors_shown()) {
-               _view.cursors().draw_markers(p, rect(), 0); //prefix);
+               _view.cursors().draw_markers(p, rect(), prefix);
        }
 }