75 lines
1.8 KiB
QML
75 lines
1.8 KiB
QML
import QtQuick 2.14
|
|
|
|
QtObject {
|
|
|
|
function checkClassName(item, name) {
|
|
let stringy = item.toString()
|
|
return stringy.indexOf(name) !== -1
|
|
}
|
|
|
|
function topChildAt(item, x, y) {
|
|
var obj = item.childAt(x, y)
|
|
if (!!obj) {
|
|
for (var idx in obj.children) {
|
|
var child = obj.children[idx]
|
|
|
|
var position = mapToItem(child, x, y)
|
|
if (position.x < 0 || position.y <= 0) {
|
|
continue
|
|
} else {
|
|
return topChildAt(child, position.x, position.y)
|
|
}
|
|
}
|
|
|
|
return obj
|
|
}
|
|
|
|
return null
|
|
}
|
|
|
|
function getObjectByObjectName(parent, objectName) {
|
|
if (!parent) {
|
|
return null;
|
|
}
|
|
|
|
if (parent.objectName === objectName) {
|
|
return parent
|
|
}
|
|
for (var idx in parent.children) {
|
|
var child = parent.children[idx]
|
|
|
|
if (child.objectName === objectName) {
|
|
return child;
|
|
} else {
|
|
var res = getObjectByObjectName(child, objectName)
|
|
if (!!res) {
|
|
return res;
|
|
}
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
function findChildByClassName(item, className) {
|
|
for (var idx in item.children) {
|
|
let child = item.children[idx]
|
|
let cname = child.toString();
|
|
if (cname.indexOf(className) !== -1) {
|
|
return child;
|
|
}
|
|
}
|
|
|
|
return null;
|
|
}
|
|
|
|
function checkIfItemExists(parent, x, y, className) {
|
|
var obj = parent.childAt(x, y)
|
|
if (className !== undefined) {
|
|
return !!obj && checkClassName(obj, className);
|
|
} else {
|
|
return !!obj
|
|
}
|
|
}
|
|
}
|