Skip to content

Instantly share code, notes, and snippets.

@drzhbe
Last active June 14, 2016 05:47
Show Gist options
  • Save drzhbe/1ef986bc6b848848859a21bce5a9d0bd to your computer and use it in GitHub Desktop.
Save drzhbe/1ef986bc6b848848859a21bce5a9d0bd to your computer and use it in GitHub Desktop.
/*
@param {Object} node
@param {Number} spacing
*/
function traverse(node, spacing) {
console.info('NODE ::', _spacing(spacing), node)
var children = node.data;
if (!children) return
spacing += 2;
for (var i = 0; i < children.length; i++) {
traverse(children[i], spacing);
}
}
// usage
traverse(rootAppWindow, 2);
/*
@param {Number} spacing
@returns {String}
*/
function _spacing(spacing) {
var result = "";
while (spacing--) {
result += ".";
}
return result;
}
/*
Find node by `objectName`
@param {Object} node
@param {String} objectName
@returns {Object}
*/
function find(node, objectName) {
var children = node.data;
if (!children) return
for (var i = 0; i < children.length; i++) {
var child = children[i];
if (child.objectName === objectName) {
return child;
}
find(child, objectName);
}
}
/*
@param {String} filename ("Phone.1.0/RegionUI/SearchBar.qml")
*/
"fileUpdated": function(filename) {
var objectName = filename.split("/"); // ["Phone.1.0", "RegionUI", "SearchBar.qml"]
objectName = objectName[objectName.length - 1]; // "SearchBar.qml"
objectName = objectName.split(".")[0]; // "SearchBar"
var elem = find(rootAppWindow, objectName);
console.info('ELEM ::', elem);
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment