Code refactoring ---------------- + accounts.py line 648 remove redundant setMovie statement + adjust web view spacing and margins for widgets (relative to window borders) + check if QEvent.DynamicPropertyChange happens after the property changed + do not kill greenlets but interrupt commands instead (sipsimple) - refactor how models/dialogs/windows are created and where are they kept - blink/contacts.py GoogleContactsManager.stop_adding_contacts is always False - rename GoogleContactsManager to GoogleContactManager - rename GoogleContactsGroup to GoogleContactGroup - rename contact_model.google_contacts_group to google_contact_group - integrate GoogleContactManager into ContactModel? - GoogleContactsManager use defaultdict for entries_map (see update_contacts) - race condition in GoogleContactsManager with stop_adding_contacts - GoogleContactManager.enable_captcha should be decorated to run in the gui thread - GoogleContactManager._set_captcha_image should be decorated to run in the gui thread - _authorize_google_account from google dialog needs refactoring - saving settings should be probably done in an auxiliary thread not the green thread - rename main_window.google_contacts_dialog to something else Issues ------ Investigate this exception: sip:nwpsefvl@10.0.0.1:52067 52067 sip:nwpsefvl@10.0.0.1:52067 52067 sip:nwpsefvl@10.0.0.1;transport=tcp None Traceback (most recent call last): File "/usr/lib/python2.5/site-packages/twisted/internet/base.py", line 778, in runUntilCurrent call.func(*call.args, **call.kw) File "/usr/lib/pymodules/python2.5/eventlet/hubs/twistedr.py", line 158, in call_if_greenlet_alive return func(*args1, **kwargs1) File "/usr/lib/pymodules/python2.5/eventlet/proc.py", line 571, in _run result = function(*args, **kwargs) File "/home/dan/work/voip/python-sipsimple/sipsimple/account.py", line 683, in _handle_commands handler(command) File "/home/dan/work/voip/python-sipsimple/sipsimple/account.py", line 720, in _CH_register txtRecord=bonjour.TXTRecord(items=txtdata)) File "/home/dan/work/voip/blink-qt/sipsimple/bonjour.py", line 1125, in DNSServiceRegister TypeError: an integer is required Presence -------- - Is picking the most recent timestamp a good winning method? - Calculate user idleness - Add a GUI element for the offline note - Delete own icon if we don't get anything back from XCAP? - Unify settings for inbound and outbound presence