← Back to team overview

project-leonov team mailing list archive

[Bug 336666] Re: leonov reloaded!

 

As I like screencasts, here is a new one.
It shows how well leonov loads different content in the main area

Markus

** Attachment added: "leonov_multible_content_MainContent.ogv"
   http://launchpadlibrarian.net/23523147/leonov_multible_content_MainContent.ogv

-- 
leonov reloaded!
https://bugs.launchpad.net/bugs/336666
You received this bug notification because you are a member of The
Leonov Project Team, which is subscribed to Leonov.

Status in Leonov - A Launchpad Desktop Client: New

Bug description:
Over the last week I took some time to think about leonov and the code structure of leonov again. I would like to present some thoughts in this bugreport:

* python-launchpadlib
leonov should use launchpadlib instead of python-launchpad-bugs. This means if some functionality which is needed in leonov is not exposed via the API we should file a bugreport against launchpad instead of working around it by doing screenscraping

* Offline mode
there has been some effort to put the result of some queries in a database in leonov, in my opinion this is very unflexible and given the fact that launchpadlib is caching all data, creating an additional "cache" in a database would be duplicate work. Instead the offline mode of leonov should be implemented by subclassing launchpadlib._browser.Browser to read the data from the file cache exclusively

* Process queue
we should try to implement a "global" worker queue which manages all the interaction with launchpad via launchpadlib

* user interfaces
all UI related logic should be implemented in abstract UI classes. An implementation for a GUI framework like GTK or QT should inherit from this abstract classes. This way it should be easier to sync functionality between different GUI implementations.

I've done some experimental hacking over the last few days, please see the attached screencast for a first example.
The code still needs some polishing and should be available in a public branch soonish.

So far so good, but here is the problem: as far as I know the existing code of leonov, to implement the described thoughts in a sane way, big parts of leonov have to be rewritten and we will loose a huge amount of work we already put into leonov.

What do you think about this?

Markus



References