diff --git a/plugins/builtin/source/content/views/view_data_inspector.cpp b/plugins/builtin/source/content/views/view_data_inspector.cpp index 7e5474fb4..44122dd7b 100644 --- a/plugins/builtin/source/content/views/view_data_inspector.cpp +++ b/plugins/builtin/source/content/views/view_data_inspector.cpp @@ -119,20 +119,28 @@ namespace hex::plugin::builtin { if (pattern->getVisibility() == pl::ptrn::Visibility::Hidden) continue; + auto formatWriteFunction = pattern->getWriteFormatterFunction(); + std::optional editingFunction; + if (!formatWriteFunction.empty()) { + editingFunction = [formatWriteFunction, &pattern](const std::string &value, std::endian) -> std::vector { + pattern->setValue(value); + }; + } + this->m_workData.push_back({ pattern->getDisplayName(), [value = pattern->getFormattedValue()]() { ImGui::TextUnformatted(value.c_str()); return value; }, - std::nullopt, + editingFunction, false }); } } else { const auto& error = runtime.getError(); - log::error("Failed to execute inspectors.hexpat!"); + log::error("Failed to execute custom inspector file '{}'!", wolv::util::toUTF8String(filePath.path())); if (error.has_value()) log::error("{}", error.value().what()); }