GSoC ’17 – Week #1.

- Aniketh Girish


Week 1 of the GSoC coding period was a hell of a ride :D. Was really engaged in many things. Even had a camp to attend. But thankfully, my mentors was so supportive that it wasn't an issue.

Hence, I started working on the Project and it's proceeding really fast after reading and getting familiar with the codebase of Krita and KNSCore as well as KNewStuff.

During this first week, I have created a widget class named DlgContentDownloader, which will act as the interface between, the dialog and the user. This class will have the following functions.

  1. Download/Install the specific content.
  2. Remove/Uninstall the specific content.
  3. List View Mode
  4. Icon View Mode
  5. Search functionality
  6. Provision for rating.
  7. Selection method for the categories/bundle.
  8. Order by function.
  9. Shows number of downloads/download Count

Classes and functions for different functions have been written down and almost complete.

  1. entrydetailsdialog: Gets all the entries in the server which could be downloaded or manipulated.
  2. itemsgridviewdelegate: For the grid view of items.
  3. itemsviewbasedelegate: Acts as the base class for all the delegates.
  4. itemsviewdelegate: Gets the list of widgets or the items.
  5. widgetquestionlistener: It allows the framework to ask the question to the user in a widget based level.

These works are almost complete and need to tweak a little bit as well.

Plans for Week #2

Well, for Week 2, I have to completely finish the DlgContentDownloader and all its functions. Then will start working on the following:

  • Start creating the GUI/UI for sharing resource bundles.

After the UI for the ContentDownloader widget is done. We will move on to create the download dialog which would help us to download/Install or Remove/Uninstall all the entries.

Will create some class named ContentDownloadDialog, which will act as a centralized method to get the items required to be downloaded using the content downloader widget. After the dialog is done we could tweak the WdgDlgBundleManager and call this dialog to perform the required task. The implementation of the dialog in WdgDlgBundleManager to get the entries would look like this:

ContentDownloadDialog dialog(d->knsrcFile, this); dialog.exec();

foreach (const KNS3::Entry& e, dialog. ()) {

foreach(const QString &file, e.installedFiles()) { QFileInfo fi(file); d->model->resourceServerAdapter()->importResourceFile( 
    fi.absolutePath()+'/'+fi.fileName() , false ); }

foreach(const QString &file, e.uninstalledFiles()) { QFileInfo fi(file); d->model->resourceServerAdapter()->removeResourceFile(
    fi.absolutePath()+'/'+fi.fileName()); } }

If possible, then by the end of the second week, I should be able to create a delegate item to view the resources inside the bundle and the details of the bundle, similar to this mockup we have designed.

Will come up with the status of the work next week and will be committing the work done this week soon.

Cheers. :)