X-Git-Url: http://git.code-monkey.de/?a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fdecodetrace.cpp;h=574e9d1ae96b8891689c402548182cceae2b869d;hb=cd0b243a41af5c63f200a647bf435a50f03ad5d6;hp=be7ac04a5847b6591bd808799317ed47ad4600ea;hpb=99ba5f2845a24f91901addb80c04d5bf0e0906f3;p=pulseview.git diff --git a/pv/views/trace/decodetrace.cpp b/pv/views/trace/decodetrace.cpp index be7ac04..574e9d1 100644 --- a/pv/views/trace/decodetrace.cpp +++ b/pv/views/trace/decodetrace.cpp @@ -341,15 +341,33 @@ QMenu* DecodeTrace::create_view_context_menu(QWidget *parent, QPoint &click_pos) QMenu *const menu = new QMenu(parent); + if (decode_signal_->is_paused()) { + QAction *const resume = + new QAction(tr("Resume decoding"), this); + resume->setIcon(QIcon::fromTheme("media-playback-start", + QIcon(":/icons/media-playback-start.png"))); + connect(resume, SIGNAL(triggered()), this, SLOT(on_pause_decode())); + menu->addAction(resume); + } else { + QAction *const pause = + new QAction(tr("Pause decoding"), this); + pause->setIcon(QIcon::fromTheme("media-playback-pause", + QIcon(":/icons/media-playback-pause.png"))); + connect(pause, SIGNAL(triggered()), this, SLOT(on_pause_decode())); + menu->addAction(pause); + } + + menu->addSeparator(); + QAction *const export_all_rows = - new QAction(tr("Export all annotations"), this); + new QAction(tr("Export all annotations"), this); export_all_rows->setIcon(QIcon::fromTheme("document-save-as", QIcon(":/icons/document-save-as.png"))); connect(export_all_rows, SIGNAL(triggered()), this, SLOT(on_export_all_rows())); menu->addAction(export_all_rows); QAction *const export_row = - new QAction(tr("Export all annotations for this row"), this); + new QAction(tr("Export all annotations for this row"), this); export_row->setIcon(QIcon::fromTheme("document-save-as", QIcon(":/icons/document-save-as.png"))); connect(export_row, SIGNAL(triggered()), this, SLOT(on_export_row())); @@ -1037,6 +1055,14 @@ void DecodeTrace::on_decode_finished() owner_->row_item_appearance_changed(false, true); } +void DecodeTrace::on_pause_decode() +{ + if (decode_signal_->is_paused()) + decode_signal_->resume_decode(); + else + decode_signal_->pause_decode(); +} + void DecodeTrace::delete_pressed() { on_delete(); @@ -1142,9 +1168,9 @@ void DecodeTrace::on_export_row_with_cursor() const pv::util::Timestamp& end_time = view->cursors()->second()->time(); const uint64_t start_sample = (uint64_t)max( - (double)0, start_time.convert_to() * samplerate); + 0.0, start_time.convert_to() * samplerate); const uint64_t end_sample = (uint64_t)max( - (double)0, end_time.convert_to() * samplerate); + 0.0, end_time.convert_to() * samplerate); // Are both cursors negative and thus were clamped to 0? if ((start_sample == 0) && (end_sample == 0)) @@ -1168,9 +1194,9 @@ void DecodeTrace::on_export_all_rows_with_cursor() const pv::util::Timestamp& end_time = view->cursors()->second()->time(); const uint64_t start_sample = (uint64_t)max( - (double)0, start_time.convert_to() * samplerate); + 0.0, start_time.convert_to() * samplerate); const uint64_t end_sample = (uint64_t)max( - (double)0, end_time.convert_to() * samplerate); + 0.0, end_time.convert_to() * samplerate); // Are both cursors negative and thus were clamped to 0? if ((start_sample == 0) && (end_sample == 0))