From d46b4e7470e3115df34fc96ba2f8e59974f713be Mon Sep 17 00:00:00 2001 From: Matias Linares Date: Tue, 29 Oct 2024 18:12:20 -0300 Subject: Split PullRequestPage into different ScrollablePages --- kodereviewer/qml/CommentPage.qml | 87 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 87 insertions(+) create mode 100644 kodereviewer/qml/CommentPage.qml (limited to 'kodereviewer/qml/CommentPage.qml') diff --git a/kodereviewer/qml/CommentPage.qml b/kodereviewer/qml/CommentPage.qml new file mode 100644 index 0000000..bcf6cb5 --- /dev/null +++ b/kodereviewer/qml/CommentPage.qml @@ -0,0 +1,87 @@ +pragma ComponentBehavior: Bound +import QtQuick +import QtCore +import QtQuick.Controls as QQC2 +import QtQuick.Layouts + +import org.kde.kirigami as Kirigami +import org.kde.kirigamiaddons.formcard as FormCard +import org.kde.kirigamiaddons.components as KirigamiComponents +import org.deprecated.kodereviewer 1.0 + + +Kirigami.ScrollablePage { + id: root + + property var pullRequest + property NetworkManager connection + + Kirigami.Theme.colorSet: Kirigami.Theme.View + Kirigami.Theme.inherit: false + + title: pullRequest ? pullRequest.title : "" + + Timer { + // Ten minutes? + id: getCommentsTimer + interval: 1000 * 60 * 10 + running: false + repeat: true + triggeredOnStart: true + onTriggered: { + console.log("Getting comments from timer") + root.connection.getPullRequestComments(root.pullRequest.number) + } + } + + Loader { + id: commentModelLoader + active: !!root.pullRequest + sourceComponent: CommentModel { + id: commentModel + pullRequest: root.pullRequest + + onPullRequestChanged: getCommentsTimer.restart() + } + onActiveChanged: console.log("active? " + active + " pull request: " + root.pullRequest) + } + + Kirigami.CardsListView { + id: commentsListView + Layout.fillWidth: true + Layout.fillHeight: true + visible: !!root.pullRequest + model: commentModelLoader.item + delegate: CommentDelegate {} + footerPositioning: ListView.InlineFooter + footer: Item { + anchors.left: parent.left + anchors.right: parent.right + height: footerLayout.implicitHeight + RowLayout { + id: footerLayout + anchors.fill: parent + anchors.topMargin: Kirigami.Units.largeSpacing * 2 + MarkdownTextArea { + id: newCommentTextArea + Layout.fillWidth: true + } + QQC2.Button { + icon.name: "document-send-symbolic" + enabled: newCommentTextArea.text != '' + + onClicked: { + if (newCommentTextArea.text == '') { + return + } + + root.connection.createComment(root.pullRequest.number, newCommentTextArea.text) + newCommentTextArea.text == '' + getCommentsTimer.restart() + } + } + } + + } + } +} -- cgit v1.2.3-70-g09d2