summaryrefslogtreecommitdiff
path: root/kodereviewer/qml/CommentPage.qml
diff options
context:
space:
mode:
Diffstat (limited to 'kodereviewer/qml/CommentPage.qml')
-rw-r--r--kodereviewer/qml/CommentPage.qml87
1 files changed, 87 insertions, 0 deletions
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()
+ }
+ }
+ }
+
+ }
+ }
+}