status-desktop/ui/shared/FormGroup.qml
Alexandra Betouni 4ee21ada05 feat(desktop) Added image function in Style
Introduced Style.svg() Style.png() Style.emoji() and
Style.icon() in Style.qml. Those should be used to
set the source in Images instead of using relative
paths. Usage:
Image {
   source: Style.svg("check)
   ....

Also moved all Singletons inside a new "utils"
folder and made it a QML module, to use
import utils 1.0 instead of relative paths

Closes #3678
2021-09-28 15:28:00 -04:00

59 lines
1.9 KiB
QML

import QtQuick 2.13
import QtQuick.Controls 2.13
import utils 1.0
Rectangle {
id: root
property var isValid: true
property var isPending: false
property var validate: function() {
let isValid = true
for (let i=0; i<children.length; i++) {
const component = children[i]
if (component.hasOwnProperty("validate") && typeof component.validate === "function") {
isValid = component.validate()
}
if (component.hasOwnProperty("isPending")) {
isPending = component.isPending
}
}
root.isValid = isValid
root.isPending = isPending
return { isValid, isPending }
}
color: Style.current.background
StackView.onActivated: {
// parent refers to the StackView
parent.groupActivated(this)
}
Component.onCompleted: {
for (let i=0; i<children.length; i++) {
const component = children[i]
if (component.hasOwnProperty("isValid")) {
component.isValidChanged.connect(updateGroupValidityAndPendingStatus)
root.isValid = root.isValid && component.isValid // set the initial state
}
if (component.hasOwnProperty("isPending")) {
component.isPendingChanged.connect(updateGroupValidityAndPendingStatus)
root.isPending = component.isPending
}
}
}
function updateGroupValidityAndPendingStatus() {
let isValid = true
let isPending = false
for (let i=0; i<children.length; i++) {
const component = children[i]
if (component.hasOwnProperty("isValid")) {
isValid = isValid && component.isValid
}
if (component.hasOwnProperty("isPending")) {
isPending = component.isPending
}
}
root.isValid = isValid
root.isPending = isPending
}
}