Off For a Few Days (and TODO list)



Hey Guys,

Just a quick note to say I am off for a trip to northern canada for a few days. Here is a basic list of TODO items I am looking at next week. Im basically writing it down so that I do not forget, however anyone is free to work on these.

1) Conduit shouldnt close it if started from iconify.
Basically the window close event should just close the GUI and not end the conduit process. One approach would be to just hide the gui in both cases, which is a bit hackish and a waste of memory. The other would be to add QuitGUI() to conduit application class and call this. This would do all that was needed to set self.gui to None such that it is rebuilt next time conduit is started.

2) MVC work.
I resynced the mvc branch to head. It now lives in better-mvc. John will be placing the network module GUI work in here. Other ramaining work in the branch before it can be merged
a) The conduits are drawn to wide
b) Resizing the window does not work correctly
c) Pending dataproviders do not quite work
d) Make DBus use SyncSet
e) Conduits overlap when one dataproviders height changes
Feel free to help!

3) Web dataprovider login issues.
Currently an article on conduit is being written for Linux Magazine. The author has found none of the online web services work when using firefox to authenticate. In addition Ken has mentioned that gnome-www-open is a debianism and is not really portable. Also the GUI freezes when we authenticate. The long answer is boring, the short answer is use of gnome-www-open should die. We should use gnome-open instead.

To check if we are logged in I suggest creating a helper class in Utils.py. The class will basicaly have a timeout and accept a function that should return != None when the user is logged in. It is then up to the dataprovider to select what this function is; for example flickr could use flickr.test.login(). Pseudocode for the tester would go something like

class LoggedInTester:
    def __init__(self, testFunc, timeout=30):
       self.testFunc = testFunc
    def is_logged_in(self):
        while(not timed out)
            try:
                if testFunc():
                    return True
            except:
                pass
            sleep()
        return False

Some bindings may need to be modified. And it would be good to add a new status message to the dataprovider, something like "Authenticating" or something. Then refresh would go like

refresh()
    backend.Login() #doesnt block as using gnome-open
    LoggedInTester(backend.test_login)
    if LoggedInTester.is_logged_in():
        do stuff
    else:
        RefreshError

Thoughts?

Talk to you all later

John


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]