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<data::SignalBase> channel) :
- Trace(channel),
+ shared_ptr<data::SignalBase> signal) :
+ Trace(signal),
session_(session),
name_widget_(nullptr)
{
void Signal::set_name(QString name)
{
- Trace::set_name(name);
+ base_->set_name(name);
if (name != name_widget_->currentText())
name_widget_->setEditText(name);
void Signal::save_settings(QSettings &settings) const
{
- (void)settings;
+ std::map<QString, QVariant> settings_map = save_settings();
+
+ for (auto& entry : settings_map)
+ settings.setValue(entry.first, entry.second);
+}
+
+std::map<QString, QVariant> Signal::save_settings() const
+{
+ return std::map<QString, QVariant>();
}
void Signal::restore_settings(QSettings &settings)
+{
+ std::map<QString, QVariant> 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(std::map<QString, QVariant> settings)
{
(void)settings;
}
+
void Signal::paint_back(QPainter &p, ViewItemPaintParams &pp)
{
if (base_->enabled())
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;
}
void Signal::on_disable()
{
- base_->set_enabled(false);
+ // For generated signals, "disable" means "remove"
+ if (base_->is_generated())
+ session_.remove_generated_signal(base_);
+ else
+ base_->set_enabled(false);
}
void Signal::on_enabled_changed(bool enabled)