1
0
mirror of https://github.com/AvengeMedia/DankMaterialShell.git synced 2025-12-05 21:15:38 -05:00

calendar: parse event links from description

This commit is contained in:
bbedward
2025-10-28 11:20:42 -04:00
parent cfa7d12dd3
commit 13a2813db9
4 changed files with 19 additions and 15 deletions

View File

@@ -287,6 +287,10 @@ DankPopout {
OverviewTab {
id: overviewTab
onCloseDash: {
root.dashVisible = false
}
onSwitchToWeatherTab: {
if (SettingsData.weatherEnabled) {
tabBar.currentIndex = 3

View File

@@ -13,6 +13,8 @@ Rectangle {
property var selectedDateEvents: []
property bool hasEvents: selectedDateEvents && selectedDateEvents.length > 0
signal closeDash()
function weekStartJs() {
return Qt.locale().firstDayOfWeek % 7
}
@@ -428,24 +430,12 @@ Rectangle {
if (modelData.url && modelData.url !== "") {
if (Qt.openUrlExternally(modelData.url) === false) {
console.warn("Failed to open URL: " + modelData.url)
} else {
root.closeDash()
}
}
}
}
Behavior on color {
ColorAnimation {
duration: Theme.shortDuration
easing.type: Theme.standardEasing
}
}
Behavior on border.color {
ColorAnimation {
duration: Theme.shortDuration
easing.type: Theme.standardEasing
}
}
}
}
}

View File

@@ -14,6 +14,7 @@ Item {
signal switchToWeatherTab()
signal switchToMediaTab()
signal closeDash()
Item {
anchors.fill: parent
@@ -58,6 +59,8 @@ Item {
y: 100 + Theme.spacingM
width: parent.width * 0.6
height: 300
onCloseDash: root.closeDash()
}
// Media - bottom right (narrow and taller)

View File

@@ -223,6 +223,13 @@ Singleton {
let eventId = event.title + "_" + event['start-date']
+ "_" + (event['start-time'] || 'allday')
// Create event object template
let extractedUrl = ""
if (!event.url && event.description) {
let urlMatch = event.description.match(/https?:\/\/[^\s]+/)
if (urlMatch) {
extractedUrl = urlMatch[0]
}
}
let eventTemplate = {
"id": eventId,
"title": event.title || "Untitled Event",
@@ -230,7 +237,7 @@ Singleton {
"end": endTime,
"location": event.location || "",
"description": event.description || "",
"url": event.url || "",
"url": event.url || extractedUrl,
"calendar": "",
"color": "",
"allDay": event['all-day'] === "True",