diff --git a/hi_scripting/scripting/api/ScriptingApiObjects.cpp b/hi_scripting/scripting/api/ScriptingApiObjects.cpp index 43954c0c0..fc025de3b 100644 --- a/hi_scripting/scripting/api/ScriptingApiObjects.cpp +++ b/hi_scripting/scripting/api/ScriptingApiObjects.cpp @@ -226,6 +226,7 @@ struct ScriptingObjects::ScriptFile::Wrapper API_METHOD_WRAPPER_1(ScriptFile, toReferenceString); API_METHOD_WRAPPER_1(ScriptFile, getRelativePathFrom); API_METHOD_WRAPPER_0(ScriptFile, getNumZippedItems); + API_METHOD_WRAPPER_0(ScriptFile, getZippedItemList); API_VOID_METHOD_WRAPPER_2(ScriptFile, setReadOnly); API_VOID_METHOD_WRAPPER_3(ScriptFile, extractZipFile); API_VOID_METHOD_WRAPPER_0(ScriptFile, show); @@ -289,6 +290,7 @@ ScriptingObjects::ScriptFile::ScriptFile(ProcessorWithScriptingContent* p, const ADD_API_METHOD_0(getNonExistentSibling); ADD_API_METHOD_3(extractZipFile); ADD_API_METHOD_0(getNumZippedItems); + ADD_API_METHOD_0(getZippedItemList); ADD_API_METHOD_2(setReadOnly); ADD_API_METHOD_1(toReferenceString); ADD_API_METHOD_1(getRelativePathFrom); @@ -992,6 +994,7 @@ void ScriptingObjects::ScriptFile::extractZipFile(var targetDirectory, bool over data->setProperty("TotalBytesWritten", 0); data->setProperty("Cancel", false); data->setProperty("Target", tf.getFullPathName()); + data->setProperty("ZipFile", safeThis->f.getFullPathName()); data->setProperty("CurrentFile", ""); data->setProperty("Error", ""); @@ -1121,6 +1124,20 @@ int ScriptingObjects::ScriptFile::getNumZippedItems() return zipFile.getNumEntries(); } +var ScriptingObjects::ScriptFile::getZippedItemList() +{ + juce::ZipFile zipFile(f); + StringArray result; + + for (int i = 0; i < zipFile.getNumEntries(); ++i) + { + if (auto* entry = zipFile.getEntry(i)) + result.add(entry->filename); + } + + return result; +} + void ScriptingObjects::ScriptFile::setReadOnly(bool shouldBeReadOnly, bool applyRecursively) { f.setReadOnly(shouldBeReadOnly, applyRecursively); diff --git a/hi_scripting/scripting/api/ScriptingApiObjects.h b/hi_scripting/scripting/api/ScriptingApiObjects.h index f230e94a6..365edcd5a 100644 --- a/hi_scripting/scripting/api/ScriptingApiObjects.h +++ b/hi_scripting/scripting/api/ScriptingApiObjects.h @@ -425,6 +425,9 @@ namespace ScriptingObjects /** Returns the number of items in the zip file. */ int getNumZippedItems(); + /** Returns an array of the filenames of all entries in the zip file. */ + var getZippedItemList(); + /** Changes the read/write permission for the given file. */ void setReadOnly(bool shouldBeReadOnly, bool applyRecursively);