QGCDynamicObjectManager.qml 1.24 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
import QtQuick 2.3
import QtQuick.Controls 1.2
import QtQuick.Controls.Styles 1.4

import QGroundControl.Palette 1.0
import QGroundControl.ScreenTools 1.0

/// Provides a standard set of tools for dynamically create/adding/removing Qml objects
Item {
    visible: false

    property var rgDynamicObjects: [ ]

    function createObject(sourceComponent, parentObject, parentObjectIsMap) {
        var obj = sourceComponent.createObject(parentObject)
16 17 18
        if (obj.status === Component.Error) {
            console.log(obj.errorString())
        }
19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
        rgDynamicObjects.push(obj)
        if (arguments.length < 3) {
            parentObjectIsMap = false
        }
        if (parentObjectIsMap) {
            map.addMapItem(obj)
        }
        return obj
    }

    function createObjects(rgSourceComponents, parentObject, parentObjectIsMap) {
        if (arguments.length < 3) {
            parentObjectIsMap = false
        }
        for (var i=0; i<rgSourceComponents.length; i++) {
            createObject(rgSourceComponents[i], parentObject, parentObjectIsMap)
        }
    }

    function destroyObjects() {
        for (var i=0; i<rgDynamicObjects.length; i++) {
            rgDynamicObjects[i].destroy()
        }
        rgDynamicObjects = [ ]
    }
}