Browse Source

Check addresses in address book for validity

0.8
Wladimir J. van der Laan 14 years ago
parent
commit
669b0a5835
  1. 11
      src/qt/addressbookdialog.cpp
  2. 7
      src/qt/addresstablemodel.cpp
  3. 4
      src/qt/addresstablemodel.h
  4. 31
      src/qt/editaddressdialog.cpp
  5. 5
      src/qt/editaddressdialog.h

11
src/qt/addressbookdialog.cpp

@ -48,7 +48,6 @@ void AddressBookDialog::setModel(AddressTableModel *model) @@ -48,7 +48,6 @@ void AddressBookDialog::setModel(AddressTableModel *model)
ui->receiveTableView->setModel(receive_model);
ui->receiveTableView->sortByColumn(0, Qt::AscendingOrder);
// Send filter
QSortFilterProxyModel *send_model = new QSortFilterProxyModel(this);
send_model->setSourceModel(model);
@ -120,10 +119,7 @@ void AddressBookDialog::on_editButton_clicked() @@ -120,10 +119,7 @@ void AddressBookDialog::on_editButton_clicked()
EditAddressDialog::EditReceivingAddress);
dlg.setModel(model);
dlg.loadRow(selected.row());
if(dlg.exec())
{
dlg.saveCurrentRow();
}
dlg.exec();
}
void AddressBookDialog::on_newAddressButton_clicked()
@ -133,10 +129,7 @@ void AddressBookDialog::on_newAddressButton_clicked() @@ -133,10 +129,7 @@ void AddressBookDialog::on_newAddressButton_clicked()
EditAddressDialog::NewSendingAddress :
EditAddressDialog::NewReceivingAddress);
dlg.setModel(model);
if(dlg.exec())
{
dlg.saveCurrentRow();
}
dlg.exec();
}
void AddressBookDialog::on_tabWidget_currentChanged(int index)

7
src/qt/addresstablemodel.cpp

@ -263,3 +263,10 @@ void AddressTableModel::update() @@ -263,3 +263,10 @@ void AddressTableModel::update()
{
}
bool AddressTableModel::validateAddress(const QString &address)
{
uint160 hash160 = 0;
return AddressToHash160(address.toStdString(), hash160);
}

4
src/qt/addresstablemodel.h

@ -44,6 +44,10 @@ public: @@ -44,6 +44,10 @@ public:
*/
void updateList();
/* Check address for validity
*/
bool validateAddress(const QString &address);
private:
CWallet *wallet;
AddressTablePriv *priv;

31
src/qt/editaddressdialog.cpp

@ -65,12 +65,6 @@ QString EditAddressDialog::saveCurrentRow() @@ -65,12 +65,6 @@ QString EditAddressDialog::saveCurrentRow()
mode == NewSendingAddress ? AddressTableModel::Send : AddressTableModel::Receive,
ui->labelEdit->text(),
ui->addressEdit->text());
if(address.isEmpty())
{
QMessageBox::warning(this, windowTitle(),
tr("The address %1 is already in the address book.").arg(ui->addressEdit->text()),
QMessageBox::Ok, QMessageBox::Ok);
}
break;
case EditReceivingAddress:
case EditSendingAddress:
@ -82,3 +76,28 @@ QString EditAddressDialog::saveCurrentRow() @@ -82,3 +76,28 @@ QString EditAddressDialog::saveCurrentRow()
}
return address;
}
void EditAddressDialog::accept()
{
if(mode == NewSendingAddress || mode == EditSendingAddress)
{
// For sending addresses, check validity
// Not needed for receiving addresses, as those are generated
if(!model->validateAddress(ui->addressEdit->text()))
{
QMessageBox::warning(this, windowTitle(),
tr("The entered address \"%1\" is not a valid bitcoin address.").arg(ui->addressEdit->text()),
QMessageBox::Ok, QMessageBox::Ok);
return;
}
}
if(saveCurrentRow().isEmpty())
{
QMessageBox::warning(this, windowTitle(),
tr("The entered address \"%1\" is already in the address book.").arg(ui->addressEdit->text()),
QMessageBox::Ok, QMessageBox::Ok);
return;
}
QDialog::accept();
}

5
src/qt/editaddressdialog.h

@ -29,9 +29,12 @@ public: @@ -29,9 +29,12 @@ public:
void setModel(AddressTableModel *model);
void loadRow(int row);
QString saveCurrentRow();
void accept();
private:
QString saveCurrentRow();
Ui::EditAddressDialog *ui;
QDataWidgetMapper *mapper;
Mode mode;

Loading…
Cancel
Save