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! 🙂