10 import QtQuick.Controls 1.4
11 import QtQuick.Layouts 1.1
12 import QtGraphicalEffects 1.0
13 import QtQuick.Dialogs 1.2
27 property var filenameHelper: FilenameHelper
30 property var targetModel
32 property var commandCallback
34 property var editorDescription
36 property var dialogManager
43 property var getPropertyDescriptions:
function(component) {
46 console.log(
"Component is null");
49 else if (!component.base_properties) {
50 console.log(
"Component dosn't contains a property set");
53 else if (!component.base_properties.property_set_description) {
54 console.log(
"Component dosn't contains a property set description");
58 return component.base_properties.property_set_description.property_descriptions;
62 property var getProperties:
function(component) {
65 console.log(
"Component is null");
68 else if (!component.base_properties) {
69 console.log(
"Component dosn't contains a property set");
73 return component.base_properties.properties;
83 function findService(name) {
85 Utils.each(modelmanager.system.services,
function(service) {
86 if(service.name === name) {
100 function findProperty(component, name) {
101 var properties = getProperties(component)
104 Utils.each(properties,
function(prop) {
105 if (prop.name === name) {
119 function findPropertyDescription(component, name) {
120 var propertyDescs = getPropertyDescriptions(component)
123 Utils.each(propertyDescs,
function(prop) {
124 if (prop.name === name) {
140 function createProperty(component, name, value, type, link) {
141 var description = findPropertyDescription(component, name)
143 if (link === undefined) {
148 if (type !== undefined) {
149 commandCallback(
function(options) {
150 return component.base_properties.createDynamicProperty(name, value, type, link, options)
155 console.error(
"Could not find Plugindescription for property " + name)
159 commandCallback(
function(options) {
160 return component.base_properties.createProperty(description, value, link, options)
170 function setProperty(component, name, value) {
171 console.assert(commandCallback,
"Command callback not found")
172 console.assert(component,
"Component not set")
174 var
property = findProperty(component, name)
176 commandCallback(
function(options) {
177 return property.changeValue(value, options)
181 createProperty(component, name, value)
191 function getPropertyValue(component, name) {
192 console.assert(component,
"Component not set")
194 const property = findProperty(component, name)
196 return property.value
199 const description = findPropertyDescription(component, name)
201 return description.value
204 console.error(
"Property not found")
213 function findInputPin(name) {
215 Utils.each(targetModel.input_pins,
function(pin) {
216 if (pin.name === name) {
227 function createInputPin(name) {
228 const pin = findInputPin(name)
230 commandCallback(
function(options) {
231 return targetModel.addInputPin(name, options)
240 function listInputPins() {
242 Utils.each(targetModel.input_pins,
function(pin) {
252 function removeInputPin(pin) {
253 commandCallback(
function(options) {
254 return targetModel.removeInputPin(pin, options)
263 function findOutputPin(name) {
265 Utils.each(targetModel.output_pins,
function(pin) {
266 if (pin.name === name) {
277 function createOutputPin(name) {
278 const pin = findOutputPin(name)
280 commandCallback(
function(options) {
281 return targetModel.addOutputPin(name, options)
290 function listOutputPins() {
292 Utils.each(targetModel.output_pins,
function(pin) {
302 function removeOutputPin(pin) {
303 commandCallback(
function(options) {
304 return targetModel.removeOutputPin(pin, options)
312 function listRunner()
315 Utils.each(targetModel.runners,
function(runner) {
316 names.push(runner.name)
326 function findRunner(runnerName) {
328 Utils.each(targetModel.runners,
function(runner) {
329 if (runner.name === runnerName) {
340 function createRunner(name) {
341 const runner = findRunner(name)
343 commandCallback(
function(options) {
344 return targetModel.addRunner(name, options)
353 function removeRunner(runner) {
354 commandCallback(
function(options) {
355 return targetModel.removeRunner(runner, options)
367 function resolveAndGetAbsoluteUrl(path, basePath) {
371 return editorDescription.GetAbsoluteUrl(path, basePath)
378 function getPropertyFile() {
379 return targetModel.base_properties.getPropertyFileUrl()
390 function launch(command, args, workingDirectory) {
391 return editorDescription.Launch(command, args, workingDirectory)
401 function parseJsonResult(result)
403 console.log(
"result: " + result)
404 var regex = /json_result:([\s\S]*):end/i
406 var match = regex.exec(result);
407 if(match.length < 2) {
408 throw "Couldn't find Json string"
411 var json_result = match[1]
412 json_result = json_result.replace(/(\r\n|\n|\r)/gm,
"")
414 console.log(
"json_result: " + json_result)
416 return JSON.parse(json_result)
424 function forEach(array, callback) {
425 Utils.each(array, callback)
433 function removeFromArray(array, callback) {
435 forEach(array,
function(item) {
451 function contains(array, value, compare_callback) {
453 forEach(array,
function(item) {
454 if(compare_callback && compare_callback(item, value)) {
457 else if(item === value) {
464 Component.onCompleted: {