[GSoC 2021] Google Summer of Code 2021

Synfig was using gtkmm2. Some time after gtkmm 3.0 release, synfig was ported to this version, but with a lot of deprecated widgets and practices of gtkmm2.

Now with gtkmm 4 released we ‘need’ to at least port it properly to gtkmm3 (we still target some older computers)


@rodolforg @ankit Thank You for Explaining this idea in detail. I will try to understand the gui folder now and will refer to the documentation side-by-side for better understanding.

Thanks and Regards :slight_smile:

You can check this post too:

1 Like

Thanks for explaining it better :sweat_smile:

1 Like

@rodolforg Thank you for mentioning the forum “Help required in understanding the synfig-studio code” over here . I was also feeling kind of lost between all the files ! Now I will also refer to this.

Other Synfig Contributors @Aman-Gupta @aradhana_kund @riya1606 who are aiming for gsoc for the project Move ETL code to synfig core , this commit will surely help you understand more about it.

Do check it out. All the best :slight_smile:

I was just afraid he focused on gtk 4 :wink:

1 Like

Thank you so much , I am checking this out and will let you know

Can we start drafting proposal and take guidance from you ( @ankit) and @ice0 to refine our ideas ?

As I can see here that the class comparision function is simplified using ternary operator . Its just one line of code and its very simplified . So , this simplified code will be inherited to synfig core . This is what the theme of the project is , we need to simplify the etl codes like this to be driven into synfig core .
Am I correct? @ankit @ice0 please review this

1 Like

@aradhana_kund you can read about this idea here

1 Like

Hi! I’ve been lurking for a while, but I’m here to formally introduce myself. I’ve always enjoyed creating and experiencing both 2D and 3D art and animation, so working on a project like Synfig makes me really excited. I have a lot of ambitious ideas that I would like to eventually try to implement, but right now I’m learning my way around the source code. It’s good to see that this is such a friendly community! :smile:


@rodolforg @ankit I have solved many good first issues in synfig. Now It would be great if I can get my hands dirty with some medium level issues related to synfig gui and related to the project idea Replacement of deprecated Gtk classes or I can start working on the project itself to get the better idea of the code.

If there are some medium level issues related to the project, then kindly suggest me some ! as I am unable to find one. I want to leave other good first issues for new contributors :wink: :slight_smile:

thanks and regards

1 Like

@rodolforg I’m currently investigating StockID, and I read that it was useful for translations. I’m curious how Synfig’s current translations work.

If you don’t mind, could you point me to some resources regarding that?

StockID for translations was useful for some “standard” strings (like cut, copy, paste, save…)

Synfig, as a lot of opensource software (specially unix-like), uses gettext library for translation at runtime.
In sourcecode, the translatable strings are “marked” as such, and at build time it generates the tranlatable files (.POT/.PO files).

The strings are “marked” as translatable by being used as parameter to gettext() functions (or its variants, dgettext, ngettext, etc.).
It’s a real common habit everywhere to define a macro _() (or, with a different usage, N_()) to simplify the gettext() name length and its visual pollution. In synfig studio, this macro is defined in localization.h file.

I hope I helped you.


Oh. I can’t think any right now.
I’m really busy this week XD Next week I’ll be (way) “less” busy. :wink:

1 Like

@rodolforg Thanks! You even answered some other questions about the source I had :smile:. Take care of yourself, I think I’m on the right track now because of you!

No Problems [^_^] I will try to find those myself .


@dhairya_bahl I suggest you make a list of list of deprecated vs which class will be replacing them after you have a list of those deprecated classes you can start with replacing ones that are less complex to replace.
PS: Whenever you get a delayed response follow the project idealist and see what can you do next! So you don’t get stuck at a point.


@ice0 @rodolforg, I used to build synfig by autotools method where deprecations warnings are clearly visible.
But today when I tried building cmake build with CFLAGS -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED I don’t see any deprecation warnings(other than some variable not used.)
To be precise -
but not getting any deprecation warning.

I am using debian 10

I can’t help you. Amazingly I understand Autotools way better than I understand CMake (almost nothing). :slight_smile: