X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fviews%2Fdecoder_output%2Fview.cpp;h=5c3b031dec55f4c7dbd6f56d551ad1b58ee4cc77;hb=01ba5ed7e7094dead8002ee430d67bde106f8835;hp=d407747605e8f03a8ec9948bb5ac0a8d7af7b545;hpb=bdbc561f1ac395449f1b3afa7d2d0538dd1aa400;p=pulseview.git diff --git a/pv/views/decoder_output/view.cpp b/pv/views/decoder_output/view.cpp index d4077476..5c3b031d 100644 --- a/pv/views/decoder_output/view.cpp +++ b/pv/views/decoder_output/view.cpp @@ -25,6 +25,7 @@ #include #include "view.hpp" +#include "QHexView.hpp" #include "pv/session.hpp" #include "pv/util.hpp" @@ -43,7 +44,10 @@ View::View(Session &session, bool is_main_view, QMainWindow *parent) : ViewBase(session, is_main_view, parent), // Note: Place defaults in View::reset_view_state(), not here - signal_selector_(new QComboBox()) + signal_selector_(new QComboBox()), + format_selector_(new QComboBox()), + stacked_widget_(new QStackedWidget()), + hex_view_(new QHexView()) { QVBoxLayout *root_layout = new QVBoxLayout(this); root_layout->setContentsMargins(0, 0, 0, 0); @@ -56,6 +60,16 @@ View::View(Session &session, bool is_main_view, QMainWindow *parent) : // Populate toolbar toolbar->addWidget(new QLabel(tr("Decoder:"))); toolbar->addWidget(signal_selector_); + toolbar->addSeparator(); + toolbar->addWidget(new QLabel(tr("Show data as"))); + toolbar->addWidget(format_selector_); + + // Add format types + format_selector_->addItem(tr("Hexdump"), qVariantFromValue(QString("text/hexdump"))); + + // Add widget stack + root_layout->addWidget(stacked_widget_); + stacked_widget_->addWidget(hex_view_); reset_view_state(); } @@ -82,6 +96,7 @@ void View::clear_signals() void View::clear_decode_signals() { signal_selector_->clear(); + format_selector_->setCurrentIndex(0); } void View::add_decode_signal(shared_ptr signal) @@ -89,12 +104,12 @@ void View::add_decode_signal(shared_ptr signal) connect(signal.get(), SIGNAL(name_changed(const QString&)), this, SLOT(on_signal_name_changed(const QString&))); - signal_selector_->addItem(signal->name(), qVariantFromValue(signal.get())); + signal_selector_->addItem(signal->name(), QVariant::fromValue(signal.get())); } void View::remove_decode_signal(shared_ptr signal) { - int index = signal_selector_->findData(qVariantFromValue(signal.get())); + int index = signal_selector_->findData(QVariant::fromValue(signal.get())); if (index != -1) signal_selector_->removeItem(index); @@ -117,7 +132,7 @@ void View::on_signal_name_changed(const QString &name) SignalBase *sb = qobject_cast(QObject::sender()); assert(sb); - int index = signal_selector_->findData(qVariantFromValue(sb)); + int index = signal_selector_->findData(QVariant::fromValue(sb)); if (index != -1) signal_selector_->setItemText(index, name); }