X-Git-Url: https://sigrok.org/gitweb/?a=blobdiff_plain;f=pv%2Fviews%2Ftrace%2Fcursorpair.cpp;h=7d7d8e4d6477d2e9efbd2a5b84f1bd3f52ec9d79;hb=6202cf13abc361af4d1419dc56eaabc314900692;hp=bd6814c5c8f1a86258d2dcda6eb4d4af5b922450;hpb=79a37ed84b4021736ee7cac75fa3a255b5453dda;p=pulseview.git diff --git a/pv/views/trace/cursorpair.cpp b/pv/views/trace/cursorpair.cpp index bd6814c5..7d7d8e4d 100644 --- a/pv/views/trace/cursorpair.cpp +++ b/pv/views/trace/cursorpair.cpp @@ -58,6 +58,8 @@ CursorPair::CursorPair(View &view) : GlobalSettings::Key_View_CursorShowFrequency).value(); show_interval_ = settings.value( GlobalSettings::Key_View_CursorShowInterval).value(); + show_samples_ = settings.value( + GlobalSettings::Key_View_CursorShowSamples).value(); connect(&view_, SIGNAL(hover_point_changed(const QWidget*, QPoint)), this, SLOT(on_hover_point_changed(const QWidget*, QPoint))); @@ -123,26 +125,40 @@ QMenu *CursorPair::create_header_context_menu(QWidget *parent) { QMenu *menu = new QMenu(parent); - QAction *displayIntervalAction = new QAction(tr("Display interval")); + QAction *displayIntervalAction = new QAction(tr("Display interval"), this); displayIntervalAction->setCheckable(true); displayIntervalAction->setChecked(show_interval_); menu->addAction(displayIntervalAction); - connect(displayIntervalAction, &QAction::toggled, [=]{ - GlobalSettings settings; - settings.setValue(GlobalSettings::Key_View_CursorShowInterval, - !settings.value(GlobalSettings::Key_View_CursorShowInterval).value()); + connect(displayIntervalAction, &QAction::toggled, displayIntervalAction, + [=]{ + GlobalSettings settings; + settings.setValue(GlobalSettings::Key_View_CursorShowInterval, + !settings.value(GlobalSettings::Key_View_CursorShowInterval).value()); }); - QAction *displayFrequencyAction = new QAction(tr("Display frequency")); + QAction *displayFrequencyAction = new QAction(tr("Display frequency"), this); displayFrequencyAction->setCheckable(true); displayFrequencyAction->setChecked(show_frequency_); menu->addAction(displayFrequencyAction); - connect(displayFrequencyAction, &QAction::toggled, [=]{ - GlobalSettings settings; - settings.setValue(GlobalSettings::Key_View_CursorShowFrequency, - !settings.value(GlobalSettings::Key_View_CursorShowFrequency).value()); + connect(displayFrequencyAction, &QAction::toggled, displayFrequencyAction, + [=]{ + GlobalSettings settings; + settings.setValue(GlobalSettings::Key_View_CursorShowFrequency, + !settings.value(GlobalSettings::Key_View_CursorShowFrequency).value()); + }); + + QAction *displaySamplesAction = new QAction(tr("Display samples"), this); + displaySamplesAction->setCheckable(true); + displaySamplesAction->setChecked(show_samples_); + menu->addAction(displaySamplesAction); + + connect(displaySamplesAction, &QAction::toggled, displaySamplesAction, + [=]{ + GlobalSettings settings; + settings.setValue(GlobalSettings::Key_View_CursorShowSamples, + !settings.value(GlobalSettings::Key_View_CursorShowSamples).value()); }); return menu; @@ -283,6 +299,9 @@ void CursorPair::on_setting_changed(const QString &key, const QVariant &value) if (key == GlobalSettings::Key_View_CursorShowInterval) show_interval_ = value.value(); + + if (key == GlobalSettings::Key_View_CursorShowSamples) + show_samples_ = value.value(); } void CursorPair::on_hover_point_changed(const QWidget* widget, const QPoint& hp) @@ -329,6 +348,15 @@ QString CursorPair::format_string_sub(int time_precision, int freq_precision, bo s = QString("%1").arg(time); items++; } + + if (show_samples_) { + const QString samples = QString::number( + (diff * view_.session().get_samplerate()).convert_to()); + if (items > 0) + s = QString("%1 / %2").arg(s, samples); + else + s = QString("%1").arg(samples); + } } else // In this case, we return the number of samples, really s = time;