// A failure, reported where it happened. Before this component every page // hand-rolled the same stanza with a different headline -- "Problem", // "Updates need attention", "The network needs attention" -- and no visual // mark distinguishing a failure from any other read-only fact. One shape now: // // ErrorRow { message: Updates.lastError } // ErrorRow { message: Vpn.lastError; label: "The VPN needs attention" } // // The row hides itself while the message is empty, so consumers bind the // service's lastError directly and write no visible: line. The message is the // service's own sentence -- this component never rewords a failure, only // frames it. import QtQuick import qs.config SettingRow { id: root property string message: "" label: "Needs attention" visible: root.message !== "" detail: root.message labelColor: Theme.danger controlWidth: 210 divider: false }