Skip to content
Snippets Groups Projects
Commit 80608cca authored by Vincent Texier's avatar Vincent Texier
Browse files

Refactor context menu functions to be reusable

Fix accept button in contact dialog not enabled when adding from context menu
parent f87cf3fe
No related branches found
No related tags found
No related merge requests found
...@@ -49,7 +49,7 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget): ...@@ -49,7 +49,7 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
self.button_membership.setText("Send membership demand") self.button_membership.setText("Send membership demand")
self.button_leaving.hide() self.button_leaving.hide()
self.wot_tab = WotTabWidget(account, community, password_asker) self.wot_tab = WotTabWidget(account, community, password_asker, self)
self.tabs_information.addTab(self.wot_tab, QIcon(':/icons/wot_icon'), "Wot") self.tabs_information.addTab(self.wot_tab, QIcon(':/icons/wot_icon'), "Wot")
def member_context_menu(self, point): def member_context_menu(self, point):
...@@ -65,15 +65,15 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget): ...@@ -65,15 +65,15 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
menu = QMenu(self) menu = QMenu(self)
add_contact = QAction("Add as contact", self) add_contact = QAction("Add as contact", self)
add_contact.triggered.connect(self.add_member_as_contact) add_contact.triggered.connect(self.menu_add_as_contact)
add_contact.setData(member) add_contact.setData(member)
send_money = QAction("Send money", self) send_money = QAction("Send money", self)
send_money.triggered.connect(self.send_money_to_member) send_money.triggered.connect(self.menu_send_money)
send_money.setData(member) send_money.setData(member)
certify = QAction("Certify identity", self) certify = QAction("Certify identity", self)
certify.triggered.connect(self.certify_member) certify.triggered.connect(self.menu_certify_member)
certify.setData(member) certify.setData(member)
view_wot = QAction("View in WoT", self) view_wot = QAction("View in WoT", self)
...@@ -88,16 +88,26 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget): ...@@ -88,16 +88,26 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
# Show the context menu. # Show the context menu.
menu.exec_(QCursor.pos()) menu.exec_(QCursor.pos())
def add_member_as_contact(self): def menu_add_as_contact(self):
person = self.sender().data() person = self.sender().data()
self.add_member_as_contact(person)
def menu_send_money(self):
person = self.sender().data()
self.send_money_to_member(person)
def menu_certify_member(self):
person = self.sender().data()
self.certify_member(person)
def add_member_as_contact(self, person):
dialog = ConfigureContactDialog(self.account, self.window(), person) dialog = ConfigureContactDialog(self.account, self.window(), person)
result = dialog.exec_() result = dialog.exec_()
if result == QDialog.Accepted: if result == QDialog.Accepted:
self.window().refresh_contacts() self.window().refresh_contacts()
def send_money_to_member(self): def send_money_to_member(self, person):
dialog = TransferMoneyDialog(self.account, self.password_asker) dialog = TransferMoneyDialog(self.account, self.password_asker)
person = self.sender().data()
dialog.edit_pubkey.setText(person.pubkey) dialog.edit_pubkey.setText(person.pubkey)
dialog.combo_community.setCurrentText(self.community.name()) dialog.combo_community.setCurrentText(self.community.name())
dialog.radio_pubkey.setChecked(True) dialog.radio_pubkey.setChecked(True)
...@@ -105,9 +115,8 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget): ...@@ -105,9 +115,8 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
currency_tab = self.window().currencies_tabwidget.currentWidget() currency_tab = self.window().currencies_tabwidget.currentWidget()
currency_tab.table_history.model().invalidate() currency_tab.table_history.model().invalidate()
def certify_member(self): def certify_member(self, person):
dialog = CertificationDialog(self.account, self.password_asker) dialog = CertificationDialog(self.account, self.password_asker)
person = self.sender().data()
dialog.combo_community.setCurrentText(self.community.name()) dialog.combo_community.setCurrentText(self.community.name())
dialog.edit_pubkey.setText(person.pubkey) dialog.edit_pubkey.setText(person.pubkey)
dialog.radio_pubkey.setChecked(True) dialog.radio_pubkey.setChecked(True)
......
...@@ -16,7 +16,7 @@ class ConfigureContactDialog(QDialog, Ui_ConfigureContactDialog): ...@@ -16,7 +16,7 @@ class ConfigureContactDialog(QDialog, Ui_ConfigureContactDialog):
classdocs classdocs
''' '''
def __init__(self, account, parent=None, contact=None): def __init__(self, account, parent=None, contact=None, edit=False):
''' '''
Constructor Constructor
''' '''
...@@ -28,8 +28,8 @@ class ConfigureContactDialog(QDialog, Ui_ConfigureContactDialog): ...@@ -28,8 +28,8 @@ class ConfigureContactDialog(QDialog, Ui_ConfigureContactDialog):
if contact: if contact:
self.edit_name.setText(contact.name) self.edit_name.setText(contact.name)
self.edit_pubkey.setText(contact.pubkey) self.edit_pubkey.setText(contact.pubkey)
if edit:
self.button_box.button(QDialogButtonBox.Ok).setEnabled(False) self.button_box.button(QDialogButtonBox.Ok).setEnabled(False)
def accept(self): def accept(self):
name = self.edit_name.text() name = self.edit_name.text()
......
...@@ -138,7 +138,7 @@ class MainWindow(QMainWindow, Ui_MainWindow): ...@@ -138,7 +138,7 @@ class MainWindow(QMainWindow, Ui_MainWindow):
@pyqtSlot() @pyqtSlot()
def edit_contact(self): def edit_contact(self):
contact = self.sender().data() contact = self.sender().data()
dialog = ConfigureContactDialog(self.app.current_account, self, contact) dialog = ConfigureContactDialog(self.app.current_account, self, contact, True)
result = dialog.exec_() result = dialog.exec_()
if result == QDialog.Accepted: if result == QDialog.Accepted:
self.window().refresh_contacts() self.window().refresh_contacts()
......
...@@ -23,6 +23,7 @@ class WotTabWidget(QWidget, Ui_WotTabWidget): ...@@ -23,6 +23,7 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
:return: :return:
""" """
super().__init__(parent) super().__init__(parent)
self.parent = parent
# construct from qtDesigner # construct from qtDesigner
self.setupUi(self) self.setupUi(self)
...@@ -60,7 +61,7 @@ class WotTabWidget(QWidget, Ui_WotTabWidget): ...@@ -60,7 +61,7 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
:param dict metadata: Graph node metadata of the identity :param dict metadata: Graph node metadata of the identity
""" """
# create Person from node metadata # create Person from node metadata
person = Person(metadata['text'], metadata['id']) person = self.get_person_from_metadata(metadata)
certifiers = person.certifiers_of(self.community) certifiers = person.certifiers_of(self.community)
# reset graph # reset graph
...@@ -230,32 +231,19 @@ class WotTabWidget(QWidget, Ui_WotTabWidget): ...@@ -230,32 +231,19 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
) )
def sign_node(self, metadata): def sign_node(self, metadata):
# open certify dialog person = self.get_person_from_metadata(metadata)
dialog = CertificationDialog(self.account, self.password_asker) self.parent.certify_member(person)
dialog.combo_community.setCurrentText(self.community.name())
dialog.edit_pubkey.setText(metadata['id'])
dialog.radio_pubkey.setChecked(True)
dialog.combo_community.setCurrentText(self.community.name())
dialog.exec_()
def send_money_to_node(self, metadata): def send_money_to_node(self, metadata):
dialog = TransferMoneyDialog(self.account, self.password_asker) person = self.get_person_from_metadata(metadata)
dialog.edit_pubkey.setText(metadata['id']) self.parent.send_money_to_member(person)
dialog.combo_community.setCurrentText(self.community.name())
dialog.radio_pubkey.setChecked(True)
if dialog.exec_() == QDialog.Accepted:
currency_tab = self.window().currencies_tabwidget.currentWidget()
currency_tab.table_history.model().invalidate()
def add_node_as_contact(self, metadata): def add_node_as_contact(self, metadata):
# check if contact already exists... # check if contact already exists...
if metadata['id'] == self.account.pubkey or metadata['id'] in [contact.pubkey for contact in self.account.contacts]: if metadata['id'] == self.account.pubkey or metadata['id'] in [contact.pubkey for contact in self.account.contacts]:
return False return False
dialog = ConfigureContactDialog(self.account, self.window()) person = self.get_person_from_metadata(metadata)
dialog.edit_name.setText(metadata['text']) self.parent.add_member_as_contact(person)
dialog.edit_pubkey.setText(metadata['id'])
dialog.exec_()
def get_block_mediantime(self, number): def get_block_mediantime(self, number):
try: try:
...@@ -264,3 +252,6 @@ class WotTabWidget(QWidget, Ui_WotTabWidget): ...@@ -264,3 +252,6 @@ class WotTabWidget(QWidget, Ui_WotTabWidget):
logging.debug('community.get_block request error : ' + str(e)) logging.debug('community.get_block request error : ' + str(e))
return False return False
return block.mediantime return block.mediantime
def get_person_from_metadata(self, metadata):
return Person(metadata['text'], metadata['id'])
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment