mirror of
https://github.com/bitcoin/bitcoin.git
synced 2025-01-25 18:53:23 -03:00
qt: Hide non PKHash-Addresses in signing address book
This commit is contained in:
parent
2ed74a43a0
commit
c4ea501e96
6 changed files with 16 additions and 5 deletions
|
@ -106,7 +106,7 @@ AddressBookPage::AddressBookPage(const PlatformStyle *platformStyle, Mode _mode,
|
|||
ui->newAddress->setVisible(true);
|
||||
break;
|
||||
case ReceivingTab:
|
||||
ui->labelExplanation->setText(tr("These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses."));
|
||||
ui->labelExplanation->setText(tr("These are your Bitcoin addresses for receiving payments. Use the 'Create new receiving address' button in the receive tab to create new addresses.\nSigning is only possible with addresses of the type 'legacy'."));
|
||||
ui->deleteAddress->setVisible(false);
|
||||
ui->newAddress->setVisible(false);
|
||||
break;
|
||||
|
|
|
@ -11,6 +11,7 @@
|
|||
#include <wallet/wallet.h>
|
||||
|
||||
#include <algorithm>
|
||||
#include <typeinfo>
|
||||
|
||||
#include <QFont>
|
||||
#include <QDebug>
|
||||
|
@ -75,12 +76,14 @@ public:
|
|||
explicit AddressTablePriv(AddressTableModel *_parent):
|
||||
parent(_parent) {}
|
||||
|
||||
void refreshAddressTable(interfaces::Wallet& wallet)
|
||||
void refreshAddressTable(interfaces::Wallet& wallet, bool pk_hash_only = false)
|
||||
{
|
||||
cachedAddressTable.clear();
|
||||
{
|
||||
for (const auto& address : wallet.getAddresses())
|
||||
{
|
||||
if (pk_hash_only && address.dest.type() != typeid(PKHash))
|
||||
continue;
|
||||
AddressTableEntry::Type addressType = translateTransactionType(
|
||||
QString::fromStdString(address.purpose), address.is_mine);
|
||||
cachedAddressTable.append(AddressTableEntry(addressType,
|
||||
|
@ -159,12 +162,12 @@ public:
|
|||
}
|
||||
};
|
||||
|
||||
AddressTableModel::AddressTableModel(WalletModel *parent) :
|
||||
AddressTableModel::AddressTableModel(WalletModel *parent, bool pk_hash_only) :
|
||||
QAbstractTableModel(parent), walletModel(parent)
|
||||
{
|
||||
columns << tr("Label") << tr("Address");
|
||||
priv = new AddressTablePriv(this);
|
||||
priv->refreshAddressTable(parent->wallet());
|
||||
priv->refreshAddressTable(parent->wallet(), pk_hash_only);
|
||||
}
|
||||
|
||||
AddressTableModel::~AddressTableModel()
|
||||
|
|
|
@ -25,7 +25,7 @@ class AddressTableModel : public QAbstractTableModel
|
|||
Q_OBJECT
|
||||
|
||||
public:
|
||||
explicit AddressTableModel(WalletModel *parent = nullptr);
|
||||
explicit AddressTableModel(WalletModel *parent = nullptr, bool pk_hash_only = false);
|
||||
~AddressTableModel();
|
||||
|
||||
enum ColumnIndex {
|
||||
|
|
|
@ -89,6 +89,7 @@ void SignVerifyMessageDialog::on_addressBookButton_SM_clicked()
|
|||
{
|
||||
if (model && model->getAddressTableModel())
|
||||
{
|
||||
model->refresh(/* pk_hash_only */ true);
|
||||
AddressBookPage dlg(platformStyle, AddressBookPage::ForSelection, AddressBookPage::ReceivingTab, this);
|
||||
dlg.setModel(model->getAddressTableModel());
|
||||
if (dlg.exec())
|
||||
|
|
|
@ -563,3 +563,8 @@ bool WalletModel::isMultiwallet()
|
|||
{
|
||||
return m_node.getWallets().size() > 1;
|
||||
}
|
||||
|
||||
void WalletModel::refresh(bool pk_hash_only)
|
||||
{
|
||||
addressTableModel = new AddressTableModel(this, pk_hash_only);
|
||||
}
|
||||
|
|
|
@ -152,6 +152,8 @@ public:
|
|||
bool isMultiwallet();
|
||||
|
||||
AddressTableModel* getAddressTableModel() const { return addressTableModel; }
|
||||
|
||||
void refresh(bool pk_hash_only = false);
|
||||
private:
|
||||
std::unique_ptr<interfaces::Wallet> m_wallet;
|
||||
std::unique_ptr<interfaces::Handler> m_handler_unload;
|
||||
|
|
Loading…
Add table
Reference in a new issue