An eventful week — Kalendar week 5 (GSoC 2021)

Last week’s MR turned into this week’s MR, and it just kept growing and growing and growing. I know I’m a mentor’s nightmare and I’m sorry Carl, I know it was a lot of changes to review…

The good news is that it was all worth it, because there have been lots of changes this week — small and big. Even better, you’ll finally be able to find the changes I went through in last week’s post on Kalendar’s master branch.

Let’s dive into the new stuff!

Editing the event editor

If you’ve been following these posts, you will have seen the event editor: an overlay sheet that lets you edit the details about an event down to a tee. Well, that overlay sheet is no more. It made sense when we had a few fields to fill, but as the capabilities of the event editor started to grow, it pretty quickly started to feel pretty cramped.

On the desktop, we now use the incredible power of windows to create a detached event editor window. So now you not only have plenty of space to punch in your next visit to your grandma’s, but you can also move it around and resize it. How revolutionary.

Of course, on your phone a window would be less than ideal. So if you use Kalendar in mobile mode, you’ll instead be greeted by the event editor as a page, maximising the space that the editor can have. This should let you see a lot more at once, with a lot less wasted space!

Yeeting events out of existence

Last week, deleting events was pretty low-key. You clicked delete on the dropdown and then something happened. What exactly? Who knows!

This week, if you try to delete an event, you’ll get a dialog that tells you exactly what’s going to happen. This’ll let you confirm what you’re deleting before you’re deleting it, giving you a chance to correct an oopsie. You’ll also know precisely what you’re deleting.

For recurring events, you’ll also get some handy extra options. You’ll have seen these in other calendar applications: you can choose whether to delete a specific event occurrence, all future occurrences, etc.

What’s going on?!

Also new this week is a better UI for viewing your events and their details. The popups have been replaced by a side-drawer that provides you with exactly what you need to know about what’s coming up: summary, description, location, and more.

On mobile, the side-drawer is an overlay drawer. This gives lets you make the most out of your phone’s vertical real estate to display as much data as possible at once.

But hey, we know, you have a great big chonkin’ display hooked up to your desktop, right? That’s why on desktop, the drawer is in fact in-line, letting you still view and interact with your calendar while it is open.

These are still under development, and they’ll get a bunch of additional useful information over the course of the next week. This includes reminder, recurrence and attendee information, clickable hyperlinks in descriptions and attendees, and icons.

More bugsplatting

The bugs continue on their never-ending march, onwards. Until the heat-death of the universe. I’m happy to say that some pretty big bugs got smashed this week, though:

  • Fixed bug where the date and time fields would show up empty in the event editor (FINALLY!!!)
  • Reminders and attendees should now always show up correctly in the event editor when editing events
  • Keyboard input in all fields – including date/time fields – works correctly, letting you edit and add events without touching your dirty mouse
  • Added warnings in the event editor for when an event has its end date set to a date before the start date. The event editor also prevents you from adding/saving an event in such a condition.
  • …and many smaller bugs too!

Coming up next

Efforts right now are being focused on getting the event info drawer up to scratch with everything you’d need to know about an event. But there’s a lot more on the horizon: other calendar items, undo/redo functionality, attachments… and new calendar views, too. Not all of that will land next week – in fact, most of it won’t! – but you can bet progress will be made. 😉

Is there anything you’d like to see added to this list? Get in touch! I’m @clau-cambra:kde.org on Matrix.

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.