import QtCore //pragma ComponentBehavior: Bound import QtQuick import QtQuick.Controls as QQC2 import QtQuick.Layouts import org.deprecated.kodereviewer 1.0 import org.kde.kirigami as Kirigami import org.kde.kirigamiaddons.delegates as Delegates import org.kde.kirigamiaddons.formcard as FormCard Kirigami.FormLayout { id: root property var pullRequest implicitWidth: parent.width Kirigami.Heading { Layout.fillWidth: true Layout.alignment: Qt.AlignHCenter leftPadding: Kirigami.Units.largeSpacing rightPadding: Kirigami.Units.largeSpacing level: 1 text: root.pullRequest ? root.pullRequest.title : "" wrapMode: Text.WordWrap } Kirigami.Separator { Kirigami.FormData.isSection: true } RowLayout { Layout.fillWidth: true ColumnLayout { Layout.fillWidth: true RowLayout { QQC2.Label { text: "Author" elide: Text.ElideRight } QQC2.Label { text: root.pullRequest ? root.pullRequest.username : "" elide: Text.ElideLeft } } RowLayout { QQC2.Label { text: "State: " elide: Text.ElideRight } QQC2.Label { text: root.pullRequest ? root.pullRequest.state : "" elide: Text.ElideLeft } } RowLayout { QQC2.Label { text: "Draft?: " elide: Text.ElideRight } QQC2.Label { text: root.pullRequest ? root.pullRequest.draft ? i18n("Yes") : i18n("No") : "" elide: Text.ElideLeft } } RowLayout { QQC2.Label { text: "Last commit: " elide: Text.ElideRight } QQC2.Label { text: root.pullRequest ? root.pullRequest.last_commit : "" elide: Text.ElideLeft } } } } Loader { id: labelModelLoader active: !!root.pullRequest sourceComponent: LabelModel { pullRequest: root.pullRequest } } RowLayout { Repeater { model: labelModelLoader.item delegate: Rectangle { required property string name required property string labelColor required property string textColor color: labelColor width: thelabel.implicitWidth height: thelabel.implicitHeight radius: 5 QQC2.Label { id: thelabel padding: Kirigami.Units.smallSpacing text: name color: textColor } } } } Kirigami.Separator { Kirigami.FormData.isSection: true Kirigami.FormData.label: "Reviewers" } Loader { id: reviewerModelLoader active: !!root.pullRequest sourceComponent: ReviewerModel { pullRequest: root.pullRequest } } Column { Repeater { id: reviewersListView model: reviewerModelLoader.item delegate: QQC2.Label { required property string username text: `@${username}` } } } QQC2.Label { visible: reviewersListView.count == 0 text: "No reviewers" } Kirigami.Separator { Kirigami.FormData.isSection: true Kirigami.FormData.label: "Description" } MarkdownLabel { Layout.fillWidth: true Layout.fillHeight: false leftPadding: Kirigami.Units.largeSpacing rightPadding: Kirigami.Units.largeSpacing text: root.pullRequest ? (root.pullRequest.body != "" ? root.pullRequest.body : "*No description provided.*") : "" } }