The first results of porting Plasmate to KDevPlatform

In my previous blog post I explained the reasoning behind the port of Plasmate to KDevPlatform but I didn’t mention anything about the progress so far, so here we are 🙂

Plasmate’s UI consists of two different views. The first one is the startpage which serves the purpose of creating new packages and loading existing ones and the second one is the main window with the appropriate editor and the various dockwidgets that can be used for the specific package.

KDevPlatform offers an empty main window which gets populated with plugins. Which offers all the features that plasmate needs, so the decision was to reuse the main window from KDevPlatform and to drop the plasmate one. Which is great because we don’t have to maintain our own and of course we could improve the KDevPlatform’s one if we need to.
Also when the port gets finished we won’t offer all the plugins that are available we will only offer the ones that can be used for the development of plasma packages.  So here we have the plasmate’s main window


Reusing KDevPlatform’s main window means that some changes were required in the startpage in order to integrate it with the main window but the UI hasn’t changed as you can see 🙂


Also as I mentioned before, the main window gets populated with plugins. So the first plugin that I had to implement was the replacement of the plasmate’s file manager. This new plugin is called “Package” in the UI. The main characteristic of the “Package” plugin is that it presents the files of the package with their semantic names. Here we have a plasmoid package and a theme package



From a technical point of view, the plugin is using the KDevelop::ProjectModel which is a QAbstractItemModel and I have just used the QIdentityProxyModel in order to change the names of the files.

Note that the port is in progress so by the end a lot of things will be polished.

Stay tuned! 🙂

2 thoughts on “The first results of porting Plasmate to KDevPlatform”

Leave a Reply

Fill in your details below or click an icon to log in: Logo

You are commenting using your account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s