Google Summer of Code 2020 – week 12

Hello! This is the post about my week 12 and, probably, also my final post for GSoC 2020.

You can see my Merge Request in regards to the support of text annotation here. Today I will talk about what I have done this week and also show the progress of marK so far near the end of GSoC.

I have implemented and fixed what I mentioned in the previous post and there are more commits that I want to highlight:

A small change (only two lines) that prevents a bug that can happen when the user is annotating data with a mouse click and move and the current polygon pass over an existing polygon, now it is not allowed to do so.

This should make the life of the users easier if they need to annotate a single word per entity, with the speed of only a double click, also you can achieve the same behavior (select a whole word) clicking in a sentence that has only one letter.

Previously the container of annotation (aka Container) overridden functions to treat mouse events like mousePress, mouseMove, mouseRelease, and (recently) mouseDoubleClick, now it uses an eventFilter that treat those mouse events. This implementation will handle mouse events in any Widget as long as this eventFilter is installed on it (or its viewport) making it work pretty well with the painters structure.

This one is an improvement of a previous commit, Create a new painter instance just when needed, now marK has a more robust way to treat the changes of the working painter, and it will be easier to add and modify the buttons on the left of the Container labeled as “Options”, this is nice to have as marK in the future will support other types of annotation (such as audio and video) and those may need specific UI items.

Now marK shares more similarities with other KDE projects using KF5 (more specifically KXmlGuiWindow). This gives to marK some of the hackability found in them (e.g. now you can change the default shortcuts if you want) and it is also easy to have a pretty help and settings menu.

Now, I had like to show some features of marK that made into the main branch during this GSoC period, or will have after the MR is merged:


  • use temporary files to load annotation made before switching to another item (made into the main branch)
  • autosave functionality (made into the main branch)
  • support to mouse click and move to annotate data (and double click for text annotation)
  • painters (see week 4 and 5, if you do not remember about it)
  • use of KDE Frameworks 5
  • support to text annotation

There is still some work that needs to be done but I am already happy to show this development (and I will be even happier after the code is merged : ).


In these months of GSoC, I have received help from Tomaz Canabrava, Sandro Andrade, and, the one that helped and guided me the most, my mentor Caio Jordão Carvalho, I am very grateful and thankful for it. I had like to thank you all for the attention and opportunity, I hope that I didn’t let you down. 🙂

What is next after GSoC? I am already talking with Caio and we are planning some cool things to make marK better, expect more posts and news 😉

That is it, see you in the next post 😉

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do

Você está comentando utilizando sua conta Sair /  Alterar )

Foto do Google

Você está comentando utilizando sua conta Google. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

Crie seu site com o
Comece agora
<span>%d</span> blogueiros gostam disto: