/** * * gPodder QML UI Reference Implementation * Copyright (c) 2015, Thomas Perl * * Permission to use, copy, modify, and/or distribute this software for any * purpose with or without fee is hereby granted, provided that the above * copyright notice and this permission notice appear in all copies. * * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH * REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY * AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT, * INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM * LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR * OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR * PERFORMANCE OF THIS SOFTWARE. * */ import QtQuick 2.0 WorkerScript { source: 'modelworker.js' property int callbacks_seq: 1 property var callbacks: ({}) function refCallback(callback) { var id = callbacks_seq++; callbacks[id] = callback; return id; } function unrefCallback(callback) { var result = callbacks[callback]; delete callbacks[callback]; return result; } function updateModelFrom(model, data, callback) { sendMessage({ action: 'updateModelFrom', model: model, data: data, callback: refCallback(callback), }); } function updateModelWith(model, key, value, update, callback) { sendMessage({ action: 'updateModelWith', model: model, key: key, value: value, update: update, callback: refCallback(callback), }); } onMessage: { if (messageObject.callback !== undefined) { unrefCallback(messageObject.callback)(); } } }