]> sigrok.org Git - pulseview.git/blobdiff - pv/toolbars/mainbar.cpp
Session: Break up add_decoder()
[pulseview.git] / pv / toolbars / mainbar.cpp
index 1a177fd65eea01c99d900ba68a54ac2c7e4fa875..272e844f981df35ba05be9f1a472322ec2ea99b3 100644 (file)
@@ -35,6 +35,7 @@
 
 #include <boost/algorithm/string/join.hpp>
 
+#include <pv/data/decodesignal.hpp>
 #include <pv/devicemanager.hpp>
 #include <pv/devices/hardwaredevice.hpp>
 #include <pv/devices/inputfile.hpp>
@@ -46,7 +47,7 @@
 #include <pv/popups/channels.hpp>
 #include <pv/popups/deviceoptions.hpp>
 #include <pv/util.hpp>
-#include <pv/view/view.hpp>
+#include <pv/views/trace/view.hpp>
 #include <pv/widgets/exportmenu.hpp>
 #include <pv/widgets/importmenu.hpp>
 #ifdef ENABLE_DECODE
@@ -87,7 +88,7 @@ const char *MainBar::SettingOpenDirectory = "MainWindow/OpenDirectory";
 const char *MainBar::SettingSaveDirectory = "MainWindow/SaveDirectory";
 
 MainBar::MainBar(Session &session, QWidget *parent,
-               pv::views::TraceView::View *view) :
+               pv::views::trace::View *view) :
        StandardBar(session, parent, view, false),
        action_new_view_(new QAction(this)),
        action_open_(new QAction(this)),
@@ -114,6 +115,8 @@ MainBar::MainBar(Session &session, QWidget *parent,
 {
        setObjectName(QString::fromUtf8("MainBar"));
 
+       setContextMenuPolicy(Qt::PreventContextMenu);
+
        // Actions
        action_new_view_->setText(tr("New &View"));
        action_new_view_->setIcon(QIcon::fromTheme("window-new",
@@ -199,8 +202,7 @@ MainBar::MainBar(Session &session, QWidget *parent,
        connect(menu_decoders_add_, SIGNAL(decoder_selected(srd_decoder*)),
                this, SLOT(add_decoder(srd_decoder*)));
 
-       add_decoder_button_->setIcon(QIcon::fromTheme("add-decoder",
-               QIcon(":/icons/add-decoder.svg")));
+       add_decoder_button_->setIcon(QIcon(":/icons/add-decoder.svg"));
        add_decoder_button_->setPopupMode(QToolButton::InstantPopup);
        add_decoder_button_->setMenu(menu_decoders_add_);
        add_decoder_button_->setToolTip(tr("Add low-level, non-stacked protocol decoder"));
@@ -216,12 +218,11 @@ MainBar::MainBar(Session &session, QWidget *parent,
        set_capture_state(pv::Session::Stopped);
 
        configure_button_.setToolTip(tr("Configure Device"));
-       configure_button_.setIcon(QIcon::fromTheme("configure",
-               QIcon(":/icons/configure.png")));
+       configure_button_.setIcon(QIcon::fromTheme("preferences-system",
+               QIcon(":/icons/preferences-system.png")));
 
        channels_button_.setToolTip(tr("Configure Channels"));
-       channels_button_.setIcon(QIcon::fromTheme("channels",
-               QIcon(":/icons/channels.svg")));
+       channels_button_.setIcon(QIcon(":/icons/channels.svg"));
 
        add_toolbar_widgets();
 
@@ -575,7 +576,9 @@ void MainBar::add_decoder(srd_decoder *decoder)
 {
 #ifdef ENABLE_DECODE
        assert(decoder);
-       session_.add_decoder(decoder);
+       shared_ptr<data::DecodeSignal> signal = session_.add_decode_signal();
+       if (signal)
+               signal->stack_decoder(decoder);
 #else
        (void)decoder;
 #endif
@@ -595,13 +598,13 @@ void MainBar::export_file(shared_ptr<OutputFormat> format, bool selection_only)
 
        // Selection only? Verify that the cursors are active and fetch their values
        if (selection_only) {
-               views::TraceView::View *trace_view =
-                       qobject_cast<views::TraceView::View*>(session_.main_view().get());
+               views::trace::View *trace_view =
+                       qobject_cast<views::trace::View*>(session_.main_view().get());
 
                if (!trace_view->cursors()->enabled()) {
                        show_session_error(tr("Missing Cursors"), tr("You need to set the " \
                                        "cursors before you can save the data enclosed by them " \
-                                       "to a session file (e.g. using ALT-V - Show Cursors)."));
+                                       "to a session file (e.g. using the Show Cursors button)."));
                        return;
                }
 
@@ -626,9 +629,9 @@ void MainBar::export_file(shared_ptr<OutputFormat> format, bool selection_only)
                QString::fromStdString(format->description()));
 
        if (exts.empty())
-               filter += "(*.*)";
+               filter += "(*)";
        else
-               filter += QString("(*.%1);;%2 (*.*)").arg(
+               filter += QString("(*.%1);;%2 (*)").arg(
                        QString::fromStdString(join(exts, ", *.")),
                        tr("All Files"));
 
@@ -679,7 +682,7 @@ void MainBar::import_file(shared_ptr<InputFormat> format)
        // Show the file dialog
        const QString file_name = QFileDialog::getOpenFileName(
                this, tr("Import File"), dir, tr(
-                       "%1 files (*.*);;All Files (*.*)").arg(
+                       "%1 files (*);;All Files (*)").arg(
                        QString::fromStdString(format->description())));
 
        if (file_name.isEmpty())
@@ -756,8 +759,8 @@ void MainBar::on_actionOpen_triggered()
        // Show the dialog
        const QString file_name = QFileDialog::getOpenFileName(
                this, tr("Open File"), dir, tr(
-                       "Sigrok Sessions (*.sr);;"
-                       "All Files (*.*)"));
+                       "sigrok Sessions (*.sr);;"
+                       "All Files (*)"));
 
        if (!file_name.isEmpty()) {
                session_.load_file(file_name);