diff --git a/src/cutecoin/gui/views/wot.py b/src/cutecoin/gui/views/wot.py index aa2728305247146d147a215ce8bc90eb92602370..42d684065dbe52e944beb856d3147e36631a3479 100644 --- a/src/cutecoin/gui/views/wot.py +++ b/src/cutecoin/gui/views/wot.py @@ -59,6 +59,7 @@ class Scene(QGraphicsScene): node_clicked = pyqtSignal(str, name='nodeClicked') node_signed = pyqtSignal(dict, name='nodeSigned') node_transaction = pyqtSignal(dict, name='nodeTransaction') + node_contact = pyqtSignal(dict, name='nodeContact') def __init__(self, parent=None): """ @@ -171,6 +172,7 @@ class Node(QGraphicsEllipseItem): self.menu = None self.action_sign = None self.action_transaction = None + self.action_contact = None # color around ellipse outline_color = QColor('grey') @@ -244,6 +246,11 @@ class Node(QGraphicsEllipseItem): self.action_transaction = QAction('Send money to identity', self.scene()) self.menu.addAction(self.action_transaction) self.action_transaction.triggered.connect(self.transaction_action) + #Â action add identity as contact + self.action_contact = QAction('Add identity as contact', self.scene()) + self.menu.addAction(self.action_contact) + self.action_contact.triggered.connect(self.contact_action) + # run menu self.menu.exec(event.screenPos()) def add_arc(self, arc): @@ -268,6 +275,12 @@ class Node(QGraphicsEllipseItem): # trigger scene signal self.scene().node_transaction.emit(self.metadata) + def contact_action(self): + """ + Transaction action to identity node + """ + # trigger scene signal + self.scene().node_contact.emit(self.metadata) class Arc(QGraphicsLineItem): def __init__(self, source_node, destination_node, metadata): diff --git a/src/cutecoin/gui/wot_tab.py b/src/cutecoin/gui/wot_tab.py index ec7f4f5d817c249b4d9bc89f7273120f400edcd1..ebc4eeabe0b4cbcd339842474dbfb8ada5abb1cd 100644 --- a/src/cutecoin/gui/wot_tab.py +++ b/src/cutecoin/gui/wot_tab.py @@ -12,6 +12,7 @@ from .certification import CertificationDialog from .add_contact import AddContactDialog from .transfer import TransferMoneyDialog + class WotTabWidget(QWidget, Ui_WotTabWidget): def __init__(self, account, community, parent=None): """ @@ -34,6 +35,7 @@ class WotTabWidget(QWidget, Ui_WotTabWidget): self.graphicsView.scene().node_clicked.connect(self.draw_graph) self.graphicsView.scene().node_signed.connect(self.sign_node) self.graphicsView.scene().node_transaction.connect(self.send_money_to_node) + self.graphicsView.scene().node_contact.connect(self.add_node_as_contact) self.account = account self.community = community @@ -175,15 +177,18 @@ class WotTabWidget(QWidget, Ui_WotTabWidget): dialog.radio_pubkey.setChecked(True) dialog.exec_() - def add_node_as_contact(self, metadata): - dialog = AddContactDialog(self.account, self.window()) - dialog.edit_name.setText(metadata['text']) - dialog.edit_pubkey.setText(metadata['id']) - dialog.exec_() - def send_money_to_node(self, metadata): dialog = TransferMoneyDialog(self.account) dialog.edit_pubkey.setText(metadata['id']) dialog.combo_community.setCurrentText(self.community.name()) dialog.radio_pubkey.setChecked(True) dialog.exec_() + + def add_node_as_contact(self, metadata): + # check if contact already exists... + if metadata['id'] == self.account.pubkey or metadata['id'] in [contact.pubkey for contact in self.account.contacts]: + return False + dialog = AddContactDialog(self.account, self.window()) + dialog.edit_name.setText(metadata['text']) + dialog.edit_pubkey.setText(metadata['id']) + dialog.exec_()