Replaced lengthy iterator types with the auto keyword
[pulseview.git] / pv / toolbars / samplingbar.cpp
index 91c4b076ea6346d46102100ec20eec4a0c201756..6d419f74dbef319905f31815956fda229d3398ee 100644 (file)
@@ -26,6 +26,8 @@
 
 #include <QAction>
 #include <QDebug>
+#include <QHelpEvent>
+#include <QToolTip>
 
 #include "samplingbar.h"
 
@@ -33,6 +35,7 @@
 #include <pv/device/devinst.h>
 #include <pv/popups/deviceoptions.h>
 #include <pv/popups/probes.h>
+#include <pv/util.h>
 
 using boost::shared_ptr;
 using std::map;
@@ -93,6 +96,9 @@ SamplingBar::SamplingBar(SigSession &session, QWidget *parent) :
        addWidget(&_sample_rate);
 
        addWidget(&_run_stop_button);
+
+       _sample_count.installEventFilter(this);
+       _sample_rate.installEventFilter(this);
 }
 
 void SamplingBar::set_device_list(
@@ -142,8 +148,7 @@ shared_ptr<pv::device::DevInst> SamplingBar::get_selected_device() const
                        index).value<void*>();
        assert(sdi);
 
-       map<const sr_dev_inst*, boost::weak_ptr<device::DevInst> >::
-               const_iterator iter = _device_selector_map.find(sdi);
+       const auto iter = _device_selector_map.find(sdi);
        if (iter == _device_selector_map.end())
                return shared_ptr<pv::device::DevInst>();
 
@@ -446,5 +451,21 @@ void SamplingBar::on_config_changed()
        update_sample_rate_selector();
 }
 
+bool SamplingBar::eventFilter(QObject *watched, QEvent *event)
+{
+       if ((watched == &_sample_count || watched == &_sample_rate) &&
+               (event->type() == QEvent::ToolTip)) {
+               double sec = (double)_sample_count.value() / _sample_rate.value();
+               QHelpEvent *help_event = static_cast<QHelpEvent*>(event);
+
+               QString str = tr("Total sampling time: %1").arg(pv::util::format_second(sec));
+               QToolTip::showText(help_event->globalPos(), str);
+
+               return true;
+       }
+
+       return false;
+}
+
 } // namespace toolbars
 } // namespace pv