diff --git a/res/ui/transferDialog.ui b/res/ui/transferDialog.ui index 76f411f5a21db20a17cc659629d577022497add9..480d297ff96301ea4ee8a943c0b79aa2959c91d5 100644 --- a/res/ui/transferDialog.ui +++ b/res/ui/transferDialog.ui @@ -32,7 +32,7 @@ <item> <widget class="QLineEdit" name="edit_keyFingerprint"> <property name="inputMask"> - <string>>NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN</string> + <string/> </property> <property name="text"> <string/> @@ -186,7 +186,7 @@ <number>0</number> </property> <item> - <widget class="QLineEdit" name="lineEdit"> + <widget class="QLineEdit" name="edit_message"> <property name="placeholderText"> <string>A message</string> </property> diff --git a/src/cutecoin/gui/transferMoneyDialog.py b/src/cutecoin/gui/transferMoneyDialog.py index 7af976b2f614bbdb699fcd348b96283e7a52bda4..442941e195ef4d251cd73e114b70ad756c5fe43a 100644 --- a/src/cutecoin/gui/transferMoneyDialog.py +++ b/src/cutecoin/gui/transferMoneyDialog.py @@ -62,24 +62,24 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog): pass def accept(self): - sentCoins = self.listView_coinsSent.model().coins - receiver = None + sentCoins = self.listView_coinsSent.model().toString() + recipient = None - if self.radio_keyFingerprint.toggled(): - receiver = Person(self.edit_keyFingerprint.text(), "", "") + if self.radio_keyFingerprint.isChecked(): + recipient = Person("", self.edit_keyFingerprint.text(), "") else: #TODO: Manage contacts - receiver = Person(self.edit_keyFingerprint.text(), "", "") + recipient = Person("", self.edit_keyFingerprint.text(), "") - if self.radio_nodeAddress.toggled(): - node = Node(self.edit_nodeAddress, self.edit_port) + if self.radio_nodeAddress.isChecked(): + node = Node(self.edit_nodeAddress.text(), int(self.edit_port.text())) else: #TODO: Manage trusted nodes - node = Node(self.edit_nodeAddress, self.edit_port) + node = Node(self.edit_nodeAddress.text(), int(self.edit_port.text())) + message = self.edit_message.text() #TODO: Transfer money, and validate the window if no error happened - - self.sender.transferCoins(sentCoins) + print(self.sender.transferCoins(node, recipient, sentCoins, message)) def changeDisplayedWallet(self, index): wallet = self.sender.wallets.walletsList[index] @@ -91,5 +91,16 @@ class TransferMoneyDialog(QDialog, Ui_TransferMoneyDialog): walletCoinsModel = CoinsListModel(list(wallet.coins)) self.listView_wallet.setModel(walletCoinsModel) + def recipientModeChanged(self, fingerprintToggled): + self.edit_keyFingerprint.setEnabled(fingerprintToggled) + self.comboBox_contact.setEnabled(not fingerprintToggled) + + def transferModeChanged(self, nodeAddressToggled): + self.edit_nodeAddress.setEnabled(nodeAddressToggled) + self.comboBox_trustedNode.setEnabled(not nodeAddressToggled) + + + + diff --git a/src/cutecoin/models/account/__init__.py b/src/cutecoin/models/account/__init__.py index 0141967e471d2e821eb7f5f73e0991c74d2c5736..e01f9bb8aea49e04a510e8236721b4e49dbf4af4 100644 --- a/src/cutecoin/models/account/__init__.py +++ b/src/cutecoin/models/account/__init__.py @@ -111,6 +111,10 @@ class Account(object): issuance = ucoin.wrappers.transactions.Issue(self.keyFingerprint(), community.amendmentNumber(), coins, keyId=self.pgpKeyId) return issuance() + def transferCoins(self, node, recipient, coins, message): + transfer = ucoin.wrappers.transactions.Transfer(self.keyFingerprint(), recipient.fingerprint, coins, message, keyid=self.pgpKeyId, server=node.server, port=node.port) + return transfer() + def jsonify(self): data = {'name' : self.name, 'pgpKeyId' : self.pgpKeyId, diff --git a/src/cutecoin/models/coin/listModel.py b/src/cutecoin/models/coin/listModel.py new file mode 100644 index 0000000000000000000000000000000000000000..3b7d973594c9d4e345539467e2b220602fcce5ee --- /dev/null +++ b/src/cutecoin/models/coin/listModel.py @@ -0,0 +1,37 @@ +''' +Created on 8 févr. 2014 + +@author: inso +''' + +from PyQt5.QtCore import QAbstractListModel, Qt + +class CoinsListModel(QAbstractListModel): + ''' + A Qt abstract item model to display communities in a tree + ''' + def __init__(self, coins, parent=None): + ''' + Constructor + ''' + super(CoinsListModel, self).__init__(parent) + self.coins = coins + + def rowCount(self ,parent): + return len(self.coins) + + def data(self,index,role): + if role == Qt.DisplayRole: + row=index.row() + value = str(self.coins[row].value()) + return value + + def flags(self,index): + return Qt.ItemIsSelectable | Qt.ItemIsEnabled + + def toString(self): + coinsList = [] + for c in self.coins: + coinsList.append(c.getId()) + coinsStr = ",".join(coinsList) + return coinsStr \ No newline at end of file diff --git a/src/cutecoin/models/community/membersListModel.py b/src/cutecoin/models/community/membersListModel.py index 70fdc0f4b8d3f472bda9cfebed66d3940701a9b8..b017ba32c9806c9f0bb8545a3fec598835f319ea 100644 --- a/src/cutecoin/models/community/membersListModel.py +++ b/src/cutecoin/models/community/membersListModel.py @@ -19,7 +19,7 @@ class MembersListModel(QAbstractListModel): fingerprints = community.membersFingerprints() self.members = [] for f in fingerprints: - self.members.append(Person.create(f, community)) + self.members.append(Person.lookup(f, community)) def rowCount(self ,parent): return len(self.members) diff --git a/src/cutecoin/models/transaction/__init__.py b/src/cutecoin/models/transaction/__init__.py index 6f5908b9d5aeef425a18bbbbac5e3106bbd92534..9f773c9a362a98db13cf40e160f07734250ca91c 100644 --- a/src/cutecoin/models/transaction/__init__.py +++ b/src/cutecoin/models/transaction/__init__.py @@ -42,11 +42,9 @@ class Transfer(Transaction): def __init__(self): super(Transfer).__init__() - def getReceivedText(self): + def getText(self): return str(self.value()) + " " + self.currency() + " from " + self.sender.name - def getSentText(self): - return str(self.value()) + " " + self.currency() + " from " + self.recipient.name class Issuance(Transaction): diff --git a/src/cutecoin/models/transaction/factory.py b/src/cutecoin/models/transaction/factory.py index e0f335fe875694f84337a32c524e97aa30c4cf5c..dbf6c5277305be45b56adc2e973c18309dde2251 100644 --- a/src/cutecoin/models/transaction/factory.py +++ b/src/cutecoin/models/transaction/factory.py @@ -22,7 +22,7 @@ def createTransaction(senderFingerprint, increment, community): if transaction != None: transaction.increment = increment transaction.community = community - transaction.sender = Person.create(senderFingerprint, community) - transaction.recipient = Person.create(ucoinTransaction['recipient'], community) + transaction.sender = Person.lookup(senderFingerprint, community) + transaction.recipient = Person.lookup(ucoinTransaction['recipient'], community) return transaction diff --git a/src/cutecoin/models/transaction/receivedListModel.py b/src/cutecoin/models/transaction/receivedListModel.py index dcfd8fcbddca25887c2e9d090e7a0347e436e480..96628d002a8d404c39639744f3faabb4ef512059 100644 --- a/src/cutecoin/models/transaction/receivedListModel.py +++ b/src/cutecoin/models/transaction/receivedListModel.py @@ -26,7 +26,7 @@ class ReceivedListModel(QAbstractListModel): if role == Qt.DisplayRole: row=index.row() - value = self.transactions[row].getReceivedText() + value = self.transactions[row].getText() return value def flags(self,index): diff --git a/src/cutecoin/models/transaction/sentListModel.py b/src/cutecoin/models/transaction/sentListModel.py index 10cedd1ec6c1b398fce242c7835f79a10e5dc90f..52218ee1dd53c297460c2194cac5ddc8792dbe55 100644 --- a/src/cutecoin/models/transaction/sentListModel.py +++ b/src/cutecoin/models/transaction/sentListModel.py @@ -26,7 +26,7 @@ class SentListModel(QAbstractListModel): if role == Qt.DisplayRole: row=index.row() - value = self.transactions[row].getSendText() + value = self.transactions[row].getText() return value def flags(self,index):