]> sigrok.org Git - pulseview.git/blobdiff - pv/view/signal.cpp
RowItemOwner: Replaced parent notification scheme
[pulseview.git] / pv / view / signal.cpp
index 51af899ee4d814d8703e92c33ebfe135142cd6ad..54c9c9828e5c52fd691e63e117a2eddd03e6f68b 100644 (file)
 #include <QLineEdit>
 #include <QMenu>
 
-#include <libsigrok/libsigrok.h>
+#include <libsigrok/libsigrok.hpp>
 
 #include "signal.h"
 #include "view.h"
 
-#include <pv/device/devinst.h>
-
 using std::shared_ptr;
 
+using sigrok::Channel;
+
 namespace pv {
 namespace view {
 
@@ -58,10 +58,10 @@ const char *const ChannelNames[] = {
        "SCL"
 };
 
-Signal::Signal(shared_ptr<pv::device::DevInst> dev_inst,
-       const sr_channel *const channel) :
-       Trace(channel->name),
-       _dev_inst(dev_inst),
+Signal::Signal(pv::SigSession &session,
+       std::shared_ptr<sigrok::Channel> channel) :
+       Trace(channel->name().c_str()),
+       _session(session),
        _channel(channel),
        _name_widget(NULL),
        _updating_name_widget(false)
@@ -79,16 +79,18 @@ void Signal::set_name(QString name)
 
 bool Signal::enabled() const
 {
-       return _channel->enabled;
+       return _channel->enabled();
 }
 
 void Signal::enable(bool enable)
 {
-       _dev_inst->enable_channel(_channel, enable);
-       visibility_changed();
+       _channel->set_enabled(enable);
+
+       if (_owner)
+               _owner->extents_changed(true, true);
 }
 
-const sr_channel* Signal::channel() const
+shared_ptr<Channel> Signal::channel() const
 {
        return _channel;
 }
@@ -112,9 +114,6 @@ void Signal::populate_popup_form(QWidget *parent, QFormLayout *form)
                _name_widget->setCurrentIndex(index);
        }
 
-       _name_widget->lineEdit()->selectAll();
-       _name_widget->setFocus();
-
        connect(_name_widget, SIGNAL(editTextChanged(const QString&)),
                this, SLOT(on_text_changed(const QString&)));