Week 3 Summary

Week 3 Summary

Introduction

Hi, I am Vaibhav Malik, a Google Summer Of Code contributor and developer at Inkscape. In this blog, I summarized the work that I did during the third week of the Google Summer Of Code 2022.

June 27

Today, I worked on the collections class. The majority of the code revolved around efficiency and performance. I also discussed the UI of the Text and Font dialogue with Tav. We decided to attach a new "Font Manager" dialogue to the "Open Font Manager" button. This dialogue will handle the filtering of fonts using tags and collections. Tav also shared a mockup design of this dialogue.

font-menu-filter.png

font-menu-collection.png
You can refer to this video to know more.

June 28

Today, I designed the "Font Manager" dialogue. I created two files /src/ui/dialog/font-manager.h and /src/ui/dialog/font-manager.cpp. There I defined the FontManager dialogue. I tried to populate the widgets of this dialogue as well. I couldn't succeed.
You can refer to this video for more information.

June 29

Today, I added the click handler on the "Open Font Manager" button. Now, clicking this button opens the "Font Manager" dialogue. I also tried to debug the bug with the views of the Font Manager dialogue but couldn't succeed. So I decided to create a merge request. Fortunately, S-Rafael suggested me a much better option to populate the check buttons. He suggested using a TreeView widget.
Video

June 30

Today I created a generic check-button-treeview-widget. It was a much better approach and it worked nicely. Now, I could populate all the settings as required.
Here's the link to the video that demonstrates these changes.

July 01

Today I changed the TreeView model of the check-buttons widget from Gtk::ListStore to Gtk::TreeStore. This allowed expanding the fonts stored in each collection.
Video

July 02

Today, I made significant changes in the dialogues. I removed the styles grid from the Text and Font dialogue(because I planned to add the styles as children of each font in the main font list itself). I added the font list in the Font Manager dialogue as well. I also added the create-collection and delete-collection buttons in the collections view.
Video

July 03

Before I could continue my work, I got to know about Mikekov's merge request. Mikekov made significant changes in the Text and Font dialogue. He implemented the structure for font-tags, a new font list, and filtering fonts based on the tags. I communicated with him, discussed my progress on collections and discussed the future implementations. In the coming days, I'll integrate the logic of the font collections with the newly designed Text and Font dialogue. This way, we'll add both the 'font-tags' and 'font-collections' to Inkscape.

Conclusion

So that was it for this week. This one was full of new designs and backend development. It was one of the most productive weeks of the coding period so far. Thanks for reading. Stay tuned for more updates.