def __importContacts(self, widget): chooser = gtk.FileChooserDialog( title=None, action=gtk.FILE_CHOOSER_ACTION_OPEN, buttons=(gtk.STOCK_CANCEL, gtk.RESPONSE_CANCEL, gtk.STOCK_OPEN, gtk.RESPONSE_OK)) filter = gtk.FileFilter() filter.add_pattern("*.csv") chooser.set_filter(filter) response = chooser.run() if response == gtk.RESPONSE_OK: chooser.hide() importedList = contacts.ContactList() importedList.load(chooser.get_filename()) collisions = self.contactList.findCollisions(importedList) if len(collisions) > 0: resolvedCollisions = self.__mergeContactsDialog.run(collisions) if resolvedCollisions != None: self.contactList.mergeContacts(importedList, resolvedCollisions) else: self.contactList.mergeContacts(importedList) self.__updateStoreFromContactList() chooser.destroy()
def __updateContactListFromStore(self): self.contactList = contacts.ContactList() iter = self.contactlistStore.get_iter_first() while iter != None: name = self.contactlistStore.get_value(iter, 0) nr = self.contactlistStore.get_value(iter, 1) self.contactList.addContact(contacts.Contact(name, nr)) iter = self.contactlistStore.iter_next(iter)
def run(self): contactList = contacts.ContactList() contactList.load() self.__updateStoreFromContactList(contactList) selectedContacts = None if self.__contactsDialog.run() == gtk.RESPONSE_OK: selectedContacts = self.__getContactListFromStore() self.__contactsDialog.hide() return selectedContacts
def __getContactListFromStore(self): contactList = contacts.ContactList() iter = self.__contactListStore.get_iter_first() while iter != None: if self.__contactListStore.get_value(iter, 0) == True: name = self.__contactListStore.get_value(iter, 1) nr = self.__contactListStore.get_value(iter, 2) contactList.addContact(contacts.Contact(name, nr)) iter = self.__contactListStore.iter_next(iter) return contactList
def __getResolvedContacts(self): resolvedContacts = contacts.ContactList() iter = self.collisionlistStore.get_iter_first() while iter != None: name = self.collisionlistStore.get_value(iter, 0) if self.collisionlistStore.get_value(iter, 1) == True: phoneNumber = self.collisionlistStore.get_value(iter, 2) else: phoneNumber = self.collisionlistStore.get_value(iter, 4) resolvedContacts.addContact(contacts.Contact(name, phoneNumber)) iter = self.collisionlistStore.iter_next(iter) return resolvedContacts
def __init__(self, widgetTree, prefs, parent=None): self.contactList = contacts.ContactList() self.contactList.load() self.contactlistStore = gtk.ListStore(str, str) self.__updateStoreFromContactList() self.__prefs = prefs self.__contactsDialog = widgetTree.get_widget('manageContactsDialog') self.__contactsView = widgetTree.get_widget('contactsView') self.__contactsDialog.set_transient_for(parent) self.__mergeContactsDialog = mergecontactsdialog.MergeContactsDialog( widgetTree, parent=self.__contactsDialog) dic = { 'onImportFromPhoneClicked': self.__importPhoneContacts, 'onImportFromSimClicked': self.__importSimContacts, 'onContactsViewKeyReleased': self.__contacsViewKeyReleased, 'onNewClicked': self.__addContactRow, 'onExportContacts': self.__exportContacts, 'onImportContacts': self.__importContacts } widgetTree.signal_autoconnect(dic) nameRenderer = gtk.CellRendererText() nameRenderer.set_property('editable', True) nameRenderer.connect('edited', self.__contactEditedCb, 0) nrRenderer = gtk.CellRendererText() nrRenderer.set_property('editable', True) nrRenderer.connect('edited', self.__contactEditedCb, 1) self.__nameColumn = gtk.TreeViewColumn(_("Name"), nameRenderer, text=0) self.__nrColumn = gtk.TreeViewColumn(_("Phone number"), nrRenderer, text=1) self.__contactsView.set_model(self.contactlistStore) self.__contactsView.append_column(self.__nameColumn) self.__contactsView.append_column(self.__nrColumn)