Skip to content
Snippets Groups Projects
Commit 5422c257 authored by inso's avatar inso
Browse files

Adding contextual actions in Members tab

parent 6f34f0bb
No related branches found
No related tags found
No related merge requests found
......@@ -42,9 +42,6 @@ class SelfCertification(Document):
META:TS:{1}
""".format(self.uid, self.timestamp)
def signed_raw(self):
return super().signed_raw()[:-1]
def inline(self):
return "{0}:{1}:{2}:{3}".format(self.pubkey, self.signatures[0],
self.timestamp, self.uid)
......@@ -83,8 +80,7 @@ class Certification(Document):
blockhash, blocknumber, signature)
def raw(self, selfcert):
return """{0}
META:TS:{1}-{2}
return """{0}META:TS:{1}-{2}
""".format(selfcert.signed_raw(), self.blocknumber, self.blockhash)
......
......@@ -10,6 +10,9 @@
<height>369</height>
</rect>
</property>
<property name="contextMenuPolicy">
<enum>Qt::DefaultContextMenu</enum>
</property>
<property name="windowTitle">
<string>communityTabWidget</string>
</property>
......@@ -27,7 +30,11 @@
<item>
<layout class="QVBoxLayout" name="verticalLayout_6">
<item>
<widget class="QListView" name="list_community_members"/>
<widget class="QListView" name="list_community_members">
<property name="contextMenuPolicy">
<enum>Qt::CustomContextMenu</enum>
</property>
</widget>
</item>
<item>
<layout class="QHBoxLayout" name="horizontalLayout_2">
......@@ -95,9 +102,25 @@
</hint>
</hints>
</connection>
<connection>
<sender>list_community_members</sender>
<signal>customContextMenuRequested(QPoint)</signal>
<receiver>CommunityTabWidget</receiver>
<slot>member_context_menu(QPoint)</slot>
<hints>
<hint type="sourcelabel">
<x>210</x>
<y>179</y>
</hint>
<hint type="destinationlabel">
<x>210</x>
<y>184</y>
</hint>
</hints>
</connection>
</connections>
<slots>
<slot>open_issuance_dialog()</slot>
<slot>member_context_menu(QPoint)</slot>
<slot>send_membership_demand()</slot>
<slot>send_membership_leaving()</slot>
</slots>
......
......@@ -56,7 +56,7 @@
<item>
<layout class="QHBoxLayout" name="horizontalLayout">
<item>
<widget class="QRadioButton" name="radio_key_fingerprint">
<widget class="QRadioButton" name="radio_pubkey">
<property name="text">
<string>Recipient public key</string>
</property>
......@@ -66,7 +66,7 @@
</widget>
</item>
<item>
<widget class="QLineEdit" name="edit_key_fingerprint">
<widget class="QLineEdit" name="edit_pubkey">
<property name="enabled">
<bool>false</bool>
</property>
......@@ -235,7 +235,7 @@
</hints>
</connection>
<connection>
<sender>radio_key_fingerprint</sender>
<sender>radio_pubkey</sender>
<signal>toggled(bool)</signal>
<receiver>TransferMoneyDialog</receiver>
<slot>recipient_mode_changed(bool)</slot>
......
......@@ -5,11 +5,14 @@ Created on 2 févr. 2014
'''
import logging
from PyQt5.QtWidgets import QWidget, QErrorMessage
from cutecoin.models.members import MembersListModel
from cutecoin.gen_resources.community_tab_uic import Ui_CommunityTabWidget
from cutecoin.gui.add_contact import AddContactDialog
from cutecoin.gui.wot_tab import WotTabWidget
from PyQt5.QtCore import Qt, QSignalMapper
from PyQt5.QtWidgets import QWidget, QErrorMessage, QAction, QMenu
from ..models.members import MembersListModel
from ..gen_resources.community_tab_uic import Ui_CommunityTabWidget
from .add_contact import AddContactDialog
from .wot_tab import WotTabWidget
from .transfer import TransferMoneyDialog
from .certification import CertificationDialog
class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
......@@ -27,7 +30,7 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
self.community = community
self.account = account
self.list_community_members.setModel(MembersListModel(community))
self.list_community_members.doubleClicked.connect(self.add_member_as_contact)
if self.account.member_of(self.community):
self.button_membership.setText("Send leaving demand")
self.button_membership.clicked.connect(self.send_membership_leaving)
......@@ -37,17 +40,54 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
self.tabs_information.addTab(WotTabWidget(account, community), "Wot")
def add_member_as_contact(self, index):
members_model = self.list_community_members.model()
members = members_model.members
logging.debug("Members : {0}".format(len(members)))
if index.row() < len(members):
dialog = AddContactDialog(self.account, self)
person = members[index.row()]
def member_context_menu(self, point):
index = self.list_community_members.indexAt(point)
model = self.list_community_members.model()
if index.row() < model.rowCount(None):
member = model.members[index.row()]
logging.debug(member)
menu = QMenu(model.data(index, Qt.DisplayRole), self)
add_contact = QAction("Add as contact", self)
add_contact.triggered.connect(self.add_member_as_contact)
add_contact.setData(member)
send_money = QAction("Send money", self)
send_money.triggered.connect(self.send_money_to_member)
send_money.setData(member)
certify = QAction("Certify individual", self)
certify.triggered.connect(self.certify_member)
certify.setData(member)
menu.addAction(add_contact)
menu.addAction(send_money)
menu.addAction(certify)
# Show the context menu.
menu.exec_(self.list_community_members.mapToGlobal(point))
def add_member_as_contact(self):
dialog = AddContactDialog(self.account, self.window())
person = self.sender().data()
dialog.edit_name.setText(person.name)
dialog.edit_pubkey.setText(person.pubkey)
dialog.exec_()
def send_money_to_member(self):
dialog = TransferMoneyDialog(self.account)
person = self.sender().data()
dialog.edit_pubkey.setText(person.pubkey)
dialog.combo_community.setCurrentText(self.community.name())
dialog.radio_pubkey.setChecked(True)
dialog.exec_()
def certify_member(self,):
dialog = CertificationDialog(self.account)
person = self.sender().data()
dialog.edit_pubkey.setText(person.pubkey)
dialog.radio_pubkey.setChecked(True)
dialog.exec_()
def send_membership_demand(self):
result = self.account.send_membership_in(self.community)
if (result):
......
......@@ -5,9 +5,10 @@ Created on 2 févr. 2014
'''
from PyQt5.QtWidgets import QDialog, QErrorMessage, QInputDialog, QLineEdit, QMessageBox
from cutecoin.core.person import Person
from ..core.person import Person
from ..gen_resources.transfer_uic import Ui_TransferMoneyDialog
from cutecoin.gen_resources.transfer_uic import Ui_TransferMoneyDialog
import logging
class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
......@@ -47,7 +48,7 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
index = self.combo_contact.currentIndex()
recipient = self.sender.contacts[index].pubkey
else:
recipient = self.edit_key_fingerprint.text()
recipient = self.edit_pubkey.text()
amount = self.spinbox_amount.value()
password = QInputDialog.getText(self, "Wallet password",
"Please enter your password",
......@@ -109,6 +110,6 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
self.spinbox_amount.setValue(0)
self.spinbox_amount.setMaximum(self.wallet.value(self.community))
def recipient_mode_changed(self, fingerprint_toggled):
self.edit_key_fingerprint.setEnabled(fingerprint_toggled)
self.combo_contact.setEnabled(not fingerprint_toggled)
def recipient_mode_changed(self, pubkey_toggled):
self.edit_pubkey.setEnabled(pubkey_toggled)
self.combo_contact.setEnabled(not pubkey_toggled)
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment