* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
*/
-#ifndef PULSEVIEW_PV_VIEW_VIEW_H
-#define PULSEVIEW_PV_VIEW_VIEW_H
+#ifndef PULSEVIEW_PV_VIEW_VIEW_HPP
+#define PULSEVIEW_PV_VIEW_VIEW_HPP
#include <stdint.h>
#include "flag.hpp"
#include "rowitemowner.hpp"
+namespace sigrok {
+class ChannelGroup;
+}
+
namespace pv {
class Session;
class CursorHeader;
class Header;
class Ruler;
+class Trace;
class Viewport;
class View : public QAbstractScrollArea, public RowItemOwner {
static const int ScaleUnits[3];
-public:
- static const QSizeF LabelPadding;
-
public:
explicit View(Session &session, QWidget *parent = 0);
* seconds.
*/
double offset() const;
+
+ /**
+ * Returns the vertical scroll offset.
+ */
int owner_visual_v_offset() const;
+ /**
+ * Sets the visual v-offset.
+ */
+ void set_v_offset(int offset);
+
/**
* Returns the SI prefix to apply to the graticule time markings.
*/
Q_SIGNALS:
void hover_point_changed();
- void signals_moved();
-
void selection_changed();
void scale_offset_changed();
*/
QRectF label_rect(const QRectF &rect);
- static bool add_channels_to_owner(
+ RowItemOwner* find_prevalent_trace_group(
+ const std::shared_ptr<sigrok::ChannelGroup> &group,
+ const std::unordered_map<std::shared_ptr<sigrok::Channel>,
+ std::shared_ptr<Signal> > &signal_map);
+
+ static std::vector< std::shared_ptr<Trace> >
+ extract_new_traces_for_channels(
const std::vector< std::shared_ptr<sigrok::Channel> > &channels,
- RowItemOwner *owner, int &offset,
- std::unordered_map<std::shared_ptr<sigrok::Channel>,
+ const std::unordered_map<std::shared_ptr<sigrok::Channel>,
std::shared_ptr<Signal> > &signal_map,
- std::function<bool (std::shared_ptr<RowItem>)> filter_func =
- std::function<bool (std::shared_ptr<RowItem>)>());
-
- static void apply_offset(
- std::shared_ptr<RowItem> row_item, int &offset);
+ std::set< std::shared_ptr<Trace> > &add_list);
private:
bool eventFilter(QObject *object, QEvent *event);
private Q_SLOTS:
void h_scroll_value_changed(int value);
- void v_scroll_value_changed(int value);
+ void v_scroll_value_changed();
void signals_changed();
void data_updated();
- void on_signals_moved();
-
void process_sticky_events();
void on_hover_point_changed();
/// The view time offset in seconds.
double offset_;
- int v_offset_;
bool updating_scroll_;
double tick_period_;
} // namespace view
} // namespace pv
-#endif // PULSEVIEW_PV_VIEW_VIEW_H
+#endif // PULSEVIEW_PV_VIEW_VIEW_HPP