diff options
author | Frederick Yin <fkfd@fkfd.me> | 2022-04-07 12:26:24 +0800 |
---|---|---|
committer | Frederick Yin <fkfd@fkfd.me> | 2022-04-07 12:26:24 +0800 |
commit | b026a7f1b2920b3b9639f9b9fe30f8dc8473461d (patch) | |
tree | 4ad4f035f0402c8d98317b526cde0239d31e3480 /contents/ui | |
parent | 38287d3fbfbd126a94d1e4f58c4c62836a2516ff (diff) |
Save and load important announcements from config
Diffstat (limited to 'contents/ui')
-rw-r--r-- | contents/ui/AnnouncementView.qml | 18 | ||||
-rw-r--r-- | contents/ui/main.qml | 8 |
2 files changed, 23 insertions, 3 deletions
diff --git a/contents/ui/AnnouncementView.qml b/contents/ui/AnnouncementView.qml index 95caf9e..53c78be 100644 --- a/contents/ui/AnnouncementView.qml +++ b/contents/ui/AnnouncementView.qml @@ -25,6 +25,8 @@ RowLayout { PlasmaComponents3.Label { id: announcementLabel text: `[${course}] ${title}` + font.bold: important + color: important ? PlasmaCore.Theme.negativeTextColor : PlasmaCore.Theme.textColor elide: Text.ElideRight Layout.fillWidth: true @@ -51,8 +53,20 @@ RowLayout { PlasmaComponents3.ToolButton { icon.name: "emblem-important-symbolic" onClicked: () => { - announcementLabel.font.bold = true - announcementLabel.color = PlasmaCore.Theme.negativeTextColor + important = !important + announcementLabel.font.bold = important + announcementLabel.color = important ? PlasmaCore.Theme.negativeTextColor : PlasmaCore.Theme.textColor + let importantAnnouncements = plasmoid.configuration.importantAnnouncements + if (important) { + if (!importantAnnouncements.includes(announcementId)) { + importantAnnouncements.push(announcementId) + } + } else { + // remove announcementId from list + importantAnnouncements.splice(importantAnnouncements.indexOf(announcementId), 1) + } + // save config + plasmoid.configuration.importantAnnouncements = importantAnnouncements } } diff --git a/contents/ui/main.qml b/contents/ui/main.qml index 48d51b8..4872c3c 100644 --- a/contents/ui/main.qml +++ b/contents/ui/main.qml @@ -57,7 +57,11 @@ Item { index: index, course: course[1], title: activity.title, - url: activity.html_url + url: activity.html_url, + important: plasmoid.configuration.importantAnnouncements.includes( + activity.announcement_id.toString() + ), + announcementId: activity.announcement_id }) } }) @@ -92,6 +96,8 @@ Item { course: "CS101" title: "Title of the announcement" url: "https://xkcd.com" + important: true + announcementId: 0 } } |