#ifdef ENABLE_DECODE
#include "subwindows/decoder_selector/subwindow.hpp"
-#include "views/decoder_output/view.hpp"
+#include "views/decoder_binary/view.hpp"
+#include "views/tabular_decoder/view.hpp"
#endif
#include <libsigrokcxx/libsigrokcxx.hpp>
// This view will be the main view if there's no main bar yet
v = make_shared<views::trace::View>(session, (main_bar ? false : true), dock_main);
#ifdef ENABLE_DECODE
- if (type == views::ViewTypeDecoderOutput)
- v = make_shared<views::decoder_output::View>(session, false, dock_main);
+ if (type == views::ViewTypeDecoderBinary)
+ v = make_shared<views::decoder_binary::View>(session, false, dock_main);
+ if (type == views::ViewTypeTabularDecoder)
+ v = make_shared<views::tabular_decoder::View>(session, false, dock_main);
#endif
if (!v)
shared_ptr<Session> session = make_shared<Session>(device_manager_, name);
- connect(session.get(), SIGNAL(add_view(views::ViewType, Session*)),
- this, SLOT(on_add_view(views::ViewType, Session*)));
+ connect(session.get(), SIGNAL(add_view(ViewType, Session*)),
+ this, SLOT(on_add_view(ViewType, Session*)));
connect(session.get(), SIGNAL(name_changed()),
this, SLOT(on_session_name_changed()));
connect(session.get(), SIGNAL(device_changed()),
void MainWindow::update_acq_button(Session *session)
{
- int state = session->get_capture_state();
+ int state;
+ QString run_caption;
- const QString run_caption =
- session->using_file_device() ? tr("Reload") : tr("Run");
+ if (session) {
+ state = session->get_capture_state();
+ run_caption = session->using_file_device() ? tr("Reload") : tr("Run");
+ } else {
+ state = Session::Stopped;
+ run_caption = tr("Run");
+ }
const QIcon *icons[] = {&icon_grey_, &icon_red_, &icon_green_};
run_stop_button_->setIcon(*icons[state]);
tr("This session contains unsaved data. Close it anyway?"),
QMessageBox::Yes | QMessageBox::No) == QMessageBox::Yes))
remove_session(session);
+
+ if (sessions_.empty())
+ update_acq_button(nullptr);
}
void MainWindow::on_show_decoder_selector(Session *session)
for (shared_ptr<Session>& s : sessions_)
if (s.get() == session)
add_subwindow(subwindows::SubWindowTypeDecoderSelector, *s);
+#else
+ (void)session;
#endif
}