The End is here!
The long journey of GSoC (which got streched into 16 weeks) is nearing to an end. And in this blog, I will share a few of the things I have done, and some of the things I have left to do. Let’s start with the main works.
Snap KCM! It’s here!
I have finally succeeded to create a KCM for snaps. This is written using C++, Qt (Qml), Kirigami, Snapd-Glib Api. The flow is something like this
Flowchart of the Snap KCM
SnapBackend → Collects all snaps → Collects all the connections → sort those, map all connections with their respective snaps → saves those to a custom class(KCMSnap) → Lists them via QML
The architecture of the KCMSnap class is like these
KCMSnap class architecture
QObject |
↓ |
KCMSnap |
Properties:
- m_snap (QSnapdSnap)
- m_plugs (QList<QSnapdPlug>)
- m_slots (QList<QSnapdSlot>)
Methods:
- snap => QSnapdSnap
- plugs => QList<QSnapdPlug>
- slots => QList<QSnapdSlot>
- icon => QVariant
QProperties:
- QSnapdSnap *snap READ snap CONSTANT
- QList<QSnapdPlug *> plugs READ plugs CONSTANT
- QList<QSnapdSlot *> slots READ slots CONSTANT
- QVariant icon READ icon CONSTANT
And here is an image of it!!!
Doesn’t this look great? 😉
And to top this off, I made a snap for this. One can find more about it in the snap forum post .
Snap Maintenances
Neochat Snap
Upgraded the snap to the latest release. Needed to build some parts from source.
https://invent.kde.org/network/neochat/-/merge_requests/1923
Snapcraft Desktop Integration
Working into improving the launch speed for KDE Snaps.
https://invent.kde.org/soumyadghosh/snapcraft-desktop-integration
Discover
Fetching Icons of Snaps
I reused the logic of fetching icons for snaps, which I used in Snap KCM. The logic is something like this
- QSnapdSnap → icon
- QSnapdSnap → media →
mediaType == icon
- QSnapdClient → getIcon → icon
https://invent.kde.org/plasma/discover/-/merge_requests/936
And is this it? End of my journey with KDE? Well, no. It just started. And I have a long way to go. With Snaps, With Carl Schwan’s KDE Apps Initiative. I want to make some small, handy utilites for KDE.
Thank you everyone, for helping me out!!
A big thanks to the KDE Development Matrix channel members for all the help. I am really grateful to you!