#include <QPainter>
+using namespace std;
+
namespace pv {
namespace view {
-TimeMarker::TimeMarker(const View &view, const QColor &colour,
- double time) :
+TimeMarker::TimeMarker(View &view, const QColor &colour, double time) :
_view(view),
_colour(colour),
- _time(time)
+ _time(time),
+ _value_action(&view),
+ _value_widget(&view),
+ _updating_value_widget(false)
{
-}
+ _value_action.setDefaultWidget(&_value_widget);
-TimeMarker::TimeMarker(const TimeMarker &s) :
- _view(s._view),
- _colour(s._colour),
- _time(s._time)
-{
+ _value_widget.setValue(time);
+ _value_widget.setDecimals(6);
+ _value_widget.setSuffix("s");
+ _value_widget.setSingleStep(1e-6);
+
+ connect(&_value_widget, SIGNAL(valueChanged(double)),
+ this, SLOT(on_value_changed(double)));
}
double TimeMarker::time() const
void TimeMarker::set_time(double time)
{
_time = time;
+ _updating_value_widget = true;
+ _value_widget.setValue(time);
+ _updating_value_widget = false;
time_changed();
}
p.drawLine(QPointF(x, rect.top()), QPointF(x, rect.bottom()));
}
+const list<QAction*> TimeMarker::get_context_bar_actions()
+{
+ list<QAction*> actions;
+ actions.push_back(&_value_action);
+ return actions;
+}
+
+void TimeMarker::on_value_changed(double value)
+{
+ if (!_updating_value_widget) {
+ _time = value;
+ time_changed();
+ }
+}
+
} // namespace view
} // namespace pv