]> sigrok.org Git - pulseview.git/blobdiff - pv/view/signal.cpp
Populate signal popup combo box with signal name instead of probe name
[pulseview.git] / pv / view / signal.cpp
index 1f00477a2012d9cb5a3a8e11f6cd046ff62f8682..0ce423feaae6b97e5bc6809d75fa368b0a71bccb 100644 (file)
 
 #include <QApplication>
 #include <QFormLayout>
+#include <QLineEdit>
 #include <QMenu>
 
+#include <libsigrok/libsigrok.h>
+
 #include "signal.h"
 #include "view.h"
 
+#include <pv/device/devinst.h>
+
+using std::shared_ptr;
+
 namespace pv {
 namespace view {
 
@@ -50,8 +57,10 @@ const char *const ProbeNames[] = {
        "SCL"
 };
 
-Signal::Signal(pv::SigSession &session, sr_probe *const probe) :
-       Trace(session, probe->name),
+Signal::Signal(shared_ptr<pv::device::DevInst> dev_inst,
+       const sr_channel *const probe) :
+       Trace(probe->name),
+       _dev_inst(dev_inst),
        _probe(probe),
        _name_widget(NULL),
        _updating_name_widget(false)
@@ -74,11 +83,11 @@ bool Signal::enabled() const
 
 void Signal::enable(bool enable)
 {
-       _probe->enabled = enable;
+       _dev_inst->enable_probe(_probe, enable);
        visibility_changed();
 }
 
-const sr_probe* Signal::probe() const
+const sr_channel* Signal::probe() const
 {
        return _probe;
 }
@@ -90,7 +99,9 @@ void Signal::populate_popup_form(QWidget *parent, QFormLayout *form)
 
        for(unsigned int i = 0; i < countof(ProbeNames); i++)
                _name_widget->insertItem(i, ProbeNames[i]);
-       _name_widget->setEditText(_probe->name);
+       _name_widget->setEditText(_name);
+       _name_widget->lineEdit()->selectAll();
+       _name_widget->setFocus();
 
        connect(_name_widget, SIGNAL(editTextChanged(const QString&)),
                this, SLOT(on_text_changed(const QString&)));