End of GSoC but not of GGet

So, GSoC ended some time ago now. Many thanks goes to the community in general and Diego for being such an awesome mentor. The plan for the project is to do a first release during the weekend. There are still bugs but I thought it would be good to get something out in the wild (“Release early, release often.” and all that). I’ll definitely keep on working on the GGet in my spare time to get it into better shape. The thing I’ll focus on next is to start using GIO/GFS for file transfers.

GGet DBus interface

I just committed some code to add DBus capabilities to GGet. I came up with the following interface:

Methods:

AddDownload(String uri, String path) -> String id
CancelDownload(String id) -> Boolean
GetDownloadInformation(String id) -> Dict of {String, String}
Hide()
ListDownloads() -> Array of [String id]
PauseDownload(String id) -> Boolean
Present()
Quit()
RemoveCompletedDownloads()
RemoveDownload(String id) -> Boolean
ResumeDownload(String id) -> Boolean

Signals:

DownloadAdded(String id)
DownloadRemoved(String id)
DownloadStatusChanged(String id, String status)

Does this look sane? I was thinking about adding a signal for bitrate changes aswell but I’m afraid it could could be something of a performance hog since it would emit changes constantly. Someone suggested that I could implement a publish/subscribe system to make sure I only emit the signal when there is actually someone listening. I think this will have to wait until if/when its really needed though.

The plan for the coming days is to continue to fix bugs (there are still plenty) and to start working on a Epiphany extension which will use DBus to talk to GGet.

Mid-term Report

Wow, we are already at mid-term with our GSoC projects, time really flies. First, I have to apologize for not blogging about the progress like I’ve promised. The reason is mainly that I find it hard to post when I don’t have something functional to show (this is still true, but I’m forcing myself now :)). I think that people will only get frustrated/disappointed if they try to run an application thinking its in a usable state. The plan was to do a small screencast where I do a walk around and download a couple of files just to show people where I’m at. But since I can’t get any recording software to work on this machine, some screen shots will have to do. So without further ado, this is GGet:

GGet     GGet Add download

The main window, status icon and add dialog.

GGet General preferences     GGet Folder preferences     GGet Network preferences

The preferences dialog (with tabs! :)).

Currently I’m working on stabilizing things and adding speed and ETA data. When thats done I’ll add a D-bus interface which browser extensions (and other things) can talk to for their download needs.

As you can see I’m using the stock gtk-down icon for now. So if there is any tango-skilled artist out there interested in making an icon for GGet, go for it! 🙂

First post!

There, I finally got around to create a blog over at blogs.gnome.org, something I’ve been meaning to do for a while now. So, I guess a small introduction is in order. My name is Johan Svedberg and I’m a 25 year old CS-student from Umeå, Sweden. For a few years now I’ve been lurking around the GNOME community, doing some small bits and pieces here and there. Some people might recognize me from my work on OnTV which is a TV-guide applet for the panel.

During this summer I’ll be participating in Google Summer of Code. Mentored by Diego Escalante Urrelo I’ll be working on developing a modern Download Manager for the GNOME desktop. In addition to this I’ll also be helping out with creating Python bindings for GIO/GVFS. My plan is to continuesly blog about my progress on this and hopefully get some valuable feedback along the way.