LabPlot: Theme Manager – GSoC’16 Final Evaluations

Hi folks!

GSoC’16 has come to an end and its time to report current status of my project ‘LabPlot: Theme Manager’. As the name suggests, project was aimed to develop a theme manager for LabPlot,  which is a well known open source application mainly used for analyzing and visualizing scientific data.

There have been a lot of developments after the project’s mid-term evaluation period (previous results are discussed in my earlier blogs), as follows:

  • In addition to the previous 4 themes: Bright, Dark, Creme and GreySlate (screenshot below)OldThemesI created 9 new simple and sophisticated themes : Solarized, SolarizedLight, DarkPastels, BlackOnLightYellow, BlackOnWhite, BlueOnBlack, GreenOnBlack, GreyOnBlack and RedOnBlack. These were created to follow the primary idea of this project, i.e. to provide a wide range of themes to LabPlot users. There are now a total of 13 themes available in LabPlot which can be used as per one’s taste. (screenshots below)

NewThemes

  • Themes preview panel :It showcases a list of QPixmaps of themes along with their names. A user can choose a suitable theme by simply double-clicking on the theme’s icon itself or by selecting the theme’s icon followed by a click on ‘Apply’ button. This panel can be accessed in two ways-
  1. Directly by clicking on the ‘Apply theme’ button available at the bottom of the Cartesian Plot dock widget (screenshot below)ApplyTheme01
  2. Through Cartesian Plot’s context menu, by choosing ‘Apply theme’ option (screenshot below)ApplyTheme02
  • Another addition to the project was implementation of save theme functionality. This provides more flexibility and control to the users over the look and feel of their plots. One can save a theme by clicking on ‘Save theme’ button and by providing a name for the theme. (see below)SaveTheme
  • Also, now the application keeps a track of last theme’s color palette applied on the current plot, so that, when you add a new curve to the plot, a color is chosen and applied in accordance to the current theme.
  • I have also initiated the work for providing an upload/download functionality for Labplot themes. i.e. I have used KDE’s GetHotNewStuff service through which Labplot users will be able to share (by uploading) their own themes with everyone else via public web server. In addition, they will be able to download and use the themes which are created and shared by other users. (This work is in progress!)

Final Result:

As a result, LabPlot is now equipped with a very well developed ‘Theme Manager’ providing a wide variety of 13 themes from basic to more advanced such as Solarized, SolarizedLight, DarkPastels, BlackOnWhite, BlueOnBlack, etc.(as mentioned above) and are also comparable to other existing applications. Currently, the Theme Manager has many useful functionalities such as application of themes on plots, saving personalized themes, uploading/downloading themes to share themes via web server (in progress). I believe current functionalities will make LabPlot a powerful tool to visualize scientific data as well as it will enrich the overall user experience and usability. Last but not the least, I am glad to say that I have successfully met all the proposed goals and deadlines as per my GSoC project proposal.

Overall Experience:

GSoc has been an amazing experience for me. As it was my first attempt at contributing to an open source project, I was amazed by the variety and quality of work carried out by the KDE community. Large number of developers and contributors working in parallel to produce interesting and extremely useful applications…It’s really motivating!

I would also like to thank my mentor Alexander Semke, who has been very responsive and supportive throughout my journey of GSoC. Along with the technical skills (Git, C++ concepts, understanding of Qt and KDE frameworks, visualization of themes + color palettes and color schemes), he also helped me to improve on my communication skills.

Future scope:

  • Currently, this project has provided flexibility of creating, saving and applying themes on 2D plots and in future this scope can be extended to accommodate 3D plots as well.
  • For the improvement of themes preview panel, a functionality can be developed to temporarily create a copy of the current plot and apply the properties of a theme on it. This can be used to show a preview of the user’s plot with theme applied.

If interested, you can find the developments and code at this Github link: https://github.com/KDE/labplot/commits/thememanager?author=prakritibhrdwj

Please don’t forget to give me your feedback 🙂

4 thoughts on “LabPlot: Theme Manager – GSoC’16 Final Evaluations

  1. Hi there Prakriti, your themes look beautiful, nice job! Looks like the thememanager branch expects qt4.x. Is there a port of your stuff to the frameworks (or another KF5) branch expected soon?

    Liked by 1 person

    1. Hi Kenny, thanks a lot! 🙂
      The development in LabPlot is done in master or in one of the feature branches first, which are Qt4/libskde4 based. Feature branches are merged to master. Master is periodically merged to frameworks branch where the porting of the newly developed code to Qt5/kf5 is done (if required). So, once the theme manager feature is ready, we’ll merge this branch to master and from there to frameworks. This new feature will be available in both versions of LabPlot, of course.

      Like

Leave a comment