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): ...@@ -42,9 +42,6 @@ class SelfCertification(Document):
META:TS:{1} META:TS:{1}
""".format(self.uid, self.timestamp) """.format(self.uid, self.timestamp)
def signed_raw(self):
return super().signed_raw()[:-1]
def inline(self): def inline(self):
return "{0}:{1}:{2}:{3}".format(self.pubkey, self.signatures[0], return "{0}:{1}:{2}:{3}".format(self.pubkey, self.signatures[0],
self.timestamp, self.uid) self.timestamp, self.uid)
...@@ -83,8 +80,7 @@ class Certification(Document): ...@@ -83,8 +80,7 @@ class Certification(Document):
blockhash, blocknumber, signature) blockhash, blocknumber, signature)
def raw(self, selfcert): def raw(self, selfcert):
return """{0} return """{0}META:TS:{1}-{2}
META:TS:{1}-{2}
""".format(selfcert.signed_raw(), self.blocknumber, self.blockhash) """.format(selfcert.signed_raw(), self.blocknumber, self.blockhash)
......
...@@ -10,6 +10,9 @@ ...@@ -10,6 +10,9 @@
<height>369</height> <height>369</height>
</rect> </rect>
</property> </property>
<property name="contextMenuPolicy">
<enum>Qt::DefaultContextMenu</enum>
</property>
<property name="windowTitle"> <property name="windowTitle">
<string>communityTabWidget</string> <string>communityTabWidget</string>
</property> </property>
...@@ -27,7 +30,11 @@ ...@@ -27,7 +30,11 @@
<item> <item>
<layout class="QVBoxLayout" name="verticalLayout_6"> <layout class="QVBoxLayout" name="verticalLayout_6">
<item> <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>
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout_2"> <layout class="QHBoxLayout" name="horizontalLayout_2">
...@@ -95,9 +102,25 @@ ...@@ -95,9 +102,25 @@
</hint> </hint>
</hints> </hints>
</connection> </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> </connections>
<slots> <slots>
<slot>open_issuance_dialog()</slot> <slot>member_context_menu(QPoint)</slot>
<slot>send_membership_demand()</slot> <slot>send_membership_demand()</slot>
<slot>send_membership_leaving()</slot> <slot>send_membership_leaving()</slot>
</slots> </slots>
......
...@@ -56,7 +56,7 @@ ...@@ -56,7 +56,7 @@
<item> <item>
<layout class="QHBoxLayout" name="horizontalLayout"> <layout class="QHBoxLayout" name="horizontalLayout">
<item> <item>
<widget class="QRadioButton" name="radio_key_fingerprint"> <widget class="QRadioButton" name="radio_pubkey">
<property name="text"> <property name="text">
<string>Recipient public key</string> <string>Recipient public key</string>
</property> </property>
...@@ -66,7 +66,7 @@ ...@@ -66,7 +66,7 @@
</widget> </widget>
</item> </item>
<item> <item>
<widget class="QLineEdit" name="edit_key_fingerprint"> <widget class="QLineEdit" name="edit_pubkey">
<property name="enabled"> <property name="enabled">
<bool>false</bool> <bool>false</bool>
</property> </property>
...@@ -235,7 +235,7 @@ ...@@ -235,7 +235,7 @@
</hints> </hints>
</connection> </connection>
<connection> <connection>
<sender>radio_key_fingerprint</sender> <sender>radio_pubkey</sender>
<signal>toggled(bool)</signal> <signal>toggled(bool)</signal>
<receiver>TransferMoneyDialog</receiver> <receiver>TransferMoneyDialog</receiver>
<slot>recipient_mode_changed(bool)</slot> <slot>recipient_mode_changed(bool)</slot>
......
...@@ -5,11 +5,14 @@ Created on 2 févr. 2014 ...@@ -5,11 +5,14 @@ Created on 2 févr. 2014
''' '''
import logging import logging
from PyQt5.QtWidgets import QWidget, QErrorMessage from PyQt5.QtCore import Qt, QSignalMapper
from cutecoin.models.members import MembersListModel from PyQt5.QtWidgets import QWidget, QErrorMessage, QAction, QMenu
from cutecoin.gen_resources.community_tab_uic import Ui_CommunityTabWidget from ..models.members import MembersListModel
from cutecoin.gui.add_contact import AddContactDialog from ..gen_resources.community_tab_uic import Ui_CommunityTabWidget
from cutecoin.gui.wot_tab import WotTabWidget from .add_contact import AddContactDialog
from .wot_tab import WotTabWidget
from .transfer import TransferMoneyDialog
from .certification import CertificationDialog
class CommunityTabWidget(QWidget, Ui_CommunityTabWidget): class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
...@@ -27,7 +30,7 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget): ...@@ -27,7 +30,7 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
self.community = community self.community = community
self.account = account self.account = account
self.list_community_members.setModel(MembersListModel(community)) 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): if self.account.member_of(self.community):
self.button_membership.setText("Send leaving demand") self.button_membership.setText("Send leaving demand")
self.button_membership.clicked.connect(self.send_membership_leaving) self.button_membership.clicked.connect(self.send_membership_leaving)
...@@ -37,16 +40,53 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget): ...@@ -37,16 +40,53 @@ class CommunityTabWidget(QWidget, Ui_CommunityTabWidget):
self.tabs_information.addTab(WotTabWidget(account, community), "Wot") self.tabs_information.addTab(WotTabWidget(account, community), "Wot")
def add_member_as_contact(self, index): def member_context_menu(self, point):
members_model = self.list_community_members.model() index = self.list_community_members.indexAt(point)
members = members_model.members model = self.list_community_members.model()
logging.debug("Members : {0}".format(len(members))) if index.row() < model.rowCount(None):
if index.row() < len(members): member = model.members[index.row()]
dialog = AddContactDialog(self.account, self) logging.debug(member)
person = members[index.row()] menu = QMenu(model.data(index, Qt.DisplayRole), self)
dialog.edit_name.setText(person.name)
dialog.edit_pubkey.setText(person.pubkey) add_contact = QAction("Add as contact", self)
dialog.exec_() 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): def send_membership_demand(self):
result = self.account.send_membership_in(self.community) result = self.account.send_membership_in(self.community)
......
...@@ -5,9 +5,10 @@ Created on 2 févr. 2014 ...@@ -5,9 +5,10 @@ Created on 2 févr. 2014
''' '''
from PyQt5.QtWidgets import QDialog, QErrorMessage, QInputDialog, QLineEdit, QMessageBox 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): class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
...@@ -47,7 +48,7 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog): ...@@ -47,7 +48,7 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
index = self.combo_contact.currentIndex() index = self.combo_contact.currentIndex()
recipient = self.sender.contacts[index].pubkey recipient = self.sender.contacts[index].pubkey
else: else:
recipient = self.edit_key_fingerprint.text() recipient = self.edit_pubkey.text()
amount = self.spinbox_amount.value() amount = self.spinbox_amount.value()
password = QInputDialog.getText(self, "Wallet password", password = QInputDialog.getText(self, "Wallet password",
"Please enter your password", "Please enter your password",
...@@ -109,6 +110,6 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog): ...@@ -109,6 +110,6 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog):
self.spinbox_amount.setValue(0) self.spinbox_amount.setValue(0)
self.spinbox_amount.setMaximum(self.wallet.value(self.community)) self.spinbox_amount.setMaximum(self.wallet.value(self.community))
def recipient_mode_changed(self, fingerprint_toggled): def recipient_mode_changed(self, pubkey_toggled):
self.edit_key_fingerprint.setEnabled(fingerprint_toggled) self.edit_pubkey.setEnabled(pubkey_toggled)
self.combo_contact.setEnabled(not fingerprint_toggled) self.combo_contact.setEnabled(not pubkey_toggled)
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