def _onAccContextMenu(self, label): acc = self._getSelectedAccount() if not acc: return if label == 'Unregister': acc.setRegistration(False) elif label == 'Reregister': acc.setRegistration(True) elif label == 'Online': ps = pj.PresenceStatus() ps.status = pj.PJSUA_BUDDY_STATUS_ONLINE acc.setOnlineStatus(ps) elif label == 'Invisible': ps = pj.PresenceStatus() ps.status = pj.PJSUA_BUDDY_STATUS_OFFLINE acc.setOnlineStatus(ps) elif label == 'Away': ps = pj.PresenceStatus() ps.status = pj.PJSUA_BUDDY_STATUS_ONLINE ps.activity = pj.PJRPID_ACTIVITY_AWAY ps.note = "Away" acc.setOnlineStatus(ps) elif label == 'Busy': ps = pj.PresenceStatus() ps.status = pj.PJSUA_BUDDY_STATUS_ONLINE ps.activity = pj.PJRPID_ACTIVITY_BUSY ps.note = "Busy" acc.setOnlineStatus(ps) elif label == 'Settings...': self.cfgChanged = False dlg = accountsetting.Dialog(self.master, acc.cfg) if dlg.doModal(): self.updateAccount(acc) acc.modify(acc.cfg) elif label == 'Delete...': msg = "Do you really want to delete account '%s'?" % acc.cfg.idUri if msgbox.askquestion('Delete account?', msg, default=msgbox.NO) != u'yes': return iid = str(acc.randId) self.accList.remove(acc) acc.setRegistration(False) acc.deleting = True del acc self.tv.delete((iid, )) elif label == 'Add buddy...': cfg = pj.BuddyConfig() dlg = buddy.SettingDialog(self.master, cfg) if dlg.doModal(): self._createBuddy(acc, cfg) else: assert not ("Unknown menu " + label)
def _onBuddyContextMenu(self, label): bud = self._getSelectedBuddy() if not bud: return acc = bud.account if label == 'Audio call': chat = acc.findChat(bud.cfg.uri) if not chat: chat = acc.newChat(bud.cfg.uri) chat.showWindow() chat.startCall() elif label == 'Send instant message': chat = acc.findChat(bud.cfg.uri) if not chat: chat = acc.newChat(bud.cfg.uri) chat.showWindow(True) elif label == 'Subscribe': bud.subscribePresence(True) elif label == 'Unsubscribe': bud.subscribePresence(False) elif label == 'Settings...': subs = bud.cfg.subscribe uri = bud.cfg.uri dlg = buddy.SettingDialog(self.master, bud.cfg) if dlg.doModal(): self.updateBuddy(bud) # URI updated? if uri != bud.cfg.uri: cfg = bud.cfg # del old iid = 'buddy' + str(bud.randId) acc.buddyList.remove(bud) del bud self.tv.delete((iid, )) # add new self._createBuddy(acc, cfg) # presence subscribe setting updated elif subs != bud.cfg.subscribe: bud.subscribePresence(bud.cfg.subscribe) elif label == 'Delete...': msg = "Do you really want to delete buddy '%s'?" % bud.cfg.uri if msgbox.askquestion('Delete buddy?', msg, default=msgbox.NO) != u'yes': return iid = 'buddy' + str(bud.randId) acc.buddyList.remove(bud) del bud self.tv.delete((iid, )) else: assert not ("Unknown menu " + label)