From KDE Community Wiki
< GSoC‎ | 2018‎ | StatusReports

Expand Peruse Creator's Abilities

Peruse is a free and open source comic book reader application by KDE. The application includes a tool called Peruse Creator which is designed to create comic books for use with Peruse and other readers. Peruse has support from Advanced Comic Book Format(ACBF), which is a metadata container for comic book archives.

The Peruse Creator tool is one of Peruse’s special features. The Creator is currently very simple. It only allows the user to create CBZ comic book archives annotated with details such as authors, publisher information, characters and so on. It does not support the text layers system ACBF proposes for comic book navigation and presentation system.

Mentor:Dan Leinir Turthra Jensen ([email protected], IRC: leinir, Telegram and twitter: @leinir)

Work Report

Community Bonding Period

During the period, I started with understanding and analysing the PeruseCode base and tested the application against various cases (different comic books). The first part of my project aims at creating a capable image editor for PeruseCreator.With the help of my mentor, I made a plan containing the features of the Editor to be made. I read various documentations of various similar projects so as to increase my knowledge and studied QML to a greater extent for the GUI development. I have also tried small implementations using QML also for better understanding. Apart from all these the bonding period was very useful for me for interacting with my Mentor and making good communication with the community and understanding the code base well.

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

Designing the Editor Component

The works for the Editor which is supposed to have an Editing and Viewer component which will be totally completed and implemented at the end of the Second Phase has started. The GUI for the Editing component is designed using QML. The UI follows the simple and minimalistic design and packs many capabilities. As of now the Editor Contains a ToolBar and supports Layers which are the two main aspects of an image editor. Furthermore, a colour palette and more editing tools shall be integrated into the component. As of now, I made a GUI for the Layer canvas including controls for "Adding a Layer", Deleting a Layer", "Changing the Layer order".

After the Layer canvas, GUI was over I moved over to the ToolBar.The ToolBar now Includes a PenTool, EraserTool, CropTool, and a SelectTool.

After working out with the GUI for a while I started working on the backend (c++) for all these components. First of all, rather than creating everything together at once, I began to complete small tasks one by one and putting them up together at the end like a "Divide and Conquer" approach. So the Editor as the whole component will be ready in working condition only at the end. As of now, the subtasks are completed to almost half. The "PenTool", "Eraser tool" , "ImageCanvas" and Layer Functions are now completed separately. The files are uploaded to my personal repository in the GitHub for sharing with the mentor. The Editor is now in a Beta Stage, the files are now Scattered ones only as the interlinking will only be done after the subtasks are completed and further a bugless and capable component fully after testing will be only integrated to Peruse main branch.

Works Done: 1.Designed Layer Canvas, and Toolbar for the Editor

                             2. Implemented the backend for LayerCanvas and Toolbar
                            3.The Canvas including all the functionalities are completed and tested.

I choose to do these subtasks first as they are more important and good to start.

Coding Period 2 ( June 16 to July 9th)

The Layer implementation of the Image Editor has undergone the next step, The Toolbar is now enhanced

At the starting, the Peruse Creator had no Frame support, The fully working patch of the ACBF Frame support is under working.

Coding Period 3

The whole Peruse CreateMode including Layer support and complete toolbox is implemented. The backend and frontend for the Layers, Image Canvas Including layer support and tool box were linked.

The Layers, Canvas, tools which were, not linked together with, ApplicationSettings, ApplicationManager ProjectManager and Project, in a convenient way.

The whole application is tested against bugs before integrating to Peruses main Codebase


Proposal :


A blog for GSoC Aspirants:


Email : [email protected] Telegram : @mahesh6947