GSoC 2021 KMyMoney - Week 1 and 2
The coding period began on June 7th 2021. I started using KDevelop for the project. The plan for the first phase was to complete the following tasks:
- Replace functions related to widgets in the existing codebase with that of the alkimiawidgets library.
- Work on adding the debug support :
- Add the UI entry for debug support in dialogs/settings/ksettingsonlinequotes.ui
- Replace member functions of WebPriceQuote with that of AlkOnlineQuotesWidget and i.e AlkOnlineQuotesWidget::debugWidget() in dialogs/settings/kset1tingsonlinequotes.cpp(h).
A significant part of my project is to work on improvements. While starting the project I found that the above UI and the functionality part to create the online quotes page is already written in the libalkimia (master). After implementing the page I noticed a crash when there was some interaction done on the UI buttons or textboxes. By this, I initially thought that it may be due to some slot. Also, the online quotes data weren’t visible on the online quotes that were in the kmymoneyrc config file. I fetched the traceback through the Dr Konqi wizard. It was due to a segmentation fault in a slot. I traced the specified line of code in the log. It pointed me to the function which is used to read the kmymoneyrc file.
This was my first time working on a project with such a large codebase(although I worked in small bugs) and I wasn’t acquainted with a C++ debugger. I learnt to use the KDevelop debugger. I was stuck in that bug so I asked for directions from my mentors. Thomas sir suggested running the program in the debugger mode and watch the variables and functions. I stepped in the functions associated with those to study those functions. My mentor (Thomas sir) pointed that it is an error due to a null pointer with some intriguing question to look upon to find that bug.
After this long discussion and help from my mentor, I managed to solve the issue by assigning online quotes profiles when the list is empty before creating the page. Because that null pointer (in libalkimia) was not assigned any value in case of empty quotes profile list and that pointer is used in two functions.
My work can be found here.
What’s next -
My week 3 and week 4 is planned for writing unit tests. But, in the community bonding meet, Ralf sir said to me that tests are already written. So, I will be running those tests and working on that if something is missing. Also, the “add quote source” button seems disabled that is need to be figured out.
If anyone wants to suggest something or have a discussion please reach out to me on suraj[dot]mahto49[at]gmail[dot]com or @suraj_sloth:kde.org in matrix.