Week 2 of GSoC’s coding period was pretty dope :D. After all the hard work from the last week, I got my downloader to pull data from the website share.krita.org. As from the Week #1’s work status update, we have all discussed what all classes and functions were required to get this running. I was able to get it done and the downloader started downloading the data from the website.
PS: To get my project up and running we need KNewStuff framework version to be 5.29+. KNS team has done a lot of work in the area creating things to move pretty much good. (They have isolated KNSCore and KNS3 from then).
Before I proceed, I would love to mention the immense support and help given to me by Leinir for understanding how KNS and KNSCore works. If he didn’t notice my blog post which I posted at the starting of my project and official coding period, I would be lost at every single point of my project :P. As well as my Krita community people 🙂
As we had discussed the different classes I have created for the project to proceed, we have used certain KDE primary level framework/APIs in order to complete the GUI and get things working as planned.
Some of them, I have listed below.
The KConfig framework offers functionality around reading and writing configuration. KConfig consists of two parts, KConfigCore and KConfigGui. KConfigCore offers an abstract API to configuration files. It allows grouping and transparent cascading and (de-)serialization. KConfigGui offers, on top of KConfigCore, shortcuts, and configuration for some common cases, such as session and window restoration.
KWidgetAddons contains higher-level user interface elements for common tasks. KWidgetAddons contains widgets for the following areas:
- Keyboard accelerators
- Action menus and selections
- Capacity indicator
- Character selection
- Color selection
- Drag decorators
- Message boxes
- Paging of e.g. wizards
- Popups and other dialogs
- Squeezed labels
- URL line edits with drag and drop
- View state serialization
This class is a part of KWidgetAddons class. It displays a rating value as a row of pixmaps. The KRatingWidget displays a range of stars or other arbitrary pixmaps and allows the user to select a certain number by mouse.
Hence, till now I have implemented order by functionality to sort data items accordingly. Have included functionalities to sort according to categories. While the categories get populated according to the knsrc file. We have options to rate each item on star basis according to the likes of the user. We also have the option to see the expanded details of each item. Revised a methodology to view items in a different mode such as icon mode and list mode. Also, Function to search between the items is also working just fine.
To see all the changes and test it visually, Created a test UI and shows how things work out and pull in data from the site. I will attach it here:
Plans for Week #3
Start creating the UI for the resource downloader which will be customizable hereafter. We just need to tweak the existing UI to our need.
After that, This week is being followed by the first Evaluation of our work so I have mostly done my part well. Completed the tasks as required in time. So, after evaluation for the first phase gets over, I will be doing the following.
- Give the work done till now a test run with the new and revised GUI for the content downloader.
- Fix any bugs if there exists or noticed at the testing phase in the content downloader and fix some of the bugs which might exist in the Resource Manager after discussing it with the Krita community.
- Meanwhile, these are going through, will be documenting the functions and classes created and changed.
Here is my branch were all the work I am done is going to.
Will be back with more updates later next week.