Tarptaeya's Blog

Showing post tagged KDE | Show all posts instead

The Joy of GSoC :)

2 min read

Published: 2018-08-14 02:20:00

By Anmol Gautam

Tags: GSoC Falkon KDE


Wooo... this is the last day of coding phase of GSoC. I am writing this blog to share my experience and work done in the coding phase. I want to specially thank my mentor David Rosca for his help, suggestions and reviews. This was my first exposure to the KDE community and I am proud that it was great. I really enjoyed the whole program from proposal submission - intermediate evals - then now this final evaluation. Also, I had learned a lot working on my project. Frankly speaking, I didn't knew about i18n and l10n much but with the help of my mentor now I have a quite good understanding of how these works and are implemented. I can truly say this was one of my best summer vacations.

The code will soon be merged with the master branch of falkon. You can see my status report page for more details about the work done during GSoC. Also in the last weeks I have implemented an extensions page for falkon similar to about:addons in firefox. Below is the screenshot of falkon:extensions page. This also enables to remove the extension from local storage. Also, the themes can be viewed and controlled by the theme panel on the same page.

Falkon_Extensions_Page

Falkon_Themes_Page

And yes, I will regularly contribute to KDE community specially Falkon.

Happy August


Leave a response

View all responses (0)

Eighth & Ninth week of coding phase, GSoC'18

1 min read

Published: 2018-07-15 23:00:00

By Anmol Gautam

Tags: GSoC Falkon KDE


I am very happy that the third phase of coding phase has begun. The following work is done in eighth & ninth week:

UserScript API

The API to interact with browser user-scripts. This will enable the plugin to create, register, remove, and get all the user-scripts loaded in the browser. Also the scripts registered by it will automatically gets unregistered when the plugin unloads.

Ability to register external QtObject

Since the UserScript API is developed, so the next step was to develop a channel between qml-plugin and webengine. The ExternalJsObject type will enable a QtObject to register as external js object as Falkon.ExternalJsObject.registerExtraObject ({id, object}) and Falkon.ExternalJsObject.unregisterExtraObject({object}) to unregister the object.

ExtensionScheme API

Now as both UserScript and ExternalJsObject APIs are developed, the next step as suggested by my mentor was to implement an extension:// page for qml-plugins.

This time, unfortunately I am yet to add the documentation & tests of the following APIs, but I will complete it soon.

Happy Monsoon :-)


Leave a response

View all responses (0)

Seventh week of coding phase, GSoC'18

2 min read

Published: 2018-07-01 22:00:00

By Anmol Gautam

Tags: GSoC Falkon KDE


The following work is done in the seveth week:

Events API

The Events API exposes the Key, Mouse and Wheel events. The properties like mousePress, mouseDoubleClick, keyPress, etc are added to QmlPluginInterface class which on set to a JavaScript function will register the plugin for that event & will call the function with proper arguments (containing event & object on which the event is triggered) when the event is triggered.

WebPage methods in Tabs API

Implementing acceptNavigationRequest for QML Plugins requires to expose some methods of WebPage class to QML. Now since the standard WebExtensions API doesnt differentiate WebView/WebPage from Tabs API - so the required methods are added to QmlTab class (similar to the WebExtensions Tabs API).

I18n API

The I18n API exposes the methods i18n and i18np to the QML Plugins and uses gettext C API (similar to Python plugins, unlike C++ plugins). Since this uses libintl.h, it will probably not work under windows unless there is some way to make it available with MSVC. Also this API took most of my time, as I misunderstood gettext similar to python extensions as exposing the gettext module of python to QML.


Leave a response

View all responses (0)

Older | Newer
Copyright © 2017 - 2018 Anmol Gautam