diff options
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 } } |