X-Git-Url: https://sigrok.org/gitweb/?p=pulseview.git;a=blobdiff_plain;f=pv%2Fmainwindow.cpp;h=f17ad9c86be43b2e13babadc6091621093eee307;hp=c8c091d8938d5c863bd9cd1508df20f557ed146f;hb=f23cd1e56b09fc487df7a450fc87d905eaeed1f4;hpb=e072efc8aa62ff67bc7270515159e2f71f43d9f0 diff --git a/pv/mainwindow.cpp b/pv/mainwindow.cpp index c8c091d8..f17ad9c8 100644 --- a/pv/mainwindow.cpp +++ b/pv/mainwindow.cpp @@ -32,10 +32,10 @@ extern "C" { #include #include -#include "about.h" #include "mainwindow.h" #include "samplingbar.h" -#include "pv/view/view.h" +#include "dialogs/about.h" +#include "view/view.h" extern "C" { /* __STDC_FORMAT_MACROS is required for PRIu64 and friends (in C++). */ @@ -150,6 +150,11 @@ void MainWindow::setup_ui() _menu_file->setTitle(QApplication::translate("MainWindow", "&File", 0, QApplication::UnicodeUTF8)); _menu_view->setTitle(QApplication::translate("MainWindow", "&View", 0, QApplication::UnicodeUTF8)); _menu_help->setTitle(QApplication::translate("MainWindow", "&Help", 0, QApplication::UnicodeUTF8)); + + // Setup _session events + connect(&_session, SIGNAL(capture_state_changed(int)), this, + SLOT(capture_state_changed(int))); + } void MainWindow::on_actionOpen_triggered() @@ -178,16 +183,29 @@ void MainWindow::on_actionViewShowCursors_triggered() void MainWindow::on_actionAbout_triggered() { - About dlg(this); + dialogs::About dlg(this); dlg.exec(); } void MainWindow::run_stop() { - _session.start_capture( - _sampling_bar->get_selected_device(), - _sampling_bar->get_record_length(), - _sampling_bar->get_sample_rate()); + switch(_session.get_capture_state()) { + case SigSession::Stopped: + _session.start_capture( + _sampling_bar->get_selected_device(), + _sampling_bar->get_record_length(), + _sampling_bar->get_sample_rate()); + break; + + case SigSession::Running: + _session.stop_capture(); + break; + } +} + +void MainWindow::capture_state_changed(int state) +{ + _sampling_bar->set_sampling(state != SigSession::Stopped); } } // namespace pv