From 04203b1425496ac422ee6527df76e964099e3585 Mon Sep 17 00:00:00 2001 From: David Rowe Date: Tue, 10 Sep 2019 11:56:37 +1200 Subject: [PATCH] File JSDoc --- .../src/FileScriptingInterface.h | 61 +++++++++++++++---- 1 file changed, 48 insertions(+), 13 deletions(-) diff --git a/libraries/script-engine/src/FileScriptingInterface.h b/libraries/script-engine/src/FileScriptingInterface.h index 859f343ec5..0114ac6c44 100644 --- a/libraries/script-engine/src/FileScriptingInterface.h +++ b/libraries/script-engine/src/FileScriptingInterface.h @@ -17,6 +17,8 @@ #include /**jsdoc + * The File API provides some facilities for working with the file system. + * * @namespace File * * @hifi-interface @@ -35,37 +37,70 @@ public: public slots: /**jsdoc + * Extracts a filename from a URL, where the filename is specified in the query part of the URL as filename=. * @function File.convertUrlToPath - * @param {string} url - * @returns {string} + * @param {string} url - The URL to extract the filename from. + * @returns {string} The filename specified in the URL; an empty string if no filename is specified. + * @example Extract a filename from a URL. + * var url = "http://domain.tld/path/page.html?filename=file.ext"; + * print("File name: " + File.convertUrlToPath(url)); // file.ext */ QString convertUrlToPath(QUrl url); /**jsdoc + * Unzips a file in the local file system to a new, unique temporary directory. * @function File.runUnzip - * @param {string} path - * @param {string} url - * @param {boolean} autoAdd - * @param {boolean} isZip - * @param {boolean} isBlocks + * @param {string} path - The path of the zip file in the local file system. May have a leading "file:///". + * Need not have a ".zip" extension if it is in a temporary directory (as created by + * {@link File.getTempDir|getTempDir}). + * @param {string} url - Not used. + * @param {boolean} autoAdd - Not used by user scripts. The value is simply passed through to the + * {@link File.unzipResult|unzipResult} signal. + * @param {boolean} isZip - Set to true if path has a ".zip" extension, + * false if it doesn't (but should still be treated as a zip file). + * @param {boolean} isBlocks - Not used by user scripts. The value is simply passed through to the + * {@link File.unzipResult|unzipResult} signal. + * @example Select and unzip a file. + * File.unzipResult.connect(function (zipFile, unzipFiles, autoAdd, isZip, isBlocks) { + * print("File.unzipResult()"); + * print("- zipFile: " + zipFile); + * print("- unzipFiles(" + unzipFiles.length + "): " + unzipFiles); + * print("- autoAdd: " + autoAdd); + * print("- isZip: " + isZip); + * print("- isBlocks: " + isBlocks); + * }); + * + * var zipFile = Window.browse("Select a Zip File", "", "*.zip"); + * if (zipFile) { + * File.runUnzip(zipFile, "", false, true, false); + * } else { + * print("Zip file not selected."); + * } */ void runUnzip(QString path, QUrl url, bool autoAdd, bool isZip, bool isBlocks); /**jsdoc + * Creates a new, unique directory for temporary use. * @function File.getTempDir - * @returns {string} + * @returns {string} The path of the newly created temporary directory. + * @example Create a temporary directory. + * print("New temporary directory: " + File.getTempDir()); */ QString getTempDir(); signals: /**jsdoc + * Triggered when {@link File.runUnzip|runUnzip} completes. * @function File.unzipResult - * @param {string} zipFile - * @param {string} unzipFile - * @param {boolean} autoAdd - * @param {boolean} isZip - * @param {boolean} isBlocks + * @param {string} zipFile - The file that was unzipped. + * @param {string[]} unzipFiles - The paths of the unzipped files in a newly created temporary directory. Includes entries + * for any subdirectories created. An empty array if the zipFile could not be unzipped. + * @param {boolean} autoAdd - The value that {@link File.runUnzip|runUnzip} was called with. + * @param {boolean} isZip - true if {@link File.runUnzip|runUnzip} was called with isZip == true + * or path containing "vr.google.com/downloads", unless there is no FBX or OBJ file in the + * unzipped file(s) in which case the value is false. + * @param {boolean} isBlocks - The value that {@link File.runUnzip|runUnzip} was called with. * @returns {Signal} */ void unzipResult(QString zipFile, QStringList unzipFile, bool autoAdd, bool isZip, bool isBlocks);