GSoC 2022: Font Selection Improvements
Organization
Inkscape
Project Name
Font Selection Improvements
About
This project aims to facilitate the font selection process in Inkscape. A designer has a large number of fonts installed on their computer. Browsing through a long list of fonts is overwhelming (it's slow and unnecessary). Why not limit the search for perfect fonts to some smaller set of fonts? Do we need to browse through the entire font list again and again? This project includes the addition of the following features:
- Font collections
- Fonts used in the document
- Recently used fonts
- Font search
- On canvas preview of fonts
Code
- https://gitlab.com/inkscape/inkscape/-/merge_requests/4694
Blogs
- Week 1 Summary
- Week 2 Summary
- Week 3 Summary
- Week 4 Summary
- Week 5 Summary
- Week 6 Summary
- Week 8 Summary
- Week 9 Summary
- Week 10 Summary
- Week 11 Summary
- Week 12 Summary
Timeline
Community Bonding Period
I utilized this time to increase my familiarity with the codebase and the files I'll be working with during the coding period.
Coding Period
I started with the Font Collections feature. Next, I added the Font Search. Then I worked on the Recently Used Fonts. In the end, I implemented the Document Fonts feature.
Summary
So far, I've been able to implement the following features:
- Font Collections
- Recently Used Fonts
- Document Fonts
- Font Search
To implement these features, I did the following things:
- Created a custom data structure to implement the recently used fonts.
- Created a custom widget to list the font collections and the fonts stored in them
- Used the KMP search algorithm to increase the efficiency of the font search.
- Developed the font collections manager dialogue.
Currently, I'm fixing bugs related to these features. Next, I plan to start working on the on-canvas preview of fonts.
Challenges Faced
- To decide on the design of the Font Collections Manager dialogue.
- To create static instances of the font collections, document fonts, and the recently used fonts.
- The
Gtk::TreeStore
widget becomes very slow when dealing with the number of entries of the order10^5
.
Future Plans
- To implement the on-canvas preview of fonts feature.
- To refactor the code of the project.
- To improve the efficiency of the code.
- Add the font filtering options.
- Fix related bugs
Subscribe to my newsletter
Read articles from Vaibhav Malik directly inside your inbox. Subscribe to the newsletter, and don't miss out.
Written by
Vaibhav Malik
Vaibhav Malik
Hello, I'm Vaibhav Malik, an enthusiast of open-source projects. I have been a GSoC mentee for Inkscape in both 2022 and 2023. Presently, I am delving into the dynamic realm of cloud-native applications.