Editing and deleting mistakes… and events too — Kalendar week 4 (GSoC 2021)

You know that feeling when you read your old code and are amazed at how bad the design is? Well… yeah. This week has been a lot of going over what I’d written in the past few weeks and cleaning out the bugs, the errors, and the inconsistencies. At risk of having to write these exact sentences next week, I’ll say the process is not yet complete!

Even so, much of Kalendar is in better shape than it was a week ago. If you are a particularly fearless person, you might even be able to start using it as your actual calendar app — not that I am in any way recommending you do so (yet!)

Edtin Editing events

With this week’s merge request, Kalendar now lets you edit events! All you need to do is right-click on an event, select edit, and BAM. You can edit your event, and once you’re done, clicking the ‘Save’ button will put your changes into effect.

 

You can also delete your event from the context menu, including those that are recurring.

Speaking of recurrence: Kalendar’s event editor now also has options for adding exceptions to your event’s recurrence, letting you skip out on a day (because maybe you don’t want to set up a meeting on Christmas). The editor should also display your existing events’ recurrence exceptions, along with all of its other details.

Keep in mind that this only applies to events from calendars that you can edit. Those events belonging to read-only calendars can be viewed, but not edited or deleted. Which brings us to the next thing:

Viewing events

We’ve talked about right-clicking on an event. Let’s talk about left-clicking on an event. This now brings up a pop-up card that displays some details about your event!

These are not yet complete — they are lacking information about event duration, for instance — but it should make viewing events quick and easy.

Bugsplatting

This MR also contains several big bug squashes. A lot of them have to do with the event editor, which has had lots of bits refactored.

Big bug fixes have taken place in the monthview too. It should now retain its week-day layout (according to your system’s locale settings) and appropriately lay out the month’s days upon changing the month.

Coming up next

In what’s quickly becoming vaporware, the move from an overlay sheet to an external window for the event editor is still on the to-do list. A lot of other things are joining the to-do list now too:

– Break up event editor components into separate QML components, same with month view event cards
– Provide user with confirmation dialog before event deletion
– Display journals and to-dos in Kalendar

Rest assured, there are a lot more things we are thinking of too. If you have any ideas you’d like to add, get in touch! I’m @clau-cambra:kde.org on Matrix.

Figuring out recurrence (and bugs…) in Kalendar’s week 3 (GSoC 2021)

This week, we have been focused on making sure that the event editor is finally fully functional – at least, for adding events. 😉

The main obstacles to that were a lack of working recurrence rules and general bugginess, especially around keyboard input of event date/time. Once this week’s merge request is merged, most of that should be fixed!

Recurecurecurecurecurrence

With this week’s merge request, the previously inactive “Repeat” section of the event editor now does what you would expect it to. Now, like in KOrganizer, Kalendar lets you pick how your event is going to repeat, either by selecting a preset (e.g. Daily/Monthly/etc.) or by creating a custom recurrence rule. Custom recurrence rules have special layouts that allow you to create a rule that works exactly the way you want it to!

With this, the event editor sheet is now fully functional for adding events to your Akonadi-connected calendars!

General fixes

Looking forward to next week, some of the groundwork has also been laid for the event editor sheet to be ready for editing events. A lot of this has meant changing the way input fields work, mapping their values directly to the event object’s instead of applying changes on event addition. With these changes, implementing editing on this sheet should require minimal adjustment.

Time has also been spent testing and bug-fixing the current implementation, meaning you should be able to add events more reliably!

Up next

Even though some parts of the event editor should be almost ready for event editing, some of them (like our new recurrence UI) still need to be worked on.

Making the event editor a separate dialog window is also still on the to-do list! 😬

If you have any ideas for Kalendar, get in touch! I’m @clau-cambra:kde.org on Matrix.

Week 2 on Kalendar (GSoC 2021)

Last week’s merge request was manually merged by Carl, and now Kalendar has a (kinda) working event editor sheet! Some bits work and others don’t:

Working:

  • Title, location and description addition to event
  •  Event date and time setting
  •  Reminder and attendee attachment to event

Super not working right now:

  • Event recurrence

So… mostly there!

New week, new merge request

This week’s MR involved a big refactor of the linkage between the front-end of the reminder and attendee addition UI and the back-end stuff going on.

All this stuff now happens with models, and changes in each of the fields gets added to the models. This means that anything that you see in the UI should directly reflect whatever is present in the actual event — you won’t see a reminder and attendee that isn’t actually in the event. The benefits of having a single source of truth!

The UI for each attendee’s details has also changed, and it now allows you to select the attendee’s status (i.e. have they RSVPed?) and it also lets you request an RSVP from the attendee.

Also, Kalendar’s repo has been moved into the PIM namespace on Invent, so now you can more easily find it 🙂

Up next

Recurrence is going to get figured out, and with that, the event editor should finally be fully functional. That’s number one on my agenda for next week.

Additionally, while an overlay sheet is a good solution for the event editor on mobile, a separate window would let it have some extra breathing room on desktop. So this is something that I will also be working on next week.

If you have any ideas for Kalendar, get in touch! I’m @clau-cambra:kde.org on Matrix.