#include <cstdint>
-#include "signalscalehandle.hpp"
#include "trace.hpp"
#include "viewitemowner.hpp"
namespace views {
namespace trace {
+/**
+ * The Signal class represents a series of numeric values that can be drawn.
+ * This is the main difference to the more generic @ref Trace class.
+ *
+ * It is generally accepted that Signal instances consider themselves to be
+ * individual channels on e.g. an oscilloscope, though it should be kept in
+ * mind that virtual signals (e.g. math) will also be served by the Signal
+ * class.
+ */
class Signal : public Trace, public ViewItemOwner
{
Q_OBJECT
virtual void restore_settings(QSettings &settings);
- /**
- * Returns a list of row items owned by this object.
- */
- const item_list& child_items() const;
-
void paint_back(QPainter &p, ViewItemPaintParams &pp);
virtual void populate_popup_form(QWidget *parent, QFormLayout *form);
void delete_pressed();
- /**
- * Returns the offset to show the drag handle.
- */
- virtual int scale_handle_offset() const = 0;
-
- /**
- * Handles the scale handle being dragged to an offset.
- * @param offset the offset the scale handle was dragged to.
- */
- virtual void scale_handle_dragged(int offset) = 0;
-
- /**
- * Handles the scale handle being being released.
- */
- virtual void scale_handle_released() {};
-
protected Q_SLOTS:
virtual void on_name_changed(const QString &text);
protected:
pv::Session &session_;
- const shared_ptr<SignalScaleHandle> scale_handle_;
- const item_list items_;
-
QComboBox *name_widget_;
};