class TimeItem;
class ViewItem;
+struct TickPositions
+{
+ vector<pair<double, QString>> major;
+ vector<double> minor;
+};
+
/**
* The Ruler class manages and displays the time scale above the trace canvas.
* It may also contain @ref TimeItem instances used to identify or highlight
/// Height of the ruler in multipes of the text height
static const float RulerHeight;
- static const int MinorTickSubdivision;
-
/// Height of the hover arrow in multiples of the text height
static const float HoverArrowSize;
public:
Ruler(View &parent);
-public:
QSize sizeHint() const override;
/**
unsigned precision = 0,
bool sign = true);
+ pv::util::Timestamp get_absolute_time_from_x_pos(uint32_t x) const;
+ pv::util::Timestamp get_ruler_time_from_x_pos(uint32_t x) const;
+
+protected:
+ virtual void contextMenuEvent(QContextMenuEvent *event) override;
+ void resizeEvent(QResizeEvent*) override;
+
private:
/**
* Gets the time items.
*/
shared_ptr<ViewItem> get_mouse_over_item(const QPoint &pt) override;
- void paintEvent(QPaintEvent *event) override;
-
void mouseDoubleClickEvent(QMouseEvent *event) override;
+ void paintEvent(QPaintEvent *event) override;
+
/**
* Draw a hover arrow under the cursor position.
* @param p The painter to draw into.
int calculate_text_height() const;
- struct TickPositions
- {
- vector<pair<double, QString>> major;
- vector<double> minor;
- };
-
- /**
- * Holds the tick positions so that they don't have to be recalculated on
- * every redraw. Set by 'paintEvent()' when needed.
- */
- boost::optional<TickPositions> tick_position_cache_;
-
/**
* Calculates the major and minor tick positions.
*
const pv::util::Timestamp& offset,
const double scale,
const int width,
+ const unsigned int minor_tick_count,
function<QString(const pv::util::Timestamp&)> format_function);
-protected:
- void resizeEvent(QResizeEvent*) override;
-
private Q_SLOTS:
- void hover_point_changed(const QPoint &hp);
+ void on_hover_point_changed(const QWidget* widget, const QPoint &hp);
- // Resets the 'tick_position_cache_'.
void invalidate_tick_position_cache();
+
+ void on_createMarker();
+ void on_setZeroPosition();
+ void on_toggleHoverMarker();
+
+private:
+ /**
+ * Holds the tick positions so that they don't have to be recalculated on
+ * every redraw. Set by 'paintEvent()' when needed.
+ */
+ boost::optional<TickPositions> tick_position_cache_;
+
+ uint32_t context_menu_x_pos_;
};
} // namespace trace