blob: 53c78bea54bdfefbd159976077ddb5486738a9c5 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
|
import QtQuick 2.15
import QtQuick.Layouts 1.15
import QtQuick.Controls 2.15
import org.kde.plasma.plasmoid 2.0
import org.kde.plasma.core 2.0 as PlasmaCore
import org.kde.plasma.components 2.0 as PlasmaComponents
import org.kde.plasma.components 3.0 as PlasmaComponents3
import org.kde.plasma.extras 2.0 as PlasmaExtras
RowLayout {
id: announcementView
width: parent.width
Layout.fillWidth: true
RowLayout {
Layout.fillWidth: true
PlasmaComponents3.CheckBox {
id: announcementCheckbox
onToggled: () => {
announcementLabel.font.strikeout = (checkState == Qt.Checked)
}
}
PlasmaComponents3.Label {
id: announcementLabel
text: `[${course}] ${title}`
font.bold: important
color: important ? PlasmaCore.Theme.negativeTextColor : PlasmaCore.Theme.textColor
elide: Text.ElideRight
Layout.fillWidth: true
MouseArea {
anchors.fill: parent
onClicked: () => {
announcementCheckbox.toggle() // toggle checkbox
announcementCheckbox.toggled() // and trigger the onToggled effects
}
}
}
}
RowLayout {
Layout.alignment: Qt.AlignRight
PlasmaComponents3.ToolButton {
icon.name: "view-visible"
onClicked: () => {
Qt.openUrlExternally(url)
}
}
PlasmaComponents3.ToolButton {
icon.name: "emblem-important-symbolic"
onClicked: () => {
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
}
}
PlasmaComponents3.ToolButton {
icon.name: "delete"
onClicked: () => {
// avoid non-fatal TypeError due to announcementView.parent=null but .width=parent.width
announcementView.width = 0
announcementsModel.remove(index)
}
}
}
}
|