]> sigrok.org Git - pulseview.git/blobdiff - pv/views/decoder_binary/view.cpp
Fix depreciation warnings caused by newer Qt versions
[pulseview.git] / pv / views / decoder_binary / view.cpp
index b5daaf0f84ef472dd7586cb9ab423a13cec6f156..1e40bd1b686c315ce3f5a196b96c351b027c4cf7 100644 (file)
@@ -129,9 +129,17 @@ View::View(Session &session, bool is_main_view, QMainWindow *parent) :
 
        parent->setSizePolicy(hex_view_->sizePolicy()); // TODO Must be updated when selected widget changes
 
+       // Set up metadata event handler
+       session_.metadata_obj_manager()->add_observer(this);
+
        reset_view_state();
 }
 
+View::~View()
+{
+       session_.metadata_obj_manager()->remove_observer(this);
+}
+
 ViewType View::get_type() const
 {
        return ViewTypeDecoderBinary;
@@ -319,10 +327,18 @@ void View::save_data_as_hex_dump(bool with_offset, bool with_ascii) const
                while (offset < selection.second) {
                        size_t end = std::min((uint64_t)(selection.second), offset + n);
                        offset = hex_view_->create_hex_line(offset, end, &s, with_offset, with_ascii);
+#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
+                       out_stream << s << Qt::endl;
+#else
                        out_stream << s << endl;
+#endif
                }
 
+#if QT_VERSION >= QT_VERSION_CHECK(5, 15, 0)
+               out_stream << Qt::endl;
+#else
                out_stream << endl;
+#endif
 
                if (out_stream.status() != QTextStream::Ok) {
                        QMessageBox msg(parent_);
@@ -466,6 +482,25 @@ void View::on_actionSave_triggered(QAction* action)
        }
 }
 
+void View::on_metadata_object_changed(MetadataObject* obj,
+       MetadataValueType value_type)
+{
+       // Check if we need to update the model's data range. We only work on the
+       // end sample value because the start sample value is updated first and
+       // we need both
+       if ((obj->type() == MetadataObjMainViewRange) &&
+               (value_type == MetadataValueEndSample)) {
+
+               int64_t start_sample = obj->value(MetadataValueStartSample).toLongLong();
+               int64_t end_sample = obj->value(MetadataValueEndSample).toLongLong();
+
+               hex_view_->set_visible_sample_range(start_sample, end_sample);
+       }
+
+       if (obj->type() == MetadataObjMousePos)
+               hex_view_->set_highlighted_data_sample(obj->value(MetadataValueStartSample).toLongLong());
+}
+
 void View::perform_delayed_view_update()
 {
        if (signal_ && !binary_data_exists_)