예제 #1
0
    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()
예제 #2
0
    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
예제 #5
0
    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
예제 #6
0
    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)