Google's Summer of Code and students working on numerous KDE projects during has a long and successful tradition for KDE. KDE, being a big organization with a community it and many projects different facets provides a lot of opportunities for students to participate in this program and to contribute to an open-source project that they are interested in.
o surprise this year many students decided to bepart of the KDE.
e prepared for a long post about many interesting projects and great results achieved during GSoC.
1. Porting activities
Many KDE projects are still in the process of porting the code to the new frameworks Qt5/QtQuick and KDE Frameworks 5 (KF5) - the next generation of KDE libraries, modularized and optimized for easy integration in other applications. This year several students helped to make this transition .
Aroonav Mishra portedAmarok to Qt5/KF5. R. Harish did this for Kopete.
The educational entertainment software GCompris welcomes any help to finish this move.
Mohamed Anwer digiKam. In digiKam, the communication with the database was done in KIO-slaves, running in separate process. To increase the portability of the application and to reduce the serialization of data between different processes, the decision was made to change the architecture and to move to Qt5's threads. The new thread-based implementation done during this smmer resulted in a much better performance. Also, other the source code a wrapper for all KIO-related stuff was provided. The implementation behind this wrapper, which optionally doesn't use KIO anymore, compildigiKam as a pure Qt-application without any dependency on KIO
Vyacheslav Matyushin ported KSystemLogutility showing different system protocols to KF5. While porting the code, he also fixed many bugs and memory leaks. In addition to that, many new features were added like the support for local and remote journal, filtering of the log entries by priority, improved configuration dialog.
Main window showing log entires colored according to their priority. By default, all priorities are displayed. User can select priorities to be displayed
Journald mode configuration widget allows to add remote journals
A porting project of a different kind was taken by Gábor Péterffy who ported Marble to Android. Marble Maps is available now in Google Play and provides navigation and routing functionality using OpenStreetMap's content. Distance measurements, interactive route planning are available in the first version of Marble on Android.
KDevelop got a new "checker framework" contributed bydfighter. The idea behind this project was to provide a general framework for different static code analysis tools and profilers that can be used in KDevelop. This framework aims to unify and simplify the code infrastructure and to provide a consistent and user-friendly GUI for using such tools in KDevelop. Somexisting plugins for cppcheck, Valgrind and Krazy were ported to this framework. The support for code analysers clang-check and pylint was added. The final report contains a lot of detailed information on this as well as a video demo of this useful functionality.
uring GSoC2014 clang was integrated into KDevelop in order to use for source code indexing, syntax checking and highligting instead of KDevelop's own complex implementations for th tasks. Despite the g progress a last year, there was and is still a lot to do in the area of kdev-clang plugin for KDevelop - bug fixing, adding features, stabilizing the code. This year Sergey Kalinichev worked on the project "Further Clang integration in KDevelop" and extended the feature-set of this plugin with regard to code parsing, syntax highligting, code completion and refactoring. See his final report with couple of examples on this https://sklin0.wordpress.com/2015/08/23/gsoc-2015-final-status-report/.
his plugin for all KDevelop users!
Gurjot Singh extend the animation capabilities of Kdenlive to allow smoother animations keyframes technology. Before this, Kdenlive had support for keyframes . With the support for animation properties in the open-source multimedia framework MLT, which is used by denlive, and with the integration work done during this GSoC by Grjot, animat in Kdenlive. Gurjot added configuration widgets for different interpolation types used for animations - discrete, linear, smooth spline or a mix of them. https://kdenlive.org/node/9443
KStars, the outstanding open-source astronomy software, is now able to display artistic drawings for all modern constellations (https://en.wikipedia.org/wiki/88_modern_constellations_by_area) - thanks to the work done by M.S. Adity during this summer. One of the main parts of the project was to understand how to map the image onto the sky map. The screenshot below shows art images for all 88 modern constellations that can be optionally switched on and off.
Daniel Leu contributed a job scheduler to KStars that will help automate astrophotography sessions. A job is specified the information provided by the user object altitude, angular distance to the moon and the execution starting and finishing times job triggered by the scheduler communicates with the telesop via the Ekos interface (http://api.kde.org/4.x-api/kdeedu-apidocs/kstars/html/namespaceEkos.html) and performes slewing of the teleskop, loading the sequence and its execution. To simplify the selection of the object to be observed, the user can now provide a FITS image and the object coordinates are determined out of the information stored in the FITS file.
David Kolozsvari joined the Marble team this summer and implemented couple of nice features. improved rendering of labels (stree names, building names etc.) that are drawn along the curved street paths. Before this, the labels were just shown "somewhere" on the map. :
Besides some smaller improvements and bug fixes Marble's support . Check out his (http://koldavidgsoc.blogspot.de/2015/08/gsoc-2015-summer-with-marble.html).
The second Marble-related GSoC-project was about the handling of OpenStreetMap (OSM) files. Marius Stanciu added support for opening OSM-files, viewing, editing and exporting them. The main part of the project was to provide aOSM editor for Marble. Plenty of features can be implemented in such an editorMarius implemented for tags and relations. Tags allow the placemarks to provide information on them coordinates. With the help of logical relationships between different points on the map can be modeled. Take a look at Marius' blogs for more screenshots and exampleshttp://mariusoc.blogspot.de/2015/08/wrapping-things-up.html
LabPlothe data plotting and analysis tool for KDE
Minh Ngo added visualization of 3D-data to LabPlot by utilizing the very powerful library VTK. Different data source sources are supported - external files with 3D-data, LabPlot's spreadsheets with column-based organisation of data and LabPlot's matrices with matrix-like data structure. The data can be visualized as points in 3D-space, curves and surfaces. A lot of options for the 3D-plots are availble and can be adjusted by the user in a user-friendly GUI. Furthermore, several zooming functions were implemented that allow a comfortable navigation through the data. Because of the huge complexity of this topic, not everything could be implemented in such a short period of time. Minh is eager to contribute further to the projects and continues working on 3D-part of LabPlot with the aim to push LabPlot's 3D-functionality to much higher level.
Ankit Wagarde added a very useful tool to LabPlot that allows to extract data from images - the Datapicker. After import of an image and setting the reference points, the user start to select the data points on the image that get automatically converted into numbers. Those numbers can be used in your own plots where you can e.g. combine your own results with results of another work where the imported image was taken from. Different scalings are supported as well as data point with error bars. Arbitrary number of curves on the plot from the imported image is supported whereas different symbol styles can be used to differentiate the appearance of the curves
Currently, LabPlot is lacking any scripting functionality and has a very limited set of features to generate new data. On the other hand, Cantor - another KDE-education software - unifies the usage of different open-source computer algebra systems (CAS) like Maxima, Octave, etc. in a single program. Garvit Khatri integrated Cantor into LabPlot. This allows now to perform calculations, to produce and to analyze data with the CAS of your choice, to plot the generated data and to modify the appearance of the plot directly in LabPlot. The user benefits now from the very powerful CAS languages and from the numerous editing features for plots in LabPlot. The screenshot below shows a simple calculation done in python3 with scipy/numpy and the visualization of the calculated data in LabPlot's manner.
All in all - a very nice example for how two open-source projects can collaborate and bundle the man-power and the available features two produce software of much greater value.
KDE's universal document viewer Okular was extended by Saheb Preet Singh to support PDF tags, layers and linearized documents. PDF tags allow to add additional description to different structures in a PDF document. Information can be stored on different layers of a PDF file - a feature allowing to make some content visible or invisible in the document. In Okular, tags and layers are shown in a tree-like view and can be searched and filtered for. The third new feature in Okular, the support for linearized PDF documents, make viewing over the internet faster - the document is streamed over the network and the user can start to read the document without the need to wait until the complete file is downloaded.
ba, the command line tool to control Baloo, KDE's indexing and search framework, got a lot of useful features allowing to get a better overview of the current state of Baloo. The main part of the project taken by Pinak Ahuja was the Baloo Monitor - a GUI tool showing Baloo's current state, file being indexed, total progress and estimated remaining time
and a button to suspend/resume indexing. On the way to these results, Baloo's architecture needed to be partially redesigned and re-factored to make the interaction of this tool with Baloo's back-end possible.
This work went far beyond the original proposal and was done in close collaboration and with the help of the project mentor.
Aleksandr Mezin improved the KDE System Settings by adding a new configuration module for pointing devices. This module unifies now the functionality that was previously spread between Mouse and Touchpad KCMs.
With the help of KDE's visual designers Aleksandr was able to create a nice looking UI where the pointing devices can be configured at the same place. Currently, all properties of libinput driver can be configured in this new module for X11 as well as for Wayland (with patched version of KWin), whereas a better and more complete support for evdev and synaptics drivers is to be expected in the near feature.
For many students participated in this year's GSoC, the contribution to the open-source community and especially to KDE didn't end with the final reports written in August. Many students are still in touch with their mentors, continue to work on their projects or are even looking for new tasks. All in all, a great GSoC season for KDE with remarkable achievements. We're looking forward for GSoC2016!