GSoC 2021 Inkscape Verb to Gio::Actions

About The Blog

This Blog is about my GSoC project Verb to Gio::Actions, Want to know more about the project

July 9 - 17

Solved the Build fix for Linux, The reason was extensions and filters which activated the GUI when It was not required. So by a simple condition check, it was resolved

Updated my branch and did all the alignment fixes

Did recommended changes suggested by @Tav

July 5 - 8

I am trying to resolve the Linux: Build problem in GitLab

I have tried a bunch of stuff to resolve it, The problem is that they are working on my machine (Linux Mint 20.1 Cinnamon DE)

July 28 - 4

I tried to refactor some of the code and tried to implement a new way of making the filters and extension but in the middle, I realized that It’s the same thing but in a different way, So after discussion with @Tav stayed with the older way.

Filters and Extension structure overview :

The sub-menus are present in menus.ui

For all the Filters and Extension the while initialization they are added in extension_data class

By use of the Extension_data class, they are then added to menus in menubar.cpp

July 22 - 27

I did the conversion of all the keys

I made a small program that would convert verb names to actions and used VS code tricks for compilation.

The program contains a map of verb names to action names, by use of that the all verb names are coveted.

July 12 - 21

I arrived slightly optimized approach to convert filters and extensions to action.

I did this by creating a class to store data about action name, action id, submenu id. then add all the items in the menubar.cpp file.

As suggested by @Tav, A better approach would be to add a submenu direly into ui file from cpp file., without creating the effect data file.

I will try this week it will be optimization of the current method. I think I just have to add the submenu like menu items but also check its presence before inserting any submenu and menu items.

I made a small program to convert keys efficiently to actions. But needs testing.

July 1 - 11

I got stuck at some university work , which I initially didn’t expect to be this time taking. Because of that, I was not able to give much time to The project last week.

I am stuck in Filters and Extensions for a while now. I personally feel It is like solving a though coding question, like doing brute force or applying hacks and then finally arriving at an optimal solution.

The main problem with Filters and Extensions is that they are extracted from different files and later arranged in the XML file, In the case of actions it has to be done in ui / glade file which is kind of simple if we know the sub-menu of effect and filter. The builder for the current verb implementation is quite complicated as it uses XML as a data transfer medium to connect the effects.cpp and menubar.cpp

June 27 - 30

I converted Filters and Extensions to actions ( that means we can now access all the filters and extensions from the command palette ). But @Tav found code to be a bit complicated and can be done in a better way.

Felt good after doing Filters and Extensions

I will look at the optimization next week which is kind of exciting

June 21 - 26

After last week, to gain confidence I converted Menubar Path, Menubar View, and Menubar File.

I gained confidence and fell excited to face the difficult one

I have only added keys to inkscape.xml, not to the extra key files, Which I feel will be easy to do after completing menubar or toolbar

June 14 - 20

I started with select toolbar, which I was excited about initially, and spent a lot of time reading doc and looking at similar implementations

I did buttons but spin buttons became a major problem and after discussion with @Tav I got to know that this has to be done by creating a separate builder for spin button .

After further discussion, I came to know that Gtk Toolbar is deprecated in GTK4 and needs to redesign the architecture of toolbars.

June 7 - 13

Conversion of Menu Edit to actons and Completed implementation of Hint giving placeholder in the command palette. Read more about the toolbar.

I took the major part of Hint giving placeholder from the discussion thread with @Tav and @rathod-sahab ( Abhay Raj )

June 1 -6 : Started implemetation of project

I looked at the conversion of actions from the previous implementation and mind map for clarity of work

Did Conversion of Object Menu and read more about action-extra-data to take the idea to implement hint placeholder in the command palette