summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--contents/ui/main.qml67
-rw-r--r--metadata.desktop22
2 files changed, 89 insertions, 0 deletions
diff --git a/contents/ui/main.qml b/contents/ui/main.qml
new file mode 100644
index 0000000..c78ba5e
--- /dev/null
+++ b/contents/ui/main.qml
@@ -0,0 +1,67 @@
+import QtQuick 2.15
+import QtQuick.Layouts 1.15
+import QtQuick.Controls 2.15
+
+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
+
+Item {
+ width: PlasmaCore.Units.gridUnit * 20
+ height: PlasmaCore.Units.gridUnit * 40
+
+ function syncCanvas() {
+ // TODO: networking
+ for (let i = 0; i < 8; i++) {
+ announcementsModel.append({course: `VZ${i}01`, title: "Something"})
+ }
+ }
+
+ Timer {
+ interval: 60 * 1000
+ running: true;
+ repeat: true;
+ onTriggered: syncCanvas();
+ }
+
+ ColumnLayout {
+ id: main
+ anchors.fill: parent
+
+ PlasmaExtras.Heading {
+ level: 1
+ text: "Kanvas"
+ }
+
+ PlasmaExtras.Heading {
+ level: 2
+ text: "Announcements"
+ }
+
+ ListModel {
+ id: announcementsModel
+ }
+
+ ScrollView {
+ implicitHeight: PlasmaCore.Units.gridUnit * 20
+ Layout.margins: PlasmaCore.Units.smallSpacing
+ Layout.fillWidth: true
+ Layout.fillHeight: true
+ ListView {
+ Layout.fillWidth: true
+ delegate: Text {
+ text: `[${course}] ${title}`
+ color: PlasmaCore.Theme.textColor
+ }
+ model: announcementsModel
+ }
+ }
+
+ PlasmaComponents3.Button {
+ icon.name: "view-refresh"
+ text: i18n("Refresh")
+ onClicked: syncCanvas()
+ }
+ }
+}
diff --git a/metadata.desktop b/metadata.desktop
new file mode 100644
index 0000000..0d84648
--- /dev/null
+++ b/metadata.desktop
@@ -0,0 +1,22 @@
+[Desktop Entry]
+Comment=Canvas LMS on your desktop
+Comment[x-test]=xxCanvas LMS on your desktopxx
+Comment[zh_CN]=桌面上的 Canvas
+Comment[zh_TW]=桌面上的 Canvas
+Name=Kanvas
+Name[zh_CN]=Kanvas
+Name[zh_TW]=Kanvas
+
+Type=Application
+
+X-KDE-PluginInfo-Author=Frederick Yin
+X-KDE-PluginInfo-Category=Online Services
+X-KDE-PluginInfo-Email=fkfd@fkfd.me
+X-KDE-PluginInfo-License=TBD
+X-KDE-PluginInfo-Name=me.fkfd.kanvas
+X-KDE-PluginInfo-Version=0.1
+X-KDE-PluginInfo-Website=https://fkfd.me/
+X-KDE-ServiceTypes=Plasma/Applet
+
+X-Plasma-API=declarativeappletscript
+X-Plasma-MainScript=ui/main.qml