From KDE Community Wiki
< GSoC‎ | 2018‎ | StatusReports
Revision as of 17:00, 12 August 2018 by Asagtani (talk | contribs) (→‎Blog Posts)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

One step closer to version 1.0

GCompris is a high-quality educational suite, that aims to teach the kids who are aged 2-10 years. Recently its 0.9 version was released which has more than 140 activities. The goal of this project is to create a Bitmap drawing activity and an Animation activity for GCompris to create kids interest in designing, drawing, and graphical animations. This will help GCompris to move one step closer to version 1.0.

Mentors: Timothée Giet and Johnny Jazeix

Project Goals

  • Creating a bitmap drawing activity to help kids learn about various graphical tools and creating beautiful arts.
  • Extending drawing activity to allow kids to create animation with many paint frames.

Work Report

Community Bonding Period

During the Community Bonding period, I started with introducing myself to the community. I have previously worked with KDE during Season of KDE and I am an active contributor at GCompris, this helped me to set up the working environment and building the project quickly. With the help of my mentors, I rebased the current branch and cherry-picked the commits to a new branch and removed all the conflicts to work smoothly. My project aims at creating graphical activities and the work on Bitmap drawing activity was started in previous GSoC. I discussed the current state of this activity and changes to be made in the present code with my mentors. Previously in the GTK+ version of this activity, we used to call tuxPaint directly. In our own version of this activity, we have decided to name it "Drawing". For the UI, we have finalized to make a foldable panel-based(demo) UI to provide as much as possible space to draw on. I am reading the Qt Canvas and context2D documentation, experimenting with the current code and consulting with my mentors for the optimum approach to implement the proposed features.

Coding Period - Phase one (May 14th to June 12th)

Drawing Activity

This activity aims at providing tools and workspace to kids for drawing beautiful arts and introducing them to basic drawing tools and their uses. This phase was devoted to developing an easy to use UI for the activity and refactoring the present code and breaking the code into various elements to ease the process of further enhancement and reviewing process.

A foldable-panel based UI is developed and ready to use. It is divided into four panels, namely - "Menu", "Tools", "Color" and "Tool Options".

Menu panel consists - Save, Load, Redo, Undo, Erase all, Background Color and Export to png options.

Tools panel provides various tools like Pencil, Eraser, Brushes, Text input, bucket fill, etc.

For the color panel, a color picker was developed consisting of three bars - Hue, Saturation, and Lightness to produce the required color. Along with the color picker, a grid of pre-defined color is also available to select a color from and these pre-defined colors can be altered according to the needs.

Tool Options panel consists of various setting like tip size, modes, etc for the currently active tool.

Tasks for this phase are completed as planned. For the next phase, I aim at fixing the minor bugs with present tools and enhancing them.

Coding Period - Phase two (June 15 - July 9)

During the second phase, I worked on code cleaning and fixing the minor bugs with the new UI. Along with bug fixing, I implemented new features and tools in the activity, which includes -

Export to png -- With this tool users can save their beautiful arts in the png format.

Text tool -- With the help of this tool users can insert text into drawing, which now supports the default activity font-family with bold, italic, adjustable font sizes and a variety of colors.

Paint bucket tool -- Implemented stack based flood-fill algorithm into the paint-bucket tool, which helps users to fill color into their arts.

Global opacity -- Added a slider in tool options panel, which allows users to change the opacity for the current rendering tool.

Eraser tool -- Fixed the tool to provide the transparency at the given pixels. Now various brushes can also be used to erase the drawing in their specific pattern.

Change Background Color -- This tool allows users to select a color from a pop-up window which consists of a variety of colors to use as the background color for the art.

Active tools Highlighter -- Added a tab to highlight the currently active color and tool, this tab also provides instant access to Undo and Redo tools.

Coding Period - Phase three (July 13 - August 6)

During the third phase, I started with implementing Stamps feature in the Drawing activity. This feature allows users to use different stamps images in their beautiful arts. For now, I have added images from solar activity to use as stamps.

From the tool options panel, users can import an image and can also change the size and opacity of the stamp.

Audio and sound effects are also implemented in the activity as a feedback on selecting a tool and on using stamp tool.

Basic keyboard navigations like Undo, Redo, Save, Load, etc. are also implemented.

All basic tools are implemented as planned, at present, I am testing drawing activity on various platforms and fixing various bugs reported by mentors. List of bugs and improvements can be found on —

Branch where I'm working

Important Links

Proposal Link

Blog Posts


Email: [email protected]

IRC: amit__ , amit__[m]

Github: amitsagtani97