Created attachment 150336 [details] Screenshot of faulty input validation error SUMMARY New events cannot be created and existing events (synced via CalDAV) cannot be edited because of a false-positive input validation check. STEPS TO REPRODUCE 1. (see installation notes below) 2. Launch Kalendar 3. Click "+ Create" OBSERVED RESULT When creating a new event or editing an existing one (as imported via CalDAV), an "Invalid dates provided" input validation message appears at the top of the Add/Edit event dialog. (See attached screenshot.) This failed validation causes the "Save" button to be greyed out and renders it impossible to persist any changes or new events to disk. This occurs for valid start/end times; as far as I can tell, there are no start/end date-time combinations that the dialog will accept. It may be worth noting that setting an actually-invalid start/end time causes the error message to change to "End date cannot be before start date." Reverting to a valid range merely causes the original error message to return. EXPECTED RESULT The "Invalid dates provided" error message should not appear for valid inputs (and certainly should not appear for the default values for a new Create Event dialog window). SOFTWARE/OS VERSIONS Linux kernel: 5.18.0-2-amd64 KDE Plasma Version: 5.24.5 KDE Frameworks Version: 5.94.0 Qt Version: 5.15.4 ADDITIONAL INFORMATION Kalendar was installed against the latest master branch from GitHub (dca467e / v22.07.70) on Debian testing: ```sh # install dependencies $ sudo apt install git cmake build-essential gettext extra-cmake-modules qtbase5-dev qtdeclarative5-dev libqt5svg5-dev qtquickcontrols2-5-dev qml-module-org-kde-kirigami2 kirigami2-dev libkf5i18n-dev gettext libkf5coreaddons-dev qml-module-qtquick-layouts qml-module-qtlocation qml-module-qt-labs-qmlmodels qtlocation5-dev qml-module-qtpositioning qtpositioning5-dev libkf5mime-dev libkf5calendarsupport-dev libkf5akonadicontact-dev libkf5akonadi-dev libkf5windowsystem-dev libkf5package-dev libkf5calendarcore-dev libkf5configwidgets-dev libkf5contacts-dev libkf5people-dev libkf5eventviews-dev libkf5notifications-dev libkf5qqc2desktopstyle-dev kdepim-runtime ninja-build $ git clone https://github.com/kde/kalendar $ cd kalendar $ mkdir build && cd build $ cmake .. -DCMAKE_INSTALL_PREFIX=$HOME/.local -GNinja $ ninja $ ninja install ``` At this point, kalendar failed to launch: ```sh $ kalendar QML debugging is enabled. Only use this in a safe environment. QQmlApplicationEngine failed to load component qrc:/main.qml:17:1: module "org.kde.kalendar.contact" is not installed ``` To resolve this issue, I simply copied the `build/bin/org/` directory into `~/.local/bin`: ```sh /home/rlue/tmp/kalendar/build $ cp -a bin/org ~/.local/bin ``` I'm fairly certain this wasn't the correct way to resolve this plugin path issue, but after doing this, kalendar works in all respects except for the bug outlined above.
I also can't create any events. Even if I fill every input with something.
I get the same issue on EndeavourOS, with merkuro installed from the package manager (using `yay`) and the calendar on Nextcloud. merkuro.calendar 23.08.1 Operating System: EndeavourOS KDE Plasma Version: 5.27.8 KDE Frameworks Version: 5.110.0 Qt Version: 5.15.10 Kernel Version: 6.5.5-arch1-1 (64-bit) Graphics Platform: X11 This is the console output when I run `merkuro-calendar` and edit an existing event: ``` org.kde.pim.akonadicalendar: Error occurred "" "Unable to create persistent search" org.kde.pim.akonadicalendar: Error occurred "" "Unable to create persistent search" qrc:/IncidenceInfoContents.qml:608:9: QML ColumnLayout: Binding loop detected for property "visible" qrc:/IncidenceInfoContents.qml:608:9: QML ColumnLayout: Binding loop detected for property "visible" qrc:/IncidenceInfoContents.qml:616:13: QML Heading: Binding loop detected for property "text" qrc:/IncidenceInfoContents.qml:616:13: QML Heading: Binding loop detected for property "text" qrc:/IncidenceInfoPopup.qml:41:26: QML IncidenceInfoContents: Binding loop detected for property "implicitWidth" qrc:/IncidenceInfoContents.qml:608:9: QML ColumnLayout: Binding loop detected for property "visible" qrc:/IncidenceInfoContents.qml:608:9: QML ColumnLayout: Binding loop detected for property "visible" qrc:/IncidenceInfoContents.qml:616:13: QML Heading: Binding loop detected for property "text" qrc:/GlobalMenu.qml: No such file or directory qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null qml: Invalid Date qrc:/IncidenceEditorPage.qml:363:17: QML ComboBox: Binding loop detected for property "currentIndex" qrc:/IncidenceEditorPage.qml:363:17: QML ComboBox: Binding loop detected for property "currentIndex" qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null qml: Invalid Date qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null qrc:/TimePicker.qml:151:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... } qrc:/TimePicker.qml:151:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... } qrc:/IncidenceEditorPage.qml:172:17: QML TextField: Binding loop detected for property "text" qrc:/IncidenceEditorPage.qml:706:38: QML TextField: Binding loop detected for property "text" qml: Invalid Date qml: Invalid Date file:///usr/lib/qt/qml/org/kde/kirigami.2/FormLayout.qml:88:5: QML GridLayout: Binding loop detected for property "knownItemsImplicitWidth" file:///usr/lib/qt/qml/org/kde/kirigami.2/FormLayout.qml:88:5: QML GridLayout: Binding loop detected for property "knownItemsImplicitWidth" file:///usr/lib/qt/qml/org/kde/kirigami.2/FormLayout.qml:88:5: QML GridLayout: Binding loop detected for property "knownItemsImplicitWidth" file:///usr/lib/qt/qml/org/kde/kirigami.2/FormLayout.qml:88:5: QML GridLayout: Binding loop detected for property "knownItemsImplicitWidth" file:///usr/lib/qt/qml/org/kde/kirigami.2/FormLayout.qml:88:5: QML GridLayout: Binding loop detected for property "knownItemsImplicitWidth" file:///usr/lib/qt/qml/org/kde/kirigami.2/FormLayout.qml:88:5: QML GridLayout: Binding loop detected for property "knownItemsImplicitWidth" qrc:/dateutils.js:166: TypeError: Value is null and could not be converted to an object qml: Can't calculate incidence item position for popup, no opening incidence item is set ``` This is when I get if I click to create a new event: ``` qrc:/GlobalMenu.qml: No such file or directory qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null qml: Invalid Date qrc:/IncidenceEditorPage.qml:363:17: QML ComboBox: Binding loop detected for property "currentIndex" qrc:/IncidenceEditorPage.qml:363:17: QML ComboBox: Binding loop detected for property "currentIndex" qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null qml: Invalid Date qrc:/DatePicker.qml:33: TypeError: Cannot read property 'startDate' of null qrc:/TimePicker.qml:151:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... } qrc:/TimePicker.qml:151:21: QML Connections: Implicitly defined onFoo properties in Connections are deprecated. Use this syntax instead: function onFoo(<arguments>) { ... } qml: Invalid Date qml: Invalid Date ```
Same for me. Kde Neon, Merkuro Calendar version 24.05.0 As a workaround, I can modify the dates and times of the event I'm creating and switch focus between those fields. After that, the validation error goes away.