Shubham's Blog

My GSoC 2025 Journey - Part 1

gsoc+kde image

Hi, I'm thrilled to be part of Google Summer of Code 2025 with KDE Community, working under the mentorship of Carl Schwan, Claudio Cambra, and Aakarsh MJ. My project, "Modernize Account Management with QML," aims to enhance the account management system in Merkuro, by transitioning its resource configuration dialogs to QML. This blog post introduces my project and shares the progress I've made in the recent weeks.

About the Project -

Merkuro currently relies on QWidget-based dialogs for managing account resources, which, while functional, are not optimized for modern platform usability, especially on touch devices or diverse platforms. My project addresses this by porting resource configuration dialogs to QML, a modern, flexible, and responsive UI framework, while maintaining compatibility with existing QWidget-based systems. The goal is to create a shared infrastructure that supports both QWidget and QML-based configurations, enabling a seamless transition to modern UI development without disrupting existing functionality.

The project has two main components:

  1. Building a Shared Infrastructure: Creating a foundation that supports both QWidget and QML-based configuration dialogs for Akonadi agents, ensuring backward compatibility and scalability.

  2. Porting SingleFileResource-Based Configurations: Migrating singlefileresource based configurations, such as the ical, vcard, etc to QML to provide a modern, responsive user experience.

Benefits to KDE Community -

Porting Merkuro's account management to QML offers significant benefits:

Progress So Far -

1. Implemented Shared Infrastructure for Akonadi

To support both QWidget and QML-based configurations in Akonadi, I developed a new infrastructure in following way:

This infrastructure, inspired by KCMUtils, enables Akonadi to handle both legacy and modern UI paradigms seamlessly.

2. Ported Knut Configuration Dialog to QML

I removed QWidget based code and then implemented Knut configuration dialog in QML.

And currently working on porting singlefileresource based dialogs....

Challenges Faced -

The progress came with several challenges that shaped my learning:

And of course, compiling errors and warnings were always there to keep me company :)

Thank you and stay tuned for the next part, where I’ll share more updates and learnings from my GSoC journey!