Calendar bug - recurring event "every year" gets treated as "last Sunday every month"

REPRODUCIBILITY (% or how often): 100%
BUILD ID = OS VERSION (Settings > About product): 3.4
HARDWARE (Jolla1, Tablet, XA2,…): XA2
UI LANGUAGE: any
REGRESSION: (compared to previous public release: Yes, No, ?):

DESCRIPTION:

Calendar offers some useful options for recurring events. However it is not possible to set this to “every year”. When clicked “every year” from the list, it will be treated as “last Sunday of every month” and will be added to the calendar as last Sunday instead. Seems like “last Sunday every month” was forgotten on the recurring choices list, so last item is “every year” instead but can’t be used.

PRECONDITIONS:

none

STEPS TO REPRODUCE:

  1. open calendar, create new event
  2. on recurring option pick “every year”
  3. when confirmed, it shows up as “last Sunday of every month” in calendar

EXPECTED RESULT:

yearly date

ACTUAL RESULT:

last Sunday each month date

ADDITIONAL INFORMATION:

(Please ALWAYS attach relevant data such as logs, screenshots, etc…)

6 Likes

Same here. Setting up multiple dummy birthdays in contacts doesn’t really help.

A big thanks @planetos for the bug report. I’ve fixed the issue and it has been accepted upstream last night.

It will be in the next version. In the mean time, if you need this to work, here is the correcting patch (it is patching /usr/lib/qt5/qml/Sailfish/Silica/private/ComboBoxController.qml):

Correcting patch
diff --git a/components/private/ComboBoxController.qml b/components/private/ComboBoxController.qml
index 505ef6b7..72c80931 100644
--- a/components/private/ComboBoxController.qml
+++ b/components/private/ComboBoxController.qml
@@ -260,11 +260,15 @@ Item {
             allowedOrientations: _page ? _page.allowedOrientations : Orientation.All
 
             Component.onCompleted: {
+                var menuIndex = 0
                 var menuItems = controller.menu.children
                 for (var i = 0; i < menuItems.length; i++) {
                     var child = menuItems[i]
-                    if (child && child.visible && child.hasOwnProperty("__silica_menuitem")) {
-                        items.append( {"item": child } )
+                    if (child && child.hasOwnProperty("__silica_menuitem")) {
+                        if (child.visible) {
+                            items.append( {"item": child, "menuIndex": menuIndex } )
+                        }
+                        menuIndex++
                     }
                 }
             }
@@ -288,7 +292,7 @@ Item {
 
                     onClicked: {
                         model.item.clicked()
-                        controller.menu.activated(index)
+                        controller.menu.activated(model.menuIndex)
                         pageStack.pop()
                     }
 
6 Likes

@dcaliste: Thanks a lot for the fast solution.