Over the past two weeks, we have been hard at work under the hood of Kalendar. What you can expect from these two weeks’ refactors, additions, and changes is a version of Kalendar that is more stable, faster to use, and easier to use than ever before.
Note: Kalendar is still under heavy development. You’re free to poke around and try it out, but it is not yet final software! If you want to contribute to its development, join us in Kalendar’s Matrix room.
Our 0.3.0 release
We are excited to have you try Kalendar, and we want your feedback — especially bug reports! These will help us improve Kalendar as much as possible before releasing 1.0.
It is now in the hands of distribution packagers to add Kalendar to their repositories. The most up-to-date and unstable version of Kalendar will continue to come from our git repository, and some users have gone ahead and started packaging builds of Kalendar coming straight from our master branch.
- OpenSuse has a package on OBS (KDE:Unstable:Extra)
- Fedora has two COPR packages (1) (2)
- Arch has an AUR package
- Neon has Kalendar packaged in Unstable
We hope you enjoy using Kalendar as much as we enjoy making it, and look forward to what you have to tell us about it!
Now, here’s what’s new this week:
Making Kalendar faster to use
Improve defaults (Claudio Cambra)
Double-clicking on incidence now opens up the editor (Claudio Cambra)
Added menu entries to refresh all calendars, including an F5 shortcut (Claudio Cambra)
Can now resize incidences in the week view by dragging on bottom edge (Claudio Cambra)
Kalendar now auto rounds new start dates for events to next nearest 15 mins (Claudio Cambra)
Kalendar now auto rounds new due dates for tasks to next nearest 15 mins (Claudio Cambra)
We’ve made several small tweaks and additions that should make Kalendar faster to use when you’re in a hurry.
Plasma’s motto has been ‘simple by default, powerful when needed’ for the past half-decade. Kalendar’s philosophy is the same, and this week we tweaked our default configuration to make the application as clean and simple as it needs to be. Concretely, we have changed the month view to not show week numbers by default, and for tasks to be arranged in ascending date order. This should save you from fiddling around with the settings!
Thanks to feedback from some of our users, we have now also made Kalendar much faster to interact with. In the last devlog, we explored the new drag-and-drop feature, and this week we are expanding on the week view’s speed by introducing event “resizing” directly from within the view. Clicking and dragging on the bottom edge of an event now lets you adjust its end time without having to open the editor window.
If you do need to edit an event in more detail, however, this is now a lot quicker too: you can just double-click on an incidence in any of Kalendar’s views to bring up the editor.
We have also added an action to immediately refresh all of your synchronised calendars if you need a remote change to be immediately reflected in Kalendar. A new “Refresh All Calendars” action can be found in Kalendar’s menus, and can also be quickly invoked by pressing F5.
Lastly, we are making setting the time for your new events and tasks easier: rather than simply setting the start or due times of these incidences to the current time, we are rounding them to the nearest upcoming 15-minute multiple. Hopefully this will save you from having to manually edit start, end and due times as much!
Visual improvements and tweaks
Made currently selected time more obvious with bolding in the time picker (Claudio Cambra)
Added rectangle to show clearly current time selected in time picker (Claudio Cambra)
Add list section headings to tasks view (Claudio Cambra)
It wouldn’t be a Kalendar update without some visual improvements!
We have paid some attention to the time picker, which was preciously not very clear on what time was being selected. We have added a background and bolding to the currently selected time in order to highlight it. This should make selecting and event’s time much clearer.
Additionally, we have also added some section headings to the tasks view. These section headings adapt according to what type of sorting you are using for your tasks (i.e. alphabetically, by date, or by priority) and clearly show the categories that your open tasks fall under.
Accessibility improvements throughout Kalendar
Improve accessibility of sidebar (Carl Schwan)
Improve color checkbox visual focus (Carl Schwan)
Fix keyboard navigation in TreeView (Carl Schwan)
Added a delete key shortcut to delete currently viewed incidence (Claudio Cambra)
Carl has merged some changes to Kalendar that should significantly improve keyboard-based navigation around the app. The sidebar is now much more responsive to keyboard navigation and allows you to interact with all of its elements without the mouse, including selected calendar’s checkboxes, view-switching buttons, and so on.
Similar changes have taken place to the tree-view that forms the basis of the tasks view. Whereas before this component was not really navigable by keyboard alone, this is no longer the case: the up and down arrow keys let you select the row, while the left and right arrow keys let you expand or collapse a rows with children.
Finally, there is also a new change that lets you delete the incidence you are currently viewing by pressing the Delete key, saving you from having to navigate through the UI.
Having said this: we still have a long way to go accessibility-wise throughout the rest of Kalendar, especially when it comes to its calendar views. If you have any experience in improving the accessibility of QML-based applications, or simply have feedback as to how we can help make Kalendar easier to use for more diverse audiences, don’t hesitate to get in contact with us!
Fix drag and drop and resize behaviour for recurring incidences (Claudio Cambra)
Incidence wrapper is now an ItemMonitor, letting us update incidence info automatically when they change in calendars (Claudio Cambra)
Add an alarm client to Kalendar (Claudio Cambra)
While conventionally bug-fixes are listed at the bottom of these updates, some significant refactors have occurred over the past two weeks that should fix a variety of fairly problematic issues.
The first was drag and drop for recurring incidences. We have rewritten how drag and drop works, and it now works far more intuitively than it did before. Dragging and dropping a recurring event’s occurrence now prompts you to pick what you want to do, rather than just pushing forward all of your recurring incidences to the date you just dropped this incidence at. The choices lets you create an exception (or several exceptions) for a recurrence, letting you modify how your event is supposed to recur over time.
Additionally, we now properly handle time-zones in drag+drop, meaning you shouldn’t face a jarring issue where dropping an incidence in one place would immediately make it move elsewhere.
The class that handles presenting incidence’s data to the UI has also been modified. Changing an incidence in the editor, for example, will now cause these changes to be reflected in the incidence info drawer if it is also showing the data for said incidence. This should fix issues with an edited event now having these changes propagated throughout all of Kalendar.
Finally, we have added a big new component to Kalendar’s backend: an alarm client that runs in the background, providing notifications for upcoming reminders for your events. The alarm client starts in the background and remains running after you close Kalendar to ensure your reminders always reach you. This daemon lives in the system tray and provides you with a few options you can tweak to your liking.
Kalendar on Windows??
- Remove export macro from models (Nicolas Fella)
- Default to qqc2-desktop-style (Nicolas Fella)
- Force breeze QStyle on Windows and Mac (Nicolas Fella)
Thanks to Nicolas, we now have a running and working version of Kalendar on Windows! Thanks to the flexibility of Qt, the KFrameworks, and Akonadi, you can now download a version of Kalendar for Windows — though do note that we test mainly on Linux and that the Windows version is definitely more of an experiment than a final product. Still — if you’re tired of using the proprietary calendar app on Windows, give it a try!
Other bug-fixes and small changes
- Can now filter by clicking on tags in incidence info (Claudio Cambra)
- Trying to import multiple ical files won’t open multiple instances anymore (Carl Schwan)
- Use up to date version of eventviews todomodel and incidencetreemodel and use eventview’s todo sorting mthod, fixing bugs (Claudio Cambra)
- Stop emitting layoutchanged on sort, which stops tasks view resetting every time you do something (Claudio Cambra)
- Port away from onFoo in connections (Tobias Fella)
- Remove unneeded KPeople dependency (Carl Schwan)
- Deleting an event now deselects it. (Claudio Cambra)
- Drag and drop hotspot now follows cursor rather than parent incidence rectangle top-left corner (Claudio Cambra)
- Fixed week view drag and drop timezone issues (Claudio Cambra)
- Fixed vertical drag and drop in certain views (Claudio Cambra)
- Tweaked drag hotspot in week view (Claudio Cambra)
- Fixed escape key handler in main.qml (Claudio Cambra)
- Fixed prior month numbers when viewing January (Claudio Cambra)
- Don’t overwrite searchfield default placeholder text on sidebar (Felipe Kinoshita)
- Stop limiting pressing escape to close dialogs to desktop only (Claudio Cambra)
- Schedule view now stays in place when things change (Claudio Cambra)
- Schedule view now stays in place when things change… part 2 (Claudio Cambra)
- Fix possible assert fail in TodoSortFilterProxyModel (Claudio Cambra)
- Swapped listview for daycolumns in favor of row of columns (Claudio Cambra)
- Fixed window title for week view (Claudio Cambra)
- Stop letting view buttons load the same page that is currently active (Claudio Cambra)
- Disabled tags combo in incidence editor when there are no tags to choose from (Claudio Cambra)
- Incidences in week view that go across two days (e.g. 11PM to 1AM next day) no longer get cut off at bottom of previous day (Claudio Cambra)
- Consistent numbering in week view with month view for days (Claudio Cambra)
- Can now select collection in collectionpickersheet using enter/return key (Claudio Cambra)
Is there anything you’d like to see added to Kalendar? Get in touch! I’m @clau-cambra:kde.org on Matrix.
If you want to support Kalendar’s development, I strongly encourage you to donate to the KDE community. These donations help us keep our infrastructure running, including our GitLab instance, our websites, and more. You can donate at https://kde.org/community/donations/.