So, for the past 2-3 days, I was working on creating a good looking wrapper for whatsapp, which fits into the KDE ecosystem. Even though I actively use matrix and other messaging platforms, I cannot quit whatsapp. And the lagging new UI of whatsapp, made me sick. This wrapper was also from an idea, that I often forget, where I downloaded a file from Whatsapp or whether I even downloaded it.
This wrapper is aimed to solve 3 main problems
- Allow the users to easily manage the permissions given to the website
- Keep a track of all the downloads [WIP]
- Allow multiple profiles within the same app (Firefox container works, but lags a lot) [WIP]
Currently to build this app, you’ll need to be on the latest commit of every library that’s being used, atleast Kirigami Addons for sure, as I have fixed a bug
, and implemented a new feature in the MessageDialog component.
The Bugs:
-
Even though
MessageDialog
inherits Qt Dialog, it needed some special setup to handle the Don’t show again button. It worked in all the cases, but it was not handling the scenario where the user was Rejecting the dialog (not cancelling). When standard buttons like Dialog.Abort or Dialog.No are pressed, they emit therejected
signal. -
I have found another rather odd behavior in the Qt WebEngine. I am using the QWebEngineView QML type to show the webapp. When I am leaving the idle, out of focus, the web view is suddenly turning black. After rigorous search, I found out that this is a very old issue, and has probably popped up again in Qt 6.9.0 update. One can found a bug report of the same here. Surprisingly, if I use the C++ variant, with same settings, this issue doesn’t show up. The current workaround is to disable GPU composting. Let’s see if this gets fixed soon.
The Feature:
This is feature in the same MessageDialog
component is the backbone of how permissions are intuitively managed inside the app. Whenever a permission is required, the app creates a popup asking for it without silently allowing it. If the user wants to press yes and don’t want this selection to be saved, then no problem. But the problem arises when the user wants to save their selection for the future reference, that’s when things get complicated. I had my own config inside the app, to manage the permissions. But MessageDialog
created its own group inside the config. So, I patched it, to allow passing custom config group name. And thus, I am able to sync the permission that’s selected by the user, and users can undo their choice anytime directly from the app’s settings.
Screenshots
Here are some screenshots of the app
Main Window
Whatsup Asking Permission
Whatsup Settings Page
Building from source:
Right now, you can easily build this app using KDE Builder. If you want to try manually, I’ve written the necessary packages for KDE Neon in README.
So, guys, please give this app a try. Right now, all the features that have been implemented works perfectly. Let me know how you guys think of it.