Monthly Archives: March 2016

Status QtWebEngine in KDEPIM

As QtWebKit will be remove from official Qt package I decided some months ago to evaluate QtWebEngine.

For sure QtWebEngine < 5.6 was too limited. But I started to use it. I evaluated QtWebEngine 5.5 but some features were missing (as possibility to block request or use custom scheme url).

I started to focus on Akregator as it still used khtml, I migrated it to QtWebKit and after that to QtWebEngine. (For 16.04 there is a experimental option to activate compilation).

When I proved that it was possible to use in kdepim I started to port kmail. It was not easy as we use specific QtWebKit methods as QtWebElement which are sync method. In QtWebEngine we need to use async method.

So I started to create test application and autotests to validate my changes.

(For example I wanted to make sure that scamdetection works in QtWebEngine as it worked in QtWebKit).

Status in master

Akregator/Kontact/kmail can use QtWebEngine.

I created a new lib to replace composereditor-ng, named composereditorwebengine to make it possible to use QtWebEngine in Blogilo too. I finished it this morning.

I reimplemented AccessKey + AdBlock + ScamDetection support against QtWebEngine.

Future

I will continue to fix, implement features. Not all is finished (but I use by default KMail QtWebEngine so I can see bugs and fix them).

QtWebEngine in kdepim

As QWebKit is deprecated now (it’s not in official 5.6 package, but we still able to build by hand for 5.6 as distro will do) I investigated how to replace it by QWebEngine.

For sure QWebEngine  < Qt5.6 was not enough to replace it in akregator or others kdepim component.

For example QUrl custom scheme was not supported until 5.6.

So I decided to start porting kdepim against QtWebEngine. Some parts were easy as “about page” in kontact, others were harder as akregator support or others parts were not started yet (as remove QtWebKit in kmail for example).

This big problem is that QtWebEngine uses async method when QtWebKit used sync method.

So it was necessary to rewrite a lot of part of code (still in progress).

But my big success is Akregator which works fine with QtWebEngine.

In kdepim/messagelib/kdepimlibs I added an option for activate it. But it will not activate by default for 16.04 as it’s still not perfect yet.

I will continue this work until 16.08.

There is still a lot of work as:

  • reimplement adblock support (in progress)
  • reimplement accesskey
  • rewrite mail viewer to support it
  • rewrite blogilo lib based on QtWebEngine.

But it’s good and fun to do it 🙂