Following Dan it’s my turn this time to provide you with an overview on what has happened around Kontact in the past two months. With more than 850 commits by 22 people in the KDE PIM repositories this can barely scratch the surface though.

KMail

Around email a particular focus area has been security and privacy:

Sandro worked on further hardening KMail against so-called “decryption oracle” attacks (bug 404698). That’s an attack where intercepted encrypted message parts are carefully embedded into another email to trick the intended receiver in accidentally decrypting them while replying to the attacker’s email.

Jonathan Marten added more fine-grained control over proxy settings for IMAP connections.

André improved the key selection and key approval workflow for OpenGPG and S/MIME.

Laurent also continued the work on a number of new productivity features in the email composer:

Unicode color emoji support in the email composer.

Color emoji selector.

Integration with grammar checkers such as LanguageTool and Grammalecte in the email editor.

Grammalecte reporting a grammar error.

Markdown support in the email composer, allowing to edit HTML email content in markdown syntax.

Markdown editing with preview.

This isn’t all of course, there’s plenty of fixes and improvements all around KMail:

Albert fixed fixed an infinite loop when the message list threading cache is corrupted.

David fixed a Kontact crash on logout (bug 404881).

Laurent fixed access to more than the first message when previewing MBox files (bug 406167).

The itinerary extraction plugin benefited from a number of improvements in the extractor engine, see this post for details.

And fixing papercuts and general polishing wasn’t forgotten either (most changes by Laurent):

Fix cursor jumping into the Bcc field in new email (bug 407967).

Fix opening the New Mail Notifier agent configuration.

Fix settings window being too small (bug 407143).

Fix account wizard not reacting to Alt-F4 (bug 388815).

Fix popup position in message view with a zoom level other than 100%.

Fix importing attached vCard files (bug 390900).

Add keyboard shortcut for locking/unlocking the search mode.

David fixed interaction issues with the status bar progress overlay.

KOrganizer

Around calendaring, most work has been related to the effort of making KCalCore part of KDE Frameworks 5, something that particularly benefits developers using KCalCore outside of KDE PIM. The changes to KCalCore also aimed at making it easier to use from QML, by turning more data types into implicitly shared value types with Q_GADGET annotations. This work should come to a conclusion soon, so we can continue the KF5 review process.

Of course this isn’t all that happened around calendaring, there were a few noteworthy fixes for users too:

Fixed an infinite loop in the task model in case of duplicate UIDs.

Improved visibilities of timeline/Gantt views in KOrganizer with dark color schemes.

Damien Caliste fixed encoding of 0 delay durations in the iCal format.

KAddressBook

Like calendaring, contact handling also saw a number of changes related to making KContacts part of KDE Frameworks 5. Reviewing the code using KContacts lead to a number of repeated patterns being upstreamed, and to streamlining the contact handling code to make it easier to maintain. As a side-effect, a number of issues around the KContacts/Grantlee integration were fixed, solving for example limitations regarding the localization of contact display and contact printing.

There is one more step required to complete the KContacts preparation for KDE Frameworks 5, the move from legacy custom vCard entries to the IMPP element for messaging addresses.

Akregator

Akregator also received a few fixes:

Heiko Becker fixed associating notifications with the application.

Wolfgang Bauer fixed a crash with Qt 5.12 (bug 371511).

Laurent fixed comment font size issues on high DPI screens (bug 398516), and display of feed comments in the feed properties dialog (bug 408126).

Common Infrastructure

The probably most important change in the past two months happened in Akonadi: Dan implemented an automatic recovery path for the dreaded “Multiple Merge Candidate” error (bug 338658). This is an error condition the Akonadi database state can end up in for still unknown reasons, and that so far blocked successful IMAP synchronization. Akonadi is now able to automatically recover from this state and with the next synchronization with the IMAP server put itself back into a consistent state.

This isn’t all though:

Another important fix was raising the size limit for remote identifiers to 1024 characters (bug 394839), also by Dan.

David fixed a number of memory leaks.

Filipe Azevedo fixed a few macOS specific deployment issues.

Dan implemented improvements for using PostreSQL as a backend for Akonadi.

The backend connectors also saw some work:

For the Kolab resource a memory management issues got fixed, and it was ported away from KDELibs4Support legacy code.

David Jarvie fixed a few configuration related issues in the KAlarm resource.

Laurent fixed configuration issues in the MBox resources.

The pimdataexporter utility that allows to import/export the entire set of KDE PIM settings and associated data has received a large number of changes too, with Laurent fixing various import/export issues and improving the consistency and wording in the UI.

Help us make Kontact even better!

Take a look at some of the junior jobs that we have! They are simple, mostly programming tasks that don’t require any deep knowledge or understanding of Kontact, so anyone can work on them. Feel free to pick any task from the list and reach out to us! We’ll be happy to guide you and answer all your questions. Read more here…