X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fsignal.cpp;h=d1bae5e74789e05c0372fff3c055b102549bdcdc;hp=a286d95d3c6d07e9b299aefce8ef48701668a987;hb=4640a84e926ac4b82e2a1b6ef9fc80ef44c2bd3c;hpb=526c8c00a61aa5f6ac7e3ee56991db957b45828d diff --git a/pv/views/trace/signal.cpp b/pv/views/trace/signal.cpp index a286d95d..d1bae5e7 100644 --- a/pv/views/trace/signal.cpp +++ b/pv/views/trace/signal.cpp @@ -44,26 +44,30 @@ namespace trace { const char *const ChannelNames[] = { "CLK", "DATA", + "EN", "IN", "OUT", "RST", "TX", "RX", - "EN", + "SDA", + "SCL" "SCLK", "MOSI", "MISO", + "/CS", + "nCS", "/SS", - "SDA", - "SCL" + "nSS", + "/RST", + "nRST", }; Signal::Signal(pv::Session &session, - shared_ptr channel) : - Trace(channel), + shared_ptr signal) : + Trace(signal), session_(session), - name_widget_(nullptr), - current_segment_(0) + name_widget_(nullptr) { assert(base_); @@ -73,7 +77,7 @@ Signal::Signal(pv::Session &session, void Signal::set_name(QString name) { - Trace::set_name(name); + base_->set_name(name); if (name != name_widget_->currentText()) name_widget_->setEditText(name); @@ -89,26 +93,36 @@ shared_ptr Signal::base() const return base_; } -void Signal::set_current_segment(const int segment) +void Signal::save_settings(QSettings &settings) const { - current_segment_ = segment; + std::map settings_map = save_settings(); + + for (auto& entry : settings_map) + settings.setValue(entry.first, entry.second); } -int Signal::get_current_segment() const +std::map Signal::save_settings() const { - return current_segment_; + return std::map(); } -void Signal::save_settings(QSettings &settings) const +void Signal::restore_settings(QSettings &settings) { - (void)settings; + std::map settings_map; + + QStringList keys = settings.allKeys(); + for (int i = 0; i < keys.size(); i++) + settings_map[keys.at(i)] = settings.value(keys.at(i)); + + restore_settings(settings_map); } -void Signal::restore_settings(QSettings &settings) +void Signal::restore_settings(std::map settings) { (void)settings; } + void Signal::paint_back(QPainter &p, ViewItemPaintParams &pp) { if (base_->enabled()) @@ -138,19 +152,26 @@ void Signal::populate_popup_form(QWidget *parent, QFormLayout *form) form->addRow(tr("Name"), name_widget_); - add_colour_option(parent, form); + add_color_option(parent, form); } -QMenu* Signal::create_context_menu(QWidget *parent) +QMenu* Signal::create_header_context_menu(QWidget *parent) { - QMenu *const menu = Trace::create_context_menu(parent); + QMenu *const menu = Trace::create_header_context_menu(parent); menu->addSeparator(); - QAction *const disable = new QAction(tr("Disable"), this); - disable->setShortcuts(QKeySequence::Delete); - connect(disable, SIGNAL(triggered()), this, SLOT(on_disable())); - menu->addAction(disable); + QString caption; + + if (base_->is_generated()) + caption = tr("Remove"); + else + caption = tr("Disable"); + + QAction *const a = new QAction(caption, this); + a->setShortcuts(QKeySequence::Delete); + connect(a, SIGNAL(triggered()), this, SLOT(on_disable())); + menu->addAction(a); return menu; } @@ -175,7 +196,10 @@ void Signal::on_name_changed(const QString &text) void Signal::on_disable() { - base_->set_enabled(false); + if (base_->is_generated()) + session_.remove_generated_signal(base_); + else + base_->set_enabled(false); } void Signal::on_enabled_changed(bool enabled)