| 351 | } |
| 352 | |
| 353 | void EmscriptenFilePicker::jsReadFiles(emscripten::val event) |
| 354 | { |
| 355 | auto target = event["target"]; |
| 356 | auto files = target["files"]; |
| 357 | auto fileCount = files["length"].as<std::int32_t>(); |
| 358 | |
| 359 | EmscriptenFilePicker* context = reinterpret_cast<EmscriptenFilePicker*>(target["data-callbackContext"].as<std::size_t>()); |
| 360 | auto prevSize = context->_files.size(); |
| 361 | context->_files.reserve(prevSize + fileCount); |
| 362 | |
| 363 | for (std::int32_t i = 0; i < fileCount; i++) { |
| 364 | emscripten::val file = files[i]; |
| 365 | context->_files.emplace_back(file); |
| 366 | } |
| 367 | |
| 368 | if (context->_activeCallback) { |
| 369 | context->_activeCallback(arrayView(context->_files).exceptPrefix(prevSize)); |
| 370 | context->_activeCallback = {}; |
| 371 | } |
| 372 | } |
| 373 | |
| 374 | void EmscriptenFilePicker::jsCancelReadFiles(emscripten::val event) |
| 375 | { |
nothing calls this directly
no test coverage detected