From 67165d9325faf7c6eb8a978a0981fd602a02e892 Mon Sep 17 00:00:00 2001 From: Frederick Yin Date: Tue, 10 May 2022 15:55:56 +0800 Subject: Remember finished activities --- contents/config/main.xml | 2 ++ contents/ui/ActivityView.qml | 20 ++++++++++++++++++++ contents/ui/main.qml | 4 ++++ 3 files changed, 26 insertions(+) diff --git a/contents/config/main.xml b/contents/config/main.xml index 70a84c6..c071c3e 100644 --- a/contents/config/main.xml +++ b/contents/config/main.xml @@ -23,5 +23,7 @@ + + diff --git a/contents/ui/ActivityView.qml b/contents/ui/ActivityView.qml index 6c58b68..6c3bb87 100644 --- a/contents/ui/ActivityView.qml +++ b/contents/ui/ActivityView.qml @@ -94,8 +94,27 @@ RowLayout { Layout.fillWidth: true PlasmaComponents3.CheckBox { id: activityCheckbox + checkState: finished ? Qt.Checked : Qt.Unchecked onToggled: () => { + finished = (checkState == Qt.Checked) activityLabel.font.strikeout = (checkState == Qt.Checked) + + const configKeys = { + announcement: "finishedAnnouncements", + assignment: "finishedAssignments", + } + + let finishedActivities = plasmoid.configuration[configKeys[type]] + if (finished) { + if (!finishedActivities.includes(activityId)) { + finishedActivities.push(activityId) + } + } else { + // remove activityId from list + finishedActivities.splice(finishedActivities.indexOf(activityId), 1) + } + // save config + plasmoid.configuration[configKeys[type]] = finishedActivities } } @@ -104,6 +123,7 @@ RowLayout { id: activityLabel text: `[${course}] ${title}` font.bold: important + font.strikeout: finished color: important ? PlasmaCore.Theme.negativeTextColor : PlasmaCore.Theme.textColor wrapMode: Text.WordWrap Layout.fillWidth: true diff --git a/contents/ui/main.qml b/contents/ui/main.qml index 1fc6779..41af62a 100644 --- a/contents/ui/main.qml +++ b/contents/ui/main.qml @@ -66,6 +66,7 @@ Item { title: announcement.title, url: announcement.html_url, important: plasmoid.configuration.importantAnnouncements.includes(announcement.id.toString()), + finished: plasmoid.configuration.finishedAnnouncements.includes(announcement.id.toString()), } if (info.important) { @@ -87,6 +88,7 @@ Item { submitted: assignment.has_submitted_submissions, url: assignment.html_url, important: plasmoid.configuration.importantAssignments.includes(assignment.id.toString()), + finished: plasmoid.configuration.finishedAssignments.includes(assignment.id.toString()), } if (!info.submitted || showSubmittedAssignments) { @@ -133,6 +135,7 @@ Item { title: "Code quality" url: "https://xkcd.com/1513" important: true + finished: false activityId: 0 } */ @@ -170,6 +173,7 @@ Item { submitted: true url: "https://xkcd.com/730" important: true + finished: true activityId: 1 } */ -- cgit v1.2.3