[GSoC 2021] Google Summer of Code 2021

Greetings @Aman-Gupta ,

I would suggest you to build synfig in your local system ( you can take help from synfig-docs ) , then you can try reading the docs to get a better idea of the project.

Welcome to the synfig family already :slight_smile: , Do checkout some good-first-issues to solve after successfully building synfig in your local machine.

All the best :slight_smile:

1 Like

@rodolforg @ankit Can you guys please explain this Replacement of deprecated Gtk classes idea in bit more detail. I am unable to understand what exactly one have to do in this project.

I am asking because I am planning to make my proposal for this project idea .

Thanks and Regards [^__^]

1 Like

Synfig uses GTK or rather call it gtkmm you can read about it here since the version we are using contains components which are deprecated and we want to use the latest GTK 4.0 equivalent for them.

Some examples as mentioned in idea list.

get rid of deprecated Gtk::StockId (since before 2013)
convert deprecated Gtk::Action to Gio::Action (since 2016)
convert/get rid of deprecated Gtk::UIManager to Gtk::Builder (since 2013)
(possibly) convert deprecated Gtk::Main 2 to Gtk::Application (since 2012)

If you are not able to understand what these components are that’s alright you are not expected to understand them beforehand. GTK and gtkmm documentation will be your friend :smile:

I suggest you start looking into the gui folder of synfig-studio to understand the coding practices that we use.

Additionally, if you are on ubuntu

Synfig compiles with the -DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED flags on Ubuntu 16.04 and Ubuntu 20.04

The main idea is to replace deprecated methods with the recommended ones.
To understand which methods are deprecated, you just need to build the project with
-DGDK_DISABLE_DEPRECATED -DGTK_DISABLE_DEPRECATED flags and you will see deprecation warnings.

Cheers!

1 Like

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)

3 Likes

@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:

4 Likes

@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.

2 Likes

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 .

Regards