#include "header.h"
#include "ruler.h"
+#include "signal.h"
#include "view.h"
#include "viewport.h"
const int View::MaxScrollValue = INT_MAX / 2;
const int View::SignalHeight = 50;
+const int View::SignalSnapGridSize = 10;
const QColor View::CursorAreaColour(220, 231, 243);
+const QSizeF View::LabelPadding(4, 0);
+
View::View(SigSession &session, QWidget *parent) :
QAbstractScrollArea(parent),
_session(session),
connect(&_cursors.second, SIGNAL(time_changed()),
this, SLOT(marker_time_changed()));
+ connect(_header, SIGNAL(signals_moved()),
+ this, SLOT(on_signals_moved()));
+
setViewportMargins(LabelMarginWidth, RulerHeight, 0, 0);
setViewport(_viewport);
_viewport->get_total_height() - areaSize.height());
}
+void View::reset_signal_layout()
+{
+ int offset = 0;
+ vector< shared_ptr<Signal> > &sigs = _session.get_signals();
+ BOOST_FOREACH(shared_ptr<Signal> s, sigs) {
+ s->set_v_offset(offset);
+ offset += SignalHeight;
+ }
+}
+
bool View::eventFilter(QObject *object, QEvent *event)
{
const QEvent::Type type = event->type();
// Repaint the view
_viewport->update();
+
+ /// @todo: Call this only once when the signals are first created.
+ reset_signal_layout();
}
void View::marker_time_changed()
_viewport->update();
}
+void View::on_signals_moved()
+{
+ update_scroll();
+ signals_moved();
+}
+
} // namespace view
} // namespace pv