GSoC :: Coding Period – Phase One (May 14th to June 12th): Initial implementation of typewriter annotation tool in Okular

Hi everyone,

The phase one of the coding period is now completed and I’m done with the initial implementation of typewriter annotation tool in Okular along with writing the integration tests for the same. I have created the revision on Phabricator and it is currently under review. Some review comments by my mentor are still to come.

As per the agreed timeline, I have implemented the fully functional typewriter tool that creates the annotation with the transparent background in all the supported document formats and the text input UI in the current implementation is the popup QInputDialog window which is in accordance with the inline note.

This is how it works:

Thanks to Tobias Deiminger, my mentor, and other Okular developers who helped me in all the ways whenever I was stuck anywhere.

The typewriter tool icon is inspired from Adobe Reader’s one and currently, we are missing a number of vital features in others annotations plus the typewriter annotation which we have planned to complete in the next phase. I need to do some fixes before proceeding to the other goals of this project.

The first 15 days of the phase one were quite busy for me as I had my college exams and so I only devoted 15 hours a week and the last 10 days were spent in figuring out how to write the tests and in writing a few of them. Following is our next plan:

  • Font color implementation in Poppler
  • Font color chooser in typewriter annotation’s settings dialog
  • Respect font family in Poppler
  • Writing integration tests

And yes, after this phase, we will try some WYSIWYG approach for our typewriter annotation.

You can track my commits at

Feedbacks and suggestions are always welcome :)

Wait for the next post…


The beginning of GSoC 2018 with KDE

The result for GSoC 2018 was set to be announced on April 23, 2018 at 21:30 (+0530 GMT). When the time arrived for the announcement, and to browse the list checking for self’s name, the time almost got stopped for me. The wind of excitement, fear and tension was spread into all the corners of my spine.

Well, after next 5 minutes I was finally able to figure out, that my project proposal got selected. It was an awesome feeling to finally see my name listed.

My Proposal

With interest in projects which are related to the desktop application, and to possibly work with C++, my all-time favorite programming language, my main and only choice was to apply with KDE. After days of reading and knowing about their project opportunities, I was left with Okular.

To be honest, I started thinking about GSoC in late Jan and KDE was the only organization that interested me as I was using its products for months. I was having issues with Okular, KDE document viewer, and hence I began sending a few patches in the month of Feb.

Finally, after investing some significant amount of time, I was ready with my proposal for GSoC 2018. The title of my proposal is, “Implementing the FreeText annotation with FreeTextTypeWriter behavior” and here I am also sharing selected proposal, so it can probably be helpful to all.

Selected Project Details

In addition to above details, Okular already implements the FreeText annotation as ‘Inline Notes’ and shows and allows moving, deleting and modifying the existing typewriter annotations but a new one cannot be created and edited with the FreeTextTypeWriter
behavior (WYSIWYG live editing) directly on PDF page. Its annotation toolbar should gain a new entry ‘FreeText’ with the option to configure font size, color, and type along with the auto-resizable rectangle and click-to-type FreeTextTypeWriter behavior to write directly on PDF page.

I would be looking forward to work as good as possible this summer for KDE under my mentor Tobias Deiminger. Thanks to my mentor and org to consider me worthy for their selection list. :)

From Friends :)

Congratulations bro for getting into summer of code…

Posted by Dinesh Mali Dkm on Monday, April 23, 2018