diff --git a/applets/digital-clock/package/contents/config/main.xml b/applets/digital-clock/package/contents/config/main.xml --- a/applets/digital-clock/package/contents/config/main.xml +++ b/applets/digital-clock/package/contents/config/main.xml @@ -70,4 +70,10 @@ false + + + + -1 + + diff --git a/applets/digital-clock/package/contents/ui/CalendarView.qml b/applets/digital-clock/package/contents/ui/CalendarView.qml --- a/applets/digital-clock/package/contents/ui/CalendarView.qml +++ b/applets/digital-clock/package/contents/ui/CalendarView.qml @@ -354,6 +354,13 @@ borderOpacity: 0.25 today: root.tzDate showWeekNumbers: plasmoid.configuration.showWeekNumbers + firstDayOfWeek: { + if (plasmoid.configuration.firstDayOfWeek == -1) { + return Qt.locale().firstDayOfWeek + } else { + return plasmoid.configuration.firstDayOfWeek + } + } anchors.fill: parent } diff --git a/applets/digital-clock/package/contents/ui/configCalendar.qml b/applets/digital-clock/package/contents/ui/configCalendar.qml --- a/applets/digital-clock/package/contents/ui/configCalendar.qml +++ b/applets/digital-clock/package/contents/ui/configCalendar.qml @@ -32,6 +32,7 @@ signal configurationChanged property alias cfg_showWeekNumbers: showWeekNumbers.checked + property int cfg_firstDayOfWeek: -1 function saveConfig() { @@ -50,6 +51,38 @@ text: i18n("Show week numbers") } + QtControls.ComboBox { + id: firstDayOfWeekComboBox + Kirigami.FormData.label: i18n("First day of week:") + // [-1, 0, 1, 2, 3, 4, 5, 6] // Default = -1, 0..6 = Sun..Sat + model: ListModel {} + textRole: "text" + + Connections { + target: calendarPage + onCfg_firstDayOfWeekChanged: firstDayOfWeekComboBox.currentIndex = cfg_firstDayOfWeek + 1 + } + + Component.onCompleted: { + model.append({ + text: i18n("Default"), + value: -1, + }) + for (var i = 0; i < 7; i++) { + model.append({ + text: Qt.locale().dayName(i), + value: i, + }) + } + + // The firstDayOfWeek enum starts at -1 instead of 0 + currentIndex = cfg_firstDayOfWeek + 1 + currentIndexChanged.connect(function(){ + cfg_firstDayOfWeek = currentIndex - 1 + }) + } + } + Item { Kirigami.FormData.isSection: true }