From dea916617aab5aef9ef156854afb668fb71e52db Mon Sep 17 00:00:00 2001 From: loner <2788892716@qq.com> Date: Tue, 21 Oct 2025 20:33:39 +0800 Subject: [PATCH] feat: Add toggle for calendar event display --- Assets/Translations/en.json | 4 ++++ Commons/Settings.qml | 1 + Modules/Bar/Calendar/CalendarPanel.qml | 3 ++- Modules/Settings/Tabs/LocationTab.qml | 7 +++++++ Services/CalendarService.qml | 11 ++++++++++- 5 files changed, 24 insertions(+), 2 deletions(-) diff --git a/Assets/Translations/en.json b/Assets/Translations/en.json index b4814d84..20cd25ca 100644 --- a/Assets/Translations/en.json +++ b/Assets/Translations/en.json @@ -626,6 +626,10 @@ "week-numbers": { "label": "Show week numbers", "description": "Displays the week of the year (e.g., Week 38) in the calendar." + }, + "show-events": { + "label": "Show calendar events", + "description": "Display events in the calendar panel." } } }, diff --git a/Commons/Settings.qml b/Commons/Settings.qml index 08005398..e8b4651c 100644 --- a/Commons/Settings.qml +++ b/Commons/Settings.qml @@ -202,6 +202,7 @@ Singleton { property bool useFahrenheit: false property bool use12hourFormat: false property bool showWeekNumberInCalendar: false + property bool showCalendarEvents: true } // screen recorder diff --git a/Modules/Bar/Calendar/CalendarPanel.qml b/Modules/Bar/Calendar/CalendarPanel.qml index 888552bb..b873f706 100644 --- a/Modules/Bar/Calendar/CalendarPanel.qml +++ b/Modules/Bar/Calendar/CalendarPanel.qml @@ -561,7 +561,7 @@ NPanel { // Event indicator dots Row { - visible: parent.parent.parent.parent.parent.hasEventsOnDate(model.year, model.month, model.day) + visible: Settings.data.location.showCalendarEvents && parent.parent.parent.parent.parent.hasEventsOnDate(model.year, model.month, model.day) spacing: 2 anchors.horizontalCenter: parent.horizontalCenter anchors.bottom: parent.bottom @@ -587,6 +587,7 @@ NPanel { MouseArea { anchors.fill: parent hoverEnabled: true + enabled: Settings.data.location.showCalendarEvents onEntered: { const events = parent.parent.parent.parent.parent.getEventsForDate(model.year, model.month, model.day) diff --git a/Modules/Settings/Tabs/LocationTab.qml b/Modules/Settings/Tabs/LocationTab.qml index 7b6c340b..77048745 100644 --- a/Modules/Settings/Tabs/LocationTab.qml +++ b/Modules/Settings/Tabs/LocationTab.qml @@ -117,6 +117,13 @@ ColumnLayout { checked: Settings.data.location.showWeekNumberInCalendar onToggled: checked => Settings.data.location.showWeekNumberInCalendar = checked } + + NToggle { + label: I18n.tr("settings.location.date-time.show-events.label") + description: I18n.tr("settings.location.date-time.show-events.description") + checked: Settings.data.location.showCalendarEvents + onToggled: checked => Settings.data.location.showCalendarEvents = checked + } } NDivider { diff --git a/Services/CalendarService.qml b/Services/CalendarService.qml index b152d177..a24ae920 100644 --- a/Services/CalendarService.qml +++ b/Services/CalendarService.qml @@ -92,7 +92,11 @@ Singleton { // Core functions function checkAvailability() { - availabilityCheckProcess.running = true + if (Settings.data.location.showCalendarEvents) { + availabilityCheckProcess.running = true + } else { + root.available = false + } } function loadCalendars() { @@ -100,6 +104,11 @@ Singleton { } function loadEvents(daysAhead = 31, daysBehind = 14) { + if (!Settings.data.location.showCalendarEvents) { + root.loading = false + root.events = [] + return + } if (loading) return