save_action_->setText(tr("&Save..."));
save_action_->setIcon(QIcon::fromTheme("document-save-as",
QIcon(":/icons/document-save-as.png")));
+#if QT_VERSION >= QT_VERSION_CHECK(6, 0, 0)
+ save_action_->setShortcut(QKeySequence(Qt::CTRL | Qt::Key_S));
+#else
save_action_->setShortcut(QKeySequence(Qt::CTRL + Qt::Key_S));
+#endif
connect(save_action_, SIGNAL(triggered(bool)),
this, SLOT(on_actionSave_triggered()));
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;
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_);
}
}
+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_)