Skip to content
Snippets Groups Projects
add_contact.py 1.26 KiB
Newer Older
inso's avatar
inso committed
'''
Created on 2 févr. 2014

@author: inso
'''
inso's avatar
inso committed
import re
inso's avatar
inso committed
from PyQt5.QtWidgets import QDialog, QDialogButtonBox


from cutecoin.core.person import Person
from cutecoin.gen_resources.add_contact_uic import Ui_AddContactDialog
inso's avatar
inso committed
class AddContactDialog(QDialog, Ui_AddContactDialog):
inso's avatar
inso committed
    '''
    classdocs
    '''
inso's avatar
inso committed
    def __init__(self, account, parent=None):
inso's avatar
inso committed
        '''
        Constructor
        '''
inso's avatar
inso committed
        self.setupUi(self)
inso's avatar
inso committed
        self.account = account
        self.main_window = parent
        self.button_box.button(QDialogButtonBox.Ok).setEnabled(False)
inso's avatar
inso committed

    def accept(self):
inso's avatar
inso committed
        name = self.edit_name.text()
        pubkey = self.edit_pubkey.text()
        result = self.account.add_contact(Person(name, pubkey))
        if result:
            self.main_window.menu_contacts_list.addAction(name)
            self.main_window.app.save(self.account)
inso's avatar
inso committed
        self.close()
    def name_edited(self, new_name):
        name_ok = len(new_name) > 0
        self.button_box.button(QDialogButtonBox.Ok).setEnabled(name_ok)
    def pubkey_edited(self, new_pubkey):
        pattern = re.compile("([1-9A-Za-z][^OIl]{42,45})")
        self.button_box.button(
            QDialogButtonBox.Ok).setEnabled(
inso's avatar
inso committed
            pattern.match(new_pubkey)is not None)