57 lines
1.7 KiB
QML
57 lines
1.7 KiB
QML
import QtQuick
|
|
|
|
import Qt.labs.folderlistmodel
|
|
|
|
import PageType 1.0
|
|
|
|
Item {
|
|
property var pages: ({})
|
|
|
|
signal finished()
|
|
|
|
FolderListModel {
|
|
id: folderModelPages
|
|
folder: "qrc:/ui/qml/Pages2/"
|
|
nameFilters: ["*.qml"]
|
|
showDirs: false
|
|
|
|
onStatusChanged: {
|
|
if (status == FolderListModel.Ready) {
|
|
for (var i = 0; i < folderModelPages.count; i++) {
|
|
createPagesObjects(folderModelPages.get(i, "filePath"), PageType.Basic);
|
|
}
|
|
finished()
|
|
}
|
|
}
|
|
|
|
function createPagesObjects(file, type) {
|
|
if (file.indexOf("Base") !== -1) {
|
|
return; // skip Base Pages
|
|
}
|
|
|
|
var c = Qt.createComponent("qrc" + file);
|
|
|
|
var finishCreation = function(component) {
|
|
if (component.status === Component.Ready) {
|
|
var obj = component.createObject(root);
|
|
if (obj === null) {
|
|
console.debug("Error creating object " + component.url);
|
|
} else {
|
|
obj.visible = false
|
|
if (type === PageType.Basic) {
|
|
pages[obj.page] = obj
|
|
}
|
|
}
|
|
} else if (component.status === Component.Error) {
|
|
console.debug("Error loading component:", component.errorString());
|
|
}
|
|
}
|
|
|
|
if (c.status === Component.Ready) {
|
|
finishCreation(c);
|
|
} else {
|
|
console.debug("Warning: " + file + " page components are not ready " + c.errorString());
|
|
}
|
|
}
|
|
}
|
|
}
|