QOwnNotes/docs/scripting/examples/callback.qml
luz paz a0fff3a4f2 Fix various typos
Found via `codespell -q 3 -S *.ts,./src/libraries,./webpage/src/??/*,./webpage/yarn.lock,./appveyor/OpenSSL/LICENSE  -L ro,ser`
2022-10-11 07:22:29 -04:00

37 lines
1.4 KiB
QML

import QtQml 2.0
import QOwnNotesTypes 1.0
/**
* This script is a short example of how to use detached processes and callbacks
* to relieve the UI thread.
* Visit http://docs.qownnotes.org/ for more information about scripting
*/
Script {
function log(txt) {
script.log("[callback-example] " + txt);
}
function init() {
log("init")
for (var i = 0; i < 100; i++) {
var dur = Math.floor(Math.random() * 10) + 1;
script.startDetachedProcess("sleep", [`${dur}s`], "callback-example", i);
}
}
/**
* This function is called when a script thread is done executing.
* Hint: thread[1]==0 helps to determine if a bulk of started processes for a certain identifier is done.
*
* @param {QString} callBackIdentifier - the provided id when calling startDetachedProcess()
* @param {QString} resultSet - the result of the process
* @param {QVariantList} cmd - the entire command array [0-executablePath, 1-parameters, 2-exitCode]
* @param {QVariantList} thread - the thread information array [0-passed callbackParameter, 1-remaining threads for this identifier]
*/
function onDetachedProcessCallback(callBackIdentifier, resultSet, cmd, thread) {
if (callBackIdentifier == "callback-example") {
log(`#${thread[1]} i[${thread[0]}] t${cmd[1]}`);
}
}
}