1 #include <QApplication>
6 #include "addressbookpage.h"
7 #include "addresstablemodel.h"
11 #include "multisigaddressentry.h"
12 #include "ui_multisigaddressentry.h"
13 #include "walletmodel.h"
16 MultisigAddressEntry::MultisigAddressEntry(QWidget *parent) : QFrame(parent), ui(new Ui::MultisigAddressEntry), model(0)
19 GUIUtil::setupAddressWidget(ui->address, this);
22 MultisigAddressEntry::~MultisigAddressEntry()
27 void MultisigAddressEntry::setModel(WalletModel *model)
33 void MultisigAddressEntry::clear()
38 ui->pubkey->setFocus();
41 bool MultisigAddressEntry::validate()
43 return !ui->pubkey->text().isEmpty();
46 QString MultisigAddressEntry::getPubkey()
48 return ui->pubkey->text();
51 void MultisigAddressEntry::setRemoveEnabled(bool enabled)
53 ui->deleteButton->setEnabled(enabled);
56 void MultisigAddressEntry::on_pasteButton_clicked()
58 ui->address->setText(QApplication::clipboard()->text());
61 void MultisigAddressEntry::on_deleteButton_clicked()
63 emit removeEntry(this);
66 void MultisigAddressEntry::on_addressBookButton_clicked()
71 AddressBookPage dlg(AddressBookPage::ForSending, AddressBookPage::ReceivingTab, this);
72 dlg.setModel(model->getAddressTableModel());
75 ui->address->setText(dlg.getReturnValue());
79 void MultisigAddressEntry::on_pubkey_textChanged(const QString &pubkey)
81 // Compute address from public key
82 std::vector<unsigned char> vchPubKey(ParseHex(pubkey.toStdString().c_str()));
83 CPubKey pkey(vchPubKey);
84 CKeyID keyID = pkey.GetID();
85 CBitcoinAddress address(keyID);
86 ui->address->setText(address.ToString().c_str());
91 // Get label of address
92 QString associatedLabel = model->getAddressTableModel()->labelForAddress(address.ToString().c_str());
93 if(!associatedLabel.isEmpty())
94 ui->label->setText(associatedLabel);
97 void MultisigAddressEntry::on_address_textChanged(const QString &address)
102 // Get public key of address
103 CBitcoinAddress addr(address.toStdString().c_str());
105 if(addr.GetKeyID(keyID))
108 model->getPubKey(keyID, vchPubKey);
109 std::string pubkey = HexStr(vchPubKey.Raw());
111 ui->pubkey->setText(pubkey.c_str());
114 // Get label of address
115 QString associatedLabel = model->getAddressTableModel()->labelForAddress(address);
116 if(!associatedLabel.isEmpty())
117 ui->label->setText(associatedLabel);